From 629a6086c0e0ca80482ac72f19e195f599d17e9f Mon Sep 17 00:00:00 2001
From: Jan Hartig <jan.hartig@ptb.de>
Date: Thu, 4 May 2023 15:10:19 +0000
Subject: [PATCH] Update OvenPlayer to v0.10.27

---
 js/ovenplayer.js     | 4 ++--
 js/ovenplayer.js.map | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/js/ovenplayer.js b/js/ovenplayer.js
index 2fe80f2..fcd5a50 100644
--- a/js/ovenplayer.js
+++ b/js/ovenplayer.js
@@ -1,2 +1,2 @@
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.OvenPlayer=t():e.OvenPlayer=t()}(self,(function(){return function(){var e={8445:function(e,t,n){"use strict";n.d(t,{default:function(){return sr}});var r="0.10.26",o=n(741),i=n.n(o);function a(e){return e?e.replace(/^\s+|\s+$/g,""):""}var A=function(e){if(!e||"rtmp"==e.substr(0,4))return"";var t=function(e){var t="";return/[(,]format=mpd-/i.test(e)?t="mpd":/[(,]format=m3u8-/i.test(e)&&(t="m3u8"),t}(e);return t||((e=e.split("?")[0].split("#")[0]).lastIndexOf(".")>-1?e.substr(e.lastIndexOf(".")+1,e.length).toLowerCase():"")};function s(e){var t=parseInt(e,10);if(!e)return"00:00";var n=Math.floor(t/3600),r=Math.floor((t-3600*n)/60),o=t-3600*n-60*r;return r<10&&(r="0"+r),o<10&&(o="0"+o),n>0?n+":"+r+":"+o:r+":"+o}function c(e,t){if(!e)return 0;if(i().isNumber(e)&&!i().isNaN(e))return e;var n=(e=e.replace(",",".")).split(":"),r=n.length,o=0;if("s"===e.slice(-1))o=parseFloat(e);else if("m"===e.slice(-1))o=60*parseFloat(e);else if("h"===e.slice(-1))o=3600*parseFloat(e);else if(r>1){var a=r-1;4===r&&(t&&(o=parseFloat(n[a])/t),a-=1),o+=parseFloat(n[a]),o+=60*parseFloat(n[a-1]),r>=3&&(o+=3600*parseFloat(n[a-2]))}else o=parseFloat(e);return i().isNaN(o)?0:o}function u(e){var t={},n=e.split("\r\n");1===n.length&&(n=e.split("\n"));var r=1;if(n[0].indexOf(" --\x3e ")>0&&(r=0),n.length>r+1&&n[r+1]){var o=n[r],i=o.indexOf(" --\x3e ");i>0&&(t.start=c(o.substr(0,i)),t.end=c(o.substr(i+5)),t.text=n.slice(r+1).join("\r\n"))}return t}var l=window.VTTCue,f={"":!0,lr:!0,rl:!0},p={start:!0,middle:!0,end:!0,left:!0,right:!0};function d(e){return"string"==typeof e&&!!p[e.toLowerCase()]&&e.toLowerCase()}function g(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}l||((l=function(e,t,n){var r=this,o=/MSIE\s8\.0/.test(navigator.userAgent),i={};o?r=document.createElement("custom"):i.enumerable=!0,r.hasBeenReset=!1;var a="",A=!1,s=e,c=t,u=n,l=null,p="",h=!0,v="auto",m="start",C=50,y="middle",b=50,w="middle";if(Object.defineProperty(r,"id",g({},i,{get:function(){return a},set:function(e){a=""+e}})),Object.defineProperty(r,"pauseOnExit",g({},i,{get:function(){return A},set:function(e){A=!!e}})),Object.defineProperty(r,"startTime",g({},i,{get:function(){return s},set:function(e){if("number"!=typeof e)throw new TypeError("Start time must be set to a number.");s=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"endTime",g({},i,{get:function(){return c},set:function(e){if("number"!=typeof e)throw new TypeError("End time must be set to a number.");c=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"text",g({},i,{get:function(){return u},set:function(e){u=""+e,this.hasBeenReset=!0}})),Object.defineProperty(r,"region",g({},i,{get:function(){return l},set:function(e){l=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"vertical",g({},i,{get:function(){return p},set:function(e){var t=function(e){return"string"==typeof e&&!!f[e.toLowerCase()]&&e.toLowerCase()}(e);if(!1===t)throw new SyntaxError("An invalid or illegal string was specified.");p=t,this.hasBeenReset=!0}})),Object.defineProperty(r,"snapToLines",g({},i,{get:function(){return h},set:function(e){h=!!e,this.hasBeenReset=!0}})),Object.defineProperty(r,"line",g({},i,{get:function(){return v},set:function(e){if("number"!=typeof e&&"auto"!==e)throw new SyntaxError("An invalid number or illegal string was specified.");v=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"lineAlign",g({},i,{get:function(){return m},set:function(e){var t=d(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");m=t,this.hasBeenReset=!0}})),Object.defineProperty(r,"position",g({},i,{get:function(){return C},set:function(e){if(e<0||e>100)throw new Error("Position must be between 0 and 100.");C=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"positionAlign",g({},i,{get:function(){return y},set:function(e){var t=d(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");y=t,this.hasBeenReset=!0}})),Object.defineProperty(r,"size",g({},i,{get:function(){return b},set:function(e){if(e<0||e>100)throw new Error("Size must be between 0 and 100.");b=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"align",g({},i,{get:function(){return w},set:function(e){var t=d(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");w=t,this.hasBeenReset=!0}})),r.displayState=void 0,o)return r}).prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)});var h=l,v={"":!0,up:!0};function m(e){return"number"==typeof e&&e>=0&&e<=100}var C=function(){var e=100,t=3,n=0,r=100,o=0,i=100,a="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return e},set:function(t){if(!m(t))throw new Error("Width must be between 0 and 100.");e=t}},lines:{enumerable:!0,get:function(){return t},set:function(e){if("number"!=typeof e)throw new TypeError("Lines must be set to a number.");t=e}},regionAnchorY:{enumerable:!0,get:function(){return r},set:function(e){if(!m(e))throw new Error("RegionAnchorX must be between 0 and 100.");r=e}},regionAnchorX:{enumerable:!0,get:function(){return n},set:function(e){if(!m(e))throw new Error("RegionAnchorY must be between 0 and 100.");n=e}},viewportAnchorY:{enumerable:!0,get:function(){return i},set:function(e){if(!m(e))throw new Error("ViewportAnchorY must be between 0 and 100.");i=e}},viewportAnchorX:{enumerable:!0,get:function(){return o},set:function(e){if(!m(e))throw new Error("ViewportAnchorX must be between 0 and 100.");o=e}},scroll:{enumerable:!0,get:function(){return a},set:function(e){var t=function(e){return"string"==typeof e&&!!v[e.toLowerCase()]&&e.toLowerCase()}(e);if(!1===t)throw new SyntaxError("An invalid or illegal string was specified.");a=t}}})},y=function(){};function b(e,t){return void 0===t&&(t=1),"rgba("+[parseInt(e.substring(0,2),16),parseInt(e.substring(2,4),16),parseInt(e.substring(4,6),16),t].join(",")+")"}var w=1;function E(e,t,n){switch(n){case"webvtt.font.color":case"webvtt.font.opacity":var r=Services.prefs.getCharPref("webvtt.font.color"),o=Services.prefs.getIntPref("webvtt.font.opacity")/100;B.fontSet=b(r,o);break;case"webvtt.font.scale":w=Services.prefs.getIntPref("webvtt.font.scale")/100;break;case"webvtt.bg.color":case"webvtt.bg.opacity":var i=Services.prefs.getCharPref("webvtt.bg.color"),a=Services.prefs.getIntPref("webvtt.bg.opacity")/100;B.backgroundSet=b(i,a);break;case"webvtt.edge.color":case"webvtt.edge.type":var A=Services.prefs.getIntPref("webvtt.edge.type"),s=Services.prefs.getCharPref("webvtt.edge.color");B.edgeSet=["","0px 0px ","4px 4px 4px ","-2px -2px ","2px 2px "][A]+b(s)}}if("undefined"!=typeof Services){var B={};["webvtt.font.color","webvtt.font.opacity","webvtt.font.scale","webvtt.bg.color","webvtt.bg.opacity","webvtt.edge.color","webvtt.edge.type"].forEach((function(e){E(0,0,e),Services.prefs.addObserver(e,E,!1)}))}var x=Object.create||function(){function e(){}return function(t){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return e.prototype=t,new e}}();function k(e,t){this.name="ParsingError",this.code=e.code,this.message=t||e.message}function I(e){function t(e,t,n,r){return 3600*(0|e)+60*(0|t)+(0|n)+(0|r)/1e3}var n=e.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return n?n[3]?t(n[1],n[2],n[3].replace(":",""),n[4]):n[1]>59?t(n[1],n[2],0,n[4]):t(0,n[1],n[2],n[4]):null}function S(){this.values=x(null)}function T(e,t,n,r){var o=r?e.split(r):[e];for(var i in o)if("string"==typeof o[i]){var a=o[i].split(n);2===a.length&&t(a[0],a[1])}}function L(e,t,n){var r=e;function o(){var t=I(e);if(null===t)throw new k(k.Errors.BadTimeStamp,"Malformed timestamp: "+r);return e=e.replace(/^[^\sa-zA-Z-]+/,""),t}function i(){e=e.replace(/^\s+/,"")}if(i(),t.startTime=o(),i(),"--\x3e"!==e.substr(0,3))throw new k(k.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '--\x3e'): "+r);e=e.substr(3),i(),t.endTime=o(),i(),function(e,t){var r=new S;T(e,(function(e,t){switch(e){case"region":for(var o=n.length-1;o>=0;o--)if(n[o].id===t){r.set(e,n[o].region);break}break;case"vertical":r.alt(e,t,["rl","lr"]);break;case"line":var i=t.split(","),a=i[0];r.integer(e,a),r.percent(e,a)&&r.set("snapToLines",!1),r.alt(e,a,["auto"]),2===i.length&&r.alt("lineAlign",i[1],["start","middle","end"]);break;case"position":i=t.split(","),r.percent(e,i[0]),2===i.length&&r.alt("positionAlign",i[1],["start","middle","end"]);break;case"size":r.percent(e,t);break;case"align":r.alt(e,t,["start","middle","end","left","right"])}}),/:/,/\s/)}(e)}k.prototype=x(Error.prototype),k.prototype.constructor=k,k.Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},S.prototype={set:function(e,t){this.get(e)||""===t||(this.values[e]=t)},get:function(e,t,n){return n?this.has(e)?this.values[e]:t[n]:this.has(e)?this.values[e]:t},has:function(e){return e in this.values},alt:function(e,t,n){for(var r=0;r<n.length;++r)if(t===n[r]){this.set(e,t);break}},integer:function(e,t){/^-?\d+$/.test(t)&&this.set(e,parseInt(t,10))},percent:function(e,t){return!!(t.match(/^([\d]{1,3})(\.[\d]*)?%$/)&&(t=parseFloat(t))>=0&&t<=100)&&(this.set(e,t),!0)}};var R={"&amp;":"&","&lt;":"<","&gt;":">","&lrm;":"‎","&rlm;":"‏","&nbsp;":" "},Q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},O={v:"title",lang:"lang"},M={rt:"ruby"};function D(e,t){function n(){if(!t)return null;var e,n=t.match(/^([^<]*)(<[^>]+>?)?/);return e=n[1]?n[1]:n[2],t=t.substr(e.length),e}function r(e){return R[e]}function o(e){for(;p=e.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)e=e.replace(p[0],r);return e}function i(e,t){return!M[t.localName]||M[t.localName]===e.localName}function a(t,n){var r=Q[t];if(!r)return null;var o=e.document.createElement(r);o.localName=r;var i=O[t];return i&&n&&(o[i]=n.trim()),o}for(var A,s=e.document.createElement("div"),c=s,u=[];null!==(A=n());)if("<"!==A[0])c.appendChild(e.document.createTextNode(o(A)));else{if("/"===A[1]){u.length&&u[u.length-1]===A.substr(2).replace(">","")&&(u.pop(),c=c.parentNode);continue}var l,f=I(A.substr(1,A.length-2));if(f){l=e.document.createProcessingInstruction("timestamp",f),c.appendChild(l);continue}var p=A.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!p)continue;if(!(l=a(p[1],p[3])))continue;if(!i(c,l))continue;p[2]&&(l.className=p[2].substr(1).replace("."," ")),u.push(p[1]),c.appendChild(l),c=l}return s}var F=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109];function P(){}function U(e,t,n){var r="undefined"!=typeof navigator&&/MSIE\s8\.0/.test(navigator.userAgent),o="rgba(255, 255, 255, 1)",i="rgba(0, 0, 0, 0.8)",a="";void 0!==B&&(o=B.fontSet,i=B.backgroundSet,a=B.edgeSet),r&&(o="rgb(255, 255, 255)",i="rgb(0, 0, 0)"),P.call(this),this.cue=t,this.cueDiv=D(e,t.text);var A={color:o,backgroundColor:i,textShadow:a,position:"relative",left:0,right:0,top:0,bottom:0,display:"inline"};r||(A.writingMode=""===t.vertical?"horizontal-tb":"lr"===t.vertical?"vertical-lr":"vertical-rl",A.unicodeBidi="plaintext"),this.applyStyles(A,this.cueDiv),this.div=e.document.createElement("div"),A={textAlign:"middle"===t.align?"center":t.align,font:n.font,whiteSpace:"pre-line",position:"absolute"},r||(A.direction=function(e){var t,n=[],r="";if(!e||!e.childNodes)return"ltr";function o(e,t){for(var n=t.childNodes.length-1;n>=0;n--)e.push(t.childNodes[n])}function i(e){if(!e||!e.length)return null;var t=e.pop(),n=t.textContent||t.innerText;if(n){var r=n.match(/^.*(\n|\r)/);return r?(e.length=0,r[0]):n}return"ruby"===t.tagName?i(e):t.childNodes?(o(e,t),i(e)):void 0}for(o(n,e);r=i(n);)for(var a=0;a<r.length;a++){t=r.charCodeAt(a);for(var A=0;A<F.length;A++)if(F[A]===t)return"rtl"}return"ltr"}(this.cueDiv),A.writingMode=""===t.vertical?"horizontal-tb":"lr"===t.vertical?"vertical-lr":"vertical-rl".stylesunicodeBidi="plaintext"),this.applyStyles(A),this.div.appendChild(this.cueDiv);var s=0;switch(t.positionAlign){case"start":s=t.position;break;case"middle":s=t.position-t.size/2;break;case"end":s=t.position-t.size}""===t.vertical?this.applyStyles({left:this.formatStyle(s,"%"),width:this.formatStyle(t.size,"%")}):this.applyStyles({top:this.formatStyle(s,"%"),height:this.formatStyle(t.size,"%")}),this.move=function(e){this.applyStyles({top:this.formatStyle(e.top,"px"),bottom:this.formatStyle(e.bottom,"px"),left:this.formatStyle(e.left,"px"),right:this.formatStyle(e.right,"px"),height:this.formatStyle(e.height,"px"),width:this.formatStyle(e.width,"px")})}}function N(e){var t,n,r,o,i="undefined"!=typeof navigator&&/MSIE\s8\.0/.test(navigator.userAgent);if(e.div){n=e.div.offsetHeight,r=e.div.offsetWidth,o=e.div.offsetTop;var a=(a=e.div.childNodes)&&(a=a[0])&&a.getClientRects&&a.getClientRects();e=e.div.getBoundingClientRect(),t=a?Math.max(a[0]&&a[0].height||0,e.height/a.length):0}this.left=e.left,this.right=e.right,this.top=e.top||o,this.height=e.height||n,this.bottom=e.bottom||o+(e.height||n),this.width=e.width||r,this.lineHeight=void 0!==t?t:e.lineHeight,i&&!this.lineHeight&&(this.lineHeight=13)}function W(e,t,n,r){var o=new N(t),i=t.cue,a=function(e){if("number"==typeof e.line&&(e.snapToLines||e.line>=0&&e.line<=100))return e.line;if(!e.track||!e.track.textTrackList||!e.track.textTrackList.mediaElement)return-1;for(var t=e.track,n=t.textTrackList,r=0,o=0;o<n.length&&n[o]!==t;o++)"showing"===n[o].mode&&r++;return-1*++r}(i),A=[];if(i.snapToLines){var s;switch(i.vertical){case"":A=["+y","-y"],s="height";break;case"rl":A=["+x","-x"],s="width";break;case"lr":A=["-x","+x"],s="width"}var c=o.lineHeight,u=c*Math.round(a),l=n[s]+c,f=A[0];Math.abs(u)>l&&(u=u<0?-1:1,u*=Math.ceil(l/c)*c),a<0&&(u+=""===i.vertical?n.height:n.width,A=A.reverse()),o.move(f,u)}else{var p=o.lineHeight/n.height*100;switch(i.lineAlign){case"middle":a-=p/2;break;case"end":a-=p}switch(i.vertical){case"":t.applyStyles({top:t.formatStyle(a,"%")});break;case"rl":t.applyStyles({left:t.formatStyle(a,"%")});break;case"lr":t.applyStyles({right:t.formatStyle(a,"%")})}A=["+y","-x","+x","-y"],o=new N(t)}var d=function(e,t){for(var o,i=new N(e),a=1,A=0;A<t.length;A++){for(;e.overlapsOppositeAxis(n,t[A])||e.within(n)&&e.overlapsAny(r);)e.move(t[A]);if(e.within(n))return e;var s=e.intersectPercentage(n);a>s&&(o=new N(e),a=s),e=new N(i)}return o||i}(o,A);t.move(d.toCSSCompatValues(n))}P.prototype.applyStyles=function(e,t){for(var n in t=t||this.div,e)e.hasOwnProperty(n)&&(t.style[n]=e[n])},P.prototype.formatStyle=function(e,t){return 0===e?0:e+t},U.prototype=x(P.prototype),U.prototype.constructor=U,N.prototype.move=function(e,t){switch(t=void 0!==t?t:this.lineHeight,e){case"+x":this.left+=t,this.right+=t;break;case"-x":this.left-=t,this.right-=t;break;case"+y":this.top+=t,this.bottom+=t;break;case"-y":this.top-=t,this.bottom-=t}},N.prototype.overlaps=function(e){return this.left<e.right&&this.right>e.left&&this.top<e.bottom&&this.bottom>e.top},N.prototype.overlapsAny=function(e){for(var t=0;t<e.length;t++)if(this.overlaps(e[t]))return!0;return!1},N.prototype.within=function(e){return this.top>=e.top&&this.bottom<=e.bottom&&this.left>=e.left&&this.right<=e.right},N.prototype.overlapsOppositeAxis=function(e,t){switch(t){case"+x":return this.left<e.left;case"-x":return this.right>e.right;case"+y":return this.top<e.top;case"-y":return this.bottom>e.bottom}},N.prototype.intersectPercentage=function(e){return Math.max(0,Math.min(this.right,e.right)-Math.max(this.left,e.left))*Math.max(0,Math.min(this.bottom,e.bottom)-Math.max(this.top,e.top))/(this.height*this.width)},N.prototype.toCSSCompatValues=function(e){return{top:this.top-e.top,bottom:e.bottom-this.bottom,left:this.left-e.left,right:e.right-this.right,height:this.height,width:this.width}},N.getSimpleBoxPosition=function(e){var t=e.div?e.div.offsetHeight:e.tagName?e.offsetHeight:0,n=e.div?e.div.offsetWidth:e.tagName?e.offsetWidth:0,r=e.div?e.div.offsetTop:e.tagName?e.offsetTop:0;return{left:(e=e.div?e.div.getBoundingClientRect():e.tagName?e.getBoundingClientRect():e).left,right:e.right,top:e.top||r,height:e.height||t,bottom:e.bottom||r+(e.height||t),width:e.width||n}},y.StringDecoder=function(){return{decode:function(e){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}},y.convertCueToDOMTree=function(e,t){return e&&t?D(e,t):null},y.processCues=function(e,t,n){if(!e||!t||!n)return null;for(;n.firstChild;)n.removeChild(n.firstChild);var r=e.document.createElement("div");if(r.style.position="absolute",r.style.left="0",r.style.right="0",r.style.top="0",r.style.bottom="0",r.style.margin="1.5%",n.appendChild(r),function(e){for(var t=0;t<e.length;t++)if(e[t].hasBeenReset||!e[t].displayState)return!0;return!1}(t)){var o=[],i=N.getSimpleBoxPosition(r),a={font:Math.round(.05*i.height*100)/100*w+"px sans-serif"};!function(){for(var n,A,s=0;s<t.length;s++)A=t[s],n=new U(e,A,a),r.appendChild(n.div),W(0,n,i,o),A.displayState=n.div,o.push(N.getSimpleBoxPosition(n))}()}else for(var A=0;A<t.length;A++)r.appendChild(t[A].displayState)},(y.Parser=function(e,t){this.window=e,this.state="INITIAL",this.buffer="",this.decoder=t||new TextDecoder("utf8"),this.regionList=[]}).prototype={reportOrThrowError:function(e){if(!(e instanceof k))throw e;this.onparsingerror&&this.onparsingerror(e)},parse:function(e,t){var n=this;function r(){for(var e=n.buffer,t=0;t<e.length&&"\r"!==e[t]&&"\n"!==e[t];)++t;var r=e.substr(0,t);return"\r"===e[t]&&++t,"\n"===e[t]&&++t,n.buffer=e.substr(t),r}e&&(n.buffer+=n.decoder.decode(e,{stream:!0}));try{var o;if("INITIAL"===n.state){if(!/\r\n|\n/.test(n.buffer))return this;var i=(o=r()).match(/^WEBVTT([ \t].*)?$/);if(!i||!i[0])throw new k(k.Errors.BadSignature);n.state="HEADER"}for(var a=!1;n.buffer;){if(!/\r\n|\n/.test(n.buffer))return this;switch(a?a=!1:o=r(),n.state){case"HEADER":/:/.test(o)?T(o,(function(e,t){"Region"===e&&function(e){var t=new S;if(T(e,(function(e,n){switch(e){case"id":t.set(e,n);break;case"width":t.percent(e,n);break;case"lines":t.integer(e,n);break;case"regionanchor":case"viewportanchor":var r=n.split(",");if(2!==r.length)break;var o=new S;if(o.percent("x",r[0]),o.percent("y",r[1]),!o.has("x")||!o.has("y"))break;t.set(e+"X",o.get("x")),t.set(e+"Y",o.get("y"));break;case"scroll":t.alt(e,n,["up"])}}),/=/,/\s/),t.has("id")){var r=new C;r.width=t.get("width",100),r.lines=t.get("lines",3),r.regionAnchorX=t.get("regionanchorX",0),r.regionAnchorY=t.get("regionanchorY",100),r.viewportAnchorX=t.get("viewportanchorX",0),r.viewportAnchorY=t.get("viewportanchorY",100),r.scroll=t.get("scroll",""),n.onregion&&n.onregion(r),n.regionList.push({id:t.get("id"),region:r})}}(t)}),/:/):o||(n.state="ID");continue;case"NOTE":o||(n.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(o)){n.state="NOTE";break}if(!o)continue;if(n.cue=new h(0,0,""),n.state="CUE",-1===o.indexOf("--\x3e")){n.cue.id=o;continue}case"CUE":try{L(o,n.cue,n.regionList)}catch(e){n.reportOrThrowError(e),n.cue=null,n.state="BADCUE";continue}n.state="CUETEXT";continue;case"CUETEXT":var A=-1!==o.indexOf("--\x3e");if(!o||A&&(a=!0)){n.oncue&&n.oncue(n.cue),n.cue=null,n.state="ID";continue}n.cue.text&&(n.cue.text+="\n"),n.cue.text+=o;continue;case"BADCUE":o||(n.state="ID");continue}}if(!t)return"CUETEXT"===n.state&&n.cue&&n.oncue&&n.oncue(n.cue),n.flush(),this}catch(e){n.reportOrThrowError(e),"CUETEXT"===n.state&&n.cue&&n.oncue&&n.oncue(n.cue),n.cue=null,n.state="INITIAL"===n.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var e=this;try{if(e.buffer+=e.decoder.decode(),(e.cue||"HEADER"===e.state)&&(e.buffer+="\n\n",e.parse(null,!0)),"INITIAL"===e.state)throw new k(k.Errors.BadSignature)}catch(t){e.reportOrThrowError(t)}return e.onflush&&e.onflush(),this}};var j=y,Y=function(){var e="";screen.width&&(e+=(screen.width?screen.width:"")+" x "+(screen.height?screen.height:""));var t,n,r,o=navigator.appVersion,i=navigator.userAgent,a=navigator.appName,A=""+parseFloat(navigator.appVersion),s=parseInt(navigator.appVersion,10);-1!=(n=i.indexOf("Opera"))&&(a="Opera",A=i.substring(n+6),-1!=(n=i.indexOf("Version"))&&(A=i.substring(n+8))),-1!=(n=i.indexOf("OPR"))?(a="Opera",A=i.substring(n+4)):-1!=(n=i.indexOf("SamsungBrowser"))?(a="SamsungBrowser",A=i.substring(n+15)):-1!=(n=i.indexOf("Edge"))?(a="Microsoft Edge",A=i.substring(n+5)):-1!=(n=i.indexOf("MSIE"))?(a="Microsoft Internet Explorer",A=i.substring(n+5),-1!==i.indexOf("Trident/")&&-1!==i.indexOf("rv:")&&(A=i.substring(i.indexOf("rv:")+3))):-1!=(n=i.indexOf("Chrome"))?(a="Chrome",A=i.substring(n+7)):-1!=(n=i.indexOf("CriOS"))?(a="Chrome",A=i.substring(n+6)):-1!=(n=i.indexOf("Firefox"))?(a="Firefox",A=i.substring(n+8)):-1!=(n=i.indexOf("FxiOS"))?(a="Firefox",A=i.substring(n+6)):-1!=(n=i.indexOf("Safari"))?(a="Safari",A=i.substring(n+7),-1!=(n=i.indexOf("Version"))&&(A=i.substring(n+8))):-1!==i.indexOf("Trident/")?(a="Microsoft Internet Explorer",A=i.substring(i.indexOf("rv:")+3)):(t=i.lastIndexOf(" ")+1)<(n=i.lastIndexOf("/"))&&(a=i.substring(t,n),A=i.substring(n+1),a.toLowerCase()==a.toUpperCase()&&(a=navigator.appName)),i.indexOf(" wv"),-1!=(r=A.indexOf(";"))&&(A=A.substring(0,r)),-1!=(r=A.indexOf(" "))&&(A=A.substring(0,r)),-1!=(r=A.indexOf(")"))&&(A=A.substring(0,r)),s=parseInt(""+A,10),isNaN(s)&&(A=""+parseFloat(navigator.appVersion),s=parseInt(navigator.appVersion,10));var c=/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(o),u=!!navigator.cookieEnabled;void 0!==navigator.cookieEnabled||u||(document.cookie="testcookie",u=-1!=document.cookie.indexOf("testcookie"));var l="-",f=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows Server 2003",r:/Windows NT 5.2/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Windows 2000",r:/(Windows NT 5.0|Windows 2000)/},{s:"Windows ME",r:/(Win 9x 4.90|Windows ME)/},{s:"Windows 98",r:/(Windows 98|Win98)/},{s:"Windows 95",r:/(Windows 95|Win95|Windows_95)/},{s:"Windows NT 4.0",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:"Windows CE",r:/Windows CE/},{s:"Windows 3.11",r:/Win16/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Linux",r:/(Linux|X11)/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS XI",r:/Mac OS X 11/},{s:"Mac OS X",r:/Mac OS X 10/},{s:"Mac OS",r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"QNX",r:/QNX/},{s:"UNIX",r:/UNIX/},{s:"BeOS",r:/BeOS/},{s:"OS/2",r:/OS\/2/},{s:"Search Bot",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}];for(var p in f){var d=f[p];if(d.r.test(i)){l=d.s;break}}var g="-";switch(/Windows/.test(l)&&(g=/Windows (.*)/.exec(l)[1],l="Windows"),l){case"Mac OS XI":g=/Mac OS X (11[\.\_\d]+)/.exec(i)[1];break;case"Mac OS X":g=/Mac OS X (10[\.\_\d]+)/.exec(i)[1];break;case"Android":g=/Android ([\.\_\d]+)/.exec(i)[1];break;case"iOS":g=(g=/OS (\d+)_(\d+)_?(\d+)?/.exec(o))[1]+"."+g[2]+"."+(0|g[3])}return{screen:e,browser:a,browserVersion:A,browserMajorVersion:s,mobile:c,ua:i,os:l,osVersion:g,cookies:u}},G=/<sync|<\/body|<\/sami/i,z=/\r\n?|\n/g,_=/<[a-z]*[^>]*<[a-z]*/g,V=/<sync[^>]+?start[^=]*=[^0-9]*([0-9]*)["^0-9"]*/i,H=/<br[^>]*>/gi,J=function(e,t){return t=(((t||"")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join(""),e.replace(/<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi,"").replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,(function(e,n){return t.indexOf("<"+n.toLowerCase()+">")>-1?e:""}))},Z=function(e){return e.sort((function(e,t){var n;return 0==(n=e.start-t.start)?e.end-t.end:n}))},K=function(){var e={},t=function(e){return e.map((function(e){return new h(e.start,e.end,e.text)}))};return e.load=function(e,n,r,o){fetch(e.file).then((function(e){e.ok?e.text().then((function(e){var o=[],i=[];if(e.indexOf("WEBVTT")>=0){OvenPlayerConsole.log("WEBVTT LOADED");var A=new j.Parser(window,j.StringDecoder());i=[],A.oncue=function(e){i.push(e)},A.onflush=function(){r(i)},A.parse(e)}else if(e.indexOf("SAMI")>=0){OvenPlayerConsole.log("SAMI LOADED");var s=function(e,t){var n,r,o,i,a,A,s,c,u,l;if(s=function(){var t,n,r,a,s,c,u,f,p,d,g,h,v,m,C,y;for(n=function(e){var n;return(n=new Error(e)).line=u,n.context=t,o.push(n)},u=1,p=[],v={},h=e;d=h.search(),!(f<=0||d<0);)f=h.slice(d+1).search(G)+1,t=f>0?h.slice(d,d+f):h.slice(d),u+=(null!=(m=h.slice(0,d).match(z))?m.length:void 0)||0,_.test(t)&&n("ERROR_BROKEN_TAGS"),h=h.slice(d+f),(null===(g=+(null!=(C=t.match(V))?parseFloat(C[1]/1e3):void 0))||g<0)&&n("ERROR_INVALID_TIME"),(s=i(t))||n("ERROR_INVALID_LANGUAGE"),u+=(null!=(y=t.match(z))?y.length:void 0)||0,t=(t=t.replace(z,"")).replace(H,"\n"),a={start:g,text:"",contents:r=J(t).trim()},s&&(a.text=r),v[s]||(v[s]=[]),a.start&&v[s].push(a);l=l||function(){var e,t,n=window.navigator,r=["language","browserLanguage","systemLanguage","userLanguage"];if(Array.isArray(n.languages))for(e=0;e<n.languages.length;e++)if((t=n.languages[e])&&t.length)return t;for(e=0;e<r.length;e++)if((t=n[r[e]])&&t.length)return t;return null}();var b=Object.keys(v);return b&&b.length>0&&(c=b.indexOf(l)>-1?v[l]:v[b.filter((function(e){return"undefined"!==e}))[0]],c=Z(c),c=A(c),p=p.concat(c)),Z(p)},i=function(e){var t,r;if(e)for(t in n)if((r=n[t]).reClassName.test(e))return r.lang},A=function(e){var t,n,o;for(t=e.length;t--;)n=e[t],null!=(o=e[t-1])&&(o.end=n.start),n.contents&&"&nbsp;"!==n.contents?(delete e[t].contents,n.end||(n.end=n.start+r)):e.splice(t,1);return e},o=[],n={KRCC:{lang:"ko",reClassName:new RegExp("class[^=]*?=[\"'S]*(KRCC)['\"S]?","i")},KOCC:{lang:"ko",reClassName:new RegExp("class[^=]*?=[\"'S]*(KOCC)['\"S]?","i")},KR:{lang:"ko",reClassName:new RegExp("class[^=]*?=[\"'S]*(KR)['\"S]?","i")},ENCC:{lang:"en",reClassName:new RegExp("class[^=]*?=[\"'S]*(ENCC)['\"S]?","i")},EGCC:{lang:"en",reClassName:new RegExp("class[^=]*?=[\"'S]*(EGCC)['\"S]?","i")},EN:{lang:"en",reClassName:new RegExp("class[^=]*?=[\"'S]*(EN)['\"S]?","i")},JPCC:{lang:"ja",reClassName:new RegExp("class[^=]*?=[\"'S]*(JPCC)['\"S]?","i")}},null!=t?t.definedLangs:void 0)for(a in u=t.definedLangs)c=u[a],n[a]=c;return r=(null!=t?t.duration:void 0)||10,l=t.fixedLang,e=e.trim(),{result:s(),errors:o}}(e,{fixedLang:n});i=t(s.result),r(i)}else OvenPlayerConsole.log("SRT LOADED"),o=function(e){var t=[],n=(e=a(e)).split("\r\n\r\n");1===n.length&&(n=e.split("\n\n"));for(var r=0;r<n.length;r++)if("WEBVTT"!==n[r]){var o=u(n[r]);o.text&&t.push(o)}return t}(e),i=t(o),r(i)})).catch((function(e){o(e)})):o(e.status)})).catch((function(e){o(e)}))},e},X="idle",q="complete",$="paused",ee="playing",te="error",ne="loading",re="stalled",oe="adLoaded",ie="adPlaying",ae="adPaused",Ae="adComplete",se="adError",ce="html5",ue="webrtc",le="dash",fe="hls",pe="rtmp",de="ready",ge="destroy",he="playlistChanged",ve="allPlaylistEnded",me="unstableNetwork",Ce="error",ye="stateChanged",be="pause",we="play",Ee="clicked",Be="resized",xe="fullscreenChanged",ke="warning",Ie="adChanged",Se="adTime",Te="bufferChanged",Le="time",Re="volumeChanged",Qe="mute",Oe="metaChanged",Me="sourceChanged",De="qualityLevelChanged",Fe="cueChanged",Pe="captionChanged",Ue="timeDisplayModeChanged",Ne="p2pMode",We="audioTrackChanged",je={codes:""},Ye=[{lang:"en",ui:{context:"About OvenPlayer",controls:{live:"Live Streaming",low_latency_live:"Sub-Second Latency Streaming",low_latency_p2p:"Sub-Second Latency P2P"},playlist:"Playlist",setting:{title:"Settings",speed:"Speed",speedUnit:"x",source:"Source",quality:"Quality",audioTrack:"Audio",caption:"Caption",display:"Display"}},api:{message:{muted_play:"Please touch here to turn on the sound."},error:{100:{code:100,message:"Can not load due to unknown reasons.",reason:"Can not load due to unknown reasons."},101:{code:101,message:"Can not load due to playable media not found.",reason:"Can not load due to playable media not found."},102:{code:102,message:"Flash fetching process aborted. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>",reason:"It looks like not found swf or your environment is localhost."},103:{code:103,message:"Can not load due to dash.js. Please use the latest dash.js.",reason:"dash.js version is old."},104:{code:104,message:"Can not load due to google ima for Ads. ",reason:"Please check the google ima library."},105:{code:105,message:"Error initializing DASH.",reason:"Error initializing DASH."},106:{code:106,message:"Error initializing HLS.",reason:"Error initializing HLS."},300:{code:300,message:"Can not play due to unknown reasons.",reason:"Can not play due to unknown reasons."},301:{code:301,message:"Fetching process aborted by user.",reason:"Fetching process aborted by user."},302:{code:302,message:"Some of the media could not be downloaded due to a network error.",reason:"Error occurred when downloading."},303:{code:303,message:"Unable to load media. This may be due to a server or network error, or due to an unsupported format.",reason:"Error occurred when decoding."},304:{code:304,message:"Media playback has been canceled. It looks like your media is corrupted or your browser does not support the features your media uses.",reason:"Media playback not supported."},305:{code:305,message:"Can not load captions due to unknown reasons.",reason:"Can not load captions due to unknown reasons."},306:{code:306,message:"Unable to load media. This may be due to a server or network error, or due to an unsupported format.",reason:"The server cannot or will not process the request."},307:{code:307,message:"Unable to load media. This may be due to a server or network error, or due to an unsupported format.",reason:"The server refused the request."},308:{code:308,message:"Unable to load media. This may be due to a server or network error, or due to an unsupported format.",reason:"The server do not accept the request."},501:{code:501,message:"Connection with low-latency(OME) server failed.",reason:"WebSocket connection failed."},502:{code:502,message:"Connection with low-latency(OME) server failed.",reason:"WebRTC addIceCandidate failed."},503:{code:503,message:"Connection with low-latency(OME) server failed.",reason:"WebRTC setRemoteDescription failed."},504:{code:504,message:"Connection with low-latency(OME) server failed.",reason:"WebRTC peer createOffer failed."},505:{code:505,message:"Connection with low-latency(OME) server failed.",reason:"WebRTC setLocalDescription failed."},506:{code:506,message:"Connection with low-latency(OME) server failed.",reason:"WebRTC internal error."},510:{code:510,message:"Network connection is unstable. Check the network connection.",reason:"Network is slow."},511:{code:511,message:"Connection with low-latency(OME) terminated unexpectedly.",reason:"Unexpected end of connection."},512:{code:512,message:"Connection with low-latency(OME) server failed.",reason:"Connection timeout."}}}},{lang:"ko",ui:{context:"오븐플레이어에 관하여",controls:{live:"라이브",low_latency_live:"초저지연 라이브",low_latency_p2p:"초저지연 P2P"},playlist:"플레이리스트",setting:{title:"설정",speed:"재생 속도",speedUnit:"x",source:"소스",quality:"품질",audioTrack:"오디오",caption:"자막",display:"표시"}},api:{message:{muted_play:"눌러서 소리 켜기"},error:{100:{code:100,message:"알 수 없는 이유로 로드 할 수 없습니다.",reason:"알 수 없는 이유로 로드 할 수 없습니다."},101:{code:101,message:"지원되는 미디어를 찾지 못해 로드 할 수 없습니다.",reason:"Can not load due to playable media not found."},102:{code:102,message:"플레시 로드가 중단 되었습니다. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>",reason:"It looks like not found swf or your environment is localhost."},103:{code:103,message:"DashJS로 인해 로드 할 수 없습니다. 최신 dash.js를 사용해 주세요.",reason:"dash.js version is old."},104:{code:104,message:"Google IMA 라이브러리가 없어 로드 할 수 없습니다.",reason:"Please check the google ima library."},105:{code:105,message:"DASH 초기화 중 오류가 발생했습니다.",reason:"Error initializing DASH."},106:{code:106,message:"HLS 초기화 중 오류가 발생했습니다.",reason:"Error initializing HLS."},300:{code:300,message:"알 수 없는 이유로 재생할 수 없습니다.",reason:"Can not play due to unknown reasons."},301:{code:301,message:"사용자에 의한 프로세스 중단.",reason:"Fetching process aborted by user."},302:{code:302,message:"네트워크 오류로 인해 일부 미디어를 다운로드 할 수 없습니다.",reason:"Error occurred when downloading."},303:{code:303,message:"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.",reason:"Error occurred when decoding."},304:{code:304,message:"미디어 재생이 취소되었습니다. 미디어가 손상되었거나 브라우저가 미디어에서 사용하는 기능을 지원하지 않는 것 같습니다.",reason:"Media playback not supported."},305:{code:305,message:"알 수 없는 이유로 자막을 로드 할 수 없습니다.",reason:"Can not load captions due to unknown reasons."},306:{code:306,message:"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.",reason:"The server cannot or will not process the request."},307:{code:307,message:"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.",reason:"The server refused the request."},308:{code:308,message:"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.",reason:"The server do not accept the request."},501:{code:501,message:"웹소켓 연결 실패",reason:"WebSocket connection failed."},502:{code:502,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"WebRTC addIceCandidate failed."},503:{code:503,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"WebRTC setRemoteDescription failed."},504:{code:504,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"WebRTC peer createOffer failed."},505:{code:505,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"WebRTC setLocalDescription failed."},506:{code:506,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"WebRTC internal error."},510:{code:510,message:"네트워크 연결이 불안정합니다. 네트워크 연결을 확인하십시오.",reason:"Network is slow."},511:{code:511,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"Unexpected end of connection."},512:{code:512,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"Connection timeout."}}}},{lang:"pl",ui:{context:"O OvenPlayer",controls:{live:"Transmisja na żywo",low_latency_live:"Transmisja z niskim opóźnieniem",low_latency_p2p:"Transmisja z niskim opóźnieniem P2P"},playlist:"Playlista",setting:{title:"Ustawienia",speed:"Prędkość",speedUnit:"x",source:"Źrodło",quality:"Jakość",audioTrack:"Audio",caption:"Podtytuł",display:"Wyświetlacz"}},api:{message:{muted_play:"Naciśnij tutaj, aby aktywować dźwięk"},error:{100:{code:100,message:"Nie można załadować z nieznanego powodu.",reason:"Can not load due to unknown reasons."},101:{code:101,message:"Nie można załadować, ponieważ nie znaleziono multimediów, który można odtworzyć.",reason:"Can not load due to playable media not found."},102:{code:102,message:"Flash fetching process aborted. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>",reason:"It looks like not found swf or your environment is localhost."},103:{code:103,message:"Nie można załadować, ponieważ wersja dash.js jest za stara.",reason:"dash.js version is old."},104:{code:104,message:"Can not load due to google ima for Ads. ",reason:"Please check the google ima library."},105:{code:105,message:"Nie można załadować, nie znaleziono DASH.",reason:"Error initializing DASH."},106:{code:106,message:"Nie można załadować, nie znaleziono hlsjs.",reason:"Error initializing HLS"},300:{code:300,message:"Nie można odtworzyć z nieznanego powodu.",reason:"Can not play due to unknown reasons."},301:{code:301,message:"Proces pobierania przerwany przez użytkownika.",reason:"Fetching process aborted by user."},302:{code:302,message:"Nie udało się pobrać niektórych multimediów z powodu błędu sieci.",reason:"Error occurred when downloading."},303:{code:303,message:"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.",reason:"Error occurred when decoding."},304:{code:304,message:"Odtwarzanie zostało anulowane. Wygląda na to, że plik jest uszkodzony lub Twoja przeglądarka nie obsługuje tego pliku.",reason:"Media playback not supported."},305:{code:305,message:"Nie można wczytać napisów z nieznanego powodu.",reason:"Can not load captions due to unknown reasons."},306:{code:306,message:"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.",reason:"The server cannot or will not process the request."},307:{code:307,message:"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.",reason:"The server refused the request."},308:{code:308,message:"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.",reason:"The server do not accept the request."},501:{code:501,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebSocket connection failed."},502:{code:502,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebRTC addIceCandidate failed."},503:{code:503,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebRTC setRemoteDescription failed."},504:{code:504,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebRTC peer createOffer failed."},505:{code:505,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebRTC setLocalDescription failed."},506:{code:506,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebRTC internal error."},510:{code:510,message:"Połączenie sieciowe jest niestabilne. Sprawdź swoją sieć.",reason:"Network is slow."},511:{code:511,message:"Połączenie z serwerem niskiego opóźnienia (OME) nieoczekiwanie zakończone.",reason:"Unexpected end of connection."},512:{code:512,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"Connection timeout."}}}}],Ge=function(e){return"subtitles"===e||"captions"===e},ze=function(e){var t=e,n=[],r=function(e,t,n){var r=0,o=e.length;for(r=0;r<o;r++){var i=e[r];i.listener.apply(i.context||n,t)}};return t.on=function(e,r,o){return(n[e]||(n[e]=[])).push({listener:r,context:o}),t},t.trigger=function(e){if(!n)return!1;var o=[].slice.call(arguments,1),i=n[e],a=n.all;i&&r(i,o,t),a&&r(a,arguments,t)},t.off=function(e,r,o){if(!n)return!1;if(!e&&!r&&!o)return n=[],t;for(var i=e?[e]:Object.keys(n),a=0,A=i.length;a<A;a++){e=i[a];var s=n[e];if(s){var c=n[e]=[];if(r||o)for(var u=0,l=s.length;u<l;u++){var f=s[u];(r&&r!==f.listener&&r!==f.listener.listener&&r!==f.listener._listener||o&&o!==f.context)&&c.push(f)}c.length||delete n[e]}}return t},t.once=function(e,n,r){var o=0,i=function r(){o++||(t.off(e,r),n.apply(t,arguments))};return i._listener=n,t.on(e,i,r)},t},_e=(n(1001),function e(t){var n={},r=null,o=function(e,t){var n=e.querySelectorAll(t);return n.length>1?n:n[0]};return(r=i().isElement(t)||i().every(t,(function(e){return i().isElement(e)}))?t:"document"===t?document:"window"===t?window:o(document,t))?(n.show=function(){r.style.display="block"},n.hide=function(){r.style.display="none"},n.addClass=function(e){r.classList?r.classList.add(e):-1===r.className.split(" ").indexOf(e)&&(r.className+=" "+e)},n.after=function(e){r.insertAdjacentHTML("afterend",e)},n.append=function(e){r.appendChild(e)},n.before=function(e){r.insertAdjacentHTML("beforebegin",e)},n.children=function(){return r.children||[]},n.contains=function(e){return r!==e&&r.contains(e)},n.empty=function(){r.innerHTML=""},n.find=function(t){return e(o(r,t))},n.css=function(e,t){if(!t)return r.style[e];r.length>0?r.forEach((function(n){n.style[e]=t})):r.style[e]=t},n.removeClass=function(e){r.classList?r.classList.remove(e):r.className=r.className.replace(new RegExp("(^|\\b)"+e.split(" ").join("|")+"(\\b|$)","gi")," ")},n.removeAttribute=function(e){r.removeAttribute(e)},n.text=function(e){if(void 0===e)return r.textContent;r.textContent=e},n.html=function(e){r.innerHTML=e},n.hasClass=function(e){return r.classList?r.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(r.name)},n.is=function(e){return r===e},n.offset=function(){var e=r.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},n.width=function(){return r.clientWidth},n.height=function(){return r.clientHeight},n.attr=function(e){return r.getAttribute(e)},n.replace=function(e){r.replaceWith(e)},n.remove=function(){r.length>1?r.parentElement.removeChild(r):r.remove()},n.removeChild=function(e){if(e)r.removeChild(e);else for(;r.hasChildNodes();)r.removeChild(r.firstChild)},n.get=function(){return r},n.closest=function(t){r.closest=function(e){var t=r;do{if(t.matches(e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null};var n=r.closest(t);return n?e(n):null},n):null}),Ve=function(e,t){if(e)return 0==e.indexOf("rtmp:")||"rtmp"==t},He=function(e,t){return!!e&&(0===e.indexOf("ws:")||0===e.indexOf("wss:")||"webrtc"===t)},Je=function(e,t){if(e)return"hls"===t||"m3u8"===t||"application/vnd.apple.mpegurl"===t||"m3u8"==A(e)},Ze=function(e,t){if(e)return"mpd"===t||"dash"===t||"application/dash+xml"===t||"mpd"==A(e)},Ke=function(e){if(!e)return null;var t=null;if("string"==typeof e)t=document.getElementById(e);else{if(!e.nodeType)return null;t=e}return t},Xe=function(){var e={};OvenPlayerConsole.log("SupportChecker loaded.");var t=Y(),n=[{name:"html5",checkSupport:function(e){var n=document.createElement("video");if(!n.canPlayType)return!1;var r=e.file,o=e.type;if(!o)return!1;var i=e.mimeType||{aac:"audio/mp4",mp4:"video/mp4",f4v:"video/mp4",m4v:"video/mp4",mov:"video/mp4",mp3:"audio/mpeg",mpeg:"audio/mpeg",ogv:"video/ogg",ogg:"video/ogg",oga:"video/ogg",vorbis:"video/ogg",webm:"video/webm",f4a:"video/aac",m3u8:"application/vnd.apple.mpegurl",m3u:"application/vnd.apple.mpegurl",hls:"application/vnd.apple.mpegurl"}[o];return!(Je(r,o)&&("Microsoft Edge"===t.browser||"Android"===t.os)||Ve(r,o)||He(r,o)||!i||!n.canPlayType(i))}},{name:"webrtc",checkSupport:function(e){if(!document.createElement("video").canPlayType)return!1;if(Ve(t,n))return!1;var t=e.file,n=e.type;return!!He(t,n)}},{name:"dash",checkSupport:function(e){var t=e.file,n=e.type;return!Ve(t,n)&&!("function"!=typeof(window.MediaSource||window.WebKitMediaSource)||!Ze(t,n))}},{name:"hls",checkSupport:function(e){document.createElement("video");var t,n,r,o,i=e.file,a=e.type;return!Ve(i,a)&&(t=function(){if("undefined"!=typeof window)return window.MediaSource||window.WebKitMediaSource}(),n=window.SourceBuffer||window.WebKitSourceBuffer,r=t&&"function"==typeof t.isTypeSupported&&t.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),o=!n||n.prototype&&"function"==typeof n.prototype.appendBuffer&&"function"==typeof n.prototype.remove,!!r&&!!o)}},{name:"rtmp",checkSupport:function(e){var n=e.file,r=e.type;return!(!Ve(n,r)||!function(){var e=!1;if("ActiveXObject"in window)try{e=!!new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(t){e=!1}else e=!!navigator.mimeTypes["application/x-shockwave-flash"];return e}()||"Microsoft Edge"===t.browser||"Android"===t.os||"iOS"===t.os||"Safari"===t.browser)}}];return e.findProviderNameBySource=function(e){OvenPlayerConsole.log("SupportChecker : findProviderNameBySource()",e);for(var t=e===Object(e)?e:{},r=0;r<n.length;r++)if(n[r].checkSupport(t))return n[r].name},e.findProviderNamesByPlaylist=function(t){OvenPlayerConsole.log("SupportChecker : findProviderNamesByPlaylist()",t);var n=[],r=t;if(r&&r.sources){for(var o=0;o<r.sources.length;o++){var i=r.sources[o];if(i){var a=e.findProviderNameBySource(i);a&&n.push(a)}}return n}return null},e},qe="data:video/mp4;base64, AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw",$e=function(e,t){t&&(t.setState(te),t.pause(),t.trigger(Ce,e))},et=function(e,t){var n=0;if(e)if(-1===t.getSourceIndex()){for(var r=0;r<e.length;r++)if(e[r].default){n=r;break}}else n=t.getSourceIndex();return n},tt=function(e,t,n,r,o){var i,a="admanagerLoadingTimeout",A="",s="",c={},u=!1,l=!1,f={started:!1,active:!1,isVideoEnded:!1},p=null,d=null,g=null,h=null,v=null,m=null,C=null,y=!1,b=!1,w=n.getBrowser(),E="Android"===w.os||"iOS"===w.os;OvenPlayerConsole.log("IMA : started ","isMobile : ",E,r);try{A=google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,s=google.ima.AdErrorEvent.Type.AD_ERROR,google.ima.settings.setLocale(n.getLanguage()),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(!0),d=function(e){console.log(e.getError().getVastErrorCode(),e.getError().getMessage()),l=!0;var n=e.getError().getInnerError();n&&console.log(n.getErrorCode(),n.getMessage()),t.trigger(se,{code:e.getError().getVastErrorCode(),message:e.getError().getMessage()}),f.active=!1,f.started=!0,t.play()},p=function(n){OvenPlayerConsole.log("IMA : OnManagerLoaded ");var r=new google.ima.AdsRenderingSettings;r.restoreCustomPlaybackStateOnAdBreakComplete=!0,v&&(OvenPlayerConsole.log("IMA : destroy adsManager----"),m.destroy(),m=null,v.destroy(),v=null),v=n.getAdsManager(e,r),m=function(e,t,n,r){var o={},i={},a=null,A=google.ima.AdEvent.Type.AD_BUFFERING,s=google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,c=google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,u=google.ima.AdErrorEvent.Type.AD_ERROR,l=google.ima.AdEvent.Type.ALL_ADS_COMPLETED,f=google.ima.AdEvent.Type.CLICK,p=google.ima.AdEvent.Type.SKIPPED,d=google.ima.AdEvent.Type.COMPLETE,g=google.ima.AdEvent.Type.FIRST_QUARTILE,h=google.ima.AdEvent.Type.LOADED,v=google.ima.AdEvent.Type.MIDPOINT,m=google.ima.AdEvent.Type.PAUSED,C=google.ima.AdEvent.Type.RESUMED,y=google.ima.AdEvent.Type.STARTED,b=google.ima.AdEvent.Type.USER_CLOSE,w=google.ima.AdEvent.Type.THIRD_QUARTILE,E=!1,B=null;return OvenPlayerConsole.log("IMA : Listener Created"),i[s]=function(e){OvenPlayerConsole.log("IMA LISTENER : ",e.type),n.started&&(n.active=!0,t.pause())},i[c]=function(e){OvenPlayerConsole.log("IMA LISTENER : ",e.type),n.active=!1,!n.started||0!==t.getPosition()&&n.isVideoEnded||t.play()},i[u]=function(e){E=!0,r(e)},i[l]=function(e){OvenPlayerConsole.log("IMA LISTENER : ",e.type),E=!0,n.isVideoEnded&&t.setState(q)},i[f]=function(e){OvenPlayerConsole.log(e.type),t.trigger(Ee,{type:"adclick"})},i[g]=function(e){OvenPlayerConsole.log(e.type)},i[A]=function(e){OvenPlayerConsole.log("AD_BUFFERING",e.type)},i[h]=function(n){OvenPlayerConsole.log(n.type);var r=e.getRemainingTime(),o=n.getAd();t.trigger(oe,{remaining:r,isLinear:o.isLinear()})},i[v]=function(e){OvenPlayerConsole.log(e.type)},i[m]=function(e){OvenPlayerConsole.log(e.type),t.setState(ae)},i[C]=function(e){OvenPlayerConsole.log(e.type),t.setState(ie)},i[y]=function(r){OvenPlayerConsole.log(r.type);var o=r.getAd();B=o;var i={isLinear:o.isLinear(),duration:o.getDuration(),skipTimeOffset:o.getSkipTimeOffset()};t.trigger(Ie,i),o.isLinear()?(t.setState(ie),n.started=!0,a=setInterval((function(){var n=e.getRemainingTime(),r=o.getDuration();t.trigger(Se,{duration:r,skipTimeOffset:o.getSkipTimeOffset(),remaining:n,position:r-n,skippable:e.getAdSkippableState()})}),300)):t.play()},i[d]=function(e){OvenPlayerConsole.log(e.type),e.getAd().isLinear()&&clearInterval(a),t.trigger(Ae)},i[p]=function(e){OvenPlayerConsole.log(e.type),e.getAd().isLinear()&&clearInterval(a),t.trigger(Ae)},i[b]=function(e){OvenPlayerConsole.log(e.type),e.getAd().isLinear()&&clearInterval(a),t.trigger(Ae)},i[w]=function(e){OvenPlayerConsole.log(e.type)},Object.keys(i).forEach((function(t){e.removeEventListener(t,i[t]),e.addEventListener(t,i[t])})),o.setAdCompleteCallback=function(e){},o.isAllAdComplete=function(){return E},o.isLinearAd=function(){return!B||B.isLinear()},o.destroy=function(){OvenPlayerConsole.log("IMAEventListener : destroy()"),Object.keys(i).forEach((function(t){e.removeEventListener(t,i[t])}))},o}(v,t,f,d),OvenPlayerConsole.log("IMA : created admanager and listner "),u=!0};var B=((i=document.createElement("div")).setAttribute("class","op-ads"),i.setAttribute("id","op-ads"),n.getContainer().append(i),i);g=new google.ima.AdDisplayContainer(B,e),(h=new google.ima.AdsLoader(g)).addEventListener(A,p,!1),h.addEventListener(s,d,!1),OvenPlayerConsole.log("IMA : adDisplayContainer initialized"),t.on(Re,(function(e){v&&(e.mute?v.setVolume(0):v.setVolume(e.volume/100))}),c);var x=function(){C&&(OvenPlayerConsole.log("IMA : setADWillAutoPlay ","autoplayAllowed",y,"autoplayRequiresMuted",b),C.setAdWillAutoPlay(y),C.setAdWillPlayMuted(b),b&&t.trigger(ke,{message:"Please touch here to turn on the sound.",timer:1e4,iconClass:"volume-mute",onClickCallback:function(){t.setMute(!1)}}))};return c.isActive=function(){return f.active},c.started=function(){return f.started},c.play=function(){return f.started?new Promise((function(e,t){try{v.resume(),e()}catch(e){t(e)}})):(g.initialize(),new Promise((function(o,i){var A=0,s=function e(){A++,u?(OvenPlayerConsole.log("IMA : ad start!"),v.init("100%","100%",google.ima.ViewMode.NORMAL),v.start(),f.started=!0,o()):l?i(new Error(a)):A<150?setTimeout(e,100):i(new Error(a))};(function(){OvenPlayerConsole.log("IMA : checkAutoplaySupport() ");var n=document.createElement("video");n.setAttribute("playsinline","true"),n.src=qe,n.load(),E&&t.getName()!==le&&e.load();var r=function(e,t){y=e,b=t,n.pause(),n.remove(),x()};return new Promise((function(e,t){if(n.play){var o=n.play();void 0!==o?o.then((function(){OvenPlayerConsole.log("IMA : auto play allowed."),r(!0,!1),e()})).catch((function(t){OvenPlayerConsole.log("IMA : auto play failed",t.message),r(!1,!1),e()})):(OvenPlayerConsole.log("IMA : promise not support"),r(!0,!1),e())}else OvenPlayerConsole.log("IMA : !temporarySupportCheckVideo.play"),r(!0,!1),e()}))})().then((function(){n.isAutoStart()&&!y?(OvenPlayerConsole.log("IMA : autoplayAllowed : false"),f.started=!1,i(new Error("autoplayNotAllowed"))):(u=!1,OvenPlayerConsole.log("IMA : initRequest() AutoPlay Support : ","autoplayAllowed",y,"autoplayRequiresMuted",b),(C=new google.ima.AdsRequest).forceNonLinearFullSlot=!1,x(),C.adTagUrl=r,h.requestAds(C),OvenPlayerConsole.log("IMA : requestAds Complete"),s())}))})))},c.pause=function(){v.pause()},c.videoEndedCallback=function(e){!m||!m.isAllAdComplete()&&m.isLinearAd()?l?e():(f.isVideoEnded=!0,h.contentComplete()):e()},c.destroy=function(){h&&(h.removeEventListener(A,p),h.removeEventListener(s,d)),v&&v.destroy(),g&&g.destroy(),m&&m.destroy();var e=_e(n.getContainer()).find(".op-ads");e&&e.remove(),t.off(Re,null,c)},c}catch(e){return null}};function nt(e){return nt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},nt(e)}function rt(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ot(e,t)}function ot(e,t){return ot=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},ot(e,t)}function it(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=At(e);if(t){var o=At(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return at(this,n)}}function at(e,t){if(t&&("object"===nt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function At(e){return At=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},At(e)}function st(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ct(e,t,n){return t&&st(e.prototype,t),n&&st(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function ut(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var lt=ct((function e(){ut(this,e),this.id=null,this.sequence=null,this.system=null,this.title=null,this.description=null,this.advertiser=null,this.pricing=null,this.survey=null,this.errorURLTemplates=[],this.impressionURLTemplates=[],this.creatives=[],this.extensions=[]})),ft=ct((function e(){ut(this,e),this.attributes={},this.children=[]})),pt=ct((function e(){ut(this,e),this.name=null,this.value=null,this.attributes={}})),dt=ct((function e(){ut(this,e),this.id=null,this.width=0,this.height=0,this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.altText=null,this.companionClickThroughURLTemplate=null,this.companionClickTrackingURLTemplates=[],this.trackingEvents={}})),gt=ct((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ut(this,e),this.id=t.id||null,this.adId=t.adId||null,this.sequence=t.sequence||null,this.apiFramework=t.apiFramework||null,this.trackingEvents={}})),ht=function(e){rt(n,e);var t=it(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ut(this,n),(e=t.call(this,r)).type="companion",e.variations=[],e}return ct(n)}(gt);function vt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];for(var r in t.ASSETURI&&(t.ASSETURI=mt(t.ASSETURI)),t.CONTENTPLAYHEAD&&(t.CONTENTPLAYHEAD=mt(t.CONTENTPLAYHEAD)),t.ERRORCODE&&!/^[0-9]{3}$/.test(t.ERRORCODE)&&(t.ERRORCODE=900),t.CACHEBUSTING=Ct(Math.round(1e8*Math.random()).toString()),t.TIMESTAMP=mt((new Date).toISOString()),t.RANDOM=t.random=t.CACHEBUSTING,e){var o=e[r];if("string"==typeof o){for(var i in t){var a=t[i],A="[".concat(i,"]"),s="%%".concat(i,"%%");o=(o=o.replace(A,a)).replace(s,a)}n.push(o)}}return n}function mt(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%".concat(e.charCodeAt(0).toString(16))}))}function Ct(e){return e.length<8?yt(0,8-e.length,!1).map((function(e){return"0"})).join("")+e:e}function yt(e,t,n){for(var r=[],o=e<t,i=n?o?t+1:t-1:t,a=e;o?a<i:a>i;o?a++:a--)r.push(a);return r}var bt={track:function(e,t){vt(e,t).forEach((function(e){"undefined"!=typeof window&&null!==window&&((new Image).src=e)}))},resolveURLTemplates:vt,encodeURIComponentRFC3986:mt,leftpad:Ct,range:yt,isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},flatten:function e(t){return t.reduce((function(t,n){return t.concat(Array.isArray(n)?e(n):n)}),[])}},wt=function(e,t){var n=e.childNodes;for(var r in n){var o=n[r];if(o.nodeName===t)return o}},Et=function(e,t){var n=[],r=e.childNodes;for(var o in r){var i=r[o];i.nodeName===t&&n.push(i)}return n},Bt=function(e,t){if(!t)return e;if(0===e.indexOf("//")){var n=location.protocol;return"".concat(n).concat(e)}return-1===e.indexOf("://")?"".concat(t.slice(0,t.lastIndexOf("/")),"/").concat(e):e},xt=function(e){return-1!==["true","TRUE","1"].indexOf(e)},kt=function(e){return e&&(e.textContent||e.text||"").trim()},It=function(e,t,n){var r=t.getAttribute(e);r&&n.setAttribute(e,r)},St=function(e){if(null==e)return-1;if(bt.isNumeric(e))return parseInt(e);var t=e.split(":");if(3!==t.length)return-1;var n=t[2].split("."),r=parseInt(n[0]);2===n.length&&(r+=parseFloat("0.".concat(n[1])));var o=parseInt(60*t[1]),i=parseInt(60*t[0]*60);return isNaN(i)||isNaN(o)||isNaN(r)||o>3600||r>60?-1:i+o+r},Tt=function(e){var t=[],n=null;return e.forEach((function(r,o){if(r.sequence&&(r.sequence=parseInt(r.sequence,10)),r.sequence>1){var i=e[o-1];if(i&&i.sequence===r.sequence-1)return void(n&&n.push(r));delete r.sequence}n=[r],t.push(n)})),t},Lt=function(e,t){e.errorURLTemplates=t.errorURLTemplates.concat(e.errorURLTemplates),e.impressionURLTemplates=t.impressionURLTemplates.concat(e.impressionURLTemplates),e.extensions=t.extensions.concat(e.extensions),e.creatives.forEach((function(e){if(t.trackingEvents&&t.trackingEvents[e.type])for(var n in t.trackingEvents[e.type]){var r=t.trackingEvents[e.type][n];e.trackingEvents[n]||(e.trackingEvents[n]=[]),e.trackingEvents[n]=e.trackingEvents[n].concat(r)}})),t.videoClickTrackingURLTemplates&&t.videoClickTrackingURLTemplates.length&&e.creatives.forEach((function(e){"linear"===e.type&&(e.videoClickTrackingURLTemplates=e.videoClickTrackingURLTemplates.concat(t.videoClickTrackingURLTemplates))})),t.videoCustomClickURLTemplates&&t.videoCustomClickURLTemplates.length&&e.creatives.forEach((function(e){"linear"===e.type&&(e.videoCustomClickURLTemplates=e.videoCustomClickURLTemplates.concat(t.videoCustomClickURLTemplates))})),t.videoClickThroughURLTemplate&&e.creatives.forEach((function(e){"linear"===e.type&&null==e.videoClickThroughURLTemplate&&(e.videoClickThroughURLTemplate=t.videoClickThroughURLTemplate)}))};function Rt(e,t){var n=new ht(t);return Et(e,"Companion").forEach((function(e){var t=new dt;t.id=e.getAttribute("id")||null,t.width=e.getAttribute("width"),t.height=e.getAttribute("height"),t.companionClickTrackingURLTemplates=[],Et(e,"HTMLResource").forEach((function(e){t.type=e.getAttribute("creativeType")||"text/html",t.htmlResource=kt(e)})),Et(e,"IFrameResource").forEach((function(e){t.type=e.getAttribute("creativeType")||0,t.iframeResource=kt(e)})),Et(e,"StaticResource").forEach((function(n){t.type=n.getAttribute("creativeType")||0,Et(e,"AltText").forEach((function(e){t.altText=kt(e)})),t.staticResource=kt(n)})),Et(e,"TrackingEvents").forEach((function(e){Et(e,"Tracking").forEach((function(e){var n=e.getAttribute("event"),r=kt(e);n&&r&&(null==t.trackingEvents[n]&&(t.trackingEvents[n]=[]),t.trackingEvents[n].push(r))}))})),Et(e,"CompanionClickTracking").forEach((function(e){t.companionClickTrackingURLTemplates.push(kt(e))})),t.companionClickThroughURLTemplate=kt(wt(e,"CompanionClickThrough")),t.companionClickTrackingURLTemplate=kt(wt(e,"CompanionClickTracking")),n.variations.push(t)})),n}var Qt=function(e){rt(n,e);var t=it(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ut(this,n),(e=t.call(this,r)).type="linear",e.duration=0,e.skipDelay=null,e.mediaFiles=[],e.videoClickThroughURLTemplate=null,e.videoClickTrackingURLTemplates=[],e.videoCustomClickURLTemplates=[],e.adParameters=null,e.icons=[],e}return ct(n)}(gt),Ot=ct((function e(){ut(this,e),this.program=null,this.height=0,this.width=0,this.xPosition=0,this.yPosition=0,this.apiFramework=null,this.offset=null,this.duration=0,this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.iconClickThroughURLTemplate=null,this.iconClickTrackingURLTemplates=[],this.iconViewTrackingURLTemplate=null})),Mt=ct((function e(){ut(this,e),this.id=null,this.fileURL=null,this.deliveryType="progressive",this.mimeType=null,this.codec=null,this.bitrate=0,this.minBitrate=0,this.maxBitrate=0,this.width=0,this.height=0,this.apiFramework=null,this.scalable=null,this.maintainAspectRatio=null}));function Dt(e,t){var n,r=new Qt(t);r.duration=St(kt(wt(e,"Duration")));var o=e.getAttribute("skipoffset");if(null==o)r.skipDelay=null;else if("%"===o.charAt(o.length-1)&&-1!==r.duration){var i=parseInt(o,10);r.skipDelay=r.duration*(i/100)}else r.skipDelay=St(o);var a=wt(e,"VideoClicks");a&&(r.videoClickThroughURLTemplate=kt(wt(a,"ClickThrough")),Et(a,"ClickTracking").forEach((function(e){r.videoClickTrackingURLTemplates.push(kt(e))})),Et(a,"CustomClick").forEach((function(e){r.videoCustomClickURLTemplates.push(kt(e))})));var A=wt(e,"AdParameters");A&&(r.adParameters=kt(A)),Et(e,"TrackingEvents").forEach((function(e){Et(e,"Tracking").forEach((function(e){var t=e.getAttribute("event"),o=kt(e);if(t&&o){if("progress"===t){if(!(n=e.getAttribute("offset")))return;t="%"===n.charAt(n.length-1)?"progress-".concat(n):"progress-".concat(Math.round(St(n)))}null==r.trackingEvents[t]&&(r.trackingEvents[t]=[]),r.trackingEvents[t].push(o)}}))})),Et(e,"MediaFiles").forEach((function(e){Et(e,"MediaFile").forEach((function(e){var t=new Mt;t.id=e.getAttribute("id"),t.fileURL=kt(e),t.deliveryType=e.getAttribute("delivery"),t.codec=e.getAttribute("codec"),t.mimeType=e.getAttribute("type"),t.apiFramework=e.getAttribute("apiFramework"),t.bitrate=parseInt(e.getAttribute("bitrate")||0),t.minBitrate=parseInt(e.getAttribute("minBitrate")||0),t.maxBitrate=parseInt(e.getAttribute("maxBitrate")||0),t.width=parseInt(e.getAttribute("width")||0),t.height=parseInt(e.getAttribute("height")||0);var n=e.getAttribute("scalable");n&&"string"==typeof n&&("true"===(n=n.toLowerCase())?t.scalable=!0:"false"===n&&(t.scalable=!1));var o=e.getAttribute("maintainAspectRatio");o&&"string"==typeof o&&("true"===(o=o.toLowerCase())?t.maintainAspectRatio=!0:"false"===o&&(t.maintainAspectRatio=!1)),r.mediaFiles.push(t)}))}));var s=wt(e,"Icons");return s&&Et(s,"Icon").forEach((function(e){var t=new Ot;t.program=e.getAttribute("program"),t.height=parseInt(e.getAttribute("height")||0),t.width=parseInt(e.getAttribute("width")||0),t.xPosition=function(e){return-1!==["left","right"].indexOf(e)?e:parseInt(e||0)}(e.getAttribute("xPosition")),t.yPosition=function(e){return-1!==["top","bottom"].indexOf(e)?e:parseInt(e||0)}(e.getAttribute("yPosition")),t.apiFramework=e.getAttribute("apiFramework"),t.offset=St(e.getAttribute("offset")),t.duration=St(e.getAttribute("duration")),Et(e,"HTMLResource").forEach((function(e){t.type=e.getAttribute("creativeType")||"text/html",t.htmlResource=kt(e)})),Et(e,"IFrameResource").forEach((function(e){t.type=e.getAttribute("creativeType")||0,t.iframeResource=kt(e)})),Et(e,"StaticResource").forEach((function(e){t.type=e.getAttribute("creativeType")||0,t.staticResource=kt(e)}));var n=wt(e,"IconClicks");n&&(t.iconClickThroughURLTemplate=kt(wt(n,"IconClickThrough")),Et(n,"IconClickTracking").forEach((function(e){t.iconClickTrackingURLTemplates.push(kt(e))}))),t.iconViewTrackingURLTemplate=kt(wt(e,"IconViewTracking")),r.icons.push(t)})),r}var Ft,Pt=function(e){rt(n,e);var t=it(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ut(this,n),(e=t.call(this,r)).type="nonlinear",e.variations=[],e}return ct(n)}(gt),Ut=ct((function e(){ut(this,e),this.id=null,this.width=0,this.height=0,this.expandedWidth=0,this.expandedHeight=0,this.scalable=!0,this.maintainAspectRatio=!0,this.minSuggestedDuration=0,this.apiFramework="static",this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.nonlinearClickThroughURLTemplate=null,this.nonlinearClickTrackingURLTemplates=[],this.adParameters=null}));function Nt(e,t){var n=new Pt(t);return Et(e,"TrackingEvents").forEach((function(e){var t,r;Et(e,"Tracking").forEach((function(e){t=e.getAttribute("event"),r=kt(e),t&&r&&(null==n.trackingEvents[t]&&(n.trackingEvents[t]=[]),n.trackingEvents[t].push(r))}))})),Et(e,"NonLinear").forEach((function(e){var t=new Ut;t.id=e.getAttribute("id")||null,t.width=e.getAttribute("width"),t.height=e.getAttribute("height"),t.expandedWidth=e.getAttribute("expandedWidth"),t.expandedHeight=e.getAttribute("expandedHeight"),t.scalable=xt(e.getAttribute("scalable")),t.maintainAspectRatio=xt(e.getAttribute("maintainAspectRatio")),t.minSuggestedDuration=St(e.getAttribute("minSuggestedDuration")),t.apiFramework=e.getAttribute("apiFramework"),Et(e,"HTMLResource").forEach((function(e){t.type=e.getAttribute("creativeType")||"text/html",t.htmlResource=kt(e)})),Et(e,"IFrameResource").forEach((function(e){t.type=e.getAttribute("creativeType")||0,t.iframeResource=kt(e)})),Et(e,"StaticResource").forEach((function(e){t.type=e.getAttribute("creativeType")||0,t.staticResource=kt(e)}));var r=wt(e,"AdParameters");r&&(t.adParameters=kt(r)),t.nonlinearClickThroughURLTemplate=kt(wt(e,"NonLinearClickThrough")),Et(e,"NonLinearClickTracking").forEach((function(e){t.nonlinearClickTrackingURLTemplates.push(kt(e))})),n.variations.push(t)})),n}function Wt(e){var t=e.childNodes;for(var n in t){var r=t[n];if(-1!==["Wrapper","InLine"].indexOf(r.nodeName)){if(It("id",e,r),It("sequence",e,r),"Wrapper"===r.nodeName)return Yt(r);if("InLine"===r.nodeName)return jt(r)}}}function jt(e){var t=e.childNodes,n=new lt;for(var r in n.id=e.getAttribute("id")||null,n.sequence=e.getAttribute("sequence")||null,t){var o=t[r];switch(o.nodeName){case"Error":n.errorURLTemplates.push(kt(o));break;case"Impression":n.impressionURLTemplates.push(kt(o));break;case"Creatives":Et(o,"Creative").forEach((function(e){var t={id:e.getAttribute("id")||null,adId:zt(e),sequence:e.getAttribute("sequence")||null,apiFramework:e.getAttribute("apiFramework")||null};for(var r in e.childNodes){var o=e.childNodes[r];switch(o.nodeName){case"Linear":var i=Dt(o,t);i&&n.creatives.push(i);break;case"NonLinearAds":var a=Nt(o,t);a&&n.creatives.push(a);break;case"CompanionAds":var A=Rt(o,t);A&&n.creatives.push(A)}}}));break;case"Extensions":Gt(n.extensions,Et(o,"Extension"));break;case"AdSystem":n.system={value:kt(o),version:o.getAttribute("version")||null};break;case"AdTitle":n.title=kt(o);break;case"Description":n.description=kt(o);break;case"Advertiser":n.advertiser=kt(o);break;case"Pricing":n.pricing={value:kt(o),model:o.getAttribute("model")||null,currency:o.getAttribute("currency")||null};break;case"Survey":n.survey=kt(o)}}return n}function Yt(e){var t=jt(e),n=wt(e,"VASTAdTagURI");if(n?t.nextWrapperURL=kt(n):(n=wt(e,"VASTAdTagURL"))&&(t.nextWrapperURL=kt(wt(n,"URL"))),t.creatives.forEach((function(e){if(-1!==["linear","nonlinear"].indexOf(e.type)){if(e.trackingEvents){t.trackingEvents||(t.trackingEvents={}),t.trackingEvents[e.type]||(t.trackingEvents[e.type]={});var n=function(n){var r=e.trackingEvents[n];t.trackingEvents[e.type][n]||(t.trackingEvents[e.type][n]=[]),r.forEach((function(r){t.trackingEvents[e.type][n].push(r)}))};for(var r in e.trackingEvents)n(r)}e.videoClickTrackingURLTemplates&&(t.videoClickTrackingURLTemplates||(t.videoClickTrackingURLTemplates=[]),e.videoClickTrackingURLTemplates.forEach((function(e){t.videoClickTrackingURLTemplates.push(e)}))),e.videoClickThroughURLTemplate&&(t.videoClickThroughURLTemplate=e.videoClickThroughURLTemplate),e.videoCustomClickURLTemplates&&(t.videoCustomClickURLTemplates||(t.videoCustomClickURLTemplates=[]),e.videoCustomClickURLTemplates.forEach((function(e){t.videoCustomClickURLTemplates.push(e)})))}})),t.nextWrapperURL)return t}function Gt(e,t){t.forEach((function(t){var n=new ft,r=t.attributes,o=t.childNodes;if(t.attributes)for(var i in r){var a=r[i];a.nodeName&&a.nodeValue&&(n.attributes[a.nodeName]=a.nodeValue)}for(var A in o){var s=o[A],c=kt(s);if("#comment"!==s.nodeName&&""!==c){var u=new pt;if(u.name=s.nodeName,u.value=c,s.attributes){var l=s.attributes;for(var f in l){var p=l[f];u.attributes[p.nodeName]=p.nodeValue}}n.children.push(u)}}e.push(n)}))}function zt(e){return e.getAttribute("AdID")||e.getAttribute("adID")||e.getAttribute("adId")||null}function _t(){}function Vt(){Vt.init.call(this)}function Ht(e){return void 0===e._maxListeners?Vt.defaultMaxListeners:e._maxListeners}function Jt(e,t,n){if(t)e.call(n);else for(var r=e.length,o=nn(e,r),i=0;i<r;++i)o[i].call(n)}function Zt(e,t,n,r){if(t)e.call(n,r);else for(var o=e.length,i=nn(e,o),a=0;a<o;++a)i[a].call(n,r)}function Kt(e,t,n,r,o){if(t)e.call(n,r,o);else for(var i=e.length,a=nn(e,i),A=0;A<i;++A)a[A].call(n,r,o)}function Xt(e,t,n,r,o,i){if(t)e.call(n,r,o,i);else for(var a=e.length,A=nn(e,a),s=0;s<a;++s)A[s].call(n,r,o,i)}function qt(e,t,n,r){if(t)e.apply(n,r);else for(var o=e.length,i=nn(e,o),a=0;a<o;++a)i[a].apply(n,r)}function $t(e,t,n,r){var o,i,a;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((i=e._events)?(i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),a=i[t]):(i=e._events=new _t,e._eventsCount=0),a){if("function"==typeof a?a=i[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),!a.warned&&(o=Ht(e))&&o>0&&a.length>o){a.warned=!0;var A=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");A.name="MaxListenersExceededWarning",A.emitter=e,A.type=t,A.count=a.length,function(e){"function"==typeof console.warn?console.warn(e):console.log(e)}(A)}}else a=i[t]=n,++e._eventsCount;return e}function en(e,t,n){var r=!1;function o(){e.removeListener(t,o),r||(r=!0,n.apply(e,arguments))}return o.listener=n,o}function tn(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function nn(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}_t.prototype=Object.create(null),Vt.EventEmitter=Vt,Vt.usingDomains=!1,Vt.prototype.domain=void 0,Vt.prototype._events=void 0,Vt.prototype._maxListeners=void 0,Vt.defaultMaxListeners=10,Vt.init=function(){this.domain=null,Vt.usingDomains&&(!Ft.active||this instanceof Ft.Domain||(this.domain=Ft.active)),this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new _t,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Vt.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},Vt.prototype.getMaxListeners=function(){return Ht(this)},Vt.prototype.emit=function(e){var t,n,r,o,i,a,A,s="error"===e;if(a=this._events)s=s&&null==a.error;else if(!s)return!1;if(A=this.domain,s){if(t=arguments[1],!A){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=A,t.domainThrown=!1,A.emit("error",t),!1}if(!(n=a[e]))return!1;var u="function"==typeof n;switch(r=arguments.length){case 1:Jt(n,u,this);break;case 2:Zt(n,u,this,arguments[1]);break;case 3:Kt(n,u,this,arguments[1],arguments[2]);break;case 4:Xt(n,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(o=new Array(r-1),i=1;i<r;i++)o[i-1]=arguments[i];qt(n,u,this,o)}return!0},Vt.prototype.addListener=function(e,t){return $t(this,e,t,!1)},Vt.prototype.on=Vt.prototype.addListener,Vt.prototype.prependListener=function(e,t){return $t(this,e,t,!0)},Vt.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,en(this,e,t)),this},Vt.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,en(this,e,t)),this},Vt.prototype.removeListener=function(e,t){var n,r,o,i,a;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(r=this._events))return this;if(!(n=r[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new _t:(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,i=n.length;i-- >0;)if(n[i]===t||n[i].listener&&n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new _t,this;delete r[e]}else!function(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}(n,o);r.removeListener&&this.emit("removeListener",e,a||t)}return this},Vt.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new _t,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new _t:delete n[e]),this;if(0===arguments.length){for(var r,o=Object.keys(n),i=0;i<o.length;++i)"removeListener"!==(r=o[i])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=new _t,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},Vt.prototype.listeners=function(e){var t,n=this._events;return n&&(t=n[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[]},Vt.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):tn.call(e,t)},Vt.prototype.listenerCount=tn,Vt.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var rn=function(e,t,n){var r="function"==typeof window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLDOM"):void 0;if(!r)return n(new Error("FlashURLHandler: Microsoft.XMLDOM format not supported"));r.async=!1,request.open("GET",e),request.timeout=t.timeout||0,request.withCredentials=t.withCredentials||!1,request.send(),request.onprogress=function(){},request.onload=function(){r.loadXML(request.responseText),n(null,r)}},on=function(){return window.XDomainRequest&&(e=new XDomainRequest),!!e;var e},an=function(e,t,n){n(new Error("Please bundle the library for node to use the node urlHandler"))};function An(){try{var e=new window.XMLHttpRequest;return"withCredentials"in e?e:null}catch(e){return console.log("Error in XHRURLHandler support check:",e),null}}var sn,cn,un=function(e,t,n){if("https:"===window.location.protocol&&0===e.indexOf("http://"))return n(new Error("XHRURLHandler: Cannot go from HTTPS to HTTP."));try{var r=An();r.open("GET",e),r.timeout=t.timeout||0,r.withCredentials=t.withCredentials||!1,r.overrideMimeType&&r.overrideMimeType("text/xml"),r.onreadystatechange=function(){4===r.readyState&&(200===r.status?n(null,r.responseXML):n(new Error("XHRURLHandler: ".concat(r.statusText))))},r.send()}catch(e){n(new Error("XHRURLHandler: Unexpected error"))}},ln=function(){return!!An()},fn={get:function(e,t,n){return n||("function"==typeof t&&(n=t),t={}),"undefined"==typeof window||null===window?an(e,t,n):ln()?un(e,t,n):on()?rn(e,t,n):n(new Error("Current context is not supported by any of the default URLHandlers. Please provide a custom URLHandler"))}},pn=ct((function e(){ut(this,e),this.ads=[],this.errorURLTemplates=[]})),dn={ERRORCODE:900,extensions:[]},gn=function(e){rt(n,e);var t=it(n);function n(){var e;return ut(this,n),(e=t.call(this)).remainingAds=[],e.parentURLs=[],e.errorURLTemplates=[],e.rootErrorURLTemplates=[],e.maxWrapperDepth=null,e.URLTemplateFilters=[],e.fetchingOptions={},e}return ct(n,[{key:"addURLTemplateFilter",value:function(e){"function"==typeof e&&this.URLTemplateFilters.push(e)}},{key:"removeURLTemplateFilter",value:function(){this.URLTemplateFilters.pop()}},{key:"countURLTemplateFilters",value:function(){return this.URLTemplateFilters.length}},{key:"clearURLTemplateFilters",value:function(){this.URLTemplateFilters=[]}},{key:"trackVastError",value:function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];this.emit("VAST-error",Object.assign.apply(Object,[dn,t].concat(r))),bt.track(e,t)}},{key:"getErrorURLTemplates",value:function(){return this.rootErrorURLTemplates.concat(this.errorURLTemplates)}},{key:"fetchVAST",value:function(e,t,n){var r=this;return new Promise((function(o,i){r.URLTemplateFilters.forEach((function(t){e=t(e)})),r.parentURLs.push(e),r.emit("VAST-resolving",{url:e,wrapperDepth:t,originalUrl:n}),r.urlHandler.get(e,r.fetchingOptions,(function(t,n){r.emit("VAST-resolved",{url:e,error:t}),t?i(t):o(n)}))}))}},{key:"initParsingStatus",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.rootURL="",this.remainingAds=[],this.parentURLs=[],this.errorURLTemplates=[],this.rootErrorURLTemplates=[],this.maxWrapperDepth=e.wrapperLimit||10,this.fetchingOptions={timeout:e.timeout,withCredentials:e.withCredentials},this.urlHandler=e.urlhandler||fn}},{key:"getRemainingAds",value:function(e){var t=this;if(0===this.remainingAds.length)return Promise.reject(new Error("No more ads are available for the given VAST"));var n=e?bt.flatten(this.remainingAds):this.remainingAds.shift();return this.errorURLTemplates=[],this.parentURLs=[],this.resolveAds(n,{wrapperDepth:0,originalUrl:this.rootURL}).then((function(e){return t.buildVASTResponse(e)}))}},{key:"getAndParseVAST",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.initParsingStatus(n),this.rootURL=e,this.fetchVAST(e).then((function(r){return n.originalUrl=e,n.isRootVAST=!0,t.parse(r,n).then((function(e){return t.buildVASTResponse(e)}))}))}},{key:"parseVAST",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.initParsingStatus(n),n.isRootVAST=!0,this.parse(e,n).then((function(e){return t.buildVASTResponse(e)}))}},{key:"buildVASTResponse",value:function(e){var t=new pn;return t.ads=e,t.errorURLTemplates=this.getErrorURLTemplates(),this.completeWrapperResolving(t),t}},{key:"parse",value:function(e,t){var n=t.resolveAll,r=void 0===n||n,o=t.wrapperSequence,i=void 0===o?null:o,a=t.originalUrl,A=void 0===a?null:a,s=t.wrapperDepth,c=void 0===s?0:s,u=t.isRootVAST,l=void 0!==u&&u;if(!e||!e.documentElement||"VAST"!==e.documentElement.nodeName)return Promise.reject(new Error("Invalid VAST XMLDocument"));var f=[],p=e.documentElement.childNodes;for(var d in p){var g=p[d];if("Error"===g.nodeName){var h=kt(g);l?this.rootErrorURLTemplates.push(h):this.errorURLTemplates.push(h)}if("Ad"===g.nodeName){var v=Wt(g);v?f.push(v):this.trackVastError(this.getErrorURLTemplates(),{ERRORCODE:101})}}var m=f.length,C=f[m-1];return 1===m&&null!=i&&C&&!C.sequence&&(C.sequence=i),!1===r&&(this.remainingAds=Tt(f),f=this.remainingAds.shift()),this.resolveAds(f,{wrapperDepth:c,originalUrl:A})}},{key:"resolveAds",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,r=n.wrapperDepth,o=n.originalUrl,i=[];return t.forEach((function(t){var n=e.resolveWrappers(t,r,o);i.push(n)})),Promise.all(i).then((function(t){var n=bt.flatten(t);if(!n&&e.remainingAds.length>0){var i=e.remainingAds.shift();return e.resolveAds(i,{wrapperDepth:r,originalUrl:o})}return n}))}},{key:"resolveWrappers",value:function(e,t,n){var r=this;return new Promise((function(o,i){if(t++,!e.nextWrapperURL)return delete e.nextWrapperURL,o(e);if(t>=r.maxWrapperDepth||-1!==r.parentURLs.indexOf(e.nextWrapperURL))return e.errorCode=302,delete e.nextWrapperURL,o(e);e.nextWrapperURL=Bt(e.nextWrapperURL,n);var a=e.sequence;n=e.nextWrapperURL,r.fetchVAST(e.nextWrapperURL,t,n).then((function(i){return r.parse(i,{originalUrl:n,wrapperSequence:a,wrapperDepth:t}).then((function(t){if(delete e.nextWrapperURL,0===t.length)return e.creatives=[],o(e);t.forEach((function(t){t&&Lt(t,e)})),o(t)}))})).catch((function(t){e.errorCode=301,e.errorMessage=t.message,o(e)}))}))}},{key:"completeWrapperResolving",value:function(e){if(0===e.ads.length)this.trackVastError(e.errorURLTemplates,{ERRORCODE:303});else for(var t=e.ads.length-1;t>=0;t--){var n=e.ads[t];(n.errorCode||0===n.creatives.length)&&(this.trackVastError(n.errorURLTemplates.concat(e.errorURLTemplates),{ERRORCODE:n.errorCode||303},{ERRORMESSAGE:n.errorMessage||""},{extensions:n.extensions},{system:n.system}),e.ads.splice(t,1))}}}]),n}(Vt),hn=null,vn={data:{},length:0,getItem:function(e){return this.data[e]},setItem:function(e,t){this.data[e]=t,this.length=Object.keys(this.data).length},removeItem:function(e){delete data[e],this.length=Object.keys(this.data).length},clear:function(){this.data={},this.length=0}},mn=function(){function e(){ut(this,e),this.storage=this.initStorage()}return ct(e,[{key:"initStorage",value:function(){if(hn)return hn;try{hn="undefined"!=typeof window&&null!==window?window.localStorage||window.sessionStorage:null}catch(e){hn=null}return hn&&!this.isStorageDisabled(hn)||(hn=vn).clear(),hn}},{key:"isStorageDisabled",value:function(e){var t="__VASTStorage__";try{if(e.setItem(t,t),e.getItem(t)!==t)return e.removeItem(t),!0}catch(e){return!0}return e.removeItem(t),!1}},{key:"getItem",value:function(e){return this.storage.getItem(e)}},{key:"setItem",value:function(e,t){return this.storage.setItem(e,t)}},{key:"removeItem",value:function(e){return this.storage.removeItem(e)}},{key:"clear",value:function(){return this.storage.clear()}}]),e}(),Cn=function(){function e(t,n,r){ut(this,e),this.cappingFreeLunch=t||0,this.cappingMinimumTimeInterval=n||0,this.defaultOptions={withCredentials:!1,timeout:0},this.vastParser=new gn,this.storage=r||new mn,void 0===this.lastSuccessfulAd&&(this.lastSuccessfulAd=0),void 0===this.totalCalls&&(this.totalCalls=0),void 0===this.totalCallsTimeout&&(this.totalCallsTimeout=0)}return ct(e,[{key:"getParser",value:function(){return this.vastParser}},{key:"lastSuccessfulAd",get:function(){return this.storage.getItem("vast-client-last-successful-ad")},set:function(e){this.storage.setItem("vast-client-last-successful-ad",e)}},{key:"totalCalls",get:function(){return this.storage.getItem("vast-client-total-calls")},set:function(e){this.storage.setItem("vast-client-total-calls",e)}},{key:"totalCallsTimeout",get:function(){return this.storage.getItem("vast-client-total-calls-timeout")},set:function(e){this.storage.setItem("vast-client-total-calls-timeout",e)}},{key:"hasRemainingAds",value:function(){return this.vastParser.remainingAds.length>0}},{key:"getNextAds",value:function(e){return this.vastParser.getRemainingAds(e)}},{key:"get",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Date.now();return(n=Object.assign(this.defaultOptions,n)).hasOwnProperty("resolveAll")||(n.resolveAll=!1),this.totalCallsTimeout<r?(this.totalCalls=1,this.totalCallsTimeout=r+36e5):this.totalCalls++,new Promise((function(o,i){if(t.cappingFreeLunch>=t.totalCalls)return i(new Error("VAST call canceled – FreeLunch capping not reached yet ".concat(t.totalCalls,"/").concat(t.cappingFreeLunch)));var a=r-t.lastSuccessfulAd;if(a<0)t.lastSuccessfulAd=0;else if(a<t.cappingMinimumTimeInterval)return i(new Error("VAST call canceled – (".concat(t.cappingMinimumTimeInterval,")ms minimum interval reached")));t.vastParser.getAndParseVAST(e,n).then((function(e){return o(e)})).catch((function(e){return i(e)}))}))}}]),e}(),yn=function(e){rt(n,e);var t=it(n);function n(e,r,o){var i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;for(var A in ut(this,n),(i=t.call(this)).ad=r,i.creative=o,i.variation=a,i.muted=!1,i.impressed=!1,i.skippable=!1,i.trackingEvents={},i._alreadyTriggeredQuartiles={},i.emitAlwaysEvents=["creativeView","start","firstQuartile","midpoint","thirdQuartile","complete","resume","pause","rewind","skip","closeLinear","close"],i.creative.trackingEvents){var s=i.creative.trackingEvents[A];i.trackingEvents[A]=s.slice(0)}return i.creative instanceof Qt?i._initLinearTracking():i._initVariationTracking(),e&&i.on("start",(function(){e.lastSuccessfulAd=Date.now()})),i}return ct(n,[{key:"_initLinearTracking",value:function(){this.linear=!0,this.skipDelay=this.creative.skipDelay,this.setDuration(this.creative.duration),this.clickThroughURLTemplate=this.creative.videoClickThroughURLTemplate,this.clickTrackingURLTemplates=this.creative.videoClickTrackingURLTemplates}},{key:"_initVariationTracking",value:function(){if(this.linear=!1,this.skipDelay=-1,this.variation){for(var e in this.variation.trackingEvents){var t=this.variation.trackingEvents[e];this.trackingEvents[e]?this.trackingEvents[e]=this.trackingEvents[e].concat(t.slice(0)):this.trackingEvents[e]=t.slice(0)}this.variation instanceof Ut?(this.clickThroughURLTemplate=this.variation.nonlinearClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.nonlinearClickTrackingURLTemplates,this.setDuration(this.variation.minSuggestedDuration)):this.variation instanceof dt&&(this.clickThroughURLTemplate=this.variation.companionClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.companionClickTrackingURLTemplates)}}},{key:"setDuration",value:function(e){this.assetDuration=e,this.quartiles={firstQuartile:Math.round(25*this.assetDuration)/100,midpoint:Math.round(50*this.assetDuration)/100,thirdQuartile:Math.round(75*this.assetDuration)/100}}},{key:"setProgress",value:function(e){var t=this,n=this.skipDelay||-1;if(-1===n||this.skippable||(n>e?this.emit("skip-countdown",n-e):(this.skippable=!0,this.emit("skip-countdown",0))),this.assetDuration>0){var r=[];if(e>0){var o=Math.round(e/this.assetDuration*100);for(var i in r.push("start"),r.push("progress-".concat(o,"%")),r.push("progress-".concat(Math.round(e))),this.quartiles)this.isQuartileReached(i,this.quartiles[i],e)&&(r.push(i),this._alreadyTriggeredQuartiles[i]=!0)}r.forEach((function(e){t.track(e,!0)})),e<this.progress&&this.track("rewind")}this.progress=e}},{key:"isQuartileReached",value:function(e,t,n){var r=!1;return t<=n&&!this._alreadyTriggeredQuartiles[e]&&(r=!0),r}},{key:"setMuted",value:function(e){this.muted!==e&&this.track(e?"mute":"unmute"),this.muted=e}},{key:"setPaused",value:function(e){this.paused!==e&&this.track(e?"pause":"resume"),this.paused=e}},{key:"setFullscreen",value:function(e){this.fullscreen!==e&&this.track(e?"fullscreen":"exitFullscreen"),this.fullscreen=e}},{key:"setExpand",value:function(e){this.expanded!==e&&this.track(e?"expand":"collapse"),this.expanded=e}},{key:"setSkipDelay",value:function(e){"number"==typeof e&&(this.skipDelay=e)}},{key:"trackImpression",value:function(){this.impressed||(this.impressed=!0,this.trackURLs(this.ad.impressionURLTemplates),this.track("creativeView"))}},{key:"errorWithCode",value:function(e){this.trackURLs(this.ad.errorURLTemplates,{ERRORCODE:e})}},{key:"complete",value:function(){this.track("complete")}},{key:"close",value:function(){this.track(this.linear?"closeLinear":"close")}},{key:"skip",value:function(){this.track("skip"),this.trackingEvents=[]}},{key:"click",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.clickTrackingURLTemplates&&this.clickTrackingURLTemplates.length&&this.trackURLs(this.clickTrackingURLTemplates);var t=this.clickThroughURLTemplate||e;if(t){var n=this.linear?{CONTENTPLAYHEAD:this.progressFormatted()}:{},r=bt.resolveURLTemplates([t],n)[0];this.emit("clickthrough",r)}}},{key:"track",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];"closeLinear"===e&&!this.trackingEvents[e]&&this.trackingEvents.close&&(e="close");var n=this.trackingEvents[e],r=this.emitAlwaysEvents.indexOf(e)>-1;n?(this.emit(e,""),this.trackURLs(n)):r&&this.emit(e,""),t&&(delete this.trackingEvents[e],r&&this.emitAlwaysEvents.splice(this.emitAlwaysEvents.indexOf(e),1))}},{key:"trackURLs",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.linear&&(this.creative&&this.creative.mediaFiles&&this.creative.mediaFiles[0]&&this.creative.mediaFiles[0].fileURL&&(t.ASSETURI=this.creative.mediaFiles[0].fileURL),t.CONTENTPLAYHEAD=this.progressFormatted()),bt.track(e,t)}},{key:"progressFormatted",value:function(){var e=parseInt(this.progress),t=e/3600;t.length<2&&(t="0".concat(t));var n=e/60%60;n.length<2&&(n="0".concat(n));var r=e%60;return r.length<2&&(r="0".concat(n)),"".concat(t,":").concat(n,":").concat(r,".").concat(parseInt(100*(this.progress-e)))}}]),n}(Vt),bn=function(e,t,n,r){var o,i={},a={started:!1,active:!1,isVideoEnded:!1,lang:n.getLanguage()},A=null,s="",c=null,u="",l="",f=!1,p=n.getBrowser(),d="Android"===p.os||"iOS"===p.os;(o=document.createElement("div")).setAttribute("class","op-ads"),o.setAttribute("id","op-ads"),n.getContainer().append(o),(c=document.createElement("video")).setAttribute("playsinline","true"),c.setAttribute("title","Advertisement"),c.setAttribute("class","op-ads-vast-video"),(l=document.createElement("div")).setAttribute("class","op-ads-button"),(u=document.createElement("div")).setAttribute("class","op-ads-textview"),l.append(u),o.append(c),o.append(l),s=o;var g=new Cn,h=null,v=null,m=function(e){console.log(e),c.style.display="none",t.trigger(se,{code:e.code,message:e.message}),a.active=!1,a.started=!0,t.play()};return i.isActive=function(){return a.active},i.started=function(){return a.started},i.play=function(){return a.started?c.play():new Promise((function(o,i){!function s(){t.metaLoaded()?(OvenPlayerConsole.log("VAST : main contents meta loaded."),function(){OvenPlayerConsole.log("VAST : checkAutoplaySupport() ");var n=document.createElement("video");n.setAttribute("playsinline","true"),n.src=qe,n.load(),c.load(),d&&t.getName()!==le&&e.load();var r=function(e,t){f=e,n.pause(),n.remove()};return new Promise((function(e,t){if(n.play){var o=n.play();void 0!==o?o.then((function(){OvenPlayerConsole.log("VAST : auto play allowed."),r(!0),e()})).catch((function(t){OvenPlayerConsole.log("VAST : auto play failed",t.message),r(!1),e()})):(OvenPlayerConsole.log("VAST : promise not support"),r(!0),e())}else OvenPlayerConsole.log("VAST : !temporarySupportCheckVideo.play"),r(!0),e()}))}().then((function(){n.isAutoStart()&&!f?(OvenPlayerConsole.log("VAST : autoplayAllowed : false"),a.started=!1,i(new Error("autoplayNotAllowed"))):(g.get(r).then((function(n){if(OvenPlayerConsole.log("VAST : initRequest()"),!(v=n.ads[0]))throw{code:401,message:"File not found. Unable to find Linear/MediaFile from URI."};h=new yn(g,v,v.creatives[0]),OvenPlayerConsole.log("VAST : created ad tracker."),A=function(e,t,n,r,o,i,a){var A={},s={},c=_e(i),u=_e(o),l=_e(e);n.on(Re,(function(t){t.mute?e.muted=!0:(e.muted=!1,e.volume=t.volume/100)}),s);var f=function(){r.active=!1,u.hide(),!r.started||0!==n.getPosition()&&r.isVideoEnded||(l.hide(),n.play()),n.trigger(Ae)},p=function(n){c.hasClass("videoAdUiAction")&&(t.skip(),e.pause(),f())};return i.addEventListener("click",p,!1),A.error=function(){OvenPlayerConsole.log("VAST : listener : error.",e.error),console.log("VAST : listener : error.",e.error);var n={},r=e.error&&e.error.code||0;2===r?(n.code=402,n.message="Timeout of MediaFile URI."):3===r?(n.code=405,n.message="Problem displaying MediaFile. Video player found a MediaFile with supported type but couldn’t display it. MediaFile may include: unsupported codecs, different MIME type than MediaFile@type, unsupported delivery method, etc."):4===r?(n.code=403,n.message="Couldn’t find MediaFile that is supported by this video player, based on the attributes of the MediaFile element."):(n.code=400,n.message="General Linear error. Video player is unable to display the Linear Ad."),t.errorWithCode(n.code),a("405")},A.canplay=function(){},A.ended=function(){t.complete(),f()},A.click=function(e){t.click()},A.play=function(){t.setPaused(!1)},A.pause=function(){t.setPaused(!0)},A.timeupdate=function(r){t.setProgress(r.target.currentTime),n.trigger(Se,{duration:e.duration,position:e.currentTime})},A.volumechange=function(e){OvenPlayerConsole.log("VAST : listener : Ad Video Volumechange."),t.setMuted(e.target.muted)},A.loadedmetadata=function(){OvenPlayerConsole.log("VAST : listener : Ad CONTENT LOADED ."),ee===n.getState()&&n.pause(),t.trackImpression(),n.trigger(oe,{remaining:e.duration,isLinear:!0}),e.play()},t.on("skip",(function(){OvenPlayerConsole.log("VAST : listener : skipped")})),t.on("mute",(function(){OvenPlayerConsole.log("VAST : listener : muted")})),t.on("unmute",(function(){OvenPlayerConsole.log("VAST : listener : unmuted")})),t.on("resume",(function(){OvenPlayerConsole.log("VAST : listener : vastTracker resumed."),r.started&&n.setState(ie)})),t.on("pause",(function(){OvenPlayerConsole.log("VAST : listener : vastTracker paused."),n.setState(ae)})),t.on("clickthrough",(function(e){OvenPlayerConsole.log("VAST : listener : clickthrough :",e),window.open(e,"_blank")})),t.on("skip-countdown",(function(e){0===e?("ko"===r.lang?c.html("광고 건너뛰기<i class='op-con op-arrow-right btn-right'></i>"):c.html("Ad Skip<i class='op-con op-arrow-right btn-right'></i>"),c.addClass("videoAdUiAction")):"ko"===r.lang?c.html(parseInt(e)+1+"초 후에 이 광고를 건너뛸 수 있습니다."):c.html("You can skip this ad in "+(parseInt(e)+1))})),t.on("rewind",(function(){OvenPlayerConsole.log("VAST : listener : rewind")})),t.on("start",(function(){OvenPlayerConsole.log("VAST : listener : started"),r.started=!0,r.active=!0,l.show(),u.show(),n.trigger(Ie,{isLinear:!0}),n.setState(ie)})),t.on("firstQuartile",(function(){OvenPlayerConsole.log("VAST : listener : firstQuartile")})),t.on("midpoint",(function(){OvenPlayerConsole.log("VAST : listener : midpoint")})),t.on("thirdQuartile",(function(){OvenPlayerConsole.log("VAST : listener : thirdQuartile")})),t.on("creativeView",(function(){OvenPlayerConsole.log("VAST : listener : creativeView")})),Object.keys(A).forEach((function(t){e.removeEventListener(t,A[t]),e.addEventListener(t,A[t])})),s.destroy=function(){OvenPlayerConsole.log("EventListener : destroy()"),i.removeEventListener("click",p,!1),Object.keys(A).forEach((function(t){e.removeEventListener(t,A[t])}))},s}(c,h,t,a,l,u,m);var r="";v.creatives&&v.creatives.length>0&&v.creatives[0].mediaFiles&&v.creatives[0].mediaFiles.length>0&&v.creatives[0].mediaFiles[0].fileURL&&(r=v.creatives[0].mediaFiles[0].fileURL,OvenPlayerConsole.log("VAST : media url : ",r)),c.src=r,c.volume=e.volume,c.muted=e.muted})).catch((function(e){m(e)})),o())}))):setTimeout(s,100)}()}))},i.pause=function(){c.pause()},i.videoEndedCallback=function(e){e(),a.isVideoEnded=!0},i.destroy=function(){A&&(A.destroy(),A=null),h=null,g=null,s.remove()},i},wn=function(e,t,n){OvenPlayerConsole.log("[Provider] loaded. ");var r={};ze(r);var o=e.element,i=null,a=null;e.adTagUrl&&(OvenPlayerConsole.log("[Provider] Ad Client - ",t.getAdClient()),(i="vast"===t.getAdClient()?bn(o,r,t,e.adTagUrl):tt(o,r,t,e.adTagUrl))||console.log("Can not load due to google ima for Ads.")),a=function(e,t,n,r){var o={};OvenPlayerConsole.log("EventListener loaded.",e,t);var i={},a=-1,A=e;return o.canplay=function(){t.setCanSeek(!0),t.trigger("bufferFull"),OvenPlayerConsole.log("EventListener : on canplay")},o.durationchange=function(){o.progress(),OvenPlayerConsole.log("EventListener : on durationchange"),t.trigger("durationChanged")},o.ended=function(){OvenPlayerConsole.log("EventListener : on ended"),A.pause(),t.getState()!==X&&t.getState()!==q&&t.getState()!==te&&(n?n((function(){t.setState(q)})):t.setState(q))},o.loadeddata=function(){},o.loadedmetadata=function(){var e=t.getSources(),n=t.getCurrentSource(),r=n>-1?e[n].type:"",o={duration:t.isLive()?1/0:A.duration,type:r};t.setMetaLoaded(),OvenPlayerConsole.log("EventListener : on loadedmetadata",o),t.trigger(Oe,o)},o.pause=function(){return t.getState()!==q&&t.getState()!==te&&!A.ended&&!A.error&&A.currentTime!==A.duration&&(OvenPlayerConsole.log("EventListener : on pause"),void t.setState($))},o.loadstart=function(){r&&!r.getConfig().showBigPlayButton&&r.getConfig().autoStart&&t.setState(ne)},o.play=function(){a=-1,A.paused||t.getState()===ee||t.setState(ne)},o.playing=function(){OvenPlayerConsole.log("EventListener : on playing"),a<0&&t.setState(ee)},o.progress=function(){var e=A.buffered;if(!e)return!1;var n,r=A.duration,o=A.currentTime,i=(n=(e.length>0?e.end(e.length-1):0)/r,Math.max(Math.min(n,1),0));t.setBuffer(100*i),t.trigger(Te,{bufferPercent:100*i,position:o,duration:r}),OvenPlayerConsole.log("EventListener : on progress",100*i)},o.timeupdate=function(){var e=A.currentTime,n=A.duration;if(!isNaN(n)){if(e>n)return A.pause(),void t.setState(q);var r=t.getSources()[t.getCurrentSource()].sectionStart;r&&e<r&&t.getState()===ee&&t.seek(r);var o=t.getSources()[t.getCurrentSource()].sectionEnd;if(o&&e>o&&t.getState()===ee)return t.stop(),void t.setState(q);n>9e15&&(n=1/0),t.isSeeking()||A.paused||t.getState()!==re&&t.getState()!==ne&&t.getState()!==ie||function(e,t){return e.toFixed(2)===t.toFixed(2)}(a,e)||(a=-1,t.setState(ee)),r&&r>0&&(e-=r)<0&&(e=0),o&&(n=o),r&&(n-=r),(t.getState()===ee||t.isSeeking())&&t.trigger(Le,{position:e,duration:n})}},o.seeking=function(){t.setSeeking(!0),OvenPlayerConsole.log("EventListener : on seeking",A.currentTime),t.trigger("seek",{position:A.currentTime})},o.seeked=function(){t.isSeeking()&&(OvenPlayerConsole.log("EventListener : on seeked"),t.setSeeking(!1),t.trigger("seeked"))},o.stalled=function(){OvenPlayerConsole.log("EventListener : on stalled")},o.waiting=function(){OvenPlayerConsole.log("EventListener : on waiting",t.getState()),t.isSeeking()?t.setState(ne):t.getState()===ee&&(a=A.currentTime,t.setState(re))},o.volumechange=function(){OvenPlayerConsole.log("EventListener : on volumechange",Math.round(100*A.volume)),t.trigger(Re,{volume:Math.round(100*A.volume),mute:A.muted})},o.error=function(){var e={0:300,1:301,2:302,3:303,4:304}[A.error&&A.error.code||0]||0;OvenPlayerConsole.log("EventListener : on error",e),$e(je.codes[e],t)},Object.keys(o).forEach((function(e){A.removeEventListener(e,o[e]),A.addEventListener(e,o[e])})),i.destroy=function(){OvenPlayerConsole.log("EventListener : destroy()"),Object.keys(o).forEach((function(e){A.removeEventListener(e,o[e])}))},i}(o,r,i?i.videoEndedCallback:null,t),o.playbackRate=o.defaultPlaybackRate=t.getPlaybackRate();var A=function(i){var a=e.sources[e.currentSource];if(e.framerate=a.framerate,r.setVolume(t.getVolume()),e.framerate||t.setTimecodeMode(!0),n)n(a,i);else{OvenPlayerConsole.log("source loaded : ",a,"lastPlayPosition : "+i);var A=o.src;a.file!==A&&(o.src=a.file,(A||""===A)&&o.load()),r.on(Oe,(function(){i>0&&r.seek(i)}))}};return r.getName=function(){return e.name},r.getMse=function(){return e.mse},r.getMediaElement=function(){return e.element},r.canSeek=function(){return e.canSeek},r.setCanSeek=function(t){e.canSeek=t},r.isSeeking=function(){return e.seeking},r.setSeeking=function(t){e.seeking=t},r.setMetaLoaded=function(){e.isLoaded=!0},r.metaLoaded=function(){return e.isLoaded},r.setState=function(t){if(e.state!==t){var n=e.state;if(OvenPlayerConsole.log("Provider : setState()",t),n===ie&&(t===te||t===X))return!1;switch(OvenPlayerConsole.log("Provider : triggerSatatus",t),t){case q:r.trigger("complete");break;case $:r.trigger(be,{prevState:e.state,newstate:$});break;case ae:r.trigger(be,{prevState:e.state,newstate:ae});break;case ee:r.trigger(we,{prevState:e.state,newstate:ee});break;case ie:r.trigger(we,{prevState:e.state,newstate:ie})}e.state=t,r.trigger(ye,{prevstate:n,newstate:e.state})}},r.getState=function(){return e.state},r.setBuffer=function(t){e.buffer=t},r.getBuffer=function(){return e.buffer},r.isLive=function(){return!!e.isLive||o.duration===1/0},r.getDuration=function(){return r.isLive()?1/0:o.duration},r.getDvrWindow=function(){return e.dvrWindow},r.getPosition=function(){return o?o.currentTime:0},r.setVolume=function(e){if(!o)return!1;o.volume=e/100,t.setVolume(e)},r.getVolume=function(){return t.getVolume()},r.setMute=function(e){if(!o)return!1;if(void 0===e){var n=t.isMute();o.muted=!n,t.setMute(!n),r.trigger(Qe,{mute:t.isMute()})}else o.muted=e,t.setMute(e),r.trigger(Qe,{mute:t.isMute()});return o.muted},r.getMute=function(){return t.isMute()},r.preload=function(n,o){return e.sources=n,e.currentSource=et(n,t),A(o||0),new Promise((function(e,n){t.isMute()&&r.setMute(!0),t.getVolume()&&r.setVolume(t.getVolume()),e()}))},r.load=function(n){e.sources=n,e.currentSource=et(n,t),A(0)},r.play=function(){if(OvenPlayerConsole.log("Provider : play()"),!o)return!1;if(r.getState()!==ee)if(i&&i.isActive()||i&&!i.started())i.play().then((function(e){OvenPlayerConsole.log("Provider : ads play success")})).catch((function(e){OvenPlayerConsole.log("Provider : ads play fail",e)}));else{var e=o.play();void 0!==e?e.then((function(){OvenPlayerConsole.log("Provider : video play success")})).catch((function(e){OvenPlayerConsole.log("Provider : video play error",e.message)})):OvenPlayerConsole.log("Provider : video play success (ie)")}},r.pause=function(){if(OvenPlayerConsole.log("Provider : pause()"),!o)return!1;r.getState()===ee?o.pause():r.getState()===ie&&i.pause()},r.seek=function(e){if(!o)return!1;o.currentTime=e},r.setPlaybackRate=function(e){return!!o&&(r.trigger("playbackRateChanged",{playbackRate:e}),o.playbackRate=o.defaultPlaybackRate=e)},r.getPlaybackRate=function(){return o?o.playbackRate:0},r.getSources=function(){return o?e.sources.map((function(e,t){var n={file:e.file,type:e.type,label:e.label,index:t,sectionStart:e.sectionStart,sectionEnd:e.sectionEnd,gridThumbnail:e.gridThumbnail};return e.lowLatency&&(n.lowLatency=e.lowLatency),n})):[]},r.getCurrentSource=function(){return e.currentSource},r.setCurrentSource=function(n,i){if(n>-1&&e.sources&&e.sources.length>n)return OvenPlayerConsole.log("source changed : "+n),e.currentSource=n,r.trigger(Me,{currentSource:n}),t.setSourceIndex(n),r.setState(X),i&&A(o.currentTime||0),e.currentSource},r.getQualityLevels=function(){return o?e.qualityLevels:[]},r.getCurrentQuality=function(){return o?e.currentQuality:null},r.setCurrentQuality=function(e){},r.getAudioTracks=function(){return o?e.audioTracks:[]},r.getCurrentAudioTrack=function(){return o?e.currentAudioTrack:[]},r.setCurrentAudioTrack=function(e){},r.isAutoQuality=function(){},r.setAutoQuality=function(e){},r.getFramerate=function(){return e.framerate},r.setFramerate=function(t){return e.framerate=t},r.seekFrame=function(t){var n=e.framerate,i=(o.currentTime*n+t)/n;i+=1e-5,r.pause(),r.seek(i)},r.stop=function(){if(!o)return!1;for(OvenPlayerConsole.log("CORE : stop() "),o.removeAttribute("preload"),o.removeAttribute("src");o.firstChild;)o.removeChild(o.firstChild);r.pause(),r.setState(X)},r.destroy=function(){if(!o)return!1;r.stop(),a.destroy(),i&&(i.destroy(),i=null),r.off(),OvenPlayerConsole.log("CORE : destroy() player stop, listener, event destroied")},r.super=function(e){var t=r[e];return function(){return t.apply(r,arguments)}},r},En=function(e,t,n){var r=wn({name:ce,element:e,mse:null,listener:null,isLoaded:!1,canSeek:!1,isLive:!1,seeking:!1,state:X,buffer:0,framerate:0,currentQuality:-1,qualityLevels:[],currentAudioTrack:-1,audioTracks:[],currentSource:-1,sources:[],adTagUrl:n},t,null),o=r.super("destroy");return OvenPlayerConsole.log("HTML5 PROVIDER LOADED."),r.destroy=function(){OvenPlayerConsole.log("HTML5 : PROVIDER DESTROYED."),o()},r},Bn=function(e,t,n,r,o,a,A,s){var c={},u={},l=null,f=!1,p=null,d=null,g={},h=!1,v=!1,m=null,C=!1;A.getConfig().webrtcConfig&&!0===A.getConfig().webrtcConfig.recoverPacketLoss&&(v=!0);var y=!0;A.getConfig().webrtcConfig&&!1===A.getConfig().webrtcConfig.generatePublicCandidate&&(y=A.getConfig().webrtcConfig.generatePublicCandidate);var b,w=Y();function E(e){var t=null;return d&&e===d.id?t=d.peerConnection:g[e]&&(t=g[e].peerConnection),t}function B(e){e.statisticsTimer&&clearTimeout(e.statisticsTimer),e.status||(e.status={},e.status.lostPacketsArr=[],e.status.slotLength=8,e.status.prevPacketsLost=0,e.status.avg8Losses=0,e.status.avgMoreThanThresholdCount=0,e.status.threshold=40);var t=e.status.lostPacketsArr,n=e.status.slotLength,r=e.status.prevPacketsLost,o=e.status.avg8Losses,a=e.status.threshold;e.statisticsTimer=setTimeout((function(){if(!e.peerConnection)return!1;e.peerConnection.getStats().then((function(s){s&&A.getConfig().autoFallback&&s&&(s.forEach((function(A){if("inbound-rtp"===A.type&&"video"===A.kind&&!A.isRemote){var s=parseInt(A.packetsLost)-parseInt(r);t.push(parseInt(A.packetsLost)-parseInt(r)),t.length>n&&t.shift(),t.length===n&&(o=i().reduce(t,(function(e,t){return e+t}),0)/n,OvenPlayerConsole.log("Last8 LOST PACKET AVG  : "+o,"Current Packet LOST: "+s,"Total Packet Lost: "+A.packetsLost,t),o>a?(e.status.avgMoreThanThresholdCount=e.status.avgMoreThanThresholdCount+1,e.status.avgMoreThanThresholdCount>=60&&(OvenPlayerConsole.log("NETWORK UNSTABLED!!! "),Q(je.codes[510]))):e.status.avgMoreThanThresholdCount=0),e.status.prevPacketsLost=A.packetsLost}})),B(e))}))}),2e3)}function x(o,a,s,u,f){var g={};if(A.getConfig().webrtcConfig&&A.getConfig().webrtcConfig.iceServers)g.iceServers=A.getConfig().webrtcConfig.iceServers,A.getConfig().webrtcConfig.iceTransportPolicy&&(g.iceTransportPolicy=A.getConfig().webrtcConfig.iceTransportPolicy);else if(f){g.iceServers=[];for(var m=0;m<f.length;m++){var C=f[m],y={};y.urls=C.urls;for(var b=!1,w=I(t),E=0;E<y.urls.length;E++)if(y.urls[E].indexOf(w)>-1){b=!0;break}if(!b&&y.urls.length>0){var x=i().clone(y.urls[0]),k=S(x);w&&k&&y.urls.push(x.replace(k,w))}y.username=C.username||C.user_name,y.credential=C.credential,g.iceServers.push(y)}g.iceTransportPolicy="relay"}else g=c;OvenPlayerConsole.log("Main Peer Connection Config : ",g);var T=null;try{T=new RTCPeerConnection(g),e.trigger("peerConnectionPrepared",T)}catch(e){var R=je.codes[506];return R.error=e,void Q(R)}d={id:o,peerId:a,peerConnection:T},T.setRemoteDescription(new RTCSessionDescription(s)).then((function(){T.createAnswer().then((function(e){var t=function(e){for(var t=e.split("\r\n"),n=-1,r=0;r<t.length-1;r++)if(t[r]=t[r].toLowerCase(),t[r].indexOf("a=rtpmap")>-1&&t[r].indexOf("opus")>-1){n=t[r].split(" ")[0].split(":")[1];break}return n}(s.sdp);t>-1&&function(e,t){for(var n=e.split("\r\n"),r=!1,o=0;o<n.length-1;o++)if(n[o]=n[o].toLowerCase(),n[o].indexOf("a=fmtp:"+t)>-1){n[o].indexOf("stereo=1")>-1&&(r=!0);break}return r}(s.sdp,t)&&(e.sdp=function(e,t){for(var n=e.split("\r\n"),r=0;r<n.length-1;r++)if(n[r].indexOf("a=fmtp:"+t)>-1){-1===n[r].indexOf("stereo=1")&&(n[r]=n[r]+";stereo=1");break}return n.join("\r\n")}(e.sdp,t)),OvenPlayerConsole.log("Local SDP",e),O(l,{id:o,peer_id:a,command:"answer",sdp:e}),OvenPlayerConsole.log("create Host Answer : success"),T.setLocalDescription(e).then((function(){})).catch((function(e){var t=je.codes[505];t.error=e,Q(t)}))})).catch((function(e){var t=je.codes[504];t.error=e,Q(t)}))})).catch((function(e){var t=je.codes[503];t.error=e,Q(t)})),u&&L(T,u),T.onicecandidate=function(e){e.candidate&&(OvenPlayerConsole.log("WebRTCLoader send candidate to server : ",e.candidate),O(l,{id:o,peer_id:a,command:"candidate",candidates:[e.candidate]}))},T.onconnectionstatechange=function(e){OvenPlayerConsole.log("[on connection state change]",T.connectionState,e),"connected"===T.connectionState&&r&&r()},T.onicecandidateerror=function(e){},T.onicegatheringstatechange=function(e){},T.oniceconnectionstatechange=function(e){OvenPlayerConsole.log("[on ice connection state change]",T.iceConnectionState,e),"connected"===T.iceConnectionState&&r&&r(),("disconnected"===T.iceConnectionState||"closed"===T.iceConnectionState)&&(h||d&&Q(je.codes[511]))},T.ontrack=function(e){if(OvenPlayerConsole.log("stream received."),OvenPlayerConsole.log("Recovery On Packet Loss :",v),v&&B(d),p=e.streams[0],n(e.streams[0]),A.getConfig().webrtcConfig&&A.getConfig().webrtcConfig.playoutDelayHint)for(var t=A.getConfig().webrtcConfig.playoutDelayHint,r=d.peerConnection.getReceivers(),o=0;o<r.length;o++){var i=r[o];"audio"===i.track.kind?(i.playoutDelayHint=t,i.jitterBufferDelayHint=t):i.playoutDelayHint=t,OvenPlayerConsole.log("WebRTC playoutDelayHint",i,t)}}}function k(e,t){if(p){var n=new RTCPeerConnection(c);g[t]={id:t,peerId:e,peerConnection:n},n.addStream(p),n.createOffer((function(r){n.setLocalDescription(r),O(l,{id:e,peer_id:t,sdp:r,command:"offer_p2p"})}),(function(e){}),{}),n.onicecandidate=function(n){n.candidate&&(OvenPlayerConsole.log("WebRTCLoader send candidate to server : "+n.candidate),O(l,{id:e,peer_id:t,command:"candidate_p2p",candidates:[n.candidate]}))}}else setTimeout((function(){k(e,t)}),100)}function I(e){var t,n="";return(t=e.match(/^(?:wss?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n\?\=]+)/im))&&(n=t[1]),n}function S(e){var t,n="";return(t=e.match(new RegExp("\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b","gi")))&&(n=t[0]),n}function T(e){var n=i().clone(e),r=I(t),o=S(n.candidate);return new Promise((function(e,t){""!==o&&o!==r||e(null),"Firefox"!==w.browser||S(r)?(n.candidate=n.candidate.replace(o,r),e(n)):e(null)}))}function L(e,t){for(var n=0;n<t.length;n++)if(t[n]&&t[n].candidate){var r=t[n];if(e.addIceCandidate(new RTCIceCandidate(r)).then((function(){OvenPlayerConsole.log("addIceCandidate : success")})).catch((function(e){var t=je.codes[502];t.error=e,Q(t)})),y){var o=T(r);o&&o.then((function(t){t&&e.addIceCandidate(new RTCIceCandidate(t)).then((function(){OvenPlayerConsole.log("cloned addIceCandidate : success")})).catch((function(e){var t=je.codes[502];t.error=e,Q(t)}))}))}}}function R(){try{(l=new WebSocket(t)).onopen=function(){f=!0,O(l,{command:"request_offer"})},l.onmessage=function(t){var n=JSON.parse(t.data);if(n.error){var r=je.codes[501];return r.error=n.error,void Q(r)}if(0!==Object.keys(n).length||n.constructor!==Object)if("ping"!==n.command){if("offer"===n.command){var o=n.iceServers||n.ice_servers;x(n.id,n.peer_id,n.sdp,n.candidates,o),0===n.peer_id?e.trigger(Ne,!1):e.trigger(Ne,!0)}if("request_offer_p2p"===n.command&&k(n.id,n.peer_id),"answer_p2p"===n.command&&E(n.peer_id).setRemoteDescription(new RTCSessionDescription(n.sdp)).then((function(e){})).catch((function(e){var t=je.codes[503];t.error=e,Q(t)})),"candidate"===n.command&&L(E(n.id),n.candidates),"candidate_p2p"===n.command&&L(E(n.peer_id),n.candidates),"notification"===n.command){if("playlist"===n.type){var i=n.message.renditions;m=n.message;for(var a=0;a<i.length;a++){var A=i[a];s.qualityLevels.push({bitrate:A.video_track.video.bitrate,height:A.video_track.video.height,width:A.video_track.video.width,index:a,label:A.name})}s.currentQuality=0,C=n.message.auto}if("rendition_changed"===n.type){var c=n.message;n.auto&&(C=n.auto);for(var u=-1,f=0;f<m.renditions.length;f++)if(c.rendition_name===m.renditions[f].name){u=f,s.currentQuality=f;break}e.trigger(De,{isAuto:C,currentQuality:u,type:"render"})}}"stop"===n.command&&(d.peerId===n.peer_id?(p=null,d.peerConnection.close(),d=null,e.pause(),O(l,{command:"request_offer"})):g[n.peer_id]&&(g[n.peer_id].peerConnection.close(),delete g[n.peer_id]))}else O(l,{command:"pong"});else OvenPlayerConsole.log("Empty Message")},l.onclose=function(e){if(!h){if(r&&!f)return void Q();var t=je.codes[501];d&&(t=je.codes[511]),Q(t)}},l.onerror=function(e){}}catch(e){Q(e)}}function Q(t){if(OvenPlayerConsole.log("WebRTC Loader closePeer()"),t||(h=!0),d&&(d.statisticsTimer&&clearTimeout(d.statisticsTimer),p=null,OvenPlayerConsole.log("Closing main peer connection..."),d.peerConnection&&d.peerConnection.close(),d.peerConnection=null,e.trigger("peerConnectionDestroyed"),d=null),Object.keys(g).length>0){for(var n in g){var r=g[n].peerConnection;r&&(OvenPlayerConsole.log("Closing client peer connection..."),r.close(),r=null)}g={}}l?(OvenPlayerConsole.log("Closing websocket connection..."),OvenPlayerConsole.log("Send Signaling : Stop."),1===l.readyState&&(h=!0,d&&O(l,{command:"stop",id:d.id}),l.close())):h=!1,l=null,t&&(o&&o(t),a(t,e))}function O(e,t){e&&e.send(JSON.stringify(t))}return b=window.onbeforeunload,window.onbeforeunload=function(e){b&&b(e),OvenPlayerConsole.log("This calls auto when browser closed."),Q()},e.setCurrentQuality=function(e){if(!m)return-1;var t=m.renditions[e];return t?(O(l,{command:"change_rendition",id:d.id,rendition_name:t.name,auto:!1}),C=!1,s.currentQuality=e,s.currentQuality):s.currentQuality},e.isAutoQuality=function(){return C},e.setAutoQuality=function(e){O(l,{command:"change_rendition",id:d.id,auto:e}),C=e},u.connect=function(){OvenPlayerConsole.log("WebRTCLoader connecting..."),OvenPlayerConsole.log("WebRTCLoader url : "+t),R()},u.destroy=function(){h=!0,Q()},u},xn=function(e,t,n){var r={},o=null,i=null,a=null,A=null,s=null,c={name:ue,element:e,mse:null,listener:null,isLoaded:!1,canSeek:!1,isLive:!1,seeking:!1,state:X,buffer:0,framerate:0,currentQuality:-1,currentSource:-1,qualityLevels:[],sources:[],adTagUrl:n},u=1e4,l=0,f=null,p=!1;function d(){if(He(A.file,A.type)){clearTimeout(f),OvenPlayerConsole.log("WEBRTC : onBeforeLoad : ",A),o&&(o.destroy(),o=null);var n=null,i=null;l>0&&(n=function(){clearTimeout(f)},i=function(){clearTimeout(f),performance.now(),p=!0}),o=Bn(r,A.file,(function(t){if(e.srcObject&&(e.srcObject=null),s&&(s.close(),s=null),e.srcObject=t,t.getAudioTracks().length>0){var n=window.AudioContext||window.webkitAudioContext;(function(e){var t=/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent),n=(/iPhone|iPad|iPod/i.test(navigator.userAgent),!1);t&&"suspended"===e.state&&document.addEventListener("touchend",(function(){n||"running"===e.state||(e.resume(),n=!0)}))})(s=new n),s.createMediaStreamSource(t)}}),i,n,$e,t,c),performance.now(),o.connect(),l>0&&(r.once(ye,(function(e){p||e.newstate===X&&(clearTimeout(f),g())})),r.once(Ce,(function(){p=!1})),f=setTimeout((function(){if(l>0)p||(g(),d());else{g();var e=je.codes[512];$e(e,r)}l--}),u))}}function g(){o&&(o.destroy(),o=null,e.srcObject=null)}return r=wn(c,t,(function(e){var n=t.getConfig();n.webrtcConfig&&("number"==typeof n.webrtcConfig.connectionTimeout&&n.webrtcConfig.connectionTimeout>0&&(u=n.webrtcConfig.connectionTimeout),"number"==typeof n.webrtcConfig.timeoutMaxRetry&&n.webrtcConfig.timeoutMaxRetry>0&&(l=n.webrtcConfig.timeoutMaxRetry)),A=e,d()})),i=r.super("destroy"),a=r.super("play"),OvenPlayerConsole.log("WEBRTC PROVIDER LOADED."),r.destroy=function(){clearTimeout(f),g(),OvenPlayerConsole.log("WEBRTC :  PROVIDER DESTROYED."),i()},r.play=function(){l>0&&!p&&d(),a()},r},kn=function(e,t,n){var r=t?1e3:1024;if(Math.abs(e)<r)return e+" B";var o=n||"B",i=["k"+o,"M"+o,"G"+o,"T"+o,"P"+o,"E"+o,"Z"+o,"Y"+o],a=-1;do{e/=r,++a}while(Math.abs(e)>=r&&a<i.length-1);return e.toFixed(1)+i[a]},In=function(e,t,n){var r={},o=null,a=null,A=null,s=0,c="";try{if(dashjs.Version<"3.0.0")throw je.codes[103];var u=function(e){o.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:e}}}})},l=function(){return o.getSettings().streaming.abr.autoSwitchBitrate.video};(o=dashjs.MediaPlayer().create()).initialize(e,null,!1),window.op_dash=o;var f={name:le,element:e,mse:o,listener:null,isLoaded:!1,canSeek:!1,isLive:!1,seeking:!1,state:X,buffer:0,framerate:0,currentQuality:-1,currentSource:-1,qualityLevels:[],sources:[],adTagUrl:n};r=wn(f,t,(function(e,n){OvenPlayerConsole.log("DASH : Attach File : ",e,"lastPlayPosition : "+n),u(!0),c=e.file,!0===e.lowLatency?(o.updateSettings({streaming:{lowLatencyEnabled:e.lowLatency}}),t.getConfig().lowLatencyMpdLiveDelay&&"number"==typeof t.getConfig().lowLatencyMpdLiveDelay&&o.updateSettings({streaming:{liveDelay:t.getConfig().lowLatencyMpdLiveDelay}})):o.updateSettings({streaming:{lowLatencyEnabled:!1,liveDelay:void 0}}),o.updateSettings({debug:{logLevel:dashjs.Debug.LOG_LEVEL_NONE}});var i=t.getConfig().dashConfig;i&&o.updateSettings(i),r.trigger("dashPrepared",o),o.attachSource(c),s=n})),a=r.super("play"),A=r.super("destroy"),OvenPlayerConsole.log("DASH PROVIDER LOADED."),o.on(dashjs.MediaPlayer.events.ERROR,(function(e){var t=je.codes[302];t.error=e,$e(t,r)})),o.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_REQUESTED,(function(e){e&&e.mediaType&&"video"===e.mediaType&&r.trigger(De,{isAuto:l(),currentQuality:f.currentQuality,type:"request"})})),o.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_RENDERED,(function(e){e&&e.mediaType&&"video"===e.mediaType&&(f.currentQuality=e.newQuality,r.trigger(De,{isAuto:l(),currentQuality:e.newQuality,type:"render"}))})),o.on(dashjs.MediaPlayer.events.PLAYBACK_METADATA_LOADED,(function(e){OvenPlayerConsole.log("DASH : PLAYBACK_METADATA_LOADED  : ",o.getQualityFor("video"),o.getBitrateInfoListFor("video"),o.getBitrateInfoListFor("video")[o.getQualityFor("video")]);var t=o.getBitrateInfoListFor("video");f.currentQuality=o.getQualityFor("video");for(var n=0;n<t.length;n++)i().findWhere(f.qualityLevels,{bitrate:t[n].bitrate,height:t[n].height,width:t[n].width})||f.qualityLevels.push({bitrate:t[n].bitrate,height:t[n].height,width:t[n].width,index:t[n].qualityIndex,label:t[n].width+"x"+t[n].height+", "+kn(t[n].bitrate,!0,"bps")});o.isDynamic()&&(f.isLive=!0),s&&!f.isLive&&o.seek(s)})),r.play=function(e){r.getState()===ie||r.getState()===ae||a(e)},r.setCurrentQuality=function(e){return r.getState()!==ee&&r.play(),f.currentQuality=e,l()&&u(!1),o.setQualityFor("video",e),f.currentQuality},r.isAutoQuality=function(){return l()},r.setAutoQuality=function(e){u(e)},r.destroy=function(){o.destroy?o.destroy():o.reset(),o=null,r.trigger("dashDestroyed"),OvenPlayerConsole.log("DASH : PROVIDER DESTROYED."),A()}}catch(e){if(e&&e.code&&103===e.code)throw e;var p=je.codes[105];throw p.error=e,p}return r},Sn=function(e,t,n){var r={},o=null,i=null,a=null,A=null,s=!1;try{var c={debug:!1},u=t.getConfig().hlsConfig;if(u)for(var l in u)c[l]=u[l];o=new Hls(c),window.op_hls=o,o.attachMedia(e);var f={name:fe,element:e,mse:o,listener:null,isLoaded:!1,canSeek:!1,isLive:!1,seeking:!1,state:X,buffer:0,dvrWindow:0,framerate:0,currentQuality:-1,qualityLevels:[],currentAudioTrack:-1,audioTracks:[],currentSource:-1,sources:[],adTagUrl:n};r=wn(f,t,(function(e,t){OvenPlayerConsole.log("HLS : onExtendedLoad : ",e,"lastPlayPosition : "+t),r.trigger("hlsPrepared",o),o.loadSource(e.file),o.once(Hls.Events.MANIFEST_LOADED,(function(e,t){for(var n=0;n<o.levels.length;n++){var r=o.levels[n];f.qualityLevels.push({bitrate:r.bitrate,height:r.height,width:r.width,index:n,label:r.width+"x"+r.height+", "+kn(r.bitrate,!0,"bps")})}f.currentQuality=o.firstLevel;for(var i=0;i<o.audioTracks.length;i++){var a=o.audioTracks[i];f.audioTracks.push({index:a.id,label:a.name}),!0===a.default&&(f.currentAudioTrack=a.id)}})),o.once(Hls.Events.LEVEL_LOADED,(function(e,n){s=!0,A&&(clearTimeout(A),A=null),n.details.live?f.isLive=!0:t&&t>=0&&r.seek(t)})),o.on(Hls.Events.LEVEL_SWITCHED,(function(e,t){f.currentQuality=t.level,r.trigger(De,{isAuto:o.autoLevelEnabled,currentQuality:f.currentQuality,type:"render"})})),o.on(Hls.Events.AUDIO_TRACK_SWITCHED,(function(e,t){f.currentAudioTrack=t.id,r.trigger(We,{currentAudioTrack:f.currentAudioTrack})})),o.on(Hls.Events.LEVEL_UPDATED,(function(e,t){t&&t.details&&(f.dvrWindow=t.details.totalduration)})),o.on(Hls.Events.ERROR,(function(t,n){if(n&&n.networkDetails&&202===n.networkDetails.status)return A&&(clearTimeout(A),A=null),r.setState(ne),void(A=setTimeout((function(){o&&(r.stop(),o.stopLoad(),o.loadSource(e.file))}),1e3));if(n.fatal){var i=302;n&&n.networkDetails&&400===n.networkDetails.status?i=306:n&&n.networkDetails&&403===n.networkDetails.status?i=307:n&&n.networkDetails&&406===n.networkDetails.status&&(i=308);var a=je.codes[i];a.error=n.details,$e(a,r)}})),r.on(ye,(function(e){s||e.prevstate!==ne||e.newstate!==X||(A&&(clearTimeout(A),A=null),o&&o.stopLoad())}))})),r.setCurrentQuality=function(e){return o.currentLevel=e,f.currentQuality=e,f.currentQuality},r.isAutoQuality=function(){return o.autoLevelEnabled},r.setAutoQuality=function(e){o.currentLevel=e?-1:o.currentLevel},r.setCurrentAudioTrack=function(e){return o.audioTrack=e,f.currentAudioTrack=e,f.currentAudioTrack},r.getDuration=function(){return e.duration},i=r.super("stop"),r.stop=function(){A&&(clearTimeout(A),A=null),o&&o.stopLoad(),i()},a=r.super("destroy"),r.destroy=function(){A&&(clearTimeout(A),A=null),o&&(o.destroy(),r.trigger("hlsDestroyed")),o=null,OvenPlayerConsole.log("HLS : PROVIDER DESTROYED."),a()},OvenPlayerConsole.log("HLS PROVIDER LOADED.")}catch(e){var p=je.codes[106];throw p.error=e,p}return r},Tn=function(e){var t={};ze(t),OvenPlayerConsole.log("API loaded.");var n=function(e){var t={},n={playlist:[],currentIndex:0},r=Xe();OvenPlayerConsole.log("PlaylistManager loaded.");var o=function(e){if(e&&(e.file||e.host||e.application||e.stream)){var t=Object.assign({},{default:!1},e);t.file=a(""+t.file),t.host&&t.application&&t.stream&&(t.file=t.host+"/"+t.application+"/stream/"+t.stream,delete t.host,delete t.application,delete t.stream);var n=/^[^/]+\/(?:x-)?([^/]+)$/;if(n.test(t.type)&&(t.mimeType=t.type,t.type=t.type.replace(n,"$1")),Ve(t.file)?t.type="rtmp":He(t.file)?t.type="webrtc":Je(t.file,t.type)?t.type="hls":Ze(t.file,t.type)?t.type="dash":t.type||(t.type=A(t.file)),t.lowLatency&&(t.lowLatency=t.lowLatency),t.type){switch(t.type){case"m3u8":case"vnd.apple.mpegurl":t.type="hls";break;case"m4a":t.type="aac";break;case"smil":t.type="rtmp"}return Object.keys(t).forEach((function(e){""===t[e]&&delete t[e]})),t}}};return t.initPlaylist=function(e,t){OvenPlayerConsole.log("PlaylistManager setPlaylist() ",e);var a=(i().isArray(e)?e:[e]).map((function(e){i().isArray(e.tracks)||delete e.tracks;var n=Object.assign({},{sources:[],tracks:[],title:""},e);n.sources!==Object(n.sources)||i().isArray(n.sources)||(n.sources=[o(n.sources)]),i().isArray(n.sources)&&0!==n.sources.length||(n.sources=[o(n)]),i().isArray(n.sources)&&0!==n.sources.length||(e.levels?n.sources=e.levels:n.sources=[o(e)]);for(var a=0;a<n.sources.length;a++){var A,s=n.sources[a];if(s){var c=s.default;s.default=!!c&&"true"===c.toString(),n.sources[a].label||(n.sources[a].label=n.sources[a].type+"-"+a.toString()),A=o(n.sources[a]),r.findProviderNameBySource(A)?n.sources[a]=A:n.sources[a]=null}}return n.sources=n.sources.filter((function(e){return!!e})),!n.title&&n.sources[0]&&n.sources[0].label&&(n.title=n.sources[0].label),t.isCurrentProtocolOnly()&&(n.sources=function(e){if(e){var t=n.sources[0].type;return i().filter(e,{type:t})}}(n.sources)),i().isArray(n.tracks)||(n.tracks=[]),i().isArray(n.captions)&&(n.tracks=n.tracks.concat(n.captions),delete n.captions),n.tracks=n.tracks.map((function(e){return!(!e||!e.file)&&Object.assign({},{kind:"captions",default:!1},e)})).filter((function(e){return!!e})),n})).filter((function(e){return e.sources&&e.sources.length>0}))||[];return n.playlist=a,a},t.getPlaylist=function(){return OvenPlayerConsole.log("PlaylistManager getPlaylist() ",n.playlist),n.playlist},t.getCurrentPlayList=function(){return n.playlist[n.currentIndex]?n.playlist[n.currentIndex]:[]},t.getCurrentPlaylistIndex=function(){return n.currentIndex},t.setCurrentPlaylist=function(t){return n.playlist[t]&&(n.currentIndex=t,e.trigger(he,n.currentIndex)),n.currentIndex},t.getCurrentSources=function(){return n.playlist[n.currentIndex]?(OvenPlayerConsole.log("PlaylistManager getCurrentSources() ",n.playlist[n.currentIndex].sources),n.playlist[n.currentIndex].sources):null},t.getCurrentAdTag=function(){if(n.playlist[n.currentIndex])return n.playlist[n.currentIndex].adTagUrl||""},t}(t),o=function(){var e=Xe(),t={},n={};OvenPlayerConsole.log("ProviderController loaded.");var r=function(e,n){t[e]||(OvenPlayerConsole.log("ProviderController _registerProvider() ",e),t[e]=n)},o={html5:function(){var e=En;return r(ce,e),{name:ce,provider:e}},webrtc:function(){var e=xn;return r(ue,e),{name:ue,provider:e}},dash:function(){var e=In;return r(le,e),{name:le,provider:e}},hls:function(){var e=Sn;return r(fe,e),{name:fe,provider:e}}};return n.loadProviders=function(t){var n=e.findProviderNamesByPlaylist(t);return OvenPlayerConsole.log("ProviderController loadProviders() ",n),n?Promise.all(n.filter((function(e){return!!o[e]})).map((function(e){return o[e]()}))):Promise.reject(je.codes[101])},n.findByName=function(e){return OvenPlayerConsole.log("ProviderController findByName() ",e),t[e]},n.getProviderBySource=function(t){var r=e.findProviderNameBySource(t);return OvenPlayerConsole.log("ProviderController getProviderBySource() ",r),n.findByName(r)},n.isSameProvider=function(t,n){return OvenPlayerConsole.log("ProviderController isSameProvider() ",e.findProviderNameBySource(t),e.findProviderNameBySource(n)),e.findProviderNameBySource(t)===e.findProviderNameBySource(n)},n}(),s=Y(),c=function(e,t){var n={},r=_e(e),o="";return OvenPlayerConsole.log("MediaManager loaded. browser : ",t),n.createMedia=function(e,t){return n.empty(),i=t.isLoop(),a=t.isAutoStart(),(o=document.createElement("video")).setAttribute("disableremoteplayback",""),o.setAttribute("webkit-playsinline","true"),o.setAttribute("playsinline","true"),i&&o.setAttribute("loop",""),a&&o.setAttribute("autoplay",""),r.append(o),o;var i,a},n.createAdContainer=function(){var e=document.createElement("div");return e.setAttribute("class","op-ads"),r.append(e),e},n.empty=function(){OvenPlayerConsole.log("MediaManager removeElement()"),r.removeChild(o),o=null},n.destroy=function(){r.removeChild(),r=null,o=null},n}(e,s),u="",l="",f="",p=function(e){OvenPlayerConsole.log("runNextPlaylist");var r=e,o=!!n.getPlaylist()[r];l.setSourceIndex(0),l.setVolume(u.getVolume()),o?(n.setCurrentPlaylist(r),d()):t.trigger(ve,null)},d=function(e){return o.loadProviders(n.getCurrentPlayList()).then((function(e){if(e.length<1)throw je.codes[101];u&&(u.destroy(),u=null),f&&(f.destroy(),f=null),f=function(e,t){var n={},r=[],o=-1,a=K(),A=!0;OvenPlayerConsole.log("Caption Manager >> ",t);var s=function(e,t){return e.data=t||[],e.name=e.label||e.name||e.language,e.id=function(e,t){var n,o=e.kind||"cc";return n=e.default||e.defaulttrack?"default":e.id||o+t,A&&(c(r.length||0),A=!1),n}(e,r.length),r.push(e),e.id},c=function(t){o=t,e.trigger(Pe,o)};if(e.getConfig().playlist&&e.getConfig().playlist.length>0){var u=e.getConfig().playlist[t];if(u&&u.tracks&&u.tracks.length>0)for(var l=function(t){var n=u.tracks[t];Ge(n.kind)&&!i().findWhere(n,{file:n.file})&&a.load(n,n.lang,(function(e){e&&e.length>0&&s(n,e)}),(function(t){var n=je.codes[305];n.error=t,e.trigger(Ce,n)}))},f=0;f<u.tracks.length;f++)l(f)}return e.on(Le,(function(t){var n=t.position;if(o>-1&&r[o]){var a=i().filter(r[o].data,(function(e){return n>=e.startTime&&(!e.endTime||n)<=e.endTime}));a&&a.length>0&&e.trigger(Fe,a[0])}})),n.flushCaptionList=function(e){r=[],c(e)},n.getCaptionList=function(){return r||[]},n.getCurrentCaption=function(){return o},n.setCurrentCaption=function(e){if(!(e>-2&&e<r.length))return null;c(e)},n.addCaption=function(t){Ge(t.kind)&&!i().findWhere(a,{file:t.file})&&a.load(t,(function(e){e&&e.length>0&&s(t,e)}),(function(t){var n=errors[305];n.error=t,e.trigger(Ce,n)}))},n.removeCaption=function(e){return e>-1&&e<r.length?(r.splice(e,1),r):null},n.destroy=function(){r=[],a=null,e.off(Le,null,n)},n}(t,n.getCurrentPlaylistIndex()),OvenPlayerConsole.log("API : init() captions");var r=et(n.getCurrentSources(),l),o=e[r].name;OvenPlayerConsole.log("API : init() provider",o),u=e[r].provider(c.createMedia(o,l),l,n.getCurrentAdTag()),o===pe&&Object.assign(t,function(e){return{externalCallbackCreep:function(t){return t.name&&t.data?e.triggerEventFromExternal(t.name,t.data):null}}}(u)),u.on("all",(function(e,r){if(e===Ce&&l.getConfig().autoFallback&&t.getCurrentSource()+1<t.getSources().length)return t.pause(),void t.setCurrentSource(t.getCurrentSource()+1);"complete"===e&&p(n.getCurrentPlaylistIndex()+1),e===Oe&&l.isAutoStart()&&t.play(),t.trigger(e,r)}))})).then((function(){u.preload(n.getCurrentSources(),e).then((function(){})).catch((function(e){if(e&&e.code&&je.codes[e.code])t.trigger(Ce,je.codes[e.code]);else{var n=je.codes[100];n.error=e,t.trigger(Ce,n)}}))})).catch((function(e){if(e&&e.code&&je.codes[e.code])t.trigger(Ce,je.codes[e.code]);else{var n=je.codes[100];n.error=e,t.trigger(Ce,n)}}))};return t.init=function(r){r||(r={}),r.mediaContainer=e,r.browser=s,l=function(e,t){OvenPlayerConsole.log("Configurator loaded.",e);var n=function(e){!function(e){Object.keys(e).forEach((function(t){"id"!==t&&(e[t]=function(e){if(void 0===e)return null;if("string"==typeof e&&e.length<6){var t=e.toLowerCase();if("true"===t)return!0;if("false"===t)return!1;if(!isNaN(Number(e))&&!isNaN(parseFloat(e)))return Number(e)}return e}(e[t]))}))}(e);var t=Object.assign({},{mediaContainer:"",playbackRates:[2,1.5,1,.5,.25],playbackRate:1,mute:!1,volume:100,loop:!1,controls:!0,autoStart:!1,autoFallback:!0,timecode:!0,sourceIndex:-1,browser:"",hidePlaylistIcon:!1,rtmpBufferTime:1,rtmpBufferTimeMax:3,adClient:"googleima",currentProtocolOnly:!1,systemText:null,lang:"en",loadingRetryCount:0,expandFullScreenUI:!0,fullscreenOption:null,showBigPlayButton:!0},e),n=[];t.systemText&&(n=i().isArray(t.systemText)?t.systemText:[t.systemText]);for(var r=0;r<n.length;r++)if(n[r].lang){var o=i().findWhere(Ye,{lang:n[r].lang});o?Object.assign(o,n[r]):((o=i().findWhere(Ye,{lang:"en"})).lang=n[r].lang,Ye.push(Object.assign(n[r],o)))}t.systemText=i().findWhere(Ye,{lang:t.lang});var a=t.playbackRates;(a=a.filter((function(e){return i().isNumber(e)&&e>=.25&&e<=4})).map((function(e){return Math.round(4*e)/4}))).indexOf(1)<0&&a.push(1),a.sort(),t.playbackRates=a,t.rtmpBufferTime=t.rtmpBufferTime>10?10:t.rtmpBufferTime,t.rtmpBufferTimeMax=t.rtmpBufferTimeMax>50?50:t.rtmpBufferTimeMax,t.playbackRates.indexOf(t.playbackRate)<0&&(t.playbackRate=1);var A=t.playlist;if(A)i().isArray(A.playlist)&&(t.feedData=A,t.playlist=A.playlist);else{var s=i().pick(t,["title","description","type","image","file","sources","tracks","host","application","stream","adTagUrl"]);t.playlist=[s]}return delete t.duration,t}(e);return{getConfig:function(){return n},getAdClient:function(){return n.adClient},setConfig:function(e,t){n[e]=t},getContainer:function(){return n.mediaContainer},getPlaybackRate:function(){return n.playbackRate},setPlaybackRate:function(e){return n.playbackRate=e,e},getQualityLabel:function(){return n.qualityLabel},setQualityLabel:function(e){n.qualityLabel=e},isCurrentProtocolOnly:function(){return n.currentProtocolOnly},getSourceIndex:function(){return n.sourceIndex},setSourceIndex:function(e){n.sourceIndex=e},setTimecodeMode:function(e){n.timecode!==e&&(n.timecode=e,t.trigger(Ue,e))},isTimecodeMode:function(){return n.timecode},getRtmpBufferTime:function(){return n.rtmpBufferTime},getRtmpBufferTimeMax:function(){return n.rtmpBufferTimeMax},setMute:function(e){n.mute=e},isMute:function(){return n.mute},getVolume:function(){return n.volume},setVolume:function(e){n.volume=e},isLoop:function(){return n.loop},isAutoStart:function(){return n.autoStart},isControls:function(){return n.controls},getPlaybackRates:function(){return n.playbackRates},getBrowser:function(){return n.browser},getSystemText:function(){return n.systemText},getLanguage:function(){return n.lang},getPlaylist:function(){return n.playlist},setPlaylist:function(e){return i().isArray(e)?n.playlist=e:n.playlist=[e],n.playlist}}}(r,t),OvenPlayerConsole.log("API : init()"),OvenPlayerConsole.log("API : init() config : ",l),je.codes=l.getSystemText().api.error,n.initPlaylist(l.getPlaylist(),l),OvenPlayerConsole.log("API : init() sources : ",n.getCurrentSources()),d(),setTimeout((function(){t.trigger(de)}))},t.getProviderName=function(){return u?u.getName():null},t.getProvider=function(){return u},t.getMseInstance=function(){return u?u.getMse():null},t.getConfig=function(){return OvenPlayerConsole.log("API : getConfig()",l.getConfig()),l.getConfig()},t.getBrowser=function(){return l.getBrowser()},t.setTimecodeMode=function(e){OvenPlayerConsole.log("API : setTimecodeMode()",e),l.setTimecodeMode(e)},t.isTimecodeMode=function(){return OvenPlayerConsole.log("API : isTimecodeMode()"),l.isTimecodeMode()},t.getFramerate=function(){if(OvenPlayerConsole.log("API : getFramerate()"),u)return u.getFramerate()},t.seekFrame=function(e){return u?(OvenPlayerConsole.log("API : seekFrame()",e),u.seekFrame(e)):null},t.getDuration=function(){return u?(OvenPlayerConsole.log("API : getDuration()",u.getDuration()),u.getDuration()):null},t.getDvrWindow=function(){return u?(OvenPlayerConsole.log("API : getDvrWindow()",u.getDvrWindow()),u.getDvrWindow()):null},t.getPosition=function(){return u?(OvenPlayerConsole.log("API : getPosition()",u.getPosition()),u.getPosition()):null},t.getVolume=function(){return u?(OvenPlayerConsole.log("API : getVolume()",u.getVolume()),u.getVolume()):null},t.setVolume=function(e){if(!u)return null;OvenPlayerConsole.log("API : setVolume() "+e),u.setVolume(e)},t.setMute=function(e){return u?(OvenPlayerConsole.log("API : setMute() "+e),u.setMute(e)):null},t.getMute=function(){return u?(OvenPlayerConsole.log("API : getMute() "+u.getMute()),u.getMute()):null},t.load=function(e){return OvenPlayerConsole.log("API : load() ",e),e&&(l.setSourceIndex(0),u&&u.getQualityLevels().length>0&&u.setCurrentQuality(0),"sources"in e?l.setPlaylist(e):l.setPlaylist({sources:e}),n.initPlaylist(l.getPlaylist(),l)),d()},t.play=function(){if(!u)return null;OvenPlayerConsole.log("API : play() "),u.metaLoaded()||l.isAutoStart()?u.play():t.once(Oe,(function(){u.play()}))},t.pause=function(){if(!u)return null;OvenPlayerConsole.log("API : pause() "),u.pause()},t.seek=function(e){if(!u)return null;OvenPlayerConsole.log("API : seek() "+e),u.seek(e)},t.setPlaybackRate=function(e){return u?(OvenPlayerConsole.log("API : setPlaybackRate() ",e),u.setPlaybackRate(l.setPlaybackRate(e))):null},t.getPlaybackRate=function(){return u?(OvenPlayerConsole.log("API : getPlaybackRate() ",u.getPlaybackRate()),u.getPlaybackRate()):null},t.getPlaylist=function(){return OvenPlayerConsole.log("API : getPlaylist() ",n.getPlaylist()),n.getPlaylist()},t.getCurrentPlaylist=function(){return OvenPlayerConsole.log("API : getCurrentPlaylist() ",n.getCurrentPlaylistIndex()),n.getCurrentPlaylistIndex()},t.setCurrentPlaylist=function(e){OvenPlayerConsole.log("API : setCurrentPlaylist() ",e),p(e)},t.getSources=function(){return u?(OvenPlayerConsole.log("API : getSources() ",u.getSources()),u.getSources()):null},t.getCurrentSource=function(){return u?(OvenPlayerConsole.log("API : getCurrentSource() ",u.getCurrentSource()),u.getCurrentSource()):null},t.setCurrentSource=function(e){if(!u)return null;OvenPlayerConsole.log("API : setCurrentSource() ",e);var n=u.getPosition();return l.setSourceIndex(e),d(n).then((function(){t.trigger(Me,{currentSource:e})})),e},t.getQualityLevels=function(){return u?(OvenPlayerConsole.log("API : getQualityLevels() ",u.getQualityLevels()),u.getQualityLevels()):null},t.getCurrentQuality=function(){return u?(OvenPlayerConsole.log("API : getCurrentQuality() ",u.getCurrentQuality()),u.getCurrentQuality()):null},t.setCurrentQuality=function(e){return u?(OvenPlayerConsole.log("API : setCurrentQuality() ",e),u.setCurrentQuality(e)):null},t.getAudioTracks=function(){return u?(OvenPlayerConsole.log("API : getAudioTracks() ",u.getAudioTracks()),u.getAudioTracks()):null},t.getCurrentAudioTrack=function(){return u?(OvenPlayerConsole.log("API : getCurrentAudioTrack() ",u.getCurrentAudioTrack()),u.getCurrentAudioTrack()):null},t.setCurrentAudioTrack=function(e){return u?(OvenPlayerConsole.log("API : setCurrentAudioTrack() ",e),u.setCurrentAudioTrack(e)):null},t.isAutoQuality=function(){return u?(OvenPlayerConsole.log("API : isAutoQuality()"),u.isAutoQuality()):null},t.setAutoQuality=function(e){return u?(OvenPlayerConsole.log("API : setAutoQuality() ",e),u.setAutoQuality(e)):null},t.getCaptionList=function(){return f?(OvenPlayerConsole.log("API : getCaptionList() ",f.getCaptionList()),f.getCaptionList()):null},t.getCurrentCaption=function(){return f?(OvenPlayerConsole.log("API : getCurrentCaption() ",f.getCurrentCaption()),f.getCurrentCaption()):null},t.setCurrentCaption=function(e){if(!f)return null;OvenPlayerConsole.log("API : setCurrentCaption() ",e),f.setCurrentCaption(e)},t.addCaption=function(e){return f?(OvenPlayerConsole.log("API : addCaption() "),f.addCaption(e)):null},t.removeCaption=function(e){return f?(OvenPlayerConsole.log("API : removeCaption() ",e),f.removeCaption(e)):null},t.getBuffer=function(){if(!u)return null;OvenPlayerConsole.log("API : getBuffer() ",u.getBuffer()),u.getBuffer()},t.getState=function(){return u?(OvenPlayerConsole.log("API : getState() ",u.getState()),u.getState()):null},t.stop=function(){if(!u)return null;OvenPlayerConsole.log("API : stop() "),u.stop()},t.remove=function(){OvenPlayerConsole.log("API : remove() "),f&&(f.destroy(),f=null),u&&(u.destroy(),u=null),c&&(c.destroy(),c=null),t.trigger(ge),t.off(),o=null,n=null,l=null,OvenPlayerConsole.log("API : remove() - currentProvider, providerController, playlistManager, playerConfig, api event destroed. "),Ln.removePlayer(t)},t.getMediaElement=function(){return u.getMediaElement()},t.getVersion=function(){return r},t},Ln=(cn=(sn={}).playerList=[],sn.create=function(e,t){window.OvenPlayerConsole&&0!==Object.keys(window.OvenPlayerConsole).length||(window.OvenPlayerConsole={},OvenPlayerConsole.log=function(){});var n=Ke(e),r=Tn(n);return r.init(t),cn.push(r),r},sn.getPlayerList=function(){return cn},sn.getPlayerByContainerId=function(e){for(var t=0;t<cn.length;t++)if(cn[t].getContainerId()===e)return cn[t];return null},sn.getPlayerByIndex=function(e){return cn[e]||null},sn.removePlayer=function(e){for(var t=0;t<cn.length;t++)cn[t]===e&&cn.splice(t,1)},sn.generateWebrtcUrls=function(e){return(i().isArray(e)?e:[e]).map((function(e,t){if(e.host&&He(e.host)&&e.application&&e.stream)return{file:e.host+"/"+e.application+"/"+e.stream,type:"webrtc",label:e.label?e.label:"webrtc-"+(t+1)}}))},sn.debug=function(e){return window.OvenPlayerConsole=e?{log:window.console.log}:{log:function(){}},e},sn),Rn=function(e,t){var n='<div id="'+t.id+'" class="op-setting-panel '+(t.isRoot?"animated fadeIn":"")+'" style="max-height: '+t.height+'px"><div class="op-setting-title-container"><div class="op-setting-title" tabindex="0">'+(t.isRoot?"":'<span class="op-setting-title-previcon">&lt;</span>')+'<span class="op-setting-title-title">'+t.title+'</span></div></div><div class="op-setting-item-container">';return i().forEach(t.body,(function(e){n+=Qn(e,t.useCheck)})),n+="</div></div>"},Qn=function(e,t){return'<div class="op-setting-item" op-panel-type="'+e.panelType+'" op-data-value="'+e.value+'">'+(t?'<span class="op-setting-item-checked '+(e.isCheck?"op-show":"")+'">&#x2713;</span>':"")+'<span class="op-setting-item-title">'+e.title+"</span>"+(e.hasNext?'<span class="op-setting-item-nexticon">&gt;</span><span class="op-setting-item-value">'+e.description+"</span>":"")+"</div>"},On=function(e,t){return'<div class="op-playlist-card '.concat(t?"active":"",'" data-index="').concat(e.index,'">')+'<div class="op-playlist-card-thumbnail '.concat(e.image?"":"empty",'">').concat(e.image?"<img src=".concat(e.image,">"):'<i class="op-con op-empty-video"></i>'," ").concat(e.duration?'<span class="op-badge">'.concat(s(e.duration),"</span>"):""," </div>")+'<div class="op-playlist-card-title">'.concat(e.title,"</div>")+"</div>"},Mn={TextViewTemplate:function(e){return'<div class="textView" style="padding : 5px; background: red; position : absolute; top: 0;">'+"<h3>".concat(e,"</h3>")+'<button type="button" class="btn">button</button></div>'},ViewTemplate:function(e,t){return'<div class="ovenplayer op-wrapper" tabindex="-1" '.concat(t?'id = "'.concat(t,'"'):"",">")+'<div class="op-ratio"></div><div class="op-player op-clear"><div class="op-core-ui-wrapper op-clear"><div class="op-media-element-container op-clear"></div><div class="op-ui op-clear"></div></div></div></div>'},HelpersTemplate:function(e,t){return'<div class="op-helpers-container"></div>'},BigButtonTemplate:function(e,t){return'<div class="op-bigbutton-container ">'+"".concat(t===ee?'<i class="op-con op-pause-big"></i>':"")+"".concat(t===$?'<i class="op-bigbutton op-con op-play-big"></i>':"")+"".concat(t===X?'<i class="op-bigbutton op-con op-play-big"></i>':"")+"".concat(t===q?'<i class="op-bigbutton op-con op-replay-big"></i>':"")+"</div>"},ThumbnailTemplate:function(e,t){return'<div class="op-thumbnail-container"><div class="op-thumbnail-wrapper">'+"".concat(t.title?'<div class="op-thumbnail-header">'.concat(t.title,"</div>"):"")+"</div></div>"},WaterMarkTemplate:function(e,t){return'<div class="op-watermark-container"><div class="op-watermark">'+"".concat(t.waterMark.image?'<img src="'.concat(t.waterMark.image,'">'):"")+"".concat(t.waterMark.text?'<span class="op-watermark-text">'.concat(t.waterMark.text,"</span>"):"")+"</div></div>"},MessageBoxTemplate:function(e,t){return'<div class="op-message-box op-clear '.concat(!0===t.dontClose?"op-message-box-default-cursor":"",'">')+'<div class="op-message-container ">'+'<div class="op-message-text">'.concat(t.message)+"".concat(t.description?'<div class="op-message-description">'.concat(t.description,"</div>"):"")+"</div>"+"".concat(t.iconClass?'<div class="op-message-icon"><i class="op-con '.concat(t.iconClass,'"></i></div>'):"")+"</div></div>"},SpinnerTemplate:function(e){return'<div class="op-spinner-container"><div class="op-spinner"></div></div>'},ContextPanelTemplate:function(e){return'<div class="op-context-panel animated fadeIn"><div class="op-context-item" tabindex="1">'+'<span class="op-context-item-text">'.concat(e.context," ").concat(r,"</span>")+"</div></div>"},CaptionViewerTemplate:function(e){return'<div class="op-caption-viewer">    <div class="op-caption-text-container">        <pre class="op-caption-text"></pre>      </div></div>'},ControlsTemplate:function(e,t){return'<div class="op-controls-container op-clear"><div class="op-bottom-panel op-clear"><div class="op-gradient-bottom op-clear"></div><div class="op-controls op-clear"><div class="op-left-controls op-clear"></div><div class="op-right-controls op-clear">'+'<div class="playlist-holder op-navigators op-clear">'.concat(t?'<button class="op-button op-playlist-button"><i class="op-con op-playlist-icon"></i></button>':"","</div>")+'<div class="setting-holder op-navigators op-clear"></div><div class="fullscreen-holder op-navigators op-clear"></div></div></div><div class="op-progressbar-container op-clear"></div></div></div>'},VolumeButtonTemplate:function(e){return'<div class="op-navigators op-volume-controller"><button class="op-button op-volume-button"><i class="op-con op-volume-max"></i><i class="op-con op-volume-small"></i><i class="op-con op-volume-mute"></i></button><div class="op-volume-slider-container"><div class="op-volume-silder"><div class="op-volume-slider-bg"></div><div class="op-volume-slider-value"></div><div class="op-volume-slider-handle"></div></div></div></div>'},ProgressBarTemplate:function(e){return'<div class="op-progressbar" tabindex="0"><div class="op-progressbar-padding"></div><div class="op-progress-list"><div class="op-load-progress"></div><div class="op-play-progress op-play-background-color"></div><div class="op-hover-progress"></div></div><div class="op-progressbar-knob-container"><div class="op-progressbar-knob op-play-background-color"></div></div><span class="op-progressbar-preview"></span><span class="op-progressbar-time">00:00</span></div>'},PlayButtonTemplate:function(e){return'<div class="op-navigators op-play-controller"><button class="op-button op-play-button" type="button"><i class="op-con op-play"></i><i class="op-con op-pause" style="display: none;"></i><i class="op-con op-replay" style="display: none;"></i></button><button class="op-button op-seek-button op-seek-button-back" type="button"><i class="op-con op-seek-back"></i><span class="op-seek-back-text">10</span></button><button class="op-button op-seek-button op-seek-button-forward" type="button"><i class="op-con op-seek-forward"></i><span class="op-seek-forward-text">10</span></button></div>'},SettingButtonTemplate:function(e){return'<button class="op-button op-setting-button"><i class="op-con op-setting"></i></button>'},FrameButtonsTemplate:function(e){return'<div class="op-frame-buttons"><button class="op-button op-frame-button" op-data-value="-5"><div class="frame-icon"><span class="btn-text">-5f</span></div></button><button class="op-button op-frame-button" op-data-value="-1"><div class="frame-icon"><span class="btn-text">-1f</span></div></button><button class="op-button op-frame-button" op-data-value="+1"><div class="frame-icon reverse"><span class="btn-text">+1f</span></div></button><button class="op-button op-frame-button" op-data-value="+5"><div class="frame-icon reverse"><span class="btn-text">+5f</span></div></button></div>'},TimeDisplayTemplate:function(e,t){return'<div class="op-navigators op-time-display">'+(t.duration===1/0?'<span class="op-live-badge" disabled="disabled">'+("webrtc"===t.type?t.isP2P?'<span class="op-live-badge-lowlatency">'.concat(e.controls.low_latency_p2p,"</span>"):'<span class="op-live-badge-lowlatency">'.concat(e.controls.low_latency_live,"</span>"):'<span class="op-live-text" title="Skip ahead to live.">'.concat(e.controls.live,"</span>"))+"</span>":'<span class="op-time-current">00:00</span><span class="op-time-separator"> / </span><span class="op-time-duration">00:00</span>')+"</div>"},FullScreenButtonTemplate:function(e){return'<button class="op-button op-fullscreen-button"><i class="op-con op-fullscreen-expand"></i><i class="op-con op-fullscreen-compress"></i></button>'},PanelsTemplate:Rn,SpeedPanelTemplate:Rn,SourcePanelTemplate:Rn,QualityPanelTemplate:Rn,AudioTrackPanelTemplate:Rn,CaptionPanelTemplate:Rn,TimeDisplayPanelTemplate:Rn,PlaylistPanelTemplate:function(e,t){return'<div class="op-playlist" tabindex="0">'+'<div class="op-playlist-header">'.concat(e.playlist,' <i class="op-con op-close-icon btn-close"></i></div>')+'<div class="op-playlist-body"><div class="op-playlist-body-container"><div class="op-playlist-body-center"><div class="op-playlist-body-row"></div></div></div><div class="op-playlist-body-arrows"><i class="op-con op-arrow-left btn-left"></i><i class="op-con op-arrow-right btn-right"></i></div></div></div>'}},Dn=function(e,t,n,r,o,a,A,s){var c,u=i().isElement(e)?_e(e):e,l={},f=null,p={};p.data=r;var d=function(e){var t=document.createElement("div");return t.innerHTML=e,c=_e(t.firstChild),t.firstChild};return n&&n.systemText&&(f=n.systemText.ui),s?u.replace(d(Mn[t+"Template"](f,r))):u.append(d(Mn[t+"Template"](f,r))),a&&a(c,p),Object.keys(o).forEach((function(e){var t=e.split(" "),n=t[0].replace(/ /gi,""),r=t[1].replace(/ /gi,""),i="";if(i="document"===r||"window"===r||"body"===r?_e(r):c.find(r)||(c.hasClass(r.replace(".",""))?c:null),!(n&&r&&i))return!1;var a=Object.keys(l).length++,A=function(t){return o[e](t,c,p)};l[a]={name:n,target:r,callback:A};var s=null;n.indexOf("touch")>-1&&(s={passive:!0});var u=i.get().length;if(u>1)for(var f=i.get(),d=0;d<u;d++)f[d].addEventListener(n,A,s);else i.get().addEventListener(n,A,s)})),p.destroy=function(){Object.keys(l).forEach((function(e){var t=l[e],n="",r=(n="document"===t.target||"window"===t.target||"body"===t.target?_e(t.target):c.find(t.target)||(c.hasClass(t.target.replace(".",""))?c:null)).get().length;if(r>1)for(var o=n.get(),i=0;i<r;i++)o[i].removeEventListener(t.name,t.callback);else n.get().removeEventListener(t.name,t.callback);delete l[e]})),c&&(s?(c.removeChild(),c.removeAttribute("class")):c.remove()),A&&A(p)},p},Fn=function(e,t,n,r,o,i,a,A){var s="",c={message:n,description:r,iconClass:i,dontClose:A},u={"click .op-message-text":function(e,t,n){e.stopPropagation(),A||(s&&clearTimeout(s),a&&a(),n.destroy())},"click .op-con":function(e,t,n){e.preventDefault(),A||(s&&clearTimeout(s),a&&a(),n.destroy())}};return Dn(e,"MessageBox",t.getConfig(),c,u,(function(e,t){o&&(s=setTimeout((function(){t.destroy()}),o||5e3))}),(function(){}))},Pn=function(e,t){var n,r,o=!1,a="",A="",s="",c=null,u=t.getConfig().image||t.getConfig().title,l=t.getConfig().waterMark&&t.getConfig().waterMark.image||t.getConfig().waterMark&&t.getConfig().waterMark.text,f=!1;return Dn(e,"Helpers",t.getConfig(),null,{},(function(e,p){var d=!1,g=-1;function h(n){t.getConfig().showBigPlayButton&&(t.getState()!==X&&t.getState()!==q||(A&&A.destroy(),a&&a.destroy(),a=function(e,t,n){var r={"click .op-bigbutton-container":function(e){e.preventDefault(),e.stopPropagation();var n=t.getState(),r=t.getPlaylist(),o=t.getCurrentPlaylist();n===X||n===$?t.play():n===te?t.setCurrentSource(t.getCurrentSource()):n===q&&r.length===o+1&&(t.seek(0),t.play())}};return Dn(e,"BigButton",t.getConfig(),n,r,(function(e,t,n){}),(function(){}))}(e,t,n)))}function v(){var r=t.getMediaElement();r&&(r.poster=""),t.getConfig().image&&(r.poster=t.getConfig().image),n&&n.destroy(),n=function(e,t,n){return Dn(e,"Thumbnail",t.getConfig(),n,{},(function(e,t){}),(function(){}))}(e,t,t.getConfig())}s=function(e,t){var n="";return Object.assign(Dn(e,"Spinner",t.getConfig(),null,{},(function(e,t){n=e}),(function(){})),{show:function(e){e?n.show():n.hide()}})}(e,t),function(e,t,n){_e(t.getContainerElement()),Dn(e,"CaptionViewer",t.getConfig(),n,{},(function(e,n,r){var o=!1,i=0;t.on(Pe,(function(t){t>-1?o=!1:(o=!0,e.find(".op-caption-text").text(""))}),r),t.on(Fe,(function(t){if(!o&&t&&t.text){var n=t.endTime-t.startTime;i&&clearTimeout(i),e.find(".op-caption-text").html(t.text),n&&(i=setTimeout((function(){e.find(".op-caption-text").text("")}),1e3*n))}}),r)}),(function(n){e.find(".op-caption-text").text(""),t.off(Pe,null,n),t.off(Fe,null,n)}))}(e,t),t.on(de,(function(){u&&v(),l&&(r&&r.destroy(),r=function(e,t,n){var r=null,o=null;return Dn(e,"WaterMark",t.getConfig(),n,{},(function(e,n){r=e.find(".op-watermark"),o=e.find(".op-watermark-text");var a=t.getConfig().waterMark,A=a.position||"top-right",s=a.y||"5%",c=a.x||"2.8125%";r.css(A.split("-")[0],s),r.css(A.split("-")[1],c);var u=a.width||"auto",l=a.height||"auto";r.css("width",u),r.css("height",l);var f=a.opacity||.7;r.css("opacity",f),a.text&&a.font&&i().each(a.font,(function(e,t){o.css(t,e)}))}),(function(){}))}(e,t,t.getConfig())),o||(h($),o=!0)}),p),t.on(ke,(function(n){n.message&&(a&&a.destroy(),A&&A.destroy(),c=Fn(e,t,n.message,null,n.timer,n.iconClass,n.onClickCallback,!1),t.once(Qe,(function(e){!e.mute&&c&&c.destroy()}),p))}),p),t.on(ye,(function(e){e&&e.newstate&&(e.newstate===X&&A&&A.destroy(),e.newstate===ee||e.newstate===ie?(f=!1,A&&A.destroy(),a&&a.destroy(),n&&n.destroy(),d||s.show(!1)):e.newstate===q?(s.show(!1),h(e.newstate)):e.newstate===re||e.newstate===ne||"adLoading"===e.newstate?(f=!1,A&&A.destroy(),a&&a.destroy(),s.show(!0)):d||s.show(!1))}),p),t.on(Me,(function(){u&&v()})),t.on(De,(function(e){if(e.currentQuality<0)return!1;e.isAuto?(d=!1,s.show(!1)):"request"===e.type?(g=e.currentQuality,d=!0,s.show(!0)):"render"===e.type&&g===e.currentQuality&&(d=!1,s.show(!1))}),p),t.on(Ce,(function(n){if(510===n.code&&(f=!0),101===n.code&&0===t.getPlaylist().length&&(f=!0),!f){var r="",o="";a&&a.destroy(),n&&n.code&&n.code>=100&&n.code<1e3?(r=n.message,100===n.code&&(o=n.error.toString())):r="Can not play due to unknown reasons.",OvenPlayerConsole.log("error occured : ",n),function(n,r,o,i,s,c){a&&a.destroy(),A&&A.destroy(),A=Fn(e,t,n,r,null,"op-warning",null,!0)}(r,o)}}),p),t.on(me,(function(e){var n="Because the network connection is unstable, the following media source will be played.";t.getCurrentSource()+1===t.getQualityLevels().length&&(n="Network connection is unstable. Check the network connection."),OvenPlayerConsole.log(n)}),p),t.on(ve,(function(){u&&v()}),p)}),(function(e){t.off(de,null,e),t.off(ye,null,e),t.off(ke,null,e),t.off(Ce,null,e),t.off(me,null,e),t.off(ve,null,e),t.off(he,null,e)}))},Un=[],Nn=function(){var e={},t=function(){for(var e=0;e<Un.length;e++)Un[e].data.setFront(!1);Un.length&&Un[Un.length-1].data.setFront(!0)};return e.clear=function(){i().each(Un,(function(e){e.destroy()})),Un=[],t()},e.removeLastItem=function(){Un.pop().destroy(),t()},e.add=function(e){Un.push(e),t()},e.size=function(){return Un.length},e},Wn={speed:"Speed",speedUnit:"x",source:"Source",quality:"Quality",audioTrack:"Audio",caption:"Caption",display:"Display"},jn=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn(),a=t.getConfig();function A(e,t){var n={id:"panel-"+(new Date).getTime(),title:"",body:[],useCheck:!0,panelType:t,height:r.height()-r.find(".op-bottom-panel").height()};if(n.title=Wn[t],"speed"===t)for(var o=e.getConfig().playbackRates,i=e.getPlaybackRate(),a=0;a<o.length;a++){var A={title:o[a]+Wn.speedUnit,isCheck:i===o[a],value:o[a],description:o[a],panelType:t};n.body.push(A)}else if("source"===t)for(var s=e.getSources(),c=0;c<s.length;c++){var u={title:s[c].label,isCheck:e.getCurrentSource()===c,value:c,panelType:t};n.body.push(u)}else if("quality"===t){var l=e.getQualityLevels();n.body.push({title:"AUTO",isCheck:e.isAutoQuality(),value:"AUTO",panelType:t});for(var f=0;f<l.length;f++){var p={title:l[f].label,isCheck:e.getCurrentQuality()===f,value:f,panelType:t};n.body.push(p)}}else if("audioTrack"===t)for(var d=e.getAudioTracks(),g=0;g<d.length;g++){var h={title:d[g].label,isCheck:d[g].index===e.getCurrentAudioTrack(),value:d[g].index,panelType:t};n.body.push(h)}else if("caption"===t){var v=e.getCaptionList();n.body.push({title:"OFF",isCheck:-1===e.getCurrentCaption(),value:-1,panelType:t});for(var m=0;m<v.length;m++){var C={title:v[m].label,isCheck:e.getCurrentCaption()===m,value:m,panelType:t};n.body.push(C)}}else if("display"===t)for(var y=["Play time","Framecode"],b=0;b<y.length;b++){var w={title:y[b],isCheck:e.isTimecodeMode()?"Play time"===y[b]:"Framecode"===y[b],value:y[b],panelType:t};n.body.push(w)}return n}a&&a.systemText&&Object.keys(Wn).forEach((function(e){Wn[e]=a.systemText.ui.setting[e]})),n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var s={"click .op-setting-item":function(a,s,c){if(a.preventDefault(),r.find("#"+n.id).hasClass("background"))return!1;var u=_e(a.currentTarget).attr("op-panel-type"),l=null;"speed"===u?l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var i={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");t.setPlaybackRate(parseFloat(i)),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"SpeedPanel",t.getConfig(),n,i,(function(e,t){}),(function(e){}))}(e,t,A(t,u)):"source"===u?l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var i={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");t.setCurrentSource(parseInt(i)),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"SourcePanel",t.getConfig(),n,i,(function(e,t){}),(function(e){}))}(e,t,A(t,u)):"quality"===u?l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var a={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");"AUTO"===i?t.setAutoQuality(!t.isAutoQuality()):t.setCurrentQuality(parseInt(i)),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"QualityPanel",t.getConfig(),n,a,(function(e,n){t.on(De,(function(e){var t=e.currentQuality;"render"===e.type&&i().forEach(r.find("#"+n.data.id).find(".op-setting-item").get(),(function(n){var r=_e(n);r.find(".op-setting-item-checked").hasClass("op-show")&&r.find(".op-setting-item-checked").removeClass("op-show"),t===parseInt(r.attr("op-data-value"))&&r.find(".op-setting-item-checked").addClass("op-show"),e.isAuto&&"AUTO"===r.attr("op-data-value")&&r.find(".op-setting-item-checked").addClass("op-show")}))}),n)}),(function(e){t.off(De,null,e)}))}(e,t,A(t,u)):"audioTrack"===u?l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var a={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");t.setCurrentAudioTrack(parseInt(i)),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"AudioTrackPanel",t.getConfig(),n,a,(function(e,n){t.on(We,(function(e){i().forEach(r.find("#"+n.data.id).find(".op-setting-item").get(),(function(t){var n=_e(t);n.find(".op-setting-item-checked").hasClass("op-show")&&n.find(".op-setting-item-checked").removeClass("op-show"),e.currentAudioTrack===parseInt(n.attr("op-data-value"))&&n.find(".op-setting-item-checked").addClass("op-show")}))}),n)}),(function(e){t.off(We,null,e)}))}(e,t,A(t,u)):"caption"===u?l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var i={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");t.setCurrentCaption(parseFloat(i)),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"CaptionPanel",t.getConfig(),n,i,(function(e,t){}),(function(e){}))}(e,t,A(t,u)):"display"===u&&(l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var i={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");t.setTimecodeMode("Play time"===i),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"TimeDisplayPanel",t.getConfig(),n,i,(function(e,t){}),(function(e){}))}(e,t,A(t,u))),o.add(l)},"click .op-setting-title":function(e,t,i){if(e.preventDefault(),r.find("#"+n.id).hasClass("background"))return!1;o.removeLastItem()}};return Dn(e,"Panels",t.getConfig(),n,s,(function(e,n){r.find(".op-setting-panel")&&r.find(".op-setting-panel").css("max-height",r.height()-r.find(".op-bottom-panel").height()+"px"),t.on(De,(function(e){var o=e.currentQuality;"render"===e.type&&r.find("#"+n.data.id).find(".op-setting-item")&&i().forEach(r.find("#"+n.data.id).find(".op-setting-item").get()||[],(function(e){var n=_e(e);if("quality"===n.attr("op-panel-type")){var r=t.getQualityLevels()[o];n.find(".op-setting-item-value").text(r.width+"x"+r.height+", "+kn(r.bitrate,!0,"bps"))}}))}),n),t.on(We,(function(e){i().forEach(r.find("#"+n.data.id).find(".op-setting-item").get()||[],(function(n){var r=_e(n);"audioTrack"===r.attr("op-panel-type")&&r.find(".op-setting-item-value").text(t.getAudioTracks()[e.currentAudioTrack].label)}))}),n)}),(function(e){t.off(De,null,e),t.off(We,null,e)}))},Yn={speed:"Speed",speedUnit:"x",source:"Source",quality:"Quality",audioTrack:"Audio",caption:"Caption",display:"Display"},Gn=function(e,t){var n,r="",o="",i="",a="",A="",c="",u=!1,l=!1,f=!1,p=t.getConfig().browser,d="Android"===p.os,g="iOS"===p.os,h=_e(t.getContainerElement()),v={};u=t.getPlaylist().length>1,!0===t.getConfig().hidePlaylistIcon&&(u=!1);var m={"mouseleave .op-controls":function(e,t,n){e.preventDefault(),r.setMouseDown(!1),t.find(".op-volume-slider-container").removeClass("active")},"click .op-playlist-button":function(e,n,r){e.preventDefault(),function(e,t){var n=_e(t.getContainerElement()),r="",o=t.getPlaylist(),i=o.length,a=6,A=0,s=[];function c(e){var n,A,c=Math.ceil(i/a),u=t.getCurrentPlaylist();s=o.slice(e*a,e*a+a),r.find(".op-playlist-body-row").removeChild(),r.find(".op-arrow-left").removeClass("disable"),r.find(".op-arrow-right").removeClass("disable");for(var l=0;l<s.length;l++){var f=e*a+l;s[l].index=f,r.find(".op-playlist-body-row").get().append((n=On(s[l],u===f),A=void 0,(A=document.createElement("div")).innerHTML=n,A.firstChild))}0===e&&r.find(".op-arrow-left").addClass("disable"),e+1===c&&r.find(".op-arrow-right").addClass("disable")}function u(){var e=t.getCurrentPlaylist();return Math.ceil((e+1)/a)-1}n.width()>576?a=6:n.width()<=576&&(a=1);var l={"click .btn-close":function(e,t,n){e.preventDefault(),n.destroy()},"click .op-arrow-left":function(e,t,n){e.preventDefault(),_e(e.target).hasClass("disable")||c(--A)},"click .op-arrow-right":function(e,t,n){e.preventDefault(),_e(e.target).hasClass("disable")||c(++A)}};Dn(e,"PlaylistPanel",t.getConfig(),o,l,(function(e,n){r=e,c(A=u()),t.on(Be,(function(e){"xsmall"===e&&6===a?(a=1,c(A=u())):"small"!==e&&"medium"!==e&&"large"!==e||1!==a||(a=6,c(A=u()))}),n),t.on(he,(function(e){c(A=u())}),n),e.get().addEventListener("click",(function(e){for(var n=e.target;n;){if(_e(n).hasClass("op-playlist-card"))return void t.setCurrentPlaylist(parseInt(_e(n).attr("data-index")));n=n.parentElement}}),!0)}),(function(e){t.off(Be,null,e),t.off(he,null,e)}))}(n,t)}};return Dn(e,"Controls",t.getConfig(),u,m,(function(e,u){function p(n){a&&a.destroy(),a=function(e,t,n){var r=_e(t.getContainerElement());t.getConfig().disableSeekUI&&e.addClass("op-progressbar-container-disabled");var o=0,i=!1,a=Nn(),A="",c=0,u="",l="",f="",p="",d="",g="",h=0,v="",m="",C=t.getBrowser().mobile,y=!1;function b(e){var t=u.width(),n=t*e;f.css("width",n+"px"),p.css("left",n+"px");var r=(t-h)*e;d.css("left",r+"px"),o=n}function w(e){var t=u.width()*e;p.css("width",(0===e?e:t-o)+"px")}function E(e){var t=u.width(),n=u.offset().left,r=e.pageX;e.touches&&(r=e.pageX||e.touches[0].clientX);var o=(r-n)/t;return o<0?0:o>1?1:o}function B(e,n){if(a.size()>0||-1===e)return v.hide(),void m.hide();if(v.show(),m.show(),y){var r=t.getDvrWindow()*(1-e);t.isTimecodeMode()?v.text("- "+s(r)):v.text("- "+Math.round(r*t.getFramerate()))}else{var o=t.getDuration()*e;t.isTimecodeMode()?v.text(s(o)):v.text(Math.round(o*t.getFramerate()))}var i=v.width(),c=u.width(),l=c*e,f=n.pageX-u.offset().left;n.touches&&(f=(n.pageX||n.touches[0].clientX)-u.offset().left);var p=function(e){return f<e/2?0:c-f<e/2?c-e:l-e/2},d=p(i);if(v.css("left",d+"px"),t.getSources()[t.getCurrentSource()].gridThumbnail){var g=t.getConfig().gridThumbnail.thumbnailInterval,h=t.getConfig().gridThumbnail.originalThumbnailWidth,C=t.getConfig().gridThumbnail.originalThumbnailHeight,b=t.getConfig().gridThumbnail.columnCount,w=t.getConfig().gridThumbnail.rowCount,E=t.getConfig().gridThumbnail.resizeScale;m.css("width",h*E+"px"),m.css("height",C*E+"px"),m.css("background-size",h*E*b+"px "+C*E*w+"px");var B=Math.floor(second/g),x=Math.floor(B/(b*w)),k=Math.floor(B%(b*w)/b),I=B%(b*w)%b,S=-1*I*h*E,T=-1*k*C*E;OvenPlayerConsole.log("Grid Thumbnail:",B+": "+x+"("+k+", "+I+")");var L=t.getSources()[t.getCurrentSource()].gridThumbnail[x];A!==L&&(m.css("background-image","url("+L+")"),A=L),m.css("background-position","left "+S+"px top "+T+"px");var R=p(h*E);m.css("left",R+"px")}else m.hide()}function x(e){var n=(c||0)*e;y&&(n=c-t.getDvrWindow()+t.getDvrWindow()*e);var r=t.getSources()[t.getCurrentSource()].sectionStart;r&&r>0&&(n+=r),t.seek(n)}t.getProvider().getName()===fe&&t.getProvider().isLive()&&(y=!0);var k={"touchstart .op-progressbar":function(e){if(n)return!1;i=!0;var t=E(e);if(-1===t)return!1;b(t),w(0),x(t)},"touchmove .op-progressbar":function(e){if(i){var t=E(e);if(-1===t)return!1;b(t),w(0),x(t),B(t,e)}},"touchend .op-progressbar":function(e){i&&(i=!1),r.removeClass("op-progressbar-hover"),v.hide(),m.hide()},"mouseenter .op-progressbar":function(e,t,o){e.preventDefault(),C||(n||v.show(),r.addClass("op-progressbar-hover"))},"mouseleave .op-progressbar":function(e,t,n){e.preventDefault(),i=!1,r.removeClass("op-progressbar-hover"),v.hide(),m.hide(),w(0)},"mousedown .op-progressbar":function(e,t,r){if(e.preventDefault(),n||C)return!1;i=!0;var o=E(e);if(-1===o)return!1;b(o),w(0),x(o)},"mousemove .op-progressbar":function(e,t,r){if(e.preventDefault(),!i&&!n&&!C){var o=E(e);w(o),B(o,e)}if(i&&!C){var a=E(e);if(-1===a)return!1;b(a),w(0),x(a),B(a,e)}},"mouseup .op-progressbar":function(e,t,n){e.preventDefault(),i&&!C&&(i=!1,r.removeClass("op-progressbar-hover"))}};return t.getConfig().disableSeekUI&&(k={}),Dn(e,"ProgressBar",t.getConfig(),null,k,(function(e,r){u=e,l=e.find(".op-load-progress"),f=e.find(".op-play-progress"),p=e.find(".op-hover-progress"),d=e.find(".op-progressbar-knob-container"),g=e.find(".op-progressbar-knob"),h=g.width(),v=e.find(".op-progressbar-time"),m=e.find(".op-progressbar-preview"),n?t.on(Se,(function(e){e&&e.duration&&e.position&&(b(e.position/e.duration),e.duration)}),r):(t.on(Le,(function(e){if(e&&e.duration&&e.position){c=e.duration;var n=e.position/e.duration;y&&(n=(t.getDvrWindow()-(e.duration-e.position))/t.getDvrWindow()),b(n)}}),r),t.on(Te,(function(e){var t,n;e&&e.bufferPercent&&(t=e.bufferPercent/100,n=u.width()*t,l.css("width",n+"px"))}),r))}),(function(e){n?t.off(Se,null,e):(t.off(Le,null,e),t.off(Te,null,e))}))}(e.find(".op-progressbar-container"),t,n)}function m(){i&&i.destroy(),i=function(e,t){var n=Nn(),r={"click .op-setting-button":function(e,r,o){e.preventDefault();var i=r.closest(".op-controls-container");if(n.size()>0)n.clear();else{var a=function(e){var t={id:"panel-"+(new Date).getTime(),title:"Settings",body:[],isRoot:!0,panelType:""},n=e.getConfig();n&&n.systemText&&(Object.keys(Yn).forEach((function(e){Yn[e]=n.systemText.ui.setting[e]})),t.title=n.systemText.ui.setting.title);var r=e.getSources(),o=r&&r.length>0?r[e.getCurrentSource()]:null,i=e.getQualityLevels(),a=i&&i.length>0?i[e.getCurrentQuality()]:null,A=e.getAudioTracks(),s=A&&A.length>0?A[e.getCurrentAudioTrack()]:null,c=e.getCaptionList(),u=e.getCurrentCaption(),l=e.getFramerate();if(e.getDuration()!==1/0&&o&&o.type!==pe){var f={title:Yn.speed,value:e.getPlaybackRate()+Yn.speedUnit,description:e.getPlaybackRate()+Yn.speedUnit,panelType:"speed",hasNext:!0};t.body.push(f)}if(r&&r.length>1){var p={title:Yn.source,value:o?o.label:"Default",description:o?o.label:"Default",panelType:"source",hasNext:!0};t.body.push(p)}if(i&&i.length>0){var d={title:Yn.quality,value:a?a.label:"Default",description:a?a.label:"Default",panelType:"quality",hasNext:!0};t.body.push(d)}if(A&&A.length>0){var g={title:Yn.audioTrack,value:s?s.label:"Default",description:s?s.label:"Default",panelType:"audioTrack",hasNext:!0};t.body.push(g)}if(c&&c.length>0){var h={title:Yn.caption,value:c[u]?c[u].label:"OFF",description:c[u]?c[u].label:"OFF",panelType:"caption",hasNext:!0};t.body.push(h)}if(l>0){var v={title:Yn.display,value:e.isTimecodeMode()?"Play time":"Framecode",description:e.isTimecodeMode()?"Play time":"Framecode",panelType:"display",hasNext:!0};t.body.push(v)}return t}(t);n.add(jn(i,t,a))}}};return Dn(e,"SettingButton",t.getConfig(),null,r,(function(e,t){}),(function(e){}))}(e.find(".setting-holder"),t)}function C(){c||(c=function(e,t){var n=_e(t.getContainerElement()),r="",o="",i=!1,a=(t.getConfig(),t.getBrowser()),A="iOS"===a.os,s=(a.os,""),c=!1,u={onfullscreenchange:"fullscreenchange",onmozfullscreenchange:"mozfullscreenchange",onwebkitfullscreenchange:"webkitfullscreenchange",MSFullscreenChange:"MSFullscreenChange"};function l(){var e=!1,t=document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement;return t&&n.get()===t&&(e=!0),e}function f(){OvenPlayerConsole.log("FULLSCREEN STATE : ",l()),l()?(n.addClass("op-fullscreen"),i=!0,r.hide(),o.show()):(n.removeClass("op-fullscreen"),i=!1,r.show(),o.hide())}function p(){OvenPlayerConsole.log("afterFullScreenChangedCallback () "),f(),t.trigger(xe,i)}function d(){i?(n.removeClass("op-fullscreen"),i=!1,r.show(),o.hide()):(n.addClass("op-fullscreen"),i=!0,r.hide(),o.show()),t.trigger(xe,i)}function g(){var e;!i||A&&!l()?function(){var e,r="",o=n.get(),a=n.find("video")?n.find("video").get():o,s=null;if(A){if(a.length>1)for(var u=0;u<a.length;u++){var l=a[u].getAttribute("title");l&&"Advertisement"===l?s=a[u]:e=a[u]}else e=a;s&&t.getState()===oe||t.getState()===ie||t.getState()===ae?s.webkitEnterFullScreen&&(r=s.webkitEnterFullScreen(),i=!0):e.webkitEnterFullScreen&&(r=e.webkitEnterFullScreen(),i=!0)}else if(o.requestFullscreen){var f=t.getConfig().fullscreenOption;r=o.requestFullscreen(f)}else o.webkitRequestFullScreen?r=o.webkitRequestFullScreen():o.mozRequestFullScreen?r=o.mozRequestFullScreen():o.msRequestFullscreen&&(r=o.msRequestFullscreen());r&&r.then((function(){i=!0,c=!1})).catch((function(e){c=!0,d()}))}():c?d():(e="",document.exitFullscreen?e=document.exitFullscreen():document.webkitExitFullscreen?e=document.webkitExitFullscreen():document.webkitExitFullScreen?e=document.webkitExitFullScreen():document.mozCancelFullScreen?e=document.mozCancelFullScreen():document.msExitFullscreen&&(e=document.msExitFullscreen()),e&&e.then((function(){i=!1})).catch((function(e){})))}t.toggleFullScreen=g;var h={"click .op-fullscreen-button":function(e,n,r){e.preventDefault(),t.trigger("fullscreenRequested",null),g()}};return Dn(e,"FullScreenButton",t.getConfig(),null,h,(function(e,a){var c,l;r=e.find(".op-fullscreen-expand"),o=e.find(".op-fullscreen-compress"),f(),c=n.get(),l="",c.requestFullscreen?l=u.onfullscreenchange:c.webkitRequestFullScreen?l=u.onwebkitfullscreenchange:c.mozRequestFullScreen?l=u.onmozfullscreenchange:c.msRequestFullscreen?l=u.MSFullscreenChange:Object.keys(u).forEach((function(e){document[e]&&(l=u[e])})),(s=l)&&document.addEventListener(s,p,!1),t.on(Ie,(function(e){var t,r=n.find("video")?n.find("video").get():n.get();if(e.isLinear&&A&&i){if(r.length>1)for(var o=0;o<r.length;o++){var a=r[o].getAttribute("title");a&&"Advertisement"===a?r[o]:t=r[o]}else t=r;t&&t.webkitExitFullscreen&&(t.webkitExitFullscreen(),i=!1)}}),a)}),(function(e){t.getConfig()&&!t.getConfig().expandFullScreenUI&&s&&document.removeEventListener(s,p),t.off(Ie,null,e)}))}(e.find(".fullscreen-holder"),t))}function y(n){n.duration>9e15&&(n.duration=1/0);var r=t.getSources()[t.getCurrentSource()].sectionStart,o=t.getSources()[t.getCurrentSource()].sectionEnd;o&&(n.duration=o),r&&(n.duration=n.duration-r),function(n){A&&A.destroy(),A=function(e,t,n){var r="",o="",i="",a=!1;function A(e){return s(e)}var c={"click .op-live-text":function(e,n,r){e.preventDefault(),t.seek(Number.MAX_SAFE_INTEGER)}};return Dn(e,"TimeDisplay",t.getConfig(),n,c,(function(e,s){var c=t.isTimecodeMode();r=e.find(".op-time-current"),o=e.find(".op-time-duration"),i=e.find(".op-live-badge"),e.find(".op-live-text"),t.getProviderName()===fe&&t.getProvider().isLive()&&(a=!0),n.duration!==1/0?(c?o.text(A(n.duration)):o.text(Math.round(n.duration*t.getFramerate())+" ("+t.getFramerate()+"fps)"),t.on(Ue,(function(e){(c=e)?o.text(A(n.duration)):o.text(Math.round(n.duration*t.getFramerate())+" ("+t.getFramerate()+"fps)")}),s),t.on(Le,(function(e){c?r.text(A(e.position)):r.text(Math.round(e.position*t.getFramerate()))}),s)):a&&t.on(Le,(function(e){e.duration-e.position>3?i.addClass("op-live-badge-delayed"):i.removeClass("op-live-badge-delayed")}),s)}),(function(e){t.off(Ue,null,e),t.off(Le,null,e)}))}(e.find(".op-left-controls"),t,n)}(n),C(),t.getFramerate&&t.getFramerate(),n.duration===1/0?(OvenPlayerConsole.log("[[[[LIVE MODE]]]]"),n.type===fe?p(!1):a&&a.destroy()):p(!1),l=!0}function b(){A&&A.destroy(),a&&a.destroy(),m(),C(),h.removeClass("linear-ad")}o=function(e,t){var n="",r="",o="",i="",a="",A="",s="",c={"click .op-play-button":function(e,n,r){e.preventDefault();var o=t.getState(),i=t.getPlaylist(),a=t.getCurrentPlaylist();o===X?t.play():o===ee||o===ie?t.pause():o===ne||o===re?t.stop():o===$||o===ae?t.play():o===te?t.setCurrentSource(t.getCurrentSource()):o===q&&i.length===a+1&&(t.seek(0),t.play())},"click .op-seek-button-back":function(e,n,r){var o=t.getConfig().seekControlInterval;o||(o=10);var i=t.getPosition()-o;i<0&&(i=0),t.seek(i)},"click .op-seek-button-forward":function(e,n,r){var o=t.getConfig().seekControlInterval;o||(o=10);var i=t.getPosition()+o;i>t.getDuration()&&(i=t.getDuration()),t.seek(i)}};return Dn(e,"PlayButton",t.getConfig(),null,c,(function(e,c){n=e.find(".op-play-button .op-play"),r=e.find(".op-play-button .op-pause"),o=e.find(".op-play-button .op-replay"),i=e.find(".op-seek-button-back"),a=e.find(".op-seek-button-forward"),A=e.find(".op-seek-back-text"),s=e.find(".op-seek-forward-text"),t.on(ye,(function(e){var t;e&&e.newstate&&(t=e.newstate,n.hide(),r.hide(),o.hide(),t===ee||t===ie||t===ne||t===re?r.show():t===$||t===ae?n.show():t===q?o.show():n.show())}),c),t.getConfig().showSeekControl||(i.hide(),a.hide());var u=t.getConfig().seekControlInterval;u?(A.text(u),s.text(u)):(A.text(10),s.text(10))}),(function(e){t.off(ye,null,e)}))}(e.find(".op-left-controls"),t),r=function(e,t){var n="",r="",o="",i="",a="",A="",s="",c=!1,u=0,l="iOS"===t.getBrowser().os||"Android"===t.getBrowser().os;function f(e){t.getMute()&&(e=0),function(e){a.hide(),A.hide(),s.hide(),e>=70?a.show():e<70&&e>0?A.show():0==e?s.show():a.show()}(e);var n=u*e/100;o.css("left",n+"px"),i.css("width",n+"px")}function p(e){var t=((e.pageX||e.touches[0].clientX)-r.offset().left)/70*100;return t<0&&(t=0),t>100&&(t=100),t}var d={"click .op-volume-button":function(e,n,r){e.preventDefault(),l||(0===t.getVolume()?(t.setMute(!1),t.setVolume(100)):t.setMute())},"mouseenter .op-volume-button":function(e,t,r){e.preventDefault(),l||n.addClass("active")},"mouseleave .op-volume-silder":function(e,t,n){e.preventDefault(),c=!1},"mousedown .op-volume-silder":function(e,n,r){e.preventDefault(),c=!0,t.setMute(!1),t.setVolume(p(e))},"mouseup .op-volume-silder":function(e,t,n){e.preventDefault(),c=!1},"mousemove .op-volume-silder":function(e,n,r){if(e.preventDefault(),!c)return!1;t.setVolume(p(e))},"touchstart .op-volume-button":function(e){l&&(t.getMute()?t.setMute(!1):t.setMute(!0))}},g=Dn(e,"VolumeButton",t.getConfig(),null,d,(function(e,c){n=e.find(".op-volume-slider-container"),t.getBrowser().mobile&&n.hide(),r=e.find(".op-volume-silder"),o=e.find(".op-volume-slider-handle"),i=e.find(".op-volume-slider-value"),a=e.find(".op-volume-max"),A=e.find(".op-volume-small"),s=e.find(".op-volume-mute"),u=64,o.css("left",u+"px"),f(t.getVolume()),t.on(de,(function(){f(t.getVolume())}),c),t.on(Re,(function(e){f(e.volume)}),c),t.on(Qe,(function(e){e.mute?f(0):f(t.getVolume())}),c)}),(function(e){t.off(de,null,e),t.off(Re,null,e),t.off(Qe,null,e)}));return g.setMouseDown=function(e){c=e},g}(e.find(".op-left-controls"),t);var w=t.getPlaylist(),E=t.getCurrentPlaylist();w&&w[E]&&w[E].adTagUrl||m(),C(),t.on(de,(function(){e.show()}),u),t.on(Oe,(function(e){n=e.duration,v=e,e.isP2P=f,y(e)}),u),t.on(Le,(function(e){(d||t&&t.getProviderName&&"rtmp"===t.getProviderName())&&!n&&v&&v.duration!==e.duration&&(v=e,y(e))}),u),t.on(Be,(function(e){h.find(".op-setting-panel")&&h.find(".op-setting-panel").css("max-height",h.height()-h.find(".op-bottom-panel").height()+"px")}),u),t.on(Ne,(function(e){f=e}),u),t.on(we,(function(){if(!l){var n="";t.getSources().length>0&&t.getSources()[t.getCurrentSource()]&&t.getSources()[t.getCurrentSource()].type&&(n=t.getSources()[t.getCurrentSource()].type),y({isP2P:f,duration:t.getDuration(),type:n})}e.show()}),u),t.on(Ce,(function(t){e.show()}),u),t.on(Ie,(function(e){e.isLinear?(h.addClass("linear-ad"),p(!0),A&&A.destroy(),i&&i.destroy(),g&&c&&c.destroy()):h.removeClass("linear-ad")}),u),t.on(Ae,(function(){b()}),u),t.on(se,(function(){b()}),u),t.on(Me,(function(){b()}),u)}),(function(e){t.off(Oe,null,e),t.off(Le,null,e),t.off(Ae,null,e),t.off(Ie,null,e),t.off(Ne,null,e),t.off(se,null,e),t.off(Be,null,e),t.off(Me,null,e),A&&A.destroy(),o&&o.destroy(),a&&a.destroy(),c&&c.destroy(),r&&r.destroy()}))},zn=n(5655),_n=n.n(zn),Vn=n(3379),Hn=n.n(Vn),Jn=n(7795),Zn=n.n(Jn),Kn=n(569),Xn=n.n(Kn),qn=n(3565),$n=n.n(qn),er=n(9216),tr=n.n(er),nr=n(4589),rr=n.n(nr),or=n(2021),ir={};ir.styleTagTransform=rr(),ir.setAttributes=$n(),ir.insert=Xn().bind(null,"head"),ir.domAPI=Zn(),ir.insertStyleElement=tr(),Hn()(or.Z,ir),or.Z&&or.Z.locals&&or.Z.locals;var ar,Ar=function(e){var t,n="",r="",o="",i="",a=null,A="",s=X,c=!1,u=Nn(),l="",f="",p={};function d(e,n){if(A&&(clearTimeout(A),A=null),e){if(u.size()>0)return!1;t.addClass("op-autohide")}else t.removeClass("op-autohide"),n&&(A=setTimeout((function(){if(u.size()>0)return!1;t.addClass("op-autohide")}),3e3))}function g(){var e=s;e===X||e===$||e===q?(e===q&&a.seek(0),a.play()):e===ee&&a.pause()}function h(e,t){var n,r=a.getDuration(),o=a.getPosition();n=t?Math.max(o-e,0):Math.min(o+e,r),a.seek(n)}function v(e){var t,n=a.getVolume();t=e?Math.min(n+5,100):Math.max(n-5,0),a.setVolume(t)}function m(){var e=t.width();e<576?(l="xsmall",t.addClass("xsmall"),e<490&&t.addClass("xxsmall")):e<768?(l="small",t.addClass("small")):e<992?(l="medium",t.addClass("medium")):(l="large",t.addClass("large"))}var C={"click .ovenplayer":function(e,t,n){if(a&&a.trigger(Ee,e),i)return e.preventDefault(),i.destroy(),i=null,!1;if(!_e(e.target).closest(".op-controls-container")&&!_e(e.target).closest(".op-setting-panel")){if(u.size()>0)return e.preventDefault(),u.clear(),!1;a.getDuration()===1/0||a.getBrowser().mobile||g()}},"dblclick .ovenplayer":function(e,t,n){a&&a.getConfig().expandFullScreenUI&&a.toggleFullScreen&&(_e(e.target).closest(".op-controls-container")||_e(e.target).closest(".op-setting-panel")||a.toggleFullScreen())},"touchstart .ovenplayer":function(e,t,n){s===ee||s===X||s===ne||s===ie&&"xsmall"===l?d(!1,!0):d(!1)},"mouseenter .ovenplayer":function(e,t,n){e.preventDefault(),s===ee||s===X||s===ne||s===ie&&"xsmall"===l?d(!1,!0):d(!1)},"mousemove .ovenplayer":function(e,t,n){e.preventDefault(),s===ee||s===X||s===ne||s===ie&&"xsmall"===l?d(!1,!0):d(!1)},"mouseleave .ovenplayer":function(e,t,n){e.preventDefault(),(s===ee||s===X||s===ne||s===ie&&"xsmall"===l)&&d(!0)},"keydown .ovenplayer":function(e,t,n){var r=a.getFramerate();switch(e.keyCode){case 16:e.preventDefault(),c=!0;break;case 32:e.preventDefault(),g();break;case 37:e.preventDefault(),a.getConfig().disableSeekUI||(c&&r?a.seekFrame(-1):h(5,!0));break;case 39:e.preventDefault(),a.getConfig().disableSeekUI||(c&&r?a.seekFrame(1):h(5,!1));break;case 38:e.preventDefault(),v(!0);break;case 40:e.preventDefault(),v(!1)}},"keyup .ovenplayer":function(e,t,n){16===e.keyCode&&(e.preventDefault(),c=!1)},"contextmenu .ovenplayer":function(e,n,r){if(e.stopPropagation(),!_e(e.currentTarget).find("object"))return e.preventDefault(),o=e.pageX,A=e.pageY,i&&(i.destroy(),i=null),i=function(e,t,n){var r=_e(t.getContainerElement()),o={"click .op-context-item":function(e,t,n){e.preventDefault(),window.open("https://github.com/AirenSoft/OvenPlayer","_blank")}};return Dn(e,"ContextPanel",t.getConfig(),n,o,(function(e,t){var o=e.width(),i=e.height(),a=Math.min(n.pageX-r.offset().left,r.width()-o),A=Math.min(n.pageY-r.offset().top,r.height()-i);e.css("left",a+"px"),e.css("top",A+"px")}),(function(){}))}(t,a,{pageX:o,pageY:A}),!1;var o,A}};return(p=Dn(e,"View",null,e.id,C,(function(e,r){t=e,n=r,m(),f=l,new(_n())(t.get(),(function(){t.removeClass("large"),t.removeClass("medium"),t.removeClass("small"),t.removeClass("xsmall"),t.removeClass("xxsmall"),m(),l!==f&&(f=l,a&&a.trigger(Be,f))}))}),(function(){o&&(o.destroy(),o=null),r&&(r.destroy(),r=null)}),!0)).getMediaElementContainer=function(){return t.find(".op-media-element-container").get()},p.setApi=function(e){(a=e).getContainerElement=function(){return t.get()},a.getContainerId=function(){return t.get().id},a.on(de,(function(n){r||(r=Gn(t.find(".op-ui"),e)),i||t.addClass("op-no-controls")})),a.on(Ce,(function(e){if(a){var t=a.getSources()||[];r&&t.length}})),a.on(ge,(function(e){n.destroy()})),a.on(we,(function(n){!r&&i&&(r=Gn(t.find(".op-ui"),e))})),a.on(ye,(function(e){e&&e.newstate&&(s=e.newstate,e.newstate===ee||e.newstate===ie&&"xsmall"===l?d(!1,!0):d(!1))}));var i=a.getConfig()&&a.getConfig().controls;o=Pn(t.find(".op-ui"),e),r=Gn(t.find(".op-ui"),e);var A=a.getConfig().aspectRatio;if(A&&2===A.split(":").length){var c=1*A.split(":")[0],u=1*A.split(":")[1]/c*100;t.find(".op-ratio").css("padding-bottom",u+"%")}a.showControls=function(e){e?(t.removeClass("op-no-controls"),d(!1,!0)):t.addClass("op-no-controls")}},p},sr=(ar={},Object.assign(ar,Ln),ar.create=function(e,t){console.log("[OvenPlayer] v.0.10.26");var n=Ke(e),r=Ar(n),o=Ln.create(r.getMediaElementContainer(),t);return r.setApi(o),o},ar)},1001:function(){!function(e){"use strict";if("window"in e&&"document"in e){document.querySelectorAll||(document.querySelectorAll=function(e){var t,n=document.createElement("style"),r=[];for(document.documentElement.firstChild.appendChild(n),document._qsa=[],n.styleSheet.cssText=e+"{x-qsa:expression(document._qsa && document._qsa.push(this))}",window.scrollBy(0,0),n.parentNode.removeChild(n);document._qsa.length;)(t=document._qsa.shift()).style.removeAttribute("x-qsa"),r.push(t);return document._qsa=null,r}),document.querySelector||(document.querySelector=function(e){var t=document.querySelectorAll(e);return t.length?t[0]:null}),document.getElementsByClassName||(document.getElementsByClassName=function(e){return e=String(e).replace(/^|\s+/g,"."),document.querySelectorAll(e)}),e.Node=e.Node||function(){throw TypeError("Illegal constructor")},[["ELEMENT_NODE",1],["ATTRIBUTE_NODE",2],["TEXT_NODE",3],["CDATA_SECTION_NODE",4],["ENTITY_REFERENCE_NODE",5],["ENTITY_NODE",6],["PROCESSING_INSTRUCTION_NODE",7],["COMMENT_NODE",8],["DOCUMENT_NODE",9],["DOCUMENT_TYPE_NODE",10],["DOCUMENT_FRAGMENT_NODE",11],["NOTATION_NODE",12]].forEach((function(t){t[0]in e.Node||(e.Node[t[0]]=t[1])})),e.DOMException=e.DOMException||function(){throw TypeError("Illegal constructor")},[["INDEX_SIZE_ERR",1],["DOMSTRING_SIZE_ERR",2],["HIERARCHY_REQUEST_ERR",3],["WRONG_DOCUMENT_ERR",4],["INVALID_CHARACTER_ERR",5],["NO_DATA_ALLOWED_ERR",6],["NO_MODIFICATION_ALLOWED_ERR",7],["NOT_FOUND_ERR",8],["NOT_SUPPORTED_ERR",9],["INUSE_ATTRIBUTE_ERR",10],["INVALID_STATE_ERR",11],["SYNTAX_ERR",12],["INVALID_MODIFICATION_ERR",13],["NAMESPACE_ERR",14],["INVALID_ACCESS_ERR",15]].forEach((function(t){t[0]in e.DOMException||(e.DOMException[t[0]]=t[1])})),function(){function t(e,t,n){if("function"==typeof t){"DOMContentLoaded"===e&&(e="load");var r=this,o=function(e){e._timeStamp=Date.now(),e._currentTarget=r,t.call(this,e),e._currentTarget=null};this["_"+e+t]=o,this.attachEvent("on"+e,o)}}function n(e,t,n){if("function"==typeof t){"DOMContentLoaded"===e&&(e="load");var r=this["_"+e+t];r&&(this.detachEvent("on"+e,r),this["_"+e+t]=null)}}"Element"in e&&!Element.prototype.addEventListener&&Object.defineProperty&&(Event.CAPTURING_PHASE=1,Event.AT_TARGET=2,Event.BUBBLING_PHASE=3,Object.defineProperties(Event.prototype,{CAPTURING_PHASE:{get:function(){return 1}},AT_TARGET:{get:function(){return 2}},BUBBLING_PHASE:{get:function(){return 3}},target:{get:function(){return this.srcElement}},currentTarget:{get:function(){return this._currentTarget}},eventPhase:{get:function(){return this.srcElement===this.currentTarget?Event.AT_TARGET:Event.BUBBLING_PHASE}},bubbles:{get:function(){switch(this.type){case"click":case"dblclick":case"mousedown":case"mouseup":case"mouseover":case"mousemove":case"mouseout":case"mousewheel":case"keydown":case"keypress":case"keyup":case"resize":case"scroll":case"select":case"change":case"submit":case"reset":return!0}return!1}},cancelable:{get:function(){switch(this.type){case"click":case"dblclick":case"mousedown":case"mouseup":case"mouseover":case"mouseout":case"mousewheel":case"keydown":case"keypress":case"keyup":case"submit":return!0}return!1}},timeStamp:{get:function(){return this._timeStamp}},stopPropagation:{value:function(){this.cancelBubble=!0}},preventDefault:{value:function(){this.returnValue=!1}},defaultPrevented:{get:function(){return!1===this.returnValue}}}),[Window,HTMLDocument,Element].forEach((function(e){e.prototype.addEventListener=t,e.prototype.removeEventListener=n})))}(),function(){function t(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}"CustomEvent"in e&&"function"==typeof e.CustomEvent||(t.prototype=e.Event.prototype,e.CustomEvent=t)}(),window.addEvent=function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&(e["e"+t+n]=n,e[t+n]=function(){var r=window.event;r.currentTarget=e,r.preventDefault=function(){r.returnValue=!1},r.stopPropagation=function(){r.cancelBubble=!0},r.target=r.srcElement,r.timeStamp=Date.now(),e["e"+t+n].call(this,r)},e.attachEvent("on"+t,e[t+n]))},window.removeEvent=function(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent&&(e.detachEvent("on"+t,e[t+n]),e[t+n]=null,e["e"+t+n]=null)},function(){function t(e,t){function n(e){return e.length?e.split(/\s+/g):[]}function r(e,t){var r=n(t),o=r.indexOf(e);return-1!==o&&r.splice(o,1),r.join(" ")}if(Object.defineProperties(this,{length:{get:function(){return n(e[t]).length}},item:{value:function(r){var o=n(e[t]);return 0<=r&&r<o.length?o[r]:null}},contains:{value:function(r){if(0===(r=String(r)).length)throw SyntaxError();if(/\s/.test(r))throw Error("InvalidCharacterError");return-1!==n(e[t]).indexOf(r)}},add:{value:function(){var r=Array.prototype.slice.call(arguments).map(String);if(r.some((function(e){return 0===e.length})))throw SyntaxError();if(r.some((function(e){return/\s/.test(e)})))throw Error("InvalidCharacterError");try{var o=e[t],i=n(o);if(0===(r=r.filter((function(e){return-1===i.indexOf(e)}))).length)return;0===o.length||/\s$/.test(o)||(o+=" "),o+=r.join(" "),e[t]=o}finally{var a=n(e[t]).length;this.length!==a&&(this.length=a)}}},remove:{value:function(){var o=Array.prototype.slice.call(arguments).map(String);if(o.some((function(e){return 0===e.length})))throw SyntaxError();if(o.some((function(e){return/\s/.test(e)})))throw Error("InvalidCharacterError");try{var i=e[t];o.forEach((function(e){i=r(e,i)})),e[t]=i}finally{var a=n(e[t]).length;this.length!==a&&(this.length=a)}}},toggle:{value:function(o){var i=arguments[1];try{if(0===(o=String(o)).length)throw SyntaxError();if(/\s/.test(o))throw Error("InvalidCharacterError");var a=n(e[t]),A=a.indexOf(o);if(-1!==A&&(!i||void 0===i))return e[t]=r(o,e[t]),!1;if(-1!==A&&i)return!0;var s=e[t];return 0===s.length||/\s$/.test(s)||(s+=" "),s+=o,e[t]=s,!0}finally{var c=n(e[t]).length;this.length!==c&&(this.length=c)}}},toString:{value:function(){return e[t]}}}),"length"in this)for(var o=0;o<100;++o)Object.defineProperty(this,String(o),{get:function(e){return function(){return this.item(e)}}(o)});else this.length=n(e[t]).length}function n(t,n){"Element"in e&&Element.prototype&&Object.defineProperty&&Object.defineProperty(Element.prototype,t,{get:n})}"classList"in document.createElement("span")?window.getClassList=function(e){return e.classList}:(window.getClassList=function(e){return new t(e,"className")},n("classList",(function(){return new t(this,"className")}))),"relList"in document.createElement("link")?window.getRelList=function(e){return e.relList}:(window.getRelList=function(e){return new t(e,"rel")},n("relList",(function(){return new t(this,"rel")}))),function(){if("DOMTokenList"in e){var t=document.createElement("span");"classList"in t&&(t.classList.toggle("x",!1),t.classList.contains("x")&&(e.DOMTokenList.prototype.toggle=function(e){var t=arguments[1];if(void 0===t){var n=!this.contains(e);return this[n?"add":"remove"](e),n}return this[(t=!!t)?"add":"remove"](e),t}))}}(),"previousElementSibling"in document.documentElement||n("previousElementSibling",(function(){for(var e=this.previousSibling;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.previousSibling;return e})),"nextElementSibling"in document.documentElement||n("nextElementSibling",(function(){for(var e=this.nextSibling;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.nextSibling;return e}))}(),"Element"in e&&!Element.prototype.matches&&(Element.prototype.msMatchesSelector?Element.prototype.matches=Element.prototype.msMatchesSelector:Element.prototype.oMatchesSelector?Element.prototype.matches=Element.prototype.oMatchesSelector:Element.prototype.mozMatchesSelector?Element.prototype.matches=Element.prototype.mozMatchesSelector:Element.prototype.webkitMatchesSelector?Element.prototype.matches=Element.prototype.webkitMatchesSelector:document.querySelectorAll&&(Element.prototype.matches=function(e){for(var t=(this.document||this.ownerDocument).querySelectorAll(e),n=t.length;--n>=0&&t.item(n)!==this;);return n>-1})),window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),r=this;do{for(t=n.length;--t>=0&&n.item(t)!==r;);}while(t<0&&(r=r.parentElement));return r});var t={prepend:function(){var e=[].slice.call(arguments);e=o(e),this.insertBefore(e,this.firstChild)},append:function(){var e=[].slice.call(arguments);e=o(e),this.appendChild(e)}};r(e.Document||e.HTMLDocument,t),r(e.DocumentFragment,t),r(e.Element,t);var n={before:function(){var e=[].slice.call(arguments),t=this.parentNode;if(t){for(var n=this.previousSibling;-1!==e.indexOf(n);)n=n.previousSibling;var r=o(e);t.insertBefore(r,n?n.nextSibling:t.firstChild)}},after:function(){var e=[].slice.call(arguments),t=this.parentNode;if(t){for(var n=this.nextSibling;-1!==e.indexOf(n);)n=n.nextSibling;var r=o(e);t.insertBefore(r,n)}},replaceWith:function(){var e=[].slice.call(arguments),t=this.parentNode;if(t){for(var n=this.nextSibling;-1!==e.indexOf(n);)n=n.nextSibling;var r=o(e);this.parentNode===t?t.replaceChild(r,this):t.insertBefore(r,n)}},remove:function(){this.parentNode&&this.parentNode.removeChild(this)}};r(e.DocumentType,n),r(e.Element,n),r(e.CharacterData,n)}function r(e,t){e&&Object.keys(t).forEach((function(n){if(!(n in e)&&!(n in e.prototype))try{Object.defineProperty(e.prototype,n,Object.getOwnPropertyDescriptor(t,n))}catch(r){e[n]=t[n]}}))}function o(e){var t=null;return e=e.map((function(e){return e instanceof Node?e:document.createTextNode(e)})),1===e.length?t=e[0]:(t=document.createDocumentFragment(),e.forEach((function(e){t.appendChild(e)}))),t}}(self)},5655:function(e,t){var n,r;r=this,void 0===(n=function(){return r.returnExportsGlobal=function(){"use strict";function e(){var e,t;this.q=[],this.add=function(e){this.q.push(e)},this.call=function(){for(e=0,t=this.q.length;t>e;e++)this.q[e].call()}}function t(t,r){if(t.resizedAttached){if(t.resizedAttached)return void t.resizedAttached.add(r)}else t.resizedAttached=new e,t.resizedAttached.add(r);t.resizeSensor=document.createElement("div"),t.resizeSensor.className="resize-sensor";var o="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden; opacity: 0;",i="position: absolute; left: 0; top: 0; transition: 0s;";t.resizeSensor.style.cssText=o,t.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="'+o+'"><div style="'+i+'"></div></div><div class="resize-sensor-shrink" style="'+o+'"><div style="'+i+' width: 200%; height: 200%"></div></div>',t.appendChild(t.resizeSensor),"static"==function(e,t){return e.currentStyle?e.currentStyle[t]:window.getComputedStyle?window.getComputedStyle(e,null).getPropertyValue(t):e.style[t]}(t,"position")&&(t.style.position="relative");var a=t.resizeSensor.childNodes[0],A=a.childNodes[0],s=t.resizeSensor.childNodes[1],c=function(){A.style.width="100000px",A.style.height="100000px",a.scrollLeft=1e5,a.scrollTop=1e5,s.scrollLeft=1e5,s.scrollTop=1e5};c();var u=!1;n((function e(){t.resizedAttached&&(u&&(t.resizedAttached.call(),u=!1),n(e))}));var l,f,p,d,g=function(){((p=t.offsetWidth)!=l||(d=t.offsetHeight)!=f)&&(u=!0,l=p,f=d),c()},h=function(e,t,n){e.attachEvent?e.attachEvent("on"+t,n):e.addEventListener(t,n)};h(a,"scroll",g),h(s,"scroll",g)}var n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return window.setTimeout(e,20)},r=function(e,n){var r=Object.prototype.toString.call(e),o=this._isCollectionTyped="[object Array]"===r||"[object NodeList]"===r||"[object HTMLCollection]"===r||"undefined"!=typeof jQuery&&e instanceof window.jQuery||"undefined"!=typeof Elements&&e instanceof window.Elements;if(this._element=e,o)for(var i=0,a=e.length;a>i;i++)t(e[i],n);else t(e,n)};return r.prototype.detach=function(){var e=this._isCollectionTyped,t=this._element;if(e)for(var n=0,o=t.length;o>n;n++)r.detach(t[n]);else r.detach(t)},r.detach=function(e){e.resizeSensor&&(e.removeChild(e.resizeSensor),delete e.resizeSensor,delete e.resizedAttached)},r}()}.apply(t,[]))||(e.exports=n)},741:function(e,t,n){var r,o,i;function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}i=function(){var e="1.13.1",t="object"==("undefined"==typeof self?"undefined":a(self))&&self.self===self&&self||"object"==(void 0===n.g?"undefined":a(n.g))&&n.g.global===n.g&&n.g||Function("return this")()||{},r=Array.prototype,o=Object.prototype,i="undefined"!=typeof Symbol?Symbol.prototype:null,A=r.push,s=r.slice,c=o.toString,u=o.hasOwnProperty,l="undefined"!=typeof ArrayBuffer,f="undefined"!=typeof DataView,p=Array.isArray,d=Object.keys,g=Object.create,h=l&&ArrayBuffer.isView,v=isNaN,m=isFinite,C=!{toString:null}.propertyIsEnumerable("toString"),y=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],b=Math.pow(2,53)-1;function w(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),o=0;o<n;o++)r[o]=arguments[o+t];switch(t){case 0:return e.call(this,r);case 1:return e.call(this,arguments[0],r);case 2:return e.call(this,arguments[0],arguments[1],r)}var i=Array(t+1);for(o=0;o<t;o++)i[o]=arguments[o];return i[t]=r,e.apply(this,i)}}function E(e){var t=a(e);return"function"===t||"object"===t&&!!e}function B(e){return void 0===e}function x(e){return!0===e||!1===e||"[object Boolean]"===c.call(e)}function k(e){var t="[object "+e+"]";return function(e){return c.call(e)===t}}var I=k("String"),S=k("Number"),T=k("Date"),L=k("RegExp"),R=k("Error"),Q=k("Symbol"),O=k("ArrayBuffer"),M=k("Function"),D=t.document&&t.document.childNodes;"object"!=("undefined"==typeof Int8Array?"undefined":a(Int8Array))&&"function"!=typeof D&&(M=function(e){return"function"==typeof e||!1});var F=M,P=k("Object"),U=f&&P(new DataView(new ArrayBuffer(8))),N="undefined"!=typeof Map&&P(new Map),W=k("DataView"),j=U?function(e){return null!=e&&F(e.getInt8)&&O(e.buffer)}:W,Y=p||k("Array");function G(e,t){return null!=e&&u.call(e,t)}var z=k("Arguments");!function(){z(arguments)||(z=function(e){return G(e,"callee")})}();var _=z;function V(e){return S(e)&&v(e)}function H(e){return function(){return e}}function J(e){return function(t){var n=e(t);return"number"==typeof n&&n>=0&&n<=b}}function Z(e){return function(t){return null==t?void 0:t[e]}}var K=Z("byteLength"),X=J(K),q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/,$=l?function(e){return h?h(e)&&!j(e):X(e)&&q.test(c.call(e))}:H(!1),ee=Z("length");function te(e,t){t=function(e){for(var t={},n=e.length,r=0;r<n;++r)t[e[r]]=!0;return{contains:function(e){return t[e]},push:function(n){return t[n]=!0,e.push(n)}}}(t);var n=y.length,r=e.constructor,i=F(r)&&r.prototype||o,a="constructor";for(G(e,a)&&!t.contains(a)&&t.push(a);n--;)(a=y[n])in e&&e[a]!==i[a]&&!t.contains(a)&&t.push(a)}function ne(e){if(!E(e))return[];if(d)return d(e);var t=[];for(var n in e)G(e,n)&&t.push(n);return C&&te(e,t),t}function re(e,t){var n=ne(t),r=n.length;if(null==e)return!r;for(var o=Object(e),i=0;i<r;i++){var a=n[i];if(t[a]!==o[a]||!(a in o))return!1}return!0}function oe(e){return e instanceof oe?e:this instanceof oe?void(this._wrapped=e):new oe(e)}function ie(e){return new Uint8Array(e.buffer||e,e.byteOffset||0,K(e))}oe.VERSION=e,oe.prototype.value=function(){return this._wrapped},oe.prototype.valueOf=oe.prototype.toJSON=oe.prototype.value,oe.prototype.toString=function(){return String(this._wrapped)};var ae="[object DataView]";function Ae(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var o=a(e);return("function"===o||"object"===o||"object"==a(t))&&function e(t,n,r,o){t instanceof oe&&(t=t._wrapped),n instanceof oe&&(n=n._wrapped);var A=c.call(t);if(A!==c.call(n))return!1;if(U&&"[object Object]"==A&&j(t)){if(!j(n))return!1;A=ae}switch(A){case"[object RegExp]":case"[object String]":return""+t==""+n;case"[object Number]":return+t!=+t?+n!=+n:0==+t?1/+t==1/n:+t==+n;case"[object Date]":case"[object Boolean]":return+t==+n;case"[object Symbol]":return i.valueOf.call(t)===i.valueOf.call(n);case"[object ArrayBuffer]":case ae:return e(ie(t),ie(n),r,o)}var s="[object Array]"===A;if(!s&&$(t)){if(K(t)!==K(n))return!1;if(t.buffer===n.buffer&&t.byteOffset===n.byteOffset)return!0;s=!0}if(!s){if("object"!=a(t)||"object"!=a(n))return!1;var u=t.constructor,l=n.constructor;if(u!==l&&!(F(u)&&u instanceof u&&F(l)&&l instanceof l)&&"constructor"in t&&"constructor"in n)return!1}o=o||[];for(var f=(r=r||[]).length;f--;)if(r[f]===t)return o[f]===n;if(r.push(t),o.push(n),s){if((f=t.length)!==n.length)return!1;for(;f--;)if(!Ae(t[f],n[f],r,o))return!1}else{var p,d=ne(t);if(f=d.length,ne(n).length!==f)return!1;for(;f--;)if(!G(n,p=d[f])||!Ae(t[p],n[p],r,o))return!1}return r.pop(),o.pop(),!0}(e,t,n,r)}function se(e){if(!E(e))return[];var t=[];for(var n in e)t.push(n);return C&&te(e,t),t}function ce(e){var t=ee(e);return function(n){if(null==n)return!1;var r=se(n);if(ee(r))return!1;for(var o=0;o<t;o++)if(!F(n[e[o]]))return!1;return e!==de||!F(n[ue])}}var ue="forEach",le=["clear","delete"],fe=["get","has","set"],pe=le.concat(ue,fe),de=le.concat(fe),ge=["add"].concat(le,ue,"has"),he=N?ce(pe):k("Map"),ve=N?ce(de):k("WeakMap"),me=N?ce(ge):k("Set"),Ce=k("WeakSet");function ye(e){for(var t=ne(e),n=t.length,r=Array(n),o=0;o<n;o++)r[o]=e[t[o]];return r}function be(e){for(var t={},n=ne(e),r=0,o=n.length;r<o;r++)t[e[n[r]]]=n[r];return t}function we(e){var t=[];for(var n in e)F(e[n])&&t.push(n);return t.sort()}function Ee(e,t){return function(n){var r=arguments.length;if(t&&(n=Object(n)),r<2||null==n)return n;for(var o=1;o<r;o++)for(var i=arguments[o],a=e(i),A=a.length,s=0;s<A;s++){var c=a[s];t&&void 0!==n[c]||(n[c]=i[c])}return n}}var Be=Ee(se),xe=Ee(ne),ke=Ee(se,!0);function Ie(e){if(!E(e))return{};if(g)return g(e);var t=function(){};t.prototype=e;var n=new t;return t.prototype=null,n}function Se(e){return E(e)?Y(e)?e.slice():Be({},e):e}function Te(e){return Y(e)?e:[e]}function Le(e){return oe.toPath(e)}function Re(e,t){for(var n=t.length,r=0;r<n;r++){if(null==e)return;e=e[t[r]]}return n?e:void 0}function Qe(e,t,n){var r=Re(e,Le(t));return B(r)?n:r}function Oe(e){return e}function Me(e){return e=xe({},e),function(t){return re(t,e)}}function De(e){return e=Le(e),function(t){return Re(t,e)}}function Fe(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,o){return e.call(t,n,r,o)};case 4:return function(n,r,o,i){return e.call(t,n,r,o,i)}}return function(){return e.apply(t,arguments)}}function Pe(e,t,n){return null==e?Oe:F(e)?Fe(e,t,n):E(e)&&!Y(e)?Me(e):De(e)}function Ue(e,t){return Pe(e,t,1/0)}function Ne(e,t,n){return oe.iteratee!==Ue?oe.iteratee(e,t):Pe(e,t,n)}function We(){}function je(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))}oe.toPath=Te,oe.iteratee=Ue;var Ye=Date.now||function(){return(new Date).getTime()};function Ge(e){var t=function(t){return e[t]},n="(?:"+ne(e).join("|")+")",r=RegExp(n),o=RegExp(n,"g");return function(e){return e=null==e?"":""+e,r.test(e)?e.replace(o,t):e}}var ze={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},_e=Ge(ze),Ve=Ge(be(ze)),He=oe.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Je=/(.)^/,Ze={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Ke=/\\|'|\r|\n|\u2028|\u2029/g;function Xe(e){return"\\"+Ze[e]}var qe=/^\s*(\w|\$)+\s*$/,$e=0;function et(e,t,n,r,o){if(!(r instanceof t))return e.apply(n,o);var i=Ie(e.prototype),a=e.apply(i,o);return E(a)?a:i}var tt=w((function(e,t){var n=tt.placeholder;return function r(){for(var o=0,i=t.length,a=Array(i),A=0;A<i;A++)a[A]=t[A]===n?arguments[o++]:t[A];for(;o<arguments.length;)a.push(arguments[o++]);return et(e,r,this,this,a)}}));tt.placeholder=oe;var nt=w((function(e,t,n){if(!F(e))throw new TypeError("Bind must be called on a function");var r=w((function(o){return et(e,r,t,this,n.concat(o))}));return r})),rt=J(ee);function ot(e,t,n,r){if(r=r||[],t||0===t){if(t<=0)return r.concat(e)}else t=1/0;for(var o=r.length,i=0,a=ee(e);i<a;i++){var A=e[i];if(rt(A)&&(Y(A)||_(A)))if(t>1)ot(A,t-1,n,r),o=r.length;else for(var s=0,c=A.length;s<c;)r[o++]=A[s++];else n||(r[o++]=A)}return r}var it=w((function(e,t){var n=(t=ot(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var r=t[n];e[r]=nt(e[r],e)}return e})),at=w((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})),At=tt(at,oe,1);function st(e){return function(){return!e.apply(this,arguments)}}function ct(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}var ut=tt(ct,2);function lt(e,t,n){t=Ne(t,n);for(var r,o=ne(e),i=0,a=o.length;i<a;i++)if(t(e[r=o[i]],r,e))return r}function ft(e){return function(t,n,r){n=Ne(n,r);for(var o=ee(t),i=e>0?0:o-1;i>=0&&i<o;i+=e)if(n(t[i],i,t))return i;return-1}}var pt=ft(1),dt=ft(-1);function gt(e,t,n,r){for(var o=(n=Ne(n,r,1))(t),i=0,a=ee(e);i<a;){var A=Math.floor((i+a)/2);n(e[A])<o?i=A+1:a=A}return i}function ht(e,t,n){return function(r,o,i){var a=0,A=ee(r);if("number"==typeof i)e>0?a=i>=0?i:Math.max(i+A,a):A=i>=0?Math.min(i+1,A):i+A+1;else if(n&&i&&A)return r[i=n(r,o)]===o?i:-1;if(o!=o)return(i=t(s.call(r,a,A),V))>=0?i+a:-1;for(i=e>0?a:A-1;i>=0&&i<A;i+=e)if(r[i]===o)return i;return-1}}var vt=ht(1,pt,gt),mt=ht(-1,dt);function Ct(e,t,n){var r=(rt(e)?pt:lt)(e,t,n);if(void 0!==r&&-1!==r)return e[r]}function yt(e,t,n){var r,o;if(t=Fe(t,n),rt(e))for(r=0,o=e.length;r<o;r++)t(e[r],r,e);else{var i=ne(e);for(r=0,o=i.length;r<o;r++)t(e[i[r]],i[r],e)}return e}function bt(e,t,n){t=Ne(t,n);for(var r=!rt(e)&&ne(e),o=(r||e).length,i=Array(o),a=0;a<o;a++){var A=r?r[a]:a;i[a]=t(e[A],A,e)}return i}function wt(e){var t=function(t,n,r,o){var i=!rt(t)&&ne(t),a=(i||t).length,A=e>0?0:a-1;for(o||(r=t[i?i[A]:A],A+=e);A>=0&&A<a;A+=e){var s=i?i[A]:A;r=n(r,t[s],s,t)}return r};return function(e,n,r,o){var i=arguments.length>=3;return t(e,Fe(n,o,4),r,i)}}var Et=wt(1),Bt=wt(-1);function xt(e,t,n){var r=[];return t=Ne(t,n),yt(e,(function(e,n,o){t(e,n,o)&&r.push(e)})),r}function kt(e,t,n){t=Ne(t,n);for(var r=!rt(e)&&ne(e),o=(r||e).length,i=0;i<o;i++){var a=r?r[i]:i;if(!t(e[a],a,e))return!1}return!0}function It(e,t,n){t=Ne(t,n);for(var r=!rt(e)&&ne(e),o=(r||e).length,i=0;i<o;i++){var a=r?r[i]:i;if(t(e[a],a,e))return!0}return!1}function St(e,t,n,r){return rt(e)||(e=ye(e)),("number"!=typeof n||r)&&(n=0),vt(e,t,n)>=0}var Tt=w((function(e,t,n){var r,o;return F(t)?o=t:(t=Le(t),r=t.slice(0,-1),t=t[t.length-1]),bt(e,(function(e){var i=o;if(!i){if(r&&r.length&&(e=Re(e,r)),null==e)return;i=e[t]}return null==i?i:i.apply(e,n)}))}));function Lt(e,t){return bt(e,De(t))}function Rt(e,t,n){var r,o,i=-1/0,A=-1/0;if(null==t||"number"==typeof t&&"object"!=a(e[0])&&null!=e)for(var s=0,c=(e=rt(e)?e:ye(e)).length;s<c;s++)null!=(r=e[s])&&r>i&&(i=r);else t=Ne(t,n),yt(e,(function(e,n,r){((o=t(e,n,r))>A||o===-1/0&&i===-1/0)&&(i=e,A=o)}));return i}function Qt(e,t,n){if(null==t||n)return rt(e)||(e=ye(e)),e[je(e.length-1)];var r=rt(e)?Se(e):ye(e),o=ee(r);t=Math.max(Math.min(t,o),0);for(var i=o-1,a=0;a<t;a++){var A=je(a,i),s=r[a];r[a]=r[A],r[A]=s}return r.slice(0,t)}function Ot(e,t){return function(n,r,o){var i=t?[[],[]]:{};return r=Ne(r,o),yt(n,(function(t,o){var a=r(t,o,n);e(i,t,a)})),i}}var Mt=Ot((function(e,t,n){G(e,n)?e[n].push(t):e[n]=[t]})),Dt=Ot((function(e,t,n){e[n]=t})),Ft=Ot((function(e,t,n){G(e,n)?e[n]++:e[n]=1})),Pt=Ot((function(e,t,n){e[n?0:1].push(t)}),!0),Ut=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function Nt(e,t,n){return t in n}var Wt=w((function(e,t){var n={},r=t[0];if(null==e)return n;F(r)?(t.length>1&&(r=Fe(r,t[1])),t=se(e)):(r=Nt,t=ot(t,!1,!1),e=Object(e));for(var o=0,i=t.length;o<i;o++){var a=t[o],A=e[a];r(A,a,e)&&(n[a]=A)}return n})),jt=w((function(e,t){var n,r=t[0];return F(r)?(r=st(r),t.length>1&&(n=t[1])):(t=bt(ot(t,!1,!1),String),r=function(e,n){return!St(t,n)}),Wt(e,r,n)}));function Yt(e,t,n){return s.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}function Gt(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:Yt(e,e.length-t)}function zt(e,t,n){return s.call(e,null==t||n?1:t)}var _t=w((function(e,t){return t=ot(t,!0,!0),xt(e,(function(e){return!St(t,e)}))})),Vt=w((function(e,t){return _t(e,t)}));function Ht(e,t,n,r){x(t)||(r=n,n=t,t=!1),null!=n&&(n=Ne(n,r));for(var o=[],i=[],a=0,A=ee(e);a<A;a++){var s=e[a],c=n?n(s,a,e):s;t&&!n?(a&&i===c||o.push(s),i=c):n?St(i,c)||(i.push(c),o.push(s)):St(o,s)||o.push(s)}return o}var Jt=w((function(e){return Ht(ot(e,!0,!0))}));function Zt(e){for(var t=e&&Rt(e,ee).length||0,n=Array(t),r=0;r<t;r++)n[r]=Lt(e,r);return n}var Kt=w(Zt);function Xt(e,t){return e._chain?oe(t).chain():t}function qt(e){return yt(we(e),(function(t){var n=oe[t]=e[t];oe.prototype[t]=function(){var e=[this._wrapped];return A.apply(e,arguments),Xt(this,n.apply(oe,e))}})),oe}yt(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=r[e];oe.prototype[e]=function(){var n=this._wrapped;return null!=n&&(t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0]),Xt(this,n)}})),yt(["concat","join","slice"],(function(e){var t=r[e];oe.prototype[e]=function(){var e=this._wrapped;return null!=e&&(e=t.apply(e,arguments)),Xt(this,e)}}));var $t=qt({__proto__:null,VERSION:e,restArguments:w,isObject:E,isNull:function(e){return null===e},isUndefined:B,isBoolean:x,isElement:function(e){return!(!e||1!==e.nodeType)},isString:I,isNumber:S,isDate:T,isRegExp:L,isError:R,isSymbol:Q,isArrayBuffer:O,isDataView:j,isArray:Y,isFunction:F,isArguments:_,isFinite:function(e){return!Q(e)&&m(e)&&!isNaN(parseFloat(e))},isNaN:V,isTypedArray:$,isEmpty:function(e){if(null==e)return!0;var t=ee(e);return"number"==typeof t&&(Y(e)||I(e)||_(e))?0===t:0===ee(ne(e))},isMatch:re,isEqual:function(e,t){return Ae(e,t)},isMap:he,isWeakMap:ve,isSet:me,isWeakSet:Ce,keys:ne,allKeys:se,values:ye,pairs:function(e){for(var t=ne(e),n=t.length,r=Array(n),o=0;o<n;o++)r[o]=[t[o],e[t[o]]];return r},invert:be,functions:we,methods:we,extend:Be,extendOwn:xe,assign:xe,defaults:ke,create:function(e,t){var n=Ie(e);return t&&xe(n,t),n},clone:Se,tap:function(e,t){return t(e),e},get:Qe,has:function(e,t){for(var n=(t=Le(t)).length,r=0;r<n;r++){var o=t[r];if(!G(e,o))return!1;e=e[o]}return!!n},mapObject:function(e,t,n){t=Ne(t,n);for(var r=ne(e),o=r.length,i={},a=0;a<o;a++){var A=r[a];i[A]=t(e[A],A,e)}return i},identity:Oe,constant:H,noop:We,toPath:Te,property:De,propertyOf:function(e){return null==e?We:function(t){return Qe(e,t)}},matcher:Me,matches:Me,times:function(e,t,n){var r=Array(Math.max(0,e));t=Fe(t,n,1);for(var o=0;o<e;o++)r[o]=t(o);return r},random:je,now:Ye,escape:_e,unescape:Ve,templateSettings:He,template:function(e,t,n){!t&&n&&(t=n),t=ke({},t,oe.templateSettings);var r=RegExp([(t.escape||Je).source,(t.interpolate||Je).source,(t.evaluate||Je).source].join("|")+"|$","g"),o=0,i="__p+='";e.replace(r,(function(t,n,r,a,A){return i+=e.slice(o,A).replace(Ke,Xe),o=A+t.length,n?i+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?i+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(i+="';\n"+a+"\n__p+='"),t})),i+="';\n";var a,A=t.variable;if(A){if(!qe.test(A))throw new Error("variable is not a bare identifier: "+A)}else i="with(obj||{}){\n"+i+"}\n",A="obj";i="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{a=new Function(A,"_",i)}catch(e){throw e.source=i,e}var s=function(e){return a.call(this,e,oe)};return s.source="function("+A+"){\n"+i+"}",s},result:function(e,t,n){var r=(t=Le(t)).length;if(!r)return F(n)?n.call(e):n;for(var o=0;o<r;o++){var i=null==e?void 0:e[t[o]];void 0===i&&(i=n,o=r),e=F(i)?i.call(e):i}return e},uniqueId:function(e){var t=++$e+"";return e?e+t:t},chain:function(e){var t=oe(e);return t._chain=!0,t},iteratee:Ue,partial:tt,bind:nt,bindAll:it,memoize:function(e,t){var n=function n(r){var o=n.cache,i=""+(t?t.apply(this,arguments):r);return G(o,i)||(o[i]=e.apply(this,arguments)),o[i]};return n.cache={},n},delay:at,defer:At,throttle:function(e,t,n){var r,o,i,a,A=0;n||(n={});var s=function(){A=!1===n.leading?0:Ye(),r=null,a=e.apply(o,i),r||(o=i=null)},c=function(){var c=Ye();A||!1!==n.leading||(A=c);var u=t-(c-A);return o=this,i=arguments,u<=0||u>t?(r&&(clearTimeout(r),r=null),A=c,a=e.apply(o,i),r||(o=i=null)):r||!1===n.trailing||(r=setTimeout(s,u)),a};return c.cancel=function(){clearTimeout(r),A=0,r=o=i=null},c},debounce:function(e,t,n){var r,o,i,a,A,s=function s(){var c=Ye()-o;t>c?r=setTimeout(s,t-c):(r=null,n||(a=e.apply(A,i)),r||(i=A=null))},c=w((function(c){return A=this,i=c,o=Ye(),r||(r=setTimeout(s,t),n&&(a=e.apply(A,i))),a}));return c.cancel=function(){clearTimeout(r),r=i=A=null},c},wrap:function(e,t){return tt(t,e)},negate:st,compose:function(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}},after:function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},before:ct,once:ut,findKey:lt,findIndex:pt,findLastIndex:dt,sortedIndex:gt,indexOf:vt,lastIndexOf:mt,find:Ct,detect:Ct,findWhere:function(e,t){return Ct(e,Me(t))},each:yt,forEach:yt,map:bt,collect:bt,reduce:Et,foldl:Et,inject:Et,reduceRight:Bt,foldr:Bt,filter:xt,select:xt,reject:function(e,t,n){return xt(e,st(Ne(t)),n)},every:kt,all:kt,some:It,any:It,contains:St,includes:St,include:St,invoke:Tt,pluck:Lt,where:function(e,t){return xt(e,Me(t))},max:Rt,min:function(e,t,n){var r,o,i=1/0,A=1/0;if(null==t||"number"==typeof t&&"object"!=a(e[0])&&null!=e)for(var s=0,c=(e=rt(e)?e:ye(e)).length;s<c;s++)null!=(r=e[s])&&r<i&&(i=r);else t=Ne(t,n),yt(e,(function(e,n,r){((o=t(e,n,r))<A||o===1/0&&i===1/0)&&(i=e,A=o)}));return i},shuffle:function(e){return Qt(e,1/0)},sample:Qt,sortBy:function(e,t,n){var r=0;return t=Ne(t,n),Lt(bt(e,(function(e,n,o){return{value:e,index:r++,criteria:t(e,n,o)}})).sort((function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(n<r||void 0===r)return-1}return e.index-t.index})),"value")},groupBy:Mt,indexBy:Dt,countBy:Ft,partition:Pt,toArray:function(e){return e?Y(e)?s.call(e):I(e)?e.match(Ut):rt(e)?bt(e,Oe):ye(e):[]},size:function(e){return null==e?0:rt(e)?e.length:ne(e).length},pick:Wt,omit:jt,first:Gt,head:Gt,take:Gt,initial:Yt,last:function(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:zt(e,Math.max(0,e.length-t))},rest:zt,tail:zt,drop:zt,compact:function(e){return xt(e,Boolean)},flatten:function(e,t){return ot(e,t,!1)},without:Vt,uniq:Ht,unique:Ht,union:Jt,intersection:function(e){for(var t=[],n=arguments.length,r=0,o=ee(e);r<o;r++){var i=e[r];if(!St(t,i)){var a;for(a=1;a<n&&St(arguments[a],i);a++);a===n&&t.push(i)}}return t},difference:_t,unzip:Zt,transpose:Zt,zip:Kt,object:function(e,t){for(var n={},r=0,o=ee(e);r<o;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},range:function(e,t,n){null==t&&(t=e||0,e=0),n||(n=t<e?-1:1);for(var r=Math.max(Math.ceil((t-e)/n),0),o=Array(r),i=0;i<r;i++,e+=n)o[i]=e;return o},chunk:function(e,t){if(null==t||t<1)return[];for(var n=[],r=0,o=e.length;r<o;)n.push(s.call(e,r,r+=t));return n},mixin:qt,default:oe});return $t._=$t,$t},"object"==a(t)?e.exports=i():void 0===(o="function"==typeof(r=i)?r.call(t,n,t,e):r)||(e.exports=o)},9662:function(e,t,n){var r=n(7854),o=n(614),i=n(6330),a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not a function")}},9483:function(e,t,n){var r=n(7854),o=n(4411),i=n(6330),a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not a constructor")}},6077:function(e,t,n){var r=n(7854),o=n(614),i=r.String,a=r.TypeError;e.exports=function(e){if("object"==typeof e||o(e))return e;throw a("Can't set "+i(e)+" as a prototype")}},1223:function(e,t,n){var r=n(5112),o=n(30),i=n(3070),a=r("unscopables"),A=Array.prototype;null==A[a]&&i.f(A,a,{configurable:!0,value:o(null)}),e.exports=function(e){A[a][e]=!0}},1530:function(e,t,n){"use strict";var r=n(8710).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},5787:function(e,t,n){var r=n(7854),o=n(7976),i=r.TypeError;e.exports=function(e,t){if(o(t,e))return e;throw i("Incorrect invocation")}},9670:function(e,t,n){var r=n(7854),o=n(111),i=r.String,a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not an object")}},4019:function(e){e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},7556:function(e,t,n){var r=n(7293);e.exports=r((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))},260:function(e,t,n){"use strict";var r,o,i,a=n(4019),A=n(9781),s=n(7854),c=n(614),u=n(111),l=n(2597),f=n(648),p=n(6330),d=n(8880),g=n(1320),h=n(3070).f,v=n(7976),m=n(9518),C=n(7674),y=n(5112),b=n(9711),w=s.Int8Array,E=w&&w.prototype,B=s.Uint8ClampedArray,x=B&&B.prototype,k=w&&m(w),I=E&&m(E),S=Object.prototype,T=s.TypeError,L=y("toStringTag"),R=b("TYPED_ARRAY_TAG"),Q=b("TYPED_ARRAY_CONSTRUCTOR"),O=a&&!!C&&"Opera"!==f(s.opera),M=!1,D={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},F={BigInt64Array:8,BigUint64Array:8},P=function(e){if(!u(e))return!1;var t=f(e);return l(D,t)||l(F,t)};for(r in D)(i=(o=s[r])&&o.prototype)?d(i,Q,o):O=!1;for(r in F)(i=(o=s[r])&&o.prototype)&&d(i,Q,o);if((!O||!c(k)||k===Function.prototype)&&(k=function(){throw T("Incorrect invocation")},O))for(r in D)s[r]&&C(s[r],k);if((!O||!I||I===S)&&(I=k.prototype,O))for(r in D)s[r]&&C(s[r].prototype,I);if(O&&m(x)!==I&&C(x,I),A&&!l(I,L))for(r in M=!0,h(I,L,{get:function(){return u(this)?this[R]:void 0}}),D)s[r]&&d(s[r],R,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:O,TYPED_ARRAY_CONSTRUCTOR:Q,TYPED_ARRAY_TAG:M&&R,aTypedArray:function(e){if(P(e))return e;throw T("Target is not a typed array")},aTypedArrayConstructor:function(e){if(c(e)&&(!C||v(k,e)))return e;throw T(p(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n,r){if(A){if(n)for(var o in D){var i=s[o];if(i&&l(i.prototype,e))try{delete i.prototype[e]}catch(n){try{i.prototype[e]=t}catch(e){}}}I[e]&&!n||g(I,e,n?t:O&&E[e]||t,r)}},exportTypedArrayStaticMethod:function(e,t,n){var r,o;if(A){if(C){if(n)for(r in D)if((o=s[r])&&l(o,e))try{delete o[e]}catch(e){}if(k[e]&&!n)return;try{return g(k,e,n?t:O&&k[e]||t)}catch(e){}}for(r in D)!(o=s[r])||o[e]&&!n||g(o,e,t)}},isView:function(e){if(!u(e))return!1;var t=f(e);return"DataView"===t||l(D,t)||l(F,t)},isTypedArray:P,TypedArray:k,TypedArrayPrototype:I}},3331:function(e,t,n){"use strict";var r=n(7854),o=n(1702),i=n(9781),a=n(4019),A=n(6530),s=n(8880),c=n(2248),u=n(7293),l=n(5787),f=n(9303),p=n(7466),d=n(7067),g=n(1179),h=n(9518),v=n(7674),m=n(8006).f,C=n(3070).f,y=n(1285),b=n(1589),w=n(8003),E=n(9909),B=A.PROPER,x=A.CONFIGURABLE,k=E.get,I=E.set,S="ArrayBuffer",T="Wrong index",L=r.ArrayBuffer,R=L,Q=R&&R.prototype,O=r.DataView,M=O&&O.prototype,D=Object.prototype,F=r.Array,P=r.RangeError,U=o(y),N=o([].reverse),W=g.pack,j=g.unpack,Y=function(e){return[255&e]},G=function(e){return[255&e,e>>8&255]},z=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},_=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},V=function(e){return W(e,23,4)},H=function(e){return W(e,52,8)},J=function(e,t){C(e.prototype,t,{get:function(){return k(this)[t]}})},Z=function(e,t,n,r){var o=d(n),i=k(e);if(o+t>i.byteLength)throw P(T);var a=k(i.buffer).bytes,A=o+i.byteOffset,s=b(a,A,A+t);return r?s:N(s)},K=function(e,t,n,r,o,i){var a=d(n),A=k(e);if(a+t>A.byteLength)throw P(T);for(var s=k(A.buffer).bytes,c=a+A.byteOffset,u=r(+o),l=0;l<t;l++)s[c+l]=u[i?l:t-l-1]};if(a){var X=B&&L.name!==S;if(u((function(){L(1)}))&&u((function(){new L(-1)}))&&!u((function(){return new L,new L(1.5),new L(NaN),X&&!x})))X&&x&&s(L,"name",S);else{(R=function(e){return l(this,Q),new L(d(e))}).prototype=Q;for(var q,$=m(L),ee=0;$.length>ee;)(q=$[ee++])in R||s(R,q,L[q]);Q.constructor=R}v&&h(M)!==D&&v(M,D);var te=new O(new R(2)),ne=o(M.setInt8);te.setInt8(0,2147483648),te.setInt8(1,2147483649),!te.getInt8(0)&&te.getInt8(1)||c(M,{setInt8:function(e,t){ne(this,e,t<<24>>24)},setUint8:function(e,t){ne(this,e,t<<24>>24)}},{unsafe:!0})}else Q=(R=function(e){l(this,Q);var t=d(e);I(this,{bytes:U(F(t),0),byteLength:t}),i||(this.byteLength=t)}).prototype,M=(O=function(e,t,n){l(this,M),l(e,Q);var r=k(e).byteLength,o=f(t);if(o<0||o>r)throw P("Wrong offset");if(o+(n=void 0===n?r-o:p(n))>r)throw P("Wrong length");I(this,{buffer:e,byteLength:n,byteOffset:o}),i||(this.buffer=e,this.byteLength=n,this.byteOffset=o)}).prototype,i&&(J(R,"byteLength"),J(O,"buffer"),J(O,"byteLength"),J(O,"byteOffset")),c(M,{getInt8:function(e){return Z(this,1,e)[0]<<24>>24},getUint8:function(e){return Z(this,1,e)[0]},getInt16:function(e){var t=Z(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=Z(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return _(Z(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return _(Z(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return j(Z(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return j(Z(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){K(this,1,e,Y,t)},setUint8:function(e,t){K(this,1,e,Y,t)},setInt16:function(e,t){K(this,2,e,G,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){K(this,2,e,G,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){K(this,4,e,z,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){K(this,4,e,z,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){K(this,4,e,V,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){K(this,8,e,H,t,arguments.length>2?arguments[2]:void 0)}});w(R,S),w(O,"DataView"),e.exports={ArrayBuffer:R,DataView:O}},1048:function(e,t,n){"use strict";var r=n(7908),o=n(1400),i=n(6244),a=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),A=i(n),s=o(e,A),c=o(t,A),u=arguments.length>2?arguments[2]:void 0,l=a((void 0===u?A:o(u,A))-c,A-s),f=1;for(c<s&&s<c+l&&(f=-1,c+=l-1,s+=l-1);l-- >0;)c in n?n[s]=n[c]:delete n[s],s+=f,c+=f;return n}},1285:function(e,t,n){"use strict";var r=n(7908),o=n(1400),i=n(6244);e.exports=function(e){for(var t=r(this),n=i(t),a=arguments.length,A=o(a>1?arguments[1]:void 0,n),s=a>2?arguments[2]:void 0,c=void 0===s?n:o(s,n);c>A;)t[A++]=e;return t}},8533:function(e,t,n){"use strict";var r=n(2092).forEach,o=n(2133)("forEach");e.exports=o?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},7745:function(e,t,n){var r=n(6244);e.exports=function(e,t){for(var n=0,o=r(t),i=new e(o);o>n;)i[n]=t[n++];return i}},8457:function(e,t,n){"use strict";var r=n(7854),o=n(9974),i=n(6916),a=n(7908),A=n(3411),s=n(7659),c=n(4411),u=n(6244),l=n(6135),f=n(8554),p=n(1246),d=r.Array;e.exports=function(e){var t=a(e),n=c(this),r=arguments.length,g=r>1?arguments[1]:void 0,h=void 0!==g;h&&(g=o(g,r>2?arguments[2]:void 0));var v,m,C,y,b,w,E=p(t),B=0;if(!E||this==d&&s(E))for(v=u(t),m=n?new this(v):d(v);v>B;B++)w=h?g(t[B],B):t[B],l(m,B,w);else for(b=(y=f(t,E)).next,m=n?new this:[];!(C=i(b,y)).done;B++)w=h?A(y,g,[C.value,B],!0):C.value,l(m,B,w);return m.length=B,m}},1318:function(e,t,n){var r=n(5656),o=n(1400),i=n(6244),a=function(e){return function(t,n,a){var A,s=r(t),c=i(s),u=o(a,c);if(e&&n!=n){for(;c>u;)if((A=s[u++])!=A)return!0}else for(;c>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},2092:function(e,t,n){var r=n(9974),o=n(1702),i=n(8361),a=n(7908),A=n(6244),s=n(5417),c=o([].push),u=function(e){var t=1==e,n=2==e,o=3==e,u=4==e,l=6==e,f=7==e,p=5==e||l;return function(d,g,h,v){for(var m,C,y=a(d),b=i(y),w=r(g,h),E=A(b),B=0,x=v||s,k=t?x(d,E):n||f?x(d,0):void 0;E>B;B++)if((p||B in b)&&(C=w(m=b[B],B,y),e))if(t)k[B]=C;else if(C)switch(e){case 3:return!0;case 5:return m;case 6:return B;case 2:c(k,m)}else switch(e){case 4:return!1;case 7:c(k,m)}return l?-1:o||u?u:k}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},6583:function(e,t,n){"use strict";var r=n(2104),o=n(5656),i=n(9303),a=n(6244),A=n(2133),s=Math.min,c=[].lastIndexOf,u=!!c&&1/[1].lastIndexOf(1,-0)<0,l=A("lastIndexOf"),f=u||!l;e.exports=f?function(e){if(u)return r(c,this,arguments)||0;var t=o(this),n=a(t),A=n-1;for(arguments.length>1&&(A=s(A,i(arguments[1]))),A<0&&(A=n+A);A>=0;A--)if(A in t&&t[A]===e)return A||0;return-1}:c},1194:function(e,t,n){var r=n(7293),o=n(5112),i=n(7392),a=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},2133:function(e,t,n){"use strict";var r=n(7293);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){throw 1},1)}))}},3671:function(e,t,n){var r=n(7854),o=n(9662),i=n(7908),a=n(8361),A=n(6244),s=r.TypeError,c=function(e){return function(t,n,r,c){o(n);var u=i(t),l=a(u),f=A(u),p=e?f-1:0,d=e?-1:1;if(r<2)for(;;){if(p in l){c=l[p],p+=d;break}if(p+=d,e?p<0:f<=p)throw s("Reduce of empty array with no initial value")}for(;e?p>=0:f>p;p+=d)p in l&&(c=n(c,l[p],p,u));return c}};e.exports={left:c(!1),right:c(!0)}},1589:function(e,t,n){var r=n(7854),o=n(1400),i=n(6244),a=n(6135),A=r.Array,s=Math.max;e.exports=function(e,t,n){for(var r=i(e),c=o(t,r),u=o(void 0===n?r:n,r),l=A(s(u-c,0)),f=0;c<u;c++,f++)a(l,f,e[c]);return l.length=f,l}},206:function(e,t,n){var r=n(1702);e.exports=r([].slice)},4362:function(e,t,n){var r=n(1589),o=Math.floor,i=function(e,t){var n=e.length,s=o(n/2);return n<8?a(e,t):A(e,i(r(e,0,s),t),i(r(e,s),t),t)},a=function(e,t){for(var n,r,o=e.length,i=1;i<o;){for(r=i,n=e[i];r&&t(e[r-1],n)>0;)e[r]=e[--r];r!==i++&&(e[r]=n)}return e},A=function(e,t,n,r){for(var o=t.length,i=n.length,a=0,A=0;a<o||A<i;)e[a+A]=a<o&&A<i?r(t[a],n[A])<=0?t[a++]:n[A++]:a<o?t[a++]:n[A++];return e};e.exports=i},7475:function(e,t,n){var r=n(7854),o=n(3157),i=n(4411),a=n(111),A=n(5112)("species"),s=r.Array;e.exports=function(e){var t;return o(e)&&(t=e.constructor,(i(t)&&(t===s||o(t.prototype))||a(t)&&null===(t=t[A]))&&(t=void 0)),void 0===t?s:t}},5417:function(e,t,n){var r=n(7475);e.exports=function(e,t){return new(r(e))(0===t?0:t)}},4170:function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n={},r=0;r<66;r++)n[t.charAt(r)]=r;e.exports={itoc:t,ctoi:n}},3411:function(e,t,n){var r=n(9670),o=n(9212);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){o(e,"throw",t)}}},7072:function(e,t,n){var r=n(5112)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(e){}return n}},4326:function(e,t,n){var r=n(1702),o=r({}.toString),i=r("".slice);e.exports=function(e){return i(o(e),8,-1)}},648:function(e,t,n){var r=n(7854),o=n(1694),i=n(614),a=n(4326),A=n(5112)("toStringTag"),s=r.Object,c="Arguments"==a(function(){return arguments}());e.exports=o?a:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=s(e),A))?n:c?a(t):"Object"==(r=a(t))&&i(t.callee)?"Arguments":r}},7741:function(e,t,n){var r=n(1702)("".replace),o=String(Error("zxcasd").stack),i=/\n\s*at [^:]*:[^\n]*/,a=i.test(o);e.exports=function(e,t){if(a&&"string"==typeof e)for(;t--;)e=r(e,i,"");return e}},5631:function(e,t,n){"use strict";var r=n(3070).f,o=n(30),i=n(2248),a=n(9974),A=n(5787),s=n(408),c=n(654),u=n(6340),l=n(9781),f=n(2423).fastKey,p=n(9909),d=p.set,g=p.getterFor;e.exports={getConstructor:function(e,t,n,c){var u=e((function(e,r){A(e,p),d(e,{type:t,index:o(null),first:void 0,last:void 0,size:0}),l||(e.size=0),null!=r&&s(r,e[c],{that:e,AS_ENTRIES:n})})),p=u.prototype,h=g(t),v=function(e,t,n){var r,o,i=h(e),a=m(e,t);return a?a.value=n:(i.last=a={index:o=f(t,!0),key:t,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:e.size++,"F"!==o&&(i.index[o]=a)),e},m=function(e,t){var n,r=h(e),o=f(t);if("F"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==t)return n};return i(p,{clear:function(){for(var e=h(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,l?e.size=0:this.size=0},delete:function(e){var t=this,n=h(t),r=m(t,e);if(r){var o=r.next,i=r.previous;delete n.index[r.index],r.removed=!0,i&&(i.next=o),o&&(o.previous=i),n.first==r&&(n.first=o),n.last==r&&(n.last=i),l?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=h(this),r=a(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!m(this,e)}}),i(p,n?{get:function(e){var t=m(this,e);return t&&t.value},set:function(e,t){return v(this,0===e?0:e,t)}}:{add:function(e){return v(this,e=0===e?0:e,e)}}),l&&r(p,"size",{get:function(){return h(this).size}}),u},setStrong:function(e,t,n){var r=t+" Iterator",o=g(t),i=g(r);c(e,t,(function(e,t){d(this,{type:r,target:e,state:o(e),kind:t,last:void 0})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(t)}}},9320:function(e,t,n){"use strict";var r=n(1702),o=n(2248),i=n(2423).getWeakData,a=n(9670),A=n(111),s=n(5787),c=n(408),u=n(2092),l=n(2597),f=n(9909),p=f.set,d=f.getterFor,g=u.find,h=u.findIndex,v=r([].splice),m=0,C=function(e){return e.frozen||(e.frozen=new y)},y=function(){this.entries=[]},b=function(e,t){return g(e.entries,(function(e){return e[0]===t}))};y.prototype={get:function(e){var t=b(this,e);if(t)return t[1]},has:function(e){return!!b(this,e)},set:function(e,t){var n=b(this,e);n?n[1]=t:this.entries.push([e,t])},delete:function(e){var t=h(this.entries,(function(t){return t[0]===e}));return~t&&v(this.entries,t,1),!!~t}},e.exports={getConstructor:function(e,t,n,r){var u=e((function(e,o){s(e,f),p(e,{type:t,id:m++,frozen:void 0}),null!=o&&c(o,e[r],{that:e,AS_ENTRIES:n})})),f=u.prototype,g=d(t),h=function(e,t,n){var r=g(e),o=i(a(t),!0);return!0===o?C(r).set(t,n):o[r.id]=n,e};return o(f,{delete:function(e){var t=g(this);if(!A(e))return!1;var n=i(e);return!0===n?C(t).delete(e):n&&l(n,t.id)&&delete n[t.id]},has:function(e){var t=g(this);if(!A(e))return!1;var n=i(e);return!0===n?C(t).has(e):n&&l(n,t.id)}}),o(f,n?{get:function(e){var t=g(this);if(A(e)){var n=i(e);return!0===n?C(t).get(e):n?n[t.id]:void 0}},set:function(e,t){return h(this,e,t)}}:{add:function(e){return h(this,e,!0)}}),u}}},7710:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(1702),a=n(4705),A=n(1320),s=n(2423),c=n(408),u=n(5787),l=n(614),f=n(111),p=n(7293),d=n(7072),g=n(8003),h=n(9587);e.exports=function(e,t,n){var v=-1!==e.indexOf("Map"),m=-1!==e.indexOf("Weak"),C=v?"set":"add",y=o[e],b=y&&y.prototype,w=y,E={},B=function(e){var t=i(b[e]);A(b,e,"add"==e?function(e){return t(this,0===e?0:e),this}:"delete"==e?function(e){return!(m&&!f(e))&&t(this,0===e?0:e)}:"get"==e?function(e){return m&&!f(e)?void 0:t(this,0===e?0:e)}:"has"==e?function(e){return!(m&&!f(e))&&t(this,0===e?0:e)}:function(e,n){return t(this,0===e?0:e,n),this})};if(a(e,!l(y)||!(m||b.forEach&&!p((function(){(new y).entries().next()})))))w=n.getConstructor(t,e,v,C),s.enable();else if(a(e,!0)){var x=new w,k=x[C](m?{}:-0,1)!=x,I=p((function(){x.has(1)})),S=d((function(e){new y(e)})),T=!m&&p((function(){for(var e=new y,t=5;t--;)e[C](t,t);return!e.has(-0)}));S||((w=t((function(e,t){u(e,b);var n=h(new y,e,w);return null!=t&&c(t,n[C],{that:n,AS_ENTRIES:v}),n}))).prototype=b,b.constructor=w),(I||T)&&(B("delete"),B("has"),v&&B("get")),(T||k)&&B(C),m&&b.clear&&delete b.clear}return E[e]=w,r({global:!0,forced:w!=y},E),g(w,e),m||n.setStrong(w,e,v),w}},9920:function(e,t,n){var r=n(2597),o=n(3887),i=n(1236),a=n(3070);e.exports=function(e,t,n){for(var A=o(t),s=a.f,c=i.f,u=0;u<A.length;u++){var l=A[u];r(e,l)||n&&r(n,l)||s(e,l,c(t,l))}}},4964:function(e,t,n){var r=n(5112)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,"/./"[e](t)}catch(e){}}return!1}},8544:function(e,t,n){var r=n(7293);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},4230:function(e,t,n){var r=n(1702),o=n(4488),i=n(1340),a=/"/g,A=r("".replace);e.exports=function(e,t,n,r){var s=i(o(e)),c="<"+t;return""!==n&&(c+=" "+n+'="'+A(i(r),a,"&quot;")+'"'),c+">"+s+"</"+t+">"}},4994:function(e,t,n){"use strict";var r=n(3383).IteratorPrototype,o=n(30),i=n(9114),a=n(8003),A=n(7497),s=function(){return this};e.exports=function(e,t,n,c){var u=t+" Iterator";return e.prototype=o(r,{next:i(+!c,n)}),a(e,u,!1,!0),A[u]=s,e}},8880:function(e,t,n){var r=n(9781),o=n(3070),i=n(9114);e.exports=r?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},9114:function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},6135:function(e,t,n){"use strict";var r=n(4948),o=n(3070),i=n(9114);e.exports=function(e,t,n){var a=r(t);a in e?o.f(e,a,i(0,n)):e[a]=n}},5573:function(e,t,n){"use strict";var r=n(7854),o=n(1702),i=n(7293),a=n(6650).start,A=r.RangeError,s=Math.abs,c=Date.prototype,u=c.toISOString,l=o(c.getTime),f=o(c.getUTCDate),p=o(c.getUTCFullYear),d=o(c.getUTCHours),g=o(c.getUTCMilliseconds),h=o(c.getUTCMinutes),v=o(c.getUTCMonth),m=o(c.getUTCSeconds);e.exports=i((function(){return"0385-07-25T07:06:39.999Z"!=u.call(new Date(-50000000000001))}))||!i((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(l(this)))throw A("Invalid time value");var e=this,t=p(e),n=g(e),r=t<0?"-":t>9999?"+":"";return r+a(s(t),r?6:4,0)+"-"+a(v(e)+1,2,0)+"-"+a(f(e),2,0)+"T"+a(d(e),2,0)+":"+a(h(e),2,0)+":"+a(m(e),2,0)+"."+a(n,3,0)+"Z"}:u},8709:function(e,t,n){"use strict";var r=n(7854),o=n(9670),i=n(2140),a=r.TypeError;e.exports=function(e){if(o(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw a("Incorrect hint");return i(this,e)}},654:function(e,t,n){"use strict";var r=n(2109),o=n(6916),i=n(1913),a=n(6530),A=n(614),s=n(4994),c=n(9518),u=n(7674),l=n(8003),f=n(8880),p=n(1320),d=n(5112),g=n(7497),h=n(3383),v=a.PROPER,m=a.CONFIGURABLE,C=h.IteratorPrototype,y=h.BUGGY_SAFARI_ITERATORS,b=d("iterator"),w="keys",E="values",B="entries",x=function(){return this};e.exports=function(e,t,n,a,d,h,k){s(n,t,a);var I,S,T,L=function(e){if(e===d&&D)return D;if(!y&&e in O)return O[e];switch(e){case w:case E:case B:return function(){return new n(this,e)}}return function(){return new n(this)}},R=t+" Iterator",Q=!1,O=e.prototype,M=O[b]||O["@@iterator"]||d&&O[d],D=!y&&M||L(d),F="Array"==t&&O.entries||M;if(F&&(I=c(F.call(new e)))!==Object.prototype&&I.next&&(i||c(I)===C||(u?u(I,C):A(I[b])||p(I,b,x)),l(I,R,!0,!0),i&&(g[R]=x)),v&&d==E&&M&&M.name!==E&&(!i&&m?f(O,"name",E):(Q=!0,D=function(){return o(M,this)})),d)if(S={values:L(E),keys:h?D:L(w),entries:L(B)},k)for(T in S)(y||Q||!(T in O))&&p(O,T,S[T]);else r({target:t,proto:!0,forced:y||Q},S);return i&&!k||O[b]===D||p(O,b,D,{name:d}),g[t]=D,S}},7235:function(e,t,n){var r=n(857),o=n(2597),i=n(6061),a=n(3070).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});o(t,e)||a(t,e,{value:i.f(e)})}},9781:function(e,t,n){var r=n(7293);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},317:function(e,t,n){var r=n(7854),o=n(111),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},3678:function(e){e.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},8324:function(e){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},8509:function(e,t,n){var r=n(317)("span").classList,o=r&&r.constructor&&r.constructor.prototype;e.exports=o===Object.prototype?void 0:o},8886:function(e,t,n){var r=n(8113).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},7871:function(e){e.exports="object"==typeof window},256:function(e,t,n){var r=n(8113);e.exports=/MSIE|Trident/.test(r)},1528:function(e,t,n){var r=n(8113),o=n(7854);e.exports=/ipad|iphone|ipod/i.test(r)&&void 0!==o.Pebble},8334:function(e,t,n){var r=n(8113);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},5268:function(e,t,n){var r=n(4326),o=n(7854);e.exports="process"==r(o.process)},1036:function(e,t,n){var r=n(8113);e.exports=/web0s(?!.*chrome)/i.test(r)},8113:function(e,t,n){var r=n(5005);e.exports=r("navigator","userAgent")||""},7392:function(e,t,n){var r,o,i=n(7854),a=n(8113),A=i.process,s=i.Deno,c=A&&A.versions||s&&s.version,u=c&&c.v8;u&&(o=(r=u.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),e.exports=o},8008:function(e,t,n){var r=n(8113).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},748:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2914:function(e,t,n){var r=n(7293),o=n(9114);e.exports=!r((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",o(1,7)),7!==e.stack)}))},7762:function(e,t,n){"use strict";var r=n(9781),o=n(7293),i=n(9670),a=n(30),A=n(6277),s=Error.prototype.toString,c=o((function(){if(r){var e=a(Object.defineProperty({},"name",{get:function(){return this===e}}));if("true"!==s.call(e))return!0}return"2: 1"!==s.call({message:1,name:2})||"Error"!==s.call({})}));e.exports=c?function(){var e=i(this),t=A(e.name,"Error"),n=A(e.message);return t?n?t+": "+n:t:n}:s},2109:function(e,t,n){var r=n(7854),o=n(1236).f,i=n(8880),a=n(1320),A=n(3505),s=n(9920),c=n(4705);e.exports=function(e,t){var n,u,l,f,p,d=e.target,g=e.global,h=e.stat;if(n=g?r:h?r[d]||A(d,{}):(r[d]||{}).prototype)for(u in t){if(f=t[u],l=e.noTargetGet?(p=o(n,u))&&p.value:n[u],!c(g?u:d+(h?".":"#")+u,e.forced)&&void 0!==l){if(typeof f==typeof l)continue;s(f,l)}(e.sham||l&&l.sham)&&i(f,"sham",!0),a(n,u,f,e)}}},7293:function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},7007:function(e,t,n){"use strict";n(4916);var r=n(1702),o=n(1320),i=n(2261),a=n(7293),A=n(5112),s=n(8880),c=A("species"),u=RegExp.prototype;e.exports=function(e,t,n,l){var f=A(e),p=!a((function(){var t={};return t[f]=function(){return 7},7!=""[e](t)})),d=p&&!a((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[c]=function(){return n},n.flags="",n[f]=/./[f]),n.exec=function(){return t=!0,null},n[f](""),!t}));if(!p||!d||n){var g=r(/./[f]),h=t(f,""[e],(function(e,t,n,o,a){var A=r(e),s=t.exec;return s===i||s===u.exec?p&&!a?{done:!0,value:g(t,n,o)}:{done:!0,value:A(n,t,o)}:{done:!1}}));o(String.prototype,e,h[0]),o(u,f,h[1])}l&&s(u[f],"sham",!0)}},6790:function(e,t,n){"use strict";var r=n(7854),o=n(3157),i=n(6244),a=n(9974),A=r.TypeError,s=function(e,t,n,r,c,u,l,f){for(var p,d,g=c,h=0,v=!!l&&a(l,f);h<r;){if(h in n){if(p=v?v(n[h],h,t):n[h],u>0&&o(p))d=i(p),g=s(e,t,p,d,g,u-1)-1;else{if(g>=9007199254740991)throw A("Exceed the acceptable array length");e[g]=p}g++}h++}return g};e.exports=s},6677:function(e,t,n){var r=n(7293);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},2104:function(e,t,n){var r=n(4374),o=Function.prototype,i=o.apply,a=o.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},9974:function(e,t,n){var r=n(1702),o=n(9662),i=n(4374),a=r(r.bind);e.exports=function(e,t){return o(e),void 0===t?e:i?a(e,t):function(){return e.apply(t,arguments)}}},4374:function(e,t,n){var r=n(7293);e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},7065:function(e,t,n){"use strict";var r=n(7854),o=n(1702),i=n(9662),a=n(111),A=n(2597),s=n(206),c=n(4374),u=r.Function,l=o([].concat),f=o([].join),p={},d=function(e,t,n){if(!A(p,t)){for(var r=[],o=0;o<t;o++)r[o]="a["+o+"]";p[t]=u("C,a","return new C("+f(r,",")+")")}return p[t](e,n)};e.exports=c?u.bind:function(e){var t=i(this),n=t.prototype,r=s(arguments,1),o=function(){var n=l(r,s(arguments));return this instanceof o?d(t,n.length,n):t.apply(e,n)};return a(n)&&(o.prototype=n),o}},6916:function(e,t,n){var r=n(4374),o=Function.prototype.call;e.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},6530:function(e,t,n){var r=n(9781),o=n(2597),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,A=o(i,"name"),s=A&&"something"===function(){}.name,c=A&&(!r||r&&a(i,"name").configurable);e.exports={EXISTS:A,PROPER:s,CONFIGURABLE:c}},1702:function(e,t,n){var r=n(4374),o=Function.prototype,i=o.bind,a=o.call,A=r&&i.bind(a,a);e.exports=r?function(e){return e&&A(e)}:function(e){return e&&function(){return a.apply(e,arguments)}}},5005:function(e,t,n){var r=n(7854),o=n(614),i=function(e){return o(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e]):r[e]&&r[e][t]}},1246:function(e,t,n){var r=n(648),o=n(8173),i=n(7497),a=n(5112)("iterator");e.exports=function(e){if(null!=e)return o(e,a)||o(e,"@@iterator")||i[r(e)]}},8554:function(e,t,n){var r=n(7854),o=n(6916),i=n(9662),a=n(9670),A=n(6330),s=n(1246),c=r.TypeError;e.exports=function(e,t){var n=arguments.length<2?s(e):t;if(i(n))return a(o(n,e));throw c(A(e)+" is not iterable")}},8173:function(e,t,n){var r=n(9662);e.exports=function(e,t){var n=e[t];return null==n?void 0:r(n)}},647:function(e,t,n){var r=n(1702),o=n(7908),i=Math.floor,a=r("".charAt),A=r("".replace),s=r("".slice),c=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,u=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,l,f){var p=n+e.length,d=r.length,g=u;return void 0!==l&&(l=o(l),g=c),A(f,g,(function(o,A){var c;switch(a(A,0)){case"$":return"$";case"&":return e;case"`":return s(t,0,n);case"'":return s(t,p);case"<":c=l[s(A,1,-1)];break;default:var u=+A;if(0===u)return o;if(u>d){var f=i(u/10);return 0===f?o:f<=d?void 0===r[f-1]?a(A,1):r[f-1]+a(A,1):o}c=r[u-1]}return void 0===c?"":c}))}},7854:function(e,t,n){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},2597:function(e,t,n){var r=n(1702),o=n(7908),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return i(o(e),t)}},3501:function(e){e.exports={}},842:function(e,t,n){var r=n(7854);e.exports=function(e,t){var n=r.console;n&&n.error&&(1==arguments.length?n.error(e):n.error(e,t))}},490:function(e,t,n){var r=n(5005);e.exports=r("document","documentElement")},4664:function(e,t,n){var r=n(9781),o=n(7293),i=n(317);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},1179:function(e,t,n){var r=n(7854).Array,o=Math.abs,i=Math.pow,a=Math.floor,A=Math.log,s=Math.LN2;e.exports={pack:function(e,t,n){var c,u,l,f=r(n),p=8*n-t-1,d=(1<<p)-1,g=d>>1,h=23===t?i(2,-24)-i(2,-77):0,v=e<0||0===e&&1/e<0?1:0,m=0;for((e=o(e))!=e||e===1/0?(u=e!=e?1:0,c=d):(c=a(A(e)/s),e*(l=i(2,-c))<1&&(c--,l*=2),(e+=c+g>=1?h/l:h*i(2,1-g))*l>=2&&(c++,l/=2),c+g>=d?(u=0,c=d):c+g>=1?(u=(e*l-1)*i(2,t),c+=g):(u=e*i(2,g-1)*i(2,t),c=0));t>=8;)f[m++]=255&u,u/=256,t-=8;for(c=c<<t|u,p+=t;p>0;)f[m++]=255&c,c/=256,p-=8;return f[--m]|=128*v,f},unpack:function(e,t){var n,r=e.length,o=8*r-t-1,a=(1<<o)-1,A=a>>1,s=o-7,c=r-1,u=e[c--],l=127&u;for(u>>=7;s>0;)l=256*l+e[c--],s-=8;for(n=l&(1<<-s)-1,l>>=-s,s+=t;s>0;)n=256*n+e[c--],s-=8;if(0===l)l=1-A;else{if(l===a)return n?NaN:u?-1/0:1/0;n+=i(2,t),l-=A}return(u?-1:1)*n*i(2,l-t)}}},8361:function(e,t,n){var r=n(7854),o=n(1702),i=n(7293),a=n(4326),A=r.Object,s=o("".split);e.exports=i((function(){return!A("z").propertyIsEnumerable(0)}))?function(e){return"String"==a(e)?s(e,""):A(e)}:A},9587:function(e,t,n){var r=n(614),o=n(111),i=n(7674);e.exports=function(e,t,n){var a,A;return i&&r(a=t.constructor)&&a!==n&&o(A=a.prototype)&&A!==n.prototype&&i(e,A),e}},2788:function(e,t,n){var r=n(1702),o=n(614),i=n(5465),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},8340:function(e,t,n){var r=n(111),o=n(8880);e.exports=function(e,t){r(t)&&"cause"in t&&o(e,"cause",t.cause)}},2423:function(e,t,n){var r=n(2109),o=n(1702),i=n(3501),a=n(111),A=n(2597),s=n(3070).f,c=n(8006),u=n(1156),l=n(2050),f=n(9711),p=n(6677),d=!1,g=f("meta"),h=0,v=function(e){s(e,g,{value:{objectID:"O"+h++,weakData:{}}})},m=e.exports={enable:function(){m.enable=function(){},d=!0;var e=c.f,t=o([].splice),n={};n[g]=1,e(n).length&&(c.f=function(n){for(var r=e(n),o=0,i=r.length;o<i;o++)if(r[o]===g){t(r,o,1);break}return r},r({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:u.f}))},fastKey:function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!A(e,g)){if(!l(e))return"F";if(!t)return"E";v(e)}return e[g].objectID},getWeakData:function(e,t){if(!A(e,g)){if(!l(e))return!0;if(!t)return!1;v(e)}return e[g].weakData},onFreeze:function(e){return p&&d&&l(e)&&!A(e,g)&&v(e),e}};i[g]=!0},9909:function(e,t,n){var r,o,i,a=n(8536),A=n(7854),s=n(1702),c=n(111),u=n(8880),l=n(2597),f=n(5465),p=n(6200),d=n(3501),g="Object already initialized",h=A.TypeError,v=A.WeakMap;if(a||f.state){var m=f.state||(f.state=new v),C=s(m.get),y=s(m.has),b=s(m.set);r=function(e,t){if(y(m,e))throw new h(g);return t.facade=e,b(m,e,t),t},o=function(e){return C(m,e)||{}},i=function(e){return y(m,e)}}else{var w=p("state");d[w]=!0,r=function(e,t){if(l(e,w))throw new h(g);return t.facade=e,u(e,w,t),t},o=function(e){return l(e,w)?e[w]:{}},i=function(e){return l(e,w)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!c(t)||(n=o(t)).type!==e)throw h("Incompatible receiver, "+e+" required");return n}}}},7659:function(e,t,n){var r=n(5112),o=n(7497),i=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||a[i]===e)}},3157:function(e,t,n){var r=n(4326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},614:function(e){e.exports=function(e){return"function"==typeof e}},4411:function(e,t,n){var r=n(1702),o=n(7293),i=n(614),a=n(648),A=n(5005),s=n(2788),c=function(){},u=[],l=A("Reflect","construct"),f=/^\s*(?:class|function)\b/,p=r(f.exec),d=!f.exec(c),g=function(e){if(!i(e))return!1;try{return l(c,u,e),!0}catch(e){return!1}},h=function(e){if(!i(e))return!1;switch(a(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return d||!!p(f,s(e))}catch(e){return!0}};h.sham=!0,e.exports=!l||o((function(){var e;return g(g.call)||!g(Object)||!g((function(){e=!0}))||e}))?h:g},5032:function(e,t,n){var r=n(2597);e.exports=function(e){return void 0!==e&&(r(e,"value")||r(e,"writable"))}},4705:function(e,t,n){var r=n(7293),o=n(614),i=/#|\.prototype\./,a=function(e,t){var n=s[A(e)];return n==u||n!=c&&(o(t)?r(t):!!t)},A=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},s=a.data={},c=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},5988:function(e,t,n){var r=n(111),o=Math.floor;e.exports=Number.isInteger||function(e){return!r(e)&&isFinite(e)&&o(e)===e}},111:function(e,t,n){var r=n(614);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},1913:function(e){e.exports=!1},7850:function(e,t,n){var r=n(111),o=n(4326),i=n(5112)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},2190:function(e,t,n){var r=n(7854),o=n(5005),i=n(614),a=n(7976),A=n(3307),s=r.Object;e.exports=A?function(e){return"symbol"==typeof e}:function(e){var t=o("Symbol");return i(t)&&a(t.prototype,s(e))}},408:function(e,t,n){var r=n(7854),o=n(9974),i=n(6916),a=n(9670),A=n(6330),s=n(7659),c=n(6244),u=n(7976),l=n(8554),f=n(1246),p=n(9212),d=r.TypeError,g=function(e,t){this.stopped=e,this.result=t},h=g.prototype;e.exports=function(e,t,n){var r,v,m,C,y,b,w,E=n&&n.that,B=!(!n||!n.AS_ENTRIES),x=!(!n||!n.IS_ITERATOR),k=!(!n||!n.INTERRUPTED),I=o(t,E),S=function(e){return r&&p(r,"normal",e),new g(!0,e)},T=function(e){return B?(a(e),k?I(e[0],e[1],S):I(e[0],e[1])):k?I(e,S):I(e)};if(x)r=e;else{if(!(v=f(e)))throw d(A(e)+" is not iterable");if(s(v)){for(m=0,C=c(e);C>m;m++)if((y=T(e[m]))&&u(h,y))return y;return new g(!1)}r=l(e,v)}for(b=r.next;!(w=i(b,r)).done;){try{y=T(w.value)}catch(e){p(r,"throw",e)}if("object"==typeof y&&y&&u(h,y))return y}return new g(!1)}},9212:function(e,t,n){var r=n(6916),o=n(9670),i=n(8173);e.exports=function(e,t,n){var a,A;o(e);try{if(!(a=i(e,"return"))){if("throw"===t)throw n;return n}a=r(a,e)}catch(e){A=!0,a=e}if("throw"===t)throw n;if(A)throw a;return o(a),n}},3383:function(e,t,n){"use strict";var r,o,i,a=n(7293),A=n(614),s=n(30),c=n(9518),u=n(1320),l=n(5112),f=n(1913),p=l("iterator"),d=!1;[].keys&&("next"in(i=[].keys())?(o=c(c(i)))!==Object.prototype&&(r=o):d=!0),null==r||a((function(){var e={};return r[p].call(e)!==e}))?r={}:f&&(r=s(r)),A(r[p])||u(r,p,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:d}},7497:function(e){e.exports={}},6244:function(e,t,n){var r=n(7466);e.exports=function(e){return r(e.length)}},6736:function(e){var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||t(10)<22025.465794806718||-2e-17!=t(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:n(e)-1}:t},6130:function(e,t,n){var r=n(4310),o=Math.abs,i=Math.pow,a=i(2,-52),A=i(2,-23),s=i(2,127)*(2-A),c=i(2,-126);e.exports=Math.fround||function(e){var t,n,i=o(e),u=r(e);return i<c?u*(i/c/A+1/a-1/a)*c*A:(n=(t=(1+A/a)*i)-(t-i))>s||n!=n?u*(1/0):u*n}},202:function(e){var t=Math.log,n=Math.LOG10E;e.exports=Math.log10||function(e){return t(e)*n}},6513:function(e){var t=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:t(1+e)}},4310:function(e){e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},5948:function(e,t,n){var r,o,i,a,A,s,c,u,l=n(7854),f=n(9974),p=n(1236).f,d=n(261).set,g=n(8334),h=n(1528),v=n(1036),m=n(5268),C=l.MutationObserver||l.WebKitMutationObserver,y=l.document,b=l.process,w=l.Promise,E=p(l,"queueMicrotask"),B=E&&E.value;B||(r=function(){var e,t;for(m&&(e=b.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(e){throw o?a():i=void 0,e}}i=void 0,e&&e.enter()},g||m||v||!C||!y?!h&&w&&w.resolve?((c=w.resolve(void 0)).constructor=w,u=f(c.then,c),a=function(){u(r)}):m?a=function(){b.nextTick(r)}:(d=f(d,l),a=function(){d(r)}):(A=!0,s=y.createTextNode(""),new C(r).observe(s,{characterData:!0}),a=function(){s.data=A=!A})),e.exports=B||function(e){var t={fn:e,next:void 0};i&&(i.next=t),o||(o=t,a()),i=t}},3366:function(e,t,n){var r=n(7854);e.exports=r.Promise},133:function(e,t,n){var r=n(7392),o=n(7293);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},590:function(e,t,n){var r=n(7293),o=n(5112),i=n(1913),a=o("iterator");e.exports=!r((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),n+=r+e})),i&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[a]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host}))},8536:function(e,t,n){var r=n(7854),o=n(614),i=n(2788),a=r.WeakMap;e.exports=o(a)&&/native code/.test(i(a))},8523:function(e,t,n){"use strict";var r=n(9662),o=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new o(e)}},6277:function(e,t,n){var r=n(1340);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:r(e)}},3929:function(e,t,n){var r=n(7854),o=n(7850),i=r.TypeError;e.exports=function(e){if(o(e))throw i("The method doesn't accept regular expressions");return e}},7023:function(e,t,n){var r=n(7854).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&r(e)}},2814:function(e,t,n){var r=n(7854),o=n(7293),i=n(1702),a=n(1340),A=n(3111).trim,s=n(1361),c=i("".charAt),u=r.parseFloat,l=r.Symbol,f=l&&l.iterator,p=1/u(s+"-0")!=-1/0||f&&!o((function(){u(Object(f))}));e.exports=p?function(e){var t=A(a(e)),n=u(t);return 0===n&&"-"==c(t,0)?-0:n}:u},3009:function(e,t,n){var r=n(7854),o=n(7293),i=n(1702),a=n(1340),A=n(3111).trim,s=n(1361),c=r.parseInt,u=r.Symbol,l=u&&u.iterator,f=/^[+-]?0x/i,p=i(f.exec),d=8!==c(s+"08")||22!==c(s+"0x16")||l&&!o((function(){c(Object(l))}));e.exports=d?function(e,t){var n=A(a(e));return c(n,t>>>0||(p(f,n)?16:10))}:c},1574:function(e,t,n){"use strict";var r=n(9781),o=n(1702),i=n(6916),a=n(7293),A=n(1956),s=n(5181),c=n(5296),u=n(7908),l=n(8361),f=Object.assign,p=Object.defineProperty,d=o([].concat);e.exports=!f||a((function(){if(r&&1!==f({b:1},f(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach((function(e){t[e]=e})),7!=f({},e)[n]||A(f({},t)).join("")!=o}))?function(e,t){for(var n=u(e),o=arguments.length,a=1,f=s.f,p=c.f;o>a;)for(var g,h=l(arguments[a++]),v=f?d(A(h),f(h)):A(h),m=v.length,C=0;m>C;)g=v[C++],r&&!i(p,h,g)||(n[g]=h[g]);return n}:f},30:function(e,t,n){var r,o=n(9670),i=n(6048),a=n(748),A=n(3501),s=n(490),c=n(317),u=n(6200)("IE_PROTO"),l=function(){},f=function(e){return"<script>"+e+"<\/script>"},p=function(e){e.write(f("")),e.close();var t=e.parentWindow.Object;return e=null,t},d=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}var e,t;d="undefined"!=typeof document?document.domain&&r?p(r):((t=c("iframe")).style.display="none",s.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(f("document.F=Object")),e.close(),e.F):p(r);for(var n=a.length;n--;)delete d.prototype[a[n]];return d()};A[u]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(l.prototype=o(e),n=new l,l.prototype=null,n[u]=e):n=d(),void 0===t?n:i.f(n,t)}},6048:function(e,t,n){var r=n(9781),o=n(3353),i=n(3070),a=n(9670),A=n(5656),s=n(1956);t.f=r&&!o?Object.defineProperties:function(e,t){a(e);for(var n,r=A(t),o=s(t),c=o.length,u=0;c>u;)i.f(e,n=o[u++],r[n]);return e}},3070:function(e,t,n){var r=n(7854),o=n(9781),i=n(4664),a=n(3353),A=n(9670),s=n(4948),c=r.TypeError,u=Object.defineProperty,l=Object.getOwnPropertyDescriptor;t.f=o?a?function(e,t,n){if(A(e),t=s(t),A(n),"function"==typeof e&&"prototype"===t&&"value"in n&&"writable"in n&&!n.writable){var r=l(e,t);r&&r.writable&&(e[t]=n.value,n={configurable:"configurable"in n?n.configurable:r.configurable,enumerable:"enumerable"in n?n.enumerable:r.enumerable,writable:!1})}return u(e,t,n)}:u:function(e,t,n){if(A(e),t=s(t),A(n),i)try{return u(e,t,n)}catch(e){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},1236:function(e,t,n){var r=n(9781),o=n(6916),i=n(5296),a=n(9114),A=n(5656),s=n(4948),c=n(2597),u=n(4664),l=Object.getOwnPropertyDescriptor;t.f=r?l:function(e,t){if(e=A(e),t=s(t),u)try{return l(e,t)}catch(e){}if(c(e,t))return a(!o(i.f,e,t),e[t])}},1156:function(e,t,n){var r=n(4326),o=n(5656),i=n(8006).f,a=n(1589),A="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return A&&"Window"==r(e)?function(e){try{return i(e)}catch(e){return a(A)}}(e):i(o(e))}},8006:function(e,t,n){var r=n(6324),o=n(748).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},5181:function(e,t){t.f=Object.getOwnPropertySymbols},9518:function(e,t,n){var r=n(7854),o=n(2597),i=n(614),a=n(7908),A=n(6200),s=n(8544),c=A("IE_PROTO"),u=r.Object,l=u.prototype;e.exports=s?u.getPrototypeOf:function(e){var t=a(e);if(o(t,c))return t[c];var n=t.constructor;return i(n)&&t instanceof n?n.prototype:t instanceof u?l:null}},2050:function(e,t,n){var r=n(7293),o=n(111),i=n(4326),a=n(7556),A=Object.isExtensible,s=r((function(){A(1)}));e.exports=s||a?function(e){return!!o(e)&&(!a||"ArrayBuffer"!=i(e))&&(!A||A(e))}:A},7976:function(e,t,n){var r=n(1702);e.exports=r({}.isPrototypeOf)},6324:function(e,t,n){var r=n(1702),o=n(2597),i=n(5656),a=n(1318).indexOf,A=n(3501),s=r([].push);e.exports=function(e,t){var n,r=i(e),c=0,u=[];for(n in r)!o(A,n)&&o(r,n)&&s(u,n);for(;t.length>c;)o(r,n=t[c++])&&(~a(u,n)||s(u,n));return u}},1956:function(e,t,n){var r=n(6324),o=n(748);e.exports=Object.keys||function(e){return r(e,o)}},5296:function(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);t.f=o?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},9026:function(e,t,n){"use strict";var r=n(1913),o=n(7854),i=n(7293),a=n(8008);e.exports=r||!i((function(){if(!(a&&a<535)){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete o[e]}}))},7674:function(e,t,n){var r=n(1702),o=n(9670),i=n(6077);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=r(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return o(n),i(r),t?e(n,r):n.__proto__=r,n}}():void 0)},4699:function(e,t,n){var r=n(9781),o=n(1702),i=n(1956),a=n(5656),A=o(n(5296).f),s=o([].push),c=function(e){return function(t){for(var n,o=a(t),c=i(o),u=c.length,l=0,f=[];u>l;)n=c[l++],r&&!A(o,n)||s(f,e?[n,o[n]]:o[n]);return f}};e.exports={entries:c(!0),values:c(!1)}},288:function(e,t,n){"use strict";var r=n(1694),o=n(648);e.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},2140:function(e,t,n){var r=n(7854),o=n(6916),i=n(614),a=n(111),A=r.TypeError;e.exports=function(e,t){var n,r;if("string"===t&&i(n=e.toString)&&!a(r=o(n,e)))return r;if(i(n=e.valueOf)&&!a(r=o(n,e)))return r;if("string"!==t&&i(n=e.toString)&&!a(r=o(n,e)))return r;throw A("Can't convert object to primitive value")}},3887:function(e,t,n){var r=n(5005),o=n(1702),i=n(8006),a=n(5181),A=n(9670),s=o([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(A(e)),n=a.f;return n?s(t,n(e)):t}},857:function(e,t,n){var r=n(7854);e.exports=r},2534:function(e){e.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}},9478:function(e,t,n){var r=n(9670),o=n(111),i=n(8523);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},8572:function(e){var t=function(){this.head=null,this.tail=null};t.prototype={add:function(e){var t={item:e,next:null};this.head?this.tail.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return this.head=e.next,this.tail===e&&(this.tail=null),e.item}},e.exports=t},2248:function(e,t,n){var r=n(1320);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},1320:function(e,t,n){var r=n(7854),o=n(614),i=n(2597),a=n(8880),A=n(3505),s=n(2788),c=n(9909),u=n(6530).CONFIGURABLE,l=c.get,f=c.enforce,p=String(String).split("String");(e.exports=function(e,t,n,s){var c,l=!!s&&!!s.unsafe,d=!!s&&!!s.enumerable,g=!!s&&!!s.noTargetGet,h=s&&void 0!==s.name?s.name:t;o(n)&&("Symbol("===String(h).slice(0,7)&&(h="["+String(h).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!i(n,"name")||u&&n.name!==h)&&a(n,"name",h),(c=f(n)).source||(c.source=p.join("string"==typeof h?h:""))),e!==r?(l?!g&&e[t]&&(d=!0):delete e[t],d?e[t]=n:a(e,t,n)):d?e[t]=n:A(t,n)})(Function.prototype,"toString",(function(){return o(this)&&l(this).source||s(this)}))},7651:function(e,t,n){var r=n(7854),o=n(6916),i=n(9670),a=n(614),A=n(4326),s=n(2261),c=r.TypeError;e.exports=function(e,t){var n=e.exec;if(a(n)){var r=o(n,e,t);return null!==r&&i(r),r}if("RegExp"===A(e))return o(s,e,t);throw c("RegExp#exec called on incompatible receiver")}},2261:function(e,t,n){"use strict";var r,o,i=n(6916),a=n(1702),A=n(1340),s=n(7066),c=n(2999),u=n(2309),l=n(30),f=n(9909).get,p=n(9441),d=n(7168),g=u("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,v=h,m=a("".charAt),C=a("".indexOf),y=a("".replace),b=a("".slice),w=(o=/b*/g,i(h,r=/a/,"a"),i(h,o,"a"),0!==r.lastIndex||0!==o.lastIndex),E=c.BROKEN_CARET,B=void 0!==/()??/.exec("")[1];(w||B||E||p||d)&&(v=function(e){var t,n,r,o,a,c,u,p=this,d=f(p),x=A(e),k=d.raw;if(k)return k.lastIndex=p.lastIndex,t=i(v,k,x),p.lastIndex=k.lastIndex,t;var I=d.groups,S=E&&p.sticky,T=i(s,p),L=p.source,R=0,Q=x;if(S&&(T=y(T,"y",""),-1===C(T,"g")&&(T+="g"),Q=b(x,p.lastIndex),p.lastIndex>0&&(!p.multiline||p.multiline&&"\n"!==m(x,p.lastIndex-1))&&(L="(?: "+L+")",Q=" "+Q,R++),n=new RegExp("^(?:"+L+")",T)),B&&(n=new RegExp("^"+L+"$(?!\\s)",T)),w&&(r=p.lastIndex),o=i(h,S?n:p,Q),S?o?(o.input=b(o.input,R),o[0]=b(o[0],R),o.index=p.lastIndex,p.lastIndex+=o[0].length):p.lastIndex=0:w&&o&&(p.lastIndex=p.global?o.index+o[0].length:r),B&&o&&o.length>1&&i(g,o[0],n,(function(){for(a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(o[a]=void 0)})),o&&I)for(o.groups=c=l(null),a=0;a<I.length;a++)c[(u=I[a])[0]]=o[u[1]];return o}),e.exports=v},7066:function(e,t,n){"use strict";var r=n(9670);e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},2999:function(e,t,n){var r=n(7293),o=n(7854).RegExp,i=r((function(){var e=o("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),a=i||r((function(){return!o("a","y").sticky})),A=i||r((function(){var e=o("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));e.exports={BROKEN_CARET:A,MISSED_STICKY:a,UNSUPPORTED_Y:i}},9441:function(e,t,n){var r=n(7293),o=n(7854).RegExp;e.exports=r((function(){var e=o(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)}))},7168:function(e,t,n){var r=n(7293),o=n(7854).RegExp;e.exports=r((function(){var e=o("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")}))},4488:function(e,t,n){var r=n(7854).TypeError;e.exports=function(e){if(null==e)throw r("Can't call method on "+e);return e}},1150:function(e){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},3505:function(e,t,n){var r=n(7854),o=Object.defineProperty;e.exports=function(e,t){try{o(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},6340:function(e,t,n){"use strict";var r=n(5005),o=n(3070),i=n(5112),a=n(9781),A=i("species");e.exports=function(e){var t=r(e),n=o.f;a&&t&&!t[A]&&n(t,A,{configurable:!0,get:function(){return this}})}},8003:function(e,t,n){var r=n(3070).f,o=n(2597),i=n(5112)("toStringTag");e.exports=function(e,t,n){e&&!n&&(e=e.prototype),e&&!o(e,i)&&r(e,i,{configurable:!0,value:t})}},6200:function(e,t,n){var r=n(2309),o=n(9711),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},5465:function(e,t,n){var r=n(7854),o=n(3505),i="__core-js_shared__",a=r[i]||o(i,{});e.exports=a},2309:function(e,t,n){var r=n(1913),o=n(5465);(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.21.0",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.21.0/LICENSE",source:"https://github.com/zloirock/core-js"})},6707:function(e,t,n){var r=n(9670),o=n(9483),i=n(5112)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||null==(n=r(a)[i])?t:o(n)}},3429:function(e,t,n){var r=n(7293);e.exports=function(e){return r((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},8710:function(e,t,n){var r=n(1702),o=n(9303),i=n(1340),a=n(4488),A=r("".charAt),s=r("".charCodeAt),c=r("".slice),u=function(e){return function(t,n){var r,u,l=i(a(t)),f=o(n),p=l.length;return f<0||f>=p?e?"":void 0:(r=s(l,f))<55296||r>56319||f+1===p||(u=s(l,f+1))<56320||u>57343?e?A(l,f):r:e?c(l,f,f+2):u-56320+(r-55296<<10)+65536}};e.exports={codeAt:u(!1),charAt:u(!0)}},7061:function(e,t,n){var r=n(8113);e.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},6650:function(e,t,n){var r=n(1702),o=n(7466),i=n(1340),a=n(8415),A=n(4488),s=r(a),c=r("".slice),u=Math.ceil,l=function(e){return function(t,n,r){var a,l,f=i(A(t)),p=o(n),d=f.length,g=void 0===r?" ":i(r);return p<=d||""==g?f:((l=s(g,u((a=p-d)/g.length))).length>a&&(l=c(l,0,a)),e?f+l:l+f)}};e.exports={start:l(!1),end:l(!0)}},3197:function(e,t,n){"use strict";var r=n(7854),o=n(1702),i=2147483647,a=/[^\0-\u007E]/,A=/[.\u3002\uFF0E\uFF61]/g,s="Overflow: input needs wider integers to process",c=r.RangeError,u=o(A.exec),l=Math.floor,f=String.fromCharCode,p=o("".charCodeAt),d=o([].join),g=o([].push),h=o("".replace),v=o("".split),m=o("".toLowerCase),C=function(e){return e+22+75*(e<26)},y=function(e,t,n){var r=0;for(e=n?l(e/700):e>>1,e+=l(e/t);e>455;)e=l(e/35),r+=36;return l(r+36*e/(e+38))},b=function(e){var t=[];e=function(e){for(var t=[],n=0,r=e.length;n<r;){var o=p(e,n++);if(o>=55296&&o<=56319&&n<r){var i=p(e,n++);56320==(64512&i)?g(t,((1023&o)<<10)+(1023&i)+65536):(g(t,o),n--)}else g(t,o)}return t}(e);var n,r,o=e.length,a=128,A=0,u=72;for(n=0;n<e.length;n++)(r=e[n])<128&&g(t,f(r));var h=t.length,v=h;for(h&&g(t,"-");v<o;){var m=i;for(n=0;n<e.length;n++)(r=e[n])>=a&&r<m&&(m=r);var b=v+1;if(m-a>l((i-A)/b))throw c(s);for(A+=(m-a)*b,a=m,n=0;n<e.length;n++){if((r=e[n])<a&&++A>i)throw c(s);if(r==a){for(var w=A,E=36;;){var B=E<=u?1:E>=u+26?26:E-u;if(w<B)break;var x=w-B,k=36-B;g(t,f(C(B+x%k))),w=l(x/k),E+=36}g(t,f(C(w))),u=y(A,b,v==h),A=0,v++}}A++,a++}return d(t,"")};e.exports=function(e){var t,n,r=[],o=v(h(m(e),A,"."),".");for(t=0;t<o.length;t++)n=o[t],g(r,u(a,n)?"xn--"+b(n):n);return d(r,".")}},8415:function(e,t,n){"use strict";var r=n(7854),o=n(9303),i=n(1340),a=n(4488),A=r.RangeError;e.exports=function(e){var t=i(a(this)),n="",r=o(e);if(r<0||r==1/0)throw A("Wrong number of repetitions");for(;r>0;(r>>>=1)&&(t+=t))1&r&&(n+=t);return n}},6091:function(e,t,n){var r=n(6530).PROPER,o=n(7293),i=n(1361);e.exports=function(e){return o((function(){return!!i[e]()||"​…᠎"!=="​…᠎"[e]()||r&&i[e].name!==e}))}},3111:function(e,t,n){var r=n(1702),o=n(4488),i=n(1340),a=n(1361),A=r("".replace),s="["+a+"]",c=RegExp("^"+s+s+"*"),u=RegExp(s+s+"*$"),l=function(e){return function(t){var n=i(o(t));return 1&e&&(n=A(n,c,"")),2&e&&(n=A(n,u,"")),n}};e.exports={start:l(1),end:l(2),trim:l(3)}},261:function(e,t,n){var r,o,i,a,A=n(7854),s=n(2104),c=n(9974),u=n(614),l=n(2597),f=n(7293),p=n(490),d=n(206),g=n(317),h=n(8053),v=n(8334),m=n(5268),C=A.setImmediate,y=A.clearImmediate,b=A.process,w=A.Dispatch,E=A.Function,B=A.MessageChannel,x=A.String,k=0,I={};try{r=A.location}catch(e){}var S=function(e){if(l(I,e)){var t=I[e];delete I[e],t()}},T=function(e){return function(){S(e)}},L=function(e){S(e.data)},R=function(e){A.postMessage(x(e),r.protocol+"//"+r.host)};C&&y||(C=function(e){h(arguments.length,1);var t=u(e)?e:E(e),n=d(arguments,1);return I[++k]=function(){s(t,void 0,n)},o(k),k},y=function(e){delete I[e]},m?o=function(e){b.nextTick(T(e))}:w&&w.now?o=function(e){w.now(T(e))}:B&&!v?(a=(i=new B).port2,i.port1.onmessage=L,o=c(a.postMessage,a)):A.addEventListener&&u(A.postMessage)&&!A.importScripts&&r&&"file:"!==r.protocol&&!f(R)?(o=R,A.addEventListener("message",L,!1)):o="onreadystatechange"in g("script")?function(e){p.appendChild(g("script")).onreadystatechange=function(){p.removeChild(this),S(e)}}:function(e){setTimeout(T(e),0)}),e.exports={set:C,clear:y}},863:function(e,t,n){var r=n(1702);e.exports=r(1..valueOf)},1400:function(e,t,n){var r=n(9303),o=Math.max,i=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):i(n,t)}},7067:function(e,t,n){var r=n(7854),o=n(9303),i=n(7466),a=r.RangeError;e.exports=function(e){if(void 0===e)return 0;var t=o(e),n=i(t);if(t!==n)throw a("Wrong length or index");return n}},5656:function(e,t,n){var r=n(8361),o=n(4488);e.exports=function(e){return r(o(e))}},9303:function(e){var t=Math.ceil,n=Math.floor;e.exports=function(e){var r=+e;return r!=r||0===r?0:(r>0?n:t)(r)}},7466:function(e,t,n){var r=n(9303),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},7908:function(e,t,n){var r=n(7854),o=n(4488),i=r.Object;e.exports=function(e){return i(o(e))}},4590:function(e,t,n){var r=n(7854),o=n(3002),i=r.RangeError;e.exports=function(e,t){var n=o(e);if(n%t)throw i("Wrong offset");return n}},3002:function(e,t,n){var r=n(7854),o=n(9303),i=r.RangeError;e.exports=function(e){var t=o(e);if(t<0)throw i("The argument can't be less than 0");return t}},7593:function(e,t,n){var r=n(7854),o=n(6916),i=n(111),a=n(2190),A=n(8173),s=n(2140),c=n(5112),u=r.TypeError,l=c("toPrimitive");e.exports=function(e,t){if(!i(e)||a(e))return e;var n,r=A(e,l);if(r){if(void 0===t&&(t="default"),n=o(r,e,t),!i(n)||a(n))return n;throw u("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},4948:function(e,t,n){var r=n(7593),o=n(2190);e.exports=function(e){var t=r(e,"string");return o(t)?t:t+""}},1694:function(e,t,n){var r={};r[n(5112)("toStringTag")]="z",e.exports="[object z]"===String(r)},1340:function(e,t,n){var r=n(7854),o=n(648),i=r.String;e.exports=function(e){if("Symbol"===o(e))throw TypeError("Cannot convert a Symbol value to a string");return i(e)}},4038:function(e,t,n){var r=n(5268);e.exports=function(e){try{if(r)return Function('return require("'+e+'")')()}catch(e){}}},6330:function(e,t,n){var r=n(7854).String;e.exports=function(e){try{return r(e)}catch(e){return"Object"}}},9843:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(6916),a=n(9781),A=n(3832),s=n(260),c=n(3331),u=n(5787),l=n(9114),f=n(8880),p=n(5988),d=n(7466),g=n(7067),h=n(4590),v=n(4948),m=n(2597),C=n(648),y=n(111),b=n(2190),w=n(30),E=n(7976),B=n(7674),x=n(8006).f,k=n(7321),I=n(2092).forEach,S=n(6340),T=n(3070),L=n(1236),R=n(9909),Q=n(9587),O=R.get,M=R.set,D=T.f,F=L.f,P=Math.round,U=o.RangeError,N=c.ArrayBuffer,W=N.prototype,j=c.DataView,Y=s.NATIVE_ARRAY_BUFFER_VIEWS,G=s.TYPED_ARRAY_CONSTRUCTOR,z=s.TYPED_ARRAY_TAG,_=s.TypedArray,V=s.TypedArrayPrototype,H=s.aTypedArrayConstructor,J=s.isTypedArray,Z="BYTES_PER_ELEMENT",K="Wrong length",X=function(e,t){H(e);for(var n=0,r=t.length,o=new e(r);r>n;)o[n]=t[n++];return o},q=function(e,t){D(e,t,{get:function(){return O(this)[t]}})},$=function(e){var t;return E(W,e)||"ArrayBuffer"==(t=C(e))||"SharedArrayBuffer"==t},ee=function(e,t){return J(e)&&!b(t)&&t in e&&p(+t)&&t>=0},te=function(e,t){return t=v(t),ee(e,t)?l(2,e[t]):F(e,t)},ne=function(e,t,n){return t=v(t),!(ee(e,t)&&y(n)&&m(n,"value"))||m(n,"get")||m(n,"set")||n.configurable||m(n,"writable")&&!n.writable||m(n,"enumerable")&&!n.enumerable?D(e,t,n):(e[t]=n.value,e)};a?(Y||(L.f=te,T.f=ne,q(V,"buffer"),q(V,"byteOffset"),q(V,"byteLength"),q(V,"length")),r({target:"Object",stat:!0,forced:!Y},{getOwnPropertyDescriptor:te,defineProperty:ne}),e.exports=function(e,t,n){var a=e.match(/\d+$/)[0]/8,s=e+(n?"Clamped":"")+"Array",c="get"+e,l="set"+e,p=o[s],v=p,m=v&&v.prototype,C={},b=function(e,t){D(e,t,{get:function(){return function(e,t){var n=O(e);return n.view[c](t*a+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,r){var o=O(e);n&&(r=(r=P(r))<0?0:r>255?255:255&r),o.view[l](t*a+o.byteOffset,r,!0)}(this,t,e)},enumerable:!0})};Y?A&&(v=t((function(e,t,n,r){return u(e,m),Q(y(t)?$(t)?void 0!==r?new p(t,h(n,a),r):void 0!==n?new p(t,h(n,a)):new p(t):J(t)?X(v,t):i(k,v,t):new p(g(t)),e,v)})),B&&B(v,_),I(x(p),(function(e){e in v||f(v,e,p[e])})),v.prototype=m):(v=t((function(e,t,n,r){u(e,m);var o,A,s,c=0,l=0;if(y(t)){if(!$(t))return J(t)?X(v,t):i(k,v,t);o=t,l=h(n,a);var f=t.byteLength;if(void 0===r){if(f%a)throw U(K);if((A=f-l)<0)throw U(K)}else if((A=d(r)*a)+l>f)throw U(K);s=A/a}else s=g(t),o=new N(A=s*a);for(M(e,{buffer:o,byteOffset:l,byteLength:A,length:s,view:new j(o)});c<s;)b(e,c++)})),B&&B(v,_),m=v.prototype=w(V)),m.constructor!==v&&f(m,"constructor",v),f(m,G,v),z&&f(m,z,s),C[s]=v,r({global:!0,forced:v!=p,sham:!Y},C),Z in v||f(v,Z,a),Z in m||f(m,Z,a),S(s)}):e.exports=function(){}},3832:function(e,t,n){var r=n(7854),o=n(7293),i=n(7072),a=n(260).NATIVE_ARRAY_BUFFER_VIEWS,A=r.ArrayBuffer,s=r.Int8Array;e.exports=!a||!o((function(){s(1)}))||!o((function(){new s(-1)}))||!i((function(e){new s,new s(null),new s(1.5),new s(e)}),!0)||o((function(){return 1!==new s(new A(2),1,void 0).length}))},3074:function(e,t,n){var r=n(7745),o=n(6304);e.exports=function(e,t){return r(o(e),t)}},7321:function(e,t,n){var r=n(9974),o=n(6916),i=n(9483),a=n(7908),A=n(6244),s=n(8554),c=n(1246),u=n(7659),l=n(260).aTypedArrayConstructor;e.exports=function(e){var t,n,f,p,d,g,h=i(this),v=a(e),m=arguments.length,C=m>1?arguments[1]:void 0,y=void 0!==C,b=c(v);if(b&&!u(b))for(g=(d=s(v,b)).next,v=[];!(p=o(g,d)).done;)v.push(p.value);for(y&&m>2&&(C=r(C,arguments[2])),n=A(v),f=new(l(h))(n),t=0;n>t;t++)f[t]=y?C(v[t],t):v[t];return f}},6304:function(e,t,n){var r=n(260),o=n(6707),i=r.TYPED_ARRAY_CONSTRUCTOR,a=r.aTypedArrayConstructor;e.exports=function(e){return a(o(e,e[i]))}},9711:function(e,t,n){var r=n(1702),o=0,i=Math.random(),a=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++o+i,36)}},3307:function(e,t,n){var r=n(133);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:function(e,t,n){var r=n(9781),o=n(7293);e.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},8053:function(e,t,n){var r=n(7854).TypeError;e.exports=function(e,t){if(e<t)throw r("Not enough arguments");return e}},6061:function(e,t,n){var r=n(5112);t.f=r},5112:function(e,t,n){var r=n(7854),o=n(2309),i=n(2597),a=n(9711),A=n(133),s=n(3307),c=o("wks"),u=r.Symbol,l=u&&u.for,f=s?u:u&&u.withoutSetter||a;e.exports=function(e){if(!i(c,e)||!A&&"string"!=typeof c[e]){var t="Symbol."+e;A&&i(u,e)?c[e]=u[e]:c[e]=s&&l?l(t):f(t)}return c[e]}},1361:function(e){e.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},9191:function(e,t,n){"use strict";var r=n(5005),o=n(2597),i=n(8880),a=n(7976),A=n(7674),s=n(9920),c=n(9587),u=n(6277),l=n(8340),f=n(7741),p=n(2914),d=n(1913);e.exports=function(e,t,n,g){var h=g?2:1,v=e.split("."),m=v[v.length-1],C=r.apply(null,v);if(C){var y=C.prototype;if(!d&&o(y,"cause")&&delete y.cause,!n)return C;var b=r("Error"),w=t((function(e,t){var n=u(g?t:e,void 0),r=g?new C(e):new C;return void 0!==n&&i(r,"message",n),p&&i(r,"stack",f(r.stack,2)),this&&a(y,this)&&c(r,this,w),arguments.length>h&&l(r,arguments[h]),r}));if(w.prototype=y,"Error"!==m&&(A?A(w,b):s(w,b,{name:!0})),s(w,C),!d)try{y.name!==m&&i(y,"name",m),y.constructor=w}catch(e){}return w}}},2120:function(e,t,n){var r=n(2109),o=n(5005),i=n(2104),a=n(7293),A=n(9191),s="AggregateError",c=o(s),u=!a((function(){return 1!==c([1]).errors[0]}))&&a((function(){return 7!==c([1],s,{cause:7}).cause}));r({global:!0,forced:u},{AggregateError:A(s,(function(e){return function(t,n){return i(e,this,arguments)}}),u,!0)})},9170:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(7976),a=n(9518),A=n(7674),s=n(9920),c=n(30),u=n(8880),l=n(9114),f=n(7741),p=n(8340),d=n(408),g=n(6277),h=n(5112),v=n(2914),m=h("toStringTag"),C=o.Error,y=[].push,b=function(e,t){var n,r=arguments.length>2?arguments[2]:void 0,o=i(w,this);A?n=A(new C,o?a(this):w):(n=o?this:c(w),u(n,m,"Error")),void 0!==t&&u(n,"message",g(t)),v&&u(n,"stack",f(n.stack,1)),p(n,r);var s=[];return d(e,y,{that:s}),u(n,"errors",s),n};A?A(b,C):s(b,C,{name:!0});var w=b.prototype=c(C.prototype,{constructor:l(1,b),message:l(1,""),name:l(1,"AggregateError")});r({global:!0},{AggregateError:b})},8264:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(3331),a=n(6340),A=i.ArrayBuffer;r({global:!0,forced:o.ArrayBuffer!==A},{ArrayBuffer:A}),a("ArrayBuffer")},6938:function(e,t,n){var r=n(2109),o=n(260);r({target:"ArrayBuffer",stat:!0,forced:!o.NATIVE_ARRAY_BUFFER_VIEWS},{isView:o.isView})},9575:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(7293),a=n(3331),A=n(9670),s=n(1400),c=n(7466),u=n(6707),l=a.ArrayBuffer,f=a.DataView,p=f.prototype,d=o(l.prototype.slice),g=o(p.getUint8),h=o(p.setUint8);r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:i((function(){return!new l(2).slice(1,void 0).byteLength}))},{slice:function(e,t){if(d&&void 0===t)return d(A(this),e);for(var n=A(this).byteLength,r=s(e,n),o=s(void 0===t?n:t,n),i=new(u(this,l))(c(o-r)),a=new f(this),p=new f(i),v=0;r<o;)h(p,v++,g(a,r++));return i}})},2262:function(e,t,n){"use strict";var r=n(2109),o=n(7908),i=n(6244),a=n(9303),A=n(1223);r({target:"Array",proto:!0},{at:function(e){var t=o(this),n=i(t),r=a(e),A=r>=0?r:n+r;return A<0||A>=n?void 0:t[A]}}),A("at")},2222:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(7293),a=n(3157),A=n(111),s=n(7908),c=n(6244),u=n(6135),l=n(5417),f=n(1194),p=n(5112),d=n(7392),g=p("isConcatSpreadable"),h=9007199254740991,v="Maximum allowed index exceeded",m=o.TypeError,C=d>=51||!i((function(){var e=[];return e[g]=!1,e.concat()[0]!==e})),y=f("concat"),b=function(e){if(!A(e))return!1;var t=e[g];return void 0!==t?!!t:a(e)};r({target:"Array",proto:!0,forced:!C||!y},{concat:function(e){var t,n,r,o,i,a=s(this),A=l(a,0),f=0;for(t=-1,r=arguments.length;t<r;t++)if(b(i=-1===t?a:arguments[t])){if(f+(o=c(i))>h)throw m(v);for(n=0;n<o;n++,f++)n in i&&u(A,f,i[n])}else{if(f>=h)throw m(v);u(A,f++,i)}return A.length=f,A}})},545:function(e,t,n){var r=n(2109),o=n(1048),i=n(1223);r({target:"Array",proto:!0},{copyWithin:o}),i("copyWithin")},6541:function(e,t,n){"use strict";var r=n(2109),o=n(2092).every;r({target:"Array",proto:!0,forced:!n(2133)("every")},{every:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},3290:function(e,t,n){var r=n(2109),o=n(1285),i=n(1223);r({target:"Array",proto:!0},{fill:o}),i("fill")},7327:function(e,t,n){"use strict";var r=n(2109),o=n(2092).filter;r({target:"Array",proto:!0,forced:!n(1194)("filter")},{filter:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},4553:function(e,t,n){"use strict";var r=n(2109),o=n(2092).findIndex,i=n(1223),a="findIndex",A=!0;a in[]&&Array(1).findIndex((function(){A=!1})),r({target:"Array",proto:!0,forced:A},{findIndex:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i(a)},9826:function(e,t,n){"use strict";var r=n(2109),o=n(2092).find,i=n(1223),a="find",A=!0;a in[]&&Array(1).find((function(){A=!1})),r({target:"Array",proto:!0,forced:A},{find:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i(a)},6535:function(e,t,n){"use strict";var r=n(2109),o=n(6790),i=n(9662),a=n(7908),A=n(6244),s=n(5417);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),r=A(n);return i(e),(t=s(n,0)).length=o(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},4944:function(e,t,n){"use strict";var r=n(2109),o=n(6790),i=n(7908),a=n(6244),A=n(9303),s=n(5417);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=i(this),n=a(t),r=s(t,0);return r.length=o(r,t,t,n,0,void 0===e?1:A(e)),r}})},9554:function(e,t,n){"use strict";var r=n(2109),o=n(8533);r({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},1038:function(e,t,n){var r=n(2109),o=n(8457);r({target:"Array",stat:!0,forced:!n(7072)((function(e){Array.from(e)}))},{from:o})},6699:function(e,t,n){"use strict";var r=n(2109),o=n(1318).includes,i=n(1223);r({target:"Array",proto:!0},{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i("includes")},2772:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(1318).indexOf,a=n(2133),A=o([].indexOf),s=!!A&&1/A([1],1,-0)<0,c=a("indexOf");r({target:"Array",proto:!0,forced:s||!c},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return s?A(this,e,t)||0:i(this,e,t)}})},9753:function(e,t,n){n(2109)({target:"Array",stat:!0},{isArray:n(3157)})},6992:function(e,t,n){"use strict";var r=n(5656),o=n(1223),i=n(7497),a=n(9909),A=n(3070).f,s=n(654),c=n(1913),u=n(9781),l="Array Iterator",f=a.set,p=a.getterFor(l);e.exports=s(Array,"Array",(function(e,t){f(this,{type:l,target:r(e),index:0,kind:t})}),(function(){var e=p(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values");var d=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!c&&u&&"values"!==d.name)try{A(d,"name",{value:"values"})}catch(e){}},9600:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(8361),a=n(5656),A=n(2133),s=o([].join),c=i!=Object,u=A("join",",");r({target:"Array",proto:!0,forced:c||!u},{join:function(e){return s(a(this),void 0===e?",":e)}})},4986:function(e,t,n){var r=n(2109),o=n(6583);r({target:"Array",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},1249:function(e,t,n){"use strict";var r=n(2109),o=n(2092).map;r({target:"Array",proto:!0,forced:!n(1194)("map")},{map:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},6572:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(7293),a=n(4411),A=n(6135),s=o.Array;r({target:"Array",stat:!0,forced:i((function(){function e(){}return!(s.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new(a(this)?this:s)(t);t>e;)A(n,e,arguments[e++]);return n.length=t,n}})},6644:function(e,t,n){"use strict";var r=n(2109),o=n(3671).right,i=n(2133),a=n(7392),A=n(5268);r({target:"Array",proto:!0,forced:!i("reduceRight")||!A&&a>79&&a<83},{reduceRight:function(e){return o(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},5827:function(e,t,n){"use strict";var r=n(2109),o=n(3671).left,i=n(2133),a=n(7392),A=n(5268);r({target:"Array",proto:!0,forced:!i("reduce")||!A&&a>79&&a<83},{reduce:function(e){var t=arguments.length;return o(this,e,t,t>1?arguments[1]:void 0)}})},5069:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(3157),a=o([].reverse),A=[1,2];r({target:"Array",proto:!0,forced:String(A)===String(A.reverse())},{reverse:function(){return i(this)&&(this.length=this.length),a(this)}})},7042:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(3157),a=n(4411),A=n(111),s=n(1400),c=n(6244),u=n(5656),l=n(6135),f=n(5112),p=n(1194),d=n(206),g=p("slice"),h=f("species"),v=o.Array,m=Math.max;r({target:"Array",proto:!0,forced:!g},{slice:function(e,t){var n,r,o,f=u(this),p=c(f),g=s(e,p),C=s(void 0===t?p:t,p);if(i(f)&&(n=f.constructor,(a(n)&&(n===v||i(n.prototype))||A(n)&&null===(n=n[h]))&&(n=void 0),n===v||void 0===n))return d(f,g,C);for(r=new(void 0===n?v:n)(m(C-g,0)),o=0;g<C;g++,o++)g in f&&l(r,o,f[g]);return r.length=o,r}})},5212:function(e,t,n){"use strict";var r=n(2109),o=n(2092).some;r({target:"Array",proto:!0,forced:!n(2133)("some")},{some:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},2707:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(9662),a=n(7908),A=n(6244),s=n(1340),c=n(7293),u=n(4362),l=n(2133),f=n(8886),p=n(256),d=n(7392),g=n(8008),h=[],v=o(h.sort),m=o(h.push),C=c((function(){h.sort(void 0)})),y=c((function(){h.sort(null)})),b=l("sort"),w=!c((function(){if(d)return d<70;if(!(f&&f>3)){if(p)return!0;if(g)return g<603;var e,t,n,r,o="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)h.push({k:t+r,v:n})}for(h.sort((function(e,t){return t.v-e.v})),r=0;r<h.length;r++)t=h[r].k.charAt(0),o.charAt(o.length-1)!==t&&(o+=t);return"DGBEFHACIJK"!==o}}));r({target:"Array",proto:!0,forced:C||!y||!b||!w},{sort:function(e){void 0!==e&&i(e);var t=a(this);if(w)return void 0===e?v(t):v(t,e);var n,r,o=[],c=A(t);for(r=0;r<c;r++)r in t&&m(o,t[r]);for(u(o,function(e){return function(t,n){return void 0===n?-1:void 0===t?1:void 0!==e?+e(t,n)||0:s(t)>s(n)?1:-1}}(e)),n=o.length,r=0;r<n;)t[r]=o[r++];for(;r<c;)delete t[r++];return t}})},8706:function(e,t,n){n(6340)("Array")},561:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(1400),a=n(9303),A=n(6244),s=n(7908),c=n(5417),u=n(6135),l=n(1194)("splice"),f=o.TypeError,p=Math.max,d=Math.min,g=9007199254740991,h="Maximum allowed length exceeded";r({target:"Array",proto:!0,forced:!l},{splice:function(e,t){var n,r,o,l,v,m,C=s(this),y=A(C),b=i(e,y),w=arguments.length;if(0===w?n=r=0:1===w?(n=0,r=y-b):(n=w-2,r=d(p(a(t),0),y-b)),y+n-r>g)throw f(h);for(o=c(C,r),l=0;l<r;l++)(v=b+l)in C&&u(o,l,C[v]);if(o.length=r,n<r){for(l=b;l<y-r;l++)m=l+n,(v=l+r)in C?C[m]=C[v]:delete C[m];for(l=y;l>y-r+n;l--)delete C[l-1]}else if(n>r)for(l=y-r;l>b;l--)m=l+n-1,(v=l+r-1)in C?C[m]=C[v]:delete C[m];for(l=0;l<n;l++)C[l+b]=arguments[l+2];return C.length=y-r+n,o}})},9244:function(e,t,n){n(1223)("flatMap")},3792:function(e,t,n){n(1223)("flat")},6716:function(e,t,n){var r=n(2109),o=n(3331);r({global:!0,forced:!n(4019)},{DataView:o.DataView})},3016:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(7293)((function(){return 120!==new Date(16e11).getYear()})),a=o(Date.prototype.getFullYear);r({target:"Date",proto:!0,forced:i},{getYear:function(){return a(this)-1900}})},3843:function(e,t,n){var r=n(2109),o=n(7854),i=n(1702),a=o.Date,A=i(a.prototype.getTime);r({target:"Date",stat:!0},{now:function(){return A(new a)}})},1801:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(9303),a=Date.prototype,A=o(a.getTime),s=o(a.setFullYear);r({target:"Date",proto:!0},{setYear:function(e){A(this);var t=i(e);return s(this,0<=t&&t<=99?t+1900:t)}})},9550:function(e,t,n){n(2109)({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},8733:function(e,t,n){var r=n(2109),o=n(5573);r({target:"Date",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},5735:function(e,t,n){"use strict";var r=n(2109),o=n(7293),i=n(7908),a=n(7593);r({target:"Date",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=i(this),n=a(t,"number");return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},6078:function(e,t,n){var r=n(2597),o=n(1320),i=n(8709),a=n(5112)("toPrimitive"),A=Date.prototype;r(A,a)||o(A,a,i)},3710:function(e,t,n){var r=n(1702),o=n(1320),i=Date.prototype,a="Invalid Date",A=r(i.toString),s=r(i.getTime);String(new Date(NaN))!=a&&o(i,"toString",(function(){var e=s(this);return e==e?A(this):a}))},1703:function(e,t,n){var r=n(2109),o=n(7854),i=n(2104),a=n(9191),A=o.WebAssembly,s=7!==Error("e",{cause:7}).cause,c=function(e,t){var n={};n[e]=a(e,t,s),r({global:!0,forced:s},n)},u=function(e,t){if(A&&A[e]){var n={};n[e]=a("WebAssembly."+e,t,s),r({target:"WebAssembly",stat:!0,forced:s},n)}};c("Error",(function(e){return function(t){return i(e,this,arguments)}})),c("EvalError",(function(e){return function(t){return i(e,this,arguments)}})),c("RangeError",(function(e){return function(t){return i(e,this,arguments)}})),c("ReferenceError",(function(e){return function(t){return i(e,this,arguments)}})),c("SyntaxError",(function(e){return function(t){return i(e,this,arguments)}})),c("TypeError",(function(e){return function(t){return i(e,this,arguments)}})),c("URIError",(function(e){return function(t){return i(e,this,arguments)}})),u("CompileError",(function(e){return function(t){return i(e,this,arguments)}})),u("LinkError",(function(e){return function(t){return i(e,this,arguments)}})),u("RuntimeError",(function(e){return function(t){return i(e,this,arguments)}}))},6647:function(e,t,n){var r=n(1320),o=n(7762),i=Error.prototype;i.toString!==o&&r(i,"toString",o)},2130:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(1340),a=o("".charAt),A=o("".charCodeAt),s=o(/./.exec),c=o(1..toString),u=o("".toUpperCase),l=/[\w*+\-./@]/,f=function(e,t){for(var n=c(e,16);n.length<t;)n="0"+n;return n};r({global:!0},{escape:function(e){for(var t,n,r=i(e),o="",c=r.length,p=0;p<c;)t=a(r,p++),s(l,t)?o+=t:o+=(n=A(t,0))<256?"%"+f(n,2):"%u"+u(f(n,4));return o}})},4812:function(e,t,n){var r=n(2109),o=n(7065);r({target:"Function",proto:!0,forced:Function.bind!==o},{bind:o})},4855:function(e,t,n){"use strict";var r=n(614),o=n(111),i=n(3070),a=n(9518),A=n(5112)("hasInstance"),s=Function.prototype;A in s||i.f(s,A,{value:function(e){if(!r(this)||!o(e))return!1;var t=this.prototype;if(!o(t))return e instanceof this;for(;e=a(e);)if(t===e)return!0;return!1}})},8309:function(e,t,n){var r=n(9781),o=n(6530).EXISTS,i=n(1702),a=n(3070).f,A=Function.prototype,s=i(A.toString),c=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,u=i(c.exec);r&&!o&&a(A,"name",{configurable:!0,get:function(){try{return u(c,s(this))[1]}catch(e){return""}}})},5837:function(e,t,n){n(2109)({global:!0},{globalThis:n(7854)})},8862:function(e,t,n){var r=n(2109),o=n(7854),i=n(5005),a=n(2104),A=n(1702),s=n(7293),c=o.Array,u=i("JSON","stringify"),l=A(/./.exec),f=A("".charAt),p=A("".charCodeAt),d=A("".replace),g=A(1..toString),h=/[\uD800-\uDFFF]/g,v=/^[\uD800-\uDBFF]$/,m=/^[\uDC00-\uDFFF]$/,C=function(e,t,n){var r=f(n,t-1),o=f(n,t+1);return l(v,e)&&!l(m,o)||l(m,e)&&!l(v,r)?"\\u"+g(p(e,0),16):e},y=s((function(){return'"\\udf06\\ud834"'!==u("\udf06\ud834")||'"\\udead"'!==u("\udead")}));u&&r({target:"JSON",stat:!0,forced:y},{stringify:function(e,t,n){for(var r=0,o=arguments.length,i=c(o);r<o;r++)i[r]=arguments[r];var A=a(u,null,i);return"string"==typeof A?d(A,h,C):A}})},3706:function(e,t,n){var r=n(7854);n(8003)(r.JSON,"JSON",!0)},1532:function(e,t,n){"use strict";n(7710)("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n(5631))},9752:function(e,t,n){var r=n(2109),o=n(6513),i=Math.acosh,a=Math.log,A=Math.sqrt,s=Math.LN2;r({target:"Math",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?a(e)+s:o(e-1+A(e-1)*A(e+1))}})},2376:function(e,t,n){var r=n(2109),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:"Math",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function e(t){return isFinite(t=+t)&&0!=t?t<0?-e(-t):i(t+a(t*t+1)):t}})},3181:function(e,t,n){var r=n(2109),o=Math.atanh,i=Math.log;r({target:"Math",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:i((1+e)/(1-e))/2}})},3484:function(e,t,n){var r=n(2109),o=n(4310),i=Math.abs,a=Math.pow;r({target:"Math",stat:!0},{cbrt:function(e){return o(e=+e)*a(i(e),1/3)}})},2388:function(e,t,n){var r=n(2109),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-o(i(e+.5)*a):32}})},8621:function(e,t,n){var r=n(2109),o=n(6736),i=Math.cosh,a=Math.abs,A=Math.E;r({target:"Math",stat:!0,forced:!i||i(710)===1/0},{cosh:function(e){var t=o(a(e)-1)+1;return(t+1/(t*A*A))*(A/2)}})},403:function(e,t,n){var r=n(2109),o=n(6736);r({target:"Math",stat:!0,forced:o!=Math.expm1},{expm1:o})},4755:function(e,t,n){n(2109)({target:"Math",stat:!0},{fround:n(6130)})},5438:function(e,t,n){var r=n(2109),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:"Math",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(e,t){for(var n,r,o=0,A=0,s=arguments.length,c=0;A<s;)c<(n=i(arguments[A++]))?(o=o*(r=c/n)*r+1,c=n):o+=n>0?(r=n/c)*r:n;return c===1/0?1/0:c*a(o)}})},332:function(e,t,n){var r=n(2109),o=n(7293),i=Math.imul;r({target:"Math",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(e,t){var n=65535,r=+e,o=+t,i=n&r,a=n&o;return 0|i*a+((n&r>>>16)*a+i*(n&o>>>16)<<16>>>0)}})},658:function(e,t,n){n(2109)({target:"Math",stat:!0},{log10:n(202)})},197:function(e,t,n){n(2109)({target:"Math",stat:!0},{log1p:n(6513)})},4914:function(e,t,n){var r=n(2109),o=Math.log,i=Math.LN2;r({target:"Math",stat:!0},{log2:function(e){return o(e)/i}})},2420:function(e,t,n){n(2109)({target:"Math",stat:!0},{sign:n(4310)})},160:function(e,t,n){var r=n(2109),o=n(7293),i=n(6736),a=Math.abs,A=Math.exp,s=Math.E;r({target:"Math",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return a(e=+e)<1?(i(e)-i(-e))/2:(A(e-1)-A(-e-1))*(s/2)}})},970:function(e,t,n){var r=n(2109),o=n(6736),i=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=o(e=+e),n=o(-e);return t==1/0?1:n==1/0?-1:(t-n)/(i(e)+i(-e))}})},2703:function(e,t,n){n(8003)(Math,"Math",!0)},3689:function(e,t,n){var r=n(2109),o=Math.ceil,i=Math.floor;r({target:"Math",stat:!0},{trunc:function(e){return(e>0?i:o)(e)}})},9653:function(e,t,n){"use strict";var r=n(9781),o=n(7854),i=n(1702),a=n(4705),A=n(1320),s=n(2597),c=n(9587),u=n(7976),l=n(2190),f=n(7593),p=n(7293),d=n(8006).f,g=n(1236).f,h=n(3070).f,v=n(863),m=n(3111).trim,C="Number",y=o.Number,b=y.prototype,w=o.TypeError,E=i("".slice),B=i("".charCodeAt),x=function(e){var t=f(e,"number");return"bigint"==typeof t?t:k(t)},k=function(e){var t,n,r,o,i,a,A,s,c=f(e,"number");if(l(c))throw w("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=m(c),43===(t=B(c,0))||45===t){if(88===(n=B(c,2))||120===n)return NaN}else if(48===t){switch(B(c,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+c}for(a=(i=E(c,2)).length,A=0;A<a;A++)if((s=B(i,A))<48||s>o)return NaN;return parseInt(i,r)}return+c};if(a(C,!y(" 0o1")||!y("0b1")||y("+0x1"))){for(var I,S=function(e){var t=arguments.length<1?0:y(x(e)),n=this;return u(b,n)&&p((function(){v(n)}))?c(Object(t),n,S):t},T=r?d(y):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),L=0;T.length>L;L++)s(y,I=T[L])&&!s(S,I)&&h(S,I,g(y,I));S.prototype=b,b.constructor=S,A(o,C,S)}},3299:function(e,t,n){n(2109)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},5192:function(e,t,n){n(2109)({target:"Number",stat:!0},{isFinite:n(7023)})},3161:function(e,t,n){n(2109)({target:"Number",stat:!0},{isInteger:n(5988)})},4048:function(e,t,n){n(2109)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},8285:function(e,t,n){var r=n(2109),o=n(5988),i=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return o(e)&&i(e)<=9007199254740991}})},4363:function(e,t,n){n(2109)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},5994:function(e,t,n){n(2109)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},1874:function(e,t,n){var r=n(2109),o=n(2814);r({target:"Number",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},9494:function(e,t,n){var r=n(2109),o=n(3009);r({target:"Number",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},1354:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(1702),a=n(9303),A=n(863),s=n(8415),c=n(202),u=n(7293),l=o.RangeError,f=o.String,p=o.isFinite,d=Math.abs,g=Math.floor,h=Math.pow,v=Math.round,m=i(1..toExponential),C=i(s),y=i("".slice),b="-6.9000e-11"===m(-69e-12,4)&&"1.25e+0"===m(1.255,2)&&"1.235e+4"===m(12345,3)&&"3e+1"===m(25,0),w=u((function(){m(1,1/0)}))&&u((function(){m(1,-1/0)})),E=!u((function(){m(1/0,1/0)}))&&!u((function(){m(NaN,1/0)}));r({target:"Number",proto:!0,forced:!b||!w||!E},{toExponential:function(e){var t=A(this);if(void 0===e)return m(t);var n=a(e);if(!p(t))return f(t);if(n<0||n>20)throw l("Incorrect fraction digits");if(b)return m(t,n);var r="",o="",i=0,s="",u="";if(t<0&&(r="-",t=-t),0===t)i=0,o=C("0",n+1);else{var w=c(t);i=g(w);var E=0,B=h(10,i-n);2*t>=(2*(E=v(t/B))+1)*B&&(E+=1),E>=h(10,n+1)&&(E/=10,i+=1),o=f(E)}return 0!==n&&(o=y(o,0,1)+"."+y(o,1)),0===i?(s="+",u="0"):(s=i>0?"+":"-",u=f(d(i))),r+(o+"e")+s+u}})},6977:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(1702),a=n(9303),A=n(863),s=n(8415),c=n(7293),u=o.RangeError,l=o.String,f=Math.floor,p=i(s),d=i("".slice),g=i(1..toFixed),h=function(e,t,n){return 0===t?n:t%2==1?h(e,t-1,n*e):h(e*e,t/2,n)},v=function(e,t,n){for(var r=-1,o=n;++r<6;)o+=t*e[r],e[r]=o%1e7,o=f(o/1e7)},m=function(e,t){for(var n=6,r=0;--n>=0;)r+=e[n],e[n]=f(r/t),r=r%t*1e7},C=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var r=l(e[t]);n=""===n?r:n+p("0",7-r.length)+r}return n};r({target:"Number",proto:!0,forced:c((function(){return"0.000"!==g(8e-5,3)||"1"!==g(.9,0)||"1.25"!==g(1.255,2)||"1000000000000000128"!==g(0xde0b6b3a7640080,0)}))||!c((function(){g({})}))},{toFixed:function(e){var t,n,r,o,i=A(this),s=a(e),c=[0,0,0,0,0,0],f="",g="0";if(s<0||s>20)throw u("Incorrect fraction digits");if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return l(i);if(i<0&&(f="-",i=-i),i>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(i*h(2,69,1))-69)<0?i*h(2,-t,1):i/h(2,t,1),n*=4503599627370496,(t=52-t)>0){for(v(c,0,n),r=s;r>=7;)v(c,1e7,0),r-=7;for(v(c,h(10,r,1),0),r=t-1;r>=23;)m(c,1<<23),r-=23;m(c,1<<r),v(c,1,1),m(c,2),g=C(c)}else v(c,0,n),v(c,1<<-t,0),g=C(c)+p("0",s);return s>0?f+((o=g.length)<=s?"0."+p("0",s-o)+g:d(g,0,o-s)+"."+d(g,o-s)):f+g}})},5147:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(7293),a=n(863),A=o(1..toPrecision);r({target:"Number",proto:!0,forced:i((function(){return"1"!==A(1,void 0)}))||!i((function(){A({})}))},{toPrecision:function(e){return void 0===e?A(a(this)):A(a(this),e)}})},9601:function(e,t,n){var r=n(2109),o=n(1574);r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},8011:function(e,t,n){n(2109)({target:"Object",stat:!0,sham:!n(9781)},{create:n(30)})},9595:function(e,t,n){"use strict";var r=n(2109),o=n(9781),i=n(9026),a=n(9662),A=n(7908),s=n(3070);o&&r({target:"Object",proto:!0,forced:i},{__defineGetter__:function(e,t){s.f(A(this),e,{get:a(t),enumerable:!0,configurable:!0})}})},3321:function(e,t,n){var r=n(2109),o=n(9781),i=n(6048).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==i,sham:!o},{defineProperties:i})},9070:function(e,t,n){var r=n(2109),o=n(9781),i=n(3070).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==i,sham:!o},{defineProperty:i})},5500:function(e,t,n){"use strict";var r=n(2109),o=n(9781),i=n(9026),a=n(9662),A=n(7908),s=n(3070);o&&r({target:"Object",proto:!0,forced:i},{__defineSetter__:function(e,t){s.f(A(this),e,{set:a(t),enumerable:!0,configurable:!0})}})},9720:function(e,t,n){var r=n(2109),o=n(4699).entries;r({target:"Object",stat:!0},{entries:function(e){return o(e)}})},3371:function(e,t,n){var r=n(2109),o=n(6677),i=n(7293),a=n(111),A=n(2423).onFreeze,s=Object.freeze;r({target:"Object",stat:!0,forced:i((function(){s(1)})),sham:!o},{freeze:function(e){return s&&a(e)?s(A(e)):e}})},8559:function(e,t,n){var r=n(2109),o=n(408),i=n(6135);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return o(e,(function(e,n){i(t,e,n)}),{AS_ENTRIES:!0}),t}})},5003:function(e,t,n){var r=n(2109),o=n(7293),i=n(5656),a=n(1236).f,A=n(9781),s=o((function(){a(1)}));r({target:"Object",stat:!0,forced:!A||s,sham:!A},{getOwnPropertyDescriptor:function(e,t){return a(i(e),t)}})},9337:function(e,t,n){var r=n(2109),o=n(9781),i=n(3887),a=n(5656),A=n(1236),s=n(6135);r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(e){for(var t,n,r=a(e),o=A.f,c=i(r),u={},l=0;c.length>l;)void 0!==(n=o(r,t=c[l++]))&&s(u,t,n);return u}})},6210:function(e,t,n){var r=n(2109),o=n(7293),i=n(1156).f;r({target:"Object",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},489:function(e,t,n){var r=n(2109),o=n(7293),i=n(7908),a=n(9518),A=n(8544);r({target:"Object",stat:!0,forced:o((function(){a(1)})),sham:!A},{getPrototypeOf:function(e){return a(i(e))}})},6314:function(e,t,n){n(2109)({target:"Object",stat:!0},{hasOwn:n(2597)})},1825:function(e,t,n){var r=n(2109),o=n(2050);r({target:"Object",stat:!0,forced:Object.isExtensible!==o},{isExtensible:o})},8410:function(e,t,n){var r=n(2109),o=n(7293),i=n(111),a=n(4326),A=n(7556),s=Object.isFrozen;r({target:"Object",stat:!0,forced:o((function(){s(1)}))||A},{isFrozen:function(e){return!i(e)||!(!A||"ArrayBuffer"!=a(e))||!!s&&s(e)}})},2200:function(e,t,n){var r=n(2109),o=n(7293),i=n(111),a=n(4326),A=n(7556),s=Object.isSealed;r({target:"Object",stat:!0,forced:o((function(){s(1)}))||A},{isSealed:function(e){return!i(e)||!(!A||"ArrayBuffer"!=a(e))||!!s&&s(e)}})},3304:function(e,t,n){n(2109)({target:"Object",stat:!0},{is:n(1150)})},7941:function(e,t,n){var r=n(2109),o=n(7908),i=n(1956);r({target:"Object",stat:!0,forced:n(7293)((function(){i(1)}))},{keys:function(e){return i(o(e))}})},4869:function(e,t,n){"use strict";var r=n(2109),o=n(9781),i=n(9026),a=n(7908),A=n(4948),s=n(9518),c=n(1236).f;o&&r({target:"Object",proto:!0,forced:i},{__lookupGetter__:function(e){var t,n=a(this),r=A(e);do{if(t=c(n,r))return t.get}while(n=s(n))}})},3952:function(e,t,n){"use strict";var r=n(2109),o=n(9781),i=n(9026),a=n(7908),A=n(4948),s=n(9518),c=n(1236).f;o&&r({target:"Object",proto:!0,forced:i},{__lookupSetter__:function(e){var t,n=a(this),r=A(e);do{if(t=c(n,r))return t.set}while(n=s(n))}})},7227:function(e,t,n){var r=n(2109),o=n(111),i=n(2423).onFreeze,a=n(6677),A=n(7293),s=Object.preventExtensions;r({target:"Object",stat:!0,forced:A((function(){s(1)})),sham:!a},{preventExtensions:function(e){return s&&o(e)?s(i(e)):e}})},514:function(e,t,n){var r=n(2109),o=n(111),i=n(2423).onFreeze,a=n(6677),A=n(7293),s=Object.seal;r({target:"Object",stat:!0,forced:A((function(){s(1)})),sham:!a},{seal:function(e){return s&&o(e)?s(i(e)):e}})},8304:function(e,t,n){n(2109)({target:"Object",stat:!0},{setPrototypeOf:n(7674)})},1539:function(e,t,n){var r=n(1694),o=n(1320),i=n(288);r||o(Object.prototype,"toString",i,{unsafe:!0})},6833:function(e,t,n){var r=n(2109),o=n(4699).values;r({target:"Object",stat:!0},{values:function(e){return o(e)}})},4678:function(e,t,n){var r=n(2109),o=n(2814);r({global:!0,forced:parseFloat!=o},{parseFloat:o})},1058:function(e,t,n){var r=n(2109),o=n(3009);r({global:!0,forced:parseInt!=o},{parseInt:o})},7922:function(e,t,n){"use strict";var r=n(2109),o=n(6916),i=n(9662),a=n(8523),A=n(2534),s=n(408);r({target:"Promise",stat:!0},{allSettled:function(e){var t=this,n=a.f(t),r=n.resolve,c=n.reject,u=A((function(){var n=i(t.resolve),a=[],A=0,c=1;s(e,(function(e){var i=A++,s=!1;c++,o(n,t,e).then((function(e){s||(s=!0,a[i]={status:"fulfilled",value:e},--c||r(a))}),(function(e){s||(s=!0,a[i]={status:"rejected",reason:e},--c||r(a))}))})),--c||r(a)}));return u.error&&c(u.value),n.promise}})},4668:function(e,t,n){"use strict";var r=n(2109),o=n(9662),i=n(5005),a=n(6916),A=n(8523),s=n(2534),c=n(408),u="No one promise resolved";r({target:"Promise",stat:!0},{any:function(e){var t=this,n=i("AggregateError"),r=A.f(t),l=r.resolve,f=r.reject,p=s((function(){var r=o(t.resolve),i=[],A=0,s=1,p=!1;c(e,(function(e){var o=A++,c=!1;s++,a(r,t,e).then((function(e){c||p||(p=!0,l(e))}),(function(e){c||p||(c=!0,i[o]=e,--s||f(new n(i,u)))}))})),--s||f(new n(i,u))}));return p.error&&f(p.value),r.promise}})},7727:function(e,t,n){"use strict";var r=n(2109),o=n(1913),i=n(3366),a=n(7293),A=n(5005),s=n(614),c=n(6707),u=n(9478),l=n(1320);if(r({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){i.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=c(this,A("Promise")),n=s(e);return this.then(n?function(n){return u(t,e()).then((function(){return n}))}:e,n?function(n){return u(t,e()).then((function(){throw n}))}:e)}}),!o&&s(i)){var f=A("Promise").prototype.finally;i.prototype.finally!==f&&l(i.prototype,"finally",f,{unsafe:!0})}},8674:function(e,t,n){"use strict";var r,o,i,a,A=n(2109),s=n(1913),c=n(7854),u=n(5005),l=n(6916),f=n(3366),p=n(1320),d=n(2248),g=n(7674),h=n(8003),v=n(6340),m=n(9662),C=n(614),y=n(111),b=n(5787),w=n(2788),E=n(408),B=n(7072),x=n(6707),k=n(261).set,I=n(5948),S=n(9478),T=n(842),L=n(8523),R=n(2534),Q=n(8572),O=n(9909),M=n(4705),D=n(5112),F=n(7871),P=n(5268),U=n(7392),N=D("species"),W="Promise",j=O.getterFor(W),Y=O.set,G=O.getterFor(W),z=f&&f.prototype,_=f,V=z,H=c.TypeError,J=c.document,Z=c.process,K=L.f,X=K,q=!!(J&&J.createEvent&&c.dispatchEvent),$=C(c.PromiseRejectionEvent),ee="unhandledrejection",te=!1,ne=M(W,(function(){var e=w(_),t=e!==String(_);if(!t&&66===U)return!0;if(s&&!V.finally)return!0;if(U>=51&&/native code/.test(e))return!1;var n=new _((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};return(n.constructor={})[N]=r,!(te=n.then((function(){}))instanceof r)||!t&&F&&!$})),re=ne||!B((function(e){_.all(e).catch((function(){}))})),oe=function(e){var t;return!(!y(e)||!C(t=e.then))&&t},ie=function(e,t){var n,r,o,i=t.value,a=1==t.state,A=a?e.ok:e.fail,s=e.resolve,c=e.reject,u=e.domain;try{A?(a||(2===t.rejection&&ue(t),t.rejection=1),!0===A?n=i:(u&&u.enter(),n=A(i),u&&(u.exit(),o=!0)),n===e.promise?c(H("Promise-chain cycle")):(r=oe(n))?l(r,n,s,c):s(n)):c(i)}catch(e){u&&!o&&u.exit(),c(e)}},ae=function(e,t){e.notified||(e.notified=!0,I((function(){for(var n,r=e.reactions;n=r.get();)ie(n,e);e.notified=!1,t&&!e.rejection&&se(e)})))},Ae=function(e,t,n){var r,o;q?((r=J.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),c.dispatchEvent(r)):r={promise:t,reason:n},!$&&(o=c["on"+e])?o(r):e===ee&&T("Unhandled promise rejection",n)},se=function(e){l(k,c,(function(){var t,n=e.facade,r=e.value;if(ce(e)&&(t=R((function(){P?Z.emit("unhandledRejection",r,n):Ae(ee,n,r)})),e.rejection=P||ce(e)?2:1,t.error))throw t.value}))},ce=function(e){return 1!==e.rejection&&!e.parent},ue=function(e){l(k,c,(function(){var t=e.facade;P?Z.emit("rejectionHandled",t):Ae("rejectionhandled",t,e.value)}))},le=function(e,t,n){return function(r){e(t,r,n)}},fe=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,ae(e,!0))},pe=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw H("Promise can't be resolved itself");var r=oe(t);r?I((function(){var n={done:!1};try{l(r,t,le(pe,n,e),le(fe,n,e))}catch(t){fe(n,t,e)}})):(e.value=t,e.state=1,ae(e,!1))}catch(t){fe({done:!1},t,e)}}};if(ne&&(V=(_=function(e){b(this,V),m(e),l(r,this);var t=j(this);try{e(le(pe,t),le(fe,t))}catch(e){fe(t,e)}}).prototype,(r=function(e){Y(this,{type:W,done:!1,notified:!1,parent:!1,reactions:new Q,rejection:!1,state:0,value:void 0})}).prototype=d(V,{then:function(e,t){var n=G(this),r=K(x(this,_));return n.parent=!0,r.ok=!C(e)||e,r.fail=C(t)&&t,r.domain=P?Z.domain:void 0,0==n.state?n.reactions.add(r):I((function(){ie(r,n)})),r.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new r,t=j(e);this.promise=e,this.resolve=le(pe,t),this.reject=le(fe,t)},L.f=K=function(e){return e===_||e===i?new o(e):X(e)},!s&&C(f)&&z!==Object.prototype)){a=z.then,te||(p(z,"then",(function(e,t){var n=this;return new _((function(e,t){l(a,n,e,t)})).then(e,t)}),{unsafe:!0}),p(z,"catch",V.catch,{unsafe:!0}));try{delete z.constructor}catch(e){}g&&g(z,V)}A({global:!0,wrap:!0,forced:ne},{Promise:_}),h(_,W,!1,!0),v(W),i=u(W),A({target:W,stat:!0,forced:ne},{reject:function(e){var t=K(this);return l(t.reject,void 0,e),t.promise}}),A({target:W,stat:!0,forced:s||ne},{resolve:function(e){return S(s&&this===i?_:this,e)}}),A({target:W,stat:!0,forced:re},{all:function(e){var t=this,n=K(t),r=n.resolve,o=n.reject,i=R((function(){var n=m(t.resolve),i=[],a=0,A=1;E(e,(function(e){var s=a++,c=!1;A++,l(n,t,e).then((function(e){c||(c=!0,i[s]=e,--A||r(i))}),o)})),--A||r(i)}));return i.error&&o(i.value),n.promise},race:function(e){var t=this,n=K(t),r=n.reject,o=R((function(){var o=m(t.resolve);E(e,(function(e){l(o,t,e).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},224:function(e,t,n){var r=n(2109),o=n(2104),i=n(9662),a=n(9670);r({target:"Reflect",stat:!0,forced:!n(7293)((function(){Reflect.apply((function(){}))}))},{apply:function(e,t,n){return o(i(e),t,a(n))}})},2419:function(e,t,n){var r=n(2109),o=n(5005),i=n(2104),a=n(7065),A=n(9483),s=n(9670),c=n(111),u=n(30),l=n(7293),f=o("Reflect","construct"),p=Object.prototype,d=[].push,g=l((function(){function e(){}return!(f((function(){}),[],e)instanceof e)})),h=!l((function(){f((function(){}))})),v=g||h;r({target:"Reflect",stat:!0,forced:v,sham:v},{construct:function(e,t){A(e),s(t);var n=arguments.length<3?e:A(arguments[2]);if(h&&!g)return f(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return i(d,r,t),new(i(a,e,r))}var o=n.prototype,l=u(c(o)?o:p),v=i(e,l,t);return c(v)?v:l}})},9596:function(e,t,n){var r=n(2109),o=n(9781),i=n(9670),a=n(4948),A=n(3070);r({target:"Reflect",stat:!0,forced:n(7293)((function(){Reflect.defineProperty(A.f({},1,{value:1}),1,{value:2})})),sham:!o},{defineProperty:function(e,t,n){i(e);var r=a(t);i(n);try{return A.f(e,r,n),!0}catch(e){return!1}}})},2586:function(e,t,n){var r=n(2109),o=n(9670),i=n(1236).f;r({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=i(o(e),t);return!(n&&!n.configurable)&&delete e[t]}})},5683:function(e,t,n){var r=n(2109),o=n(9781),i=n(9670),a=n(1236);r({target:"Reflect",stat:!0,sham:!o},{getOwnPropertyDescriptor:function(e,t){return a.f(i(e),t)}})},9361:function(e,t,n){var r=n(2109),o=n(9670),i=n(9518);r({target:"Reflect",stat:!0,sham:!n(8544)},{getPrototypeOf:function(e){return i(o(e))}})},4819:function(e,t,n){var r=n(2109),o=n(6916),i=n(111),a=n(9670),A=n(5032),s=n(1236),c=n(9518);r({target:"Reflect",stat:!0},{get:function e(t,n){var r,u,l=arguments.length<3?t:arguments[2];return a(t)===l?t[n]:(r=s.f(t,n))?A(r)?r.value:void 0===r.get?void 0:o(r.get,l):i(u=c(t))?e(u,n,l):void 0}})},1037:function(e,t,n){n(2109)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},5898:function(e,t,n){var r=n(2109),o=n(9670),i=n(2050);r({target:"Reflect",stat:!0},{isExtensible:function(e){return o(e),i(e)}})},7318:function(e,t,n){n(2109)({target:"Reflect",stat:!0},{ownKeys:n(3887)})},4361:function(e,t,n){var r=n(2109),o=n(5005),i=n(9670);r({target:"Reflect",stat:!0,sham:!n(6677)},{preventExtensions:function(e){i(e);try{var t=o("Object","preventExtensions");return t&&t(e),!0}catch(e){return!1}}})},9532:function(e,t,n){var r=n(2109),o=n(9670),i=n(6077),a=n(7674);a&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){o(e),i(t);try{return a(e,t),!0}catch(e){return!1}}})},3593:function(e,t,n){var r=n(2109),o=n(6916),i=n(9670),a=n(111),A=n(5032),s=n(7293),c=n(3070),u=n(1236),l=n(9518),f=n(9114);r({target:"Reflect",stat:!0,forced:s((function(){var e=function(){},t=c.f(new e,"a",{configurable:!0});return!1!==Reflect.set(e.prototype,"a",1,t)}))},{set:function e(t,n,r){var s,p,d,g=arguments.length<4?t:arguments[3],h=u.f(i(t),n);if(!h){if(a(p=l(t)))return e(p,n,r,g);h=f(0)}if(A(h)){if(!1===h.writable||!a(g))return!1;if(s=u.f(g,n)){if(s.get||s.set||!1===s.writable)return!1;s.value=r,c.f(g,n,s)}else c.f(g,n,f(0,r))}else{if(void 0===(d=h.set))return!1;o(d,g,r)}return!0}})},1299:function(e,t,n){var r=n(2109),o=n(7854),i=n(8003);r({global:!0},{Reflect:{}}),i(o.Reflect,"Reflect",!0)},4603:function(e,t,n){var r=n(9781),o=n(7854),i=n(1702),a=n(4705),A=n(9587),s=n(8880),c=n(3070).f,u=n(8006).f,l=n(7976),f=n(7850),p=n(1340),d=n(7066),g=n(2999),h=n(1320),v=n(7293),m=n(2597),C=n(9909).enforce,y=n(6340),b=n(5112),w=n(9441),E=n(7168),B=b("match"),x=o.RegExp,k=x.prototype,I=o.SyntaxError,S=i(d),T=i(k.exec),L=i("".charAt),R=i("".replace),Q=i("".indexOf),O=i("".slice),M=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,D=/a/g,F=/a/g,P=new x(D)!==D,U=g.MISSED_STICKY,N=g.UNSUPPORTED_Y;if(a("RegExp",r&&(!P||U||w||E||v((function(){return F[B]=!1,x(D)!=D||x(F)==F||"/a/i"!=x(D,"i")}))))){for(var W=function(e,t){var n,r,o,i,a,c,u=l(k,this),d=f(e),g=void 0===t,h=[],v=e;if(!u&&d&&g&&e.constructor===W)return e;if((d||l(k,e))&&(e=e.source,g&&(t="flags"in v?v.flags:S(v))),e=void 0===e?"":p(e),t=void 0===t?"":p(t),v=e,w&&"dotAll"in D&&(r=!!t&&Q(t,"s")>-1)&&(t=R(t,/s/g,"")),n=t,U&&"sticky"in D&&(o=!!t&&Q(t,"y")>-1)&&N&&(t=R(t,/y/g,"")),E&&(i=function(e){for(var t,n=e.length,r=0,o="",i=[],a={},A=!1,s=!1,c=0,u="";r<=n;r++){if("\\"===(t=L(e,r)))t+=L(e,++r);else if("]"===t)A=!1;else if(!A)switch(!0){case"["===t:A=!0;break;case"("===t:T(M,O(e,r+1))&&(r+=2,s=!0),o+=t,c++;continue;case">"===t&&s:if(""===u||m(a,u))throw new I("Invalid capture group name");a[u]=!0,i[i.length]=[u,c],s=!1,u="";continue}s?u+=t:o+=t}return[o,i]}(e),e=i[0],h=i[1]),a=A(x(e,t),u?this:k,W),(r||o||h.length)&&(c=C(a),r&&(c.dotAll=!0,c.raw=W(function(e){for(var t,n=e.length,r=0,o="",i=!1;r<=n;r++)"\\"!==(t=L(e,r))?i||"."!==t?("["===t?i=!0:"]"===t&&(i=!1),o+=t):o+="[\\s\\S]":o+=t+L(e,++r);return o}(e),n)),o&&(c.sticky=!0),h.length&&(c.groups=h)),e!==v)try{s(a,"source",""===v?"(?:)":v)}catch(e){}return a},j=function(e){e in W||c(W,e,{configurable:!0,get:function(){return x[e]},set:function(t){x[e]=t}})},Y=u(x),G=0;Y.length>G;)j(Y[G++]);k.constructor=W,W.prototype=k,h(o,"RegExp",W)}y("RegExp")},8450:function(e,t,n){var r=n(7854),o=n(9781),i=n(9441),a=n(4326),A=n(3070).f,s=n(9909).get,c=RegExp.prototype,u=r.TypeError;o&&i&&A(c,"dotAll",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!s(this).dotAll;throw u("Incompatible receiver, RegExp required")}}})},4916:function(e,t,n){"use strict";var r=n(2109),o=n(2261);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},2087:function(e,t,n){var r=n(9781),o=n(3070),i=n(7066),a=n(7293),A=RegExp.prototype;r&&a((function(){return"sy"!==Object.getOwnPropertyDescriptor(A,"flags").get.call({dotAll:!0,sticky:!0})}))&&o.f(A,"flags",{configurable:!0,get:i})},8386:function(e,t,n){var r=n(7854),o=n(9781),i=n(2999).MISSED_STICKY,a=n(4326),A=n(3070).f,s=n(9909).get,c=RegExp.prototype,u=r.TypeError;o&&i&&A(c,"sticky",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!s(this).sticky;throw u("Incompatible receiver, RegExp required")}}})},7601:function(e,t,n){"use strict";n(4916);var r,o,i=n(2109),a=n(7854),A=n(6916),s=n(1702),c=n(614),u=n(111),l=(r=!1,(o=/[ac]/).exec=function(){return r=!0,/./.exec.apply(this,arguments)},!0===o.test("abc")&&r),f=a.Error,p=s(/./.test);i({target:"RegExp",proto:!0,forced:!l},{test:function(e){var t=this.exec;if(!c(t))return p(this,e);var n=A(t,this,e);if(null!==n&&!u(n))throw new f("RegExp exec method returned something other than an Object or null");return!!n}})},9714:function(e,t,n){"use strict";var r=n(1702),o=n(6530).PROPER,i=n(1320),a=n(9670),A=n(7976),s=n(1340),c=n(7293),u=n(7066),l="toString",f=RegExp.prototype,p=f.toString,d=r(u),g=c((function(){return"/a/b"!=p.call({source:"a",flags:"b"})})),h=o&&p.name!=l;(g||h)&&i(RegExp.prototype,l,(function(){var e=a(this),t=s(e.source),n=e.flags;return"/"+t+"/"+s(void 0===n&&A(f,e)&&!("flags"in f)?d(e):n)}),{unsafe:!0})},189:function(e,t,n){"use strict";n(7710)("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n(5631))},5218:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("anchor")},{anchor:function(e){return o(this,"a","name",e)}})},4506:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(4488),a=n(9303),A=n(1340),s=n(7293),c=o("".charAt);r({target:"String",proto:!0,forced:s((function(){return"\ud842"!=="𠮷".at(-2)}))},{at:function(e){var t=A(i(this)),n=t.length,r=a(e),o=r>=0?r:n+r;return o<0||o>=n?void 0:c(t,o)}})},4475:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("big")},{big:function(){return o(this,"big","","")}})},7929:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("blink")},{blink:function(){return o(this,"blink","","")}})},915:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("bold")},{bold:function(){return o(this,"b","","")}})},9841:function(e,t,n){"use strict";var r=n(2109),o=n(8710).codeAt;r({target:"String",proto:!0},{codePointAt:function(e){return o(this,e)}})},7852:function(e,t,n){"use strict";var r,o=n(2109),i=n(1702),a=n(1236).f,A=n(7466),s=n(1340),c=n(3929),u=n(4488),l=n(4964),f=n(1913),p=i("".endsWith),d=i("".slice),g=Math.min,h=l("endsWith");o({target:"String",proto:!0,forced:!(!f&&!h&&(r=a(String.prototype,"endsWith"),r&&!r.writable)||h)},{endsWith:function(e){var t=s(u(this));c(e);var n=arguments.length>1?arguments[1]:void 0,r=t.length,o=void 0===n?r:g(A(n),r),i=s(e);return p?p(t,i,o):d(t,o-i.length,o)===i}})},9253:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("fixed")},{fixed:function(){return o(this,"tt","","")}})},2125:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("fontcolor")},{fontcolor:function(e){return o(this,"font","color",e)}})},8830:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("fontsize")},{fontsize:function(e){return o(this,"font","size",e)}})},4953:function(e,t,n){var r=n(2109),o=n(7854),i=n(1702),a=n(1400),A=o.RangeError,s=String.fromCharCode,c=String.fromCodePoint,u=i([].join);r({target:"String",stat:!0,forced:!!c&&1!=c.length},{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,o=0;r>o;){if(t=+arguments[o++],a(t,1114111)!==t)throw A(t+" is not a valid code point");n[o]=t<65536?s(t):s(55296+((t-=65536)>>10),t%1024+56320)}return u(n,"")}})},2023:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(3929),a=n(4488),A=n(1340),s=n(4964),c=o("".indexOf);r({target:"String",proto:!0,forced:!s("includes")},{includes:function(e){return!!~c(A(a(this)),A(i(e)),arguments.length>1?arguments[1]:void 0)}})},8734:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("italics")},{italics:function(){return o(this,"i","","")}})},8783:function(e,t,n){"use strict";var r=n(8710).charAt,o=n(1340),i=n(9909),a=n(654),A="String Iterator",s=i.set,c=i.getterFor(A);a(String,"String",(function(e){s(this,{type:A,string:o(e),index:0})}),(function(){var e,t=c(this),n=t.string,o=t.index;return o>=n.length?{value:void 0,done:!0}:(e=r(n,o),t.index+=e.length,{value:e,done:!1})}))},9254:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("link")},{link:function(e){return o(this,"a","href",e)}})},6373:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(6916),a=n(1702),A=n(4994),s=n(4488),c=n(7466),u=n(1340),l=n(9670),f=n(4326),p=n(7976),d=n(7850),g=n(7066),h=n(8173),v=n(1320),m=n(7293),C=n(5112),y=n(6707),b=n(1530),w=n(7651),E=n(9909),B=n(1913),x=C("matchAll"),k="RegExp String Iterator",I=E.set,S=E.getterFor(k),T=RegExp.prototype,L=o.TypeError,R=a(g),Q=a("".indexOf),O=a("".matchAll),M=!!O&&!m((function(){O("a",/./)})),D=A((function(e,t,n,r){I(this,{type:k,regexp:e,string:t,global:n,unicode:r,done:!1})}),"RegExp String",(function(){var e=S(this);if(e.done)return{value:void 0,done:!0};var t=e.regexp,n=e.string,r=w(t,n);return null===r?{value:void 0,done:e.done=!0}:e.global?(""===u(r[0])&&(t.lastIndex=b(n,c(t.lastIndex),e.unicode)),{value:r,done:!1}):(e.done=!0,{value:r,done:!1})})),F=function(e){var t,n,r,o,i,a,A=l(this),s=u(e);return t=y(A,RegExp),void 0===(n=A.flags)&&p(T,A)&&!("flags"in T)&&(n=R(A)),r=void 0===n?"":u(n),o=new t(t===RegExp?A.source:A,r),i=!!~Q(r,"g"),a=!!~Q(r,"u"),o.lastIndex=c(A.lastIndex),new D(o,s,i,a)};r({target:"String",proto:!0,forced:M},{matchAll:function(e){var t,n,r,o,a=s(this);if(null!=e){if(d(e)&&(t=u(s("flags"in T?e.flags:R(e))),!~Q(t,"g")))throw L("`.matchAll` does not allow non-global regexes");if(M)return O(a,e);if(void 0===(r=h(e,x))&&B&&"RegExp"==f(e)&&(r=F),r)return i(r,e,a)}else if(M)return O(a,e);return n=u(a),o=new RegExp(e,"g"),B?i(F,o,n):o[x](n)}}),B||x in T||v(T,x,F)},4723:function(e,t,n){"use strict";var r=n(6916),o=n(7007),i=n(9670),a=n(7466),A=n(1340),s=n(4488),c=n(8173),u=n(1530),l=n(7651);o("match",(function(e,t,n){return[function(t){var n=s(this),o=null==t?void 0:c(t,e);return o?r(o,t,n):new RegExp(t)[e](A(n))},function(e){var r=i(this),o=A(e),s=n(t,r,o);if(s.done)return s.value;if(!r.global)return l(r,o);var c=r.unicode;r.lastIndex=0;for(var f,p=[],d=0;null!==(f=l(r,o));){var g=A(f[0]);p[d]=g,""===g&&(r.lastIndex=u(o,a(r.lastIndex),c)),d++}return 0===d?null:p}]}))},6528:function(e,t,n){"use strict";var r=n(2109),o=n(6650).end;r({target:"String",proto:!0,forced:n(7061)},{padEnd:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},3112:function(e,t,n){"use strict";var r=n(2109),o=n(6650).start;r({target:"String",proto:!0,forced:n(7061)},{padStart:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},8992:function(e,t,n){var r=n(2109),o=n(1702),i=n(5656),a=n(7908),A=n(1340),s=n(6244),c=o([].push),u=o([].join);r({target:"String",stat:!0},{raw:function(e){for(var t=i(a(e).raw),n=s(t),r=arguments.length,o=[],l=0;n>l;){if(c(o,A(t[l++])),l===n)return u(o,"");l<r&&c(o,A(arguments[l]))}}})},2481:function(e,t,n){n(2109)({target:"String",proto:!0},{repeat:n(8415)})},8757:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(6916),a=n(1702),A=n(4488),s=n(614),c=n(7850),u=n(1340),l=n(8173),f=n(7066),p=n(647),d=n(5112),g=n(1913),h=d("replace"),v=RegExp.prototype,m=o.TypeError,C=a(f),y=a("".indexOf),b=a("".replace),w=a("".slice),E=Math.max,B=function(e,t,n){return n>e.length?-1:""===t?n:y(e,t,n)};r({target:"String",proto:!0},{replaceAll:function(e,t){var n,r,o,a,f,d,x,k,I,S=A(this),T=0,L=0,R="";if(null!=e){if((n=c(e))&&(r=u(A("flags"in v?e.flags:C(e))),!~y(r,"g")))throw m("`.replaceAll` does not allow non-global regexes");if(o=l(e,h))return i(o,e,S,t);if(g&&n)return b(u(S),e,t)}for(a=u(S),f=u(e),(d=s(t))||(t=u(t)),x=f.length,k=E(1,x),T=B(a,f,0);-1!==T;)I=d?u(t(f,T,a)):p(f,a,T,[],void 0,t),R+=w(a,L,T)+I,L=T+x,T=B(a,f,T+k);return L<a.length&&(R+=w(a,L)),R}})},5306:function(e,t,n){"use strict";var r=n(2104),o=n(6916),i=n(1702),a=n(7007),A=n(7293),s=n(9670),c=n(614),u=n(9303),l=n(7466),f=n(1340),p=n(4488),d=n(1530),g=n(8173),h=n(647),v=n(7651),m=n(5112)("replace"),C=Math.max,y=Math.min,b=i([].concat),w=i([].push),E=i("".indexOf),B=i("".slice),x="$0"==="a".replace(/./,"$0"),k=!!/./[m]&&""===/./[m]("a","$0");a("replace",(function(e,t,n){var i=k?"$":"$0";return[function(e,n){var r=p(this),i=null==e?void 0:g(e,m);return i?o(i,e,r,n):o(t,f(r),e,n)},function(e,o){var a=s(this),A=f(e);if("string"==typeof o&&-1===E(o,i)&&-1===E(o,"$<")){var p=n(t,a,A,o);if(p.done)return p.value}var g=c(o);g||(o=f(o));var m=a.global;if(m){var x=a.unicode;a.lastIndex=0}for(var k=[];;){var I=v(a,A);if(null===I)break;if(w(k,I),!m)break;""===f(I[0])&&(a.lastIndex=d(A,l(a.lastIndex),x))}for(var S,T="",L=0,R=0;R<k.length;R++){for(var Q=f((I=k[R])[0]),O=C(y(u(I.index),A.length),0),M=[],D=1;D<I.length;D++)w(M,void 0===(S=I[D])?S:String(S));var F=I.groups;if(g){var P=b([Q],M,O,A);void 0!==F&&w(P,F);var U=f(r(o,void 0,P))}else U=h(Q,A,O,M,F,o);O>=L&&(T+=B(A,L,O)+U,L=O+Q.length)}return T+B(A,L)}]}),!!A((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}))||!x||k)},4765:function(e,t,n){"use strict";var r=n(6916),o=n(7007),i=n(9670),a=n(4488),A=n(1150),s=n(1340),c=n(8173),u=n(7651);o("search",(function(e,t,n){return[function(t){var n=a(this),o=null==t?void 0:c(t,e);return o?r(o,t,n):new RegExp(t)[e](s(n))},function(e){var r=i(this),o=s(e),a=n(t,r,o);if(a.done)return a.value;var c=r.lastIndex;A(c,0)||(r.lastIndex=0);var l=u(r,o);return A(r.lastIndex,c)||(r.lastIndex=c),null===l?-1:l.index}]}))},7268:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("small")},{small:function(){return o(this,"small","","")}})},3123:function(e,t,n){"use strict";var r=n(2104),o=n(6916),i=n(1702),a=n(7007),A=n(7850),s=n(9670),c=n(4488),u=n(6707),l=n(1530),f=n(7466),p=n(1340),d=n(8173),g=n(1589),h=n(7651),v=n(2261),m=n(2999),C=n(7293),y=m.UNSUPPORTED_Y,b=4294967295,w=Math.min,E=[].push,B=i(/./.exec),x=i(E),k=i("".slice),I=!C((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));a("split",(function(e,t,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var i=p(c(this)),a=void 0===n?b:n>>>0;if(0===a)return[];if(void 0===e)return[i];if(!A(e))return o(t,i,e,a);for(var s,u,l,f=[],d=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),h=0,m=new RegExp(e.source,d+"g");(s=o(v,m,i))&&!((u=m.lastIndex)>h&&(x(f,k(i,h,s.index)),s.length>1&&s.index<i.length&&r(E,f,g(s,1)),l=s[0].length,h=u,f.length>=a));)m.lastIndex===s.index&&m.lastIndex++;return h===i.length?!l&&B(m,"")||x(f,""):x(f,k(i,h)),f.length>a?g(f,0,a):f}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:o(t,this,e,n)}:t,[function(t,n){var r=c(this),a=null==t?void 0:d(t,e);return a?o(a,t,r,n):o(i,p(r),t,n)},function(e,r){var o=s(this),a=p(e),A=n(i,o,a,r,i!==t);if(A.done)return A.value;var c=u(o,RegExp),d=o.unicode,g=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(y?"g":"y"),v=new c(y?"^(?:"+o.source+")":o,g),m=void 0===r?b:r>>>0;if(0===m)return[];if(0===a.length)return null===h(v,a)?[a]:[];for(var C=0,E=0,B=[];E<a.length;){v.lastIndex=y?0:E;var I,S=h(v,y?k(a,E):a);if(null===S||(I=w(f(v.lastIndex+(y?E:0)),a.length))===C)E=l(a,E,d);else{if(x(B,k(a,C,E)),B.length===m)return B;for(var T=1;T<=S.length-1;T++)if(x(B,S[T]),B.length===m)return B;E=C=I}}return x(B,k(a,C)),B}]}),!I,y)},6755:function(e,t,n){"use strict";var r,o=n(2109),i=n(1702),a=n(1236).f,A=n(7466),s=n(1340),c=n(3929),u=n(4488),l=n(4964),f=n(1913),p=i("".startsWith),d=i("".slice),g=Math.min,h=l("startsWith");o({target:"String",proto:!0,forced:!(!f&&!h&&(r=a(String.prototype,"startsWith"),r&&!r.writable)||h)},{startsWith:function(e){var t=s(u(this));c(e);var n=A(g(arguments.length>1?arguments[1]:void 0,t.length)),r=s(e);return p?p(t,r,n):d(t,n,n+r.length)===r}})},7397:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("strike")},{strike:function(){return o(this,"strike","","")}})},86:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("sub")},{sub:function(){return o(this,"sub","","")}})},3650:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(4488),a=n(9303),A=n(1340),s=o("".slice),c=Math.max,u=Math.min;r({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(e,t){var n,r,o=A(i(this)),l=o.length,f=a(e);return f===1/0&&(f=0),f<0&&(f=c(l+f,0)),(n=void 0===t?l:a(t))<=0||n===1/0||f>=(r=u(f+n,l))?"":s(o,f,r)}})},623:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("sup")},{sup:function(){return o(this,"sup","","")}})},8702:function(e,t,n){"use strict";var r=n(2109),o=n(3111).end,i=n(6091)("trimEnd"),a=i?function(){return o(this)}:"".trimEnd;r({target:"String",proto:!0,name:"trimEnd",forced:i},{trimEnd:a,trimRight:a})},5674:function(e,t,n){"use strict";var r=n(2109),o=n(3111).start,i=n(6091)("trimStart"),a=i?function(){return o(this)}:"".trimStart;r({target:"String",proto:!0,name:"trimStart",forced:i},{trimStart:a,trimLeft:a})},3210:function(e,t,n){"use strict";var r=n(2109),o=n(3111).trim;r({target:"String",proto:!0,forced:n(6091)("trim")},{trim:function(){return o(this)}})},2443:function(e,t,n){n(7235)("asyncIterator")},1817:function(e,t,n){"use strict";var r=n(2109),o=n(9781),i=n(7854),a=n(1702),A=n(2597),s=n(614),c=n(7976),u=n(1340),l=n(3070).f,f=n(9920),p=i.Symbol,d=p&&p.prototype;if(o&&s(p)&&(!("description"in d)||void 0!==p().description)){var g={},h=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:u(arguments[0]),t=c(d,this)?new p(e):void 0===e?p():p(e);return""===e&&(g[t]=!0),t};f(h,p),h.prototype=d,d.constructor=h;var v="Symbol(test)"==String(p("test")),m=a(d.toString),C=a(d.valueOf),y=/^Symbol\((.*)\)[^)]+$/,b=a("".replace),w=a("".slice);l(d,"description",{configurable:!0,get:function(){var e=C(this),t=m(e);if(A(g,e))return"";var n=v?w(t,7,-1):b(t,y,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:h})}},2401:function(e,t,n){n(7235)("hasInstance")},8722:function(e,t,n){n(7235)("isConcatSpreadable")},2165:function(e,t,n){n(7235)("iterator")},2526:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(5005),a=n(2104),A=n(6916),s=n(1702),c=n(1913),u=n(9781),l=n(133),f=n(7293),p=n(2597),d=n(3157),g=n(614),h=n(111),v=n(7976),m=n(2190),C=n(9670),y=n(7908),b=n(5656),w=n(4948),E=n(1340),B=n(9114),x=n(30),k=n(1956),I=n(8006),S=n(1156),T=n(5181),L=n(1236),R=n(3070),Q=n(6048),O=n(5296),M=n(206),D=n(1320),F=n(2309),P=n(6200),U=n(3501),N=n(9711),W=n(5112),j=n(6061),Y=n(7235),G=n(8003),z=n(9909),_=n(2092).forEach,V=P("hidden"),H="Symbol",J=W("toPrimitive"),Z=z.set,K=z.getterFor(H),X=Object.prototype,q=o.Symbol,$=q&&q.prototype,ee=o.TypeError,te=o.QObject,ne=i("JSON","stringify"),re=L.f,oe=R.f,ie=S.f,ae=O.f,Ae=s([].push),se=F("symbols"),ce=F("op-symbols"),ue=F("string-to-symbol-registry"),le=F("symbol-to-string-registry"),fe=F("wks"),pe=!te||!te.prototype||!te.prototype.findChild,de=u&&f((function(){return 7!=x(oe({},"a",{get:function(){return oe(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=re(X,t);r&&delete X[t],oe(e,t,n),r&&e!==X&&oe(X,t,r)}:oe,ge=function(e,t){var n=se[e]=x($);return Z(n,{type:H,tag:e,description:t}),u||(n.description=t),n},he=function(e,t,n){e===X&&he(ce,t,n),C(e);var r=w(t);return C(n),p(se,r)?(n.enumerable?(p(e,V)&&e[V][r]&&(e[V][r]=!1),n=x(n,{enumerable:B(0,!1)})):(p(e,V)||oe(e,V,B(1,{})),e[V][r]=!0),de(e,r,n)):oe(e,r,n)},ve=function(e,t){C(e);var n=b(t),r=k(n).concat(be(n));return _(r,(function(t){u&&!A(me,n,t)||he(e,t,n[t])})),e},me=function(e){var t=w(e),n=A(ae,this,t);return!(this===X&&p(se,t)&&!p(ce,t))&&(!(n||!p(this,t)||!p(se,t)||p(this,V)&&this[V][t])||n)},Ce=function(e,t){var n=b(e),r=w(t);if(n!==X||!p(se,r)||p(ce,r)){var o=re(n,r);return!o||!p(se,r)||p(n,V)&&n[V][r]||(o.enumerable=!0),o}},ye=function(e){var t=ie(b(e)),n=[];return _(t,(function(e){p(se,e)||p(U,e)||Ae(n,e)})),n},be=function(e){var t=e===X,n=ie(t?ce:b(e)),r=[];return _(n,(function(e){!p(se,e)||t&&!p(X,e)||Ae(r,se[e])})),r};if(l||(q=function(){if(v($,this))throw ee("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?E(arguments[0]):void 0,t=N(e),n=function(e){this===X&&A(n,ce,e),p(this,V)&&p(this[V],t)&&(this[V][t]=!1),de(this,t,B(1,e))};return u&&pe&&de(X,t,{configurable:!0,set:n}),ge(t,e)},D($=q.prototype,"toString",(function(){return K(this).tag})),D(q,"withoutSetter",(function(e){return ge(N(e),e)})),O.f=me,R.f=he,Q.f=ve,L.f=Ce,I.f=S.f=ye,T.f=be,j.f=function(e){return ge(W(e),e)},u&&(oe($,"description",{configurable:!0,get:function(){return K(this).description}}),c||D(X,"propertyIsEnumerable",me,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!l,sham:!l},{Symbol:q}),_(k(fe),(function(e){Y(e)})),r({target:H,stat:!0,forced:!l},{for:function(e){var t=E(e);if(p(ue,t))return ue[t];var n=q(t);return ue[t]=n,le[n]=t,n},keyFor:function(e){if(!m(e))throw ee(e+" is not a symbol");if(p(le,e))return le[e]},useSetter:function(){pe=!0},useSimple:function(){pe=!1}}),r({target:"Object",stat:!0,forced:!l,sham:!u},{create:function(e,t){return void 0===t?x(e):ve(x(e),t)},defineProperty:he,defineProperties:ve,getOwnPropertyDescriptor:Ce}),r({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:ye,getOwnPropertySymbols:be}),r({target:"Object",stat:!0,forced:f((function(){T.f(1)}))},{getOwnPropertySymbols:function(e){return T.f(y(e))}}),ne&&r({target:"JSON",stat:!0,forced:!l||f((function(){var e=q();return"[null]"!=ne([e])||"{}"!=ne({a:e})||"{}"!=ne(Object(e))}))},{stringify:function(e,t,n){var r=M(arguments),o=t;if((h(t)||void 0!==e)&&!m(e))return d(t)||(t=function(e,t){if(g(o)&&(t=A(o,this,e,t)),!m(t))return t}),r[1]=t,a(ne,null,r)}}),!$[J]){var we=$.valueOf;D($,J,(function(e){return A(we,this)}))}G(q,H),U[V]=!0},6066:function(e,t,n){n(7235)("matchAll")},9007:function(e,t,n){n(7235)("match")},3510:function(e,t,n){n(7235)("replace")},1840:function(e,t,n){n(7235)("search")},6982:function(e,t,n){n(7235)("species")},2159:function(e,t,n){n(7235)("split")},6649:function(e,t,n){n(7235)("toPrimitive")},9341:function(e,t,n){n(7235)("toStringTag")},543:function(e,t,n){n(7235)("unscopables")},8675:function(e,t,n){"use strict";var r=n(260),o=n(6244),i=n(9303),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("at",(function(e){var t=a(this),n=o(t),r=i(e),A=r>=0?r:n+r;return A<0||A>=n?void 0:t[A]}))},2990:function(e,t,n){"use strict";var r=n(1702),o=n(260),i=r(n(1048)),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(e,t){return i(a(this),e,t,arguments.length>2?arguments[2]:void 0)}))},8927:function(e,t,n){"use strict";var r=n(260),o=n(2092).every,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},3105:function(e,t,n){"use strict";var r=n(260),o=n(6916),i=n(1285),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("fill",(function(e){var t=arguments.length;return o(i,a(this),e,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}))},5035:function(e,t,n){"use strict";var r=n(260),o=n(2092).filter,i=n(3074),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("filter",(function(e){var t=o(a(this),e,arguments.length>1?arguments[1]:void 0);return i(this,t)}))},7174:function(e,t,n){"use strict";var r=n(260),o=n(2092).findIndex,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},4345:function(e,t,n){"use strict";var r=n(260),o=n(2092).find,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},4197:function(e,t,n){n(9843)("Float32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},6495:function(e,t,n){n(9843)("Float64",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},2846:function(e,t,n){"use strict";var r=n(260),o=n(2092).forEach,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",(function(e){o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},8145:function(e,t,n){"use strict";var r=n(3832);(0,n(260).exportTypedArrayStaticMethod)("from",n(7321),r)},4731:function(e,t,n){"use strict";var r=n(260),o=n(1318).includes,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},7209:function(e,t,n){"use strict";var r=n(260),o=n(1318).indexOf,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},5109:function(e,t,n){n(9843)("Int16",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},5125:function(e,t,n){n(9843)("Int32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},7145:function(e,t,n){n(9843)("Int8",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},6319:function(e,t,n){"use strict";var r=n(7854),o=n(7293),i=n(1702),a=n(260),A=n(6992),s=n(5112)("iterator"),c=r.Uint8Array,u=i(A.values),l=i(A.keys),f=i(A.entries),p=a.aTypedArray,d=a.exportTypedArrayMethod,g=c&&c.prototype,h=!o((function(){g[s].call([1])})),v=!!g&&g.values&&g[s]===g.values&&"values"===g.values.name,m=function(){return u(p(this))};d("entries",(function(){return f(p(this))}),h),d("keys",(function(){return l(p(this))}),h),d("values",m,h||!v,{name:"values"}),d(s,m,h||!v,{name:"values"})},8867:function(e,t,n){"use strict";var r=n(260),o=n(1702),i=r.aTypedArray,a=r.exportTypedArrayMethod,A=o([].join);a("join",(function(e){return A(i(this),e)}))},7789:function(e,t,n){"use strict";var r=n(260),o=n(2104),i=n(6583),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",(function(e){var t=arguments.length;return o(i,a(this),t>1?[e,arguments[1]]:[e])}))},3739:function(e,t,n){"use strict";var r=n(260),o=n(2092).map,i=n(6304),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("map",(function(e){return o(a(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(i(e))(t)}))}))},5206:function(e,t,n){"use strict";var r=n(260),o=n(3832),i=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(i(this))(t);t>e;)n[e]=arguments[e++];return n}),o)},4483:function(e,t,n){"use strict";var r=n(260),o=n(3671).right,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",(function(e){var t=arguments.length;return o(i(this),e,t,t>1?arguments[1]:void 0)}))},9368:function(e,t,n){"use strict";var r=n(260),o=n(3671).left,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",(function(e){var t=arguments.length;return o(i(this),e,t,t>1?arguments[1]:void 0)}))},2056:function(e,t,n){"use strict";var r=n(260),o=r.aTypedArray,i=r.exportTypedArrayMethod,a=Math.floor;i("reverse",(function(){for(var e,t=this,n=o(t).length,r=a(n/2),i=0;i<r;)e=t[i],t[i++]=t[--n],t[n]=e;return t}))},3462:function(e,t,n){"use strict";var r=n(7854),o=n(6916),i=n(260),a=n(6244),A=n(4590),s=n(7908),c=n(7293),u=r.RangeError,l=r.Int8Array,f=l&&l.prototype,p=f&&f.set,d=i.aTypedArray,g=i.exportTypedArrayMethod,h=!c((function(){var e=new Uint8ClampedArray(2);return o(p,e,{length:1,0:3},1),3!==e[1]})),v=h&&i.NATIVE_ARRAY_BUFFER_VIEWS&&c((function(){var e=new l(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));g("set",(function(e){d(this);var t=A(arguments.length>1?arguments[1]:void 0,1),n=s(e);if(h)return o(p,this,n,t);var r=this.length,i=a(n),c=0;if(i+t>r)throw u("Wrong length");for(;c<i;)this[t+c]=n[c++]}),!h||v)},678:function(e,t,n){"use strict";var r=n(260),o=n(6304),i=n(7293),a=n(206),A=r.aTypedArray;(0,r.exportTypedArrayMethod)("slice",(function(e,t){for(var n=a(A(this),e,t),r=o(this),i=0,s=n.length,c=new r(s);s>i;)c[i]=n[i++];return c}),i((function(){new Int8Array(1).slice()})))},7462:function(e,t,n){"use strict";var r=n(260),o=n(2092).some,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},3824:function(e,t,n){"use strict";var r=n(7854),o=n(1702),i=n(7293),a=n(9662),A=n(4362),s=n(260),c=n(8886),u=n(256),l=n(7392),f=n(8008),p=r.Array,d=s.aTypedArray,g=s.exportTypedArrayMethod,h=r.Uint16Array,v=h&&o(h.prototype.sort),m=!(!v||i((function(){v(new h(2),null)}))&&i((function(){v(new h(2),{})}))),C=!!v&&!i((function(){if(l)return l<74;if(c)return c<67;if(u)return!0;if(f)return f<602;var e,t,n=new h(516),r=p(516);for(e=0;e<516;e++)t=e%4,n[e]=515-e,r[e]=e-2*t+3;for(v(n,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(n[e]!==r[e])return!0}));g("sort",(function(e){return void 0!==e&&a(e),C?v(this,e):A(d(this),function(e){return function(t,n){return void 0!==e?+e(t,n)||0:n!=n?-1:t!=t?1:0===t&&0===n?1/t>0&&1/n<0?1:-1:t>n}}(e))}),!C||m)},5021:function(e,t,n){"use strict";var r=n(260),o=n(7466),i=n(1400),a=n(6304),A=r.aTypedArray;(0,r.exportTypedArrayMethod)("subarray",(function(e,t){var n=A(this),r=n.length,s=i(e,r);return new(a(n))(n.buffer,n.byteOffset+s*n.BYTES_PER_ELEMENT,o((void 0===t?r:i(t,r))-s))}))},2974:function(e,t,n){"use strict";var r=n(7854),o=n(2104),i=n(260),a=n(7293),A=n(206),s=r.Int8Array,c=i.aTypedArray,u=i.exportTypedArrayMethod,l=[].toLocaleString,f=!!s&&a((function(){l.call(new s(1))}));u("toLocaleString",(function(){return o(l,f?A(c(this)):c(this),A(arguments))}),a((function(){return[1,2].toLocaleString()!=new s([1,2]).toLocaleString()}))||!a((function(){s.prototype.toLocaleString.call([1,2])})))},5016:function(e,t,n){"use strict";var r=n(260).exportTypedArrayMethod,o=n(7293),i=n(7854),a=n(1702),A=i.Uint8Array,s=A&&A.prototype||{},c=[].toString,u=a([].join);o((function(){c.call({})}))&&(c=function(){return u(this)});var l=s.toString!=c;r("toString",c,l)},8255:function(e,t,n){n(9843)("Uint16",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},9135:function(e,t,n){n(9843)("Uint32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},2472:function(e,t,n){n(9843)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},9743:function(e,t,n){n(9843)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}),!0)},8221:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(1340),a=String.fromCharCode,A=o("".charAt),s=o(/./.exec),c=o("".slice),u=/^[\da-f]{2}$/i,l=/^[\da-f]{4}$/i;r({global:!0},{unescape:function(e){for(var t,n,r=i(e),o="",f=r.length,p=0;p<f;){if("%"===(t=A(r,p++)))if("u"===A(r,p)){if(n=c(r,p+1,p+5),s(l,n)){o+=a(parseInt(n,16)),p+=5;continue}}else if(n=c(r,p,p+2),s(u,n)){o+=a(parseInt(n,16)),p+=2;continue}o+=t}return o}})},4129:function(e,t,n){"use strict";var r,o=n(7854),i=n(1702),a=n(2248),A=n(2423),s=n(7710),c=n(9320),u=n(111),l=n(2050),f=n(9909).enforce,p=n(8536),d=!o.ActiveXObject&&"ActiveXObject"in o,g=function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},h=s("WeakMap",g,c);if(p&&d){r=c.getConstructor(g,"WeakMap",!0),A.enable();var v=h.prototype,m=i(v.delete),C=i(v.has),y=i(v.get),b=i(v.set);a(v,{delete:function(e){if(u(e)&&!l(e)){var t=f(this);return t.frozen||(t.frozen=new r),m(this,e)||t.frozen.delete(e)}return m(this,e)},has:function(e){if(u(e)&&!l(e)){var t=f(this);return t.frozen||(t.frozen=new r),C(this,e)||t.frozen.has(e)}return C(this,e)},get:function(e){if(u(e)&&!l(e)){var t=f(this);return t.frozen||(t.frozen=new r),C(this,e)?y(this,e):t.frozen.get(e)}return y(this,e)},set:function(e,t){if(u(e)&&!l(e)){var n=f(this);n.frozen||(n.frozen=new r),C(this,e)?b(this,e,t):n.frozen.set(e,t)}else b(this,e,t);return this}})}},8478:function(e,t,n){"use strict";n(7710)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n(9320))},5505:function(e,t,n){var r=n(2109),o=n(5005),i=n(1702),a=n(7293),A=n(1340),s=n(2597),c=n(8053),u=n(4170).ctoi,l=/[^\d+/a-z]/i,f=/[\t\n\f\r ]+/g,p=/[=]+$/,d=o("atob"),g=String.fromCharCode,h=i("".charAt),v=i("".replace),m=i(l.exec),C=a((function(){return""!==atob(" ")})),y=!C&&!a((function(){d()}));r({global:!0,enumerable:!0,forced:C||y},{atob:function(e){if(c(arguments.length,1),y)return d(e);var t,n,r=v(A(e),f,""),i="",a=0,C=0;if(r.length%4==0&&(r=v(r,p,"")),r.length%4==1||m(l,r))throw new(o("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;t=h(r,a++);)s(u,t)&&(n=C%4?64*n+u[t]:u[t],C++%4&&(i+=g(255&n>>(-2*C&6))));return i}})},7479:function(e,t,n){var r=n(2109),o=n(5005),i=n(1702),a=n(7293),A=n(1340),s=n(8053),c=n(4170).itoc,u=o("btoa"),l=i("".charAt),f=i("".charCodeAt),p=!!u&&!a((function(){u()}));r({global:!0,enumerable:!0,forced:p},{btoa:function(e){if(s(arguments.length,1),p)return u(e);for(var t,n,r=A(e),i="",a=0,d=c;l(r,a)||(d="=",a%1);){if((n=f(r,a+=3/4))>255)throw new(o("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");i+=l(d,63&(t=t<<8|n)>>8-a%1*8)}return i}})},4747:function(e,t,n){var r=n(7854),o=n(8324),i=n(8509),a=n(8533),A=n(8880),s=function(e){if(e&&e.forEach!==a)try{A(e,"forEach",a)}catch(t){e.forEach=a}};for(var c in o)o[c]&&s(r[c]&&r[c].prototype);s(i)},3948:function(e,t,n){var r=n(7854),o=n(8324),i=n(8509),a=n(6992),A=n(8880),s=n(5112),c=s("iterator"),u=s("toStringTag"),l=a.values,f=function(e,t){if(e){if(e[c]!==l)try{A(e,c,l)}catch(t){e[c]=l}if(e[u]||A(e,u,t),o[t])for(var n in a)if(e[n]!==a[n])try{A(e,n,a[n])}catch(t){e[n]=a[n]}}};for(var p in o)f(r[p]&&r[p].prototype,p);f(i,"DOMTokenList")},7714:function(e,t,n){"use strict";var r=n(2109),o=n(4038),i=n(5005),a=n(7293),A=n(30),s=n(9114),c=n(3070).f,u=n(6048).f,l=n(1320),f=n(2597),p=n(5787),d=n(9670),g=n(7762),h=n(6277),v=n(3678),m=n(7741),C=n(9909),y=n(9781),b=n(1913),w="DOMException",E=i("Error"),B=i(w)||function(){try{(new(i("MessageChannel")||o("worker_threads").MessageChannel)).port1.postMessage(new WeakMap)}catch(e){if("DATA_CLONE_ERR"==e.name&&25==e.code)return e.constructor}}(),x=B&&B.prototype,k=E.prototype,I=C.set,S=C.getterFor(w),T="stack"in E(w),L=function(e){return f(v,e)&&v[e].m?v[e].c:0},R=function(){p(this,Q);var e=arguments.length,t=h(e<1?void 0:arguments[0]),n=h(e<2?void 0:arguments[1],"Error"),r=L(n);if(I(this,{type:w,name:n,message:t,code:r}),y||(this.name=n,this.message=t,this.code=r),T){var o=E(t);o.name=w,c(this,"stack",s(1,m(o.stack,1)))}},Q=R.prototype=A(k),O=function(e){return{enumerable:!0,configurable:!0,get:e}},M=function(e){return O((function(){return S(this)[e]}))};y&&u(Q,{name:M("name"),message:M("message"),code:M("code")}),c(Q,"constructor",s(1,R));var D=a((function(){return!(new B instanceof E)})),F=D||a((function(){return k.toString!==g||"2: 1"!==String(new B(1,2))})),P=D||a((function(){return 25!==new B(1,"DataCloneError").code})),U=D||25!==B.DATA_CLONE_ERR||25!==x.DATA_CLONE_ERR,N=b?F||P||U:D;r({global:!0,forced:N},{DOMException:N?R:B});var W=i(w),j=W.prototype;for(var Y in F&&(b||B===W)&&l(j,"toString",g),P&&y&&B===W&&c(j,"code",O((function(){return L(d(this).name)}))),v)if(f(v,Y)){var G=v[Y],z=G.s,_=s(6,G.c);f(W,z)||c(W,z,_),f(j,z)||c(j,z,_)}},2801:function(e,t,n){"use strict";var r=n(2109),o=n(5005),i=n(9114),a=n(3070).f,A=n(2597),s=n(5787),c=n(9587),u=n(6277),l=n(3678),f=n(7741),p=n(1913),d="DOMException",g=o("Error"),h=o(d),v=function(){s(this,m);var e=arguments.length,t=u(e<1?void 0:arguments[0]),n=u(e<2?void 0:arguments[1],"Error"),r=new h(t,n),o=g(t);return o.name=d,a(r,"stack",i(1,f(o.stack,1))),c(r,this,v),r},m=v.prototype=h.prototype,C="stack"in g(d),y="stack"in new h(1,2),b=C&&!y;r({global:!0,forced:p||b},{DOMException:b?v:h});var w=o(d),E=w.prototype;if(E.constructor!==w)for(var B in p||a(E,"constructor",i(1,w)),l)if(A(l,B)){var x=l[B],k=x.s;A(w,k)||a(w,k,i(6,x.c))}},1174:function(e,t,n){var r=n(5005),o="DOMException";n(8003)(r(o),o)},4633:function(e,t,n){var r=n(2109),o=n(7854),i=n(261);r({global:!0,bind:!0,enumerable:!0,forced:!o.setImmediate||!o.clearImmediate},{setImmediate:i.set,clearImmediate:i.clear})},5844:function(e,t,n){var r=n(2109),o=n(7854),i=n(5948),a=n(9662),A=n(8053),s=n(5268),c=o.process;r({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){A(arguments.length,1),a(e);var t=s&&c.domain;i(t?t.bind(e):e)}})},1295:function(e,t,n){var r,o=n(1913),i=n(2109),a=n(7854),A=n(5005),s=n(1702),c=n(7293),u=n(9711),l=n(614),f=n(4411),p=n(111),d=n(2190),g=n(408),h=n(9670),v=n(648),m=n(2597),C=n(6135),y=n(8880),b=n(6244),w=n(8053),E=n(7066),B=n(2914),x=a.Object,k=a.Date,I=a.Error,S=a.EvalError,T=a.RangeError,L=a.ReferenceError,R=a.SyntaxError,Q=a.TypeError,O=a.URIError,M=a.PerformanceMark,D=a.WebAssembly,F=D&&D.CompileError||I,P=D&&D.LinkError||I,U=D&&D.RuntimeError||I,N=A("DOMException"),W=A("Set"),j=A("Map"),Y=j.prototype,G=s(Y.has),z=s(Y.get),_=s(Y.set),V=s(W.prototype.add),H=A("Object","keys"),J=s([].push),Z=s((!0).valueOf),K=s(1..valueOf),X=s("".valueOf),q=s(E),$=s(k.prototype.getTime),ee=u("structuredClone"),te="DataCloneError",ne="Transferring",re=function(e){return!c((function(){var t=new a.Set([7]),n=e(t),r=e(x(7));return n==t||!n.has(7)||"object"!=typeof r||7!=r}))&&e},oe=a.structuredClone,ie=o||(r=oe,!(!c((function(){var e=r(new a.AggregateError([1],ee,{cause:3}));return"AggregateError"!=e.name||1!=e.errors[0]||e.message!=ee||3!=e.cause}))&&r)),ae=!oe&&re((function(e){return new M(ee,{detail:e}).detail})),Ae=re(oe)||ae,se=function(e){throw new N("Uncloneable type: "+e,te)},ce=function(e,t){throw new N((t||"Cloning")+" of "+e+" cannot be properly polyfilled in this engine",te)},ue=function(e,t){if(d(e)&&se("Symbol"),!p(e))return e;if(t){if(G(t,e))return z(t,e)}else t=new j;var n,r,o,i,s,c,u,g,h,w,E=v(e),M=!1;switch(E){case"Array":o=[],M=!0;break;case"Object":o={},M=!0;break;case"Map":o=new j,M=!0;break;case"Set":o=new W,M=!0;break;case"RegExp":o=new RegExp(e.source,"flags"in e?e.flags:q(e));break;case"Error":switch(r=e.name){case"AggregateError":o=A("AggregateError")([]);break;case"EvalError":o=S();break;case"RangeError":o=T();break;case"ReferenceError":o=L();break;case"SyntaxError":o=R();break;case"TypeError":o=Q();break;case"URIError":o=O();break;case"CompileError":o=F();break;case"LinkError":o=P();break;case"RuntimeError":o=U();break;default:o=I()}M=!0;break;case"DOMException":o=new N(e.message,e.name),M=!0;break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":n=a[E],p(n)||ce(E),o=new n(ue(e.buffer,t),e.byteOffset,"DataView"===E?e.byteLength:e.length);break;case"DOMQuad":try{o=new DOMQuad(ue(e.p1,t),ue(e.p2,t),ue(e.p3,t),ue(e.p4,t))}catch(t){Ae?o=Ae(e):ce(E)}break;case"FileList":if(n=a.DataTransfer,f(n)){for(i=new n,s=0,c=b(e);s<c;s++)i.items.add(ue(e[s],t));o=i.files}else Ae?o=Ae(e):ce(E);break;case"ImageData":try{o=new ImageData(ue(e.data,t),e.width,e.height,{colorSpace:e.colorSpace})}catch(t){Ae?o=Ae(e):ce(E)}break;default:if(Ae)o=Ae(e);else switch(E){case"BigInt":o=x(e.valueOf());break;case"Boolean":o=x(Z(e));break;case"Number":o=x(K(e));break;case"String":o=x(X(e));break;case"Date":o=new k($(e));break;case"ArrayBuffer":(n=a.DataView)||"function"==typeof e.slice||ce(E);try{if("function"==typeof e.slice)o=e.slice(0);else for(c=e.byteLength,o=new ArrayBuffer(c),h=new n(e),w=new n(o),s=0;s<c;s++)w.setUint8(s,h.getUint8(s))}catch(e){throw new N("ArrayBuffer is detached",te)}break;case"SharedArrayBuffer":o=e;break;case"Blob":try{o=e.slice(0,e.size,e.type)}catch(e){ce(E)}break;case"DOMPoint":case"DOMPointReadOnly":n=a[E];try{o=n.fromPoint?n.fromPoint(e):new n(e.x,e.y,e.z,e.w)}catch(e){ce(E)}break;case"DOMRect":case"DOMRectReadOnly":n=a[E];try{o=n.fromRect?n.fromRect(e):new n(e.x,e.y,e.width,e.height)}catch(e){ce(E)}break;case"DOMMatrix":case"DOMMatrixReadOnly":n=a[E];try{o=n.fromMatrix?n.fromMatrix(e):new n(e)}catch(e){ce(E)}break;case"AudioData":case"VideoFrame":l(e.clone)||ce(E);try{o=e.clone()}catch(e){se(E)}break;case"File":try{o=new File([e],e.name,e)}catch(e){ce(E)}break;case"CryptoKey":case"GPUCompilationMessage":case"GPUCompilationInfo":case"ImageBitmap":case"RTCCertificate":case"WebAssembly.Module":ce(E);default:se(E)}}if(_(t,e,o),M)switch(E){case"Array":case"Object":for(u=H(e),s=0,c=b(u);s<c;s++)g=u[s],C(o,g,ue(e[g],t));break;case"Map":e.forEach((function(e,n){_(o,ue(n,t),ue(e,t))}));break;case"Set":e.forEach((function(e){V(o,ue(e,t))}));break;case"Error":y(o,"message",ue(e.message,t)),m(e,"cause")&&y(o,"cause",ue(e.cause,t)),"AggregateError"==r&&(o.errors=ue(e.errors,t));case"DOMException":B&&y(o,"stack",ue(e.stack,t))}return o},le=oe&&!c((function(){var e=new ArrayBuffer(8),t=oe(e,{transfer:[e]});return 0!=e.byteLength||8!=t.byteLength})),fe=function(e,t){if(!p(e))throw Q("Transfer option cannot be converted to a sequence");var n=[];g(e,(function(e){J(n,h(e))}));var r,o,i,A,s,c,u=0,d=b(n);if(le)for(A=oe(n,{transfer:n});u<d;)_(t,n[u],A[u++]);else for(;u<d;){if(r=n[u++],G(t,r))throw new N("Duplicate transferable",te);switch(o=v(r)){case"ImageBitmap":i=a.OffscreenCanvas,f(i)||ce(o,ne);try{(c=new i(r.width,r.height)).getContext("bitmaprenderer").transferFromImageBitmap(r),s=c.transferToImageBitmap()}catch(e){}break;case"AudioData":case"VideoFrame":l(r.clone)&&l(r.close)||ce(o,ne);try{s=r.clone(),r.close()}catch(e){}break;case"ArrayBuffer":case"MessagePort":case"OffscreenCanvas":case"ReadableStream":case"TransformStream":case"WritableStream":ce(o,ne)}if(void 0===s)throw new N("This object cannot be transferred: "+o,te);_(t,r,s)}};i({global:!0,enumerable:!0,sham:!le,forced:ie},{structuredClone:function(e){var t,n=w(arguments.length,1)>1?h(arguments[1]):void 0,r=n?n.transfer:void 0;return void 0!==r&&(t=new j,fe(r,t)),ue(e,t)}})},2564:function(e,t,n){var r=n(2109),o=n(7854),i=n(2104),a=n(614),A=n(8113),s=n(206),c=n(8053),u=/MSIE .\./.test(A),l=o.Function,f=function(e){return function(t,n){var r=c(arguments.length,1)>2,o=a(t)?t:l(t),A=r?s(arguments,2):void 0;return e(r?function(){i(o,this,A)}:o,n)}};r({global:!0,bind:!0,forced:u},{setTimeout:f(o.setTimeout),setInterval:f(o.setInterval)})},1637:function(e,t,n){"use strict";n(6992);var r=n(2109),o=n(7854),i=n(5005),a=n(6916),A=n(1702),s=n(590),c=n(1320),u=n(2248),l=n(8003),f=n(4994),p=n(9909),d=n(5787),g=n(614),h=n(2597),v=n(9974),m=n(648),C=n(9670),y=n(111),b=n(1340),w=n(30),E=n(9114),B=n(8554),x=n(1246),k=n(8053),I=n(5112),S=n(4362),T=I("iterator"),L="URLSearchParams",R="URLSearchParamsIterator",Q=p.set,O=p.getterFor(L),M=p.getterFor(R),D=i("fetch"),F=i("Request"),P=i("Headers"),U=F&&F.prototype,N=P&&P.prototype,W=o.RegExp,j=o.TypeError,Y=o.decodeURIComponent,G=o.encodeURIComponent,z=A("".charAt),_=A([].join),V=A([].push),H=A("".replace),J=A([].shift),Z=A([].splice),K=A("".split),X=A("".slice),q=/\+/g,$=Array(4),ee=function(e){return $[e-1]||($[e-1]=W("((?:%[\\da-f]{2}){"+e+"})","gi"))},te=function(e){try{return Y(e)}catch(t){return e}},ne=function(e){var t=H(e,q," "),n=4;try{return Y(t)}catch(e){for(;n;)t=H(t,ee(n--),te);return t}},re=/[!'()~]|%20/g,oe={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},ie=function(e){return oe[e]},ae=function(e){return H(G(e),re,ie)},Ae=f((function(e,t){Q(this,{type:R,iterator:B(O(e).entries),kind:t})}),"Iterator",(function(){var e=M(this),t=e.kind,n=e.iterator.next(),r=n.value;return n.done||(n.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),n}),!0),se=function(e){this.entries=[],this.url=null,void 0!==e&&(y(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===z(e,0)?X(e,1):e:b(e)))};se.prototype={type:L,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,n,r,o,i,A,s,c=x(e);if(c)for(n=(t=B(e,c)).next;!(r=a(n,t)).done;){if(i=(o=B(C(r.value))).next,(A=a(i,o)).done||(s=a(i,o)).done||!a(i,o).done)throw j("Expected sequence with length 2");V(this.entries,{key:b(A.value),value:b(s.value)})}else for(var u in e)h(e,u)&&V(this.entries,{key:u,value:b(e[u])})},parseQuery:function(e){if(e)for(var t,n,r=K(e,"&"),o=0;o<r.length;)(t=r[o++]).length&&(n=K(t,"="),V(this.entries,{key:ne(J(n)),value:ne(_(n,"="))}))},serialize:function(){for(var e,t=this.entries,n=[],r=0;r<t.length;)e=t[r++],V(n,ae(e.key)+"="+ae(e.value));return _(n,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var ce=function(){d(this,ue);var e=arguments.length>0?arguments[0]:void 0;Q(this,new se(e))},ue=ce.prototype;if(u(ue,{append:function(e,t){k(arguments.length,2);var n=O(this);V(n.entries,{key:b(e),value:b(t)}),n.updateURL()},delete:function(e){k(arguments.length,1);for(var t=O(this),n=t.entries,r=b(e),o=0;o<n.length;)n[o].key===r?Z(n,o,1):o++;t.updateURL()},get:function(e){k(arguments.length,1);for(var t=O(this).entries,n=b(e),r=0;r<t.length;r++)if(t[r].key===n)return t[r].value;return null},getAll:function(e){k(arguments.length,1);for(var t=O(this).entries,n=b(e),r=[],o=0;o<t.length;o++)t[o].key===n&&V(r,t[o].value);return r},has:function(e){k(arguments.length,1);for(var t=O(this).entries,n=b(e),r=0;r<t.length;)if(t[r++].key===n)return!0;return!1},set:function(e,t){k(arguments.length,1);for(var n,r=O(this),o=r.entries,i=!1,a=b(e),A=b(t),s=0;s<o.length;s++)(n=o[s]).key===a&&(i?Z(o,s--,1):(i=!0,n.value=A));i||V(o,{key:a,value:A}),r.updateURL()},sort:function(){var e=O(this);S(e.entries,(function(e,t){return e.key>t.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,n=O(this).entries,r=v(e,arguments.length>1?arguments[1]:void 0),o=0;o<n.length;)r((t=n[o++]).value,t.key,this)},keys:function(){return new Ae(this,"keys")},values:function(){return new Ae(this,"values")},entries:function(){return new Ae(this,"entries")}},{enumerable:!0}),c(ue,T,ue.entries,{name:"entries"}),c(ue,"toString",(function(){return O(this).serialize()}),{enumerable:!0}),l(ce,L),r({global:!0,forced:!s},{URLSearchParams:ce}),!s&&g(P)){var le=A(N.has),fe=A(N.set),pe=function(e){if(y(e)){var t,n=e.body;if(m(n)===L)return t=e.headers?new P(e.headers):new P,le(t,"content-type")||fe(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),w(e,{body:E(0,b(n)),headers:E(0,t)})}return e};if(g(D)&&r({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return D(e,arguments.length>1?pe(arguments[1]):{})}}),g(F)){var de=function(e){return d(this,U),new F(e,arguments.length>1?pe(arguments[1]):{})};U.constructor=de,de.prototype=U,r({global:!0,forced:!0},{Request:de})}}e.exports={URLSearchParams:ce,getState:O}},285:function(e,t,n){"use strict";n(8783);var r,o=n(2109),i=n(9781),a=n(590),A=n(7854),s=n(9974),c=n(1702),u=n(6048).f,l=n(1320),f=n(5787),p=n(2597),d=n(1574),g=n(8457),h=n(1589),v=n(8710).codeAt,m=n(3197),C=n(1340),y=n(8003),b=n(8053),w=n(1637),E=n(9909),B=E.set,x=E.getterFor("URL"),k=w.URLSearchParams,I=w.getState,S=A.URL,T=A.TypeError,L=A.parseInt,R=Math.floor,Q=Math.pow,O=c("".charAt),M=c(/./.exec),D=c([].join),F=c(1..toString),P=c([].pop),U=c([].push),N=c("".replace),W=c([].shift),j=c("".split),Y=c("".slice),G=c("".toLowerCase),z=c([].unshift),_="Invalid scheme",V="Invalid host",H="Invalid port",J=/[a-z]/i,Z=/[\d+-.a-z]/i,K=/\d/,X=/^0x/i,q=/^[0-7]+$/,$=/^\d+$/,ee=/^[\da-f]+$/i,te=/[\0\t\n\r #%/:<>?@[\\\]^|]/,ne=/[\0\t\n\r #/:<>?@[\\\]^|]/,re=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,oe=/[\t\n\r]/g,ie=function(e){var t,n,r,o;if("number"==typeof e){for(t=[],n=0;n<4;n++)z(t,e%256),e=R(e/256);return D(t,".")}if("object"==typeof e){for(t="",r=function(e){for(var t=null,n=1,r=null,o=0,i=0;i<8;i++)0!==e[i]?(o>n&&(t=r,n=o),r=null,o=0):(null===r&&(r=i),++o);return o>n&&(t=r,n=o),t}(e),n=0;n<8;n++)o&&0===e[n]||(o&&(o=!1),r===n?(t+=n?":":"::",o=!0):(t+=F(e[n],16),n<7&&(t+=":")));return"["+t+"]"}return e},ae={},Ae=d({},ae,{" ":1,'"':1,"<":1,">":1,"`":1}),se=d({},Ae,{"#":1,"?":1,"{":1,"}":1}),ce=d({},se,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),ue=function(e,t){var n=v(e,0);return n>32&&n<127&&!p(t,e)?e:encodeURIComponent(e)},le={ftp:21,file:null,http:80,https:443,ws:80,wss:443},fe=function(e,t){var n;return 2==e.length&&M(J,O(e,0))&&(":"==(n=O(e,1))||!t&&"|"==n)},pe=function(e){var t;return e.length>1&&fe(Y(e,0,2))&&(2==e.length||"/"===(t=O(e,2))||"\\"===t||"?"===t||"#"===t)},de=function(e){return"."===e||"%2e"===G(e)},ge={},he={},ve={},me={},Ce={},ye={},be={},we={},Ee={},Be={},xe={},ke={},Ie={},Se={},Te={},Le={},Re={},Qe={},Oe={},Me={},De={},Fe=function(e,t,n){var r,o,i,a=C(e);if(t){if(o=this.parse(a))throw T(o);this.searchParams=null}else{if(void 0!==n&&(r=new Fe(n,!0)),o=this.parse(a,null,r))throw T(o);(i=I(new k)).bindURL(this),this.searchParams=i}};Fe.prototype={type:"URL",parse:function(e,t,n){var o,i,a,A,s,c=this,u=t||ge,l=0,f="",d=!1,v=!1,m=!1;for(e=C(e),t||(c.scheme="",c.username="",c.password="",c.host=null,c.port=null,c.path=[],c.query=null,c.fragment=null,c.cannotBeABaseURL=!1,e=N(e,re,"")),e=N(e,oe,""),o=g(e);l<=o.length;){switch(i=o[l],u){case ge:if(!i||!M(J,i)){if(t)return _;u=ve;continue}f+=G(i),u=he;break;case he:if(i&&(M(Z,i)||"+"==i||"-"==i||"."==i))f+=G(i);else{if(":"!=i){if(t)return _;f="",u=ve,l=0;continue}if(t&&(c.isSpecial()!=p(le,f)||"file"==f&&(c.includesCredentials()||null!==c.port)||"file"==c.scheme&&!c.host))return;if(c.scheme=f,t)return void(c.isSpecial()&&le[c.scheme]==c.port&&(c.port=null));f="","file"==c.scheme?u=Se:c.isSpecial()&&n&&n.scheme==c.scheme?u=me:c.isSpecial()?u=we:"/"==o[l+1]?(u=Ce,l++):(c.cannotBeABaseURL=!0,U(c.path,""),u=Oe)}break;case ve:if(!n||n.cannotBeABaseURL&&"#"!=i)return _;if(n.cannotBeABaseURL&&"#"==i){c.scheme=n.scheme,c.path=h(n.path),c.query=n.query,c.fragment="",c.cannotBeABaseURL=!0,u=De;break}u="file"==n.scheme?Se:ye;continue;case me:if("/"!=i||"/"!=o[l+1]){u=ye;continue}u=Ee,l++;break;case Ce:if("/"==i){u=Be;break}u=Qe;continue;case ye:if(c.scheme=n.scheme,i==r)c.username=n.username,c.password=n.password,c.host=n.host,c.port=n.port,c.path=h(n.path),c.query=n.query;else if("/"==i||"\\"==i&&c.isSpecial())u=be;else if("?"==i)c.username=n.username,c.password=n.password,c.host=n.host,c.port=n.port,c.path=h(n.path),c.query="",u=Me;else{if("#"!=i){c.username=n.username,c.password=n.password,c.host=n.host,c.port=n.port,c.path=h(n.path),c.path.length--,u=Qe;continue}c.username=n.username,c.password=n.password,c.host=n.host,c.port=n.port,c.path=h(n.path),c.query=n.query,c.fragment="",u=De}break;case be:if(!c.isSpecial()||"/"!=i&&"\\"!=i){if("/"!=i){c.username=n.username,c.password=n.password,c.host=n.host,c.port=n.port,u=Qe;continue}u=Be}else u=Ee;break;case we:if(u=Ee,"/"!=i||"/"!=O(f,l+1))continue;l++;break;case Ee:if("/"!=i&&"\\"!=i){u=Be;continue}break;case Be:if("@"==i){d&&(f="%40"+f),d=!0,a=g(f);for(var y=0;y<a.length;y++){var b=a[y];if(":"!=b||m){var w=ue(b,ce);m?c.password+=w:c.username+=w}else m=!0}f=""}else if(i==r||"/"==i||"?"==i||"#"==i||"\\"==i&&c.isSpecial()){if(d&&""==f)return"Invalid authority";l-=g(f).length+1,f="",u=xe}else f+=i;break;case xe:case ke:if(t&&"file"==c.scheme){u=Le;continue}if(":"!=i||v){if(i==r||"/"==i||"?"==i||"#"==i||"\\"==i&&c.isSpecial()){if(c.isSpecial()&&""==f)return V;if(t&&""==f&&(c.includesCredentials()||null!==c.port))return;if(A=c.parseHost(f))return A;if(f="",u=Re,t)return;continue}"["==i?v=!0:"]"==i&&(v=!1),f+=i}else{if(""==f)return V;if(A=c.parseHost(f))return A;if(f="",u=Ie,t==ke)return}break;case Ie:if(!M(K,i)){if(i==r||"/"==i||"?"==i||"#"==i||"\\"==i&&c.isSpecial()||t){if(""!=f){var E=L(f,10);if(E>65535)return H;c.port=c.isSpecial()&&E===le[c.scheme]?null:E,f=""}if(t)return;u=Re;continue}return H}f+=i;break;case Se:if(c.scheme="file","/"==i||"\\"==i)u=Te;else{if(!n||"file"!=n.scheme){u=Qe;continue}if(i==r)c.host=n.host,c.path=h(n.path),c.query=n.query;else if("?"==i)c.host=n.host,c.path=h(n.path),c.query="",u=Me;else{if("#"!=i){pe(D(h(o,l),""))||(c.host=n.host,c.path=h(n.path),c.shortenPath()),u=Qe;continue}c.host=n.host,c.path=h(n.path),c.query=n.query,c.fragment="",u=De}}break;case Te:if("/"==i||"\\"==i){u=Le;break}n&&"file"==n.scheme&&!pe(D(h(o,l),""))&&(fe(n.path[0],!0)?U(c.path,n.path[0]):c.host=n.host),u=Qe;continue;case Le:if(i==r||"/"==i||"\\"==i||"?"==i||"#"==i){if(!t&&fe(f))u=Qe;else if(""==f){if(c.host="",t)return;u=Re}else{if(A=c.parseHost(f))return A;if("localhost"==c.host&&(c.host=""),t)return;f="",u=Re}continue}f+=i;break;case Re:if(c.isSpecial()){if(u=Qe,"/"!=i&&"\\"!=i)continue}else if(t||"?"!=i)if(t||"#"!=i){if(i!=r&&(u=Qe,"/"!=i))continue}else c.fragment="",u=De;else c.query="",u=Me;break;case Qe:if(i==r||"/"==i||"\\"==i&&c.isSpecial()||!t&&("?"==i||"#"==i)){if(".."===(s=G(s=f))||"%2e."===s||".%2e"===s||"%2e%2e"===s?(c.shortenPath(),"/"==i||"\\"==i&&c.isSpecial()||U(c.path,"")):de(f)?"/"==i||"\\"==i&&c.isSpecial()||U(c.path,""):("file"==c.scheme&&!c.path.length&&fe(f)&&(c.host&&(c.host=""),f=O(f,0)+":"),U(c.path,f)),f="","file"==c.scheme&&(i==r||"?"==i||"#"==i))for(;c.path.length>1&&""===c.path[0];)W(c.path);"?"==i?(c.query="",u=Me):"#"==i&&(c.fragment="",u=De)}else f+=ue(i,se);break;case Oe:"?"==i?(c.query="",u=Me):"#"==i?(c.fragment="",u=De):i!=r&&(c.path[0]+=ue(i,ae));break;case Me:t||"#"!=i?i!=r&&("'"==i&&c.isSpecial()?c.query+="%27":c.query+="#"==i?"%23":ue(i,ae)):(c.fragment="",u=De);break;case De:i!=r&&(c.fragment+=ue(i,Ae))}l++}},parseHost:function(e){var t,n,r;if("["==O(e,0)){if("]"!=O(e,e.length-1))return V;if(t=function(e){var t,n,r,o,i,a,A,s=[0,0,0,0,0,0,0,0],c=0,u=null,l=0,f=function(){return O(e,l)};if(":"==f()){if(":"!=O(e,1))return;l+=2,u=++c}for(;f();){if(8==c)return;if(":"!=f()){for(t=n=0;n<4&&M(ee,f());)t=16*t+L(f(),16),l++,n++;if("."==f()){if(0==n)return;if(l-=n,c>6)return;for(r=0;f();){if(o=null,r>0){if(!("."==f()&&r<4))return;l++}if(!M(K,f()))return;for(;M(K,f());){if(i=L(f(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++r&&4!=r||c++}if(4!=r)return;break}if(":"==f()){if(l++,!f())return}else if(f())return;s[c++]=t}else{if(null!==u)return;l++,u=++c}}if(null!==u)for(a=c-u,c=7;0!=c&&a>0;)A=s[c],s[c--]=s[u+a-1],s[u+--a]=A;else if(8!=c)return;return s}(Y(e,1,-1)),!t)return V;this.host=t}else if(this.isSpecial()){if(e=m(e),M(te,e))return V;if(t=function(e){var t,n,r,o,i,a,A,s=j(e,".");if(s.length&&""==s[s.length-1]&&s.length--,(t=s.length)>4)return e;for(n=[],r=0;r<t;r++){if(""==(o=s[r]))return e;if(i=10,o.length>1&&"0"==O(o,0)&&(i=M(X,o)?16:8,o=Y(o,8==i?1:2)),""===o)a=0;else{if(!M(10==i?$:8==i?q:ee,o))return e;a=L(o,i)}U(n,a)}for(r=0;r<t;r++)if(a=n[r],r==t-1){if(a>=Q(256,5-t))return null}else if(a>255)return null;for(A=P(n),r=0;r<n.length;r++)A+=n[r]*Q(256,3-r);return A}(e),null===t)return V;this.host=t}else{if(M(ne,e))return V;for(t="",n=g(e),r=0;r<n.length;r++)t+=ue(n[r],ae);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"==this.scheme},includesCredentials:function(){return""!=this.username||""!=this.password},isSpecial:function(){return p(le,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"==this.scheme&&1==t&&fe(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,n=e.username,r=e.password,o=e.host,i=e.port,a=e.path,A=e.query,s=e.fragment,c=t+":";return null!==o?(c+="//",e.includesCredentials()&&(c+=n+(r?":"+r:"")+"@"),c+=ie(o),null!==i&&(c+=":"+i)):"file"==t&&(c+="//"),c+=e.cannotBeABaseURL?a[0]:a.length?"/"+D(a,"/"):"",null!==A&&(c+="?"+A),null!==s&&(c+="#"+s),c},setHref:function(e){var t=this.parse(e);if(t)throw T(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"==e)try{return new Pe(e.path[0]).origin}catch(e){return"null"}return"file"!=e&&this.isSpecial()?e+"://"+ie(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse(C(e)+":",ge)},getUsername:function(){return this.username},setUsername:function(e){var t=g(C(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var n=0;n<t.length;n++)this.username+=ue(t[n],ce)}},getPassword:function(){return this.password},setPassword:function(e){var t=g(C(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var n=0;n<t.length;n++)this.password+=ue(t[n],ce)}},getHost:function(){var e=this.host,t=this.port;return null===e?"":null===t?ie(e):ie(e)+":"+t},setHost:function(e){this.cannotBeABaseURL||this.parse(e,xe)},getHostname:function(){var e=this.host;return null===e?"":ie(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,ke)},getPort:function(){var e=this.port;return null===e?"":C(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""==(e=C(e))?this.port=null:this.parse(e,Ie))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+D(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,Re))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""==(e=C(e))?this.query=null:("?"==O(e,0)&&(e=Y(e,1)),this.query="",this.parse(e,Me)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!=(e=C(e))?("#"==O(e,0)&&(e=Y(e,1)),this.fragment="",this.parse(e,De)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var Pe=function(e){var t=f(this,Ue),n=b(arguments.length,1)>1?arguments[1]:void 0,r=B(t,new Fe(e,!1,n));i||(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},Ue=Pe.prototype,Ne=function(e,t){return{get:function(){return x(this)[e]()},set:t&&function(e){return x(this)[t](e)},configurable:!0,enumerable:!0}};if(i&&u(Ue,{href:Ne("serialize","setHref"),origin:Ne("getOrigin"),protocol:Ne("getProtocol","setProtocol"),username:Ne("getUsername","setUsername"),password:Ne("getPassword","setPassword"),host:Ne("getHost","setHost"),hostname:Ne("getHostname","setHostname"),port:Ne("getPort","setPort"),pathname:Ne("getPathname","setPathname"),search:Ne("getSearch","setSearch"),searchParams:Ne("getSearchParams"),hash:Ne("getHash","setHash")}),l(Ue,"toJSON",(function(){return x(this).serialize()}),{enumerable:!0}),l(Ue,"toString",(function(){return x(this).serialize()}),{enumerable:!0}),S){var We=S.createObjectURL,je=S.revokeObjectURL;We&&l(Pe,"createObjectURL",s(We,S)),je&&l(Pe,"revokeObjectURL",s(je,S))}y(Pe,"URL"),o({global:!0,forced:!a,sham:!i},{URL:Pe})},3753:function(e,t,n){"use strict";var r=n(2109),o=n(6916);r({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return o(URL.prototype.toString,this)}})},8594:function(e,t,n){n(2526),n(1817),n(2443),n(2401),n(8722),n(2165),n(9007),n(6066),n(3510),n(1840),n(6982),n(2159),n(6649),n(9341),n(543),n(1703),n(6647),n(9170),n(2120),n(2262),n(2222),n(545),n(6541),n(3290),n(7327),n(9826),n(4553),n(4944),n(6535),n(9554),n(1038),n(6699),n(2772),n(9753),n(6992),n(9600),n(4986),n(1249),n(6572),n(5827),n(6644),n(5069),n(7042),n(5212),n(2707),n(8706),n(561),n(3792),n(9244),n(8264),n(6938),n(9575),n(6716),n(3016),n(3843),n(1801),n(9550),n(8733),n(5735),n(6078),n(3710),n(2130),n(4812),n(4855),n(8309),n(5837),n(8862),n(3706),n(1532),n(9752),n(2376),n(3181),n(3484),n(2388),n(8621),n(403),n(4755),n(5438),n(332),n(658),n(197),n(4914),n(2420),n(160),n(970),n(2703),n(3689),n(9653),n(3299),n(5192),n(3161),n(4048),n(8285),n(4363),n(5994),n(1874),n(9494),n(1354),n(6977),n(5147),n(9601),n(8011),n(9595),n(3321),n(9070),n(5500),n(9720),n(3371),n(8559),n(5003),n(9337),n(6210),n(489),n(6314),n(3304),n(1825),n(8410),n(2200),n(7941),n(4869),n(3952),n(7227),n(514),n(8304),n(1539),n(6833),n(4678),n(1058),n(8674),n(7922),n(4668),n(7727),n(224),n(2419),n(9596),n(2586),n(4819),n(5683),n(9361),n(1037),n(5898),n(7318),n(4361),n(3593),n(9532),n(1299),n(4603),n(8450),n(4916),n(2087),n(8386),n(7601),n(9714),n(189),n(4506),n(9841),n(7852),n(4953),n(2023),n(8783),n(4723),n(6373),n(6528),n(3112),n(8992),n(2481),n(5306),n(8757),n(4765),n(3123),n(6755),n(3650),n(3210),n(8702),n(5674),n(5218),n(4475),n(7929),n(915),n(9253),n(2125),n(8830),n(8734),n(9254),n(7268),n(7397),n(86),n(623),n(4197),n(6495),n(7145),n(5109),n(5125),n(2472),n(9743),n(8255),n(9135),n(8675),n(2990),n(8927),n(3105),n(5035),n(4345),n(7174),n(2846),n(8145),n(4731),n(7209),n(6319),n(8867),n(7789),n(3739),n(5206),n(9368),n(4483),n(2056),n(3462),n(678),n(7462),n(3824),n(5021),n(2974),n(5016),n(8221),n(4129),n(8478),n(5505),n(7479),n(4747),n(3948),n(7714),n(2801),n(1174),n(4633),n(5844),n(1295),n(2564),n(285),n(3753),n(1637),n(857)},2021:function(e,t,n){"use strict";var r=n(7537),o=n.n(r),i=n(3645),a=n.n(i),A=n(1667),s=n.n(A),c=new URL(n(8613),n.b),u=new URL(n(5442),n.b),l=new URL(n(5986),n.b),f=a()(o()),p=s()(c),d=s()(u),g=s()(l);f.push([e.id,'@charset "UTF-8";@keyframes op-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@-webkit-keyframes op-slideOutDown{from{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}to{visibility:hidden;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@keyframes op-slideOutDown{from{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}to{visibility:hidden;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@-webkit-keyframes op-slideInUp{from{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);opacity:1}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes op-slideInUp{from{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);opacity:1}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@font-face{font-family:"frameIcon";src:url('+p+") format('truetype');font-weight:normal;font-style:normal}@font-face{font-family:'op-icons';src:url("+d+") format('truetype');font-weight:normal;font-style:normal}@font-face{font-family:'op-seek-icons';src:url("+g+') format(\'truetype\');font-weight:normal;font-style:normal}:root{--op-accent-color:#50e3c2}.op-wrapper.ovenplayer{position:relative;max-height:100%;overflow:hidden;zoom:1 !important;width:100%;display:block;font-family:Helvetica,Arial,sans-serif;background-color:#000;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;font-size:14px;font-weight:100;outline:0;-webkit-touch-callout:none;user-select:none}.op-wrapper.ovenplayer *{box-sizing:inherit}.op-wrapper.ovenplayer object{width:100%;height:100%;position:absolute}.op-wrapper.ovenplayer:before,.op-wrapper.ovenplayer:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-wrapper.ovenplayer *,.op-wrapper.ovenplayer *:before,.op-wrapper.ovenplayer *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-wrapper.ovenplayer.op-fullscreen{width:100% !important;height:100% !important;top:0;right:0;bottom:0;left:0;z-index:9999;margin:0;position:fixed}.op-wrapper.ovenplayer.op-fullscreen .op-watermark-container,.op-wrapper.ovenplayer.op-fullscreen .op-thumbnail-container{width:100vw;max-width:calc(100vh * 16 / 9);height:calc(100vw * 9 / 16);max-height:100vh;top:50%;left:50%;transform:translate(-50%, -50%)}.op-wrapper.ovenplayer.op-autohide{cursor:none}.op-wrapper.ovenplayer.op-autohide .op-bottom-panel{-webkit-animation-name:op-slideOutDown;animation-name:op-slideOutDown;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.op-wrapper.ovenplayer.op-autohide .op-progressbar-container,.op-wrapper.ovenplayer.op-autohide .op-controls .op-button{cursor:none}.op-wrapper.ovenplayer.op-autohide .op-caption-text-container{bottom:25px}.op-wrapper.ovenplayer.op-no-controls .op-controls-container{display:none !important}.op-wrapper.ovenplayer .op-ratio{padding-bottom:56.25%}.op-wrapper.ovenplayer ::-webkit-scrollbar{width:5px;height:8px}.op-wrapper.ovenplayer ::-webkit-scrollbar-button:start:decrement,.op-wrapper.ovenplayer ::-webkit-scrollbar-button:end:increment{display:block;height:3px;background:#2f2f3e}.op-wrapper.ovenplayer ::-webkit-scrollbar-track{background:#2f2f3e;-webkit-border-radius:10px;border-radius:10px}.op-wrapper.ovenplayer ::-webkit-scrollbar-thumb{height:50px;width:50px;background:#606071;-webkit-border-radius:8px;border-radius:8px}.op-wrapper.ovenplayer .op-clear{color:inherit;background-color:transparent;padding:0;margin:0;float:none;font-family:Helvetica,Arial,sans-serif;font-size:1em;line-height:1em;list-style:none;text-transform:none;vertical-align:baseline;border:0;font-variant:inherit;font-stretch:inherit;-webkit-tap-highlight-color:rgba(255,255,255,0)}.op-player{position:absolute;top:0;height:100%;width:100%}.op-player .op-core-ui-wrapper{position:relative;height:100%}.op-player .op-media-element-container{position:absolute;left:0px;top:0px;width:100%;height:100%}.op-player .op-media-element-container video{position:absolute;left:0;top:0;width:100%;height:100%}.op-player .op-media-element-container object{width:100%;height:100%}.op-ads{position:absolute;height:100%;width:100%;padding-bottom:34px;top:0}.op-ads>div{position:absolute !important;width:100% !important;height:100% !important}.op-ads>div iframe{pointer-events:auto}.op-ads video.op-ads-vast-video{background-color:#000;position:absolute;width:100%;height:100%;left:0;top:0;z-index:1}.op-ads .op-ads-button{bottom:36px;cursor:default;margin-right:4px;pointer-events:auto;position:absolute;right:0;z-index:1;width:auto !important;height:auto !important;border-radius:4px;background-color:rgba(18,18,28,0.7);min-width:155px;display:none}.op-ads .op-ads-button .op-ads-textview{color:#e6e6e6;font-weight:normal;font-size:11px;padding:6px 12px;text-align:center;display:inline-block;width:100%;vertical-align:middle}.op-ads .op-ads-button .videoAdUiAction{padding:8px 24px;cursor:pointer;direction:ltr;font-weight:normal;font-size:20px;border:1px solid rgba(255,255,255,0.5)}.op-ads .op-ads-button .videoAdUiAction:hover{border-radius:4px;border:1px solid #fff}.op-ads .op-ads-button .videoAdUiAction i{display:inline-block;width:auto}.op-button{display:inline-block;border:none;background:transparent;padding:0;color:inherit;text-align:inherit;overflow:hidden;font-weight:100;text-indent:0 !important}.op-button:focus,.op-button{outline:0}i.op-con{font-family:"op-icons","op-seek-icons";font-style:normal;font-weight:normal;speak:none;font-size:inherit;width:auto;font-size:30px;line-height:30px;display:block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:pointer}i.op-con.disable{color:#4f4f4f}i.op-con.op-close-icon::before{content:"\\e900"}i.op-con.op-pause-big::before{content:"\\e911"}i.op-con.op-fullscreen-compress::before{content:"\\e901"}i.op-con.op-fullscreen-expand::before{content:"\\e902"}i.op-con.op-arrow-left::before{content:"\\e903"}i.op-con.op-arrow-right::before{content:"\\e909"}i.op-con.op-empty-video::before{content:"\\e904"}i.op-con.op-play::before{content:"\\e906"}i.op-con.op-replay::before{content:"\\e908"}i.op-con.op-seek-back::before{content:"\\e920"}i.op-con.op-seek-forward::before{content:"\\e921"}i.op-con.op-playlist-icon::before{content:"\\e907"}i.op-con.op-replay-big::before{content:"\\e908"}i.op-con.op-setting::before{content:"\\e90A"}i.op-con.op-pause::before{content:"\\e90C"}i.op-con.op-volume-small{display:none;margin-top:-1px}i.op-con.op-volume-small::before{content:"\\e90D"}i.op-con.op-volume-mute{display:none}i.op-con.op-volume-mute::before{content:"\\e90E"}i.op-con.op-volume-max::before{content:"\\e90F"}i.op-con.op-play-big::before{content:"\\e910"}i.op-con.op-warning::before{content:"\\e912"}.op-badge{display:inline-block;padding:.75em .714em .714em .68em;font-size:1em;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.286em;background-color:#12121c}.op-playlist{position:absolute;width:100%;height:100%;left:0;top:0;padding:2.857em;background:#000;z-index:6}.op-playlist .op-badge{position:absolute;top:.857em;right:.857em;opacity:.7}.op-playlist .btn-left{float:left;font-size:2.857em}.op-playlist .btn-right{float:right;font-size:2.857em}.op-playlist .op-playlist-header{font-size:2.857em;font-weight:bold}.op-playlist .op-playlist-header:after{display:block;content:\'\';clear:both}.op-playlist .op-playlist-header .op-con.op-close-icon{float:right}.op-playlist .op-playlist-body{height:100%;overflow:hidden;position:relative}.op-playlist .op-playlist-body .op-playlist-body-arrows{margin-top:-15px;position:absolute;top:50%;height:30px;-ms-transform:translateY(-50%);transform:translateY(-50%);width:100%;left:0}.op-playlist .op-playlist-body .op-playlist-body-container{width:100%;height:100%;position:relative;margin-right:auto;margin-left:auto;max-width:992px}.op-playlist .op-playlist-body .op-playlist-body-container .op-playlist-body-center{margin:0;position:absolute;top:50%;padding-right:3em;padding-left:3em;-ms-transform:translateY(-50%);transform:translateY(-50%);width:100%}.op-playlist .op-playlist-body .op-playlist-body-row{margin-right:-15px;margin-left:-15px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card{padding-right:15px;padding-left:15px;margin:15px 0;-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%;cursor:pointer}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card.active{color:#50e3c2;color:var(--op-accent-color)}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card.active .op-playlist-card-thumbnail{border-color:#50e3c2;border-color:var(--op-accent-color)}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail{position:relative;display:block;width:100%;padding:0;overflow:hidden;border:.214em solid transparent;background-color:#000}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail img{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail.empty{background-color:#bababa}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail.empty>i{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff !important;font-size:1.6em !important}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail::before{padding-top:56.25%;display:block;content:""}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-title{margin-top:.857em;font-size:1.429em;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.op-message-box{position:absolute;top:0;left:0;width:100%;height:100%;z-index:4}.op-message-box .op-message-container{position:absolute;top:45%;margin-top:-35px;width:100%;padding:0 12px;text-align:center}.op-message-box .op-message-container .op-message-text{display:inline-block;background-color:rgba(18,18,28,0.3);padding:.8em 1.2em;word-wrap:break-word;max-width:80%;border-radius:4px;cursor:pointer}.op-message-box .op-message-container .op-message-text .op-message-description{font-size:12px;margin-top:12px;color:#999}.op-message-box .op-message-container .op-message-icon{display:inline-block;margin-top:12px;width:100%}.op-message-box .op-message-container .op-message-icon i.op-con{cursor:pointer;font-size:80px;width:80px;height:80px;line-height:80px;display:inline-block;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-message-box.op-message-box-default-cursor .op-message-container .op-message-text{cursor:default}.op-message-box.op-message-box-default-cursor .op-message-container .op-message-icon i.op-con{cursor:default}.op-bigbutton-container{cursor:pointer;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center;z-index:5}.op-bigbutton-container .op-bigbutton{width:80px;height:80px;display:block;font-size:80px;line-height:80px;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-thumbnail-container{position:absolute;width:100%;height:100%;top:0;left:0;z-index:2;pointer-events:none}.op-thumbnail-container .op-thumbnail-wrapper{position:absolute;left:0;top:0;width:100%;height:100%}.op-thumbnail-container .op-thumbnail-wrapper img{width:100%;height:100%}.op-thumbnail-container .op-thumbnail-wrapper .op-thumbnail-header{position:absolute;left:1rem;top:1rem;padding:0 .5rem;font-size:2.857em;font-weight:bold;line-height:1.4;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-thumbnail-container .op-thumbnail-wrapper .op-thumbnail-header:after{display:block;content:\'\';clear:both}.op-watermark-container{position:absolute;width:100%;height:100%;top:0;left:0;z-index:3}.op-watermark-container .op-watermark{position:absolute;display:inline-block}.op-watermark-container .op-watermark img{width:100%;height:100%}.op-watermark-container .op-watermark .op-watermark-text{font-size:14px}.op-setting-panel{position:absolute;bottom:55px;right:12px;overflow-y:auto;max-height:100%;width:260px;user-select:none;background-color:rgba(28,28,28,0.9);text-shadow:0 0 2px rgba(0,0,0,0.5);z-index:8}.op-setting-panel.background{display:none}.op-setting-panel .op-setting-title,.op-setting-panel .op-setting-item{width:100%;height:38px;line-height:38px;cursor:pointer;outline:none;text-align:left}.op-setting-panel .op-setting-title-container .op-setting-title .op-setting-title-title{padding-left:12px;font-weight:bold}.op-setting-panel .op-setting-title-container .op-setting-title .op-setting-title-previcon{padding:0 0 0 12px;margin-right:-6px}.op-setting-panel .op-setting-item-container .op-setting-item:hover{background-color:rgba(255,255,255,0.1)}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-title{padding-left:12px}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-nexticon{float:right;padding-right:12px;margin-left:-6px}.op-setting-panel .op-setting-item-container .op-setting-item span.op-setting-item-value{float:right;padding-right:12px}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-checked{padding-left:12px;visibility:hidden}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-checked.op-show{visibility:visible}.op-controls-container{display:none}.op-controls-container .op-bottom-panel{position:absolute;left:0px;bottom:0px;width:100%;z-index:5;-webkit-animation-name:op-slideInUp;animation-name:op-slideInUp;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.op-controls-container .op-bottom-panel .op-gradient-bottom{position:absolute;width:100%;height:100%;background-color:rgba(18,18,18,0.5);pointer-events:none}.op-controls-container .op-bottom-panel .op-progressbar-container{display:block;position:relative;width:100%;height:4px;bottom:50px}.op-controls-container .op-bottom-panel .op-progressbar-container.op-progressbar-container-disabled{cursor:default}.op-controls-container .op-bottom-panel .op-progressbar-container .op-progressbar-padding{position:absolute;width:100%;height:15px;bottom:-5px;cursor:pointer}.op-controls-container .op-bottom-panel .op-controls{position:relative;width:100%;height:50px;text-align:left;overflow:hidden}.op-controls-container .op-bottom-panel .op-controls:after{content:\'\';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-setting-button{position:relative;margin-right:12px}.op-controls-container .op-bottom-panel .op-controls .op-playlist-button{position:relative;margin-right:12px}.op-controls-container .op-bottom-panel .op-controls .op-navigators{float:left;height:30px;line-height:30px}.op-controls-container .op-bottom-panel .op-controls .op-left-controls{position:absolute;top:0;left:0;padding:14px 0 10px 0}.op-controls-container .op-bottom-panel .op-controls .op-left-controls:after{content:\'\';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-right-controls{position:absolute;top:0;right:0;padding:14px 0 10px 0}.op-controls-container .op-bottom-panel .op-controls .op-right-controls:after{content:\'\';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons{position:relative;display:inline-block;margin-left:14px;overflow:hidden;font-weight:100;height:30px}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button{margin-right:6px;position:relative;text-align:center;color:#fff}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon{position:relative}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon.reverse:after{content:\'\\e900\'}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon:after{font-family:\'frameIcon\' !important;speak:none;content:\'\\e901\';font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;font-size:2.4em;left:0;line-height:30px;height:30px}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon .btn-text{font-weight:bold;font-size:.8em;line-height:30px;height:30px}.op-progressbar{position:absolute;bottom:0;left:0;width:100%;height:100%;outline:none;margin-top:10px}.op-progressbar .op-play-background-color{background-color:#50e3c2;background-color:var(--op-accent-color)}.op-progressbar .op-progress-list{cursor:pointer;position:relative;height:100%;background:rgba(255,255,255,0.2)}.op-progressbar .op-progress-list .op-load-progress,.op-progressbar .op-progress-list .op-play-progress,.op-progressbar .op-progress-list .op-hover-progress{position:absolute;left:0;bottom:0;width:100%;height:100%}.op-progressbar .op-progress-list .op-play-progress{width:0}.op-progressbar .op-progress-list .op-load-progress{width:0;background-color:rgba(255,255,255,0.5)}.op-progressbar .op-progress-list .op-hover-progress{left:0;width:0;background-color:rgba(255,255,255,0.6)}.op-progressbar .op-progressbar-knob-container{position:absolute;top:-5px;left:0}.op-progressbar .op-progressbar-knob-container .op-progressbar-knob{width:14px;height:14px;border-radius:7px}.op-progressbar .op-progressbar-time{display:none;position:absolute;bottom:15px;left:auto;width:auto;background-color:rgba(28,28,28,0.9);border-radius:2px;padding:5px 9px;font-size:.8em;line-height:15px;user-select:none;white-space:nowrap;opacity:.7}.op-progressbar-hover .op-progressbar-time{display:inline-block}.op-on-error .op-progressbar-time{display:none}.op-progressbar-section-start,.op-progressbar-section-end{display:none;position:absolute;width:3px;height:14px;bottom:-5px;background-color:#50e3c2;background-color:var(--op-accent-color)}.op-progressbar-preview{position:absolute;display:none;bottom:50px;border:2px solid #fff;border-radius:2px;background-color:#000;z-index:9}.op-play-controller{margin-left:15px}.op-seek-button{position:relative;top:0px}.op-seek-button.op-seek-button-back{margin-left:12px}.op-seek-button.op-seek-button-forward{margin-left:6px}.op-seek-button i{padding-top:1px;font-size:26px}.op-seek-button span{position:absolute;top:10.5px;left:0;right:0;text-align:center;font-size:10px;line-height:10px;cursor:pointer}.op-volume-controller{display:inline-block;position:relative;margin-left:12px}.op-volume-controller:after{content:\'\';clear:both}.op-volume-controller .op-volume-button{float:left}@-webkit-keyframes slide{100%{left:0}}@keyframes slide{100%{left:0}}.op-volume-controller .op-volume-slider-container{float:left;opacity:0;position:relative;width:0px;margin-right:0;line-height:30px;height:30px;cursor:pointer;user-select:none;outline:none}.op-volume-controller .op-volume-slider-container.active{width:70px;opacity:1;margin-left:8px;-moz-transition:opacity .4s cubic-bezier(0, 0, .2, 1);-webkit-transition:opacity .4s cubic-bezier(0, 0, .2, 1);transition:opacity .4s cubic-bezier(0, 0, .2, 1)}.op-volume-controller .op-volume-slider-container .op-volume-silder{height:100%;position:relative}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-bg,.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-value{position:absolute;display:block;left:0;top:50%;height:4px;margin-top:-2px;border-radius:10px}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-bg{width:100%;background:#fff}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-value{width:100%;background:#50e3c2;background:var(--op-accent-color);border-radius:10px 0 0 10px}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-handle{position:absolute;top:50%;left:30px;width:12px;height:12px;border-radius:10px;margin-top:-6px;background:#fff}.op-time-display{float:left;position:relative;margin-left:14px;height:30px;line-height:30px;white-space:nowrap;vertical-align:top;font-size:14px;user-select:none}.op-time-display .op-live-badge{opacity:1;width:auto;display:inline-block}.op-time-display .op-live-badge:before{background:#ff0000;display:inline-block;position:relative;top:-2px;width:6px;height:6px;margin-right:5px;content:\'\';border-radius:6px}.op-time-display .op-live-badge.op-live-badge-delayed:before{background:#fff}.op-time-display .op-live-badge .op-live-badge-lowlatency{display:inline-block;margin-right:5px}.op-time-display .op-live-badge .op-live-text{cursor:pointer}.op-context-panel{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute;overflow:hidden;width:200px;padding:6px 0;z-index:8;background:rgba(28,28,28,0.9);text-shadow:0 0 2px rgba(0,0,0,0.5);font-weight:lighter;user-select:none}.op-context-panel:before,.op-context-panel:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-context-panel *,.op-context-panel *:before,.op-context-panel *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-context-panel .op-context-item{width:100%;height:38px;padding-left:12px;line-height:38px;cursor:pointer;outline:none;font-size:.8em;font-weight:lighter;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.op-context-panel .op-context-item:hover{background-color:rgba(255,255,255,0.1)}.op-fullscreen-button{position:relative;margin-right:15px}.op-fullscreen-button .op-fullscreen-compress{display:none}.op-spinner-container{position:absolute;top:50%;width:64px;left:50%;margin-left:-32px;margin-top:-32px;z-index:7;display:none}.op-spinner-container .op-spinner{display:inline-block;position:relative;width:64px;height:64px;border:4px solid transparent;border-top:4px solid #50e3c2;border-top:4px solid var(--op-accent-color);border-radius:50%;animation:spin 1.2s cubic-bezier(.5, 0, .5, 1) infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.op-caption-viewer .op-caption-text-container{position:absolute;bottom:60px;width:100%;padding:0 12px;text-align:center;-moz-transition:bottom .25s cubic-bezier(0, 0, .2, 1);-webkit-transition:bottom .25s cubic-bezier(0, 0, .2, 1);transition:bottom .25s cubic-bezier(0, 0, .2, 1)}.op-caption-viewer .op-caption-text-container .op-caption-text{color:#fff;font-size:1em;line-height:1.2em;text-shadow:2px 2px 2px gray;padding:.1em .3em;user-select:none;word-break:break-word;white-space:pre-line;border:none;background:none}.op-caption-button{width:36px}.op-caption-button>i{font-size:18px;-moz-transition:color .25s cubic-bezier(0, 0, .2, 1);-webkit-transition:color .25s cubic-bezier(0, 0, .2, 1);transition:color .25s cubic-bezier(0, 0, .2, 1)}.op-caption-active .op-caption-button>i{color:#F36446}.op-wrapper.ovenplayer.large{font-size:14px}.op-wrapper.ovenplayer.large .op-caption-text{font-size:2em;line-height:2em}.op-wrapper.ovenplayer.medium{font-size:12px}.op-wrapper.ovenplayer.medium .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.small{font-size:10px}.op-wrapper.ovenplayer.small .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.small .op-playlist{padding:1rem}.op-wrapper.ovenplayer.small .op-playlist .op-playlist-card{margin:5px 0}.op-wrapper.ovenplayer.xsmall{font-size:10px}.op-wrapper.ovenplayer.xsmall .op-bigbutton-container .op-bigbutton{width:60px;height:60px;font-size:60px;line-height:60px}.op-wrapper.ovenplayer.xsmall .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.xsmall .op-playlist{padding:1rem}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-header{font-size:2em}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-card{margin:5px 0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;padding:0 6em}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-card .op-playlist-card-title{margin-top:0}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container{top:50%;font-weight:bold}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container .op-message-icon{margin-top:0}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container .op-message-icon .op-con{font-size:40px;width:40px;height:40px;line-height:40px}.op-wrapper.ovenplayer.xsmall .op-ads-button{bottom:22px}.op-wrapper.ovenplayer.xsmall .op-ads-button .videoAdUiAction{padding:4px;font-size:14px}.op-wrapper.ovenplayer.xxsmall .op-left-controls{max-width:240px;overflow:hidden}.op-wrapper.ovenplayer.xxsmall .op-live-badge-lowlatency{max-width:75px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel{height:34px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls{top:4px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls .op-left-controls{height:30px;padding:0}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls .op-right-controls{height:30px;padding:0}.op-wrapper.ovenplayer.linear-ad .op-ads{top:0;bottom:0}.op-wrapper.ovenplayer.linear-ad .op-button i.op-con{width:24px;height:24px;font-size:24px}.op-wrapper.ovenplayer.linear-ad .op-controls-container .op-bottom-panel .op-progressbar-container{bottom:50px}@keyframes fade{from{opacity:.3}55%{opacity:1}75%{opacity:1}to{opacity:.3}}@-webkit-keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:scale3d(.5, .5, .5);transform:scale3d(.5, .5, .5)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(.97, .97, .97);transform:scale3d(.97, .97, .97)}to{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(.97, .97, .97);transform:scale3d(.97, .97, .97)}to{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.op-player .bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.op-player .fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}.op-player .animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media (prefers-reduced-motion){.op-player .animated{-webkit-animation:unset !important;animation:unset !important;-webkit-transition:none !important;transition:none !important}}@media only screen and (max-width:399px){.op-seek-button{display:none !important}}',"",{version:3,sources:["webpack://./src/stylesheet/ovenplayer.less"],names:[],mappings:"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",sourcesContent:['@charset "UTF-8";\n\n/**\n * @brief   Animation\n * */\n\n@keyframes op-spinner {\n  0% {\n    transform: rotate(0deg);\n  }\n\n  100% {\n    transform: rotate(360deg);\n  }\n}\n\n@-webkit-keyframes op-slideOutDown {\n  from {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n\n  to {\n    visibility: hidden;\n    -webkit-transform: translate3d(0, 100%, 0);\n    transform: translate3d(0, 100%, 0);\n  }\n}\n\n@keyframes op-slideOutDown {\n  from {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n\n  to {\n    visibility: hidden;\n    -webkit-transform: translate3d(0, 100%, 0);\n    transform: translate3d(0, 100%, 0);\n  }\n}\n\n@-webkit-keyframes op-slideInUp {\n  from {\n    -webkit-transform: translate3d(0, 100%, 0);\n    transform: translate3d(0, 100%, 0);\n    opacity: 1;\n  }\n\n  to {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n@keyframes op-slideInUp {\n  from {\n    -webkit-transform: translate3d(0, 100%, 0);\n    transform: translate3d(0, 100%, 0);\n    opacity: 1;\n  }\n\n  to {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n@font-face {\n  font-family: "frameIcon";\n  src: url("../assets/images/ic-player-frame-jump.ttf?rxg7gj") format(\'truetype\');\n  font-weight: normal;\n  font-style: normal;\n}\n\n@font-face {\n  font-family: \'op-icons\';\n  src: url(\'../assets/fonts/fontello.ttf?13010392\') format(\'truetype\');\n  font-weight: normal;\n  font-style: normal;\n}\n\n@font-face {\n  font-family: \'op-seek-icons\';\n  src: url(\'../assets/fonts/seek-icons.ttf?13010392\') format(\'truetype\');\n  font-weight: normal;\n  font-style: normal;\n}\n\n/**\n * @brief   common style\n * */\n\n:root {\n  --op-accent-color: #50e3c2;\n}\n\n.op-wrapper.ovenplayer {\n  position: relative;\n  max-height: 100%;\n\n  overflow: hidden;\n  zoom: 1 !important;\n  width: 100%;\n  display: block;\n  font-family: Helvetica, Arial, sans-serif;\n  background-color: #000;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  color: #fff;\n  font-size: 14px;\n  font-weight: 100;\n  outline: 0;\n\n  -webkit-touch-callout: none;\n  user-select: none;\n\n  * {\n    box-sizing: inherit;\n  }\n\n  object {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n  }\n\n  &:before,\n  &:after {\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n  }\n\n  & *,\n  & *:before,\n  & *:after {\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n  }\n\n  &.op-fullscreen {\n    width: 100% !important;\n    height: 100% !important;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 9999;\n    margin: 0;\n    position: fixed;\n\n    .op-watermark-container,\n    .op-thumbnail-container {\n      width: 100vw;\n      max-width: calc(100vh * 16 / 9);\n      height: calc(100vw * 9 / 16);\n      max-height: 100vh;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n    }\n\n  }\n\n  &.op-autohide {\n    cursor: none;\n\n    .op-bottom-panel {\n\n      -webkit-animation-name: op-slideOutDown;\n      animation-name: op-slideOutDown;\n\n      -webkit-animation-duration: 0.2s;\n      animation-duration: 0.2s;\n      -webkit-animation-fill-mode: both;\n      animation-fill-mode: both;\n    }\n\n    .op-progressbar-container,\n    .op-controls .op-button {\n      cursor: none;\n    }\n\n    .op-caption-text-container {\n      bottom: 25px;\n    }\n  }\n\n  &.op-no-controls {\n\n    .op-controls-container {\n      display: none !important;\n    }\n  }\n\n  .op-ratio {\n    padding-bottom: 56.25%;\n    /*16:9*/\n  }\n\n  & ::-webkit-scrollbar {\n    width: 5px;\n    height: 8px;\n  }\n\n  & ::-webkit-scrollbar-button:start:decrement,\n  ::-webkit-scrollbar-button:end:increment {\n    display: block;\n    height: 3px;\n    background: #2f2f3e;\n  }\n\n  & ::-webkit-scrollbar-track {\n    background: #2f2f3e;\n    -webkit-border-radius: 10px;\n    border-radius: 10px;\n  }\n\n  & ::-webkit-scrollbar-thumb {\n    height: 50px;\n    width: 50px;\n    background: #606071;\n    -webkit-border-radius: 8px;\n    border-radius: 8px;\n  }\n\n  .op-clear {\n    color: inherit;\n    background-color: transparent;\n    padding: 0;\n    margin: 0;\n    float: none;\n    font-family: Helvetica, Arial, sans-serif;\n    font-size: 1em;\n    line-height: 1em;\n    list-style: none;\n    text-transform: none;\n    vertical-align: baseline;\n    border: 0;\n    font-variant: inherit;\n    font-stretch: inherit;\n    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n  }\n}\n\n.op-player {\n  position: absolute;\n  top: 0;\n  height: 100%;\n  width: 100%;\n\n\n\n  .op-core-ui-wrapper {\n    position: relative;\n    height: 100%;\n  }\n\n  .op-media-element-container {\n    /* display: block;\n    height: 100%;\n    width: auto;\n    position : relative;*/\n\n\n    position: absolute;\n    left: 0px;\n    top: 0px;\n    width: 100%;\n    height: 100%;\n\n    video {\n      position: absolute;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n    }\n\n    object {\n      width: 100%;\n      height: 100%;\n    }\n  }\n\n  .op-ui {\n\n    /*position : absolute;\n    bottom : 0px;\n    left : 0px;\n    width: 100%;\n    height: 100%;*/\n    .op-controls-container {}\n\n    .op-helpers-container {}\n  }\n}\n\n.op-ads {\n  position: absolute;\n  height: 100%;\n  width: 100%;\n  padding-bottom: 34px;\n  //pointer-events: none;\n  top: 0;\n\n  &>div {\n    position: absolute !important;\n    width: 100% !important;\n    height: 100% !important;\n\n    iframe {\n      pointer-events: auto;\n    }\n  }\n\n  video.op-ads-vast-video {\n    background-color: rgb(0, 0, 0);\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    left: 0;\n    top: 0;\n    z-index: 1;\n  }\n\n  .op-ads-button {\n    bottom: 36px;\n    cursor: default;\n    margin-right: 4px;\n    pointer-events: auto;\n    position: absolute;\n    right: 0;\n    z-index: 1;\n    width: auto !important;\n    height: auto !important;\n    border-radius: 4px;\n    background-color: rgba(18, 18, 28, 0.7);\n    min-width: 155px;\n    display: none;\n\n    .op-ads-textview {\n      color: #e6e6e6;\n      //font-family: arial,sans-serif;\n      font-weight: normal;\n      font-size: 11px;\n      padding: 6px 12px;\n      text-align: center;\n      display: inline-block;\n      width: 100%;\n      vertical-align: middle;\n    }\n\n    .videoAdUiAction {\n      padding: 8px 24px;\n      cursor: pointer;\n      direction: ltr;\n      font-weight: normal;\n      font-size: 20px;\n      border: 1px solid rgba(255, 255, 255, 0.5);\n\n      &:hover {\n        border-radius: 4px;\n        border: 1px solid rgba(255, 255, 255, 1);\n      }\n\n      i {\n        display: inline-block;\n        width: auto;\n      }\n    }\n  }\n\n}\n\n/**\n * @brief   common components\n * */\n\n.op-button {\n  display: inline-block;\n  border: none;\n  background: transparent;\n  padding: 0;\n  color: inherit;\n  text-align: inherit;\n  overflow: hidden;\n  font-weight: 100;\n  text-indent: 0 !important;\n\n  &:focus,\n  & {\n    outline: 0;\n  }\n}\n\ni.op-con {\n  font-family: "op-icons", "op-seek-icons";\n  font-style: normal;\n  font-weight: normal;\n  speak: none;\n\n  font-size: inherit;\n  width: auto;\n  font-size: 30px;\n  line-height: 30px;\n\n  display: block;\n  text-decoration: inherit;\n  text-align: center;\n\n  /* For safety - reset parent styles, that can break glyph codes*/\n  font-variant: normal;\n  text-transform: none;\n\n  /* Font smoothing. That was taken from TWBS */\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n  cursor: pointer;\n\n  &.disable {\n    color: #4f4f4f;\n  }\n\n  &.op-close-icon {\n    &::before {\n      content: "\\e900";\n    }\n  }\n\n  &.op-pause-big {\n    &::before {\n      content: "\\e911";\n    }\n  }\n\n  &.op-fullscreen-compress {\n    &::before {\n      content: "\\e901";\n    }\n  }\n\n  &.op-fullscreen-expand {\n    &::before {\n      content: "\\e902";\n    }\n  }\n\n  &.op-arrow-left {\n    &::before {\n      content: "\\e903";\n    }\n  }\n\n  &.op-arrow-right {\n    &::before {\n      content: "\\e909";\n    }\n  }\n\n  &.op-empty-video {\n    &::before {\n      content: "\\e904";\n    }\n  }\n\n  &.op-play {\n    &::before {\n      content: "\\e906";\n    }\n  }\n\n  &.op-replay {\n    &::before {\n      content: "\\e908";\n    }\n  }\n\n  &.op-seek-back {\n    &::before {\n      content: "\\e920";\n    }\n  }\n\n  &.op-seek-forward {\n    &::before {\n      content: "\\e921";\n    }\n  }\n\n  &.op-playlist-icon {\n    &::before {\n      content: "\\e907";\n    }\n  }\n\n  &.op-replay-big {\n    &::before {\n      content: "\\e908";\n    }\n  }\n\n  &.op-setting {\n    &::before {\n      content: "\\e90A";\n    }\n  }\n\n  &.op-pause {\n    &::before {\n      content: "\\e90C";\n    }\n  }\n\n  &.op-volume-small {\n    display: none;\n    margin-top: -1px;\n\n    &::before {\n      content: "\\e90D";\n    }\n  }\n\n  &.op-volume-mute {\n    display: none;\n\n    &::before {\n      content: "\\e90E";\n    }\n  }\n\n  &.op-volume-max {\n    &::before {\n      content: "\\e90F";\n    }\n  }\n\n  &.op-play-big {\n    &::before {\n      content: "\\e910";\n    }\n  }\n\n  &.op-warning {\n    &::before {\n      content: "\\e912";\n    }\n  }\n}\n\n.op-badge {\n  display: inline-block;\n  padding: .75em .714em .714em .680em;\n  font-size: 1em;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.286em;\n  background-color: #12121c;\n}\n\n.op-playlist {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  left: 0;\n  top: 0;\n  padding: 2.857em;\n  background: #000;\n  z-index: 6;\n\n  .op-badge {\n    position: absolute;\n    top: 0.857em;\n    right: 0.857em;\n    opacity: 0.7;\n  }\n\n  .btn-left {\n    float: left;\n    font-size: 2.857em;\n  }\n\n  .btn-right {\n    float: right;\n    font-size: 2.857em;\n  }\n\n  .op-playlist-header {\n    font-size: 2.857em;\n    font-weight: bold;\n\n    &:after {\n      display: block;\n      content: \'\';\n      clear: both;\n    }\n\n    .op-con.op-close-icon {\n      float: right;\n    }\n  }\n\n  .op-playlist-body {\n    height: 100%;\n    overflow: hidden;\n    position: relative;\n\n    .op-playlist-body-arrows {\n      margin-top: -15px;\n      position: absolute;\n      top: 50%;\n      height: 30px;\n      -ms-transform: translateY(-50%);\n      transform: translateY(-50%);\n      width: 100%;\n      left: 0;\n    }\n\n    .op-playlist-body-container {\n      width: 100%;\n      height: 100%;\n      position: relative;\n      margin-right: auto;\n      margin-left: auto;\n      max-width: 992px;\n\n      .op-playlist-body-center {\n        margin: 0;\n        position: absolute;\n        top: 50%;\n        padding-right: 3em;\n        padding-left: 3em;\n        -ms-transform: translateY(-50%);\n        transform: translateY(-50%);\n        width: 100%;\n      }\n    }\n\n    .op-playlist-body-row {\n      margin-right: -15px;\n      margin-left: -15px;\n      display: -ms-flexbox;\n      display: flex;\n      -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n\n\n      .op-playlist-card {\n        padding-right: 15px;\n        padding-left: 15px;\n        margin: 15px 0;\n        -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n        -ms-flex-positive: 1;\n        flex-grow: 1;\n        -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n        max-width: 33.333333%;\n        cursor: pointer;\n\n        &.active {\n          color: #50e3c2;\n          color: var(--op-accent-color);\n\n          .op-playlist-card-thumbnail {\n            border-color: #50e3c2;\n            border-color: var(--op-accent-color);\n          }\n        }\n\n        .op-playlist-card-thumbnail {\n          position: relative;\n          display: block;\n          width: 100%;\n          padding: 0;\n          overflow: hidden;\n          border: 0.214em solid transparent;\n          background-color: #000;\n\n          img {\n            position: absolute;\n            top: 0;\n            bottom: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            border: 0;\n          }\n\n          &.empty {\n            background-color: #bababa;\n\n            &>i {\n              margin: 0;\n              position: absolute;\n              top: 50%;\n              left: 50%;\n              transform: translate(-50%, -50%);\n              color: #fff !important;\n              font-size: 1.6em !important;\n            }\n          }\n\n          &::before {\n            padding-top: 56.25%;\n            display: block;\n            content: "";\n          }\n        }\n\n        .op-playlist-card-title {\n          margin-top: 0.857em;\n          font-size: 1.429em;\n          padding: 2px 0;\n          white-space: nowrap;\n          overflow: hidden;\n          text-overflow: ellipsis;\n        }\n\n      }\n    }\n\n  }\n}\n\n\n/**\n * @brief   Message Box\n * */\n\n.op-message-box {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 4;\n\n  .op-message-container {\n    position: absolute;\n    top: 45%;\n    margin-top: -35px;\n    width: 100%;\n    padding: 0 12px;\n    text-align: center;\n\n    .op-message-text {\n      display: inline-block;\n      background-color: rgba(18, 18, 28, .3);\n      padding: 0.8em 1.2em;\n      word-wrap: break-word;\n      max-width: 80%;\n      border-radius: 4px;\n      cursor: pointer;\n\n      .op-message-description {\n        font-size: 12px;\n        margin-top: 12px;\n        color: #999;\n      }\n    }\n\n\n    .op-message-icon {\n      display: inline-block;\n      margin-top: 12px;\n      width: 100%;\n\n      i.op-con {\n        cursor: pointer;\n        font-size: 80px;\n        width: 80px;\n        height: 80px;\n        line-height: 80px;\n        display: inline-block;\n        text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\n      }\n    }\n\n    /*.op-message-button{\n      display: inline-block;\n      padding : 1em;\n      margin-left : 0.4em;\n      background-color: rgba(28,28,28,.4);\n      cursor : pointer;\n    }*/\n  }\n}\n\n.op-message-box.op-message-box-default-cursor .op-message-container .op-message-text {\n  cursor: default;\n}\n\n.op-message-box.op-message-box-default-cursor .op-message-container .op-message-icon i.op-con {\n  cursor: default;\n}\n\n/**\n * @brief   Big button\n * */\n\n.op-bigbutton-container {\n  cursor: pointer;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  text-align: center;\n  z-index: 5;\n\n  .op-bigbutton {\n    width: 80px;\n    height: 80px;\n    display: block;\n    font-size: 80px;\n    line-height: 80px;\n    text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\n  }\n}\n\n/**\n * @brief   Thumbnail\n * */\n\n.op-thumbnail-container {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  //padding-bottom: 56.25%;\n  top: 0;\n  left: 0;\n  //transform: translate(-50%, -50%);\n  z-index: 2;\n  pointer-events: none;\n\n  .op-thumbnail-wrapper {\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: 100%;\n    height: 100%;\n\n    img {\n      width: 100%;\n      height: 100%;\n    }\n\n    .op-thumbnail-header {\n      position: absolute;\n      left: 1rem;\n      top: 1rem;\n      padding: 0 0.5rem;\n      font-size: 2.857em;\n      font-weight: bold;\n      line-height: 1.4;\n      text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\n\n      &:after {\n        display: block;\n        content: \'\';\n        clear: both;\n      }\n    }\n  }\n}\n\n/**\n * @brief   WaterMark\n * */\n\n.op-watermark-container {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  //padding-bottom: 56.25%;\n  top: 0;\n  left: 0;\n  //transform: translate(-50%, -50%);\n  z-index: 3;\n\n  .op-watermark {\n    position: absolute;\n    display: inline-block;\n\n    img {\n      width: 100%;\n      height: 100%;\n    }\n\n    .op-watermark-text {\n      font-size: 14px;\n    }\n  }\n}\n\n/**\n * @brief   Setting panel\n * */\n\n.op-setting-panel {\n  position: absolute;\n  bottom: 55px;\n  right: 12px;\n  overflow-y: auto;\n  max-height: 100%;\n  width: 260px;\n  //font-size: 0.8em;\n  user-select: none;\n  background-color: rgba(28, 28, 28, .9);\n  text-shadow: 0 0 2px rgba(0, 0, 0, .5);\n  z-index: 8;\n\n  &.background {\n    //opacity: 0;\n    //background-color: rgba(28,28,28,.0);\n    display: none;\n  }\n\n  .op-setting-title,\n  .op-setting-item {\n    width: 100%;\n    height: 38px;\n    line-height: 38px;\n    cursor: pointer;\n    outline: none;\n    text-align: left;\n  }\n\n  .op-setting-title-container {\n    .op-setting-title {\n      .op-setting-title-title {\n        padding-left: 12px;\n        font-weight: bold;\n        //font-size: 0.9rem;\n      }\n\n      .op-setting-title-previcon {\n        padding: 0 0 0 12px;\n        margin-right: -6px;\n      }\n\n    }\n  }\n\n  .op-setting-item-container {\n    .op-setting-item {\n      &:hover {\n        background-color: rgba(255, 255, 255, .1);\n      }\n\n      .op-setting-item-title {\n        padding-left: 12px;\n      }\n\n      .op-setting-item-nexticon {\n        float: right;\n        padding-right: 12px;\n        margin-left: -6px;\n      }\n\n      span.op-setting-item-value {\n        float: right;\n        padding-right: 12px;\n      }\n\n      .op-setting-item-checked {\n        padding-left: 12px;\n        visibility: hidden;\n      }\n\n      .op-setting-item-checked.op-show {\n        visibility: visible;\n      }\n    }\n  }\n}\n\n\n\n/**\n * @brief   Controls (container)\n * */\n\n.op-controls-container {\n  display: none;\n\n  .op-bottom-panel {\n    position: absolute;\n    left: 0px;\n    bottom: 0px;\n    width: 100%;\n    z-index: 5;\n\n    .op-gradient-bottom {\n      position: absolute;\n      width: 100%;\n      height: 100%;\n      background-color: rgba(18, 18, 18, 0.5);\n      pointer-events: none;\n      /*-moz-transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);\n      -webkit-transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);\n      transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);*/\n    }\n\n    -webkit-animation-name: op-slideInUp;\n    animation-name: op-slideInUp;\n\n    -webkit-animation-duration: 0.5s;\n    animation-duration: 0.5s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n\n    .op-progressbar-container {\n      display: block;\n      position: relative;\n      width: 100%;\n      height: 4px;\n      bottom: 50px;\n\n      &.op-progressbar-container-disabled {\n        cursor: default;\n      }\n\n      .op-progressbar-padding {\n        position: absolute;\n        width: 100%;\n        height: 15px;\n        bottom: -5px;\n        cursor: pointer;\n      }\n    }\n\n\n    /*contols container*/\n    .op-controls {\n      position: relative;\n      width: 100%;\n      height: 50px;\n      text-align: left;\n      overflow: hidden;\n\n      &:after {\n        content: \'\';\n        clear: both;\n      }\n\n      .op-setting-button {\n        position: relative;\n        margin-right: 12px;\n      }\n\n      .op-playlist-button {\n        position: relative;\n        margin-right: 12px;\n      }\n\n      .op-navigators {\n        float: left;\n        height: 30px;\n        line-height: 30px;\n      }\n\n      .op-left-controls {\n        position: absolute;\n        top: 0;\n        left: 0;\n        padding: 14px 0 10px 0;\n\n        &:after {\n          content: \'\';\n          clear: both;\n        }\n      }\n\n      .op-right-controls {\n        position: absolute;\n        top: 0;\n        right: 0;\n        padding: 14px 0 10px 0;\n\n        &:after {\n          content: \'\';\n          clear: both;\n        }\n      }\n\n      /*maybe not use*/\n      .op-frame-buttons {\n        position: relative;\n        display: inline-block;\n        margin-left: 14px;\n        overflow: hidden;\n        font-weight: 100;\n        height: 30px;\n\n        .op-frame-button {\n          margin-right: 6px;\n          position: relative;\n          text-align: center;\n          color: #fff;\n\n          .frame-icon {\n            position: relative;\n\n            &.reverse {\n              &:after {\n                content: \'\\e900\';\n              }\n            }\n\n            &:after {\n              font-family: \'frameIcon\' !important;\n              speak: none;\n              content: \'\\e901\';\n              font-style: normal;\n              font-weight: normal;\n              font-variant: normal;\n              text-transform: none;\n\n              /* Better Font Rendering =========== */\n              -webkit-font-smoothing: antialiased;\n              -moz-osx-font-smoothing: grayscale;\n              position: absolute;\n              font-size: 2.4em;\n              left: 0;\n              line-height: 30px;\n              height: 30px;\n            }\n\n            .btn-text {\n              font-weight: bold;\n              font-size: 0.8em;\n              line-height: 30px;\n              height: 30px;\n            }\n\n          }\n\n        }\n\n      }\n    }\n  }\n\n}\n\n\n/**\n * @brief   Progressbar\n * */\n\n.op-progressbar {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  outline: none;\n  margin-top: 10px;\n\n  .op-play-background-color {\n    background-color: #50e3c2; // for ie 11\n    background-color: var(--op-accent-color);\n  }\n\n  .op-progress-list {\n    cursor: pointer;\n    position: relative;\n    height: 100%;\n    background: rgba(255, 255, 255, 0.2);\n\n    .op-load-progress,\n    .op-play-progress,\n    .op-hover-progress {\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      width: 100%;\n      height: 100%;\n    }\n\n    .op-play-progress {\n      width: 0;\n    }\n\n    .op-load-progress {\n      width: 0;\n      background-color: rgba(255, 255, 255, .5);\n    }\n\n    .op-hover-progress {\n      left: 0;\n      width: 0;\n      background-color: rgba(255, 255, 255, .6);\n    }\n\n  }\n\n  .op-progressbar-knob-container {\n    position: absolute;\n    top: -5px;\n    left: 0;\n\n    .op-progressbar-knob {\n      width: 14px;\n      height: 14px;\n      border-radius: 7px;\n    }\n  }\n\n  .op-progressbar-time {\n    display: none;\n    position: absolute;\n    bottom: 15px;\n    left: auto;\n    width: auto;\n    background-color: rgba(28, 28, 28, 0.9);\n    border-radius: 2px;\n    padding: 5px 9px;\n    font-size: 0.8em;\n    line-height: 15px;\n    user-select: none;\n    white-space: nowrap;\n    opacity: 0.7;\n  }\n\n\n}\n\n.op-progressbar-hover .op-progressbar-time {\n  display: inline-block;\n}\n\n.op-on-error .op-progressbar-time {\n  display: none;\n}\n\n.op-progressbar-section-start,\n.op-progressbar-section-end {\n  display: none;\n  position: absolute;\n  width: 3px;\n  height: 14px;\n  bottom: -5px;\n  background-color: #50e3c2;\n  background-color: var(--op-accent-color);\n}\n\n.op-progressbar-preview {\n  position: absolute;\n  display: none;\n  bottom: 50px;\n  border: 2px solid #fff;\n  border-radius: 2px;\n  background-color: #000;\n  z-index: 9;\n}\n\n.op-play-controller {\n  margin-left: 15px;\n}\n\n/**\n * @brief   Seek button\n * */\n\n.op-seek-button {\n  //display: none;\n  position: relative;\n  top: 0px;\n\n  &.op-seek-button-back {\n    margin-left: 12px;\n  }\n\n  &.op-seek-button-forward {\n    margin-left: 6px;\n  }\n\n  i {\n    padding-top: 1px;\n    font-size: 26px;\n  }\n\n  span {\n    position: absolute;\n    top: 10.5px;\n    left: 0;\n    right: 0;\n    text-align: center;\n    font-size: 10px;\n    line-height: 10px;\n    cursor: pointer;\n  }\n}\n\n\n/**\n * @brief   Volume button\n * */\n.op-volume-controller {\n  display: inline-block;\n  position: relative;\n  margin-left: 12px;\n\n  &:after {\n    content: \'\';\n    clear: both;\n  }\n\n  .op-volume-button {\n    float: left;\n  }\n\n  @-webkit-keyframes slide {\n    100% {\n      left: 0;\n    }\n  }\n\n  @keyframes slide {\n    100% {\n      left: 0;\n    }\n  }\n\n  .op-volume-slider-container {\n    /*display: inline-block;*/\n    float: left;\n    opacity: 0;\n    position: relative;\n    width: 0px;\n    margin-right: 0;\n    line-height: 30px;\n    height: 30px;\n    cursor: pointer;\n    user-select: none;\n    outline: none;\n\n    &.active {\n      width: 70px;\n      opacity: 1;\n      margin-left: 8px;\n      -moz-transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\n      -webkit-transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\n      transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\n    }\n\n    .op-volume-silder {\n      height: 100%;\n      position: relative;\n\n      .op-volume-slider-bg,\n      .op-volume-slider-value {\n        position: absolute;\n        display: block;\n        left: 0;\n        top: 50%;\n        height: 4px;\n        margin-top: -2px;\n        border-radius: 10px;\n      }\n\n      .op-volume-slider-bg {\n        width: 100%;\n        background: #fff;\n      }\n\n      .op-volume-slider-value {\n        width: 100%;\n        background: #50e3c2;\n        background: var(--op-accent-color);\n        border-radius: 10px 0 0 10px;\n        //-moz-transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\n        //-webkit-transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\n        //transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\n      }\n\n      .op-volume-slider-handle {\n        position: absolute;\n        top: 50%;\n        left: 30px;\n        width: 12px;\n        height: 12px;\n        border-radius: 10px;\n        margin-top: -6px;\n        background: #fff;\n        //-moz-transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\n        //-webkit-transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\n        //transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\n      }\n    }\n  }\n}\n\n\n/**\n * @brief   Time Display\n * */\n\n.op-time-display {\n  float: left;\n  position: relative;\n  margin-left: 14px;\n  height: 30px;\n  line-height: 30px;\n  white-space: nowrap;\n  vertical-align: top;\n  font-size: 14px;\n  user-select: none;\n  /*흠 이부분 어떻게 처리하지*/\n\n  .op-time-current,\n  .op-time-separator,\n  .op-time-duration {}\n\n  .op-live-badge {\n    opacity: 1;\n    width: auto;\n    display: inline-block;\n\n    &:before {\n      background: #ff0000;\n      display: inline-block;\n      position: relative;\n      top: -2px;\n      width: 6px;\n      height: 6px;\n      margin-right: 5px;\n      content: \'\';\n      border-radius: 6px;\n    }\n\n    &.op-live-badge-delayed:before {\n      background: #fff;\n    }\n\n    .op-live-badge-lowlatency {\n      display: inline-block;\n      margin-right: 5px;\n    }\n\n    .op-live-text {\n      cursor: pointer;\n    }\n  }\n\n}\n\n\n/**\n * @brief   Context Panel\n * */\n\n.op-context-panel {\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  display: block;\n  position: absolute;\n  overflow: hidden;\n  width: 200px;\n  padding: 6px 0;\n  z-index: 8;\n  background: rgba(28, 28, 28, 0.9);\n  text-shadow: 0 0 2px rgba(0, 0, 0, .5);\n  font-weight: lighter;\n  user-select: none;\n\n  &:before,\n  &:after {\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n  }\n\n  & *,\n  & *:before,\n  & *:after {\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n  }\n\n  .op-context-item {\n    width: 100%;\n    height: 38px;\n    padding-left: 12px;\n    line-height: 38px;\n    cursor: pointer;\n    outline: none;\n    font-size: 0.8em;\n    font-weight: lighter;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    overflow: hidden;\n\n    &:hover {\n      background-color: rgba(255, 255, 255, .1);\n    }\n  }\n\n}\n\n\n\n\n\n\n/**\n * @brief   FullScreen button\n * */\n\n.op-fullscreen-button {\n  position: relative;\n  margin-right: 15px;\n\n  .op-fullscreen-compress {\n    display: none;\n  }\n}\n\n/**\n * @brief   spinner\n * */\n\n.op-spinner-container {\n  position: absolute;\n  top: 50%;\n  width: 64px;\n  left: 50%;\n  margin-left: -32px;\n  margin-top: -32px;\n  z-index: 7;\n  display: none;\n\n\n  .op-spinner {\n    display: inline-block;\n    position: relative;\n    width: 64px;\n    height: 64px;\n\n    border: 4px solid transparent;\n    border-top: 4px solid #50e3c2;\n    border-top: 4px solid var(--op-accent-color);\n    border-radius: 50%;\n\n    animation: spin 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n\n    @keyframes spin {\n      0% {\n        transform: rotate(0deg);\n      }\n\n      100% {\n        transform: rotate(360deg);\n      }\n    }\n  }\n\n}\n\n\n/**\n * @brief   caption.\n * */\n\n.op-caption-viewer {\n\n  .op-caption-text-container {\n    position: absolute;\n    bottom: 60px;\n    width: 100%;\n    padding: 0 12px;\n    text-align: center;\n    -moz-transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n    -webkit-transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n    transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n\n    .op-caption-text {\n      color: #fff;\n      font-size: 1em;\n      line-height: 1.2em;\n      text-shadow: 2px 2px 2px gray;\n      padding: .1em .3em;\n      user-select: none;\n      word-break: break-word;\n      white-space: pre-line;\n      border: none;\n      background: none;\n    }\n  }\n}\n\n.op-caption-button {\n  width: 36px;\n}\n\n.op-caption-button>i {\n  font-size: 18px;\n  -moz-transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n  -webkit-transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n  transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n}\n\n.op-caption-active .op-caption-button>i {\n  color: #F36446;\n}\n\n\n\n/*Responsive  */\n\n.op-wrapper.ovenplayer.large {\n  font-size: 14px;\n\n  .op-caption-text {\n    font-size: 2em;\n    line-height: 2em;\n  }\n\n}\n\n.op-wrapper.ovenplayer.medium {\n  font-size: 12px;\n\n  .op-caption-text {\n    font-size: 1.4em;\n    line-height: 1.4em;\n  }\n}\n\n.op-wrapper.ovenplayer.small {\n  font-size: 10px;\n\n  .op-caption-text {\n    font-size: 1.4em;\n    line-height: 1.4em;\n  }\n\n  .op-playlist {\n    padding: 1rem;\n\n    .op-playlist-card {\n      margin: 5px 0;\n    }\n  }\n\n}\n\n.op-wrapper.ovenplayer.xsmall {\n  font-size: 10px;\n\n  .op-bigbutton-container {\n\n    .op-bigbutton {\n      width: 60px;\n      height: 60px;\n      font-size: 60px;\n      line-height: 60px;\n    }\n  }\n\n  .op-caption-text {\n    font-size: 1.4em;\n    line-height: 1.4em;\n  }\n\n  .op-playlist {\n    padding: 1rem;\n\n    .op-playlist-header {\n      font-size: 2em;\n    }\n\n    .op-playlist-card {\n      margin: 5px 0;\n      -ms-flex: 0 0 100%;\n      flex: 0 0 100%;\n      max-width: 100%;\n      padding: 0 6em;\n\n      .op-playlist-card-title {\n        margin-top: 0;\n      }\n    }\n  }\n\n  .op-message-box {\n    .op-message-container {\n      top: 50%;\n      font-weight: bold;\n\n      .op-message-icon {\n        margin-top: 0;\n\n        .op-con {\n          font-size: 40px;\n          width: 40px;\n          height: 40px;\n          line-height: 40px;\n        }\n      }\n    }\n  }\n\n  .op-ads-button {\n    bottom: 22px;\n\n    .videoAdUiAction {\n      padding: 4px;\n      font-size: 14px;\n    }\n  }\n}\n\n.op-wrapper.ovenplayer.xxsmall {\n\n  .op-left-controls {\n    max-width: 240px; // for small layout\n    overflow: hidden; // for small layout\n  }\n\n  .op-live-badge-lowlatency {\n    max-width: 75px;\n  }\n}\n\n/*AD MODE*/\n.op-wrapper.ovenplayer.linear-ad {\n\n  .op-bottom-panel {\n    height: 34px;\n\n    .op-controls {\n\n      top: 4px;\n\n      .op-left-controls {\n        height: 30px;\n        padding: 0;\n      }\n\n      .op-right-controls {\n        height: 30px;\n        padding: 0;\n      }\n    }\n  }\n\n  .op-ads {\n    top: 0;\n    bottom: 0;\n  }\n\n  .op-button {\n    i.op-con {\n      width: 24px;\n      height: 24px;\n      font-size: 24px;\n    }\n  }\n\n  .op-right-controls {\n    .op-button {\n      //margin-top: -2px;\n    }\n  }\n\n  .op-controls-container .op-bottom-panel .op-progressbar-container {\n    bottom: 50px;\n  }\n}\n\n/**\n * @brief   Animation\n * */\n\n.op-player {\n  @keyframes fade {\n    from {\n      opacity: 0.3;\n    }\n\n    /*5% { opacity: 0.3; }*/\n    /*40% { opacity: 1; }*/\n    /*50% { opacity: 1; }*/\n    55% {\n      opacity: 1;\n    }\n\n    75% {\n      opacity: 1;\n    }\n\n    to {\n      opacity: 0.3;\n    }\n  }\n\n  @-webkit-keyframes bounceIn {\n\n    from,\n    20%,\n    40%,\n    60%,\n    80%,\n    to {\n      -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n      animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n    }\n\n    0% {\n      opacity: 0;\n      -webkit-transform: scale3d(0.5, 0.5, 0.5);\n      transform: scale3d(0.5, 0.5, 0.5);\n    }\n\n    20% {\n      -webkit-transform: scale3d(1.1, 1.1, 1.1);\n      transform: scale3d(1.1, 1.1, 1.1);\n    }\n\n    40% {\n      -webkit-transform: scale3d(0.9, 0.9, 0.9);\n      transform: scale3d(0.9, 0.9, 0.9);\n    }\n\n    60% {\n      opacity: 1;\n      -webkit-transform: scale3d(1.03, 1.03, 1.03);\n      transform: scale3d(1.03, 1.03, 1.03);\n    }\n\n    80% {\n      -webkit-transform: scale3d(0.97, 0.97, 0.97);\n      transform: scale3d(0.97, 0.97, 0.97);\n    }\n\n    to {\n      opacity: 1;\n      -webkit-transform: scale3d(1, 1, 1);\n      transform: scale3d(1, 1, 1);\n    }\n  }\n\n  @keyframes bounceIn {\n\n    from,\n    20%,\n    40%,\n    60%,\n    80%,\n    to {\n      -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n      animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n    }\n\n    0% {\n      opacity: 0;\n      -webkit-transform: scale3d(0.3, 0.3, 0.3);\n      transform: scale3d(0.3, 0.3, 0.3);\n    }\n\n    20% {\n      -webkit-transform: scale3d(1.1, 1.1, 1.1);\n      transform: scale3d(1.1, 1.1, 1.1);\n    }\n\n    40% {\n      -webkit-transform: scale3d(0.9, 0.9, 0.9);\n      transform: scale3d(0.9, 0.9, 0.9);\n    }\n\n    60% {\n      opacity: 1;\n      -webkit-transform: scale3d(1.03, 1.03, 1.03);\n      transform: scale3d(1.03, 1.03, 1.03);\n    }\n\n    80% {\n      -webkit-transform: scale3d(0.97, 0.97, 0.97);\n      transform: scale3d(0.97, 0.97, 0.97);\n    }\n\n    to {\n      opacity: 1;\n      -webkit-transform: scale3d(1, 1, 1);\n      transform: scale3d(1, 1, 1);\n    }\n  }\n\n  .bounceIn {\n    -webkit-animation-duration: 0.75s;\n    animation-duration: 0.75s;\n    -webkit-animation-name: bounceIn;\n    animation-name: bounceIn;\n  }\n\n  @-webkit-keyframes fadeIn {\n    from {\n      opacity: 0;\n    }\n\n    to {\n      opacity: 1;\n    }\n  }\n\n  @keyframes fadeIn {\n    from {\n      opacity: 0;\n    }\n\n    to {\n      opacity: 1;\n    }\n  }\n\n  .fadeIn {\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n  }\n\n  .animated {\n    -webkit-animation-duration: 1s;\n    animation-duration: 1s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n  }\n\n  @media (prefers-reduced-motion) {\n    .animated {\n      -webkit-animation: unset !important;\n      animation: unset !important;\n      -webkit-transition: none !important;\n      transition: none !important;\n    }\n  }\n\n\n  /* Pulse Shrink */\n  /*.op-button {\n    //display: inline-block;\n    //vertical-align: middle;\n    transform: translateZ(0);\n    box-shadow: 0 0 1px rgba(0, 0, 0, 0);\n    backface-visibility: hidden;\n    -moz-osx-font-smoothing: grayscale;\n    transition-duration: 0.3s;\n    transition-property: transform;\n  }\n  .op-button:hover,\n  .op-button:focus,\n  .op-button:active {\n    transform: scale(1.1);\n  }*/\n}\n\n\n@media only screen and (max-width: 399px) {\n  .op-seek-button {\n    display: none !important;\n  }\n}'],sourceRoot:""}]),t.Z=f},3645:function(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(r)for(var A=0;A<this.length;A++){var s=this[A][0];null!=s&&(a[s]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);r&&a[u[0]]||(void 0!==i&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},1667:function(e){"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},7537:function(e){"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),i="/*# ".concat(o," */"),a=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(e," */")}));return[t].concat(a).concat([i]).join("\n")}return[t].join("\n")}},3379:function(e){"use strict";var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var i={},a=[],A=0;A<e.length;A++){var s=e[A],c=r.base?s[0]+r.base:s[0],u=i[c]||0,l="".concat(c," ").concat(u);i[c]=u+1;var f=n(l),p={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==f)t[f].references++,t[f].updater(p);else{var d=o(p,r);r.byIndex=A,t.splice(A,0,{identifier:l,updater:d,references:1})}a.push(l)}return a}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var i=r(e=e||[],o=o||{});return function(e){e=e||[];for(var a=0;a<i.length;a++){var A=n(i[a]);t[A].references--}for(var s=r(e,o),c=0;c<i.length;c++){var u=n(i[c]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}i=s}}},569:function(e){"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},9216:function(e){"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},3565:function(e,t,n){"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7795:function(e){"use strict";e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},4589:function(e){"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},7147:function(e,t,n){"use strict";var r="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==r&&r,o="URLSearchParams"in r,i="Symbol"in r&&"iterator"in Symbol,a="FileReader"in r&&"Blob"in r&&function(){try{return new Blob,!0}catch(e){return!1}}(),A="FormData"in r,s="ArrayBuffer"in r;if(s)var c=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(e){return e&&c.indexOf(Object.prototype.toString.call(e))>-1};function l(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function f(e){return"string"!=typeof e&&(e=String(e)),e}function p(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return i&&(t[Symbol.iterator]=function(){return t}),t}function d(e){this.map={},e instanceof d?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function g(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function h(e){return new Promise((function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}}))}function v(e){var t=new FileReader,n=h(t);return t.readAsArrayBuffer(e),n}function m(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function C(){return this.bodyUsed=!1,this._initBody=function(e){var t;this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:a&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:A&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:o&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():s&&a&&(t=e)&&DataView.prototype.isPrototypeOf(t)?(this._bodyArrayBuffer=m(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(e)||u(e))?this._bodyArrayBuffer=m(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):o&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},a&&(this.blob=function(){var e=g(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?g(this)||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer)):this.blob().then(v)}),this.text=function(){var e,t,n,r=g(this);if(r)return r;if(this._bodyBlob)return e=this._bodyBlob,n=h(t=new FileReader),t.readAsText(e),n;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},A&&(this.formData=function(){return this.text().then(w)}),this.json=function(){return this.text().then(JSON.parse)},this}d.prototype.append=function(e,t){e=l(e),t=f(t);var n=this.map[e];this.map[e]=n?n+", "+t:t},d.prototype.delete=function(e){delete this.map[l(e)]},d.prototype.get=function(e){return e=l(e),this.has(e)?this.map[e]:null},d.prototype.has=function(e){return this.map.hasOwnProperty(l(e))},d.prototype.set=function(e,t){this.map[l(e)]=f(t)},d.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},d.prototype.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),p(e)},d.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),p(e)},d.prototype.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),p(e)},i&&(d.prototype[Symbol.iterator]=d.prototype.entries);var y=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function b(e,t){if(!(this instanceof b))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');var n,r,o=(t=t||{}).body;if(e instanceof b){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new d(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,o||null==e._bodyInit||(o=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new d(t.headers)),this.method=(r=(n=t.method||this.method||"GET").toUpperCase(),y.indexOf(r)>-1?r:n),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(o),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==t.cache&&"no-cache"!==t.cache)){var i=/([?&])_=[^&]*/;i.test(this.url)?this.url=this.url.replace(i,"$1_="+(new Date).getTime()):this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}function w(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}})),t}function E(e,t){if(!(this instanceof E))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===t.statusText?"":""+t.statusText,this.headers=new d(t.headers),this.url=t.url||"",this._initBody(e)}b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},C.call(b.prototype),C.call(E.prototype),E.prototype.clone=function(){return new E(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},E.error=function(){var e=new E(null,{status:0,statusText:""});return e.type="error",e};var B=[301,302,303,307,308];E.redirect=function(e,t){if(-1===B.indexOf(t))throw new RangeError("Invalid status code");return new E(null,{status:t,headers:{location:e}})};var x=r.DOMException;try{new x}catch(e){(x=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack}).prototype=Object.create(Error.prototype),x.prototype.constructor=x}function k(e,t){return new Promise((function(n,o){var i=new b(e,t);if(i.signal&&i.signal.aborted)return o(new x("Aborted","AbortError"));var A=new XMLHttpRequest;function c(){A.abort()}A.onload=function(){var e,t,r={status:A.status,statusText:A.statusText,headers:(e=A.getAllResponseHeaders()||"",t=new d,e.replace(/\r?\n[\t ]+/g," ").split("\r").map((function(e){return 0===e.indexOf("\n")?e.substr(1,e.length):e})).forEach((function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}})),t)};r.url="responseURL"in A?A.responseURL:r.headers.get("X-Request-URL");var o="response"in A?A.response:A.responseText;setTimeout((function(){n(new E(o,r))}),0)},A.onerror=function(){setTimeout((function(){o(new TypeError("Network request failed"))}),0)},A.ontimeout=function(){setTimeout((function(){o(new TypeError("Network request failed"))}),0)},A.onabort=function(){setTimeout((function(){o(new x("Aborted","AbortError"))}),0)},A.open(i.method,function(e){try{return""===e&&r.location.href?r.location.href:e}catch(t){return e}}(i.url),!0),"include"===i.credentials?A.withCredentials=!0:"omit"===i.credentials&&(A.withCredentials=!1),"responseType"in A&&(a?A.responseType="blob":s&&i.headers.get("Content-Type")&&-1!==i.headers.get("Content-Type").indexOf("application/octet-stream")&&(A.responseType="arraybuffer")),!t||"object"!=typeof t.headers||t.headers instanceof d?i.headers.forEach((function(e,t){A.setRequestHeader(t,e)})):Object.getOwnPropertyNames(t.headers).forEach((function(e){A.setRequestHeader(e,f(t.headers[e]))})),i.signal&&(i.signal.addEventListener("abort",c),A.onreadystatechange=function(){4===A.readyState&&i.signal.removeEventListener("abort",c)}),A.send(void 0===i._bodyInit?null:i._bodyInit)}))}k.polyfill=!0,r.fetch||(r.fetch=k,r.Headers=d,r.Request=b,r.Response=E)},5442:function(e){"use strict";e.exports="data:font/ttf;base64,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"},5986:function(e){"use strict";e.exports="data:font/ttf;base64,AAEAAAAPAIAAAwBwR1NVQiCLJXoAAAD8AAAAVE9TLzI/QEsYAAABUAAAAFZjbWFwjePtyQAAAagAAAF+Y3Z0IAAAAAAAAAh4AAAADmZwZ21iLvl6AAAIiAAADgxnYXNwAAAAEAAACHAAAAAIZ2x5ZuLwowoAAAMoAAABiGhlYWQaqKjBAAAEsAAAADZoaGVhBzwDVgAABOgAAAAkaG10eAu4AAAAAAUMAAAADGxvY2EAYADEAAAFGAAAAAhtYXhwAPIOYwAABSAAAAAgbmFtZV/m2rgAAAVAAAAC5XBvc3S0mWDXAAAIKAAAAEhwcmVwfrY7tgAAFpQAAACcAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAED6AGQAAUAAAJ6ArwAAACMAnoCvAAAAeAAMQECAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOkg6SEDUv9qAFoDUgCWAAAAAQAAAAAAAAAAAAUAAAADAAAALAAAAAQAAAFWAAEAAAAAAFAAAwABAAAALAADAAoAAAFWAAQAJAAAAAQABAABAADpIf//AADpIP//AAAAAQAEAAAAAQACAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAoAAAAAAAAAAIAAOkgAADpIAAAAAEAAOkhAADpIQAAAAIAAAABAAD/7wNjAy0AKQA/QDwCAQAEAwECAAJMAQEESgACAAEAAgGABQEEAAACBABpAAEDAwFZAAEBA2EAAwEDUQAAACkAKRcXGRQGBhorATUHFzUeARcWFRQHBgcGIicmJyY1NCYiBhUUFxYXFjI3Njc2NTQnJicmAguWlkx/JSUpKENGpEZDKCkTHBQyMVNWxlZTMTIvLU5QAsxhiolvBVNCQ05SRkMoKSkoQ0ZSDhMUDWNWUzEyMjFTVmNfU1EyMwABAAD/7wNjAy0AKgBDQEAVAQIDFAEAAgJMFgEDSgUBAAIBAgABgAADAAIAAwJpAAEEBAFZAAEBBGEABAEEUQEAIyIYFxMSCQgAKgEqBgYWKwEiBhUUBwYHBiInJicmNTQ3PgE3FTcnFQYHBgcGFRQXFhcWMjc2NzY1NCYDQQ0UKShDRqRGQygpJiR/TJaWXlBOLS8yMVNWxlZTMTIUAX8TDlJGQygpKShDRlJOQ0JTBW+JimEGMzJRU19jVlMxMjIxU1ZjDhMAAAEAAAABAADSnNS7Xw889QAPA+gAAAAA286yYAAAAADbzrJgAAD/7wPoAy0AAAAIAAIAAAAAAAAAAQAAA1L/agAAA+gAAAAAA+gAAQAAAAAAAAAAAAAAAAAAAAMD6AAAA+gAAAPoAAAAAAAAAGAAxAABAAAAAwArAAEAAAAAAAIADAAqAI0AAABUDgwAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACgA1AAEAAAAAAAIABwA/AAEAAAAAAAMACgBGAAEAAAAAAAQACgBQAAEAAAAAAAUACwBaAAEAAAAAAAYACgBlAAEAAAAAAAoAKwBvAAEAAAAAAAsAEwCaAAMAAQQJAAAAagCtAAMAAQQJAAEAFAEXAAMAAQQJAAIADgErAAMAAQQJAAMAFAE5AAMAAQQJAAQAFAFNAAMAAQQJAAUAFgFhAAMAAQQJAAYAFAF3AAMAAQQJAAoAVgGLAAMAAQQJAAsAJgHhQ29weXJpZ2h0IChDKSAyMDIwIGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21zZWVrLWljb25zUmVndWxhcnNlZWstaWNvbnNzZWVrLWljb25zVmVyc2lvbiAxLjBzZWVrLWljb25zR2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20AQwBvAHAAeQByAGkAZwBoAHQAIAAoAEMAKQAgADIAMAAyADAAIABiAHkAIABvAHIAaQBnAGkAbgBhAGwAIABhAHUAdABoAG8AcgBzACAAQAAgAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAHMAZQBlAGsALQBpAGMAbwBuAHMAUgBlAGcAdQBsAGEAcgBzAGUAZQBrAC0AaQBjAG8AbgBzAHMAZQBlAGsALQBpAGMAbwBuAHMAVgBlAHIAcwBpAG8AbgAgADEALgAwAHMAZQBlAGsALQBpAGMAbwBuAHMARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwECAQMBBAAMb3Atc2Vlay1iYWNrD29wLXNlZWstZm9yd2FyZAAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQAGOwDENjuAUAYllZZGFZsAErWVkjsABQWGVZWSBksBZDI0JZLbAFLCBFILAEJWFkILAHQ1BYsAcjQrAII0IbISFZsAFgLbAGLCMhIyGwAysgZLEHYkIgsAgjQrAGRVgbsQENQ0VjsQENQ7AAYEVjsAUqISCwCEMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZIVkgsEBTWLABKxshsEBZI7AAUFhlWS2wByywCUMrsgACAENgQi2wCCywCSNCIyCwACNCYbACYmawAWOwAWCwByotsAksICBFILAOQ2O4BABiILAAUFiwQGBZZrABY2BEsAFgLbAKLLIJDgBDRUIqIbIAAQBDYEItsAsssABDI0SyAAEAQ2BCLbAMLCAgRSCwASsjsABDsAQlYCBFiiNhIGQgsCBQWCGwABuwMFBYsCAbsEBZWSOwAFBYZVmwAyUjYUREsAFgLbANLCAgRSCwASsjsABDsAQlYCBFiiNhIGSwJFBYsAAbsEBZI7AAUFhlWbADJSNhRESwAWAtsA4sILAAI0KzDQwAA0VQWCEbIyFZKiEtsA8ssQICRbBkYUQtsBAssAFgICCwD0NKsABQWCCwDyNCWbAQQ0qwAFJYILAQI0JZLbARLCCwEGJmsAFjILgEAGOKI2GwEUNgIIpgILARI0IjLbASLEtUWLEEZERZJLANZSN4LbATLEtRWEtTWLEEZERZGyFZJLATZSN4LbAULLEAEkNVWLESEkOwAWFCsBErWbAAQ7ACJUKxDwIlQrEQAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAQKiEjsAFhIIojYbAQKiEbsQEAQ2CwAiVCsAIlYbAQKiFZsA9DR7AQQ0dgsAJiILAAUFiwQGBZZrABYyCwDkNjuAQAYiCwAFBYsEBgWWawAWNgsQAAEyNEsAFDsAA+sgEBAUNgQi2wFSwAsQACRVRYsBIjQiBFsA4jQrANI7AAYEIgYLcYGAEAEQATAEJCQopgILAUI0KwAWGxFAgrsIsrGyJZLbAWLLEAFSstsBcssQEVKy2wGCyxAhUrLbAZLLEDFSstsBossQQVKy2wGyyxBRUrLbAcLLEGFSstsB0ssQcVKy2wHiyxCBUrLbAfLLEJFSstsCssIyCwEGJmsAFjsAZgS1RYIyAusAFdGyEhWS2wLCwjILAQYmawAWOwFmBLVFgjIC6wAXEbISFZLbAtLCMgsBBiZrABY7AmYEtUWCMgLrABchshIVktsCAsALAPK7EAAkVUWLASI0IgRbAOI0KwDSOwAGBCIGCwAWG1GBgBABEAQkKKYLEUCCuwiysbIlktsCEssQAgKy2wIiyxASArLbAjLLECICstsCQssQMgKy2wJSyxBCArLbAmLLEFICstsCcssQYgKy2wKCyxByArLbApLLEIICstsCossQkgKy2wLiwgPLABYC2wLywgYLAYYCBDI7ABYEOwAiVhsAFgsC4qIS2wMCywLyuwLyotsDEsICBHICCwDkNjuAQAYiCwAFBYsEBgWWawAWNgI2E4IyCKVVggRyAgsA5DY7gEAGIgsABQWLBAYFlmsAFjYCNhOBshWS2wMiwAsQACRVRYsQ4GRUKwARawMSqxBQEVRVgwWRsiWS2wMywAsA8rsQACRVRYsQ4GRUKwARawMSqxBQEVRVgwWRsiWS2wNCwgNbABYC2wNSwAsQ4GRUKwAUVjuAQAYiCwAFBYsEBgWWawAWOwASuwDkNjuAQAYiCwAFBYsEBgWWawAWOwASuwABa0AAAAAABEPiM4sTQBFSohLbA2LCA8IEcgsA5DY7gEAGIgsABQWLBAYFlmsAFjYLAAQ2E4LbA3LC4XPC2wOCwgPCBHILAOQ2O4BABiILAAUFiwQGBZZrABY2CwAENhsAFDYzgtsDkssQIAFiUgLiBHsAAjQrACJUmKikcjRyNhIFhiGyFZsAEjQrI4AQEVFCotsDossAAWsBcjQrAEJbAEJUcjRyNhsQwAQrALQytlii4jICA8ijgtsDsssAAWsBcjQrAEJbAEJSAuRyNHI2EgsAYjQrEMAEKwC0MrILBgUFggsEBRWLMEIAUgG7MEJgUaWUJCIyCwCkMgiiNHI0cjYSNGYLAGQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsARDYGQjsAVDYWRQWLAEQ2EbsAVDYFmwAyWwAmIgsABQWLBAYFlmsAFjYSMgILAEJiNGYTgbI7AKQ0awAiWwCkNHI0cjYWAgsAZDsAJiILAAUFiwQGBZZrABY2AjILABKyOwBkNgsAErsAUlYbAFJbACYiCwAFBYsEBgWWawAWOwBCZhILAEJWBkI7ADJWBkUFghGyMhWSMgILAEJiNGYThZLbA8LLAAFrAXI0IgICCwBSYgLkcjRyNhIzw4LbA9LLAAFrAXI0IgsAojQiAgIEYjR7ABKyNhOC2wPiywABawFyNCsAMlsAIlRyNHI2GwAFRYLiA8IyEbsAIlsAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbkIAAgAY2MjIFhiGyFZY7gEAGIgsABQWLBAYFlmsAFjYCMuIyAgPIo4IyFZLbA/LLAAFrAXI0IgsApDIC5HI0cjYSBgsCBgZrACYiCwAFBYsEBgWWawAWMjICA8ijgtsEAsIyAuRrACJUawF0NYUBtSWVggPFkusTABFCstsEEsIyAuRrACJUawF0NYUhtQWVggPFkusTABFCstsEIsIyAuRrACJUawF0NYUBtSWVggPFkjIC5GsAIlRrAXQ1hSG1BZWCA8WS6xMAEUKy2wQyywOisjIC5GsAIlRrAXQ1hQG1JZWCA8WS6xMAEUKy2wRCywOyuKICA8sAYjQoo4IyAuRrACJUawF0NYUBtSWVggPFkusTABFCuwBkMusDArLbBFLLAAFrAEJbAEJiAgIEYjR2GwDCNCLkcjRyNhsAtDKyMgPCAuIzixMAEUKy2wRiyxCgQlQrAAFrAEJbAEJSAuRyNHI2EgsAYjQrEMAEKwC0MrILBgUFggsEBRWLMEIAUgG7MEJgUaWUJCIyBHsAZDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwBENgZCOwBUNhZFBYsARDYRuwBUNgWbADJbACYiCwAFBYsEBgWWawAWNhsAIlRmE4IyA8IzgbISAgRiNHsAErI2E4IVmxMAEUKy2wRyyxADorLrEwARQrLbBILLEAOyshIyAgPLAGI0IjOLEwARQrsAZDLrAwKy2wSSywABUgR7AAI0KyAAEBFRQTLrA2Ki2wSiywABUgR7AAI0KyAAEBFRQTLrA2Ki2wSyyxAAEUE7A3Ki2wTCywOSotsE0ssAAWRSMgLiBGiiNhOLEwARQrLbBOLLAKI0KwTSstsE8ssgAARistsFAssgABRistsFEssgEARistsFIssgEBRistsFMssgAARystsFQssgABRystsFUssgEARystsFYssgEBRystsFcsswAAAEMrLbBYLLMAAQBDKy2wWSyzAQAAQystsFosswEBAEMrLbBbLLMAAAFDKy2wXCyzAAEBQystsF0sswEAAUMrLbBeLLMBAQFDKy2wXyyyAABFKy2wYCyyAAFFKy2wYSyyAQBFKy2wYiyyAQFFKy2wYyyyAABIKy2wZCyyAAFIKy2wZSyyAQBIKy2wZiyyAQFIKy2wZyyzAAAARCstsGgsswABAEQrLbBpLLMBAABEKy2waiyzAQEARCstsGssswAAAUQrLbBsLLMAAQFEKy2wbSyzAQABRCstsG4sswEBAUQrLbBvLLEAPCsusTABFCstsHAssQA8K7BAKy2wcSyxADwrsEErLbByLLAAFrEAPCuwQistsHMssQE8K7BAKy2wdCyxATwrsEErLbB1LLAAFrEBPCuwQistsHYssQA9Ky6xMAEUKy2wdyyxAD0rsEArLbB4LLEAPSuwQSstsHkssQA9K7BCKy2weiyxAT0rsEArLbB7LLEBPSuwQSstsHwssQE9K7BCKy2wfSyxAD4rLrEwARQrLbB+LLEAPiuwQCstsH8ssQA+K7BBKy2wgCyxAD4rsEIrLbCBLLEBPiuwQCstsIIssQE+K7BBKy2wgyyxAT4rsEIrLbCELLEAPysusTABFCstsIUssQA/K7BAKy2whiyxAD8rsEErLbCHLLEAPyuwQistsIgssQE/K7BAKy2wiSyxAT8rsEErLbCKLLEBPyuwQistsIsssgsAA0VQWLAGG7IEAgNFWCMhGyFZWUIrsAhlsAMkUHixBQEVRVgwWS0AS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAdCsQAAKrEAB0KxAAoqsQAHQrEACiqxAAdCuQAAAAsqsQAHQrkAAAALKrkAAwAARLEkAYhRWLBAiFi5AAMAZESxKAGIUVi4CACIWLkAAwAARFkbsScBiFFYugiAAAEEQIhjVFi5AAMAAERZWVlZWbEADiq4Af+FsASNsQIARLMFZAYAREQ="},8613:function(e){"use strict";e.exports="data:font/ttf;base64,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"}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.m=e,n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.b=document.baseURI||self.location.href,n(8594),n(7147);var r=n(8445);return r.default}()}));
-//# sourceMappingURL=ovenplayer.js.map
\ No newline at end of file
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.OvenPlayer=t():e.OvenPlayer=t()}(self,(function(){return function(){var e={8445:function(e,t,n){"use strict";n.d(t,{default:function(){return sr}});var r="0.10.27",o=n(741),i=n.n(o);function a(e){return e?e.replace(/^\s+|\s+$/g,""):""}var A=function(e){if(!e||"rtmp"==e.substr(0,4))return"";var t=function(e){var t="";return/[(,]format=mpd-/i.test(e)?t="mpd":/[(,]format=m3u8-/i.test(e)&&(t="m3u8"),t}(e);return t||((e=e.split("?")[0].split("#")[0]).lastIndexOf(".")>-1?e.substr(e.lastIndexOf(".")+1,e.length).toLowerCase():"")};function s(e){var t=parseInt(e,10);if(!e)return"00:00";var n=Math.floor(t/3600),r=Math.floor((t-3600*n)/60),o=t-3600*n-60*r;return r<10&&(r="0"+r),o<10&&(o="0"+o),n>0?n+":"+r+":"+o:r+":"+o}function c(e,t){if(!e)return 0;if(i().isNumber(e)&&!i().isNaN(e))return e;var n=(e=e.replace(",",".")).split(":"),r=n.length,o=0;if("s"===e.slice(-1))o=parseFloat(e);else if("m"===e.slice(-1))o=60*parseFloat(e);else if("h"===e.slice(-1))o=3600*parseFloat(e);else if(r>1){var a=r-1;4===r&&(t&&(o=parseFloat(n[a])/t),a-=1),o+=parseFloat(n[a]),o+=60*parseFloat(n[a-1]),r>=3&&(o+=3600*parseFloat(n[a-2]))}else o=parseFloat(e);return i().isNaN(o)?0:o}function u(e){var t={},n=e.split("\r\n");1===n.length&&(n=e.split("\n"));var r=1;if(n[0].indexOf(" --\x3e ")>0&&(r=0),n.length>r+1&&n[r+1]){var o=n[r],i=o.indexOf(" --\x3e ");i>0&&(t.start=c(o.substr(0,i)),t.end=c(o.substr(i+5)),t.text=n.slice(r+1).join("\r\n"))}return t}var l=window.VTTCue,f={"":!0,lr:!0,rl:!0},p={start:!0,middle:!0,end:!0,left:!0,right:!0};function d(e){return"string"==typeof e&&!!p[e.toLowerCase()]&&e.toLowerCase()}function g(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}l||((l=function(e,t,n){var r=this,o=/MSIE\s8\.0/.test(navigator.userAgent),i={};o?r=document.createElement("custom"):i.enumerable=!0,r.hasBeenReset=!1;var a="",A=!1,s=e,c=t,u=n,l=null,p="",h=!0,v="auto",m="start",C=50,y="middle",b=50,w="middle";if(Object.defineProperty(r,"id",g({},i,{get:function(){return a},set:function(e){a=""+e}})),Object.defineProperty(r,"pauseOnExit",g({},i,{get:function(){return A},set:function(e){A=!!e}})),Object.defineProperty(r,"startTime",g({},i,{get:function(){return s},set:function(e){if("number"!=typeof e)throw new TypeError("Start time must be set to a number.");s=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"endTime",g({},i,{get:function(){return c},set:function(e){if("number"!=typeof e)throw new TypeError("End time must be set to a number.");c=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"text",g({},i,{get:function(){return u},set:function(e){u=""+e,this.hasBeenReset=!0}})),Object.defineProperty(r,"region",g({},i,{get:function(){return l},set:function(e){l=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"vertical",g({},i,{get:function(){return p},set:function(e){var t=function(e){return"string"==typeof e&&!!f[e.toLowerCase()]&&e.toLowerCase()}(e);if(!1===t)throw new SyntaxError("An invalid or illegal string was specified.");p=t,this.hasBeenReset=!0}})),Object.defineProperty(r,"snapToLines",g({},i,{get:function(){return h},set:function(e){h=!!e,this.hasBeenReset=!0}})),Object.defineProperty(r,"line",g({},i,{get:function(){return v},set:function(e){if("number"!=typeof e&&"auto"!==e)throw new SyntaxError("An invalid number or illegal string was specified.");v=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"lineAlign",g({},i,{get:function(){return m},set:function(e){var t=d(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");m=t,this.hasBeenReset=!0}})),Object.defineProperty(r,"position",g({},i,{get:function(){return C},set:function(e){if(e<0||e>100)throw new Error("Position must be between 0 and 100.");C=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"positionAlign",g({},i,{get:function(){return y},set:function(e){var t=d(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");y=t,this.hasBeenReset=!0}})),Object.defineProperty(r,"size",g({},i,{get:function(){return b},set:function(e){if(e<0||e>100)throw new Error("Size must be between 0 and 100.");b=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"align",g({},i,{get:function(){return w},set:function(e){var t=d(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");w=t,this.hasBeenReset=!0}})),r.displayState=void 0,o)return r}).prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)});var h=l,v={"":!0,up:!0};function m(e){return"number"==typeof e&&e>=0&&e<=100}var C=function(){var e=100,t=3,n=0,r=100,o=0,i=100,a="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return e},set:function(t){if(!m(t))throw new Error("Width must be between 0 and 100.");e=t}},lines:{enumerable:!0,get:function(){return t},set:function(e){if("number"!=typeof e)throw new TypeError("Lines must be set to a number.");t=e}},regionAnchorY:{enumerable:!0,get:function(){return r},set:function(e){if(!m(e))throw new Error("RegionAnchorX must be between 0 and 100.");r=e}},regionAnchorX:{enumerable:!0,get:function(){return n},set:function(e){if(!m(e))throw new Error("RegionAnchorY must be between 0 and 100.");n=e}},viewportAnchorY:{enumerable:!0,get:function(){return i},set:function(e){if(!m(e))throw new Error("ViewportAnchorY must be between 0 and 100.");i=e}},viewportAnchorX:{enumerable:!0,get:function(){return o},set:function(e){if(!m(e))throw new Error("ViewportAnchorX must be between 0 and 100.");o=e}},scroll:{enumerable:!0,get:function(){return a},set:function(e){var t=function(e){return"string"==typeof e&&!!v[e.toLowerCase()]&&e.toLowerCase()}(e);if(!1===t)throw new SyntaxError("An invalid or illegal string was specified.");a=t}}})},y=function(){};function b(e,t){return void 0===t&&(t=1),"rgba("+[parseInt(e.substring(0,2),16),parseInt(e.substring(2,4),16),parseInt(e.substring(4,6),16),t].join(",")+")"}var w=1;function E(e,t,n){switch(n){case"webvtt.font.color":case"webvtt.font.opacity":var r=Services.prefs.getCharPref("webvtt.font.color"),o=Services.prefs.getIntPref("webvtt.font.opacity")/100;B.fontSet=b(r,o);break;case"webvtt.font.scale":w=Services.prefs.getIntPref("webvtt.font.scale")/100;break;case"webvtt.bg.color":case"webvtt.bg.opacity":var i=Services.prefs.getCharPref("webvtt.bg.color"),a=Services.prefs.getIntPref("webvtt.bg.opacity")/100;B.backgroundSet=b(i,a);break;case"webvtt.edge.color":case"webvtt.edge.type":var A=Services.prefs.getIntPref("webvtt.edge.type"),s=Services.prefs.getCharPref("webvtt.edge.color");B.edgeSet=["","0px 0px ","4px 4px 4px ","-2px -2px ","2px 2px "][A]+b(s)}}if("undefined"!=typeof Services){var B={};["webvtt.font.color","webvtt.font.opacity","webvtt.font.scale","webvtt.bg.color","webvtt.bg.opacity","webvtt.edge.color","webvtt.edge.type"].forEach((function(e){E(0,0,e),Services.prefs.addObserver(e,E,!1)}))}var x=Object.create||function(){function e(){}return function(t){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return e.prototype=t,new e}}();function k(e,t){this.name="ParsingError",this.code=e.code,this.message=t||e.message}function I(e){function t(e,t,n,r){return 3600*(0|e)+60*(0|t)+(0|n)+(0|r)/1e3}var n=e.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return n?n[3]?t(n[1],n[2],n[3].replace(":",""),n[4]):n[1]>59?t(n[1],n[2],0,n[4]):t(0,n[1],n[2],n[4]):null}function S(){this.values=x(null)}function T(e,t,n,r){var o=r?e.split(r):[e];for(var i in o)if("string"==typeof o[i]){var a=o[i].split(n);2===a.length&&t(a[0],a[1])}}function L(e,t,n){var r=e;function o(){var t=I(e);if(null===t)throw new k(k.Errors.BadTimeStamp,"Malformed timestamp: "+r);return e=e.replace(/^[^\sa-zA-Z-]+/,""),t}function i(){e=e.replace(/^\s+/,"")}if(i(),t.startTime=o(),i(),"--\x3e"!==e.substr(0,3))throw new k(k.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '--\x3e'): "+r);e=e.substr(3),i(),t.endTime=o(),i(),function(e,t){var r=new S;T(e,(function(e,t){switch(e){case"region":for(var o=n.length-1;o>=0;o--)if(n[o].id===t){r.set(e,n[o].region);break}break;case"vertical":r.alt(e,t,["rl","lr"]);break;case"line":var i=t.split(","),a=i[0];r.integer(e,a),r.percent(e,a)&&r.set("snapToLines",!1),r.alt(e,a,["auto"]),2===i.length&&r.alt("lineAlign",i[1],["start","middle","end"]);break;case"position":i=t.split(","),r.percent(e,i[0]),2===i.length&&r.alt("positionAlign",i[1],["start","middle","end"]);break;case"size":r.percent(e,t);break;case"align":r.alt(e,t,["start","middle","end","left","right"])}}),/:/,/\s/)}(e)}k.prototype=x(Error.prototype),k.prototype.constructor=k,k.Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},S.prototype={set:function(e,t){this.get(e)||""===t||(this.values[e]=t)},get:function(e,t,n){return n?this.has(e)?this.values[e]:t[n]:this.has(e)?this.values[e]:t},has:function(e){return e in this.values},alt:function(e,t,n){for(var r=0;r<n.length;++r)if(t===n[r]){this.set(e,t);break}},integer:function(e,t){/^-?\d+$/.test(t)&&this.set(e,parseInt(t,10))},percent:function(e,t){return!!(t.match(/^([\d]{1,3})(\.[\d]*)?%$/)&&(t=parseFloat(t))>=0&&t<=100)&&(this.set(e,t),!0)}};var R={"&amp;":"&","&lt;":"<","&gt;":">","&lrm;":"‎","&rlm;":"‏","&nbsp;":" "},Q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},O={v:"title",lang:"lang"},M={rt:"ruby"};function D(e,t){function n(){if(!t)return null;var e,n=t.match(/^([^<]*)(<[^>]+>?)?/);return e=n[1]?n[1]:n[2],t=t.substr(e.length),e}function r(e){return R[e]}function o(e){for(;p=e.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)e=e.replace(p[0],r);return e}function i(e,t){return!M[t.localName]||M[t.localName]===e.localName}function a(t,n){var r=Q[t];if(!r)return null;var o=e.document.createElement(r);o.localName=r;var i=O[t];return i&&n&&(o[i]=n.trim()),o}for(var A,s=e.document.createElement("div"),c=s,u=[];null!==(A=n());)if("<"!==A[0])c.appendChild(e.document.createTextNode(o(A)));else{if("/"===A[1]){u.length&&u[u.length-1]===A.substr(2).replace(">","")&&(u.pop(),c=c.parentNode);continue}var l,f=I(A.substr(1,A.length-2));if(f){l=e.document.createProcessingInstruction("timestamp",f),c.appendChild(l);continue}var p=A.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!p)continue;if(!(l=a(p[1],p[3])))continue;if(!i(c,l))continue;p[2]&&(l.className=p[2].substr(1).replace("."," ")),u.push(p[1]),c.appendChild(l),c=l}return s}var F=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109];function P(){}function U(e,t,n){var r="undefined"!=typeof navigator&&/MSIE\s8\.0/.test(navigator.userAgent),o="rgba(255, 255, 255, 1)",i="rgba(0, 0, 0, 0.8)",a="";void 0!==B&&(o=B.fontSet,i=B.backgroundSet,a=B.edgeSet),r&&(o="rgb(255, 255, 255)",i="rgb(0, 0, 0)"),P.call(this),this.cue=t,this.cueDiv=D(e,t.text);var A={color:o,backgroundColor:i,textShadow:a,position:"relative",left:0,right:0,top:0,bottom:0,display:"inline"};r||(A.writingMode=""===t.vertical?"horizontal-tb":"lr"===t.vertical?"vertical-lr":"vertical-rl",A.unicodeBidi="plaintext"),this.applyStyles(A,this.cueDiv),this.div=e.document.createElement("div"),A={textAlign:"middle"===t.align?"center":t.align,font:n.font,whiteSpace:"pre-line",position:"absolute"},r||(A.direction=function(e){var t,n=[],r="";if(!e||!e.childNodes)return"ltr";function o(e,t){for(var n=t.childNodes.length-1;n>=0;n--)e.push(t.childNodes[n])}function i(e){if(!e||!e.length)return null;var t=e.pop(),n=t.textContent||t.innerText;if(n){var r=n.match(/^.*(\n|\r)/);return r?(e.length=0,r[0]):n}return"ruby"===t.tagName?i(e):t.childNodes?(o(e,t),i(e)):void 0}for(o(n,e);r=i(n);)for(var a=0;a<r.length;a++){t=r.charCodeAt(a);for(var A=0;A<F.length;A++)if(F[A]===t)return"rtl"}return"ltr"}(this.cueDiv),A.writingMode=""===t.vertical?"horizontal-tb":"lr"===t.vertical?"vertical-lr":"vertical-rl".stylesunicodeBidi="plaintext"),this.applyStyles(A),this.div.appendChild(this.cueDiv);var s=0;switch(t.positionAlign){case"start":s=t.position;break;case"middle":s=t.position-t.size/2;break;case"end":s=t.position-t.size}""===t.vertical?this.applyStyles({left:this.formatStyle(s,"%"),width:this.formatStyle(t.size,"%")}):this.applyStyles({top:this.formatStyle(s,"%"),height:this.formatStyle(t.size,"%")}),this.move=function(e){this.applyStyles({top:this.formatStyle(e.top,"px"),bottom:this.formatStyle(e.bottom,"px"),left:this.formatStyle(e.left,"px"),right:this.formatStyle(e.right,"px"),height:this.formatStyle(e.height,"px"),width:this.formatStyle(e.width,"px")})}}function N(e){var t,n,r,o,i="undefined"!=typeof navigator&&/MSIE\s8\.0/.test(navigator.userAgent);if(e.div){n=e.div.offsetHeight,r=e.div.offsetWidth,o=e.div.offsetTop;var a=(a=e.div.childNodes)&&(a=a[0])&&a.getClientRects&&a.getClientRects();e=e.div.getBoundingClientRect(),t=a?Math.max(a[0]&&a[0].height||0,e.height/a.length):0}this.left=e.left,this.right=e.right,this.top=e.top||o,this.height=e.height||n,this.bottom=e.bottom||o+(e.height||n),this.width=e.width||r,this.lineHeight=void 0!==t?t:e.lineHeight,i&&!this.lineHeight&&(this.lineHeight=13)}function W(e,t,n,r){var o=new N(t),i=t.cue,a=function(e){if("number"==typeof e.line&&(e.snapToLines||e.line>=0&&e.line<=100))return e.line;if(!e.track||!e.track.textTrackList||!e.track.textTrackList.mediaElement)return-1;for(var t=e.track,n=t.textTrackList,r=0,o=0;o<n.length&&n[o]!==t;o++)"showing"===n[o].mode&&r++;return-1*++r}(i),A=[];if(i.snapToLines){var s;switch(i.vertical){case"":A=["+y","-y"],s="height";break;case"rl":A=["+x","-x"],s="width";break;case"lr":A=["-x","+x"],s="width"}var c=o.lineHeight,u=c*Math.round(a),l=n[s]+c,f=A[0];Math.abs(u)>l&&(u=u<0?-1:1,u*=Math.ceil(l/c)*c),a<0&&(u+=""===i.vertical?n.height:n.width,A=A.reverse()),o.move(f,u)}else{var p=o.lineHeight/n.height*100;switch(i.lineAlign){case"middle":a-=p/2;break;case"end":a-=p}switch(i.vertical){case"":t.applyStyles({top:t.formatStyle(a,"%")});break;case"rl":t.applyStyles({left:t.formatStyle(a,"%")});break;case"lr":t.applyStyles({right:t.formatStyle(a,"%")})}A=["+y","-x","+x","-y"],o=new N(t)}var d=function(e,t){for(var o,i=new N(e),a=1,A=0;A<t.length;A++){for(;e.overlapsOppositeAxis(n,t[A])||e.within(n)&&e.overlapsAny(r);)e.move(t[A]);if(e.within(n))return e;var s=e.intersectPercentage(n);a>s&&(o=new N(e),a=s),e=new N(i)}return o||i}(o,A);t.move(d.toCSSCompatValues(n))}P.prototype.applyStyles=function(e,t){for(var n in t=t||this.div,e)e.hasOwnProperty(n)&&(t.style[n]=e[n])},P.prototype.formatStyle=function(e,t){return 0===e?0:e+t},U.prototype=x(P.prototype),U.prototype.constructor=U,N.prototype.move=function(e,t){switch(t=void 0!==t?t:this.lineHeight,e){case"+x":this.left+=t,this.right+=t;break;case"-x":this.left-=t,this.right-=t;break;case"+y":this.top+=t,this.bottom+=t;break;case"-y":this.top-=t,this.bottom-=t}},N.prototype.overlaps=function(e){return this.left<e.right&&this.right>e.left&&this.top<e.bottom&&this.bottom>e.top},N.prototype.overlapsAny=function(e){for(var t=0;t<e.length;t++)if(this.overlaps(e[t]))return!0;return!1},N.prototype.within=function(e){return this.top>=e.top&&this.bottom<=e.bottom&&this.left>=e.left&&this.right<=e.right},N.prototype.overlapsOppositeAxis=function(e,t){switch(t){case"+x":return this.left<e.left;case"-x":return this.right>e.right;case"+y":return this.top<e.top;case"-y":return this.bottom>e.bottom}},N.prototype.intersectPercentage=function(e){return Math.max(0,Math.min(this.right,e.right)-Math.max(this.left,e.left))*Math.max(0,Math.min(this.bottom,e.bottom)-Math.max(this.top,e.top))/(this.height*this.width)},N.prototype.toCSSCompatValues=function(e){return{top:this.top-e.top,bottom:e.bottom-this.bottom,left:this.left-e.left,right:e.right-this.right,height:this.height,width:this.width}},N.getSimpleBoxPosition=function(e){var t=e.div?e.div.offsetHeight:e.tagName?e.offsetHeight:0,n=e.div?e.div.offsetWidth:e.tagName?e.offsetWidth:0,r=e.div?e.div.offsetTop:e.tagName?e.offsetTop:0;return{left:(e=e.div?e.div.getBoundingClientRect():e.tagName?e.getBoundingClientRect():e).left,right:e.right,top:e.top||r,height:e.height||t,bottom:e.bottom||r+(e.height||t),width:e.width||n}},y.StringDecoder=function(){return{decode:function(e){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}},y.convertCueToDOMTree=function(e,t){return e&&t?D(e,t):null},y.processCues=function(e,t,n){if(!e||!t||!n)return null;for(;n.firstChild;)n.removeChild(n.firstChild);var r=e.document.createElement("div");if(r.style.position="absolute",r.style.left="0",r.style.right="0",r.style.top="0",r.style.bottom="0",r.style.margin="1.5%",n.appendChild(r),function(e){for(var t=0;t<e.length;t++)if(e[t].hasBeenReset||!e[t].displayState)return!0;return!1}(t)){var o=[],i=N.getSimpleBoxPosition(r),a={font:Math.round(.05*i.height*100)/100*w+"px sans-serif"};!function(){for(var n,A,s=0;s<t.length;s++)A=t[s],n=new U(e,A,a),r.appendChild(n.div),W(0,n,i,o),A.displayState=n.div,o.push(N.getSimpleBoxPosition(n))}()}else for(var A=0;A<t.length;A++)r.appendChild(t[A].displayState)},(y.Parser=function(e,t){this.window=e,this.state="INITIAL",this.buffer="",this.decoder=t||new TextDecoder("utf8"),this.regionList=[]}).prototype={reportOrThrowError:function(e){if(!(e instanceof k))throw e;this.onparsingerror&&this.onparsingerror(e)},parse:function(e,t){var n=this;function r(){for(var e=n.buffer,t=0;t<e.length&&"\r"!==e[t]&&"\n"!==e[t];)++t;var r=e.substr(0,t);return"\r"===e[t]&&++t,"\n"===e[t]&&++t,n.buffer=e.substr(t),r}e&&(n.buffer+=n.decoder.decode(e,{stream:!0}));try{var o;if("INITIAL"===n.state){if(!/\r\n|\n/.test(n.buffer))return this;var i=(o=r()).match(/^WEBVTT([ \t].*)?$/);if(!i||!i[0])throw new k(k.Errors.BadSignature);n.state="HEADER"}for(var a=!1;n.buffer;){if(!/\r\n|\n/.test(n.buffer))return this;switch(a?a=!1:o=r(),n.state){case"HEADER":/:/.test(o)?T(o,(function(e,t){"Region"===e&&function(e){var t=new S;if(T(e,(function(e,n){switch(e){case"id":t.set(e,n);break;case"width":t.percent(e,n);break;case"lines":t.integer(e,n);break;case"regionanchor":case"viewportanchor":var r=n.split(",");if(2!==r.length)break;var o=new S;if(o.percent("x",r[0]),o.percent("y",r[1]),!o.has("x")||!o.has("y"))break;t.set(e+"X",o.get("x")),t.set(e+"Y",o.get("y"));break;case"scroll":t.alt(e,n,["up"])}}),/=/,/\s/),t.has("id")){var r=new C;r.width=t.get("width",100),r.lines=t.get("lines",3),r.regionAnchorX=t.get("regionanchorX",0),r.regionAnchorY=t.get("regionanchorY",100),r.viewportAnchorX=t.get("viewportanchorX",0),r.viewportAnchorY=t.get("viewportanchorY",100),r.scroll=t.get("scroll",""),n.onregion&&n.onregion(r),n.regionList.push({id:t.get("id"),region:r})}}(t)}),/:/):o||(n.state="ID");continue;case"NOTE":o||(n.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(o)){n.state="NOTE";break}if(!o)continue;if(n.cue=new h(0,0,""),n.state="CUE",-1===o.indexOf("--\x3e")){n.cue.id=o;continue}case"CUE":try{L(o,n.cue,n.regionList)}catch(e){n.reportOrThrowError(e),n.cue=null,n.state="BADCUE";continue}n.state="CUETEXT";continue;case"CUETEXT":var A=-1!==o.indexOf("--\x3e");if(!o||A&&(a=!0)){n.oncue&&n.oncue(n.cue),n.cue=null,n.state="ID";continue}n.cue.text&&(n.cue.text+="\n"),n.cue.text+=o;continue;case"BADCUE":o||(n.state="ID");continue}}if(!t)return"CUETEXT"===n.state&&n.cue&&n.oncue&&n.oncue(n.cue),n.flush(),this}catch(e){n.reportOrThrowError(e),"CUETEXT"===n.state&&n.cue&&n.oncue&&n.oncue(n.cue),n.cue=null,n.state="INITIAL"===n.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var e=this;try{if(e.buffer+=e.decoder.decode(),(e.cue||"HEADER"===e.state)&&(e.buffer+="\n\n",e.parse(null,!0)),"INITIAL"===e.state)throw new k(k.Errors.BadSignature)}catch(t){e.reportOrThrowError(t)}return e.onflush&&e.onflush(),this}};var j=y,Y=function(){var e="";screen.width&&(e+=(screen.width?screen.width:"")+" x "+(screen.height?screen.height:""));var t,n,r,o=navigator.appVersion,i=navigator.userAgent,a=navigator.appName,A=""+parseFloat(navigator.appVersion),s=parseInt(navigator.appVersion,10);-1!=(n=i.indexOf("Opera"))&&(a="Opera",A=i.substring(n+6),-1!=(n=i.indexOf("Version"))&&(A=i.substring(n+8))),-1!=(n=i.indexOf("OPR"))?(a="Opera",A=i.substring(n+4)):-1!=(n=i.indexOf("SamsungBrowser"))?(a="SamsungBrowser",A=i.substring(n+15)):-1!=(n=i.indexOf("Edge"))?(a="Microsoft Edge",A=i.substring(n+5)):-1!=(n=i.indexOf("MSIE"))?(a="Microsoft Internet Explorer",A=i.substring(n+5),-1!==i.indexOf("Trident/")&&-1!==i.indexOf("rv:")&&(A=i.substring(i.indexOf("rv:")+3))):-1!=(n=i.indexOf("Chrome"))?(a="Chrome",A=i.substring(n+7)):-1!=(n=i.indexOf("CriOS"))?(a="Chrome",A=i.substring(n+6)):-1!=(n=i.indexOf("Firefox"))?(a="Firefox",A=i.substring(n+8)):-1!=(n=i.indexOf("FxiOS"))?(a="Firefox",A=i.substring(n+6)):-1!=(n=i.indexOf("Safari"))?(a="Safari",A=i.substring(n+7),-1!=(n=i.indexOf("Version"))&&(A=i.substring(n+8))):-1!==i.indexOf("Trident/")?(a="Microsoft Internet Explorer",A=i.substring(i.indexOf("rv:")+3)):(t=i.lastIndexOf(" ")+1)<(n=i.lastIndexOf("/"))&&(a=i.substring(t,n),A=i.substring(n+1),a.toLowerCase()==a.toUpperCase()&&(a=navigator.appName)),i.indexOf(" wv"),-1!=(r=A.indexOf(";"))&&(A=A.substring(0,r)),-1!=(r=A.indexOf(" "))&&(A=A.substring(0,r)),-1!=(r=A.indexOf(")"))&&(A=A.substring(0,r)),s=parseInt(""+A,10),isNaN(s)&&(A=""+parseFloat(navigator.appVersion),s=parseInt(navigator.appVersion,10));var c=/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(o),u=!!navigator.cookieEnabled;void 0!==navigator.cookieEnabled||u||(document.cookie="testcookie",u=-1!=document.cookie.indexOf("testcookie"));var l="-",f=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows Server 2003",r:/Windows NT 5.2/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Windows 2000",r:/(Windows NT 5.0|Windows 2000)/},{s:"Windows ME",r:/(Win 9x 4.90|Windows ME)/},{s:"Windows 98",r:/(Windows 98|Win98)/},{s:"Windows 95",r:/(Windows 95|Win95|Windows_95)/},{s:"Windows NT 4.0",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:"Windows CE",r:/Windows CE/},{s:"Windows 3.11",r:/Win16/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Linux",r:/(Linux|X11)/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS XI",r:/Mac OS X 11/},{s:"Mac OS X",r:/Mac OS X 10/},{s:"Mac OS",r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"QNX",r:/QNX/},{s:"UNIX",r:/UNIX/},{s:"BeOS",r:/BeOS/},{s:"OS/2",r:/OS\/2/},{s:"Search Bot",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}];for(var p in f){var d=f[p];if(d.r.test(i)){l=d.s;break}}var g="-";switch(/Windows/.test(l)&&(g=/Windows (.*)/.exec(l)[1],l="Windows"),l){case"Mac OS XI":g=/Mac OS X (11[\.\_\d]+)/.exec(i)[1];break;case"Mac OS X":g=/Mac OS X (10[\.\_\d]+)/.exec(i)[1];break;case"Android":g=/Android ([\.\_\d]+)/.exec(i)[1];break;case"iOS":g=(g=/OS (\d+)_(\d+)_?(\d+)?/.exec(o))?g[1]+"."+g[2]+"."+(0|g[3]):""}return{screen:e,browser:a,browserVersion:A,browserMajorVersion:s,mobile:c,ua:i,os:l,osVersion:g,cookies:u}},G=/<sync|<\/body|<\/sami/i,z=/\r\n?|\n/g,_=/<[a-z]*[^>]*<[a-z]*/g,V=/<sync[^>]+?start[^=]*=[^0-9]*([0-9]*)["^0-9"]*/i,H=/<br[^>]*>/gi,J=function(e,t){return t=(((t||"")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join(""),e.replace(/<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi,"").replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,(function(e,n){return t.indexOf("<"+n.toLowerCase()+">")>-1?e:""}))},Z=function(e){return e.sort((function(e,t){var n;return 0==(n=e.start-t.start)?e.end-t.end:n}))},K=function(){var e={},t=function(e){return e.map((function(e){return new h(e.start,e.end,e.text)}))};return e.load=function(e,n,r,o){fetch(e.file).then((function(e){e.ok?e.text().then((function(e){var o=[],i=[];if(e.indexOf("WEBVTT")>=0){OvenPlayerConsole.log("WEBVTT LOADED");var A=new j.Parser(window,j.StringDecoder());i=[],A.oncue=function(e){i.push(e)},A.onflush=function(){r(i)},A.parse(e)}else if(e.indexOf("SAMI")>=0){OvenPlayerConsole.log("SAMI LOADED");var s=function(e,t){var n,r,o,i,a,A,s,c,u,l;if(s=function(){var t,n,r,a,s,c,u,f,p,d,g,h,v,m,C,y;for(n=function(e){var n;return(n=new Error(e)).line=u,n.context=t,o.push(n)},u=1,p=[],v={},h=e;d=h.search(),!(f<=0||d<0);)f=h.slice(d+1).search(G)+1,t=f>0?h.slice(d,d+f):h.slice(d),u+=(null!=(m=h.slice(0,d).match(z))?m.length:void 0)||0,_.test(t)&&n("ERROR_BROKEN_TAGS"),h=h.slice(d+f),(null===(g=+(null!=(C=t.match(V))?parseFloat(C[1]/1e3):void 0))||g<0)&&n("ERROR_INVALID_TIME"),(s=i(t))||n("ERROR_INVALID_LANGUAGE"),u+=(null!=(y=t.match(z))?y.length:void 0)||0,t=(t=t.replace(z,"")).replace(H,"\n"),a={start:g,text:"",contents:r=J(t).trim()},s&&(a.text=r),v[s]||(v[s]=[]),a.start&&v[s].push(a);l=l||function(){var e,t,n=window.navigator,r=["language","browserLanguage","systemLanguage","userLanguage"];if(Array.isArray(n.languages))for(e=0;e<n.languages.length;e++)if((t=n.languages[e])&&t.length)return t;for(e=0;e<r.length;e++)if((t=n[r[e]])&&t.length)return t;return null}();var b=Object.keys(v);return b&&b.length>0&&(c=b.indexOf(l)>-1?v[l]:v[b.filter((function(e){return"undefined"!==e}))[0]],c=Z(c),c=A(c),p=p.concat(c)),Z(p)},i=function(e){var t,r;if(e)for(t in n)if((r=n[t]).reClassName.test(e))return r.lang},A=function(e){var t,n,o;for(t=e.length;t--;)n=e[t],null!=(o=e[t-1])&&(o.end=n.start),n.contents&&"&nbsp;"!==n.contents?(delete e[t].contents,n.end||(n.end=n.start+r)):e.splice(t,1);return e},o=[],n={KRCC:{lang:"ko",reClassName:new RegExp("class[^=]*?=[\"'S]*(KRCC)['\"S]?","i")},KOCC:{lang:"ko",reClassName:new RegExp("class[^=]*?=[\"'S]*(KOCC)['\"S]?","i")},KR:{lang:"ko",reClassName:new RegExp("class[^=]*?=[\"'S]*(KR)['\"S]?","i")},ENCC:{lang:"en",reClassName:new RegExp("class[^=]*?=[\"'S]*(ENCC)['\"S]?","i")},EGCC:{lang:"en",reClassName:new RegExp("class[^=]*?=[\"'S]*(EGCC)['\"S]?","i")},EN:{lang:"en",reClassName:new RegExp("class[^=]*?=[\"'S]*(EN)['\"S]?","i")},JPCC:{lang:"ja",reClassName:new RegExp("class[^=]*?=[\"'S]*(JPCC)['\"S]?","i")}},null!=t?t.definedLangs:void 0)for(a in u=t.definedLangs)c=u[a],n[a]=c;return r=(null!=t?t.duration:void 0)||10,l=t.fixedLang,e=e.trim(),{result:s(),errors:o}}(e,{fixedLang:n});i=t(s.result),r(i)}else OvenPlayerConsole.log("SRT LOADED"),o=function(e){var t=[],n=(e=a(e)).split("\r\n\r\n");1===n.length&&(n=e.split("\n\n"));for(var r=0;r<n.length;r++)if("WEBVTT"!==n[r]){var o=u(n[r]);o.text&&t.push(o)}return t}(e),i=t(o),r(i)})).catch((function(e){o(e)})):o(e.status)})).catch((function(e){o(e)}))},e},X="idle",q="complete",$="paused",ee="playing",te="error",ne="loading",re="stalled",oe="adLoaded",ie="adPlaying",ae="adPaused",Ae="adComplete",se="adError",ce="html5",ue="webrtc",le="dash",fe="hls",pe="rtmp",de="ready",ge="destroy",he="playlistChanged",ve="allPlaylistEnded",me="unstableNetwork",Ce="error",ye="stateChanged",be="pause",we="play",Ee="clicked",Be="resized",xe="fullscreenChanged",ke="warning",Ie="adChanged",Se="adTime",Te="bufferChanged",Le="time",Re="volumeChanged",Qe="mute",Oe="metaChanged",Me="sourceChanged",De="qualityLevelChanged",Fe="cueChanged",Pe="captionChanged",Ue="timeDisplayModeChanged",Ne="p2pMode",We="audioTrackChanged",je={codes:""},Ye=[{lang:"en",ui:{context:"About OvenPlayer",controls:{live:"Live Streaming",low_latency_live:"Sub-Second Latency Streaming",low_latency_p2p:"Sub-Second Latency P2P"},playlist:"Playlist",setting:{title:"Settings",speed:"Speed",speedUnit:"x",source:"Source",quality:"Quality",audioTrack:"Audio",caption:"Caption",display:"Display"}},api:{message:{muted_play:"Please touch here to turn on the sound."},error:{100:{code:100,message:"Can not load due to unknown reasons.",reason:"Can not load due to unknown reasons."},101:{code:101,message:"Can not load due to playable media not found.",reason:"Can not load due to playable media not found."},102:{code:102,message:"Flash fetching process aborted. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>",reason:"It looks like not found swf or your environment is localhost."},103:{code:103,message:"Can not load due to dash.js. Please use the latest dash.js.",reason:"dash.js version is old."},104:{code:104,message:"Can not load due to google ima for Ads. ",reason:"Please check the google ima library."},105:{code:105,message:"Error initializing DASH.",reason:"Error initializing DASH."},106:{code:106,message:"Error initializing HLS.",reason:"Error initializing HLS."},300:{code:300,message:"Can not play due to unknown reasons.",reason:"Can not play due to unknown reasons."},301:{code:301,message:"Fetching process aborted by user.",reason:"Fetching process aborted by user."},302:{code:302,message:"Some of the media could not be downloaded due to a network error.",reason:"Error occurred when downloading."},303:{code:303,message:"Unable to load media. This may be due to a server or network error, or due to an unsupported format.",reason:"Error occurred when decoding."},304:{code:304,message:"Media playback has been canceled. It looks like your media is corrupted or your browser does not support the features your media uses.",reason:"Media playback not supported."},305:{code:305,message:"Can not load captions due to unknown reasons.",reason:"Can not load captions due to unknown reasons."},306:{code:306,message:"Unable to load media. This may be due to a server or network error, or due to an unsupported format.",reason:"The server cannot or will not process the request."},307:{code:307,message:"Unable to load media. This may be due to a server or network error, or due to an unsupported format.",reason:"The server refused the request."},308:{code:308,message:"Unable to load media. This may be due to a server or network error, or due to an unsupported format.",reason:"The server do not accept the request."},501:{code:501,message:"Connection with low-latency(OME) server failed.",reason:"WebSocket connection failed."},502:{code:502,message:"Connection with low-latency(OME) server failed.",reason:"WebRTC addIceCandidate failed."},503:{code:503,message:"Connection with low-latency(OME) server failed.",reason:"WebRTC setRemoteDescription failed."},504:{code:504,message:"Connection with low-latency(OME) server failed.",reason:"WebRTC peer createOffer failed."},505:{code:505,message:"Connection with low-latency(OME) server failed.",reason:"WebRTC setLocalDescription failed."},506:{code:506,message:"Connection with low-latency(OME) server failed.",reason:"WebRTC internal error."},510:{code:510,message:"Network connection is unstable. Check the network connection.",reason:"Network is slow."},511:{code:511,message:"Connection with low-latency(OME) terminated unexpectedly.",reason:"Unexpected end of connection."},512:{code:512,message:"Connection with low-latency(OME) server failed.",reason:"Connection timeout."}}}},{lang:"ko",ui:{context:"오븐플레이어에 관하여",controls:{live:"라이브",low_latency_live:"초저지연 라이브",low_latency_p2p:"초저지연 P2P"},playlist:"플레이리스트",setting:{title:"설정",speed:"재생 속도",speedUnit:"x",source:"소스",quality:"품질",audioTrack:"오디오",caption:"자막",display:"표시"}},api:{message:{muted_play:"눌러서 소리 켜기"},error:{100:{code:100,message:"알 수 없는 이유로 로드 할 수 없습니다.",reason:"알 수 없는 이유로 로드 할 수 없습니다."},101:{code:101,message:"지원되는 미디어를 찾지 못해 로드 할 수 없습니다.",reason:"Can not load due to playable media not found."},102:{code:102,message:"플레시 로드가 중단 되었습니다. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>",reason:"It looks like not found swf or your environment is localhost."},103:{code:103,message:"DashJS로 인해 로드 할 수 없습니다. 최신 dash.js를 사용해 주세요.",reason:"dash.js version is old."},104:{code:104,message:"Google IMA 라이브러리가 없어 로드 할 수 없습니다.",reason:"Please check the google ima library."},105:{code:105,message:"DASH 초기화 중 오류가 발생했습니다.",reason:"Error initializing DASH."},106:{code:106,message:"HLS 초기화 중 오류가 발생했습니다.",reason:"Error initializing HLS."},300:{code:300,message:"알 수 없는 이유로 재생할 수 없습니다.",reason:"Can not play due to unknown reasons."},301:{code:301,message:"사용자에 의한 프로세스 중단.",reason:"Fetching process aborted by user."},302:{code:302,message:"네트워크 오류로 인해 일부 미디어를 다운로드 할 수 없습니다.",reason:"Error occurred when downloading."},303:{code:303,message:"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.",reason:"Error occurred when decoding."},304:{code:304,message:"미디어 재생이 취소되었습니다. 미디어가 손상되었거나 브라우저가 미디어에서 사용하는 기능을 지원하지 않는 것 같습니다.",reason:"Media playback not supported."},305:{code:305,message:"알 수 없는 이유로 자막을 로드 할 수 없습니다.",reason:"Can not load captions due to unknown reasons."},306:{code:306,message:"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.",reason:"The server cannot or will not process the request."},307:{code:307,message:"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.",reason:"The server refused the request."},308:{code:308,message:"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.",reason:"The server do not accept the request."},501:{code:501,message:"웹소켓 연결 실패",reason:"WebSocket connection failed."},502:{code:502,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"WebRTC addIceCandidate failed."},503:{code:503,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"WebRTC setRemoteDescription failed."},504:{code:504,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"WebRTC peer createOffer failed."},505:{code:505,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"WebRTC setLocalDescription failed."},506:{code:506,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"WebRTC internal error."},510:{code:510,message:"네트워크 연결이 불안정합니다. 네트워크 연결을 확인하십시오.",reason:"Network is slow."},511:{code:511,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"Unexpected end of connection."},512:{code:512,message:"저지연(OME) 서버와 연결에 실패했습니다.",reason:"Connection timeout."}}}},{lang:"pl",ui:{context:"O OvenPlayer",controls:{live:"Transmisja na żywo",low_latency_live:"Transmisja z niskim opóźnieniem",low_latency_p2p:"Transmisja z niskim opóźnieniem P2P"},playlist:"Playlista",setting:{title:"Ustawienia",speed:"Prędkość",speedUnit:"x",source:"Źrodło",quality:"Jakość",audioTrack:"Audio",caption:"Podtytuł",display:"Wyświetlacz"}},api:{message:{muted_play:"Naciśnij tutaj, aby aktywować dźwięk"},error:{100:{code:100,message:"Nie można załadować z nieznanego powodu.",reason:"Can not load due to unknown reasons."},101:{code:101,message:"Nie można załadować, ponieważ nie znaleziono multimediów, który można odtworzyć.",reason:"Can not load due to playable media not found."},102:{code:102,message:"Flash fetching process aborted. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>",reason:"It looks like not found swf or your environment is localhost."},103:{code:103,message:"Nie można załadować, ponieważ wersja dash.js jest za stara.",reason:"dash.js version is old."},104:{code:104,message:"Can not load due to google ima for Ads. ",reason:"Please check the google ima library."},105:{code:105,message:"Nie można załadować, nie znaleziono DASH.",reason:"Error initializing DASH."},106:{code:106,message:"Nie można załadować, nie znaleziono hlsjs.",reason:"Error initializing HLS"},300:{code:300,message:"Nie można odtworzyć z nieznanego powodu.",reason:"Can not play due to unknown reasons."},301:{code:301,message:"Proces pobierania przerwany przez użytkownika.",reason:"Fetching process aborted by user."},302:{code:302,message:"Nie udało się pobrać niektórych multimediów z powodu błędu sieci.",reason:"Error occurred when downloading."},303:{code:303,message:"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.",reason:"Error occurred when decoding."},304:{code:304,message:"Odtwarzanie zostało anulowane. Wygląda na to, że plik jest uszkodzony lub Twoja przeglądarka nie obsługuje tego pliku.",reason:"Media playback not supported."},305:{code:305,message:"Nie można wczytać napisów z nieznanego powodu.",reason:"Can not load captions due to unknown reasons."},306:{code:306,message:"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.",reason:"The server cannot or will not process the request."},307:{code:307,message:"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.",reason:"The server refused the request."},308:{code:308,message:"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.",reason:"The server do not accept the request."},501:{code:501,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebSocket connection failed."},502:{code:502,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebRTC addIceCandidate failed."},503:{code:503,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebRTC setRemoteDescription failed."},504:{code:504,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebRTC peer createOffer failed."},505:{code:505,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebRTC setLocalDescription failed."},506:{code:506,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"WebRTC internal error."},510:{code:510,message:"Połączenie sieciowe jest niestabilne. Sprawdź swoją sieć.",reason:"Network is slow."},511:{code:511,message:"Połączenie z serwerem niskiego opóźnienia (OME) nieoczekiwanie zakończone.",reason:"Unexpected end of connection."},512:{code:512,message:"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.",reason:"Connection timeout."}}}}],Ge=function(e){return"subtitles"===e||"captions"===e},ze=function(e){var t=e,n=[],r=function(e,t,n){var r=0,o=e.length;for(r=0;r<o;r++){var i=e[r];i.listener.apply(i.context||n,t)}};return t.on=function(e,r,o){return(n[e]||(n[e]=[])).push({listener:r,context:o}),t},t.trigger=function(e){if(!n)return!1;var o=[].slice.call(arguments,1),i=n[e],a=n.all;i&&r(i,o,t),a&&r(a,arguments,t)},t.off=function(e,r,o){if(!n)return!1;if(!e&&!r&&!o)return n=[],t;for(var i=e?[e]:Object.keys(n),a=0,A=i.length;a<A;a++){e=i[a];var s=n[e];if(s){var c=n[e]=[];if(r||o)for(var u=0,l=s.length;u<l;u++){var f=s[u];(r&&r!==f.listener&&r!==f.listener.listener&&r!==f.listener._listener||o&&o!==f.context)&&c.push(f)}c.length||delete n[e]}}return t},t.once=function(e,n,r){var o=0,i=function r(){o++||(t.off(e,r),n.apply(t,arguments))};return i._listener=n,t.on(e,i,r)},t},_e=(n(1001),function e(t){var n={},r=null,o=function(e,t){var n=e.querySelectorAll(t);return n.length>1?n:n[0]};return(r=i().isElement(t)||i().every(t,(function(e){return i().isElement(e)}))?t:"document"===t?document:"window"===t?window:o(document,t))?(n.show=function(){r.style.display="block"},n.hide=function(){r.style.display="none"},n.addClass=function(e){r.classList?r.classList.add(e):-1===r.className.split(" ").indexOf(e)&&(r.className+=" "+e)},n.after=function(e){r.insertAdjacentHTML("afterend",e)},n.append=function(e){r.appendChild(e)},n.before=function(e){r.insertAdjacentHTML("beforebegin",e)},n.children=function(){return r.children||[]},n.contains=function(e){return r!==e&&r.contains(e)},n.empty=function(){r.innerHTML=""},n.find=function(t){return e(o(r,t))},n.css=function(e,t){if(!t)return r.style[e];r.length>0?r.forEach((function(n){n.style[e]=t})):r.style[e]=t},n.removeClass=function(e){r.classList?r.classList.remove(e):r.className=r.className.replace(new RegExp("(^|\\b)"+e.split(" ").join("|")+"(\\b|$)","gi")," ")},n.removeAttribute=function(e){r.removeAttribute(e)},n.text=function(e){if(void 0===e)return r.textContent;r.textContent=e},n.html=function(e){r.innerHTML=e},n.hasClass=function(e){return r.classList?r.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(r.name)},n.is=function(e){return r===e},n.offset=function(){var e=r.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},n.width=function(){return r.clientWidth},n.height=function(){return r.clientHeight},n.attr=function(e){return r.getAttribute(e)},n.replace=function(e){r.replaceWith(e)},n.remove=function(){r.length>1?r.parentElement.removeChild(r):r.remove()},n.removeChild=function(e){if(e)r.removeChild(e);else for(;r.hasChildNodes();)r.removeChild(r.firstChild)},n.get=function(){return r},n.closest=function(t){r.closest=function(e){var t=r;do{if(t.matches(e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null};var n=r.closest(t);return n?e(n):null},n):null}),Ve=function(e,t){if(e)return 0==e.indexOf("rtmp:")||"rtmp"==t},He=function(e,t){return!!e&&(0===e.indexOf("ws:")||0===e.indexOf("wss:")||"webrtc"===t)},Je=function(e,t){if(e)return"hls"===t||"m3u8"===t||"application/vnd.apple.mpegurl"===t||"m3u8"==A(e)},Ze=function(e,t){if(e)return"mpd"===t||"dash"===t||"application/dash+xml"===t||"mpd"==A(e)},Ke=function(e){if(!e)return null;var t=null;if("string"==typeof e)t=document.getElementById(e);else{if(!e.nodeType)return null;t=e}return t},Xe=function(){var e={};OvenPlayerConsole.log("SupportChecker loaded.");var t=Y(),n=[{name:"html5",checkSupport:function(e){var n=document.createElement("video");if(!n.canPlayType)return!1;var r=e.file,o=e.type;if(!o)return!1;var i=e.mimeType||{aac:"audio/mp4",mp4:"video/mp4",f4v:"video/mp4",m4v:"video/mp4",mov:"video/mp4",mp3:"audio/mpeg",mpeg:"audio/mpeg",ogv:"video/ogg",ogg:"video/ogg",oga:"video/ogg",vorbis:"video/ogg",webm:"video/webm",f4a:"video/aac",m3u8:"application/vnd.apple.mpegurl",m3u:"application/vnd.apple.mpegurl",hls:"application/vnd.apple.mpegurl"}[o];return!(Je(r,o)&&("Microsoft Edge"===t.browser||"Android"===t.os)||Ve(r,o)||He(r,o)||!i||!n.canPlayType(i))}},{name:"webrtc",checkSupport:function(e){if(!document.createElement("video").canPlayType)return!1;if(Ve(t,n))return!1;var t=e.file,n=e.type;return!!He(t,n)}},{name:"dash",checkSupport:function(e){var t=e.file,n=e.type;return!Ve(t,n)&&!("function"!=typeof(window.MediaSource||window.WebKitMediaSource)||!Ze(t,n))}},{name:"hls",checkSupport:function(e){document.createElement("video");var t,n,r,o,i=e.file,a=e.type;return!Ve(i,a)&&(t=function(){if("undefined"!=typeof window)return window.MediaSource||window.WebKitMediaSource}(),n=window.SourceBuffer||window.WebKitSourceBuffer,r=t&&"function"==typeof t.isTypeSupported&&t.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),o=!n||n.prototype&&"function"==typeof n.prototype.appendBuffer&&"function"==typeof n.prototype.remove,!!r&&!!o)}},{name:"rtmp",checkSupport:function(e){var n=e.file,r=e.type;return!(!Ve(n,r)||!function(){var e=!1;if("ActiveXObject"in window)try{e=!!new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(t){e=!1}else e=!!navigator.mimeTypes["application/x-shockwave-flash"];return e}()||"Microsoft Edge"===t.browser||"Android"===t.os||"iOS"===t.os||"Safari"===t.browser)}}];return e.findProviderNameBySource=function(e){OvenPlayerConsole.log("SupportChecker : findProviderNameBySource()",e);for(var t=e===Object(e)?e:{},r=0;r<n.length;r++)if(n[r].checkSupport(t))return n[r].name},e.findProviderNamesByPlaylist=function(t){OvenPlayerConsole.log("SupportChecker : findProviderNamesByPlaylist()",t);var n=[],r=t;if(r&&r.sources){for(var o=0;o<r.sources.length;o++){var i=r.sources[o];if(i){var a=e.findProviderNameBySource(i);a&&n.push(a)}}return n}return null},e},qe="data:video/mp4;base64, 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",$e=function(e,t){t&&(t.setState(te),t.pause(),t.trigger(Ce,e))},et=function(e,t){var n=0;if(e)if(-1===t.getSourceIndex()){for(var r=0;r<e.length;r++)if(e[r].default){n=r;break}}else n=t.getSourceIndex();return n},tt=function(e,t,n,r,o){var i,a="admanagerLoadingTimeout",A="",s="",c={},u=!1,l=!1,f={started:!1,active:!1,isVideoEnded:!1},p=null,d=null,g=null,h=null,v=null,m=null,C=null,y=!1,b=!1,w=n.getBrowser(),E="Android"===w.os||"iOS"===w.os;OvenPlayerConsole.log("IMA : started ","isMobile : ",E,r);try{A=google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,s=google.ima.AdErrorEvent.Type.AD_ERROR,google.ima.settings.setLocale(n.getLanguage()),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(!0),d=function(e){console.log(e.getError().getVastErrorCode(),e.getError().getMessage()),l=!0;var n=e.getError().getInnerError();n&&console.log(n.getErrorCode(),n.getMessage()),t.trigger(se,{code:e.getError().getVastErrorCode(),message:e.getError().getMessage()}),f.active=!1,f.started=!0,t.play()},p=function(n){OvenPlayerConsole.log("IMA : OnManagerLoaded ");var r=new google.ima.AdsRenderingSettings;r.restoreCustomPlaybackStateOnAdBreakComplete=!0,v&&(OvenPlayerConsole.log("IMA : destroy adsManager----"),m.destroy(),m=null,v.destroy(),v=null),v=n.getAdsManager(e,r),m=function(e,t,n,r){var o={},i={},a=null,A=google.ima.AdEvent.Type.AD_BUFFERING,s=google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,c=google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,u=google.ima.AdErrorEvent.Type.AD_ERROR,l=google.ima.AdEvent.Type.ALL_ADS_COMPLETED,f=google.ima.AdEvent.Type.CLICK,p=google.ima.AdEvent.Type.SKIPPED,d=google.ima.AdEvent.Type.COMPLETE,g=google.ima.AdEvent.Type.FIRST_QUARTILE,h=google.ima.AdEvent.Type.LOADED,v=google.ima.AdEvent.Type.MIDPOINT,m=google.ima.AdEvent.Type.PAUSED,C=google.ima.AdEvent.Type.RESUMED,y=google.ima.AdEvent.Type.STARTED,b=google.ima.AdEvent.Type.USER_CLOSE,w=google.ima.AdEvent.Type.THIRD_QUARTILE,E=!1,B=null;return OvenPlayerConsole.log("IMA : Listener Created"),i[s]=function(e){OvenPlayerConsole.log("IMA LISTENER : ",e.type),n.started&&(n.active=!0,t.pause())},i[c]=function(e){OvenPlayerConsole.log("IMA LISTENER : ",e.type),n.active=!1,!n.started||0!==t.getPosition()&&n.isVideoEnded||t.play()},i[u]=function(e){E=!0,r(e)},i[l]=function(e){OvenPlayerConsole.log("IMA LISTENER : ",e.type),E=!0,n.isVideoEnded&&t.setState(q)},i[f]=function(e){OvenPlayerConsole.log(e.type),t.trigger(Ee,{type:"adclick"})},i[g]=function(e){OvenPlayerConsole.log(e.type)},i[A]=function(e){OvenPlayerConsole.log("AD_BUFFERING",e.type)},i[h]=function(n){OvenPlayerConsole.log(n.type);var r=e.getRemainingTime(),o=n.getAd();t.trigger(oe,{remaining:r,isLinear:o.isLinear()})},i[v]=function(e){OvenPlayerConsole.log(e.type)},i[m]=function(e){OvenPlayerConsole.log(e.type),t.setState(ae)},i[C]=function(e){OvenPlayerConsole.log(e.type),t.setState(ie)},i[y]=function(r){OvenPlayerConsole.log(r.type);var o=r.getAd();B=o;var i={isLinear:o.isLinear(),duration:o.getDuration(),skipTimeOffset:o.getSkipTimeOffset()};t.trigger(Ie,i),o.isLinear()?(t.setState(ie),n.started=!0,a=setInterval((function(){var n=e.getRemainingTime(),r=o.getDuration();t.trigger(Se,{duration:r,skipTimeOffset:o.getSkipTimeOffset(),remaining:n,position:r-n,skippable:e.getAdSkippableState()})}),300)):t.play()},i[d]=function(e){OvenPlayerConsole.log(e.type),e.getAd().isLinear()&&clearInterval(a),t.trigger(Ae)},i[p]=function(e){OvenPlayerConsole.log(e.type),e.getAd().isLinear()&&clearInterval(a),t.trigger(Ae)},i[b]=function(e){OvenPlayerConsole.log(e.type),e.getAd().isLinear()&&clearInterval(a),t.trigger(Ae)},i[w]=function(e){OvenPlayerConsole.log(e.type)},Object.keys(i).forEach((function(t){e.removeEventListener(t,i[t]),e.addEventListener(t,i[t])})),o.setAdCompleteCallback=function(e){},o.isAllAdComplete=function(){return E},o.isLinearAd=function(){return!B||B.isLinear()},o.destroy=function(){OvenPlayerConsole.log("IMAEventListener : destroy()"),Object.keys(i).forEach((function(t){e.removeEventListener(t,i[t])}))},o}(v,t,f,d),OvenPlayerConsole.log("IMA : created admanager and listner "),u=!0};var B=((i=document.createElement("div")).setAttribute("class","op-ads"),i.setAttribute("id","op-ads"),n.getContainer().append(i),i);g=new google.ima.AdDisplayContainer(B,e),(h=new google.ima.AdsLoader(g)).addEventListener(A,p,!1),h.addEventListener(s,d,!1),OvenPlayerConsole.log("IMA : adDisplayContainer initialized"),t.on(Re,(function(e){v&&(e.mute?v.setVolume(0):v.setVolume(e.volume/100))}),c);var x=function(){C&&(OvenPlayerConsole.log("IMA : setADWillAutoPlay ","autoplayAllowed",y,"autoplayRequiresMuted",b),C.setAdWillAutoPlay(y),C.setAdWillPlayMuted(b),b&&t.trigger(ke,{message:"Please touch here to turn on the sound.",timer:1e4,iconClass:"volume-mute",onClickCallback:function(){t.setMute(!1)}}))};return c.isActive=function(){return f.active},c.started=function(){return f.started},c.play=function(){return f.started?new Promise((function(e,t){try{v.resume(),e()}catch(e){t(e)}})):(g.initialize(),new Promise((function(o,i){var A=0,s=function e(){A++,u?(OvenPlayerConsole.log("IMA : ad start!"),v.init("100%","100%",google.ima.ViewMode.NORMAL),v.start(),f.started=!0,o()):l?i(new Error(a)):A<150?setTimeout(e,100):i(new Error(a))};(function(){OvenPlayerConsole.log("IMA : checkAutoplaySupport() ");var n=document.createElement("video");n.setAttribute("playsinline","true"),n.src=qe,n.load(),E&&t.getName()!==le&&e.load();var r=function(e,t){y=e,b=t,n.pause(),n.remove(),x()};return new Promise((function(e,t){if(n.play){var o=n.play();void 0!==o?o.then((function(){OvenPlayerConsole.log("IMA : auto play allowed."),r(!0,!1),e()})).catch((function(t){OvenPlayerConsole.log("IMA : auto play failed",t.message),r(!1,!1),e()})):(OvenPlayerConsole.log("IMA : promise not support"),r(!0,!1),e())}else OvenPlayerConsole.log("IMA : !temporarySupportCheckVideo.play"),r(!0,!1),e()}))})().then((function(){n.isAutoStart()&&!y?(OvenPlayerConsole.log("IMA : autoplayAllowed : false"),f.started=!1,i(new Error("autoplayNotAllowed"))):(u=!1,OvenPlayerConsole.log("IMA : initRequest() AutoPlay Support : ","autoplayAllowed",y,"autoplayRequiresMuted",b),(C=new google.ima.AdsRequest).forceNonLinearFullSlot=!1,x(),C.adTagUrl=r,h.requestAds(C),OvenPlayerConsole.log("IMA : requestAds Complete"),s())}))})))},c.pause=function(){v.pause()},c.videoEndedCallback=function(e){!m||!m.isAllAdComplete()&&m.isLinearAd()?l?e():(f.isVideoEnded=!0,h.contentComplete()):e()},c.destroy=function(){h&&(h.removeEventListener(A,p),h.removeEventListener(s,d)),v&&v.destroy(),g&&g.destroy(),m&&m.destroy();var e=_e(n.getContainer()).find(".op-ads");e&&e.remove(),t.off(Re,null,c)},c}catch(e){return null}};function nt(e){return nt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},nt(e)}function rt(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ot(e,t)}function ot(e,t){return ot=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},ot(e,t)}function it(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=At(e);if(t){var o=At(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return at(this,n)}}function at(e,t){if(t&&("object"===nt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function At(e){return At=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},At(e)}function st(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ct(e,t,n){return t&&st(e.prototype,t),n&&st(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function ut(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var lt=ct((function e(){ut(this,e),this.id=null,this.sequence=null,this.system=null,this.title=null,this.description=null,this.advertiser=null,this.pricing=null,this.survey=null,this.errorURLTemplates=[],this.impressionURLTemplates=[],this.creatives=[],this.extensions=[]})),ft=ct((function e(){ut(this,e),this.attributes={},this.children=[]})),pt=ct((function e(){ut(this,e),this.name=null,this.value=null,this.attributes={}})),dt=ct((function e(){ut(this,e),this.id=null,this.width=0,this.height=0,this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.altText=null,this.companionClickThroughURLTemplate=null,this.companionClickTrackingURLTemplates=[],this.trackingEvents={}})),gt=ct((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ut(this,e),this.id=t.id||null,this.adId=t.adId||null,this.sequence=t.sequence||null,this.apiFramework=t.apiFramework||null,this.trackingEvents={}})),ht=function(e){rt(n,e);var t=it(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ut(this,n),(e=t.call(this,r)).type="companion",e.variations=[],e}return ct(n)}(gt);function vt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];for(var r in t.ASSETURI&&(t.ASSETURI=mt(t.ASSETURI)),t.CONTENTPLAYHEAD&&(t.CONTENTPLAYHEAD=mt(t.CONTENTPLAYHEAD)),t.ERRORCODE&&!/^[0-9]{3}$/.test(t.ERRORCODE)&&(t.ERRORCODE=900),t.CACHEBUSTING=Ct(Math.round(1e8*Math.random()).toString()),t.TIMESTAMP=mt((new Date).toISOString()),t.RANDOM=t.random=t.CACHEBUSTING,e){var o=e[r];if("string"==typeof o){for(var i in t){var a=t[i],A="[".concat(i,"]"),s="%%".concat(i,"%%");o=(o=o.replace(A,a)).replace(s,a)}n.push(o)}}return n}function mt(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%".concat(e.charCodeAt(0).toString(16))}))}function Ct(e){return e.length<8?yt(0,8-e.length,!1).map((function(e){return"0"})).join("")+e:e}function yt(e,t,n){for(var r=[],o=e<t,i=n?o?t+1:t-1:t,a=e;o?a<i:a>i;o?a++:a--)r.push(a);return r}var bt={track:function(e,t){vt(e,t).forEach((function(e){"undefined"!=typeof window&&null!==window&&((new Image).src=e)}))},resolveURLTemplates:vt,encodeURIComponentRFC3986:mt,leftpad:Ct,range:yt,isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},flatten:function e(t){return t.reduce((function(t,n){return t.concat(Array.isArray(n)?e(n):n)}),[])}},wt=function(e,t){var n=e.childNodes;for(var r in n){var o=n[r];if(o.nodeName===t)return o}},Et=function(e,t){var n=[],r=e.childNodes;for(var o in r){var i=r[o];i.nodeName===t&&n.push(i)}return n},Bt=function(e,t){if(!t)return e;if(0===e.indexOf("//")){var n=location.protocol;return"".concat(n).concat(e)}return-1===e.indexOf("://")?"".concat(t.slice(0,t.lastIndexOf("/")),"/").concat(e):e},xt=function(e){return-1!==["true","TRUE","1"].indexOf(e)},kt=function(e){return e&&(e.textContent||e.text||"").trim()},It=function(e,t,n){var r=t.getAttribute(e);r&&n.setAttribute(e,r)},St=function(e){if(null==e)return-1;if(bt.isNumeric(e))return parseInt(e);var t=e.split(":");if(3!==t.length)return-1;var n=t[2].split("."),r=parseInt(n[0]);2===n.length&&(r+=parseFloat("0.".concat(n[1])));var o=parseInt(60*t[1]),i=parseInt(60*t[0]*60);return isNaN(i)||isNaN(o)||isNaN(r)||o>3600||r>60?-1:i+o+r},Tt=function(e){var t=[],n=null;return e.forEach((function(r,o){if(r.sequence&&(r.sequence=parseInt(r.sequence,10)),r.sequence>1){var i=e[o-1];if(i&&i.sequence===r.sequence-1)return void(n&&n.push(r));delete r.sequence}n=[r],t.push(n)})),t},Lt=function(e,t){e.errorURLTemplates=t.errorURLTemplates.concat(e.errorURLTemplates),e.impressionURLTemplates=t.impressionURLTemplates.concat(e.impressionURLTemplates),e.extensions=t.extensions.concat(e.extensions),e.creatives.forEach((function(e){if(t.trackingEvents&&t.trackingEvents[e.type])for(var n in t.trackingEvents[e.type]){var r=t.trackingEvents[e.type][n];e.trackingEvents[n]||(e.trackingEvents[n]=[]),e.trackingEvents[n]=e.trackingEvents[n].concat(r)}})),t.videoClickTrackingURLTemplates&&t.videoClickTrackingURLTemplates.length&&e.creatives.forEach((function(e){"linear"===e.type&&(e.videoClickTrackingURLTemplates=e.videoClickTrackingURLTemplates.concat(t.videoClickTrackingURLTemplates))})),t.videoCustomClickURLTemplates&&t.videoCustomClickURLTemplates.length&&e.creatives.forEach((function(e){"linear"===e.type&&(e.videoCustomClickURLTemplates=e.videoCustomClickURLTemplates.concat(t.videoCustomClickURLTemplates))})),t.videoClickThroughURLTemplate&&e.creatives.forEach((function(e){"linear"===e.type&&null==e.videoClickThroughURLTemplate&&(e.videoClickThroughURLTemplate=t.videoClickThroughURLTemplate)}))};function Rt(e,t){var n=new ht(t);return Et(e,"Companion").forEach((function(e){var t=new dt;t.id=e.getAttribute("id")||null,t.width=e.getAttribute("width"),t.height=e.getAttribute("height"),t.companionClickTrackingURLTemplates=[],Et(e,"HTMLResource").forEach((function(e){t.type=e.getAttribute("creativeType")||"text/html",t.htmlResource=kt(e)})),Et(e,"IFrameResource").forEach((function(e){t.type=e.getAttribute("creativeType")||0,t.iframeResource=kt(e)})),Et(e,"StaticResource").forEach((function(n){t.type=n.getAttribute("creativeType")||0,Et(e,"AltText").forEach((function(e){t.altText=kt(e)})),t.staticResource=kt(n)})),Et(e,"TrackingEvents").forEach((function(e){Et(e,"Tracking").forEach((function(e){var n=e.getAttribute("event"),r=kt(e);n&&r&&(null==t.trackingEvents[n]&&(t.trackingEvents[n]=[]),t.trackingEvents[n].push(r))}))})),Et(e,"CompanionClickTracking").forEach((function(e){t.companionClickTrackingURLTemplates.push(kt(e))})),t.companionClickThroughURLTemplate=kt(wt(e,"CompanionClickThrough")),t.companionClickTrackingURLTemplate=kt(wt(e,"CompanionClickTracking")),n.variations.push(t)})),n}var Qt=function(e){rt(n,e);var t=it(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ut(this,n),(e=t.call(this,r)).type="linear",e.duration=0,e.skipDelay=null,e.mediaFiles=[],e.videoClickThroughURLTemplate=null,e.videoClickTrackingURLTemplates=[],e.videoCustomClickURLTemplates=[],e.adParameters=null,e.icons=[],e}return ct(n)}(gt),Ot=ct((function e(){ut(this,e),this.program=null,this.height=0,this.width=0,this.xPosition=0,this.yPosition=0,this.apiFramework=null,this.offset=null,this.duration=0,this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.iconClickThroughURLTemplate=null,this.iconClickTrackingURLTemplates=[],this.iconViewTrackingURLTemplate=null})),Mt=ct((function e(){ut(this,e),this.id=null,this.fileURL=null,this.deliveryType="progressive",this.mimeType=null,this.codec=null,this.bitrate=0,this.minBitrate=0,this.maxBitrate=0,this.width=0,this.height=0,this.apiFramework=null,this.scalable=null,this.maintainAspectRatio=null}));function Dt(e,t){var n,r=new Qt(t);r.duration=St(kt(wt(e,"Duration")));var o=e.getAttribute("skipoffset");if(null==o)r.skipDelay=null;else if("%"===o.charAt(o.length-1)&&-1!==r.duration){var i=parseInt(o,10);r.skipDelay=r.duration*(i/100)}else r.skipDelay=St(o);var a=wt(e,"VideoClicks");a&&(r.videoClickThroughURLTemplate=kt(wt(a,"ClickThrough")),Et(a,"ClickTracking").forEach((function(e){r.videoClickTrackingURLTemplates.push(kt(e))})),Et(a,"CustomClick").forEach((function(e){r.videoCustomClickURLTemplates.push(kt(e))})));var A=wt(e,"AdParameters");A&&(r.adParameters=kt(A)),Et(e,"TrackingEvents").forEach((function(e){Et(e,"Tracking").forEach((function(e){var t=e.getAttribute("event"),o=kt(e);if(t&&o){if("progress"===t){if(!(n=e.getAttribute("offset")))return;t="%"===n.charAt(n.length-1)?"progress-".concat(n):"progress-".concat(Math.round(St(n)))}null==r.trackingEvents[t]&&(r.trackingEvents[t]=[]),r.trackingEvents[t].push(o)}}))})),Et(e,"MediaFiles").forEach((function(e){Et(e,"MediaFile").forEach((function(e){var t=new Mt;t.id=e.getAttribute("id"),t.fileURL=kt(e),t.deliveryType=e.getAttribute("delivery"),t.codec=e.getAttribute("codec"),t.mimeType=e.getAttribute("type"),t.apiFramework=e.getAttribute("apiFramework"),t.bitrate=parseInt(e.getAttribute("bitrate")||0),t.minBitrate=parseInt(e.getAttribute("minBitrate")||0),t.maxBitrate=parseInt(e.getAttribute("maxBitrate")||0),t.width=parseInt(e.getAttribute("width")||0),t.height=parseInt(e.getAttribute("height")||0);var n=e.getAttribute("scalable");n&&"string"==typeof n&&("true"===(n=n.toLowerCase())?t.scalable=!0:"false"===n&&(t.scalable=!1));var o=e.getAttribute("maintainAspectRatio");o&&"string"==typeof o&&("true"===(o=o.toLowerCase())?t.maintainAspectRatio=!0:"false"===o&&(t.maintainAspectRatio=!1)),r.mediaFiles.push(t)}))}));var s=wt(e,"Icons");return s&&Et(s,"Icon").forEach((function(e){var t=new Ot;t.program=e.getAttribute("program"),t.height=parseInt(e.getAttribute("height")||0),t.width=parseInt(e.getAttribute("width")||0),t.xPosition=function(e){return-1!==["left","right"].indexOf(e)?e:parseInt(e||0)}(e.getAttribute("xPosition")),t.yPosition=function(e){return-1!==["top","bottom"].indexOf(e)?e:parseInt(e||0)}(e.getAttribute("yPosition")),t.apiFramework=e.getAttribute("apiFramework"),t.offset=St(e.getAttribute("offset")),t.duration=St(e.getAttribute("duration")),Et(e,"HTMLResource").forEach((function(e){t.type=e.getAttribute("creativeType")||"text/html",t.htmlResource=kt(e)})),Et(e,"IFrameResource").forEach((function(e){t.type=e.getAttribute("creativeType")||0,t.iframeResource=kt(e)})),Et(e,"StaticResource").forEach((function(e){t.type=e.getAttribute("creativeType")||0,t.staticResource=kt(e)}));var n=wt(e,"IconClicks");n&&(t.iconClickThroughURLTemplate=kt(wt(n,"IconClickThrough")),Et(n,"IconClickTracking").forEach((function(e){t.iconClickTrackingURLTemplates.push(kt(e))}))),t.iconViewTrackingURLTemplate=kt(wt(e,"IconViewTracking")),r.icons.push(t)})),r}var Ft,Pt=function(e){rt(n,e);var t=it(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ut(this,n),(e=t.call(this,r)).type="nonlinear",e.variations=[],e}return ct(n)}(gt),Ut=ct((function e(){ut(this,e),this.id=null,this.width=0,this.height=0,this.expandedWidth=0,this.expandedHeight=0,this.scalable=!0,this.maintainAspectRatio=!0,this.minSuggestedDuration=0,this.apiFramework="static",this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.nonlinearClickThroughURLTemplate=null,this.nonlinearClickTrackingURLTemplates=[],this.adParameters=null}));function Nt(e,t){var n=new Pt(t);return Et(e,"TrackingEvents").forEach((function(e){var t,r;Et(e,"Tracking").forEach((function(e){t=e.getAttribute("event"),r=kt(e),t&&r&&(null==n.trackingEvents[t]&&(n.trackingEvents[t]=[]),n.trackingEvents[t].push(r))}))})),Et(e,"NonLinear").forEach((function(e){var t=new Ut;t.id=e.getAttribute("id")||null,t.width=e.getAttribute("width"),t.height=e.getAttribute("height"),t.expandedWidth=e.getAttribute("expandedWidth"),t.expandedHeight=e.getAttribute("expandedHeight"),t.scalable=xt(e.getAttribute("scalable")),t.maintainAspectRatio=xt(e.getAttribute("maintainAspectRatio")),t.minSuggestedDuration=St(e.getAttribute("minSuggestedDuration")),t.apiFramework=e.getAttribute("apiFramework"),Et(e,"HTMLResource").forEach((function(e){t.type=e.getAttribute("creativeType")||"text/html",t.htmlResource=kt(e)})),Et(e,"IFrameResource").forEach((function(e){t.type=e.getAttribute("creativeType")||0,t.iframeResource=kt(e)})),Et(e,"StaticResource").forEach((function(e){t.type=e.getAttribute("creativeType")||0,t.staticResource=kt(e)}));var r=wt(e,"AdParameters");r&&(t.adParameters=kt(r)),t.nonlinearClickThroughURLTemplate=kt(wt(e,"NonLinearClickThrough")),Et(e,"NonLinearClickTracking").forEach((function(e){t.nonlinearClickTrackingURLTemplates.push(kt(e))})),n.variations.push(t)})),n}function Wt(e){var t=e.childNodes;for(var n in t){var r=t[n];if(-1!==["Wrapper","InLine"].indexOf(r.nodeName)){if(It("id",e,r),It("sequence",e,r),"Wrapper"===r.nodeName)return Yt(r);if("InLine"===r.nodeName)return jt(r)}}}function jt(e){var t=e.childNodes,n=new lt;for(var r in n.id=e.getAttribute("id")||null,n.sequence=e.getAttribute("sequence")||null,t){var o=t[r];switch(o.nodeName){case"Error":n.errorURLTemplates.push(kt(o));break;case"Impression":n.impressionURLTemplates.push(kt(o));break;case"Creatives":Et(o,"Creative").forEach((function(e){var t={id:e.getAttribute("id")||null,adId:zt(e),sequence:e.getAttribute("sequence")||null,apiFramework:e.getAttribute("apiFramework")||null};for(var r in e.childNodes){var o=e.childNodes[r];switch(o.nodeName){case"Linear":var i=Dt(o,t);i&&n.creatives.push(i);break;case"NonLinearAds":var a=Nt(o,t);a&&n.creatives.push(a);break;case"CompanionAds":var A=Rt(o,t);A&&n.creatives.push(A)}}}));break;case"Extensions":Gt(n.extensions,Et(o,"Extension"));break;case"AdSystem":n.system={value:kt(o),version:o.getAttribute("version")||null};break;case"AdTitle":n.title=kt(o);break;case"Description":n.description=kt(o);break;case"Advertiser":n.advertiser=kt(o);break;case"Pricing":n.pricing={value:kt(o),model:o.getAttribute("model")||null,currency:o.getAttribute("currency")||null};break;case"Survey":n.survey=kt(o)}}return n}function Yt(e){var t=jt(e),n=wt(e,"VASTAdTagURI");if(n?t.nextWrapperURL=kt(n):(n=wt(e,"VASTAdTagURL"))&&(t.nextWrapperURL=kt(wt(n,"URL"))),t.creatives.forEach((function(e){if(-1!==["linear","nonlinear"].indexOf(e.type)){if(e.trackingEvents){t.trackingEvents||(t.trackingEvents={}),t.trackingEvents[e.type]||(t.trackingEvents[e.type]={});var n=function(n){var r=e.trackingEvents[n];t.trackingEvents[e.type][n]||(t.trackingEvents[e.type][n]=[]),r.forEach((function(r){t.trackingEvents[e.type][n].push(r)}))};for(var r in e.trackingEvents)n(r)}e.videoClickTrackingURLTemplates&&(t.videoClickTrackingURLTemplates||(t.videoClickTrackingURLTemplates=[]),e.videoClickTrackingURLTemplates.forEach((function(e){t.videoClickTrackingURLTemplates.push(e)}))),e.videoClickThroughURLTemplate&&(t.videoClickThroughURLTemplate=e.videoClickThroughURLTemplate),e.videoCustomClickURLTemplates&&(t.videoCustomClickURLTemplates||(t.videoCustomClickURLTemplates=[]),e.videoCustomClickURLTemplates.forEach((function(e){t.videoCustomClickURLTemplates.push(e)})))}})),t.nextWrapperURL)return t}function Gt(e,t){t.forEach((function(t){var n=new ft,r=t.attributes,o=t.childNodes;if(t.attributes)for(var i in r){var a=r[i];a.nodeName&&a.nodeValue&&(n.attributes[a.nodeName]=a.nodeValue)}for(var A in o){var s=o[A],c=kt(s);if("#comment"!==s.nodeName&&""!==c){var u=new pt;if(u.name=s.nodeName,u.value=c,s.attributes){var l=s.attributes;for(var f in l){var p=l[f];u.attributes[p.nodeName]=p.nodeValue}}n.children.push(u)}}e.push(n)}))}function zt(e){return e.getAttribute("AdID")||e.getAttribute("adID")||e.getAttribute("adId")||null}function _t(){}function Vt(){Vt.init.call(this)}function Ht(e){return void 0===e._maxListeners?Vt.defaultMaxListeners:e._maxListeners}function Jt(e,t,n){if(t)e.call(n);else for(var r=e.length,o=nn(e,r),i=0;i<r;++i)o[i].call(n)}function Zt(e,t,n,r){if(t)e.call(n,r);else for(var o=e.length,i=nn(e,o),a=0;a<o;++a)i[a].call(n,r)}function Kt(e,t,n,r,o){if(t)e.call(n,r,o);else for(var i=e.length,a=nn(e,i),A=0;A<i;++A)a[A].call(n,r,o)}function Xt(e,t,n,r,o,i){if(t)e.call(n,r,o,i);else for(var a=e.length,A=nn(e,a),s=0;s<a;++s)A[s].call(n,r,o,i)}function qt(e,t,n,r){if(t)e.apply(n,r);else for(var o=e.length,i=nn(e,o),a=0;a<o;++a)i[a].apply(n,r)}function $t(e,t,n,r){var o,i,a;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((i=e._events)?(i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),a=i[t]):(i=e._events=new _t,e._eventsCount=0),a){if("function"==typeof a?a=i[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),!a.warned&&(o=Ht(e))&&o>0&&a.length>o){a.warned=!0;var A=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");A.name="MaxListenersExceededWarning",A.emitter=e,A.type=t,A.count=a.length,function(e){"function"==typeof console.warn?console.warn(e):console.log(e)}(A)}}else a=i[t]=n,++e._eventsCount;return e}function en(e,t,n){var r=!1;function o(){e.removeListener(t,o),r||(r=!0,n.apply(e,arguments))}return o.listener=n,o}function tn(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function nn(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}_t.prototype=Object.create(null),Vt.EventEmitter=Vt,Vt.usingDomains=!1,Vt.prototype.domain=void 0,Vt.prototype._events=void 0,Vt.prototype._maxListeners=void 0,Vt.defaultMaxListeners=10,Vt.init=function(){this.domain=null,Vt.usingDomains&&(!Ft.active||this instanceof Ft.Domain||(this.domain=Ft.active)),this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new _t,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Vt.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},Vt.prototype.getMaxListeners=function(){return Ht(this)},Vt.prototype.emit=function(e){var t,n,r,o,i,a,A,s="error"===e;if(a=this._events)s=s&&null==a.error;else if(!s)return!1;if(A=this.domain,s){if(t=arguments[1],!A){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=A,t.domainThrown=!1,A.emit("error",t),!1}if(!(n=a[e]))return!1;var u="function"==typeof n;switch(r=arguments.length){case 1:Jt(n,u,this);break;case 2:Zt(n,u,this,arguments[1]);break;case 3:Kt(n,u,this,arguments[1],arguments[2]);break;case 4:Xt(n,u,this,arguments[1],arguments[2],arguments[3]);break;default:for(o=new Array(r-1),i=1;i<r;i++)o[i-1]=arguments[i];qt(n,u,this,o)}return!0},Vt.prototype.addListener=function(e,t){return $t(this,e,t,!1)},Vt.prototype.on=Vt.prototype.addListener,Vt.prototype.prependListener=function(e,t){return $t(this,e,t,!0)},Vt.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,en(this,e,t)),this},Vt.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,en(this,e,t)),this},Vt.prototype.removeListener=function(e,t){var n,r,o,i,a;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(r=this._events))return this;if(!(n=r[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new _t:(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,i=n.length;i-- >0;)if(n[i]===t||n[i].listener&&n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new _t,this;delete r[e]}else!function(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}(n,o);r.removeListener&&this.emit("removeListener",e,a||t)}return this},Vt.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new _t,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new _t:delete n[e]),this;if(0===arguments.length){for(var r,o=Object.keys(n),i=0;i<o.length;++i)"removeListener"!==(r=o[i])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=new _t,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},Vt.prototype.listeners=function(e){var t,n=this._events;return n&&(t=n[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[]},Vt.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):tn.call(e,t)},Vt.prototype.listenerCount=tn,Vt.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var rn=function(e,t,n){var r="function"==typeof window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLDOM"):void 0;if(!r)return n(new Error("FlashURLHandler: Microsoft.XMLDOM format not supported"));r.async=!1,request.open("GET",e),request.timeout=t.timeout||0,request.withCredentials=t.withCredentials||!1,request.send(),request.onprogress=function(){},request.onload=function(){r.loadXML(request.responseText),n(null,r)}},on=function(){return window.XDomainRequest&&(e=new XDomainRequest),!!e;var e},an=function(e,t,n){n(new Error("Please bundle the library for node to use the node urlHandler"))};function An(){try{var e=new window.XMLHttpRequest;return"withCredentials"in e?e:null}catch(e){return console.log("Error in XHRURLHandler support check:",e),null}}var sn,cn,un=function(e,t,n){if("https:"===window.location.protocol&&0===e.indexOf("http://"))return n(new Error("XHRURLHandler: Cannot go from HTTPS to HTTP."));try{var r=An();r.open("GET",e),r.timeout=t.timeout||0,r.withCredentials=t.withCredentials||!1,r.overrideMimeType&&r.overrideMimeType("text/xml"),r.onreadystatechange=function(){4===r.readyState&&(200===r.status?n(null,r.responseXML):n(new Error("XHRURLHandler: ".concat(r.statusText))))},r.send()}catch(e){n(new Error("XHRURLHandler: Unexpected error"))}},ln=function(){return!!An()},fn={get:function(e,t,n){return n||("function"==typeof t&&(n=t),t={}),"undefined"==typeof window||null===window?an(e,t,n):ln()?un(e,t,n):on()?rn(e,t,n):n(new Error("Current context is not supported by any of the default URLHandlers. Please provide a custom URLHandler"))}},pn=ct((function e(){ut(this,e),this.ads=[],this.errorURLTemplates=[]})),dn={ERRORCODE:900,extensions:[]},gn=function(e){rt(n,e);var t=it(n);function n(){var e;return ut(this,n),(e=t.call(this)).remainingAds=[],e.parentURLs=[],e.errorURLTemplates=[],e.rootErrorURLTemplates=[],e.maxWrapperDepth=null,e.URLTemplateFilters=[],e.fetchingOptions={},e}return ct(n,[{key:"addURLTemplateFilter",value:function(e){"function"==typeof e&&this.URLTemplateFilters.push(e)}},{key:"removeURLTemplateFilter",value:function(){this.URLTemplateFilters.pop()}},{key:"countURLTemplateFilters",value:function(){return this.URLTemplateFilters.length}},{key:"clearURLTemplateFilters",value:function(){this.URLTemplateFilters=[]}},{key:"trackVastError",value:function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];this.emit("VAST-error",Object.assign.apply(Object,[dn,t].concat(r))),bt.track(e,t)}},{key:"getErrorURLTemplates",value:function(){return this.rootErrorURLTemplates.concat(this.errorURLTemplates)}},{key:"fetchVAST",value:function(e,t,n){var r=this;return new Promise((function(o,i){r.URLTemplateFilters.forEach((function(t){e=t(e)})),r.parentURLs.push(e),r.emit("VAST-resolving",{url:e,wrapperDepth:t,originalUrl:n}),r.urlHandler.get(e,r.fetchingOptions,(function(t,n){r.emit("VAST-resolved",{url:e,error:t}),t?i(t):o(n)}))}))}},{key:"initParsingStatus",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.rootURL="",this.remainingAds=[],this.parentURLs=[],this.errorURLTemplates=[],this.rootErrorURLTemplates=[],this.maxWrapperDepth=e.wrapperLimit||10,this.fetchingOptions={timeout:e.timeout,withCredentials:e.withCredentials},this.urlHandler=e.urlhandler||fn}},{key:"getRemainingAds",value:function(e){var t=this;if(0===this.remainingAds.length)return Promise.reject(new Error("No more ads are available for the given VAST"));var n=e?bt.flatten(this.remainingAds):this.remainingAds.shift();return this.errorURLTemplates=[],this.parentURLs=[],this.resolveAds(n,{wrapperDepth:0,originalUrl:this.rootURL}).then((function(e){return t.buildVASTResponse(e)}))}},{key:"getAndParseVAST",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.initParsingStatus(n),this.rootURL=e,this.fetchVAST(e).then((function(r){return n.originalUrl=e,n.isRootVAST=!0,t.parse(r,n).then((function(e){return t.buildVASTResponse(e)}))}))}},{key:"parseVAST",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.initParsingStatus(n),n.isRootVAST=!0,this.parse(e,n).then((function(e){return t.buildVASTResponse(e)}))}},{key:"buildVASTResponse",value:function(e){var t=new pn;return t.ads=e,t.errorURLTemplates=this.getErrorURLTemplates(),this.completeWrapperResolving(t),t}},{key:"parse",value:function(e,t){var n=t.resolveAll,r=void 0===n||n,o=t.wrapperSequence,i=void 0===o?null:o,a=t.originalUrl,A=void 0===a?null:a,s=t.wrapperDepth,c=void 0===s?0:s,u=t.isRootVAST,l=void 0!==u&&u;if(!e||!e.documentElement||"VAST"!==e.documentElement.nodeName)return Promise.reject(new Error("Invalid VAST XMLDocument"));var f=[],p=e.documentElement.childNodes;for(var d in p){var g=p[d];if("Error"===g.nodeName){var h=kt(g);l?this.rootErrorURLTemplates.push(h):this.errorURLTemplates.push(h)}if("Ad"===g.nodeName){var v=Wt(g);v?f.push(v):this.trackVastError(this.getErrorURLTemplates(),{ERRORCODE:101})}}var m=f.length,C=f[m-1];return 1===m&&null!=i&&C&&!C.sequence&&(C.sequence=i),!1===r&&(this.remainingAds=Tt(f),f=this.remainingAds.shift()),this.resolveAds(f,{wrapperDepth:c,originalUrl:A})}},{key:"resolveAds",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,r=n.wrapperDepth,o=n.originalUrl,i=[];return t.forEach((function(t){var n=e.resolveWrappers(t,r,o);i.push(n)})),Promise.all(i).then((function(t){var n=bt.flatten(t);if(!n&&e.remainingAds.length>0){var i=e.remainingAds.shift();return e.resolveAds(i,{wrapperDepth:r,originalUrl:o})}return n}))}},{key:"resolveWrappers",value:function(e,t,n){var r=this;return new Promise((function(o,i){if(t++,!e.nextWrapperURL)return delete e.nextWrapperURL,o(e);if(t>=r.maxWrapperDepth||-1!==r.parentURLs.indexOf(e.nextWrapperURL))return e.errorCode=302,delete e.nextWrapperURL,o(e);e.nextWrapperURL=Bt(e.nextWrapperURL,n);var a=e.sequence;n=e.nextWrapperURL,r.fetchVAST(e.nextWrapperURL,t,n).then((function(i){return r.parse(i,{originalUrl:n,wrapperSequence:a,wrapperDepth:t}).then((function(t){if(delete e.nextWrapperURL,0===t.length)return e.creatives=[],o(e);t.forEach((function(t){t&&Lt(t,e)})),o(t)}))})).catch((function(t){e.errorCode=301,e.errorMessage=t.message,o(e)}))}))}},{key:"completeWrapperResolving",value:function(e){if(0===e.ads.length)this.trackVastError(e.errorURLTemplates,{ERRORCODE:303});else for(var t=e.ads.length-1;t>=0;t--){var n=e.ads[t];(n.errorCode||0===n.creatives.length)&&(this.trackVastError(n.errorURLTemplates.concat(e.errorURLTemplates),{ERRORCODE:n.errorCode||303},{ERRORMESSAGE:n.errorMessage||""},{extensions:n.extensions},{system:n.system}),e.ads.splice(t,1))}}}]),n}(Vt),hn=null,vn={data:{},length:0,getItem:function(e){return this.data[e]},setItem:function(e,t){this.data[e]=t,this.length=Object.keys(this.data).length},removeItem:function(e){delete data[e],this.length=Object.keys(this.data).length},clear:function(){this.data={},this.length=0}},mn=function(){function e(){ut(this,e),this.storage=this.initStorage()}return ct(e,[{key:"initStorage",value:function(){if(hn)return hn;try{hn="undefined"!=typeof window&&null!==window?window.localStorage||window.sessionStorage:null}catch(e){hn=null}return hn&&!this.isStorageDisabled(hn)||(hn=vn).clear(),hn}},{key:"isStorageDisabled",value:function(e){var t="__VASTStorage__";try{if(e.setItem(t,t),e.getItem(t)!==t)return e.removeItem(t),!0}catch(e){return!0}return e.removeItem(t),!1}},{key:"getItem",value:function(e){return this.storage.getItem(e)}},{key:"setItem",value:function(e,t){return this.storage.setItem(e,t)}},{key:"removeItem",value:function(e){return this.storage.removeItem(e)}},{key:"clear",value:function(){return this.storage.clear()}}]),e}(),Cn=function(){function e(t,n,r){ut(this,e),this.cappingFreeLunch=t||0,this.cappingMinimumTimeInterval=n||0,this.defaultOptions={withCredentials:!1,timeout:0},this.vastParser=new gn,this.storage=r||new mn,void 0===this.lastSuccessfulAd&&(this.lastSuccessfulAd=0),void 0===this.totalCalls&&(this.totalCalls=0),void 0===this.totalCallsTimeout&&(this.totalCallsTimeout=0)}return ct(e,[{key:"getParser",value:function(){return this.vastParser}},{key:"lastSuccessfulAd",get:function(){return this.storage.getItem("vast-client-last-successful-ad")},set:function(e){this.storage.setItem("vast-client-last-successful-ad",e)}},{key:"totalCalls",get:function(){return this.storage.getItem("vast-client-total-calls")},set:function(e){this.storage.setItem("vast-client-total-calls",e)}},{key:"totalCallsTimeout",get:function(){return this.storage.getItem("vast-client-total-calls-timeout")},set:function(e){this.storage.setItem("vast-client-total-calls-timeout",e)}},{key:"hasRemainingAds",value:function(){return this.vastParser.remainingAds.length>0}},{key:"getNextAds",value:function(e){return this.vastParser.getRemainingAds(e)}},{key:"get",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Date.now();return(n=Object.assign(this.defaultOptions,n)).hasOwnProperty("resolveAll")||(n.resolveAll=!1),this.totalCallsTimeout<r?(this.totalCalls=1,this.totalCallsTimeout=r+36e5):this.totalCalls++,new Promise((function(o,i){if(t.cappingFreeLunch>=t.totalCalls)return i(new Error("VAST call canceled – FreeLunch capping not reached yet ".concat(t.totalCalls,"/").concat(t.cappingFreeLunch)));var a=r-t.lastSuccessfulAd;if(a<0)t.lastSuccessfulAd=0;else if(a<t.cappingMinimumTimeInterval)return i(new Error("VAST call canceled – (".concat(t.cappingMinimumTimeInterval,")ms minimum interval reached")));t.vastParser.getAndParseVAST(e,n).then((function(e){return o(e)})).catch((function(e){return i(e)}))}))}}]),e}(),yn=function(e){rt(n,e);var t=it(n);function n(e,r,o){var i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;for(var A in ut(this,n),(i=t.call(this)).ad=r,i.creative=o,i.variation=a,i.muted=!1,i.impressed=!1,i.skippable=!1,i.trackingEvents={},i._alreadyTriggeredQuartiles={},i.emitAlwaysEvents=["creativeView","start","firstQuartile","midpoint","thirdQuartile","complete","resume","pause","rewind","skip","closeLinear","close"],i.creative.trackingEvents){var s=i.creative.trackingEvents[A];i.trackingEvents[A]=s.slice(0)}return i.creative instanceof Qt?i._initLinearTracking():i._initVariationTracking(),e&&i.on("start",(function(){e.lastSuccessfulAd=Date.now()})),i}return ct(n,[{key:"_initLinearTracking",value:function(){this.linear=!0,this.skipDelay=this.creative.skipDelay,this.setDuration(this.creative.duration),this.clickThroughURLTemplate=this.creative.videoClickThroughURLTemplate,this.clickTrackingURLTemplates=this.creative.videoClickTrackingURLTemplates}},{key:"_initVariationTracking",value:function(){if(this.linear=!1,this.skipDelay=-1,this.variation){for(var e in this.variation.trackingEvents){var t=this.variation.trackingEvents[e];this.trackingEvents[e]?this.trackingEvents[e]=this.trackingEvents[e].concat(t.slice(0)):this.trackingEvents[e]=t.slice(0)}this.variation instanceof Ut?(this.clickThroughURLTemplate=this.variation.nonlinearClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.nonlinearClickTrackingURLTemplates,this.setDuration(this.variation.minSuggestedDuration)):this.variation instanceof dt&&(this.clickThroughURLTemplate=this.variation.companionClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.companionClickTrackingURLTemplates)}}},{key:"setDuration",value:function(e){this.assetDuration=e,this.quartiles={firstQuartile:Math.round(25*this.assetDuration)/100,midpoint:Math.round(50*this.assetDuration)/100,thirdQuartile:Math.round(75*this.assetDuration)/100}}},{key:"setProgress",value:function(e){var t=this,n=this.skipDelay||-1;if(-1===n||this.skippable||(n>e?this.emit("skip-countdown",n-e):(this.skippable=!0,this.emit("skip-countdown",0))),this.assetDuration>0){var r=[];if(e>0){var o=Math.round(e/this.assetDuration*100);for(var i in r.push("start"),r.push("progress-".concat(o,"%")),r.push("progress-".concat(Math.round(e))),this.quartiles)this.isQuartileReached(i,this.quartiles[i],e)&&(r.push(i),this._alreadyTriggeredQuartiles[i]=!0)}r.forEach((function(e){t.track(e,!0)})),e<this.progress&&this.track("rewind")}this.progress=e}},{key:"isQuartileReached",value:function(e,t,n){var r=!1;return t<=n&&!this._alreadyTriggeredQuartiles[e]&&(r=!0),r}},{key:"setMuted",value:function(e){this.muted!==e&&this.track(e?"mute":"unmute"),this.muted=e}},{key:"setPaused",value:function(e){this.paused!==e&&this.track(e?"pause":"resume"),this.paused=e}},{key:"setFullscreen",value:function(e){this.fullscreen!==e&&this.track(e?"fullscreen":"exitFullscreen"),this.fullscreen=e}},{key:"setExpand",value:function(e){this.expanded!==e&&this.track(e?"expand":"collapse"),this.expanded=e}},{key:"setSkipDelay",value:function(e){"number"==typeof e&&(this.skipDelay=e)}},{key:"trackImpression",value:function(){this.impressed||(this.impressed=!0,this.trackURLs(this.ad.impressionURLTemplates),this.track("creativeView"))}},{key:"errorWithCode",value:function(e){this.trackURLs(this.ad.errorURLTemplates,{ERRORCODE:e})}},{key:"complete",value:function(){this.track("complete")}},{key:"close",value:function(){this.track(this.linear?"closeLinear":"close")}},{key:"skip",value:function(){this.track("skip"),this.trackingEvents=[]}},{key:"click",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.clickTrackingURLTemplates&&this.clickTrackingURLTemplates.length&&this.trackURLs(this.clickTrackingURLTemplates);var t=this.clickThroughURLTemplate||e;if(t){var n=this.linear?{CONTENTPLAYHEAD:this.progressFormatted()}:{},r=bt.resolveURLTemplates([t],n)[0];this.emit("clickthrough",r)}}},{key:"track",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];"closeLinear"===e&&!this.trackingEvents[e]&&this.trackingEvents.close&&(e="close");var n=this.trackingEvents[e],r=this.emitAlwaysEvents.indexOf(e)>-1;n?(this.emit(e,""),this.trackURLs(n)):r&&this.emit(e,""),t&&(delete this.trackingEvents[e],r&&this.emitAlwaysEvents.splice(this.emitAlwaysEvents.indexOf(e),1))}},{key:"trackURLs",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.linear&&(this.creative&&this.creative.mediaFiles&&this.creative.mediaFiles[0]&&this.creative.mediaFiles[0].fileURL&&(t.ASSETURI=this.creative.mediaFiles[0].fileURL),t.CONTENTPLAYHEAD=this.progressFormatted()),bt.track(e,t)}},{key:"progressFormatted",value:function(){var e=parseInt(this.progress),t=e/3600;t.length<2&&(t="0".concat(t));var n=e/60%60;n.length<2&&(n="0".concat(n));var r=e%60;return r.length<2&&(r="0".concat(n)),"".concat(t,":").concat(n,":").concat(r,".").concat(parseInt(100*(this.progress-e)))}}]),n}(Vt),bn=function(e,t,n,r){var o,i={},a={started:!1,active:!1,isVideoEnded:!1,lang:n.getLanguage()},A=null,s="",c=null,u="",l="",f=!1,p=n.getBrowser(),d="Android"===p.os||"iOS"===p.os;(o=document.createElement("div")).setAttribute("class","op-ads"),o.setAttribute("id","op-ads"),n.getContainer().append(o),(c=document.createElement("video")).setAttribute("playsinline","true"),c.setAttribute("title","Advertisement"),c.setAttribute("class","op-ads-vast-video"),(l=document.createElement("div")).setAttribute("class","op-ads-button"),(u=document.createElement("div")).setAttribute("class","op-ads-textview"),l.append(u),o.append(c),o.append(l),s=o;var g=new Cn,h=null,v=null,m=function(e){console.log(e),c.style.display="none",t.trigger(se,{code:e.code,message:e.message}),a.active=!1,a.started=!0,t.play()};return i.isActive=function(){return a.active},i.started=function(){return a.started},i.play=function(){return a.started?c.play():new Promise((function(o,i){!function s(){t.metaLoaded()?(OvenPlayerConsole.log("VAST : main contents meta loaded."),function(){OvenPlayerConsole.log("VAST : checkAutoplaySupport() ");var n=document.createElement("video");n.setAttribute("playsinline","true"),n.src=qe,n.load(),c.load(),d&&t.getName()!==le&&e.load();var r=function(e,t){f=e,n.pause(),n.remove()};return new Promise((function(e,t){if(n.play){var o=n.play();void 0!==o?o.then((function(){OvenPlayerConsole.log("VAST : auto play allowed."),r(!0),e()})).catch((function(t){OvenPlayerConsole.log("VAST : auto play failed",t.message),r(!1),e()})):(OvenPlayerConsole.log("VAST : promise not support"),r(!0),e())}else OvenPlayerConsole.log("VAST : !temporarySupportCheckVideo.play"),r(!0),e()}))}().then((function(){n.isAutoStart()&&!f?(OvenPlayerConsole.log("VAST : autoplayAllowed : false"),a.started=!1,i(new Error("autoplayNotAllowed"))):(g.get(r).then((function(n){if(OvenPlayerConsole.log("VAST : initRequest()"),!(v=n.ads[0]))throw{code:401,message:"File not found. Unable to find Linear/MediaFile from URI."};h=new yn(g,v,v.creatives[0]),OvenPlayerConsole.log("VAST : created ad tracker."),A=function(e,t,n,r,o,i,a){var A={},s={},c=_e(i),u=_e(o),l=_e(e);n.on(Re,(function(t){t.mute?e.muted=!0:(e.muted=!1,e.volume=t.volume/100)}),s);var f=function(){r.active=!1,u.hide(),!r.started||0!==n.getPosition()&&r.isVideoEnded||(l.hide(),n.play()),n.trigger(Ae)},p=function(n){c.hasClass("videoAdUiAction")&&(t.skip(),e.pause(),f())};return i.addEventListener("click",p,!1),A.error=function(){OvenPlayerConsole.log("VAST : listener : error.",e.error),console.log("VAST : listener : error.",e.error);var n={},r=e.error&&e.error.code||0;2===r?(n.code=402,n.message="Timeout of MediaFile URI."):3===r?(n.code=405,n.message="Problem displaying MediaFile. Video player found a MediaFile with supported type but couldn’t display it. MediaFile may include: unsupported codecs, different MIME type than MediaFile@type, unsupported delivery method, etc."):4===r?(n.code=403,n.message="Couldn’t find MediaFile that is supported by this video player, based on the attributes of the MediaFile element."):(n.code=400,n.message="General Linear error. Video player is unable to display the Linear Ad."),t.errorWithCode(n.code),a("405")},A.canplay=function(){},A.ended=function(){t.complete(),f()},A.click=function(e){t.click()},A.play=function(){t.setPaused(!1)},A.pause=function(){t.setPaused(!0)},A.timeupdate=function(r){t.setProgress(r.target.currentTime),n.trigger(Se,{duration:e.duration,position:e.currentTime})},A.volumechange=function(e){OvenPlayerConsole.log("VAST : listener : Ad Video Volumechange."),t.setMuted(e.target.muted)},A.loadedmetadata=function(){OvenPlayerConsole.log("VAST : listener : Ad CONTENT LOADED ."),ee===n.getState()&&n.pause(),t.trackImpression(),n.trigger(oe,{remaining:e.duration,isLinear:!0}),e.play()},t.on("skip",(function(){OvenPlayerConsole.log("VAST : listener : skipped")})),t.on("mute",(function(){OvenPlayerConsole.log("VAST : listener : muted")})),t.on("unmute",(function(){OvenPlayerConsole.log("VAST : listener : unmuted")})),t.on("resume",(function(){OvenPlayerConsole.log("VAST : listener : vastTracker resumed."),r.started&&n.setState(ie)})),t.on("pause",(function(){OvenPlayerConsole.log("VAST : listener : vastTracker paused."),n.setState(ae)})),t.on("clickthrough",(function(e){OvenPlayerConsole.log("VAST : listener : clickthrough :",e),window.open(e,"_blank")})),t.on("skip-countdown",(function(e){0===e?("ko"===r.lang?c.html("광고 건너뛰기<i class='op-con op-arrow-right btn-right'></i>"):c.html("Ad Skip<i class='op-con op-arrow-right btn-right'></i>"),c.addClass("videoAdUiAction")):"ko"===r.lang?c.html(parseInt(e)+1+"초 후에 이 광고를 건너뛸 수 있습니다."):c.html("You can skip this ad in "+(parseInt(e)+1))})),t.on("rewind",(function(){OvenPlayerConsole.log("VAST : listener : rewind")})),t.on("start",(function(){OvenPlayerConsole.log("VAST : listener : started"),r.started=!0,r.active=!0,l.show(),u.show(),n.trigger(Ie,{isLinear:!0}),n.setState(ie)})),t.on("firstQuartile",(function(){OvenPlayerConsole.log("VAST : listener : firstQuartile")})),t.on("midpoint",(function(){OvenPlayerConsole.log("VAST : listener : midpoint")})),t.on("thirdQuartile",(function(){OvenPlayerConsole.log("VAST : listener : thirdQuartile")})),t.on("creativeView",(function(){OvenPlayerConsole.log("VAST : listener : creativeView")})),Object.keys(A).forEach((function(t){e.removeEventListener(t,A[t]),e.addEventListener(t,A[t])})),s.destroy=function(){OvenPlayerConsole.log("EventListener : destroy()"),i.removeEventListener("click",p,!1),Object.keys(A).forEach((function(t){e.removeEventListener(t,A[t])}))},s}(c,h,t,a,l,u,m);var r="";v.creatives&&v.creatives.length>0&&v.creatives[0].mediaFiles&&v.creatives[0].mediaFiles.length>0&&v.creatives[0].mediaFiles[0].fileURL&&(r=v.creatives[0].mediaFiles[0].fileURL,OvenPlayerConsole.log("VAST : media url : ",r)),c.src=r,c.volume=e.volume,c.muted=e.muted})).catch((function(e){m(e)})),o())}))):setTimeout(s,100)}()}))},i.pause=function(){c.pause()},i.videoEndedCallback=function(e){e(),a.isVideoEnded=!0},i.destroy=function(){A&&(A.destroy(),A=null),h=null,g=null,s.remove()},i},wn=function(e,t,n){OvenPlayerConsole.log("[Provider] loaded. ");var r={};ze(r);var o=e.element,i=null,a=null;e.adTagUrl&&(OvenPlayerConsole.log("[Provider] Ad Client - ",t.getAdClient()),(i="vast"===t.getAdClient()?bn(o,r,t,e.adTagUrl):tt(o,r,t,e.adTagUrl))||console.log("Can not load due to google ima for Ads.")),a=function(e,t,n,r){var o={};OvenPlayerConsole.log("EventListener loaded.",e,t);var i={},a=-1,A=e;return o.canplay=function(){t.setCanSeek(!0),t.trigger("bufferFull"),OvenPlayerConsole.log("EventListener : on canplay")},o.durationchange=function(){o.progress(),OvenPlayerConsole.log("EventListener : on durationchange"),t.trigger("durationChanged")},o.ended=function(){OvenPlayerConsole.log("EventListener : on ended"),A.pause(),t.getState()!==X&&t.getState()!==q&&t.getState()!==te&&(n?n((function(){t.setState(q)})):t.setState(q))},o.loadeddata=function(){},o.loadedmetadata=function(){var e=t.getSources(),n=t.getCurrentSource(),r=n>-1?e[n].type:"",o={duration:t.isLive()?1/0:A.duration,type:r};t.setMetaLoaded(),OvenPlayerConsole.log("EventListener : on loadedmetadata",o),t.trigger(Oe,o)},o.pause=function(){return t.getState()!==q&&t.getState()!==te&&!A.ended&&!A.error&&A.currentTime!==A.duration&&(OvenPlayerConsole.log("EventListener : on pause"),void t.setState($))},o.loadstart=function(){r&&!r.getConfig().showBigPlayButton&&r.getConfig().autoStart&&t.setState(ne)},o.play=function(){a=-1,A.paused||t.getState()===ee||t.setState(ne)},o.playing=function(){OvenPlayerConsole.log("EventListener : on playing"),a<0&&t.setState(ee)},o.progress=function(){var e=A.buffered;if(!e)return!1;var n,r=A.duration,o=A.currentTime,i=(n=(e.length>0?e.end(e.length-1):0)/r,Math.max(Math.min(n,1),0));t.setBuffer(100*i),t.trigger(Te,{bufferPercent:100*i,position:o,duration:r}),OvenPlayerConsole.log("EventListener : on progress",100*i)},o.timeupdate=function(){var e=A.currentTime,n=A.duration;if(!isNaN(n)){if(e>n)return A.pause(),void t.setState(q);var r=t.getSources()[t.getCurrentSource()].sectionStart;r&&e<r&&t.getState()===ee&&t.seek(r);var o=t.getSources()[t.getCurrentSource()].sectionEnd;if(o&&e>o&&t.getState()===ee)return t.stop(),void t.setState(q);n>9e15&&(n=1/0),t.isSeeking()||A.paused||t.getState()!==re&&t.getState()!==ne&&t.getState()!==ie||function(e,t){return e.toFixed(2)===t.toFixed(2)}(a,e)||(a=-1,t.setState(ee)),r&&r>0&&(e-=r)<0&&(e=0),o&&(n=o),r&&(n-=r),(t.getState()===ee||t.isSeeking())&&t.trigger(Le,{position:e,duration:n})}},o.seeking=function(){t.setSeeking(!0),OvenPlayerConsole.log("EventListener : on seeking",A.currentTime),t.trigger("seek",{position:A.currentTime})},o.seeked=function(){t.isSeeking()&&(OvenPlayerConsole.log("EventListener : on seeked"),t.setSeeking(!1),t.trigger("seeked"))},o.stalled=function(){OvenPlayerConsole.log("EventListener : on stalled")},o.waiting=function(){OvenPlayerConsole.log("EventListener : on waiting",t.getState()),t.isSeeking()?t.setState(ne):t.getState()===ee&&(a=A.currentTime,t.setState(re))},o.volumechange=function(){OvenPlayerConsole.log("EventListener : on volumechange",Math.round(100*A.volume)),t.trigger(Re,{volume:Math.round(100*A.volume),mute:A.muted})},o.error=function(){var e={0:300,1:301,2:302,3:303,4:304}[A.error&&A.error.code||0]||0;OvenPlayerConsole.log("EventListener : on error",e),$e(je.codes[e],t)},Object.keys(o).forEach((function(e){A.removeEventListener(e,o[e]),A.addEventListener(e,o[e])})),i.destroy=function(){OvenPlayerConsole.log("EventListener : destroy()"),Object.keys(o).forEach((function(e){A.removeEventListener(e,o[e])}))},i}(o,r,i?i.videoEndedCallback:null,t),o.playbackRate=o.defaultPlaybackRate=t.getPlaybackRate();var A=function(i){var a=e.sources[e.currentSource];if(e.framerate=a.framerate,r.setVolume(t.getVolume()),e.framerate||t.setTimecodeMode(!0),n)n(a,i);else{OvenPlayerConsole.log("source loaded : ",a,"lastPlayPosition : "+i);var A=o.src;a.file!==A&&(o.src=a.file,(A||""===A)&&o.load()),r.on(Oe,(function(){i>0&&r.seek(i)}))}};return r.getName=function(){return e.name},r.getMse=function(){return e.mse},r.getMediaElement=function(){return e.element},r.canSeek=function(){return e.canSeek},r.setCanSeek=function(t){e.canSeek=t},r.isSeeking=function(){return e.seeking},r.setSeeking=function(t){e.seeking=t},r.setMetaLoaded=function(){e.isLoaded=!0},r.metaLoaded=function(){return e.isLoaded},r.setState=function(t){if(e.state!==t){var n=e.state;if(OvenPlayerConsole.log("Provider : setState()",t),n===ie&&(t===te||t===X))return!1;switch(OvenPlayerConsole.log("Provider : triggerSatatus",t),t){case q:r.trigger("complete");break;case $:r.trigger(be,{prevState:e.state,newstate:$});break;case ae:r.trigger(be,{prevState:e.state,newstate:ae});break;case ee:r.trigger(we,{prevState:e.state,newstate:ee});break;case ie:r.trigger(we,{prevState:e.state,newstate:ie})}e.state=t,r.trigger(ye,{prevstate:n,newstate:e.state})}},r.getState=function(){return e.state},r.setBuffer=function(t){e.buffer=t},r.getBuffer=function(){return e.buffer},r.isLive=function(){return!!e.isLive||o.duration===1/0},r.getDuration=function(){return r.isLive()?1/0:o.duration},r.getDvrWindow=function(){return e.dvrWindow},r.getPosition=function(){return o?o.currentTime:0},r.setVolume=function(e){if(!o)return!1;o.volume=e/100,t.setVolume(e)},r.getVolume=function(){return t.getVolume()},r.setMute=function(e){if(!o)return!1;if(void 0===e){var n=t.isMute();o.muted=!n,t.setMute(!n),r.trigger(Qe,{mute:t.isMute()})}else o.muted=e,t.setMute(e),r.trigger(Qe,{mute:t.isMute()});return o.muted},r.getMute=function(){return t.isMute()},r.preload=function(n,o){return e.sources=n,e.currentSource=et(n,t),A(o||0),new Promise((function(e,n){t.isMute()&&r.setMute(!0),t.getVolume()&&r.setVolume(t.getVolume()),e()}))},r.load=function(n){e.sources=n,e.currentSource=et(n,t),A(0)},r.play=function(){if(OvenPlayerConsole.log("Provider : play()"),!o)return!1;if(r.getState()!==ee)if(i&&i.isActive()||i&&!i.started())i.play().then((function(e){OvenPlayerConsole.log("Provider : ads play success")})).catch((function(e){OvenPlayerConsole.log("Provider : ads play fail",e)}));else{var e=o.play();void 0!==e?e.then((function(){OvenPlayerConsole.log("Provider : video play success")})).catch((function(e){OvenPlayerConsole.log("Provider : video play error",e.message)})):OvenPlayerConsole.log("Provider : video play success (ie)")}},r.pause=function(){if(OvenPlayerConsole.log("Provider : pause()"),!o)return!1;r.getState()===ee?o.pause():r.getState()===ie&&i.pause()},r.seek=function(e){if(!o)return!1;o.currentTime=e},r.setPlaybackRate=function(e){return!!o&&(r.trigger("playbackRateChanged",{playbackRate:e}),o.playbackRate=o.defaultPlaybackRate=e)},r.getPlaybackRate=function(){return o?o.playbackRate:0},r.getSources=function(){return o?e.sources.map((function(e,t){var n={file:e.file,type:e.type,label:e.label,index:t,sectionStart:e.sectionStart,sectionEnd:e.sectionEnd,gridThumbnail:e.gridThumbnail};return e.lowLatency&&(n.lowLatency=e.lowLatency),n})):[]},r.getCurrentSource=function(){return e.currentSource},r.setCurrentSource=function(n,i){if(n>-1&&e.sources&&e.sources.length>n)return OvenPlayerConsole.log("source changed : "+n),e.currentSource=n,r.trigger(Me,{currentSource:n}),t.setSourceIndex(n),r.setState(X),i&&A(o.currentTime||0),e.currentSource},r.getQualityLevels=function(){return o?e.qualityLevels:[]},r.getCurrentQuality=function(){return o?e.currentQuality:null},r.setCurrentQuality=function(e){},r.getAudioTracks=function(){return o?e.audioTracks:[]},r.getCurrentAudioTrack=function(){return o?e.currentAudioTrack:[]},r.setCurrentAudioTrack=function(e){},r.isAutoQuality=function(){},r.setAutoQuality=function(e){},r.getFramerate=function(){return e.framerate},r.setFramerate=function(t){return e.framerate=t},r.seekFrame=function(t){var n=e.framerate,i=(o.currentTime*n+t)/n;i+=1e-5,r.pause(),r.seek(i)},r.stop=function(){if(!o)return!1;for(OvenPlayerConsole.log("CORE : stop() "),o.removeAttribute("preload"),o.removeAttribute("src");o.firstChild;)o.removeChild(o.firstChild);r.pause(),r.setState(X)},r.destroy=function(){if(!o)return!1;r.stop(),a.destroy(),i&&(i.destroy(),i=null),r.off(),OvenPlayerConsole.log("CORE : destroy() player stop, listener, event destroied")},r.super=function(e){var t=r[e];return function(){return t.apply(r,arguments)}},r},En=function(e,t,n){var r=wn({name:ce,element:e,mse:null,listener:null,isLoaded:!1,canSeek:!1,isLive:!1,seeking:!1,state:X,buffer:0,framerate:0,currentQuality:-1,qualityLevels:[],currentAudioTrack:-1,audioTracks:[],currentSource:-1,sources:[],adTagUrl:n},t,null),o=r.super("destroy");return OvenPlayerConsole.log("HTML5 PROVIDER LOADED."),r.destroy=function(){OvenPlayerConsole.log("HTML5 : PROVIDER DESTROYED."),o()},r},Bn=function(e,t,n,r,o,a,A,s){var c={},u={},l=null,f=!1,p=null,d=null,g={},h=!1,v=!1,m=null,C=!1;A.getConfig().webrtcConfig&&!0===A.getConfig().webrtcConfig.recoverPacketLoss&&(v=!0);var y=!0;A.getConfig().webrtcConfig&&!1===A.getConfig().webrtcConfig.generatePublicCandidate&&(y=A.getConfig().webrtcConfig.generatePublicCandidate);var b,w=Y();function E(e){var t=null;return d&&e===d.id?t=d.peerConnection:g[e]&&(t=g[e].peerConnection),t}function B(e){e.statisticsTimer&&clearTimeout(e.statisticsTimer),e.status||(e.status={},e.status.lostPacketsArr=[],e.status.slotLength=8,e.status.prevPacketsLost=0,e.status.avg8Losses=0,e.status.avgMoreThanThresholdCount=0,e.status.threshold=40);var t=e.status.lostPacketsArr,n=e.status.slotLength,r=e.status.prevPacketsLost,o=e.status.avg8Losses,a=e.status.threshold;e.statisticsTimer=setTimeout((function(){if(!e.peerConnection)return!1;e.peerConnection.getStats().then((function(s){s&&A.getConfig().autoFallback&&s&&(s.forEach((function(A){if("inbound-rtp"===A.type&&"video"===A.kind&&!A.isRemote){var s=parseInt(A.packetsLost)-parseInt(r);t.push(parseInt(A.packetsLost)-parseInt(r)),t.length>n&&t.shift(),t.length===n&&(o=i().reduce(t,(function(e,t){return e+t}),0)/n,OvenPlayerConsole.log("Last8 LOST PACKET AVG  : "+o,"Current Packet LOST: "+s,"Total Packet Lost: "+A.packetsLost,t),o>a?(e.status.avgMoreThanThresholdCount=e.status.avgMoreThanThresholdCount+1,e.status.avgMoreThanThresholdCount>=60&&(OvenPlayerConsole.log("NETWORK UNSTABLED!!! "),Q(je.codes[510]))):e.status.avgMoreThanThresholdCount=0),e.status.prevPacketsLost=A.packetsLost}})),B(e))}))}),2e3)}function x(o,a,s,u,f){var g={};if(A.getConfig().webrtcConfig&&A.getConfig().webrtcConfig.iceServers)g.iceServers=A.getConfig().webrtcConfig.iceServers,A.getConfig().webrtcConfig.iceTransportPolicy&&(g.iceTransportPolicy=A.getConfig().webrtcConfig.iceTransportPolicy);else if(f){g.iceServers=[];for(var m=0;m<f.length;m++){var C=f[m],y={};y.urls=C.urls;for(var b=!1,w=I(t),E=0;E<y.urls.length;E++)if(y.urls[E].indexOf(w)>-1){b=!0;break}if(!b&&y.urls.length>0){var x=i().clone(y.urls[0]),k=S(x);w&&k&&y.urls.push(x.replace(k,w))}y.username=C.username||C.user_name,y.credential=C.credential,g.iceServers.push(y)}g.iceTransportPolicy="relay"}else g=c;OvenPlayerConsole.log("Main Peer Connection Config : ",g);var T=null;try{T=new RTCPeerConnection(g),e.trigger("peerConnectionPrepared",T)}catch(e){var R=je.codes[506];return R.error=e,void Q(R)}d={id:o,peerId:a,peerConnection:T},T.setRemoteDescription(new RTCSessionDescription(s)).then((function(){T.createAnswer().then((function(e){var t=function(e){for(var t=e.split("\r\n"),n=-1,r=0;r<t.length-1;r++)if(t[r]=t[r].toLowerCase(),t[r].indexOf("a=rtpmap")>-1&&t[r].indexOf("opus")>-1){n=t[r].split(" ")[0].split(":")[1];break}return n}(s.sdp);t>-1&&function(e,t){for(var n=e.split("\r\n"),r=!1,o=0;o<n.length-1;o++)if(n[o]=n[o].toLowerCase(),n[o].indexOf("a=fmtp:"+t)>-1){n[o].indexOf("stereo=1")>-1&&(r=!0);break}return r}(s.sdp,t)&&(e.sdp=function(e,t){for(var n=e.split("\r\n"),r=0;r<n.length-1;r++)if(n[r].indexOf("a=fmtp:"+t)>-1){-1===n[r].indexOf("stereo=1")&&(n[r]=n[r]+";stereo=1");break}return n.join("\r\n")}(e.sdp,t)),OvenPlayerConsole.log("Local SDP",e),O(l,{id:o,peer_id:a,command:"answer",sdp:e}),OvenPlayerConsole.log("create Host Answer : success"),T.setLocalDescription(e).then((function(){})).catch((function(e){var t=je.codes[505];t.error=e,Q(t)}))})).catch((function(e){var t=je.codes[504];t.error=e,Q(t)}))})).catch((function(e){var t=je.codes[503];t.error=e,Q(t)})),u&&L(T,u),T.onicecandidate=function(e){e.candidate&&(OvenPlayerConsole.log("WebRTCLoader send candidate to server : ",e.candidate),O(l,{id:o,peer_id:a,command:"candidate",candidates:[e.candidate]}))},T.onconnectionstatechange=function(e){OvenPlayerConsole.log("[on connection state change]",T.connectionState,e),"connected"===T.connectionState&&r&&r()},T.onicecandidateerror=function(e){},T.onicegatheringstatechange=function(e){},T.oniceconnectionstatechange=function(e){OvenPlayerConsole.log("[on ice connection state change]",T.iceConnectionState,e),"connected"===T.iceConnectionState&&r&&r(),("disconnected"===T.iceConnectionState||"closed"===T.iceConnectionState)&&(h||d&&Q(je.codes[511]))},T.ontrack=function(e){if(OvenPlayerConsole.log("stream received."),OvenPlayerConsole.log("Recovery On Packet Loss :",v),v&&B(d),p=e.streams[0],n(e.streams[0]),A.getConfig().webrtcConfig&&A.getConfig().webrtcConfig.playoutDelayHint)for(var t=A.getConfig().webrtcConfig.playoutDelayHint,r=d.peerConnection.getReceivers(),o=0;o<r.length;o++){var i=r[o];"audio"===i.track.kind?(i.playoutDelayHint=t,i.jitterBufferDelayHint=t):i.playoutDelayHint=t,OvenPlayerConsole.log("WebRTC playoutDelayHint",i,t)}}}function k(e,t){if(p){var n=new RTCPeerConnection(c);g[t]={id:t,peerId:e,peerConnection:n},n.addStream(p),n.createOffer((function(r){n.setLocalDescription(r),O(l,{id:e,peer_id:t,sdp:r,command:"offer_p2p"})}),(function(e){}),{}),n.onicecandidate=function(n){n.candidate&&(OvenPlayerConsole.log("WebRTCLoader send candidate to server : "+n.candidate),O(l,{id:e,peer_id:t,command:"candidate_p2p",candidates:[n.candidate]}))}}else setTimeout((function(){k(e,t)}),100)}function I(e){var t,n="";return(t=e.match(/^(?:wss?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n\?\=]+)/im))&&(n=t[1]),n}function S(e){var t,n="";return(t=e.match(new RegExp("\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b","gi")))&&(n=t[0]),n}function T(e){var n=i().clone(e),r=I(t),o=S(n.candidate);return new Promise((function(e,t){""!==o&&o!==r||e(null),"Firefox"!==w.browser||S(r)?(n.candidate=n.candidate.replace(o,r),e(n)):e(null)}))}function L(e,t){for(var n=0;n<t.length;n++)if(t[n]&&t[n].candidate){var r=t[n];if(e.addIceCandidate(new RTCIceCandidate(r)).then((function(){OvenPlayerConsole.log("addIceCandidate : success")})).catch((function(e){var t=je.codes[502];t.error=e,Q(t)})),y){var o=T(r);o&&o.then((function(t){t&&e.addIceCandidate(new RTCIceCandidate(t)).then((function(){OvenPlayerConsole.log("cloned addIceCandidate : success")})).catch((function(e){var t=je.codes[502];t.error=e,Q(t)}))}))}}}function R(){try{(l=new WebSocket(t)).onopen=function(){f=!0,O(l,{command:"request_offer"})},l.onmessage=function(t){var n=JSON.parse(t.data);if(n.error){var r=je.codes[501];return r.error=n.error,void Q(r)}if(0!==Object.keys(n).length||n.constructor!==Object)if("ping"!==n.command){if("offer"===n.command){var o=n.iceServers||n.ice_servers;x(n.id,n.peer_id,n.sdp,n.candidates,o),0===n.peer_id?e.trigger(Ne,!1):e.trigger(Ne,!0)}if("request_offer_p2p"===n.command&&k(n.id,n.peer_id),"answer_p2p"===n.command&&E(n.peer_id).setRemoteDescription(new RTCSessionDescription(n.sdp)).then((function(e){})).catch((function(e){var t=je.codes[503];t.error=e,Q(t)})),"candidate"===n.command&&L(E(n.id),n.candidates),"candidate_p2p"===n.command&&L(E(n.peer_id),n.candidates),"notification"===n.command){if("playlist"===n.type){var i=n.message.renditions;m=n.message;for(var a=0;a<i.length;a++){var A=i[a];s.qualityLevels.push({bitrate:A.video_track.video.bitrate,height:A.video_track.video.height,width:A.video_track.video.width,index:a,label:A.name})}s.currentQuality=0,C=n.message.auto}if("rendition_changed"===n.type){var c=n.message;n.auto&&(C=n.auto);for(var u=-1,f=0;f<m.renditions.length;f++)if(c.rendition_name===m.renditions[f].name){u=f,s.currentQuality=f;break}e.trigger(De,{isAuto:C,currentQuality:u,type:"render"})}}"stop"===n.command&&(d.peerId===n.peer_id?(p=null,d.peerConnection.close(),d=null,e.pause(),O(l,{command:"request_offer"})):g[n.peer_id]&&(g[n.peer_id].peerConnection.close(),delete g[n.peer_id]))}else O(l,{command:"pong"});else OvenPlayerConsole.log("Empty Message")},l.onclose=function(e){if(!h){if(r&&!f)return void Q();var t=je.codes[501];d&&(t=je.codes[511]),Q(t)}},l.onerror=function(e){}}catch(e){Q(e)}}function Q(t){if(OvenPlayerConsole.log("WebRTC Loader closePeer()"),t||(h=!0),d&&(d.statisticsTimer&&clearTimeout(d.statisticsTimer),p=null,OvenPlayerConsole.log("Closing main peer connection..."),d.peerConnection&&d.peerConnection.close(),d.peerConnection=null,e.trigger("peerConnectionDestroyed"),d=null),Object.keys(g).length>0){for(var n in g){var r=g[n].peerConnection;r&&(OvenPlayerConsole.log("Closing client peer connection..."),r.close(),r=null)}g={}}l?(OvenPlayerConsole.log("Closing websocket connection..."),OvenPlayerConsole.log("Send Signaling : Stop."),1===l.readyState&&(h=!0,d&&O(l,{command:"stop",id:d.id}),l.close())):h=!1,l=null,t&&(o&&o(t),a(t,e))}function O(e,t){e&&e.send(JSON.stringify(t))}return b=window.onbeforeunload,window.onbeforeunload=function(e){b&&b(e),OvenPlayerConsole.log("This calls auto when browser closed."),Q()},e.setCurrentQuality=function(e){if(!m)return-1;var t=m.renditions[e];return t?(O(l,{command:"change_rendition",id:d.id,rendition_name:t.name,auto:!1}),C=!1,s.currentQuality=e,s.currentQuality):s.currentQuality},e.isAutoQuality=function(){return C},e.setAutoQuality=function(e){O(l,{command:"change_rendition",id:d.id,auto:e}),C=e},u.connect=function(){OvenPlayerConsole.log("WebRTCLoader connecting..."),OvenPlayerConsole.log("WebRTCLoader url : "+t),R()},u.destroy=function(){h=!0,Q()},u},xn=function(e,t,n){var r={},o=null,i=null,a=null,A=null,s=null,c={name:ue,element:e,mse:null,listener:null,isLoaded:!1,canSeek:!1,isLive:!1,seeking:!1,state:X,buffer:0,framerate:0,currentQuality:-1,currentSource:-1,qualityLevels:[],sources:[],adTagUrl:n},u=1e4,l=0,f=null,p=!1;function d(){if(He(A.file,A.type)){clearTimeout(f),OvenPlayerConsole.log("WEBRTC : onBeforeLoad : ",A),o&&(o.destroy(),o=null);var n=null,i=null;l>0&&(n=function(){clearTimeout(f)},i=function(){clearTimeout(f),performance.now(),p=!0}),o=Bn(r,A.file,(function(t){if(e.srcObject&&(e.srcObject=null),s&&(s.close(),s=null),e.srcObject=t,t.getAudioTracks().length>0){var n=window.AudioContext||window.webkitAudioContext;(function(e){var t=/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent),n=(/iPhone|iPad|iPod/i.test(navigator.userAgent),!1);t&&"suspended"===e.state&&document.addEventListener("touchend",(function(){n||"running"===e.state||(e.resume(),n=!0)}))})(s=new n),s.createMediaStreamSource(t)}}),i,n,$e,t,c),performance.now(),o.connect(),l>0&&(r.once(ye,(function(e){p||e.newstate===X&&(clearTimeout(f),g())})),r.once(Ce,(function(){p=!1})),f=setTimeout((function(){if(l>0)p||(g(),d());else{g();var e=je.codes[512];$e(e,r)}l--}),u))}}function g(){o&&(o.destroy(),o=null,e.srcObject=null)}return r=wn(c,t,(function(e){var n=t.getConfig();n.webrtcConfig&&("number"==typeof n.webrtcConfig.connectionTimeout&&n.webrtcConfig.connectionTimeout>0&&(u=n.webrtcConfig.connectionTimeout),"number"==typeof n.webrtcConfig.timeoutMaxRetry&&n.webrtcConfig.timeoutMaxRetry>0&&(l=n.webrtcConfig.timeoutMaxRetry)),A=e,d()})),i=r.super("destroy"),a=r.super("play"),OvenPlayerConsole.log("WEBRTC PROVIDER LOADED."),r.destroy=function(){clearTimeout(f),g(),OvenPlayerConsole.log("WEBRTC :  PROVIDER DESTROYED."),i()},r.play=function(){l>0&&!p&&d(),a()},r},kn=function(e,t,n){var r=t?1e3:1024;if(Math.abs(e)<r)return e+" B";var o=n||"B",i=["k"+o,"M"+o,"G"+o,"T"+o,"P"+o,"E"+o,"Z"+o,"Y"+o],a=-1;do{e/=r,++a}while(Math.abs(e)>=r&&a<i.length-1);return e.toFixed(1)+i[a]},In=function(e,t,n){var r={},o=null,a=null,A=null,s=0,c="";try{if(dashjs.Version<"3.0.0")throw je.codes[103];var u=function(e){o.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:e}}}})},l=function(){return o.getSettings().streaming.abr.autoSwitchBitrate.video};(o=dashjs.MediaPlayer().create()).initialize(e,null,!1),window.op_dash=o;var f={name:le,element:e,mse:o,listener:null,isLoaded:!1,canSeek:!1,isLive:!1,seeking:!1,state:X,buffer:0,framerate:0,currentQuality:-1,currentSource:-1,qualityLevels:[],sources:[],adTagUrl:n};r=wn(f,t,(function(e,n){OvenPlayerConsole.log("DASH : Attach File : ",e,"lastPlayPosition : "+n),u(!0),c=e.file,!0===e.lowLatency?(o.updateSettings({streaming:{lowLatencyEnabled:e.lowLatency}}),t.getConfig().lowLatencyMpdLiveDelay&&"number"==typeof t.getConfig().lowLatencyMpdLiveDelay&&o.updateSettings({streaming:{liveDelay:t.getConfig().lowLatencyMpdLiveDelay}})):o.updateSettings({streaming:{lowLatencyEnabled:!1,liveDelay:void 0}}),o.updateSettings({debug:{logLevel:dashjs.Debug.LOG_LEVEL_NONE}});var i=t.getConfig().dashConfig;i&&o.updateSettings(i),r.trigger("dashPrepared",o),o.attachSource(c),s=n})),a=r.super("play"),A=r.super("destroy"),OvenPlayerConsole.log("DASH PROVIDER LOADED."),o.on(dashjs.MediaPlayer.events.ERROR,(function(e){var t=je.codes[302];t.error=e,$e(t,r)})),o.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_REQUESTED,(function(e){e&&e.mediaType&&"video"===e.mediaType&&r.trigger(De,{isAuto:l(),currentQuality:f.currentQuality,type:"request"})})),o.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_RENDERED,(function(e){e&&e.mediaType&&"video"===e.mediaType&&(f.currentQuality=e.newQuality,r.trigger(De,{isAuto:l(),currentQuality:e.newQuality,type:"render"}))})),o.on(dashjs.MediaPlayer.events.PLAYBACK_METADATA_LOADED,(function(e){OvenPlayerConsole.log("DASH : PLAYBACK_METADATA_LOADED  : ",o.getQualityFor("video"),o.getBitrateInfoListFor("video"),o.getBitrateInfoListFor("video")[o.getQualityFor("video")]);var t=o.getBitrateInfoListFor("video");f.currentQuality=o.getQualityFor("video");for(var n=0;n<t.length;n++)i().findWhere(f.qualityLevels,{bitrate:t[n].bitrate,height:t[n].height,width:t[n].width})||f.qualityLevels.push({bitrate:t[n].bitrate,height:t[n].height,width:t[n].width,index:t[n].qualityIndex,label:t[n].width+"x"+t[n].height+", "+kn(t[n].bitrate,!0,"bps")});o.isDynamic()&&(f.isLive=!0),s&&!f.isLive&&o.seek(s)})),r.play=function(e){r.getState()===ie||r.getState()===ae||a(e)},r.setCurrentQuality=function(e){return r.getState()!==ee&&r.play(),f.currentQuality=e,l()&&u(!1),o.setQualityFor("video",e),f.currentQuality},r.isAutoQuality=function(){return l()},r.setAutoQuality=function(e){u(e)},r.destroy=function(){o.destroy?o.destroy():o.reset(),o=null,r.trigger("dashDestroyed"),OvenPlayerConsole.log("DASH : PROVIDER DESTROYED."),A()}}catch(e){if(e&&e.code&&103===e.code)throw e;var p=je.codes[105];throw p.error=e,p}return r},Sn=function(e,t,n){var r={},o=null,i=null,a=null,A=null,s=!1;try{var c={debug:!1},u=t.getConfig().hlsConfig;if(u)for(var l in u)c[l]=u[l];o=new Hls(c),window.op_hls=o,o.attachMedia(e);var f={name:fe,element:e,mse:o,listener:null,isLoaded:!1,canSeek:!1,isLive:!1,seeking:!1,state:X,buffer:0,dvrWindow:0,framerate:0,currentQuality:-1,qualityLevels:[],currentAudioTrack:-1,audioTracks:[],currentSource:-1,sources:[],adTagUrl:n};r=wn(f,t,(function(e,t){OvenPlayerConsole.log("HLS : onExtendedLoad : ",e,"lastPlayPosition : "+t),r.trigger("hlsPrepared",o),o.loadSource(e.file),o.once(Hls.Events.MANIFEST_LOADED,(function(e,t){for(var n=0;n<o.levels.length;n++){var r=o.levels[n];f.qualityLevels.push({bitrate:r.bitrate,height:r.height,width:r.width,index:n,label:r.width+"x"+r.height+", "+kn(r.bitrate,!0,"bps")})}f.currentQuality=o.firstLevel;for(var i=0;i<o.audioTracks.length;i++){var a=o.audioTracks[i];f.audioTracks.push({index:a.id,label:a.name}),!0===a.default&&(f.currentAudioTrack=a.id)}})),o.once(Hls.Events.LEVEL_LOADED,(function(e,n){s=!0,A&&(clearTimeout(A),A=null),n.details.live?f.isLive=!0:t&&t>=0&&r.seek(t)})),o.on(Hls.Events.LEVEL_SWITCHED,(function(e,t){f.currentQuality=t.level,r.trigger(De,{isAuto:o.autoLevelEnabled,currentQuality:f.currentQuality,type:"render"})})),o.on(Hls.Events.AUDIO_TRACK_SWITCHED,(function(e,t){f.currentAudioTrack=t.id,r.trigger(We,{currentAudioTrack:f.currentAudioTrack})})),o.on(Hls.Events.LEVEL_UPDATED,(function(e,t){t&&t.details&&(f.dvrWindow=t.details.totalduration)})),o.on(Hls.Events.ERROR,(function(t,n){if(n&&n.networkDetails&&202===n.networkDetails.status)return A&&(clearTimeout(A),A=null),r.setState(ne),void(A=setTimeout((function(){o&&(r.stop(),o.stopLoad(),o.loadSource(e.file))}),1e3));if(n.fatal){var i=302;n&&n.networkDetails&&400===n.networkDetails.status?i=306:n&&n.networkDetails&&403===n.networkDetails.status?i=307:n&&n.networkDetails&&406===n.networkDetails.status&&(i=308);var a=je.codes[i];a.error=n.details,$e(a,r)}})),r.on(ye,(function(e){s||e.prevstate!==ne||e.newstate!==X||(A&&(clearTimeout(A),A=null),o&&o.stopLoad())}))})),r.setCurrentQuality=function(e){return o.currentLevel=e,f.currentQuality=e,f.currentQuality},r.isAutoQuality=function(){return o.autoLevelEnabled},r.setAutoQuality=function(e){o.currentLevel=e?-1:o.currentLevel},r.setCurrentAudioTrack=function(e){return o.audioTrack=e,f.currentAudioTrack=e,f.currentAudioTrack},r.getDuration=function(){return e.duration},i=r.super("stop"),r.stop=function(){A&&(clearTimeout(A),A=null),o&&o.stopLoad(),i()},a=r.super("destroy"),r.destroy=function(){A&&(clearTimeout(A),A=null),o&&(o.destroy(),r.trigger("hlsDestroyed")),o=null,OvenPlayerConsole.log("HLS : PROVIDER DESTROYED."),a()},OvenPlayerConsole.log("HLS PROVIDER LOADED.")}catch(e){var p=je.codes[106];throw p.error=e,p}return r},Tn=function(e){var t={};ze(t),OvenPlayerConsole.log("API loaded.");var n=function(e){var t={},n={playlist:[],currentIndex:0},r=Xe();OvenPlayerConsole.log("PlaylistManager loaded.");var o=function(e){if(e&&(e.file||e.host||e.application||e.stream)){var t=Object.assign({},{default:!1},e);t.file=a(""+t.file),t.host&&t.application&&t.stream&&(t.file=t.host+"/"+t.application+"/stream/"+t.stream,delete t.host,delete t.application,delete t.stream);var n=/^[^/]+\/(?:x-)?([^/]+)$/;if(n.test(t.type)&&(t.mimeType=t.type,t.type=t.type.replace(n,"$1")),Ve(t.file)?t.type="rtmp":He(t.file)?t.type="webrtc":Je(t.file,t.type)?t.type="hls":Ze(t.file,t.type)?t.type="dash":t.type||(t.type=A(t.file)),t.lowLatency&&(t.lowLatency=t.lowLatency),t.type){switch(t.type){case"m3u8":case"vnd.apple.mpegurl":t.type="hls";break;case"m4a":t.type="aac";break;case"smil":t.type="rtmp"}return Object.keys(t).forEach((function(e){""===t[e]&&delete t[e]})),t}}};return t.initPlaylist=function(e,t){OvenPlayerConsole.log("PlaylistManager setPlaylist() ",e);var a=(i().isArray(e)?e:[e]).map((function(e){i().isArray(e.tracks)||delete e.tracks;var n=Object.assign({},{sources:[],tracks:[],title:""},e);n.sources!==Object(n.sources)||i().isArray(n.sources)||(n.sources=[o(n.sources)]),i().isArray(n.sources)&&0!==n.sources.length||(n.sources=[o(n)]),i().isArray(n.sources)&&0!==n.sources.length||(e.levels?n.sources=e.levels:n.sources=[o(e)]);for(var a=0;a<n.sources.length;a++){var A,s=n.sources[a];if(s){var c=s.default;s.default=!!c&&"true"===c.toString(),n.sources[a].label||(n.sources[a].label=n.sources[a].type+"-"+a.toString()),A=o(n.sources[a]),r.findProviderNameBySource(A)?n.sources[a]=A:n.sources[a]=null}}return n.sources=n.sources.filter((function(e){return!!e})),!n.title&&n.sources[0]&&n.sources[0].label&&(n.title=n.sources[0].label),t.isCurrentProtocolOnly()&&(n.sources=function(e){if(e){var t=n.sources[0].type;return i().filter(e,{type:t})}}(n.sources)),i().isArray(n.tracks)||(n.tracks=[]),i().isArray(n.captions)&&(n.tracks=n.tracks.concat(n.captions),delete n.captions),n.tracks=n.tracks.map((function(e){return!(!e||!e.file)&&Object.assign({},{kind:"captions",default:!1},e)})).filter((function(e){return!!e})),n})).filter((function(e){return e.sources&&e.sources.length>0}))||[];return n.playlist=a,a},t.getPlaylist=function(){return OvenPlayerConsole.log("PlaylistManager getPlaylist() ",n.playlist),n.playlist},t.getCurrentPlayList=function(){return n.playlist[n.currentIndex]?n.playlist[n.currentIndex]:[]},t.getCurrentPlaylistIndex=function(){return n.currentIndex},t.setCurrentPlaylist=function(t){return n.playlist[t]&&(n.currentIndex=t,e.trigger(he,n.currentIndex)),n.currentIndex},t.getCurrentSources=function(){return n.playlist[n.currentIndex]?(OvenPlayerConsole.log("PlaylistManager getCurrentSources() ",n.playlist[n.currentIndex].sources),n.playlist[n.currentIndex].sources):null},t.getCurrentAdTag=function(){if(n.playlist[n.currentIndex])return n.playlist[n.currentIndex].adTagUrl||""},t}(t),o=function(){var e=Xe(),t={},n={};OvenPlayerConsole.log("ProviderController loaded.");var r=function(e,n){t[e]||(OvenPlayerConsole.log("ProviderController _registerProvider() ",e),t[e]=n)},o={html5:function(){var e=En;return r(ce,e),{name:ce,provider:e}},webrtc:function(){var e=xn;return r(ue,e),{name:ue,provider:e}},dash:function(){var e=In;return r(le,e),{name:le,provider:e}},hls:function(){var e=Sn;return r(fe,e),{name:fe,provider:e}}};return n.loadProviders=function(t){var n=e.findProviderNamesByPlaylist(t);return OvenPlayerConsole.log("ProviderController loadProviders() ",n),n?Promise.all(n.filter((function(e){return!!o[e]})).map((function(e){return o[e]()}))):Promise.reject(je.codes[101])},n.findByName=function(e){return OvenPlayerConsole.log("ProviderController findByName() ",e),t[e]},n.getProviderBySource=function(t){var r=e.findProviderNameBySource(t);return OvenPlayerConsole.log("ProviderController getProviderBySource() ",r),n.findByName(r)},n.isSameProvider=function(t,n){return OvenPlayerConsole.log("ProviderController isSameProvider() ",e.findProviderNameBySource(t),e.findProviderNameBySource(n)),e.findProviderNameBySource(t)===e.findProviderNameBySource(n)},n}(),s=Y(),c=function(e,t){var n={},r=_e(e),o="";return OvenPlayerConsole.log("MediaManager loaded. browser : ",t),n.createMedia=function(e,t){return n.empty(),i=t.isLoop(),a=t.isAutoStart(),(o=document.createElement("video")).setAttribute("disableremoteplayback",""),o.setAttribute("webkit-playsinline","true"),o.setAttribute("playsinline","true"),i&&o.setAttribute("loop",""),a&&o.setAttribute("autoplay",""),r.append(o),o;var i,a},n.createAdContainer=function(){var e=document.createElement("div");return e.setAttribute("class","op-ads"),r.append(e),e},n.empty=function(){OvenPlayerConsole.log("MediaManager removeElement()"),r.removeChild(o),o=null},n.destroy=function(){r.removeChild(),r=null,o=null},n}(e,s),u="",l="",f="",p=function(e){OvenPlayerConsole.log("runNextPlaylist");var r=e,o=!!n.getPlaylist()[r];l.setSourceIndex(0),l.setVolume(u.getVolume()),o?(n.setCurrentPlaylist(r),d()):t.trigger(ve,null)},d=function(e){return o.loadProviders(n.getCurrentPlayList()).then((function(e){if(e.length<1)throw je.codes[101];u&&(u.destroy(),u=null),f&&(f.destroy(),f=null),f=function(e,t){var n={},r=[],o=-1,a=K(),A=!0;OvenPlayerConsole.log("Caption Manager >> ",t);var s=function(e,t){return e.data=t||[],e.name=e.label||e.name||e.language,e.id=function(e,t){var n,o=e.kind||"cc";return n=e.default||e.defaulttrack?"default":e.id||o+t,A&&(c(r.length||0),A=!1),n}(e,r.length),r.push(e),e.id},c=function(t){o=t,e.trigger(Pe,o)};if(e.getConfig().playlist&&e.getConfig().playlist.length>0){var u=e.getConfig().playlist[t];if(u&&u.tracks&&u.tracks.length>0)for(var l=function(t){var n=u.tracks[t];Ge(n.kind)&&!i().findWhere(n,{file:n.file})&&a.load(n,n.lang,(function(e){e&&e.length>0&&s(n,e)}),(function(t){var n=je.codes[305];n.error=t,e.trigger(Ce,n)}))},f=0;f<u.tracks.length;f++)l(f)}return e.on(Le,(function(t){var n=t.position;if(o>-1&&r[o]){var a=i().filter(r[o].data,(function(e){return n>=e.startTime&&(!e.endTime||n)<=e.endTime}));a&&a.length>0&&e.trigger(Fe,a[0])}})),n.flushCaptionList=function(e){r=[],c(e)},n.getCaptionList=function(){return r||[]},n.getCurrentCaption=function(){return o},n.setCurrentCaption=function(e){if(!(e>-2&&e<r.length))return null;c(e)},n.addCaption=function(t){Ge(t.kind)&&!i().findWhere(a,{file:t.file})&&a.load(t,(function(e){e&&e.length>0&&s(t,e)}),(function(t){var n=errors[305];n.error=t,e.trigger(Ce,n)}))},n.removeCaption=function(e){return e>-1&&e<r.length?(r.splice(e,1),r):null},n.destroy=function(){r=[],a=null,e.off(Le,null,n)},n}(t,n.getCurrentPlaylistIndex()),OvenPlayerConsole.log("API : init() captions");var r=et(n.getCurrentSources(),l),o=e[r].name;OvenPlayerConsole.log("API : init() provider",o),u=e[r].provider(c.createMedia(o,l),l,n.getCurrentAdTag()),o===pe&&Object.assign(t,function(e){return{externalCallbackCreep:function(t){return t.name&&t.data?e.triggerEventFromExternal(t.name,t.data):null}}}(u)),u.on("all",(function(e,r){if(e===Ce&&l.getConfig().autoFallback&&t.getCurrentSource()+1<t.getSources().length)return t.pause(),void t.setCurrentSource(t.getCurrentSource()+1);"complete"===e&&p(n.getCurrentPlaylistIndex()+1),e===Oe&&l.isAutoStart()&&t.play(),t.trigger(e,r)}))})).then((function(){u.preload(n.getCurrentSources(),e).then((function(){})).catch((function(e){if(e&&e.code&&je.codes[e.code])t.trigger(Ce,je.codes[e.code]);else{var n=je.codes[100];n.error=e,t.trigger(Ce,n)}}))})).catch((function(e){if(e&&e.code&&je.codes[e.code])t.trigger(Ce,je.codes[e.code]);else{var n=je.codes[100];n.error=e,t.trigger(Ce,n)}}))};return t.init=function(r){r||(r={}),r.mediaContainer=e,r.browser=s,l=function(e,t){OvenPlayerConsole.log("Configurator loaded.",e);var n=function(e){!function(e){Object.keys(e).forEach((function(t){"id"!==t&&(e[t]=function(e){if(void 0===e)return null;if("string"==typeof e&&e.length<6){var t=e.toLowerCase();if("true"===t)return!0;if("false"===t)return!1;if(!isNaN(Number(e))&&!isNaN(parseFloat(e)))return Number(e)}return e}(e[t]))}))}(e);var t=Object.assign({},{mediaContainer:"",playbackRates:[2,1.5,1,.5,.25],playbackRate:1,mute:!1,volume:100,loop:!1,controls:!0,autoStart:!1,autoFallback:!0,timecode:!0,sourceIndex:-1,browser:"",hidePlaylistIcon:!1,rtmpBufferTime:1,rtmpBufferTimeMax:3,adClient:"googleima",currentProtocolOnly:!1,systemText:null,lang:"en",loadingRetryCount:0,expandFullScreenUI:!0,fullscreenOption:null,showBigPlayButton:!0},e),n=[];t.systemText&&(n=i().isArray(t.systemText)?t.systemText:[t.systemText]);for(var r=0;r<n.length;r++)if(n[r].lang){var o=i().findWhere(Ye,{lang:n[r].lang});o?Object.assign(o,n[r]):((o=i().findWhere(Ye,{lang:"en"})).lang=n[r].lang,Ye.push(Object.assign(n[r],o)))}t.systemText=i().findWhere(Ye,{lang:t.lang});var a=t.playbackRates;(a=a.filter((function(e){return i().isNumber(e)&&e>=.25&&e<=4})).map((function(e){return Math.round(4*e)/4}))).indexOf(1)<0&&a.push(1),a.sort(),t.playbackRates=a,t.rtmpBufferTime=t.rtmpBufferTime>10?10:t.rtmpBufferTime,t.rtmpBufferTimeMax=t.rtmpBufferTimeMax>50?50:t.rtmpBufferTimeMax,t.playbackRates.indexOf(t.playbackRate)<0&&(t.playbackRate=1);var A=t.playlist;if(A)i().isArray(A.playlist)&&(t.feedData=A,t.playlist=A.playlist);else{var s=i().pick(t,["title","description","type","image","file","sources","tracks","host","application","stream","adTagUrl"]);t.playlist=[s]}return delete t.duration,t}(e);return{getConfig:function(){return n},getAdClient:function(){return n.adClient},setConfig:function(e,t){n[e]=t},getContainer:function(){return n.mediaContainer},getPlaybackRate:function(){return n.playbackRate},setPlaybackRate:function(e){return n.playbackRate=e,e},getQualityLabel:function(){return n.qualityLabel},setQualityLabel:function(e){n.qualityLabel=e},isCurrentProtocolOnly:function(){return n.currentProtocolOnly},getSourceIndex:function(){return n.sourceIndex},setSourceIndex:function(e){n.sourceIndex=e},setTimecodeMode:function(e){n.timecode!==e&&(n.timecode=e,t.trigger(Ue,e))},isTimecodeMode:function(){return n.timecode},getRtmpBufferTime:function(){return n.rtmpBufferTime},getRtmpBufferTimeMax:function(){return n.rtmpBufferTimeMax},setMute:function(e){n.mute=e},isMute:function(){return n.mute},getVolume:function(){return n.volume},setVolume:function(e){n.volume=e},isLoop:function(){return n.loop},isAutoStart:function(){return n.autoStart},isControls:function(){return n.controls},getPlaybackRates:function(){return n.playbackRates},getBrowser:function(){return n.browser},getSystemText:function(){return n.systemText},getLanguage:function(){return n.lang},getPlaylist:function(){return n.playlist},setPlaylist:function(e){return i().isArray(e)?n.playlist=e:n.playlist=[e],n.playlist}}}(r,t),OvenPlayerConsole.log("API : init()"),OvenPlayerConsole.log("API : init() config : ",l),je.codes=l.getSystemText().api.error,n.initPlaylist(l.getPlaylist(),l),OvenPlayerConsole.log("API : init() sources : ",n.getCurrentSources()),d(),setTimeout((function(){t.trigger(de)}))},t.getProviderName=function(){return u?u.getName():null},t.getProvider=function(){return u},t.getMseInstance=function(){return u?u.getMse():null},t.getConfig=function(){return OvenPlayerConsole.log("API : getConfig()",l.getConfig()),l.getConfig()},t.getBrowser=function(){return l.getBrowser()},t.setTimecodeMode=function(e){OvenPlayerConsole.log("API : setTimecodeMode()",e),l.setTimecodeMode(e)},t.isTimecodeMode=function(){return OvenPlayerConsole.log("API : isTimecodeMode()"),l.isTimecodeMode()},t.getFramerate=function(){if(OvenPlayerConsole.log("API : getFramerate()"),u)return u.getFramerate()},t.seekFrame=function(e){return u?(OvenPlayerConsole.log("API : seekFrame()",e),u.seekFrame(e)):null},t.getDuration=function(){return u?(OvenPlayerConsole.log("API : getDuration()",u.getDuration()),u.getDuration()):null},t.getDvrWindow=function(){return u?(OvenPlayerConsole.log("API : getDvrWindow()",u.getDvrWindow()),u.getDvrWindow()):null},t.getPosition=function(){return u?(OvenPlayerConsole.log("API : getPosition()",u.getPosition()),u.getPosition()):null},t.getVolume=function(){return u?(OvenPlayerConsole.log("API : getVolume()",u.getVolume()),u.getVolume()):null},t.setVolume=function(e){if(!u)return null;OvenPlayerConsole.log("API : setVolume() "+e),u.setVolume(e)},t.setMute=function(e){return u?(OvenPlayerConsole.log("API : setMute() "+e),u.setMute(e)):null},t.getMute=function(){return u?(OvenPlayerConsole.log("API : getMute() "+u.getMute()),u.getMute()):null},t.load=function(e){return OvenPlayerConsole.log("API : load() ",e),e&&(l.setSourceIndex(0),u&&u.getQualityLevels().length>0&&u.setCurrentQuality(0),"sources"in e?l.setPlaylist(e):l.setPlaylist({sources:e}),n.initPlaylist(l.getPlaylist(),l)),d()},t.play=function(){if(!u)return null;OvenPlayerConsole.log("API : play() "),u.metaLoaded()||l.isAutoStart()?u.play():t.once(Oe,(function(){u.play()}))},t.pause=function(){if(!u)return null;OvenPlayerConsole.log("API : pause() "),u.pause()},t.seek=function(e){if(!u)return null;OvenPlayerConsole.log("API : seek() "+e),u.seek(e)},t.setPlaybackRate=function(e){return u?(OvenPlayerConsole.log("API : setPlaybackRate() ",e),u.setPlaybackRate(l.setPlaybackRate(e))):null},t.getPlaybackRate=function(){return u?(OvenPlayerConsole.log("API : getPlaybackRate() ",u.getPlaybackRate()),u.getPlaybackRate()):null},t.getPlaylist=function(){return OvenPlayerConsole.log("API : getPlaylist() ",n.getPlaylist()),n.getPlaylist()},t.getCurrentPlaylist=function(){return OvenPlayerConsole.log("API : getCurrentPlaylist() ",n.getCurrentPlaylistIndex()),n.getCurrentPlaylistIndex()},t.setCurrentPlaylist=function(e){OvenPlayerConsole.log("API : setCurrentPlaylist() ",e),p(e)},t.getSources=function(){return u?(OvenPlayerConsole.log("API : getSources() ",u.getSources()),u.getSources()):null},t.getCurrentSource=function(){return u?(OvenPlayerConsole.log("API : getCurrentSource() ",u.getCurrentSource()),u.getCurrentSource()):null},t.setCurrentSource=function(e){if(!u)return null;OvenPlayerConsole.log("API : setCurrentSource() ",e);var n=u.getPosition();return l.setSourceIndex(e),d(n).then((function(){t.trigger(Me,{currentSource:e})})),e},t.getQualityLevels=function(){return u?(OvenPlayerConsole.log("API : getQualityLevels() ",u.getQualityLevels()),u.getQualityLevels()):null},t.getCurrentQuality=function(){return u?(OvenPlayerConsole.log("API : getCurrentQuality() ",u.getCurrentQuality()),u.getCurrentQuality()):null},t.setCurrentQuality=function(e){return u?(OvenPlayerConsole.log("API : setCurrentQuality() ",e),u.setCurrentQuality(e)):null},t.getAudioTracks=function(){return u?(OvenPlayerConsole.log("API : getAudioTracks() ",u.getAudioTracks()),u.getAudioTracks()):null},t.getCurrentAudioTrack=function(){return u?(OvenPlayerConsole.log("API : getCurrentAudioTrack() ",u.getCurrentAudioTrack()),u.getCurrentAudioTrack()):null},t.setCurrentAudioTrack=function(e){return u?(OvenPlayerConsole.log("API : setCurrentAudioTrack() ",e),u.setCurrentAudioTrack(e)):null},t.isAutoQuality=function(){return u?(OvenPlayerConsole.log("API : isAutoQuality()"),u.isAutoQuality()):null},t.setAutoQuality=function(e){return u?(OvenPlayerConsole.log("API : setAutoQuality() ",e),u.setAutoQuality(e)):null},t.getCaptionList=function(){return f?(OvenPlayerConsole.log("API : getCaptionList() ",f.getCaptionList()),f.getCaptionList()):null},t.getCurrentCaption=function(){return f?(OvenPlayerConsole.log("API : getCurrentCaption() ",f.getCurrentCaption()),f.getCurrentCaption()):null},t.setCurrentCaption=function(e){if(!f)return null;OvenPlayerConsole.log("API : setCurrentCaption() ",e),f.setCurrentCaption(e)},t.addCaption=function(e){return f?(OvenPlayerConsole.log("API : addCaption() "),f.addCaption(e)):null},t.removeCaption=function(e){return f?(OvenPlayerConsole.log("API : removeCaption() ",e),f.removeCaption(e)):null},t.getBuffer=function(){if(!u)return null;OvenPlayerConsole.log("API : getBuffer() ",u.getBuffer()),u.getBuffer()},t.getState=function(){return u?(OvenPlayerConsole.log("API : getState() ",u.getState()),u.getState()):null},t.stop=function(){if(!u)return null;OvenPlayerConsole.log("API : stop() "),u.stop()},t.remove=function(){OvenPlayerConsole.log("API : remove() "),f&&(f.destroy(),f=null),u&&(u.destroy(),u=null),c&&(c.destroy(),c=null),t.trigger(ge),t.off(),o=null,n=null,l=null,OvenPlayerConsole.log("API : remove() - currentProvider, providerController, playlistManager, playerConfig, api event destroed. "),Ln.removePlayer(t)},t.getMediaElement=function(){return u.getMediaElement()},t.getVersion=function(){return r},t},Ln=(cn=(sn={}).playerList=[],sn.create=function(e,t){window.OvenPlayerConsole&&0!==Object.keys(window.OvenPlayerConsole).length||(window.OvenPlayerConsole={},OvenPlayerConsole.log=function(){});var n=Ke(e),r=Tn(n);return r.init(t),cn.push(r),r},sn.getPlayerList=function(){return cn},sn.getPlayerByContainerId=function(e){for(var t=0;t<cn.length;t++)if(cn[t].getContainerId()===e)return cn[t];return null},sn.getPlayerByIndex=function(e){return cn[e]||null},sn.removePlayer=function(e){for(var t=0;t<cn.length;t++)cn[t]===e&&cn.splice(t,1)},sn.generateWebrtcUrls=function(e){return(i().isArray(e)?e:[e]).map((function(e,t){if(e.host&&He(e.host)&&e.application&&e.stream)return{file:e.host+"/"+e.application+"/"+e.stream,type:"webrtc",label:e.label?e.label:"webrtc-"+(t+1)}}))},sn.debug=function(e){return window.OvenPlayerConsole=e?{log:window.console.log}:{log:function(){}},e},sn),Rn=function(e,t){var n='<div id="'+t.id+'" class="op-setting-panel '+(t.isRoot?"animated fadeIn":"")+'" style="max-height: '+t.height+'px"><div class="op-setting-title-container"><div class="op-setting-title" tabindex="0">'+(t.isRoot?"":'<span class="op-setting-title-previcon">&lt;</span>')+'<span class="op-setting-title-title">'+t.title+'</span></div></div><div class="op-setting-item-container">';return i().forEach(t.body,(function(e){n+=Qn(e,t.useCheck)})),n+="</div></div>"},Qn=function(e,t){return'<div class="op-setting-item" op-panel-type="'+e.panelType+'" op-data-value="'+e.value+'">'+(t?'<span class="op-setting-item-checked '+(e.isCheck?"op-show":"")+'">&#x2713;</span>':"")+'<span class="op-setting-item-title">'+e.title+"</span>"+(e.hasNext?'<span class="op-setting-item-nexticon">&gt;</span><span class="op-setting-item-value">'+e.description+"</span>":"")+"</div>"},On=function(e,t){return'<div class="op-playlist-card '.concat(t?"active":"",'" data-index="').concat(e.index,'">')+'<div class="op-playlist-card-thumbnail '.concat(e.image?"":"empty",'">').concat(e.image?"<img src=".concat(e.image,">"):'<i class="op-con op-empty-video"></i>'," ").concat(e.duration?'<span class="op-badge">'.concat(s(e.duration),"</span>"):""," </div>")+'<div class="op-playlist-card-title">'.concat(e.title,"</div>")+"</div>"},Mn={TextViewTemplate:function(e){return'<div class="textView" style="padding : 5px; background: red; position : absolute; top: 0;">'+"<h3>".concat(e,"</h3>")+'<button type="button" class="btn">button</button></div>'},ViewTemplate:function(e,t){return'<div class="ovenplayer op-wrapper" tabindex="-1" '.concat(t?'id = "'.concat(t,'"'):"",">")+'<div class="op-ratio"></div><div class="op-player op-clear"><div class="op-core-ui-wrapper op-clear"><div class="op-media-element-container op-clear"></div><div class="op-ui op-clear"></div></div></div></div>'},HelpersTemplate:function(e,t){return'<div class="op-helpers-container"></div>'},BigButtonTemplate:function(e,t){return'<div class="op-bigbutton-container ">'+"".concat(t===ee?'<i class="op-con op-pause-big"></i>':"")+"".concat(t===$?'<i class="op-bigbutton op-con op-play-big"></i>':"")+"".concat(t===X?'<i class="op-bigbutton op-con op-play-big"></i>':"")+"".concat(t===q?'<i class="op-bigbutton op-con op-replay-big"></i>':"")+"</div>"},ThumbnailTemplate:function(e,t){return'<div class="op-thumbnail-container"><div class="op-thumbnail-wrapper">'+"".concat(t.title?'<div class="op-thumbnail-header">'.concat(t.title,"</div>"):"")+"</div></div>"},WaterMarkTemplate:function(e,t){return'<div class="op-watermark-container"><div class="op-watermark">'+"".concat(t.waterMark.image?'<img src="'.concat(t.waterMark.image,'">'):"")+"".concat(t.waterMark.text?'<span class="op-watermark-text">'.concat(t.waterMark.text,"</span>"):"")+"</div></div>"},MessageBoxTemplate:function(e,t){return'<div class="op-message-box op-clear '.concat(!0===t.dontClose?"op-message-box-default-cursor":"",'">')+'<div class="op-message-container ">'+'<div class="op-message-text">'.concat(t.message)+"".concat(t.description?'<div class="op-message-description">'.concat(t.description,"</div>"):"")+"</div>"+"".concat(t.iconClass?'<div class="op-message-icon"><i class="op-con '.concat(t.iconClass,'"></i></div>'):"")+"</div></div>"},SpinnerTemplate:function(e){return'<div class="op-spinner-container"><div class="op-spinner"></div></div>'},ContextPanelTemplate:function(e){return'<div class="op-context-panel animated fadeIn"><div class="op-context-item" tabindex="1">'+'<span class="op-context-item-text">'.concat(e.context," ").concat(r,"</span>")+"</div></div>"},CaptionViewerTemplate:function(e){return'<div class="op-caption-viewer">    <div class="op-caption-text-container">        <pre class="op-caption-text"></pre>      </div></div>'},ControlsTemplate:function(e,t){return'<div class="op-controls-container op-clear"><div class="op-bottom-panel op-clear"><div class="op-gradient-bottom op-clear"></div><div class="op-controls op-clear"><div class="op-left-controls op-clear"></div><div class="op-right-controls op-clear">'+'<div class="playlist-holder op-navigators op-clear">'.concat(t?'<button class="op-button op-playlist-button"><i class="op-con op-playlist-icon"></i></button>':"","</div>")+'<div class="setting-holder op-navigators op-clear"></div><div class="fullscreen-holder op-navigators op-clear"></div></div></div><div class="op-progressbar-container op-clear"></div></div></div>'},VolumeButtonTemplate:function(e){return'<div class="op-navigators op-volume-controller"><button class="op-button op-volume-button"><i class="op-con op-volume-max"></i><i class="op-con op-volume-small"></i><i class="op-con op-volume-mute"></i></button><div class="op-volume-slider-container"><div class="op-volume-silder"><div class="op-volume-slider-bg"></div><div class="op-volume-slider-value"></div><div class="op-volume-slider-handle"></div></div></div></div>'},ProgressBarTemplate:function(e){return'<div class="op-progressbar" tabindex="0"><div class="op-progressbar-padding"></div><div class="op-progress-list"><div class="op-load-progress"></div><div class="op-play-progress op-play-background-color"></div><div class="op-hover-progress"></div></div><div class="op-progressbar-knob-container"><div class="op-progressbar-knob op-play-background-color"></div></div><span class="op-progressbar-preview"></span><span class="op-progressbar-time">00:00</span></div>'},PlayButtonTemplate:function(e){return'<div class="op-navigators op-play-controller"><button class="op-button op-play-button" type="button"><i class="op-con op-play"></i><i class="op-con op-pause" style="display: none;"></i><i class="op-con op-replay" style="display: none;"></i></button><button class="op-button op-seek-button op-seek-button-back" type="button"><i class="op-con op-seek-back"></i><span class="op-seek-back-text">10</span></button><button class="op-button op-seek-button op-seek-button-forward" type="button"><i class="op-con op-seek-forward"></i><span class="op-seek-forward-text">10</span></button></div>'},SettingButtonTemplate:function(e){return'<button class="op-button op-setting-button"><i class="op-con op-setting"></i></button>'},FrameButtonsTemplate:function(e){return'<div class="op-frame-buttons"><button class="op-button op-frame-button" op-data-value="-5"><div class="frame-icon"><span class="btn-text">-5f</span></div></button><button class="op-button op-frame-button" op-data-value="-1"><div class="frame-icon"><span class="btn-text">-1f</span></div></button><button class="op-button op-frame-button" op-data-value="+1"><div class="frame-icon reverse"><span class="btn-text">+1f</span></div></button><button class="op-button op-frame-button" op-data-value="+5"><div class="frame-icon reverse"><span class="btn-text">+5f</span></div></button></div>'},TimeDisplayTemplate:function(e,t){return'<div class="op-navigators op-time-display">'+(t.duration===1/0?'<span class="op-live-badge" disabled="disabled">'+("webrtc"===t.type?t.isP2P?'<span class="op-live-badge-lowlatency">'.concat(e.controls.low_latency_p2p,"</span>"):'<span class="op-live-badge-lowlatency">'.concat(e.controls.low_latency_live,"</span>"):'<span class="op-live-text" title="Skip ahead to live.">'.concat(e.controls.live,"</span>"))+"</span>":'<span class="op-time-current">00:00</span><span class="op-time-separator"> / </span><span class="op-time-duration">00:00</span>')+"</div>"},FullScreenButtonTemplate:function(e){return'<button class="op-button op-fullscreen-button"><i class="op-con op-fullscreen-expand"></i><i class="op-con op-fullscreen-compress"></i></button>'},PanelsTemplate:Rn,SpeedPanelTemplate:Rn,SourcePanelTemplate:Rn,QualityPanelTemplate:Rn,AudioTrackPanelTemplate:Rn,CaptionPanelTemplate:Rn,TimeDisplayPanelTemplate:Rn,PlaylistPanelTemplate:function(e,t){return'<div class="op-playlist" tabindex="0">'+'<div class="op-playlist-header">'.concat(e.playlist,' <i class="op-con op-close-icon btn-close"></i></div>')+'<div class="op-playlist-body"><div class="op-playlist-body-container"><div class="op-playlist-body-center"><div class="op-playlist-body-row"></div></div></div><div class="op-playlist-body-arrows"><i class="op-con op-arrow-left btn-left"></i><i class="op-con op-arrow-right btn-right"></i></div></div></div>'}},Dn=function(e,t,n,r,o,a,A,s){var c,u=i().isElement(e)?_e(e):e,l={},f=null,p={};p.data=r;var d=function(e){var t=document.createElement("div");return t.innerHTML=e,c=_e(t.firstChild),t.firstChild};return n&&n.systemText&&(f=n.systemText.ui),s?u.replace(d(Mn[t+"Template"](f,r))):u.append(d(Mn[t+"Template"](f,r))),a&&a(c,p),Object.keys(o).forEach((function(e){var t=e.split(" "),n=t[0].replace(/ /gi,""),r=t[1].replace(/ /gi,""),i="";if(i="document"===r||"window"===r||"body"===r?_e(r):c.find(r)||(c.hasClass(r.replace(".",""))?c:null),!(n&&r&&i))return!1;var a=Object.keys(l).length++,A=function(t){return o[e](t,c,p)};l[a]={name:n,target:r,callback:A};var s=null;n.indexOf("touch")>-1&&(s={passive:!0});var u=i.get().length;if(u>1)for(var f=i.get(),d=0;d<u;d++)f[d].addEventListener(n,A,s);else i.get().addEventListener(n,A,s)})),p.destroy=function(){Object.keys(l).forEach((function(e){var t=l[e],n="",r=(n="document"===t.target||"window"===t.target||"body"===t.target?_e(t.target):c.find(t.target)||(c.hasClass(t.target.replace(".",""))?c:null)).get().length;if(r>1)for(var o=n.get(),i=0;i<r;i++)o[i].removeEventListener(t.name,t.callback);else n.get().removeEventListener(t.name,t.callback);delete l[e]})),c&&(s?(c.removeChild(),c.removeAttribute("class")):c.remove()),A&&A(p)},p},Fn=function(e,t,n,r,o,i,a,A){var s="",c={message:n,description:r,iconClass:i,dontClose:A},u={"click .op-message-text":function(e,t,n){e.stopPropagation(),A||(s&&clearTimeout(s),a&&a(),n.destroy())},"click .op-con":function(e,t,n){e.preventDefault(),A||(s&&clearTimeout(s),a&&a(),n.destroy())}};return Dn(e,"MessageBox",t.getConfig(),c,u,(function(e,t){o&&(s=setTimeout((function(){t.destroy()}),o||5e3))}),(function(){}))},Pn=function(e,t){var n,r,o=!1,a="",A="",s="",c=null,u=t.getConfig().image||t.getConfig().title,l=t.getConfig().waterMark&&t.getConfig().waterMark.image||t.getConfig().waterMark&&t.getConfig().waterMark.text,f=!1;return Dn(e,"Helpers",t.getConfig(),null,{},(function(e,p){var d=!1,g=-1;function h(n){t.getConfig().showBigPlayButton&&(t.getState()!==X&&t.getState()!==q||(A&&A.destroy(),a&&a.destroy(),a=function(e,t,n){var r={"click .op-bigbutton-container":function(e){e.preventDefault(),e.stopPropagation();var n=t.getState(),r=t.getPlaylist(),o=t.getCurrentPlaylist();n===X||n===$?t.play():n===te?t.setCurrentSource(t.getCurrentSource()):n===q&&r.length===o+1&&(t.seek(0),t.play())}};return Dn(e,"BigButton",t.getConfig(),n,r,(function(e,t,n){}),(function(){}))}(e,t,n)))}function v(){var r=t.getMediaElement();r&&(r.poster=""),t.getConfig().image&&(r.poster=t.getConfig().image),n&&n.destroy(),n=function(e,t,n){return Dn(e,"Thumbnail",t.getConfig(),n,{},(function(e,t){}),(function(){}))}(e,t,t.getConfig())}s=function(e,t){var n="";return Object.assign(Dn(e,"Spinner",t.getConfig(),null,{},(function(e,t){n=e}),(function(){})),{show:function(e){e?n.show():n.hide()}})}(e,t),function(e,t,n){_e(t.getContainerElement()),Dn(e,"CaptionViewer",t.getConfig(),n,{},(function(e,n,r){var o=!1,i=0;t.on(Pe,(function(t){t>-1?o=!1:(o=!0,e.find(".op-caption-text").text(""))}),r),t.on(Fe,(function(t){if(!o&&t&&t.text){var n=t.endTime-t.startTime;i&&clearTimeout(i),e.find(".op-caption-text").html(t.text),n&&(i=setTimeout((function(){e.find(".op-caption-text").text("")}),1e3*n))}}),r)}),(function(n){e.find(".op-caption-text").text(""),t.off(Pe,null,n),t.off(Fe,null,n)}))}(e,t),t.on(de,(function(){u&&v(),l&&(r&&r.destroy(),r=function(e,t,n){var r=null,o=null;return Dn(e,"WaterMark",t.getConfig(),n,{},(function(e,n){r=e.find(".op-watermark"),o=e.find(".op-watermark-text");var a=t.getConfig().waterMark,A=a.position||"top-right",s=a.y||"5%",c=a.x||"2.8125%";r.css(A.split("-")[0],s),r.css(A.split("-")[1],c);var u=a.width||"auto",l=a.height||"auto";r.css("width",u),r.css("height",l);var f=a.opacity||.7;r.css("opacity",f),a.text&&a.font&&i().each(a.font,(function(e,t){o.css(t,e)}))}),(function(){}))}(e,t,t.getConfig())),o||(h($),o=!0)}),p),t.on(ke,(function(n){n.message&&(a&&a.destroy(),A&&A.destroy(),c=Fn(e,t,n.message,null,n.timer,n.iconClass,n.onClickCallback,!1),t.once(Qe,(function(e){!e.mute&&c&&c.destroy()}),p))}),p),t.on(ye,(function(e){e&&e.newstate&&(e.newstate===X&&A&&A.destroy(),e.newstate===ee||e.newstate===ie?(f=!1,A&&A.destroy(),a&&a.destroy(),n&&n.destroy(),d||s.show(!1)):e.newstate===q?(s.show(!1),h(e.newstate)):e.newstate===re||e.newstate===ne||"adLoading"===e.newstate?(f=!1,A&&A.destroy(),a&&a.destroy(),s.show(!0)):d||s.show(!1))}),p),t.on(Me,(function(){u&&v()})),t.on(De,(function(e){if(e.currentQuality<0)return!1;e.isAuto?(d=!1,s.show(!1)):"request"===e.type?(g=e.currentQuality,d=!0,s.show(!0)):"render"===e.type&&g===e.currentQuality&&(d=!1,s.show(!1))}),p),t.on(Ce,(function(n){if(510===n.code&&(f=!0),101===n.code&&0===t.getPlaylist().length&&(f=!0),!f){var r="",o="";a&&a.destroy(),n&&n.code&&n.code>=100&&n.code<1e3?(r=n.message,100===n.code&&(o=n.error.toString())):r="Can not play due to unknown reasons.",OvenPlayerConsole.log("error occured : ",n),function(n,r,o,i,s,c){a&&a.destroy(),A&&A.destroy(),A=Fn(e,t,n,r,null,"op-warning",null,!0)}(r,o)}}),p),t.on(me,(function(e){var n="Because the network connection is unstable, the following media source will be played.";t.getCurrentSource()+1===t.getQualityLevels().length&&(n="Network connection is unstable. Check the network connection."),OvenPlayerConsole.log(n)}),p),t.on(ve,(function(){u&&v()}),p)}),(function(e){t.off(de,null,e),t.off(ye,null,e),t.off(ke,null,e),t.off(Ce,null,e),t.off(me,null,e),t.off(ve,null,e),t.off(he,null,e)}))},Un=[],Nn=function(){var e={},t=function(){for(var e=0;e<Un.length;e++)Un[e].data.setFront(!1);Un.length&&Un[Un.length-1].data.setFront(!0)};return e.clear=function(){i().each(Un,(function(e){e.destroy()})),Un=[],t()},e.removeLastItem=function(){Un.pop().destroy(),t()},e.add=function(e){Un.push(e),t()},e.size=function(){return Un.length},e},Wn={speed:"Speed",speedUnit:"x",source:"Source",quality:"Quality",audioTrack:"Audio",caption:"Caption",display:"Display"},jn=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn(),a=t.getConfig();function A(e,t){var n={id:"panel-"+(new Date).getTime(),title:"",body:[],useCheck:!0,panelType:t,height:r.height()-r.find(".op-bottom-panel").height()};if(n.title=Wn[t],"speed"===t)for(var o=e.getConfig().playbackRates,i=e.getPlaybackRate(),a=0;a<o.length;a++){var A={title:o[a]+Wn.speedUnit,isCheck:i===o[a],value:o[a],description:o[a],panelType:t};n.body.push(A)}else if("source"===t)for(var s=e.getSources(),c=0;c<s.length;c++){var u={title:s[c].label,isCheck:e.getCurrentSource()===c,value:c,panelType:t};n.body.push(u)}else if("quality"===t){var l=e.getQualityLevels();n.body.push({title:"AUTO",isCheck:e.isAutoQuality(),value:"AUTO",panelType:t});for(var f=0;f<l.length;f++){var p={title:l[f].label,isCheck:e.getCurrentQuality()===f,value:f,panelType:t};n.body.push(p)}}else if("audioTrack"===t)for(var d=e.getAudioTracks(),g=0;g<d.length;g++){var h={title:d[g].label,isCheck:d[g].index===e.getCurrentAudioTrack(),value:d[g].index,panelType:t};n.body.push(h)}else if("caption"===t){var v=e.getCaptionList();n.body.push({title:"OFF",isCheck:-1===e.getCurrentCaption(),value:-1,panelType:t});for(var m=0;m<v.length;m++){var C={title:v[m].label,isCheck:e.getCurrentCaption()===m,value:m,panelType:t};n.body.push(C)}}else if("display"===t)for(var y=["Play time","Framecode"],b=0;b<y.length;b++){var w={title:y[b],isCheck:e.isTimecodeMode()?"Play time"===y[b]:"Framecode"===y[b],value:y[b],panelType:t};n.body.push(w)}return n}a&&a.systemText&&Object.keys(Wn).forEach((function(e){Wn[e]=a.systemText.ui.setting[e]})),n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var s={"click .op-setting-item":function(a,s,c){if(a.preventDefault(),r.find("#"+n.id).hasClass("background"))return!1;var u=_e(a.currentTarget).attr("op-panel-type"),l=null;"speed"===u?l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var i={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");t.setPlaybackRate(parseFloat(i)),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"SpeedPanel",t.getConfig(),n,i,(function(e,t){}),(function(e){}))}(e,t,A(t,u)):"source"===u?l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var i={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");t.setCurrentSource(parseInt(i)),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"SourcePanel",t.getConfig(),n,i,(function(e,t){}),(function(e){}))}(e,t,A(t,u)):"quality"===u?l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var a={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");"AUTO"===i?t.setAutoQuality(!t.isAutoQuality()):t.setCurrentQuality(parseInt(i)),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"QualityPanel",t.getConfig(),n,a,(function(e,n){t.on(De,(function(e){var t=e.currentQuality;"render"===e.type&&i().forEach(r.find("#"+n.data.id).find(".op-setting-item").get(),(function(n){var r=_e(n);r.find(".op-setting-item-checked").hasClass("op-show")&&r.find(".op-setting-item-checked").removeClass("op-show"),t===parseInt(r.attr("op-data-value"))&&r.find(".op-setting-item-checked").addClass("op-show"),e.isAuto&&"AUTO"===r.attr("op-data-value")&&r.find(".op-setting-item-checked").addClass("op-show")}))}),n)}),(function(e){t.off(De,null,e)}))}(e,t,A(t,u)):"audioTrack"===u?l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var a={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");t.setCurrentAudioTrack(parseInt(i)),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"AudioTrackPanel",t.getConfig(),n,a,(function(e,n){t.on(We,(function(e){i().forEach(r.find("#"+n.data.id).find(".op-setting-item").get(),(function(t){var n=_e(t);n.find(".op-setting-item-checked").hasClass("op-show")&&n.find(".op-setting-item-checked").removeClass("op-show"),e.currentAudioTrack===parseInt(n.attr("op-data-value"))&&n.find(".op-setting-item-checked").addClass("op-show")}))}),n)}),(function(e){t.off(We,null,e)}))}(e,t,A(t,u)):"caption"===u?l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var i={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");t.setCurrentCaption(parseFloat(i)),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"CaptionPanel",t.getConfig(),n,i,(function(e,t){}),(function(e){}))}(e,t,A(t,u)):"display"===u&&(l=function(e,t,n){var r=_e(t.getContainerElement()),o=Nn();n.setFront=function(e){e?r.find("#"+n.id).removeClass("background"):r.find("#"+n.id).addClass("background")};var i={"click .op-setting-item":function(e,n,r){e.preventDefault();var i=_e(e.currentTarget).attr("op-data-value");t.setTimecodeMode("Play time"===i),o.clear()},"click .op-setting-title":function(e,t,n){e.preventDefault(),o.removeLastItem()}};return Dn(e,"TimeDisplayPanel",t.getConfig(),n,i,(function(e,t){}),(function(e){}))}(e,t,A(t,u))),o.add(l)},"click .op-setting-title":function(e,t,i){if(e.preventDefault(),r.find("#"+n.id).hasClass("background"))return!1;o.removeLastItem()}};return Dn(e,"Panels",t.getConfig(),n,s,(function(e,n){r.find(".op-setting-panel")&&r.find(".op-setting-panel").css("max-height",r.height()-r.find(".op-bottom-panel").height()+"px"),t.on(De,(function(e){var o=e.currentQuality;"render"===e.type&&r.find("#"+n.data.id).find(".op-setting-item")&&i().forEach(r.find("#"+n.data.id).find(".op-setting-item").get()||[],(function(e){var n=_e(e);if("quality"===n.attr("op-panel-type")){var r=t.getQualityLevels()[o];n.find(".op-setting-item-value").text(r.width+"x"+r.height+", "+kn(r.bitrate,!0,"bps"))}}))}),n),t.on(We,(function(e){i().forEach(r.find("#"+n.data.id).find(".op-setting-item").get()||[],(function(n){var r=_e(n);"audioTrack"===r.attr("op-panel-type")&&r.find(".op-setting-item-value").text(t.getAudioTracks()[e.currentAudioTrack].label)}))}),n)}),(function(e){t.off(De,null,e),t.off(We,null,e)}))},Yn={speed:"Speed",speedUnit:"x",source:"Source",quality:"Quality",audioTrack:"Audio",caption:"Caption",display:"Display"},Gn=function(e,t){var n,r="",o="",i="",a="",A="",c="",u=!1,l=!1,f=!1,p=t.getConfig().browser,d="Android"===p.os,g="iOS"===p.os,h=_e(t.getContainerElement()),v={};u=t.getPlaylist().length>1,!0===t.getConfig().hidePlaylistIcon&&(u=!1);var m={"mouseleave .op-controls":function(e,t,n){e.preventDefault(),r.setMouseDown(!1),t.find(".op-volume-slider-container").removeClass("active")},"click .op-playlist-button":function(e,n,r){e.preventDefault(),function(e,t){var n=_e(t.getContainerElement()),r="",o=t.getPlaylist(),i=o.length,a=6,A=0,s=[];function c(e){var n,A,c=Math.ceil(i/a),u=t.getCurrentPlaylist();s=o.slice(e*a,e*a+a),r.find(".op-playlist-body-row").removeChild(),r.find(".op-arrow-left").removeClass("disable"),r.find(".op-arrow-right").removeClass("disable");for(var l=0;l<s.length;l++){var f=e*a+l;s[l].index=f,r.find(".op-playlist-body-row").get().append((n=On(s[l],u===f),A=void 0,(A=document.createElement("div")).innerHTML=n,A.firstChild))}0===e&&r.find(".op-arrow-left").addClass("disable"),e+1===c&&r.find(".op-arrow-right").addClass("disable")}function u(){var e=t.getCurrentPlaylist();return Math.ceil((e+1)/a)-1}n.width()>576?a=6:n.width()<=576&&(a=1);var l={"click .btn-close":function(e,t,n){e.preventDefault(),n.destroy()},"click .op-arrow-left":function(e,t,n){e.preventDefault(),_e(e.target).hasClass("disable")||c(--A)},"click .op-arrow-right":function(e,t,n){e.preventDefault(),_e(e.target).hasClass("disable")||c(++A)}};Dn(e,"PlaylistPanel",t.getConfig(),o,l,(function(e,n){r=e,c(A=u()),t.on(Be,(function(e){"xsmall"===e&&6===a?(a=1,c(A=u())):"small"!==e&&"medium"!==e&&"large"!==e||1!==a||(a=6,c(A=u()))}),n),t.on(he,(function(e){c(A=u())}),n),e.get().addEventListener("click",(function(e){for(var n=e.target;n;){if(_e(n).hasClass("op-playlist-card"))return void t.setCurrentPlaylist(parseInt(_e(n).attr("data-index")));n=n.parentElement}}),!0)}),(function(e){t.off(Be,null,e),t.off(he,null,e)}))}(n,t)}};return Dn(e,"Controls",t.getConfig(),u,m,(function(e,u){function p(n,r){a&&a.destroy(),a=function(e,t,n,r){var o=_e(t.getContainerElement());t.getConfig().disableSeekUI&&e.addClass("op-progressbar-container-disabled");var i=0,a=!1,A=Nn(),c="",u=0,l="",f="",p="",d="",g="",h="",v=0,m="",C="",y=t.getBrowser().mobile,b=t.getMediaElement(),w=!1,E=!1;function B(e){var t=l.width(),n=t*e;p.css("width",n+"px"),d.css("left",n+"px");var r=(t-v)*e;g.css("left",r+"px"),i=n}function x(e){var t=l.width()*e;d.css("width",(0===e?e:t-i)+"px")}function k(e){var t=l.width(),n=l.offset().left,r=e.pageX;e.touches&&(r=e.pageX||e.touches[0].clientX);var o=(r-n)/t;return o<0?0:o>1?1:o}function I(){return b.seekable.end(b.seekable.length-1)-b.seekable.start(0)}function S(e,n){if(A.size()>0||-1===e)return m.hide(),void C.hide();if(m.show(),C.show(),w&&!E){var r=t.getDvrWindow()*(1-e);t.isTimecodeMode()?m.text("- "+s(r)):m.text("- "+Math.round(r*t.getFramerate()))}else if(w&&E){var o=I()*(1-e);t.isTimecodeMode()?m.text("- "+s(o)):m.text("- "+Math.round(o*t.getFramerate()))}else{var i=t.getDuration()*e;t.isTimecodeMode()?m.text(s(i)):m.text(Math.round(i*t.getFramerate()))}var a=m.width(),u=l.width(),f=u*e,p=n.pageX-l.offset().left;n.touches&&(p=(n.pageX||n.touches[0].clientX)-l.offset().left);var d=function(e){return p<e/2?0:u-p<e/2?u-e:f-e/2},g=d(a);if(m.css("left",g+"px"),t.getSources()[t.getCurrentSource()].gridThumbnail){var h=t.getConfig().gridThumbnail.thumbnailInterval,v=t.getConfig().gridThumbnail.originalThumbnailWidth,y=t.getConfig().gridThumbnail.originalThumbnailHeight,b=t.getConfig().gridThumbnail.columnCount,B=t.getConfig().gridThumbnail.rowCount,x=t.getConfig().gridThumbnail.resizeScale;C.css("width",v*x+"px"),C.css("height",y*x+"px"),C.css("background-size",v*x*b+"px "+y*x*B+"px");var k=Math.floor(second/h),S=Math.floor(k/(b*B)),T=Math.floor(k%(b*B)/b),L=k%(b*B)%b,R=-1*L*v*x,Q=-1*T*y*x;OvenPlayerConsole.log("Grid Thumbnail:",k+": "+S+"("+T+", "+L+")");var O=t.getSources()[t.getCurrentSource()].gridThumbnail[S];c!==O&&(C.css("background-image","url("+O+")"),c=O),C.css("background-position","left "+R+"px top "+Q+"px");var M=d(v*x);C.css("left",M+"px")}else C.hide()}function T(e){var n=(u||0)*e;if(w&&!E&&(n=u-t.getDvrWindow()+t.getDvrWindow()*e),w&&E){var r=I();n=u-r+r*e}var o=t.getSources()[t.getCurrentSource()].sectionStart;o&&o>0&&(n+=o),t.seek(n)}r&&r.type===fe&&r.duration===1/0&&(w=!0,t.getProviderName()===ce&&(E=!0));var L={"touchstart .op-progressbar":function(e){if(n)return!1;a=!0;var t=k(e);if(-1===t)return!1;B(t),x(0),T(t)},"touchmove .op-progressbar":function(e){if(a){var t=k(e);if(-1===t)return!1;B(t),x(0),T(t),S(t,e)}},"touchend .op-progressbar":function(e){a&&(a=!1),o.removeClass("op-progressbar-hover"),m.hide(),C.hide()},"mouseenter .op-progressbar":function(e,t,r){e.preventDefault(),y||(n||m.show(),o.addClass("op-progressbar-hover"))},"mouseleave .op-progressbar":function(e,t,n){e.preventDefault(),a=!1,o.removeClass("op-progressbar-hover"),m.hide(),C.hide(),x(0)},"mousedown .op-progressbar":function(e,t,r){if(e.preventDefault(),n||y)return!1;a=!0;var o=k(e);if(-1===o)return!1;B(o),x(0),T(o)},"mousemove .op-progressbar":function(e,t,r){if(e.preventDefault(),!a&&!n&&!y){var o=k(e);x(o),S(o,e)}if(a&&!y){var i=k(e);if(-1===i)return!1;B(i),x(0),T(i),S(i,e)}},"mouseup .op-progressbar":function(e,t,n){e.preventDefault(),a&&!y&&(a=!1,o.removeClass("op-progressbar-hover"))}};return t.getConfig().disableSeekUI&&(L={}),Dn(e,"ProgressBar",t.getConfig(),null,L,(function(e,r){l=e,f=e.find(".op-load-progress"),p=e.find(".op-play-progress"),d=e.find(".op-hover-progress"),g=e.find(".op-progressbar-knob-container"),h=e.find(".op-progressbar-knob"),v=h.width(),m=e.find(".op-progressbar-time"),C=e.find(".op-progressbar-preview"),n?t.on(Se,(function(e){e&&e.duration&&e.position&&(B(e.position/e.duration),e.duration)}),r):(t.on(Le,(function(e){if(e&&e.duration&&e.position){u=e.duration;var n=e.position/e.duration;if(w&&!E&&(n=(t.getDvrWindow()-(e.duration-e.position))/t.getDvrWindow()),w&&E){var r=I();u=r,n=(r-(r-Math.min(r,e.position)))/r}B(n)}}),r),t.on(Te,(function(e){var t,n;e&&e.bufferPercent&&(t=e.bufferPercent/100,n=l.width()*t,f.css("width",n+"px"))}),r))}),(function(e){n?t.off(Se,null,e):(t.off(Le,null,e),t.off(Te,null,e))}))}(e.find(".op-progressbar-container"),t,n,r)}function m(){i&&i.destroy(),i=function(e,t){var n=Nn(),r={"click .op-setting-button":function(e,r,o){e.preventDefault();var i=r.closest(".op-controls-container");if(n.size()>0)n.clear();else{var a=function(e){var t={id:"panel-"+(new Date).getTime(),title:"Settings",body:[],isRoot:!0,panelType:""},n=e.getConfig();n&&n.systemText&&(Object.keys(Yn).forEach((function(e){Yn[e]=n.systemText.ui.setting[e]})),t.title=n.systemText.ui.setting.title);var r=e.getSources(),o=r&&r.length>0?r[e.getCurrentSource()]:null,i=e.getQualityLevels(),a=i&&i.length>0?i[e.getCurrentQuality()]:null,A=e.getAudioTracks(),s=A&&A.length>0?A[e.getCurrentAudioTrack()]:null,c=e.getCaptionList(),u=e.getCurrentCaption(),l=e.getFramerate();if(e.getDuration()!==1/0&&o&&o.type!==pe){var f={title:Yn.speed,value:e.getPlaybackRate()+Yn.speedUnit,description:e.getPlaybackRate()+Yn.speedUnit,panelType:"speed",hasNext:!0};t.body.push(f)}if(r&&r.length>1){var p={title:Yn.source,value:o?o.label:"Default",description:o?o.label:"Default",panelType:"source",hasNext:!0};t.body.push(p)}if(i&&i.length>0){var d={title:Yn.quality,value:a?a.label:"Default",description:a?a.label:"Default",panelType:"quality",hasNext:!0};t.body.push(d)}if(A&&A.length>0){var g={title:Yn.audioTrack,value:s?s.label:"Default",description:s?s.label:"Default",panelType:"audioTrack",hasNext:!0};t.body.push(g)}if(c&&c.length>0){var h={title:Yn.caption,value:c[u]?c[u].label:"OFF",description:c[u]?c[u].label:"OFF",panelType:"caption",hasNext:!0};t.body.push(h)}if(l>0){var v={title:Yn.display,value:e.isTimecodeMode()?"Play time":"Framecode",description:e.isTimecodeMode()?"Play time":"Framecode",panelType:"display",hasNext:!0};t.body.push(v)}return t}(t);n.add(jn(i,t,a))}}};return Dn(e,"SettingButton",t.getConfig(),null,r,(function(e,t){}),(function(e){}))}(e.find(".setting-holder"),t)}function C(){c||(c=function(e,t){var n=_e(t.getContainerElement()),r="",o="",i=!1,a=(t.getConfig(),t.getBrowser()),A="iOS"===a.os,s=(a.os,""),c=!1,u={onfullscreenchange:"fullscreenchange",onmozfullscreenchange:"mozfullscreenchange",onwebkitfullscreenchange:"webkitfullscreenchange",MSFullscreenChange:"MSFullscreenChange"};function l(){var e=!1,t=document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement;return t&&n.get()===t&&(e=!0),e}function f(){OvenPlayerConsole.log("FULLSCREEN STATE : ",l()),l()?(n.addClass("op-fullscreen"),i=!0,r.hide(),o.show()):(n.removeClass("op-fullscreen"),i=!1,r.show(),o.hide())}function p(){OvenPlayerConsole.log("afterFullScreenChangedCallback () "),f(),t.trigger(xe,i)}function d(){i?(n.removeClass("op-fullscreen"),i=!1,r.show(),o.hide()):(n.addClass("op-fullscreen"),i=!0,r.hide(),o.show()),t.trigger(xe,i)}function g(){var e;!i||A&&!l()?function(){var e,r="",o=n.get(),a=n.find("video")?n.find("video").get():o,s=null;if(A){if(a.length>1)for(var u=0;u<a.length;u++){var l=a[u].getAttribute("title");l&&"Advertisement"===l?s=a[u]:e=a[u]}else e=a;s&&t.getState()===oe||t.getState()===ie||t.getState()===ae?s.webkitEnterFullScreen&&(r=s.webkitEnterFullScreen(),i=!0):e.webkitEnterFullScreen&&(r=e.webkitEnterFullScreen(),i=!0)}else if(o.requestFullscreen){var f=t.getConfig().fullscreenOption;r=o.requestFullscreen(f)}else o.webkitRequestFullScreen?r=o.webkitRequestFullScreen():o.mozRequestFullScreen?r=o.mozRequestFullScreen():o.msRequestFullscreen&&(r=o.msRequestFullscreen());r&&r.then((function(){i=!0,c=!1})).catch((function(e){c=!0,d()}))}():c?d():(e="",document.exitFullscreen?e=document.exitFullscreen():document.webkitExitFullscreen?e=document.webkitExitFullscreen():document.webkitExitFullScreen?e=document.webkitExitFullScreen():document.mozCancelFullScreen?e=document.mozCancelFullScreen():document.msExitFullscreen&&(e=document.msExitFullscreen()),e&&e.then((function(){i=!1})).catch((function(e){})))}t.toggleFullScreen=g;var h={"click .op-fullscreen-button":function(e,n,r){e.preventDefault(),t.trigger("fullscreenRequested",null),g()}};return Dn(e,"FullScreenButton",t.getConfig(),null,h,(function(e,a){var c,l;r=e.find(".op-fullscreen-expand"),o=e.find(".op-fullscreen-compress"),f(),c=n.get(),l="",c.requestFullscreen?l=u.onfullscreenchange:c.webkitRequestFullScreen?l=u.onwebkitfullscreenchange:c.mozRequestFullScreen?l=u.onmozfullscreenchange:c.msRequestFullscreen?l=u.MSFullscreenChange:Object.keys(u).forEach((function(e){document[e]&&(l=u[e])})),(s=l)&&document.addEventListener(s,p,!1),t.on(Ie,(function(e){var t,r=n.find("video")?n.find("video").get():n.get();if(e.isLinear&&A&&i){if(r.length>1)for(var o=0;o<r.length;o++){var a=r[o].getAttribute("title");a&&"Advertisement"===a?r[o]:t=r[o]}else t=r;t&&t.webkitExitFullscreen&&(t.webkitExitFullscreen(),i=!1)}}),a)}),(function(e){t.getConfig()&&!t.getConfig().expandFullScreenUI&&s&&document.removeEventListener(s,p),t.off(Ie,null,e)}))}(e.find(".fullscreen-holder"),t))}function y(n){n.duration>9e15&&(n.duration=1/0);var r=t.getSources()[t.getCurrentSource()].sectionStart,o=t.getSources()[t.getCurrentSource()].sectionEnd;o&&(n.duration=o),r&&(n.duration=n.duration-r),function(n){A&&A.destroy(),A=function(e,t,n){var r="",o="",i="",a=t.getMediaElement(),A=!1,c=!1;function u(e){return s(e)}var l={"click .op-live-text":function(e,n,r){e.preventDefault(),t.seek(Number.MAX_SAFE_INTEGER)}};return Dn(e,"TimeDisplay",t.getConfig(),n,l,(function(e,s){var l=t.isTimecodeMode();r=e.find(".op-time-current"),o=e.find(".op-time-duration"),i=e.find(".op-live-badge"),e.find(".op-live-text"),n&&n.type===fe&&n.duration===1/0&&(A=!0,t.getProviderName()===ce&&(c=!0)),n.duration!==1/0?(l?o.text(u(n.duration)):o.text(Math.round(n.duration*t.getFramerate())+" ("+t.getFramerate()+"fps)"),t.on(Ue,(function(e){(l=e)?o.text(u(n.duration)):o.text(Math.round(n.duration*t.getFramerate())+" ("+t.getFramerate()+"fps)")}),s),t.on(Le,(function(e){l?r.text(u(e.position)):r.text(Math.round(e.position*t.getFramerate()))}),s)):A&&!c?t.on(Le,(function(e){e.duration-e.position>3?i.addClass("op-live-badge-delayed"):i.removeClass("op-live-badge-delayed")}),s):A&&c&&t.on(Le,(function(e){a.seekable.end(a.seekable.length-1)-a.seekable.start(0)-e.position>3?i.addClass("op-live-badge-delayed"):i.removeClass("op-live-badge-delayed")}),s)}),(function(e){t.off(Ue,null,e),t.off(Le,null,e)}))}(e.find(".op-left-controls"),t,n)}(n),C(),t.getFramerate&&t.getFramerate(),n.duration===1/0?(OvenPlayerConsole.log("[[[[LIVE MODE]]]]"),n.type===fe?p(!1,n):a&&a.destroy()):p(!1),l=!0}function b(){A&&A.destroy(),a&&a.destroy(),m(),C(),h.removeClass("linear-ad")}o=function(e,t){var n="",r="",o="",i="",a="",A="",s="",c={"click .op-play-button":function(e,n,r){e.preventDefault();var o=t.getState(),i=t.getPlaylist(),a=t.getCurrentPlaylist();o===X?t.play():o===ee||o===ie?t.pause():o===ne||o===re?t.stop():o===$||o===ae?t.play():o===te?t.setCurrentSource(t.getCurrentSource()):o===q&&i.length===a+1&&(t.seek(0),t.play())},"click .op-seek-button-back":function(e,n,r){var o=t.getConfig().seekControlInterval;o||(o=10);var i=t.getPosition()-o;i<0&&(i=0),t.seek(i)},"click .op-seek-button-forward":function(e,n,r){var o=t.getConfig().seekControlInterval;o||(o=10);var i=t.getPosition()+o;i>t.getDuration()&&(i=t.getDuration()),t.seek(i)}};return Dn(e,"PlayButton",t.getConfig(),null,c,(function(e,c){n=e.find(".op-play-button .op-play"),r=e.find(".op-play-button .op-pause"),o=e.find(".op-play-button .op-replay"),i=e.find(".op-seek-button-back"),a=e.find(".op-seek-button-forward"),A=e.find(".op-seek-back-text"),s=e.find(".op-seek-forward-text"),t.on(ye,(function(e){var t;e&&e.newstate&&(t=e.newstate,n.hide(),r.hide(),o.hide(),t===ee||t===ie||t===ne||t===re?r.show():t===$||t===ae?n.show():t===q?o.show():n.show())}),c),t.getConfig().showSeekControl||(i.hide(),a.hide());var u=t.getConfig().seekControlInterval;u?(A.text(u),s.text(u)):(A.text(10),s.text(10))}),(function(e){t.off(ye,null,e)}))}(e.find(".op-left-controls"),t),r=function(e,t){var n="",r="",o="",i="",a="",A="",s="",c=!1,u=0,l="iOS"===t.getBrowser().os||"Android"===t.getBrowser().os;function f(e){t.getMute()&&(e=0),function(e){a.hide(),A.hide(),s.hide(),e>=70?a.show():e<70&&e>0?A.show():0==e?s.show():a.show()}(e);var n=u*e/100;o.css("left",n+"px"),i.css("width",n+"px")}function p(e){var t=((e.pageX||e.touches[0].clientX)-r.offset().left)/70*100;return t<0&&(t=0),t>100&&(t=100),t}var d={"click .op-volume-button":function(e,n,r){e.preventDefault(),l||(0===t.getVolume()?(t.setMute(!1),t.setVolume(100)):t.setMute())},"mouseenter .op-volume-button":function(e,t,r){e.preventDefault(),l||n.addClass("active")},"mouseleave .op-volume-silder":function(e,t,n){e.preventDefault(),c=!1},"mousedown .op-volume-silder":function(e,n,r){e.preventDefault(),c=!0,t.setMute(!1),t.setVolume(p(e))},"mouseup .op-volume-silder":function(e,t,n){e.preventDefault(),c=!1},"mousemove .op-volume-silder":function(e,n,r){if(e.preventDefault(),!c)return!1;t.setVolume(p(e))},"touchstart .op-volume-button":function(e){l&&(t.getMute()?t.setMute(!1):t.setMute(!0))}},g=Dn(e,"VolumeButton",t.getConfig(),null,d,(function(e,c){n=e.find(".op-volume-slider-container"),t.getBrowser().mobile&&n.hide(),r=e.find(".op-volume-silder"),o=e.find(".op-volume-slider-handle"),i=e.find(".op-volume-slider-value"),a=e.find(".op-volume-max"),A=e.find(".op-volume-small"),s=e.find(".op-volume-mute"),u=64,o.css("left",u+"px"),f(t.getVolume()),t.on(de,(function(){f(t.getVolume())}),c),t.on(Re,(function(e){f(e.volume)}),c),t.on(Qe,(function(e){e.mute?f(0):f(t.getVolume())}),c)}),(function(e){t.off(de,null,e),t.off(Re,null,e),t.off(Qe,null,e)}));return g.setMouseDown=function(e){c=e},g}(e.find(".op-left-controls"),t);var w=t.getPlaylist(),E=t.getCurrentPlaylist();w&&w[E]&&w[E].adTagUrl||m(),C(),t.on(de,(function(){e.show()}),u),t.on(Oe,(function(e){n=e.duration,v=e,e.isP2P=f,y(e)}),u),t.on(Le,(function(e){(d||t&&t.getProviderName&&"rtmp"===t.getProviderName())&&!n&&v&&v.duration!==e.duration&&(v=e,y(e))}),u),t.on(Be,(function(e){h.find(".op-setting-panel")&&h.find(".op-setting-panel").css("max-height",h.height()-h.find(".op-bottom-panel").height()+"px")}),u),t.on(Ne,(function(e){f=e}),u),t.on(we,(function(){if(!l){var n="";t.getSources().length>0&&t.getSources()[t.getCurrentSource()]&&t.getSources()[t.getCurrentSource()].type&&(n=t.getSources()[t.getCurrentSource()].type),y({isP2P:f,duration:t.getDuration(),type:n})}e.show()}),u),t.on(Ce,(function(t){e.show()}),u),t.on(Ie,(function(e){e.isLinear?(h.addClass("linear-ad"),p(!0),A&&A.destroy(),i&&i.destroy(),g&&c&&c.destroy()):h.removeClass("linear-ad")}),u),t.on(Ae,(function(){b()}),u),t.on(se,(function(){b()}),u),t.on(Me,(function(){b()}),u)}),(function(e){t.off(Oe,null,e),t.off(Le,null,e),t.off(Ae,null,e),t.off(Ie,null,e),t.off(Ne,null,e),t.off(se,null,e),t.off(Be,null,e),t.off(Me,null,e),A&&A.destroy(),o&&o.destroy(),a&&a.destroy(),c&&c.destroy(),r&&r.destroy()}))},zn=n(5655),_n=n.n(zn),Vn=n(3379),Hn=n.n(Vn),Jn=n(7795),Zn=n.n(Jn),Kn=n(569),Xn=n.n(Kn),qn=n(3565),$n=n.n(qn),er=n(9216),tr=n.n(er),nr=n(4589),rr=n.n(nr),or=n(2021),ir={};ir.styleTagTransform=rr(),ir.setAttributes=$n(),ir.insert=Xn().bind(null,"head"),ir.domAPI=Zn(),ir.insertStyleElement=tr(),Hn()(or.Z,ir),or.Z&&or.Z.locals&&or.Z.locals;var ar,Ar=function(e){var t,n="",r="",o="",i="",a=null,A="",s=X,c=!1,u=Nn(),l="",f="",p={};function d(e,n){if(A&&(clearTimeout(A),A=null),e){if(u.size()>0)return!1;t.addClass("op-autohide")}else t.removeClass("op-autohide"),n&&(A=setTimeout((function(){if(u.size()>0)return!1;t.addClass("op-autohide")}),3e3))}function g(){var e=s;e===X||e===$||e===q?(e===q&&a.seek(0),a.play()):e===ee&&a.pause()}function h(e,t){var n,r=a.getDuration(),o=a.getPosition();n=t?Math.max(o-e,0):Math.min(o+e,r),a.seek(n)}function v(e){var t,n=a.getVolume();t=e?Math.min(n+5,100):Math.max(n-5,0),a.setVolume(t)}function m(){var e=t.width();e<576?(l="xsmall",t.addClass("xsmall"),e<490&&t.addClass("xxsmall")):e<768?(l="small",t.addClass("small")):e<992?(l="medium",t.addClass("medium")):(l="large",t.addClass("large"))}var C={"click .ovenplayer":function(e,t,n){if(a&&a.trigger(Ee,e),i)return e.preventDefault(),i.destroy(),i=null,!1;if(!_e(e.target).closest(".op-controls-container")&&!_e(e.target).closest(".op-setting-panel")){if(u.size()>0)return e.preventDefault(),u.clear(),!1;a.getDuration()===1/0||a.getBrowser().mobile||g()}},"dblclick .ovenplayer":function(e,t,n){a&&a.getConfig().expandFullScreenUI&&a.toggleFullScreen&&(_e(e.target).closest(".op-controls-container")||_e(e.target).closest(".op-setting-panel")||a.toggleFullScreen())},"touchstart .ovenplayer":function(e,t,n){s===ee||s===X||s===ne||s===ie&&"xsmall"===l?d(!1,!0):d(!1)},"mouseenter .ovenplayer":function(e,t,n){e.preventDefault(),s===ee||s===X||s===ne||s===ie&&"xsmall"===l?d(!1,!0):d(!1)},"mousemove .ovenplayer":function(e,t,n){e.preventDefault(),s===ee||s===X||s===ne||s===ie&&"xsmall"===l?d(!1,!0):d(!1)},"mouseleave .ovenplayer":function(e,t,n){e.preventDefault(),(s===ee||s===X||s===ne||s===ie&&"xsmall"===l)&&d(!0)},"keydown .ovenplayer":function(e,t,n){var r=a.getFramerate();switch(e.keyCode){case 16:e.preventDefault(),c=!0;break;case 32:e.preventDefault(),g();break;case 37:e.preventDefault(),a.getConfig().disableSeekUI||(c&&r?a.seekFrame(-1):h(5,!0));break;case 39:e.preventDefault(),a.getConfig().disableSeekUI||(c&&r?a.seekFrame(1):h(5,!1));break;case 38:e.preventDefault(),v(!0);break;case 40:e.preventDefault(),v(!1)}},"keyup .ovenplayer":function(e,t,n){16===e.keyCode&&(e.preventDefault(),c=!1)},"contextmenu .ovenplayer":function(e,n,r){if(e.stopPropagation(),!_e(e.currentTarget).find("object"))return e.preventDefault(),o=e.pageX,A=e.pageY,i&&(i.destroy(),i=null),i=function(e,t,n){var r=_e(t.getContainerElement()),o={"click .op-context-item":function(e,t,n){e.preventDefault(),window.open("https://github.com/AirenSoft/OvenPlayer","_blank")}};return Dn(e,"ContextPanel",t.getConfig(),n,o,(function(e,t){var o=e.width(),i=e.height(),a=Math.min(n.pageX-r.offset().left,r.width()-o),A=Math.min(n.pageY-r.offset().top,r.height()-i);e.css("left",a+"px"),e.css("top",A+"px")}),(function(){}))}(t,a,{pageX:o,pageY:A}),!1;var o,A}};return(p=Dn(e,"View",null,e.id,C,(function(e,r){t=e,n=r,m(),f=l,new(_n())(t.get(),(function(){t.removeClass("large"),t.removeClass("medium"),t.removeClass("small"),t.removeClass("xsmall"),t.removeClass("xxsmall"),m(),l!==f&&(f=l,a&&a.trigger(Be,f))}))}),(function(){o&&(o.destroy(),o=null),r&&(r.destroy(),r=null)}),!0)).getMediaElementContainer=function(){return t.find(".op-media-element-container").get()},p.setApi=function(e){(a=e).getContainerElement=function(){return t.get()},a.getContainerId=function(){return t.get().id},a.on(de,(function(n){r||(r=Gn(t.find(".op-ui"),e)),i||t.addClass("op-no-controls")})),a.on(Ce,(function(e){if(a){var t=a.getSources()||[];r&&t.length}})),a.on(ge,(function(e){n.destroy()})),a.on(we,(function(n){!r&&i&&(r=Gn(t.find(".op-ui"),e))})),a.on(ye,(function(e){e&&e.newstate&&(s=e.newstate,e.newstate===ee||e.newstate===ie&&"xsmall"===l?d(!1,!0):d(!1))}));var i=a.getConfig()&&a.getConfig().controls;o=Pn(t.find(".op-ui"),e),r=Gn(t.find(".op-ui"),e);var A=a.getConfig().aspectRatio;if(A&&2===A.split(":").length){var c=1*A.split(":")[0],u=1*A.split(":")[1]/c*100;t.find(".op-ratio").css("padding-bottom",u+"%")}a.showControls=function(e){e?(t.removeClass("op-no-controls"),d(!1,!0)):t.addClass("op-no-controls")}},p},sr=(ar={},Object.assign(ar,Ln),ar.create=function(e,t){console.log("[OvenPlayer] v.0.10.27");var n=Ke(e),r=Ar(n),o=Ln.create(r.getMediaElementContainer(),t);return r.setApi(o),o},ar)},1001:function(){!function(e){"use strict";if("window"in e&&"document"in e){document.querySelectorAll||(document.querySelectorAll=function(e){var t,n=document.createElement("style"),r=[];for(document.documentElement.firstChild.appendChild(n),document._qsa=[],n.styleSheet.cssText=e+"{x-qsa:expression(document._qsa && document._qsa.push(this))}",window.scrollBy(0,0),n.parentNode.removeChild(n);document._qsa.length;)(t=document._qsa.shift()).style.removeAttribute("x-qsa"),r.push(t);return document._qsa=null,r}),document.querySelector||(document.querySelector=function(e){var t=document.querySelectorAll(e);return t.length?t[0]:null}),document.getElementsByClassName||(document.getElementsByClassName=function(e){return e=String(e).replace(/^|\s+/g,"."),document.querySelectorAll(e)}),e.Node=e.Node||function(){throw TypeError("Illegal constructor")},[["ELEMENT_NODE",1],["ATTRIBUTE_NODE",2],["TEXT_NODE",3],["CDATA_SECTION_NODE",4],["ENTITY_REFERENCE_NODE",5],["ENTITY_NODE",6],["PROCESSING_INSTRUCTION_NODE",7],["COMMENT_NODE",8],["DOCUMENT_NODE",9],["DOCUMENT_TYPE_NODE",10],["DOCUMENT_FRAGMENT_NODE",11],["NOTATION_NODE",12]].forEach((function(t){t[0]in e.Node||(e.Node[t[0]]=t[1])})),e.DOMException=e.DOMException||function(){throw TypeError("Illegal constructor")},[["INDEX_SIZE_ERR",1],["DOMSTRING_SIZE_ERR",2],["HIERARCHY_REQUEST_ERR",3],["WRONG_DOCUMENT_ERR",4],["INVALID_CHARACTER_ERR",5],["NO_DATA_ALLOWED_ERR",6],["NO_MODIFICATION_ALLOWED_ERR",7],["NOT_FOUND_ERR",8],["NOT_SUPPORTED_ERR",9],["INUSE_ATTRIBUTE_ERR",10],["INVALID_STATE_ERR",11],["SYNTAX_ERR",12],["INVALID_MODIFICATION_ERR",13],["NAMESPACE_ERR",14],["INVALID_ACCESS_ERR",15]].forEach((function(t){t[0]in e.DOMException||(e.DOMException[t[0]]=t[1])})),function(){function t(e,t,n){if("function"==typeof t){"DOMContentLoaded"===e&&(e="load");var r=this,o=function(e){e._timeStamp=Date.now(),e._currentTarget=r,t.call(this,e),e._currentTarget=null};this["_"+e+t]=o,this.attachEvent("on"+e,o)}}function n(e,t,n){if("function"==typeof t){"DOMContentLoaded"===e&&(e="load");var r=this["_"+e+t];r&&(this.detachEvent("on"+e,r),this["_"+e+t]=null)}}"Element"in e&&!Element.prototype.addEventListener&&Object.defineProperty&&(Event.CAPTURING_PHASE=1,Event.AT_TARGET=2,Event.BUBBLING_PHASE=3,Object.defineProperties(Event.prototype,{CAPTURING_PHASE:{get:function(){return 1}},AT_TARGET:{get:function(){return 2}},BUBBLING_PHASE:{get:function(){return 3}},target:{get:function(){return this.srcElement}},currentTarget:{get:function(){return this._currentTarget}},eventPhase:{get:function(){return this.srcElement===this.currentTarget?Event.AT_TARGET:Event.BUBBLING_PHASE}},bubbles:{get:function(){switch(this.type){case"click":case"dblclick":case"mousedown":case"mouseup":case"mouseover":case"mousemove":case"mouseout":case"mousewheel":case"keydown":case"keypress":case"keyup":case"resize":case"scroll":case"select":case"change":case"submit":case"reset":return!0}return!1}},cancelable:{get:function(){switch(this.type){case"click":case"dblclick":case"mousedown":case"mouseup":case"mouseover":case"mouseout":case"mousewheel":case"keydown":case"keypress":case"keyup":case"submit":return!0}return!1}},timeStamp:{get:function(){return this._timeStamp}},stopPropagation:{value:function(){this.cancelBubble=!0}},preventDefault:{value:function(){this.returnValue=!1}},defaultPrevented:{get:function(){return!1===this.returnValue}}}),[Window,HTMLDocument,Element].forEach((function(e){e.prototype.addEventListener=t,e.prototype.removeEventListener=n})))}(),function(){function t(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}"CustomEvent"in e&&"function"==typeof e.CustomEvent||(t.prototype=e.Event.prototype,e.CustomEvent=t)}(),window.addEvent=function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&(e["e"+t+n]=n,e[t+n]=function(){var r=window.event;r.currentTarget=e,r.preventDefault=function(){r.returnValue=!1},r.stopPropagation=function(){r.cancelBubble=!0},r.target=r.srcElement,r.timeStamp=Date.now(),e["e"+t+n].call(this,r)},e.attachEvent("on"+t,e[t+n]))},window.removeEvent=function(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent&&(e.detachEvent("on"+t,e[t+n]),e[t+n]=null,e["e"+t+n]=null)},function(){function t(e,t){function n(e){return e.length?e.split(/\s+/g):[]}function r(e,t){var r=n(t),o=r.indexOf(e);return-1!==o&&r.splice(o,1),r.join(" ")}if(Object.defineProperties(this,{length:{get:function(){return n(e[t]).length}},item:{value:function(r){var o=n(e[t]);return 0<=r&&r<o.length?o[r]:null}},contains:{value:function(r){if(0===(r=String(r)).length)throw SyntaxError();if(/\s/.test(r))throw Error("InvalidCharacterError");return-1!==n(e[t]).indexOf(r)}},add:{value:function(){var r=Array.prototype.slice.call(arguments).map(String);if(r.some((function(e){return 0===e.length})))throw SyntaxError();if(r.some((function(e){return/\s/.test(e)})))throw Error("InvalidCharacterError");try{var o=e[t],i=n(o);if(0===(r=r.filter((function(e){return-1===i.indexOf(e)}))).length)return;0===o.length||/\s$/.test(o)||(o+=" "),o+=r.join(" "),e[t]=o}finally{var a=n(e[t]).length;this.length!==a&&(this.length=a)}}},remove:{value:function(){var o=Array.prototype.slice.call(arguments).map(String);if(o.some((function(e){return 0===e.length})))throw SyntaxError();if(o.some((function(e){return/\s/.test(e)})))throw Error("InvalidCharacterError");try{var i=e[t];o.forEach((function(e){i=r(e,i)})),e[t]=i}finally{var a=n(e[t]).length;this.length!==a&&(this.length=a)}}},toggle:{value:function(o){var i=arguments[1];try{if(0===(o=String(o)).length)throw SyntaxError();if(/\s/.test(o))throw Error("InvalidCharacterError");var a=n(e[t]),A=a.indexOf(o);if(-1!==A&&(!i||void 0===i))return e[t]=r(o,e[t]),!1;if(-1!==A&&i)return!0;var s=e[t];return 0===s.length||/\s$/.test(s)||(s+=" "),s+=o,e[t]=s,!0}finally{var c=n(e[t]).length;this.length!==c&&(this.length=c)}}},toString:{value:function(){return e[t]}}}),"length"in this)for(var o=0;o<100;++o)Object.defineProperty(this,String(o),{get:function(e){return function(){return this.item(e)}}(o)});else this.length=n(e[t]).length}function n(t,n){"Element"in e&&Element.prototype&&Object.defineProperty&&Object.defineProperty(Element.prototype,t,{get:n})}"classList"in document.createElement("span")?window.getClassList=function(e){return e.classList}:(window.getClassList=function(e){return new t(e,"className")},n("classList",(function(){return new t(this,"className")}))),"relList"in document.createElement("link")?window.getRelList=function(e){return e.relList}:(window.getRelList=function(e){return new t(e,"rel")},n("relList",(function(){return new t(this,"rel")}))),function(){if("DOMTokenList"in e){var t=document.createElement("span");"classList"in t&&(t.classList.toggle("x",!1),t.classList.contains("x")&&(e.DOMTokenList.prototype.toggle=function(e){var t=arguments[1];if(void 0===t){var n=!this.contains(e);return this[n?"add":"remove"](e),n}return this[(t=!!t)?"add":"remove"](e),t}))}}(),"previousElementSibling"in document.documentElement||n("previousElementSibling",(function(){for(var e=this.previousSibling;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.previousSibling;return e})),"nextElementSibling"in document.documentElement||n("nextElementSibling",(function(){for(var e=this.nextSibling;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.nextSibling;return e}))}(),"Element"in e&&!Element.prototype.matches&&(Element.prototype.msMatchesSelector?Element.prototype.matches=Element.prototype.msMatchesSelector:Element.prototype.oMatchesSelector?Element.prototype.matches=Element.prototype.oMatchesSelector:Element.prototype.mozMatchesSelector?Element.prototype.matches=Element.prototype.mozMatchesSelector:Element.prototype.webkitMatchesSelector?Element.prototype.matches=Element.prototype.webkitMatchesSelector:document.querySelectorAll&&(Element.prototype.matches=function(e){for(var t=(this.document||this.ownerDocument).querySelectorAll(e),n=t.length;--n>=0&&t.item(n)!==this;);return n>-1})),window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),r=this;do{for(t=n.length;--t>=0&&n.item(t)!==r;);}while(t<0&&(r=r.parentElement));return r});var t={prepend:function(){var e=[].slice.call(arguments);e=o(e),this.insertBefore(e,this.firstChild)},append:function(){var e=[].slice.call(arguments);e=o(e),this.appendChild(e)}};r(e.Document||e.HTMLDocument,t),r(e.DocumentFragment,t),r(e.Element,t);var n={before:function(){var e=[].slice.call(arguments),t=this.parentNode;if(t){for(var n=this.previousSibling;-1!==e.indexOf(n);)n=n.previousSibling;var r=o(e);t.insertBefore(r,n?n.nextSibling:t.firstChild)}},after:function(){var e=[].slice.call(arguments),t=this.parentNode;if(t){for(var n=this.nextSibling;-1!==e.indexOf(n);)n=n.nextSibling;var r=o(e);t.insertBefore(r,n)}},replaceWith:function(){var e=[].slice.call(arguments),t=this.parentNode;if(t){for(var n=this.nextSibling;-1!==e.indexOf(n);)n=n.nextSibling;var r=o(e);this.parentNode===t?t.replaceChild(r,this):t.insertBefore(r,n)}},remove:function(){this.parentNode&&this.parentNode.removeChild(this)}};r(e.DocumentType,n),r(e.Element,n),r(e.CharacterData,n)}function r(e,t){e&&Object.keys(t).forEach((function(n){if(!(n in e)&&!(n in e.prototype))try{Object.defineProperty(e.prototype,n,Object.getOwnPropertyDescriptor(t,n))}catch(r){e[n]=t[n]}}))}function o(e){var t=null;return e=e.map((function(e){return e instanceof Node?e:document.createTextNode(e)})),1===e.length?t=e[0]:(t=document.createDocumentFragment(),e.forEach((function(e){t.appendChild(e)}))),t}}(self)},5655:function(e,t){var n,r;r=this,void 0===(n=function(){return r.returnExportsGlobal=function(){"use strict";function e(){var e,t;this.q=[],this.add=function(e){this.q.push(e)},this.call=function(){for(e=0,t=this.q.length;t>e;e++)this.q[e].call()}}function t(t,r){if(t.resizedAttached){if(t.resizedAttached)return void t.resizedAttached.add(r)}else t.resizedAttached=new e,t.resizedAttached.add(r);t.resizeSensor=document.createElement("div"),t.resizeSensor.className="resize-sensor";var o="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden; opacity: 0;",i="position: absolute; left: 0; top: 0; transition: 0s;";t.resizeSensor.style.cssText=o,t.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="'+o+'"><div style="'+i+'"></div></div><div class="resize-sensor-shrink" style="'+o+'"><div style="'+i+' width: 200%; height: 200%"></div></div>',t.appendChild(t.resizeSensor),"static"==function(e,t){return e.currentStyle?e.currentStyle[t]:window.getComputedStyle?window.getComputedStyle(e,null).getPropertyValue(t):e.style[t]}(t,"position")&&(t.style.position="relative");var a=t.resizeSensor.childNodes[0],A=a.childNodes[0],s=t.resizeSensor.childNodes[1],c=function(){A.style.width="100000px",A.style.height="100000px",a.scrollLeft=1e5,a.scrollTop=1e5,s.scrollLeft=1e5,s.scrollTop=1e5};c();var u=!1;n((function e(){t.resizedAttached&&(u&&(t.resizedAttached.call(),u=!1),n(e))}));var l,f,p,d,g=function(){((p=t.offsetWidth)!=l||(d=t.offsetHeight)!=f)&&(u=!0,l=p,f=d),c()},h=function(e,t,n){e.attachEvent?e.attachEvent("on"+t,n):e.addEventListener(t,n)};h(a,"scroll",g),h(s,"scroll",g)}var n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return window.setTimeout(e,20)},r=function(e,n){var r=Object.prototype.toString.call(e),o=this._isCollectionTyped="[object Array]"===r||"[object NodeList]"===r||"[object HTMLCollection]"===r||"undefined"!=typeof jQuery&&e instanceof window.jQuery||"undefined"!=typeof Elements&&e instanceof window.Elements;if(this._element=e,o)for(var i=0,a=e.length;a>i;i++)t(e[i],n);else t(e,n)};return r.prototype.detach=function(){var e=this._isCollectionTyped,t=this._element;if(e)for(var n=0,o=t.length;o>n;n++)r.detach(t[n]);else r.detach(t)},r.detach=function(e){e.resizeSensor&&(e.removeChild(e.resizeSensor),delete e.resizeSensor,delete e.resizedAttached)},r}()}.apply(t,[]))||(e.exports=n)},741:function(e,t,n){var r,o,i;function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}i=function(){var e="1.13.1",t="object"==("undefined"==typeof self?"undefined":a(self))&&self.self===self&&self||"object"==(void 0===n.g?"undefined":a(n.g))&&n.g.global===n.g&&n.g||Function("return this")()||{},r=Array.prototype,o=Object.prototype,i="undefined"!=typeof Symbol?Symbol.prototype:null,A=r.push,s=r.slice,c=o.toString,u=o.hasOwnProperty,l="undefined"!=typeof ArrayBuffer,f="undefined"!=typeof DataView,p=Array.isArray,d=Object.keys,g=Object.create,h=l&&ArrayBuffer.isView,v=isNaN,m=isFinite,C=!{toString:null}.propertyIsEnumerable("toString"),y=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],b=Math.pow(2,53)-1;function w(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),o=0;o<n;o++)r[o]=arguments[o+t];switch(t){case 0:return e.call(this,r);case 1:return e.call(this,arguments[0],r);case 2:return e.call(this,arguments[0],arguments[1],r)}var i=Array(t+1);for(o=0;o<t;o++)i[o]=arguments[o];return i[t]=r,e.apply(this,i)}}function E(e){var t=a(e);return"function"===t||"object"===t&&!!e}function B(e){return void 0===e}function x(e){return!0===e||!1===e||"[object Boolean]"===c.call(e)}function k(e){var t="[object "+e+"]";return function(e){return c.call(e)===t}}var I=k("String"),S=k("Number"),T=k("Date"),L=k("RegExp"),R=k("Error"),Q=k("Symbol"),O=k("ArrayBuffer"),M=k("Function"),D=t.document&&t.document.childNodes;"object"!=("undefined"==typeof Int8Array?"undefined":a(Int8Array))&&"function"!=typeof D&&(M=function(e){return"function"==typeof e||!1});var F=M,P=k("Object"),U=f&&P(new DataView(new ArrayBuffer(8))),N="undefined"!=typeof Map&&P(new Map),W=k("DataView"),j=U?function(e){return null!=e&&F(e.getInt8)&&O(e.buffer)}:W,Y=p||k("Array");function G(e,t){return null!=e&&u.call(e,t)}var z=k("Arguments");!function(){z(arguments)||(z=function(e){return G(e,"callee")})}();var _=z;function V(e){return S(e)&&v(e)}function H(e){return function(){return e}}function J(e){return function(t){var n=e(t);return"number"==typeof n&&n>=0&&n<=b}}function Z(e){return function(t){return null==t?void 0:t[e]}}var K=Z("byteLength"),X=J(K),q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/,$=l?function(e){return h?h(e)&&!j(e):X(e)&&q.test(c.call(e))}:H(!1),ee=Z("length");function te(e,t){t=function(e){for(var t={},n=e.length,r=0;r<n;++r)t[e[r]]=!0;return{contains:function(e){return t[e]},push:function(n){return t[n]=!0,e.push(n)}}}(t);var n=y.length,r=e.constructor,i=F(r)&&r.prototype||o,a="constructor";for(G(e,a)&&!t.contains(a)&&t.push(a);n--;)(a=y[n])in e&&e[a]!==i[a]&&!t.contains(a)&&t.push(a)}function ne(e){if(!E(e))return[];if(d)return d(e);var t=[];for(var n in e)G(e,n)&&t.push(n);return C&&te(e,t),t}function re(e,t){var n=ne(t),r=n.length;if(null==e)return!r;for(var o=Object(e),i=0;i<r;i++){var a=n[i];if(t[a]!==o[a]||!(a in o))return!1}return!0}function oe(e){return e instanceof oe?e:this instanceof oe?void(this._wrapped=e):new oe(e)}function ie(e){return new Uint8Array(e.buffer||e,e.byteOffset||0,K(e))}oe.VERSION=e,oe.prototype.value=function(){return this._wrapped},oe.prototype.valueOf=oe.prototype.toJSON=oe.prototype.value,oe.prototype.toString=function(){return String(this._wrapped)};var ae="[object DataView]";function Ae(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var o=a(e);return("function"===o||"object"===o||"object"==a(t))&&function e(t,n,r,o){t instanceof oe&&(t=t._wrapped),n instanceof oe&&(n=n._wrapped);var A=c.call(t);if(A!==c.call(n))return!1;if(U&&"[object Object]"==A&&j(t)){if(!j(n))return!1;A=ae}switch(A){case"[object RegExp]":case"[object String]":return""+t==""+n;case"[object Number]":return+t!=+t?+n!=+n:0==+t?1/+t==1/n:+t==+n;case"[object Date]":case"[object Boolean]":return+t==+n;case"[object Symbol]":return i.valueOf.call(t)===i.valueOf.call(n);case"[object ArrayBuffer]":case ae:return e(ie(t),ie(n),r,o)}var s="[object Array]"===A;if(!s&&$(t)){if(K(t)!==K(n))return!1;if(t.buffer===n.buffer&&t.byteOffset===n.byteOffset)return!0;s=!0}if(!s){if("object"!=a(t)||"object"!=a(n))return!1;var u=t.constructor,l=n.constructor;if(u!==l&&!(F(u)&&u instanceof u&&F(l)&&l instanceof l)&&"constructor"in t&&"constructor"in n)return!1}o=o||[];for(var f=(r=r||[]).length;f--;)if(r[f]===t)return o[f]===n;if(r.push(t),o.push(n),s){if((f=t.length)!==n.length)return!1;for(;f--;)if(!Ae(t[f],n[f],r,o))return!1}else{var p,d=ne(t);if(f=d.length,ne(n).length!==f)return!1;for(;f--;)if(!G(n,p=d[f])||!Ae(t[p],n[p],r,o))return!1}return r.pop(),o.pop(),!0}(e,t,n,r)}function se(e){if(!E(e))return[];var t=[];for(var n in e)t.push(n);return C&&te(e,t),t}function ce(e){var t=ee(e);return function(n){if(null==n)return!1;var r=se(n);if(ee(r))return!1;for(var o=0;o<t;o++)if(!F(n[e[o]]))return!1;return e!==de||!F(n[ue])}}var ue="forEach",le=["clear","delete"],fe=["get","has","set"],pe=le.concat(ue,fe),de=le.concat(fe),ge=["add"].concat(le,ue,"has"),he=N?ce(pe):k("Map"),ve=N?ce(de):k("WeakMap"),me=N?ce(ge):k("Set"),Ce=k("WeakSet");function ye(e){for(var t=ne(e),n=t.length,r=Array(n),o=0;o<n;o++)r[o]=e[t[o]];return r}function be(e){for(var t={},n=ne(e),r=0,o=n.length;r<o;r++)t[e[n[r]]]=n[r];return t}function we(e){var t=[];for(var n in e)F(e[n])&&t.push(n);return t.sort()}function Ee(e,t){return function(n){var r=arguments.length;if(t&&(n=Object(n)),r<2||null==n)return n;for(var o=1;o<r;o++)for(var i=arguments[o],a=e(i),A=a.length,s=0;s<A;s++){var c=a[s];t&&void 0!==n[c]||(n[c]=i[c])}return n}}var Be=Ee(se),xe=Ee(ne),ke=Ee(se,!0);function Ie(e){if(!E(e))return{};if(g)return g(e);var t=function(){};t.prototype=e;var n=new t;return t.prototype=null,n}function Se(e){return E(e)?Y(e)?e.slice():Be({},e):e}function Te(e){return Y(e)?e:[e]}function Le(e){return oe.toPath(e)}function Re(e,t){for(var n=t.length,r=0;r<n;r++){if(null==e)return;e=e[t[r]]}return n?e:void 0}function Qe(e,t,n){var r=Re(e,Le(t));return B(r)?n:r}function Oe(e){return e}function Me(e){return e=xe({},e),function(t){return re(t,e)}}function De(e){return e=Le(e),function(t){return Re(t,e)}}function Fe(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,o){return e.call(t,n,r,o)};case 4:return function(n,r,o,i){return e.call(t,n,r,o,i)}}return function(){return e.apply(t,arguments)}}function Pe(e,t,n){return null==e?Oe:F(e)?Fe(e,t,n):E(e)&&!Y(e)?Me(e):De(e)}function Ue(e,t){return Pe(e,t,1/0)}function Ne(e,t,n){return oe.iteratee!==Ue?oe.iteratee(e,t):Pe(e,t,n)}function We(){}function je(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))}oe.toPath=Te,oe.iteratee=Ue;var Ye=Date.now||function(){return(new Date).getTime()};function Ge(e){var t=function(t){return e[t]},n="(?:"+ne(e).join("|")+")",r=RegExp(n),o=RegExp(n,"g");return function(e){return e=null==e?"":""+e,r.test(e)?e.replace(o,t):e}}var ze={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},_e=Ge(ze),Ve=Ge(be(ze)),He=oe.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Je=/(.)^/,Ze={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Ke=/\\|'|\r|\n|\u2028|\u2029/g;function Xe(e){return"\\"+Ze[e]}var qe=/^\s*(\w|\$)+\s*$/,$e=0;function et(e,t,n,r,o){if(!(r instanceof t))return e.apply(n,o);var i=Ie(e.prototype),a=e.apply(i,o);return E(a)?a:i}var tt=w((function(e,t){var n=tt.placeholder;return function r(){for(var o=0,i=t.length,a=Array(i),A=0;A<i;A++)a[A]=t[A]===n?arguments[o++]:t[A];for(;o<arguments.length;)a.push(arguments[o++]);return et(e,r,this,this,a)}}));tt.placeholder=oe;var nt=w((function(e,t,n){if(!F(e))throw new TypeError("Bind must be called on a function");var r=w((function(o){return et(e,r,t,this,n.concat(o))}));return r})),rt=J(ee);function ot(e,t,n,r){if(r=r||[],t||0===t){if(t<=0)return r.concat(e)}else t=1/0;for(var o=r.length,i=0,a=ee(e);i<a;i++){var A=e[i];if(rt(A)&&(Y(A)||_(A)))if(t>1)ot(A,t-1,n,r),o=r.length;else for(var s=0,c=A.length;s<c;)r[o++]=A[s++];else n||(r[o++]=A)}return r}var it=w((function(e,t){var n=(t=ot(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var r=t[n];e[r]=nt(e[r],e)}return e})),at=w((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})),At=tt(at,oe,1);function st(e){return function(){return!e.apply(this,arguments)}}function ct(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}var ut=tt(ct,2);function lt(e,t,n){t=Ne(t,n);for(var r,o=ne(e),i=0,a=o.length;i<a;i++)if(t(e[r=o[i]],r,e))return r}function ft(e){return function(t,n,r){n=Ne(n,r);for(var o=ee(t),i=e>0?0:o-1;i>=0&&i<o;i+=e)if(n(t[i],i,t))return i;return-1}}var pt=ft(1),dt=ft(-1);function gt(e,t,n,r){for(var o=(n=Ne(n,r,1))(t),i=0,a=ee(e);i<a;){var A=Math.floor((i+a)/2);n(e[A])<o?i=A+1:a=A}return i}function ht(e,t,n){return function(r,o,i){var a=0,A=ee(r);if("number"==typeof i)e>0?a=i>=0?i:Math.max(i+A,a):A=i>=0?Math.min(i+1,A):i+A+1;else if(n&&i&&A)return r[i=n(r,o)]===o?i:-1;if(o!=o)return(i=t(s.call(r,a,A),V))>=0?i+a:-1;for(i=e>0?a:A-1;i>=0&&i<A;i+=e)if(r[i]===o)return i;return-1}}var vt=ht(1,pt,gt),mt=ht(-1,dt);function Ct(e,t,n){var r=(rt(e)?pt:lt)(e,t,n);if(void 0!==r&&-1!==r)return e[r]}function yt(e,t,n){var r,o;if(t=Fe(t,n),rt(e))for(r=0,o=e.length;r<o;r++)t(e[r],r,e);else{var i=ne(e);for(r=0,o=i.length;r<o;r++)t(e[i[r]],i[r],e)}return e}function bt(e,t,n){t=Ne(t,n);for(var r=!rt(e)&&ne(e),o=(r||e).length,i=Array(o),a=0;a<o;a++){var A=r?r[a]:a;i[a]=t(e[A],A,e)}return i}function wt(e){var t=function(t,n,r,o){var i=!rt(t)&&ne(t),a=(i||t).length,A=e>0?0:a-1;for(o||(r=t[i?i[A]:A],A+=e);A>=0&&A<a;A+=e){var s=i?i[A]:A;r=n(r,t[s],s,t)}return r};return function(e,n,r,o){var i=arguments.length>=3;return t(e,Fe(n,o,4),r,i)}}var Et=wt(1),Bt=wt(-1);function xt(e,t,n){var r=[];return t=Ne(t,n),yt(e,(function(e,n,o){t(e,n,o)&&r.push(e)})),r}function kt(e,t,n){t=Ne(t,n);for(var r=!rt(e)&&ne(e),o=(r||e).length,i=0;i<o;i++){var a=r?r[i]:i;if(!t(e[a],a,e))return!1}return!0}function It(e,t,n){t=Ne(t,n);for(var r=!rt(e)&&ne(e),o=(r||e).length,i=0;i<o;i++){var a=r?r[i]:i;if(t(e[a],a,e))return!0}return!1}function St(e,t,n,r){return rt(e)||(e=ye(e)),("number"!=typeof n||r)&&(n=0),vt(e,t,n)>=0}var Tt=w((function(e,t,n){var r,o;return F(t)?o=t:(t=Le(t),r=t.slice(0,-1),t=t[t.length-1]),bt(e,(function(e){var i=o;if(!i){if(r&&r.length&&(e=Re(e,r)),null==e)return;i=e[t]}return null==i?i:i.apply(e,n)}))}));function Lt(e,t){return bt(e,De(t))}function Rt(e,t,n){var r,o,i=-1/0,A=-1/0;if(null==t||"number"==typeof t&&"object"!=a(e[0])&&null!=e)for(var s=0,c=(e=rt(e)?e:ye(e)).length;s<c;s++)null!=(r=e[s])&&r>i&&(i=r);else t=Ne(t,n),yt(e,(function(e,n,r){((o=t(e,n,r))>A||o===-1/0&&i===-1/0)&&(i=e,A=o)}));return i}function Qt(e,t,n){if(null==t||n)return rt(e)||(e=ye(e)),e[je(e.length-1)];var r=rt(e)?Se(e):ye(e),o=ee(r);t=Math.max(Math.min(t,o),0);for(var i=o-1,a=0;a<t;a++){var A=je(a,i),s=r[a];r[a]=r[A],r[A]=s}return r.slice(0,t)}function Ot(e,t){return function(n,r,o){var i=t?[[],[]]:{};return r=Ne(r,o),yt(n,(function(t,o){var a=r(t,o,n);e(i,t,a)})),i}}var Mt=Ot((function(e,t,n){G(e,n)?e[n].push(t):e[n]=[t]})),Dt=Ot((function(e,t,n){e[n]=t})),Ft=Ot((function(e,t,n){G(e,n)?e[n]++:e[n]=1})),Pt=Ot((function(e,t,n){e[n?0:1].push(t)}),!0),Ut=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function Nt(e,t,n){return t in n}var Wt=w((function(e,t){var n={},r=t[0];if(null==e)return n;F(r)?(t.length>1&&(r=Fe(r,t[1])),t=se(e)):(r=Nt,t=ot(t,!1,!1),e=Object(e));for(var o=0,i=t.length;o<i;o++){var a=t[o],A=e[a];r(A,a,e)&&(n[a]=A)}return n})),jt=w((function(e,t){var n,r=t[0];return F(r)?(r=st(r),t.length>1&&(n=t[1])):(t=bt(ot(t,!1,!1),String),r=function(e,n){return!St(t,n)}),Wt(e,r,n)}));function Yt(e,t,n){return s.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}function Gt(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:Yt(e,e.length-t)}function zt(e,t,n){return s.call(e,null==t||n?1:t)}var _t=w((function(e,t){return t=ot(t,!0,!0),xt(e,(function(e){return!St(t,e)}))})),Vt=w((function(e,t){return _t(e,t)}));function Ht(e,t,n,r){x(t)||(r=n,n=t,t=!1),null!=n&&(n=Ne(n,r));for(var o=[],i=[],a=0,A=ee(e);a<A;a++){var s=e[a],c=n?n(s,a,e):s;t&&!n?(a&&i===c||o.push(s),i=c):n?St(i,c)||(i.push(c),o.push(s)):St(o,s)||o.push(s)}return o}var Jt=w((function(e){return Ht(ot(e,!0,!0))}));function Zt(e){for(var t=e&&Rt(e,ee).length||0,n=Array(t),r=0;r<t;r++)n[r]=Lt(e,r);return n}var Kt=w(Zt);function Xt(e,t){return e._chain?oe(t).chain():t}function qt(e){return yt(we(e),(function(t){var n=oe[t]=e[t];oe.prototype[t]=function(){var e=[this._wrapped];return A.apply(e,arguments),Xt(this,n.apply(oe,e))}})),oe}yt(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=r[e];oe.prototype[e]=function(){var n=this._wrapped;return null!=n&&(t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0]),Xt(this,n)}})),yt(["concat","join","slice"],(function(e){var t=r[e];oe.prototype[e]=function(){var e=this._wrapped;return null!=e&&(e=t.apply(e,arguments)),Xt(this,e)}}));var $t=qt({__proto__:null,VERSION:e,restArguments:w,isObject:E,isNull:function(e){return null===e},isUndefined:B,isBoolean:x,isElement:function(e){return!(!e||1!==e.nodeType)},isString:I,isNumber:S,isDate:T,isRegExp:L,isError:R,isSymbol:Q,isArrayBuffer:O,isDataView:j,isArray:Y,isFunction:F,isArguments:_,isFinite:function(e){return!Q(e)&&m(e)&&!isNaN(parseFloat(e))},isNaN:V,isTypedArray:$,isEmpty:function(e){if(null==e)return!0;var t=ee(e);return"number"==typeof t&&(Y(e)||I(e)||_(e))?0===t:0===ee(ne(e))},isMatch:re,isEqual:function(e,t){return Ae(e,t)},isMap:he,isWeakMap:ve,isSet:me,isWeakSet:Ce,keys:ne,allKeys:se,values:ye,pairs:function(e){for(var t=ne(e),n=t.length,r=Array(n),o=0;o<n;o++)r[o]=[t[o],e[t[o]]];return r},invert:be,functions:we,methods:we,extend:Be,extendOwn:xe,assign:xe,defaults:ke,create:function(e,t){var n=Ie(e);return t&&xe(n,t),n},clone:Se,tap:function(e,t){return t(e),e},get:Qe,has:function(e,t){for(var n=(t=Le(t)).length,r=0;r<n;r++){var o=t[r];if(!G(e,o))return!1;e=e[o]}return!!n},mapObject:function(e,t,n){t=Ne(t,n);for(var r=ne(e),o=r.length,i={},a=0;a<o;a++){var A=r[a];i[A]=t(e[A],A,e)}return i},identity:Oe,constant:H,noop:We,toPath:Te,property:De,propertyOf:function(e){return null==e?We:function(t){return Qe(e,t)}},matcher:Me,matches:Me,times:function(e,t,n){var r=Array(Math.max(0,e));t=Fe(t,n,1);for(var o=0;o<e;o++)r[o]=t(o);return r},random:je,now:Ye,escape:_e,unescape:Ve,templateSettings:He,template:function(e,t,n){!t&&n&&(t=n),t=ke({},t,oe.templateSettings);var r=RegExp([(t.escape||Je).source,(t.interpolate||Je).source,(t.evaluate||Je).source].join("|")+"|$","g"),o=0,i="__p+='";e.replace(r,(function(t,n,r,a,A){return i+=e.slice(o,A).replace(Ke,Xe),o=A+t.length,n?i+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?i+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(i+="';\n"+a+"\n__p+='"),t})),i+="';\n";var a,A=t.variable;if(A){if(!qe.test(A))throw new Error("variable is not a bare identifier: "+A)}else i="with(obj||{}){\n"+i+"}\n",A="obj";i="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{a=new Function(A,"_",i)}catch(e){throw e.source=i,e}var s=function(e){return a.call(this,e,oe)};return s.source="function("+A+"){\n"+i+"}",s},result:function(e,t,n){var r=(t=Le(t)).length;if(!r)return F(n)?n.call(e):n;for(var o=0;o<r;o++){var i=null==e?void 0:e[t[o]];void 0===i&&(i=n,o=r),e=F(i)?i.call(e):i}return e},uniqueId:function(e){var t=++$e+"";return e?e+t:t},chain:function(e){var t=oe(e);return t._chain=!0,t},iteratee:Ue,partial:tt,bind:nt,bindAll:it,memoize:function(e,t){var n=function n(r){var o=n.cache,i=""+(t?t.apply(this,arguments):r);return G(o,i)||(o[i]=e.apply(this,arguments)),o[i]};return n.cache={},n},delay:at,defer:At,throttle:function(e,t,n){var r,o,i,a,A=0;n||(n={});var s=function(){A=!1===n.leading?0:Ye(),r=null,a=e.apply(o,i),r||(o=i=null)},c=function(){var c=Ye();A||!1!==n.leading||(A=c);var u=t-(c-A);return o=this,i=arguments,u<=0||u>t?(r&&(clearTimeout(r),r=null),A=c,a=e.apply(o,i),r||(o=i=null)):r||!1===n.trailing||(r=setTimeout(s,u)),a};return c.cancel=function(){clearTimeout(r),A=0,r=o=i=null},c},debounce:function(e,t,n){var r,o,i,a,A,s=function s(){var c=Ye()-o;t>c?r=setTimeout(s,t-c):(r=null,n||(a=e.apply(A,i)),r||(i=A=null))},c=w((function(c){return A=this,i=c,o=Ye(),r||(r=setTimeout(s,t),n&&(a=e.apply(A,i))),a}));return c.cancel=function(){clearTimeout(r),r=i=A=null},c},wrap:function(e,t){return tt(t,e)},negate:st,compose:function(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}},after:function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},before:ct,once:ut,findKey:lt,findIndex:pt,findLastIndex:dt,sortedIndex:gt,indexOf:vt,lastIndexOf:mt,find:Ct,detect:Ct,findWhere:function(e,t){return Ct(e,Me(t))},each:yt,forEach:yt,map:bt,collect:bt,reduce:Et,foldl:Et,inject:Et,reduceRight:Bt,foldr:Bt,filter:xt,select:xt,reject:function(e,t,n){return xt(e,st(Ne(t)),n)},every:kt,all:kt,some:It,any:It,contains:St,includes:St,include:St,invoke:Tt,pluck:Lt,where:function(e,t){return xt(e,Me(t))},max:Rt,min:function(e,t,n){var r,o,i=1/0,A=1/0;if(null==t||"number"==typeof t&&"object"!=a(e[0])&&null!=e)for(var s=0,c=(e=rt(e)?e:ye(e)).length;s<c;s++)null!=(r=e[s])&&r<i&&(i=r);else t=Ne(t,n),yt(e,(function(e,n,r){((o=t(e,n,r))<A||o===1/0&&i===1/0)&&(i=e,A=o)}));return i},shuffle:function(e){return Qt(e,1/0)},sample:Qt,sortBy:function(e,t,n){var r=0;return t=Ne(t,n),Lt(bt(e,(function(e,n,o){return{value:e,index:r++,criteria:t(e,n,o)}})).sort((function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(n<r||void 0===r)return-1}return e.index-t.index})),"value")},groupBy:Mt,indexBy:Dt,countBy:Ft,partition:Pt,toArray:function(e){return e?Y(e)?s.call(e):I(e)?e.match(Ut):rt(e)?bt(e,Oe):ye(e):[]},size:function(e){return null==e?0:rt(e)?e.length:ne(e).length},pick:Wt,omit:jt,first:Gt,head:Gt,take:Gt,initial:Yt,last:function(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:zt(e,Math.max(0,e.length-t))},rest:zt,tail:zt,drop:zt,compact:function(e){return xt(e,Boolean)},flatten:function(e,t){return ot(e,t,!1)},without:Vt,uniq:Ht,unique:Ht,union:Jt,intersection:function(e){for(var t=[],n=arguments.length,r=0,o=ee(e);r<o;r++){var i=e[r];if(!St(t,i)){var a;for(a=1;a<n&&St(arguments[a],i);a++);a===n&&t.push(i)}}return t},difference:_t,unzip:Zt,transpose:Zt,zip:Kt,object:function(e,t){for(var n={},r=0,o=ee(e);r<o;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},range:function(e,t,n){null==t&&(t=e||0,e=0),n||(n=t<e?-1:1);for(var r=Math.max(Math.ceil((t-e)/n),0),o=Array(r),i=0;i<r;i++,e+=n)o[i]=e;return o},chunk:function(e,t){if(null==t||t<1)return[];for(var n=[],r=0,o=e.length;r<o;)n.push(s.call(e,r,r+=t));return n},mixin:qt,default:oe});return $t._=$t,$t},"object"==a(t)?e.exports=i():void 0===(o="function"==typeof(r=i)?r.call(t,n,t,e):r)||(e.exports=o)},9662:function(e,t,n){var r=n(7854),o=n(614),i=n(6330),a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not a function")}},9483:function(e,t,n){var r=n(7854),o=n(4411),i=n(6330),a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not a constructor")}},6077:function(e,t,n){var r=n(7854),o=n(614),i=r.String,a=r.TypeError;e.exports=function(e){if("object"==typeof e||o(e))return e;throw a("Can't set "+i(e)+" as a prototype")}},1223:function(e,t,n){var r=n(5112),o=n(30),i=n(3070),a=r("unscopables"),A=Array.prototype;null==A[a]&&i.f(A,a,{configurable:!0,value:o(null)}),e.exports=function(e){A[a][e]=!0}},1530:function(e,t,n){"use strict";var r=n(8710).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},5787:function(e,t,n){var r=n(7854),o=n(7976),i=r.TypeError;e.exports=function(e,t){if(o(t,e))return e;throw i("Incorrect invocation")}},9670:function(e,t,n){var r=n(7854),o=n(111),i=r.String,a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not an object")}},4019:function(e){e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},7556:function(e,t,n){var r=n(7293);e.exports=r((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))},260:function(e,t,n){"use strict";var r,o,i,a=n(4019),A=n(9781),s=n(7854),c=n(614),u=n(111),l=n(2597),f=n(648),p=n(6330),d=n(8880),g=n(1320),h=n(3070).f,v=n(7976),m=n(9518),C=n(7674),y=n(5112),b=n(9711),w=s.Int8Array,E=w&&w.prototype,B=s.Uint8ClampedArray,x=B&&B.prototype,k=w&&m(w),I=E&&m(E),S=Object.prototype,T=s.TypeError,L=y("toStringTag"),R=b("TYPED_ARRAY_TAG"),Q=b("TYPED_ARRAY_CONSTRUCTOR"),O=a&&!!C&&"Opera"!==f(s.opera),M=!1,D={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},F={BigInt64Array:8,BigUint64Array:8},P=function(e){if(!u(e))return!1;var t=f(e);return l(D,t)||l(F,t)};for(r in D)(i=(o=s[r])&&o.prototype)?d(i,Q,o):O=!1;for(r in F)(i=(o=s[r])&&o.prototype)&&d(i,Q,o);if((!O||!c(k)||k===Function.prototype)&&(k=function(){throw T("Incorrect invocation")},O))for(r in D)s[r]&&C(s[r],k);if((!O||!I||I===S)&&(I=k.prototype,O))for(r in D)s[r]&&C(s[r].prototype,I);if(O&&m(x)!==I&&C(x,I),A&&!l(I,L))for(r in M=!0,h(I,L,{get:function(){return u(this)?this[R]:void 0}}),D)s[r]&&d(s[r],R,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:O,TYPED_ARRAY_CONSTRUCTOR:Q,TYPED_ARRAY_TAG:M&&R,aTypedArray:function(e){if(P(e))return e;throw T("Target is not a typed array")},aTypedArrayConstructor:function(e){if(c(e)&&(!C||v(k,e)))return e;throw T(p(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n,r){if(A){if(n)for(var o in D){var i=s[o];if(i&&l(i.prototype,e))try{delete i.prototype[e]}catch(n){try{i.prototype[e]=t}catch(e){}}}I[e]&&!n||g(I,e,n?t:O&&E[e]||t,r)}},exportTypedArrayStaticMethod:function(e,t,n){var r,o;if(A){if(C){if(n)for(r in D)if((o=s[r])&&l(o,e))try{delete o[e]}catch(e){}if(k[e]&&!n)return;try{return g(k,e,n?t:O&&k[e]||t)}catch(e){}}for(r in D)!(o=s[r])||o[e]&&!n||g(o,e,t)}},isView:function(e){if(!u(e))return!1;var t=f(e);return"DataView"===t||l(D,t)||l(F,t)},isTypedArray:P,TypedArray:k,TypedArrayPrototype:I}},3331:function(e,t,n){"use strict";var r=n(7854),o=n(1702),i=n(9781),a=n(4019),A=n(6530),s=n(8880),c=n(2248),u=n(7293),l=n(5787),f=n(9303),p=n(7466),d=n(7067),g=n(1179),h=n(9518),v=n(7674),m=n(8006).f,C=n(3070).f,y=n(1285),b=n(1589),w=n(8003),E=n(9909),B=A.PROPER,x=A.CONFIGURABLE,k=E.get,I=E.set,S="ArrayBuffer",T="Wrong index",L=r.ArrayBuffer,R=L,Q=R&&R.prototype,O=r.DataView,M=O&&O.prototype,D=Object.prototype,F=r.Array,P=r.RangeError,U=o(y),N=o([].reverse),W=g.pack,j=g.unpack,Y=function(e){return[255&e]},G=function(e){return[255&e,e>>8&255]},z=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},_=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},V=function(e){return W(e,23,4)},H=function(e){return W(e,52,8)},J=function(e,t){C(e.prototype,t,{get:function(){return k(this)[t]}})},Z=function(e,t,n,r){var o=d(n),i=k(e);if(o+t>i.byteLength)throw P(T);var a=k(i.buffer).bytes,A=o+i.byteOffset,s=b(a,A,A+t);return r?s:N(s)},K=function(e,t,n,r,o,i){var a=d(n),A=k(e);if(a+t>A.byteLength)throw P(T);for(var s=k(A.buffer).bytes,c=a+A.byteOffset,u=r(+o),l=0;l<t;l++)s[c+l]=u[i?l:t-l-1]};if(a){var X=B&&L.name!==S;if(u((function(){L(1)}))&&u((function(){new L(-1)}))&&!u((function(){return new L,new L(1.5),new L(NaN),X&&!x})))X&&x&&s(L,"name",S);else{(R=function(e){return l(this,Q),new L(d(e))}).prototype=Q;for(var q,$=m(L),ee=0;$.length>ee;)(q=$[ee++])in R||s(R,q,L[q]);Q.constructor=R}v&&h(M)!==D&&v(M,D);var te=new O(new R(2)),ne=o(M.setInt8);te.setInt8(0,2147483648),te.setInt8(1,2147483649),!te.getInt8(0)&&te.getInt8(1)||c(M,{setInt8:function(e,t){ne(this,e,t<<24>>24)},setUint8:function(e,t){ne(this,e,t<<24>>24)}},{unsafe:!0})}else Q=(R=function(e){l(this,Q);var t=d(e);I(this,{bytes:U(F(t),0),byteLength:t}),i||(this.byteLength=t)}).prototype,M=(O=function(e,t,n){l(this,M),l(e,Q);var r=k(e).byteLength,o=f(t);if(o<0||o>r)throw P("Wrong offset");if(o+(n=void 0===n?r-o:p(n))>r)throw P("Wrong length");I(this,{buffer:e,byteLength:n,byteOffset:o}),i||(this.buffer=e,this.byteLength=n,this.byteOffset=o)}).prototype,i&&(J(R,"byteLength"),J(O,"buffer"),J(O,"byteLength"),J(O,"byteOffset")),c(M,{getInt8:function(e){return Z(this,1,e)[0]<<24>>24},getUint8:function(e){return Z(this,1,e)[0]},getInt16:function(e){var t=Z(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=Z(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return _(Z(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return _(Z(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return j(Z(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return j(Z(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){K(this,1,e,Y,t)},setUint8:function(e,t){K(this,1,e,Y,t)},setInt16:function(e,t){K(this,2,e,G,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){K(this,2,e,G,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){K(this,4,e,z,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){K(this,4,e,z,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){K(this,4,e,V,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){K(this,8,e,H,t,arguments.length>2?arguments[2]:void 0)}});w(R,S),w(O,"DataView"),e.exports={ArrayBuffer:R,DataView:O}},1048:function(e,t,n){"use strict";var r=n(7908),o=n(1400),i=n(6244),a=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),A=i(n),s=o(e,A),c=o(t,A),u=arguments.length>2?arguments[2]:void 0,l=a((void 0===u?A:o(u,A))-c,A-s),f=1;for(c<s&&s<c+l&&(f=-1,c+=l-1,s+=l-1);l-- >0;)c in n?n[s]=n[c]:delete n[s],s+=f,c+=f;return n}},1285:function(e,t,n){"use strict";var r=n(7908),o=n(1400),i=n(6244);e.exports=function(e){for(var t=r(this),n=i(t),a=arguments.length,A=o(a>1?arguments[1]:void 0,n),s=a>2?arguments[2]:void 0,c=void 0===s?n:o(s,n);c>A;)t[A++]=e;return t}},8533:function(e,t,n){"use strict";var r=n(2092).forEach,o=n(2133)("forEach");e.exports=o?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},7745:function(e,t,n){var r=n(6244);e.exports=function(e,t){for(var n=0,o=r(t),i=new e(o);o>n;)i[n]=t[n++];return i}},8457:function(e,t,n){"use strict";var r=n(7854),o=n(9974),i=n(6916),a=n(7908),A=n(3411),s=n(7659),c=n(4411),u=n(6244),l=n(6135),f=n(8554),p=n(1246),d=r.Array;e.exports=function(e){var t=a(e),n=c(this),r=arguments.length,g=r>1?arguments[1]:void 0,h=void 0!==g;h&&(g=o(g,r>2?arguments[2]:void 0));var v,m,C,y,b,w,E=p(t),B=0;if(!E||this==d&&s(E))for(v=u(t),m=n?new this(v):d(v);v>B;B++)w=h?g(t[B],B):t[B],l(m,B,w);else for(b=(y=f(t,E)).next,m=n?new this:[];!(C=i(b,y)).done;B++)w=h?A(y,g,[C.value,B],!0):C.value,l(m,B,w);return m.length=B,m}},1318:function(e,t,n){var r=n(5656),o=n(1400),i=n(6244),a=function(e){return function(t,n,a){var A,s=r(t),c=i(s),u=o(a,c);if(e&&n!=n){for(;c>u;)if((A=s[u++])!=A)return!0}else for(;c>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},2092:function(e,t,n){var r=n(9974),o=n(1702),i=n(8361),a=n(7908),A=n(6244),s=n(5417),c=o([].push),u=function(e){var t=1==e,n=2==e,o=3==e,u=4==e,l=6==e,f=7==e,p=5==e||l;return function(d,g,h,v){for(var m,C,y=a(d),b=i(y),w=r(g,h),E=A(b),B=0,x=v||s,k=t?x(d,E):n||f?x(d,0):void 0;E>B;B++)if((p||B in b)&&(C=w(m=b[B],B,y),e))if(t)k[B]=C;else if(C)switch(e){case 3:return!0;case 5:return m;case 6:return B;case 2:c(k,m)}else switch(e){case 4:return!1;case 7:c(k,m)}return l?-1:o||u?u:k}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},6583:function(e,t,n){"use strict";var r=n(2104),o=n(5656),i=n(9303),a=n(6244),A=n(2133),s=Math.min,c=[].lastIndexOf,u=!!c&&1/[1].lastIndexOf(1,-0)<0,l=A("lastIndexOf"),f=u||!l;e.exports=f?function(e){if(u)return r(c,this,arguments)||0;var t=o(this),n=a(t),A=n-1;for(arguments.length>1&&(A=s(A,i(arguments[1]))),A<0&&(A=n+A);A>=0;A--)if(A in t&&t[A]===e)return A||0;return-1}:c},1194:function(e,t,n){var r=n(7293),o=n(5112),i=n(7392),a=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},2133:function(e,t,n){"use strict";var r=n(7293);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){throw 1},1)}))}},3671:function(e,t,n){var r=n(7854),o=n(9662),i=n(7908),a=n(8361),A=n(6244),s=r.TypeError,c=function(e){return function(t,n,r,c){o(n);var u=i(t),l=a(u),f=A(u),p=e?f-1:0,d=e?-1:1;if(r<2)for(;;){if(p in l){c=l[p],p+=d;break}if(p+=d,e?p<0:f<=p)throw s("Reduce of empty array with no initial value")}for(;e?p>=0:f>p;p+=d)p in l&&(c=n(c,l[p],p,u));return c}};e.exports={left:c(!1),right:c(!0)}},1589:function(e,t,n){var r=n(7854),o=n(1400),i=n(6244),a=n(6135),A=r.Array,s=Math.max;e.exports=function(e,t,n){for(var r=i(e),c=o(t,r),u=o(void 0===n?r:n,r),l=A(s(u-c,0)),f=0;c<u;c++,f++)a(l,f,e[c]);return l.length=f,l}},206:function(e,t,n){var r=n(1702);e.exports=r([].slice)},4362:function(e,t,n){var r=n(1589),o=Math.floor,i=function(e,t){var n=e.length,s=o(n/2);return n<8?a(e,t):A(e,i(r(e,0,s),t),i(r(e,s),t),t)},a=function(e,t){for(var n,r,o=e.length,i=1;i<o;){for(r=i,n=e[i];r&&t(e[r-1],n)>0;)e[r]=e[--r];r!==i++&&(e[r]=n)}return e},A=function(e,t,n,r){for(var o=t.length,i=n.length,a=0,A=0;a<o||A<i;)e[a+A]=a<o&&A<i?r(t[a],n[A])<=0?t[a++]:n[A++]:a<o?t[a++]:n[A++];return e};e.exports=i},7475:function(e,t,n){var r=n(7854),o=n(3157),i=n(4411),a=n(111),A=n(5112)("species"),s=r.Array;e.exports=function(e){var t;return o(e)&&(t=e.constructor,(i(t)&&(t===s||o(t.prototype))||a(t)&&null===(t=t[A]))&&(t=void 0)),void 0===t?s:t}},5417:function(e,t,n){var r=n(7475);e.exports=function(e,t){return new(r(e))(0===t?0:t)}},4170:function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n={},r=0;r<66;r++)n[t.charAt(r)]=r;e.exports={itoc:t,ctoi:n}},3411:function(e,t,n){var r=n(9670),o=n(9212);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){o(e,"throw",t)}}},7072:function(e,t,n){var r=n(5112)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(e){}return n}},4326:function(e,t,n){var r=n(1702),o=r({}.toString),i=r("".slice);e.exports=function(e){return i(o(e),8,-1)}},648:function(e,t,n){var r=n(7854),o=n(1694),i=n(614),a=n(4326),A=n(5112)("toStringTag"),s=r.Object,c="Arguments"==a(function(){return arguments}());e.exports=o?a:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=s(e),A))?n:c?a(t):"Object"==(r=a(t))&&i(t.callee)?"Arguments":r}},7741:function(e,t,n){var r=n(1702)("".replace),o=String(Error("zxcasd").stack),i=/\n\s*at [^:]*:[^\n]*/,a=i.test(o);e.exports=function(e,t){if(a&&"string"==typeof e)for(;t--;)e=r(e,i,"");return e}},5631:function(e,t,n){"use strict";var r=n(3070).f,o=n(30),i=n(2248),a=n(9974),A=n(5787),s=n(408),c=n(654),u=n(6340),l=n(9781),f=n(2423).fastKey,p=n(9909),d=p.set,g=p.getterFor;e.exports={getConstructor:function(e,t,n,c){var u=e((function(e,r){A(e,p),d(e,{type:t,index:o(null),first:void 0,last:void 0,size:0}),l||(e.size=0),null!=r&&s(r,e[c],{that:e,AS_ENTRIES:n})})),p=u.prototype,h=g(t),v=function(e,t,n){var r,o,i=h(e),a=m(e,t);return a?a.value=n:(i.last=a={index:o=f(t,!0),key:t,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),l?i.size++:e.size++,"F"!==o&&(i.index[o]=a)),e},m=function(e,t){var n,r=h(e),o=f(t);if("F"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==t)return n};return i(p,{clear:function(){for(var e=h(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,l?e.size=0:this.size=0},delete:function(e){var t=this,n=h(t),r=m(t,e);if(r){var o=r.next,i=r.previous;delete n.index[r.index],r.removed=!0,i&&(i.next=o),o&&(o.previous=i),n.first==r&&(n.first=o),n.last==r&&(n.last=i),l?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=h(this),r=a(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!m(this,e)}}),i(p,n?{get:function(e){var t=m(this,e);return t&&t.value},set:function(e,t){return v(this,0===e?0:e,t)}}:{add:function(e){return v(this,e=0===e?0:e,e)}}),l&&r(p,"size",{get:function(){return h(this).size}}),u},setStrong:function(e,t,n){var r=t+" Iterator",o=g(t),i=g(r);c(e,t,(function(e,t){d(this,{type:r,target:e,state:o(e),kind:t,last:void 0})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(t)}}},9320:function(e,t,n){"use strict";var r=n(1702),o=n(2248),i=n(2423).getWeakData,a=n(9670),A=n(111),s=n(5787),c=n(408),u=n(2092),l=n(2597),f=n(9909),p=f.set,d=f.getterFor,g=u.find,h=u.findIndex,v=r([].splice),m=0,C=function(e){return e.frozen||(e.frozen=new y)},y=function(){this.entries=[]},b=function(e,t){return g(e.entries,(function(e){return e[0]===t}))};y.prototype={get:function(e){var t=b(this,e);if(t)return t[1]},has:function(e){return!!b(this,e)},set:function(e,t){var n=b(this,e);n?n[1]=t:this.entries.push([e,t])},delete:function(e){var t=h(this.entries,(function(t){return t[0]===e}));return~t&&v(this.entries,t,1),!!~t}},e.exports={getConstructor:function(e,t,n,r){var u=e((function(e,o){s(e,f),p(e,{type:t,id:m++,frozen:void 0}),null!=o&&c(o,e[r],{that:e,AS_ENTRIES:n})})),f=u.prototype,g=d(t),h=function(e,t,n){var r=g(e),o=i(a(t),!0);return!0===o?C(r).set(t,n):o[r.id]=n,e};return o(f,{delete:function(e){var t=g(this);if(!A(e))return!1;var n=i(e);return!0===n?C(t).delete(e):n&&l(n,t.id)&&delete n[t.id]},has:function(e){var t=g(this);if(!A(e))return!1;var n=i(e);return!0===n?C(t).has(e):n&&l(n,t.id)}}),o(f,n?{get:function(e){var t=g(this);if(A(e)){var n=i(e);return!0===n?C(t).get(e):n?n[t.id]:void 0}},set:function(e,t){return h(this,e,t)}}:{add:function(e){return h(this,e,!0)}}),u}}},7710:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(1702),a=n(4705),A=n(1320),s=n(2423),c=n(408),u=n(5787),l=n(614),f=n(111),p=n(7293),d=n(7072),g=n(8003),h=n(9587);e.exports=function(e,t,n){var v=-1!==e.indexOf("Map"),m=-1!==e.indexOf("Weak"),C=v?"set":"add",y=o[e],b=y&&y.prototype,w=y,E={},B=function(e){var t=i(b[e]);A(b,e,"add"==e?function(e){return t(this,0===e?0:e),this}:"delete"==e?function(e){return!(m&&!f(e))&&t(this,0===e?0:e)}:"get"==e?function(e){return m&&!f(e)?void 0:t(this,0===e?0:e)}:"has"==e?function(e){return!(m&&!f(e))&&t(this,0===e?0:e)}:function(e,n){return t(this,0===e?0:e,n),this})};if(a(e,!l(y)||!(m||b.forEach&&!p((function(){(new y).entries().next()})))))w=n.getConstructor(t,e,v,C),s.enable();else if(a(e,!0)){var x=new w,k=x[C](m?{}:-0,1)!=x,I=p((function(){x.has(1)})),S=d((function(e){new y(e)})),T=!m&&p((function(){for(var e=new y,t=5;t--;)e[C](t,t);return!e.has(-0)}));S||((w=t((function(e,t){u(e,b);var n=h(new y,e,w);return null!=t&&c(t,n[C],{that:n,AS_ENTRIES:v}),n}))).prototype=b,b.constructor=w),(I||T)&&(B("delete"),B("has"),v&&B("get")),(T||k)&&B(C),m&&b.clear&&delete b.clear}return E[e]=w,r({global:!0,forced:w!=y},E),g(w,e),m||n.setStrong(w,e,v),w}},9920:function(e,t,n){var r=n(2597),o=n(3887),i=n(1236),a=n(3070);e.exports=function(e,t,n){for(var A=o(t),s=a.f,c=i.f,u=0;u<A.length;u++){var l=A[u];r(e,l)||n&&r(n,l)||s(e,l,c(t,l))}}},4964:function(e,t,n){var r=n(5112)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,"/./"[e](t)}catch(e){}}return!1}},8544:function(e,t,n){var r=n(7293);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},4230:function(e,t,n){var r=n(1702),o=n(4488),i=n(1340),a=/"/g,A=r("".replace);e.exports=function(e,t,n,r){var s=i(o(e)),c="<"+t;return""!==n&&(c+=" "+n+'="'+A(i(r),a,"&quot;")+'"'),c+">"+s+"</"+t+">"}},4994:function(e,t,n){"use strict";var r=n(3383).IteratorPrototype,o=n(30),i=n(9114),a=n(8003),A=n(7497),s=function(){return this};e.exports=function(e,t,n,c){var u=t+" Iterator";return e.prototype=o(r,{next:i(+!c,n)}),a(e,u,!1,!0),A[u]=s,e}},8880:function(e,t,n){var r=n(9781),o=n(3070),i=n(9114);e.exports=r?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},9114:function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},6135:function(e,t,n){"use strict";var r=n(4948),o=n(3070),i=n(9114);e.exports=function(e,t,n){var a=r(t);a in e?o.f(e,a,i(0,n)):e[a]=n}},5573:function(e,t,n){"use strict";var r=n(7854),o=n(1702),i=n(7293),a=n(6650).start,A=r.RangeError,s=Math.abs,c=Date.prototype,u=c.toISOString,l=o(c.getTime),f=o(c.getUTCDate),p=o(c.getUTCFullYear),d=o(c.getUTCHours),g=o(c.getUTCMilliseconds),h=o(c.getUTCMinutes),v=o(c.getUTCMonth),m=o(c.getUTCSeconds);e.exports=i((function(){return"0385-07-25T07:06:39.999Z"!=u.call(new Date(-50000000000001))}))||!i((function(){u.call(new Date(NaN))}))?function(){if(!isFinite(l(this)))throw A("Invalid time value");var e=this,t=p(e),n=g(e),r=t<0?"-":t>9999?"+":"";return r+a(s(t),r?6:4,0)+"-"+a(v(e)+1,2,0)+"-"+a(f(e),2,0)+"T"+a(d(e),2,0)+":"+a(h(e),2,0)+":"+a(m(e),2,0)+"."+a(n,3,0)+"Z"}:u},8709:function(e,t,n){"use strict";var r=n(7854),o=n(9670),i=n(2140),a=r.TypeError;e.exports=function(e){if(o(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw a("Incorrect hint");return i(this,e)}},654:function(e,t,n){"use strict";var r=n(2109),o=n(6916),i=n(1913),a=n(6530),A=n(614),s=n(4994),c=n(9518),u=n(7674),l=n(8003),f=n(8880),p=n(1320),d=n(5112),g=n(7497),h=n(3383),v=a.PROPER,m=a.CONFIGURABLE,C=h.IteratorPrototype,y=h.BUGGY_SAFARI_ITERATORS,b=d("iterator"),w="keys",E="values",B="entries",x=function(){return this};e.exports=function(e,t,n,a,d,h,k){s(n,t,a);var I,S,T,L=function(e){if(e===d&&D)return D;if(!y&&e in O)return O[e];switch(e){case w:case E:case B:return function(){return new n(this,e)}}return function(){return new n(this)}},R=t+" Iterator",Q=!1,O=e.prototype,M=O[b]||O["@@iterator"]||d&&O[d],D=!y&&M||L(d),F="Array"==t&&O.entries||M;if(F&&(I=c(F.call(new e)))!==Object.prototype&&I.next&&(i||c(I)===C||(u?u(I,C):A(I[b])||p(I,b,x)),l(I,R,!0,!0),i&&(g[R]=x)),v&&d==E&&M&&M.name!==E&&(!i&&m?f(O,"name",E):(Q=!0,D=function(){return o(M,this)})),d)if(S={values:L(E),keys:h?D:L(w),entries:L(B)},k)for(T in S)(y||Q||!(T in O))&&p(O,T,S[T]);else r({target:t,proto:!0,forced:y||Q},S);return i&&!k||O[b]===D||p(O,b,D,{name:d}),g[t]=D,S}},7235:function(e,t,n){var r=n(857),o=n(2597),i=n(6061),a=n(3070).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});o(t,e)||a(t,e,{value:i.f(e)})}},9781:function(e,t,n){var r=n(7293);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},317:function(e,t,n){var r=n(7854),o=n(111),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},3678:function(e){e.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},8324:function(e){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},8509:function(e,t,n){var r=n(317)("span").classList,o=r&&r.constructor&&r.constructor.prototype;e.exports=o===Object.prototype?void 0:o},8886:function(e,t,n){var r=n(8113).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},7871:function(e){e.exports="object"==typeof window},256:function(e,t,n){var r=n(8113);e.exports=/MSIE|Trident/.test(r)},1528:function(e,t,n){var r=n(8113),o=n(7854);e.exports=/ipad|iphone|ipod/i.test(r)&&void 0!==o.Pebble},8334:function(e,t,n){var r=n(8113);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},5268:function(e,t,n){var r=n(4326),o=n(7854);e.exports="process"==r(o.process)},1036:function(e,t,n){var r=n(8113);e.exports=/web0s(?!.*chrome)/i.test(r)},8113:function(e,t,n){var r=n(5005);e.exports=r("navigator","userAgent")||""},7392:function(e,t,n){var r,o,i=n(7854),a=n(8113),A=i.process,s=i.Deno,c=A&&A.versions||s&&s.version,u=c&&c.v8;u&&(o=(r=u.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),e.exports=o},8008:function(e,t,n){var r=n(8113).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},748:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2914:function(e,t,n){var r=n(7293),o=n(9114);e.exports=!r((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",o(1,7)),7!==e.stack)}))},7762:function(e,t,n){"use strict";var r=n(9781),o=n(7293),i=n(9670),a=n(30),A=n(6277),s=Error.prototype.toString,c=o((function(){if(r){var e=a(Object.defineProperty({},"name",{get:function(){return this===e}}));if("true"!==s.call(e))return!0}return"2: 1"!==s.call({message:1,name:2})||"Error"!==s.call({})}));e.exports=c?function(){var e=i(this),t=A(e.name,"Error"),n=A(e.message);return t?n?t+": "+n:t:n}:s},2109:function(e,t,n){var r=n(7854),o=n(1236).f,i=n(8880),a=n(1320),A=n(3505),s=n(9920),c=n(4705);e.exports=function(e,t){var n,u,l,f,p,d=e.target,g=e.global,h=e.stat;if(n=g?r:h?r[d]||A(d,{}):(r[d]||{}).prototype)for(u in t){if(f=t[u],l=e.noTargetGet?(p=o(n,u))&&p.value:n[u],!c(g?u:d+(h?".":"#")+u,e.forced)&&void 0!==l){if(typeof f==typeof l)continue;s(f,l)}(e.sham||l&&l.sham)&&i(f,"sham",!0),a(n,u,f,e)}}},7293:function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},7007:function(e,t,n){"use strict";n(4916);var r=n(1702),o=n(1320),i=n(2261),a=n(7293),A=n(5112),s=n(8880),c=A("species"),u=RegExp.prototype;e.exports=function(e,t,n,l){var f=A(e),p=!a((function(){var t={};return t[f]=function(){return 7},7!=""[e](t)})),d=p&&!a((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[c]=function(){return n},n.flags="",n[f]=/./[f]),n.exec=function(){return t=!0,null},n[f](""),!t}));if(!p||!d||n){var g=r(/./[f]),h=t(f,""[e],(function(e,t,n,o,a){var A=r(e),s=t.exec;return s===i||s===u.exec?p&&!a?{done:!0,value:g(t,n,o)}:{done:!0,value:A(n,t,o)}:{done:!1}}));o(String.prototype,e,h[0]),o(u,f,h[1])}l&&s(u[f],"sham",!0)}},6790:function(e,t,n){"use strict";var r=n(7854),o=n(3157),i=n(6244),a=n(9974),A=r.TypeError,s=function(e,t,n,r,c,u,l,f){for(var p,d,g=c,h=0,v=!!l&&a(l,f);h<r;){if(h in n){if(p=v?v(n[h],h,t):n[h],u>0&&o(p))d=i(p),g=s(e,t,p,d,g,u-1)-1;else{if(g>=9007199254740991)throw A("Exceed the acceptable array length");e[g]=p}g++}h++}return g};e.exports=s},6677:function(e,t,n){var r=n(7293);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},2104:function(e,t,n){var r=n(4374),o=Function.prototype,i=o.apply,a=o.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},9974:function(e,t,n){var r=n(1702),o=n(9662),i=n(4374),a=r(r.bind);e.exports=function(e,t){return o(e),void 0===t?e:i?a(e,t):function(){return e.apply(t,arguments)}}},4374:function(e,t,n){var r=n(7293);e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},7065:function(e,t,n){"use strict";var r=n(7854),o=n(1702),i=n(9662),a=n(111),A=n(2597),s=n(206),c=n(4374),u=r.Function,l=o([].concat),f=o([].join),p={},d=function(e,t,n){if(!A(p,t)){for(var r=[],o=0;o<t;o++)r[o]="a["+o+"]";p[t]=u("C,a","return new C("+f(r,",")+")")}return p[t](e,n)};e.exports=c?u.bind:function(e){var t=i(this),n=t.prototype,r=s(arguments,1),o=function(){var n=l(r,s(arguments));return this instanceof o?d(t,n.length,n):t.apply(e,n)};return a(n)&&(o.prototype=n),o}},6916:function(e,t,n){var r=n(4374),o=Function.prototype.call;e.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},6530:function(e,t,n){var r=n(9781),o=n(2597),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,A=o(i,"name"),s=A&&"something"===function(){}.name,c=A&&(!r||r&&a(i,"name").configurable);e.exports={EXISTS:A,PROPER:s,CONFIGURABLE:c}},1702:function(e,t,n){var r=n(4374),o=Function.prototype,i=o.bind,a=o.call,A=r&&i.bind(a,a);e.exports=r?function(e){return e&&A(e)}:function(e){return e&&function(){return a.apply(e,arguments)}}},5005:function(e,t,n){var r=n(7854),o=n(614),i=function(e){return o(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e]):r[e]&&r[e][t]}},1246:function(e,t,n){var r=n(648),o=n(8173),i=n(7497),a=n(5112)("iterator");e.exports=function(e){if(null!=e)return o(e,a)||o(e,"@@iterator")||i[r(e)]}},8554:function(e,t,n){var r=n(7854),o=n(6916),i=n(9662),a=n(9670),A=n(6330),s=n(1246),c=r.TypeError;e.exports=function(e,t){var n=arguments.length<2?s(e):t;if(i(n))return a(o(n,e));throw c(A(e)+" is not iterable")}},8173:function(e,t,n){var r=n(9662);e.exports=function(e,t){var n=e[t];return null==n?void 0:r(n)}},647:function(e,t,n){var r=n(1702),o=n(7908),i=Math.floor,a=r("".charAt),A=r("".replace),s=r("".slice),c=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,u=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,l,f){var p=n+e.length,d=r.length,g=u;return void 0!==l&&(l=o(l),g=c),A(f,g,(function(o,A){var c;switch(a(A,0)){case"$":return"$";case"&":return e;case"`":return s(t,0,n);case"'":return s(t,p);case"<":c=l[s(A,1,-1)];break;default:var u=+A;if(0===u)return o;if(u>d){var f=i(u/10);return 0===f?o:f<=d?void 0===r[f-1]?a(A,1):r[f-1]+a(A,1):o}c=r[u-1]}return void 0===c?"":c}))}},7854:function(e,t,n){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},2597:function(e,t,n){var r=n(1702),o=n(7908),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return i(o(e),t)}},3501:function(e){e.exports={}},842:function(e,t,n){var r=n(7854);e.exports=function(e,t){var n=r.console;n&&n.error&&(1==arguments.length?n.error(e):n.error(e,t))}},490:function(e,t,n){var r=n(5005);e.exports=r("document","documentElement")},4664:function(e,t,n){var r=n(9781),o=n(7293),i=n(317);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},1179:function(e,t,n){var r=n(7854).Array,o=Math.abs,i=Math.pow,a=Math.floor,A=Math.log,s=Math.LN2;e.exports={pack:function(e,t,n){var c,u,l,f=r(n),p=8*n-t-1,d=(1<<p)-1,g=d>>1,h=23===t?i(2,-24)-i(2,-77):0,v=e<0||0===e&&1/e<0?1:0,m=0;for((e=o(e))!=e||e===1/0?(u=e!=e?1:0,c=d):(c=a(A(e)/s),e*(l=i(2,-c))<1&&(c--,l*=2),(e+=c+g>=1?h/l:h*i(2,1-g))*l>=2&&(c++,l/=2),c+g>=d?(u=0,c=d):c+g>=1?(u=(e*l-1)*i(2,t),c+=g):(u=e*i(2,g-1)*i(2,t),c=0));t>=8;)f[m++]=255&u,u/=256,t-=8;for(c=c<<t|u,p+=t;p>0;)f[m++]=255&c,c/=256,p-=8;return f[--m]|=128*v,f},unpack:function(e,t){var n,r=e.length,o=8*r-t-1,a=(1<<o)-1,A=a>>1,s=o-7,c=r-1,u=e[c--],l=127&u;for(u>>=7;s>0;)l=256*l+e[c--],s-=8;for(n=l&(1<<-s)-1,l>>=-s,s+=t;s>0;)n=256*n+e[c--],s-=8;if(0===l)l=1-A;else{if(l===a)return n?NaN:u?-1/0:1/0;n+=i(2,t),l-=A}return(u?-1:1)*n*i(2,l-t)}}},8361:function(e,t,n){var r=n(7854),o=n(1702),i=n(7293),a=n(4326),A=r.Object,s=o("".split);e.exports=i((function(){return!A("z").propertyIsEnumerable(0)}))?function(e){return"String"==a(e)?s(e,""):A(e)}:A},9587:function(e,t,n){var r=n(614),o=n(111),i=n(7674);e.exports=function(e,t,n){var a,A;return i&&r(a=t.constructor)&&a!==n&&o(A=a.prototype)&&A!==n.prototype&&i(e,A),e}},2788:function(e,t,n){var r=n(1702),o=n(614),i=n(5465),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},8340:function(e,t,n){var r=n(111),o=n(8880);e.exports=function(e,t){r(t)&&"cause"in t&&o(e,"cause",t.cause)}},2423:function(e,t,n){var r=n(2109),o=n(1702),i=n(3501),a=n(111),A=n(2597),s=n(3070).f,c=n(8006),u=n(1156),l=n(2050),f=n(9711),p=n(6677),d=!1,g=f("meta"),h=0,v=function(e){s(e,g,{value:{objectID:"O"+h++,weakData:{}}})},m=e.exports={enable:function(){m.enable=function(){},d=!0;var e=c.f,t=o([].splice),n={};n[g]=1,e(n).length&&(c.f=function(n){for(var r=e(n),o=0,i=r.length;o<i;o++)if(r[o]===g){t(r,o,1);break}return r},r({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:u.f}))},fastKey:function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!A(e,g)){if(!l(e))return"F";if(!t)return"E";v(e)}return e[g].objectID},getWeakData:function(e,t){if(!A(e,g)){if(!l(e))return!0;if(!t)return!1;v(e)}return e[g].weakData},onFreeze:function(e){return p&&d&&l(e)&&!A(e,g)&&v(e),e}};i[g]=!0},9909:function(e,t,n){var r,o,i,a=n(8536),A=n(7854),s=n(1702),c=n(111),u=n(8880),l=n(2597),f=n(5465),p=n(6200),d=n(3501),g="Object already initialized",h=A.TypeError,v=A.WeakMap;if(a||f.state){var m=f.state||(f.state=new v),C=s(m.get),y=s(m.has),b=s(m.set);r=function(e,t){if(y(m,e))throw new h(g);return t.facade=e,b(m,e,t),t},o=function(e){return C(m,e)||{}},i=function(e){return y(m,e)}}else{var w=p("state");d[w]=!0,r=function(e,t){if(l(e,w))throw new h(g);return t.facade=e,u(e,w,t),t},o=function(e){return l(e,w)?e[w]:{}},i=function(e){return l(e,w)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!c(t)||(n=o(t)).type!==e)throw h("Incompatible receiver, "+e+" required");return n}}}},7659:function(e,t,n){var r=n(5112),o=n(7497),i=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||a[i]===e)}},3157:function(e,t,n){var r=n(4326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},614:function(e){e.exports=function(e){return"function"==typeof e}},4411:function(e,t,n){var r=n(1702),o=n(7293),i=n(614),a=n(648),A=n(5005),s=n(2788),c=function(){},u=[],l=A("Reflect","construct"),f=/^\s*(?:class|function)\b/,p=r(f.exec),d=!f.exec(c),g=function(e){if(!i(e))return!1;try{return l(c,u,e),!0}catch(e){return!1}},h=function(e){if(!i(e))return!1;switch(a(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return d||!!p(f,s(e))}catch(e){return!0}};h.sham=!0,e.exports=!l||o((function(){var e;return g(g.call)||!g(Object)||!g((function(){e=!0}))||e}))?h:g},5032:function(e,t,n){var r=n(2597);e.exports=function(e){return void 0!==e&&(r(e,"value")||r(e,"writable"))}},4705:function(e,t,n){var r=n(7293),o=n(614),i=/#|\.prototype\./,a=function(e,t){var n=s[A(e)];return n==u||n!=c&&(o(t)?r(t):!!t)},A=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},s=a.data={},c=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},5988:function(e,t,n){var r=n(111),o=Math.floor;e.exports=Number.isInteger||function(e){return!r(e)&&isFinite(e)&&o(e)===e}},111:function(e,t,n){var r=n(614);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},1913:function(e){e.exports=!1},7850:function(e,t,n){var r=n(111),o=n(4326),i=n(5112)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},2190:function(e,t,n){var r=n(7854),o=n(5005),i=n(614),a=n(7976),A=n(3307),s=r.Object;e.exports=A?function(e){return"symbol"==typeof e}:function(e){var t=o("Symbol");return i(t)&&a(t.prototype,s(e))}},408:function(e,t,n){var r=n(7854),o=n(9974),i=n(6916),a=n(9670),A=n(6330),s=n(7659),c=n(6244),u=n(7976),l=n(8554),f=n(1246),p=n(9212),d=r.TypeError,g=function(e,t){this.stopped=e,this.result=t},h=g.prototype;e.exports=function(e,t,n){var r,v,m,C,y,b,w,E=n&&n.that,B=!(!n||!n.AS_ENTRIES),x=!(!n||!n.IS_ITERATOR),k=!(!n||!n.INTERRUPTED),I=o(t,E),S=function(e){return r&&p(r,"normal",e),new g(!0,e)},T=function(e){return B?(a(e),k?I(e[0],e[1],S):I(e[0],e[1])):k?I(e,S):I(e)};if(x)r=e;else{if(!(v=f(e)))throw d(A(e)+" is not iterable");if(s(v)){for(m=0,C=c(e);C>m;m++)if((y=T(e[m]))&&u(h,y))return y;return new g(!1)}r=l(e,v)}for(b=r.next;!(w=i(b,r)).done;){try{y=T(w.value)}catch(e){p(r,"throw",e)}if("object"==typeof y&&y&&u(h,y))return y}return new g(!1)}},9212:function(e,t,n){var r=n(6916),o=n(9670),i=n(8173);e.exports=function(e,t,n){var a,A;o(e);try{if(!(a=i(e,"return"))){if("throw"===t)throw n;return n}a=r(a,e)}catch(e){A=!0,a=e}if("throw"===t)throw n;if(A)throw a;return o(a),n}},3383:function(e,t,n){"use strict";var r,o,i,a=n(7293),A=n(614),s=n(30),c=n(9518),u=n(1320),l=n(5112),f=n(1913),p=l("iterator"),d=!1;[].keys&&("next"in(i=[].keys())?(o=c(c(i)))!==Object.prototype&&(r=o):d=!0),null==r||a((function(){var e={};return r[p].call(e)!==e}))?r={}:f&&(r=s(r)),A(r[p])||u(r,p,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:d}},7497:function(e){e.exports={}},6244:function(e,t,n){var r=n(7466);e.exports=function(e){return r(e.length)}},6736:function(e){var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||t(10)<22025.465794806718||-2e-17!=t(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:n(e)-1}:t},6130:function(e,t,n){var r=n(4310),o=Math.abs,i=Math.pow,a=i(2,-52),A=i(2,-23),s=i(2,127)*(2-A),c=i(2,-126);e.exports=Math.fround||function(e){var t,n,i=o(e),u=r(e);return i<c?u*(i/c/A+1/a-1/a)*c*A:(n=(t=(1+A/a)*i)-(t-i))>s||n!=n?u*(1/0):u*n}},202:function(e){var t=Math.log,n=Math.LOG10E;e.exports=Math.log10||function(e){return t(e)*n}},6513:function(e){var t=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:t(1+e)}},4310:function(e){e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},5948:function(e,t,n){var r,o,i,a,A,s,c,u,l=n(7854),f=n(9974),p=n(1236).f,d=n(261).set,g=n(8334),h=n(1528),v=n(1036),m=n(5268),C=l.MutationObserver||l.WebKitMutationObserver,y=l.document,b=l.process,w=l.Promise,E=p(l,"queueMicrotask"),B=E&&E.value;B||(r=function(){var e,t;for(m&&(e=b.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(e){throw o?a():i=void 0,e}}i=void 0,e&&e.enter()},g||m||v||!C||!y?!h&&w&&w.resolve?((c=w.resolve(void 0)).constructor=w,u=f(c.then,c),a=function(){u(r)}):m?a=function(){b.nextTick(r)}:(d=f(d,l),a=function(){d(r)}):(A=!0,s=y.createTextNode(""),new C(r).observe(s,{characterData:!0}),a=function(){s.data=A=!A})),e.exports=B||function(e){var t={fn:e,next:void 0};i&&(i.next=t),o||(o=t,a()),i=t}},3366:function(e,t,n){var r=n(7854);e.exports=r.Promise},133:function(e,t,n){var r=n(7392),o=n(7293);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},590:function(e,t,n){var r=n(7293),o=n(5112),i=n(1913),a=o("iterator");e.exports=!r((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),n+=r+e})),i&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[a]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host}))},8536:function(e,t,n){var r=n(7854),o=n(614),i=n(2788),a=r.WeakMap;e.exports=o(a)&&/native code/.test(i(a))},8523:function(e,t,n){"use strict";var r=n(9662),o=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new o(e)}},6277:function(e,t,n){var r=n(1340);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:r(e)}},3929:function(e,t,n){var r=n(7854),o=n(7850),i=r.TypeError;e.exports=function(e){if(o(e))throw i("The method doesn't accept regular expressions");return e}},7023:function(e,t,n){var r=n(7854).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&r(e)}},2814:function(e,t,n){var r=n(7854),o=n(7293),i=n(1702),a=n(1340),A=n(3111).trim,s=n(1361),c=i("".charAt),u=r.parseFloat,l=r.Symbol,f=l&&l.iterator,p=1/u(s+"-0")!=-1/0||f&&!o((function(){u(Object(f))}));e.exports=p?function(e){var t=A(a(e)),n=u(t);return 0===n&&"-"==c(t,0)?-0:n}:u},3009:function(e,t,n){var r=n(7854),o=n(7293),i=n(1702),a=n(1340),A=n(3111).trim,s=n(1361),c=r.parseInt,u=r.Symbol,l=u&&u.iterator,f=/^[+-]?0x/i,p=i(f.exec),d=8!==c(s+"08")||22!==c(s+"0x16")||l&&!o((function(){c(Object(l))}));e.exports=d?function(e,t){var n=A(a(e));return c(n,t>>>0||(p(f,n)?16:10))}:c},1574:function(e,t,n){"use strict";var r=n(9781),o=n(1702),i=n(6916),a=n(7293),A=n(1956),s=n(5181),c=n(5296),u=n(7908),l=n(8361),f=Object.assign,p=Object.defineProperty,d=o([].concat);e.exports=!f||a((function(){if(r&&1!==f({b:1},f(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach((function(e){t[e]=e})),7!=f({},e)[n]||A(f({},t)).join("")!=o}))?function(e,t){for(var n=u(e),o=arguments.length,a=1,f=s.f,p=c.f;o>a;)for(var g,h=l(arguments[a++]),v=f?d(A(h),f(h)):A(h),m=v.length,C=0;m>C;)g=v[C++],r&&!i(p,h,g)||(n[g]=h[g]);return n}:f},30:function(e,t,n){var r,o=n(9670),i=n(6048),a=n(748),A=n(3501),s=n(490),c=n(317),u=n(6200)("IE_PROTO"),l=function(){},f=function(e){return"<script>"+e+"<\/script>"},p=function(e){e.write(f("")),e.close();var t=e.parentWindow.Object;return e=null,t},d=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}var e,t;d="undefined"!=typeof document?document.domain&&r?p(r):((t=c("iframe")).style.display="none",s.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(f("document.F=Object")),e.close(),e.F):p(r);for(var n=a.length;n--;)delete d.prototype[a[n]];return d()};A[u]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(l.prototype=o(e),n=new l,l.prototype=null,n[u]=e):n=d(),void 0===t?n:i.f(n,t)}},6048:function(e,t,n){var r=n(9781),o=n(3353),i=n(3070),a=n(9670),A=n(5656),s=n(1956);t.f=r&&!o?Object.defineProperties:function(e,t){a(e);for(var n,r=A(t),o=s(t),c=o.length,u=0;c>u;)i.f(e,n=o[u++],r[n]);return e}},3070:function(e,t,n){var r=n(7854),o=n(9781),i=n(4664),a=n(3353),A=n(9670),s=n(4948),c=r.TypeError,u=Object.defineProperty,l=Object.getOwnPropertyDescriptor;t.f=o?a?function(e,t,n){if(A(e),t=s(t),A(n),"function"==typeof e&&"prototype"===t&&"value"in n&&"writable"in n&&!n.writable){var r=l(e,t);r&&r.writable&&(e[t]=n.value,n={configurable:"configurable"in n?n.configurable:r.configurable,enumerable:"enumerable"in n?n.enumerable:r.enumerable,writable:!1})}return u(e,t,n)}:u:function(e,t,n){if(A(e),t=s(t),A(n),i)try{return u(e,t,n)}catch(e){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},1236:function(e,t,n){var r=n(9781),o=n(6916),i=n(5296),a=n(9114),A=n(5656),s=n(4948),c=n(2597),u=n(4664),l=Object.getOwnPropertyDescriptor;t.f=r?l:function(e,t){if(e=A(e),t=s(t),u)try{return l(e,t)}catch(e){}if(c(e,t))return a(!o(i.f,e,t),e[t])}},1156:function(e,t,n){var r=n(4326),o=n(5656),i=n(8006).f,a=n(1589),A="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return A&&"Window"==r(e)?function(e){try{return i(e)}catch(e){return a(A)}}(e):i(o(e))}},8006:function(e,t,n){var r=n(6324),o=n(748).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},5181:function(e,t){t.f=Object.getOwnPropertySymbols},9518:function(e,t,n){var r=n(7854),o=n(2597),i=n(614),a=n(7908),A=n(6200),s=n(8544),c=A("IE_PROTO"),u=r.Object,l=u.prototype;e.exports=s?u.getPrototypeOf:function(e){var t=a(e);if(o(t,c))return t[c];var n=t.constructor;return i(n)&&t instanceof n?n.prototype:t instanceof u?l:null}},2050:function(e,t,n){var r=n(7293),o=n(111),i=n(4326),a=n(7556),A=Object.isExtensible,s=r((function(){A(1)}));e.exports=s||a?function(e){return!!o(e)&&(!a||"ArrayBuffer"!=i(e))&&(!A||A(e))}:A},7976:function(e,t,n){var r=n(1702);e.exports=r({}.isPrototypeOf)},6324:function(e,t,n){var r=n(1702),o=n(2597),i=n(5656),a=n(1318).indexOf,A=n(3501),s=r([].push);e.exports=function(e,t){var n,r=i(e),c=0,u=[];for(n in r)!o(A,n)&&o(r,n)&&s(u,n);for(;t.length>c;)o(r,n=t[c++])&&(~a(u,n)||s(u,n));return u}},1956:function(e,t,n){var r=n(6324),o=n(748);e.exports=Object.keys||function(e){return r(e,o)}},5296:function(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);t.f=o?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},9026:function(e,t,n){"use strict";var r=n(1913),o=n(7854),i=n(7293),a=n(8008);e.exports=r||!i((function(){if(!(a&&a<535)){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete o[e]}}))},7674:function(e,t,n){var r=n(1702),o=n(9670),i=n(6077);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=r(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return o(n),i(r),t?e(n,r):n.__proto__=r,n}}():void 0)},4699:function(e,t,n){var r=n(9781),o=n(1702),i=n(1956),a=n(5656),A=o(n(5296).f),s=o([].push),c=function(e){return function(t){for(var n,o=a(t),c=i(o),u=c.length,l=0,f=[];u>l;)n=c[l++],r&&!A(o,n)||s(f,e?[n,o[n]]:o[n]);return f}};e.exports={entries:c(!0),values:c(!1)}},288:function(e,t,n){"use strict";var r=n(1694),o=n(648);e.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},2140:function(e,t,n){var r=n(7854),o=n(6916),i=n(614),a=n(111),A=r.TypeError;e.exports=function(e,t){var n,r;if("string"===t&&i(n=e.toString)&&!a(r=o(n,e)))return r;if(i(n=e.valueOf)&&!a(r=o(n,e)))return r;if("string"!==t&&i(n=e.toString)&&!a(r=o(n,e)))return r;throw A("Can't convert object to primitive value")}},3887:function(e,t,n){var r=n(5005),o=n(1702),i=n(8006),a=n(5181),A=n(9670),s=o([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(A(e)),n=a.f;return n?s(t,n(e)):t}},857:function(e,t,n){var r=n(7854);e.exports=r},2534:function(e){e.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}},9478:function(e,t,n){var r=n(9670),o=n(111),i=n(8523);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},8572:function(e){var t=function(){this.head=null,this.tail=null};t.prototype={add:function(e){var t={item:e,next:null};this.head?this.tail.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return this.head=e.next,this.tail===e&&(this.tail=null),e.item}},e.exports=t},2248:function(e,t,n){var r=n(1320);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},1320:function(e,t,n){var r=n(7854),o=n(614),i=n(2597),a=n(8880),A=n(3505),s=n(2788),c=n(9909),u=n(6530).CONFIGURABLE,l=c.get,f=c.enforce,p=String(String).split("String");(e.exports=function(e,t,n,s){var c,l=!!s&&!!s.unsafe,d=!!s&&!!s.enumerable,g=!!s&&!!s.noTargetGet,h=s&&void 0!==s.name?s.name:t;o(n)&&("Symbol("===String(h).slice(0,7)&&(h="["+String(h).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!i(n,"name")||u&&n.name!==h)&&a(n,"name",h),(c=f(n)).source||(c.source=p.join("string"==typeof h?h:""))),e!==r?(l?!g&&e[t]&&(d=!0):delete e[t],d?e[t]=n:a(e,t,n)):d?e[t]=n:A(t,n)})(Function.prototype,"toString",(function(){return o(this)&&l(this).source||s(this)}))},7651:function(e,t,n){var r=n(7854),o=n(6916),i=n(9670),a=n(614),A=n(4326),s=n(2261),c=r.TypeError;e.exports=function(e,t){var n=e.exec;if(a(n)){var r=o(n,e,t);return null!==r&&i(r),r}if("RegExp"===A(e))return o(s,e,t);throw c("RegExp#exec called on incompatible receiver")}},2261:function(e,t,n){"use strict";var r,o,i=n(6916),a=n(1702),A=n(1340),s=n(7066),c=n(2999),u=n(2309),l=n(30),f=n(9909).get,p=n(9441),d=n(7168),g=u("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,v=h,m=a("".charAt),C=a("".indexOf),y=a("".replace),b=a("".slice),w=(o=/b*/g,i(h,r=/a/,"a"),i(h,o,"a"),0!==r.lastIndex||0!==o.lastIndex),E=c.BROKEN_CARET,B=void 0!==/()??/.exec("")[1];(w||B||E||p||d)&&(v=function(e){var t,n,r,o,a,c,u,p=this,d=f(p),x=A(e),k=d.raw;if(k)return k.lastIndex=p.lastIndex,t=i(v,k,x),p.lastIndex=k.lastIndex,t;var I=d.groups,S=E&&p.sticky,T=i(s,p),L=p.source,R=0,Q=x;if(S&&(T=y(T,"y",""),-1===C(T,"g")&&(T+="g"),Q=b(x,p.lastIndex),p.lastIndex>0&&(!p.multiline||p.multiline&&"\n"!==m(x,p.lastIndex-1))&&(L="(?: "+L+")",Q=" "+Q,R++),n=new RegExp("^(?:"+L+")",T)),B&&(n=new RegExp("^"+L+"$(?!\\s)",T)),w&&(r=p.lastIndex),o=i(h,S?n:p,Q),S?o?(o.input=b(o.input,R),o[0]=b(o[0],R),o.index=p.lastIndex,p.lastIndex+=o[0].length):p.lastIndex=0:w&&o&&(p.lastIndex=p.global?o.index+o[0].length:r),B&&o&&o.length>1&&i(g,o[0],n,(function(){for(a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(o[a]=void 0)})),o&&I)for(o.groups=c=l(null),a=0;a<I.length;a++)c[(u=I[a])[0]]=o[u[1]];return o}),e.exports=v},7066:function(e,t,n){"use strict";var r=n(9670);e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},2999:function(e,t,n){var r=n(7293),o=n(7854).RegExp,i=r((function(){var e=o("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),a=i||r((function(){return!o("a","y").sticky})),A=i||r((function(){var e=o("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));e.exports={BROKEN_CARET:A,MISSED_STICKY:a,UNSUPPORTED_Y:i}},9441:function(e,t,n){var r=n(7293),o=n(7854).RegExp;e.exports=r((function(){var e=o(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)}))},7168:function(e,t,n){var r=n(7293),o=n(7854).RegExp;e.exports=r((function(){var e=o("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")}))},4488:function(e,t,n){var r=n(7854).TypeError;e.exports=function(e){if(null==e)throw r("Can't call method on "+e);return e}},1150:function(e){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},3505:function(e,t,n){var r=n(7854),o=Object.defineProperty;e.exports=function(e,t){try{o(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},6340:function(e,t,n){"use strict";var r=n(5005),o=n(3070),i=n(5112),a=n(9781),A=i("species");e.exports=function(e){var t=r(e),n=o.f;a&&t&&!t[A]&&n(t,A,{configurable:!0,get:function(){return this}})}},8003:function(e,t,n){var r=n(3070).f,o=n(2597),i=n(5112)("toStringTag");e.exports=function(e,t,n){e&&!n&&(e=e.prototype),e&&!o(e,i)&&r(e,i,{configurable:!0,value:t})}},6200:function(e,t,n){var r=n(2309),o=n(9711),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},5465:function(e,t,n){var r=n(7854),o=n(3505),i="__core-js_shared__",a=r[i]||o(i,{});e.exports=a},2309:function(e,t,n){var r=n(1913),o=n(5465);(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.21.0",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.21.0/LICENSE",source:"https://github.com/zloirock/core-js"})},6707:function(e,t,n){var r=n(9670),o=n(9483),i=n(5112)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||null==(n=r(a)[i])?t:o(n)}},3429:function(e,t,n){var r=n(7293);e.exports=function(e){return r((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},8710:function(e,t,n){var r=n(1702),o=n(9303),i=n(1340),a=n(4488),A=r("".charAt),s=r("".charCodeAt),c=r("".slice),u=function(e){return function(t,n){var r,u,l=i(a(t)),f=o(n),p=l.length;return f<0||f>=p?e?"":void 0:(r=s(l,f))<55296||r>56319||f+1===p||(u=s(l,f+1))<56320||u>57343?e?A(l,f):r:e?c(l,f,f+2):u-56320+(r-55296<<10)+65536}};e.exports={codeAt:u(!1),charAt:u(!0)}},7061:function(e,t,n){var r=n(8113);e.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},6650:function(e,t,n){var r=n(1702),o=n(7466),i=n(1340),a=n(8415),A=n(4488),s=r(a),c=r("".slice),u=Math.ceil,l=function(e){return function(t,n,r){var a,l,f=i(A(t)),p=o(n),d=f.length,g=void 0===r?" ":i(r);return p<=d||""==g?f:((l=s(g,u((a=p-d)/g.length))).length>a&&(l=c(l,0,a)),e?f+l:l+f)}};e.exports={start:l(!1),end:l(!0)}},3197:function(e,t,n){"use strict";var r=n(7854),o=n(1702),i=2147483647,a=/[^\0-\u007E]/,A=/[.\u3002\uFF0E\uFF61]/g,s="Overflow: input needs wider integers to process",c=r.RangeError,u=o(A.exec),l=Math.floor,f=String.fromCharCode,p=o("".charCodeAt),d=o([].join),g=o([].push),h=o("".replace),v=o("".split),m=o("".toLowerCase),C=function(e){return e+22+75*(e<26)},y=function(e,t,n){var r=0;for(e=n?l(e/700):e>>1,e+=l(e/t);e>455;)e=l(e/35),r+=36;return l(r+36*e/(e+38))},b=function(e){var t=[];e=function(e){for(var t=[],n=0,r=e.length;n<r;){var o=p(e,n++);if(o>=55296&&o<=56319&&n<r){var i=p(e,n++);56320==(64512&i)?g(t,((1023&o)<<10)+(1023&i)+65536):(g(t,o),n--)}else g(t,o)}return t}(e);var n,r,o=e.length,a=128,A=0,u=72;for(n=0;n<e.length;n++)(r=e[n])<128&&g(t,f(r));var h=t.length,v=h;for(h&&g(t,"-");v<o;){var m=i;for(n=0;n<e.length;n++)(r=e[n])>=a&&r<m&&(m=r);var b=v+1;if(m-a>l((i-A)/b))throw c(s);for(A+=(m-a)*b,a=m,n=0;n<e.length;n++){if((r=e[n])<a&&++A>i)throw c(s);if(r==a){for(var w=A,E=36;;){var B=E<=u?1:E>=u+26?26:E-u;if(w<B)break;var x=w-B,k=36-B;g(t,f(C(B+x%k))),w=l(x/k),E+=36}g(t,f(C(w))),u=y(A,b,v==h),A=0,v++}}A++,a++}return d(t,"")};e.exports=function(e){var t,n,r=[],o=v(h(m(e),A,"."),".");for(t=0;t<o.length;t++)n=o[t],g(r,u(a,n)?"xn--"+b(n):n);return d(r,".")}},8415:function(e,t,n){"use strict";var r=n(7854),o=n(9303),i=n(1340),a=n(4488),A=r.RangeError;e.exports=function(e){var t=i(a(this)),n="",r=o(e);if(r<0||r==1/0)throw A("Wrong number of repetitions");for(;r>0;(r>>>=1)&&(t+=t))1&r&&(n+=t);return n}},6091:function(e,t,n){var r=n(6530).PROPER,o=n(7293),i=n(1361);e.exports=function(e){return o((function(){return!!i[e]()||"​…᠎"!=="​…᠎"[e]()||r&&i[e].name!==e}))}},3111:function(e,t,n){var r=n(1702),o=n(4488),i=n(1340),a=n(1361),A=r("".replace),s="["+a+"]",c=RegExp("^"+s+s+"*"),u=RegExp(s+s+"*$"),l=function(e){return function(t){var n=i(o(t));return 1&e&&(n=A(n,c,"")),2&e&&(n=A(n,u,"")),n}};e.exports={start:l(1),end:l(2),trim:l(3)}},261:function(e,t,n){var r,o,i,a,A=n(7854),s=n(2104),c=n(9974),u=n(614),l=n(2597),f=n(7293),p=n(490),d=n(206),g=n(317),h=n(8053),v=n(8334),m=n(5268),C=A.setImmediate,y=A.clearImmediate,b=A.process,w=A.Dispatch,E=A.Function,B=A.MessageChannel,x=A.String,k=0,I={};try{r=A.location}catch(e){}var S=function(e){if(l(I,e)){var t=I[e];delete I[e],t()}},T=function(e){return function(){S(e)}},L=function(e){S(e.data)},R=function(e){A.postMessage(x(e),r.protocol+"//"+r.host)};C&&y||(C=function(e){h(arguments.length,1);var t=u(e)?e:E(e),n=d(arguments,1);return I[++k]=function(){s(t,void 0,n)},o(k),k},y=function(e){delete I[e]},m?o=function(e){b.nextTick(T(e))}:w&&w.now?o=function(e){w.now(T(e))}:B&&!v?(a=(i=new B).port2,i.port1.onmessage=L,o=c(a.postMessage,a)):A.addEventListener&&u(A.postMessage)&&!A.importScripts&&r&&"file:"!==r.protocol&&!f(R)?(o=R,A.addEventListener("message",L,!1)):o="onreadystatechange"in g("script")?function(e){p.appendChild(g("script")).onreadystatechange=function(){p.removeChild(this),S(e)}}:function(e){setTimeout(T(e),0)}),e.exports={set:C,clear:y}},863:function(e,t,n){var r=n(1702);e.exports=r(1..valueOf)},1400:function(e,t,n){var r=n(9303),o=Math.max,i=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):i(n,t)}},7067:function(e,t,n){var r=n(7854),o=n(9303),i=n(7466),a=r.RangeError;e.exports=function(e){if(void 0===e)return 0;var t=o(e),n=i(t);if(t!==n)throw a("Wrong length or index");return n}},5656:function(e,t,n){var r=n(8361),o=n(4488);e.exports=function(e){return r(o(e))}},9303:function(e){var t=Math.ceil,n=Math.floor;e.exports=function(e){var r=+e;return r!=r||0===r?0:(r>0?n:t)(r)}},7466:function(e,t,n){var r=n(9303),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},7908:function(e,t,n){var r=n(7854),o=n(4488),i=r.Object;e.exports=function(e){return i(o(e))}},4590:function(e,t,n){var r=n(7854),o=n(3002),i=r.RangeError;e.exports=function(e,t){var n=o(e);if(n%t)throw i("Wrong offset");return n}},3002:function(e,t,n){var r=n(7854),o=n(9303),i=r.RangeError;e.exports=function(e){var t=o(e);if(t<0)throw i("The argument can't be less than 0");return t}},7593:function(e,t,n){var r=n(7854),o=n(6916),i=n(111),a=n(2190),A=n(8173),s=n(2140),c=n(5112),u=r.TypeError,l=c("toPrimitive");e.exports=function(e,t){if(!i(e)||a(e))return e;var n,r=A(e,l);if(r){if(void 0===t&&(t="default"),n=o(r,e,t),!i(n)||a(n))return n;throw u("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},4948:function(e,t,n){var r=n(7593),o=n(2190);e.exports=function(e){var t=r(e,"string");return o(t)?t:t+""}},1694:function(e,t,n){var r={};r[n(5112)("toStringTag")]="z",e.exports="[object z]"===String(r)},1340:function(e,t,n){var r=n(7854),o=n(648),i=r.String;e.exports=function(e){if("Symbol"===o(e))throw TypeError("Cannot convert a Symbol value to a string");return i(e)}},4038:function(e,t,n){var r=n(5268);e.exports=function(e){try{if(r)return Function('return require("'+e+'")')()}catch(e){}}},6330:function(e,t,n){var r=n(7854).String;e.exports=function(e){try{return r(e)}catch(e){return"Object"}}},9843:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(6916),a=n(9781),A=n(3832),s=n(260),c=n(3331),u=n(5787),l=n(9114),f=n(8880),p=n(5988),d=n(7466),g=n(7067),h=n(4590),v=n(4948),m=n(2597),C=n(648),y=n(111),b=n(2190),w=n(30),E=n(7976),B=n(7674),x=n(8006).f,k=n(7321),I=n(2092).forEach,S=n(6340),T=n(3070),L=n(1236),R=n(9909),Q=n(9587),O=R.get,M=R.set,D=T.f,F=L.f,P=Math.round,U=o.RangeError,N=c.ArrayBuffer,W=N.prototype,j=c.DataView,Y=s.NATIVE_ARRAY_BUFFER_VIEWS,G=s.TYPED_ARRAY_CONSTRUCTOR,z=s.TYPED_ARRAY_TAG,_=s.TypedArray,V=s.TypedArrayPrototype,H=s.aTypedArrayConstructor,J=s.isTypedArray,Z="BYTES_PER_ELEMENT",K="Wrong length",X=function(e,t){H(e);for(var n=0,r=t.length,o=new e(r);r>n;)o[n]=t[n++];return o},q=function(e,t){D(e,t,{get:function(){return O(this)[t]}})},$=function(e){var t;return E(W,e)||"ArrayBuffer"==(t=C(e))||"SharedArrayBuffer"==t},ee=function(e,t){return J(e)&&!b(t)&&t in e&&p(+t)&&t>=0},te=function(e,t){return t=v(t),ee(e,t)?l(2,e[t]):F(e,t)},ne=function(e,t,n){return t=v(t),!(ee(e,t)&&y(n)&&m(n,"value"))||m(n,"get")||m(n,"set")||n.configurable||m(n,"writable")&&!n.writable||m(n,"enumerable")&&!n.enumerable?D(e,t,n):(e[t]=n.value,e)};a?(Y||(L.f=te,T.f=ne,q(V,"buffer"),q(V,"byteOffset"),q(V,"byteLength"),q(V,"length")),r({target:"Object",stat:!0,forced:!Y},{getOwnPropertyDescriptor:te,defineProperty:ne}),e.exports=function(e,t,n){var a=e.match(/\d+$/)[0]/8,s=e+(n?"Clamped":"")+"Array",c="get"+e,l="set"+e,p=o[s],v=p,m=v&&v.prototype,C={},b=function(e,t){D(e,t,{get:function(){return function(e,t){var n=O(e);return n.view[c](t*a+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,r){var o=O(e);n&&(r=(r=P(r))<0?0:r>255?255:255&r),o.view[l](t*a+o.byteOffset,r,!0)}(this,t,e)},enumerable:!0})};Y?A&&(v=t((function(e,t,n,r){return u(e,m),Q(y(t)?$(t)?void 0!==r?new p(t,h(n,a),r):void 0!==n?new p(t,h(n,a)):new p(t):J(t)?X(v,t):i(k,v,t):new p(g(t)),e,v)})),B&&B(v,_),I(x(p),(function(e){e in v||f(v,e,p[e])})),v.prototype=m):(v=t((function(e,t,n,r){u(e,m);var o,A,s,c=0,l=0;if(y(t)){if(!$(t))return J(t)?X(v,t):i(k,v,t);o=t,l=h(n,a);var f=t.byteLength;if(void 0===r){if(f%a)throw U(K);if((A=f-l)<0)throw U(K)}else if((A=d(r)*a)+l>f)throw U(K);s=A/a}else s=g(t),o=new N(A=s*a);for(M(e,{buffer:o,byteOffset:l,byteLength:A,length:s,view:new j(o)});c<s;)b(e,c++)})),B&&B(v,_),m=v.prototype=w(V)),m.constructor!==v&&f(m,"constructor",v),f(m,G,v),z&&f(m,z,s),C[s]=v,r({global:!0,forced:v!=p,sham:!Y},C),Z in v||f(v,Z,a),Z in m||f(m,Z,a),S(s)}):e.exports=function(){}},3832:function(e,t,n){var r=n(7854),o=n(7293),i=n(7072),a=n(260).NATIVE_ARRAY_BUFFER_VIEWS,A=r.ArrayBuffer,s=r.Int8Array;e.exports=!a||!o((function(){s(1)}))||!o((function(){new s(-1)}))||!i((function(e){new s,new s(null),new s(1.5),new s(e)}),!0)||o((function(){return 1!==new s(new A(2),1,void 0).length}))},3074:function(e,t,n){var r=n(7745),o=n(6304);e.exports=function(e,t){return r(o(e),t)}},7321:function(e,t,n){var r=n(9974),o=n(6916),i=n(9483),a=n(7908),A=n(6244),s=n(8554),c=n(1246),u=n(7659),l=n(260).aTypedArrayConstructor;e.exports=function(e){var t,n,f,p,d,g,h=i(this),v=a(e),m=arguments.length,C=m>1?arguments[1]:void 0,y=void 0!==C,b=c(v);if(b&&!u(b))for(g=(d=s(v,b)).next,v=[];!(p=o(g,d)).done;)v.push(p.value);for(y&&m>2&&(C=r(C,arguments[2])),n=A(v),f=new(l(h))(n),t=0;n>t;t++)f[t]=y?C(v[t],t):v[t];return f}},6304:function(e,t,n){var r=n(260),o=n(6707),i=r.TYPED_ARRAY_CONSTRUCTOR,a=r.aTypedArrayConstructor;e.exports=function(e){return a(o(e,e[i]))}},9711:function(e,t,n){var r=n(1702),o=0,i=Math.random(),a=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++o+i,36)}},3307:function(e,t,n){var r=n(133);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:function(e,t,n){var r=n(9781),o=n(7293);e.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},8053:function(e,t,n){var r=n(7854).TypeError;e.exports=function(e,t){if(e<t)throw r("Not enough arguments");return e}},6061:function(e,t,n){var r=n(5112);t.f=r},5112:function(e,t,n){var r=n(7854),o=n(2309),i=n(2597),a=n(9711),A=n(133),s=n(3307),c=o("wks"),u=r.Symbol,l=u&&u.for,f=s?u:u&&u.withoutSetter||a;e.exports=function(e){if(!i(c,e)||!A&&"string"!=typeof c[e]){var t="Symbol."+e;A&&i(u,e)?c[e]=u[e]:c[e]=s&&l?l(t):f(t)}return c[e]}},1361:function(e){e.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},9191:function(e,t,n){"use strict";var r=n(5005),o=n(2597),i=n(8880),a=n(7976),A=n(7674),s=n(9920),c=n(9587),u=n(6277),l=n(8340),f=n(7741),p=n(2914),d=n(1913);e.exports=function(e,t,n,g){var h=g?2:1,v=e.split("."),m=v[v.length-1],C=r.apply(null,v);if(C){var y=C.prototype;if(!d&&o(y,"cause")&&delete y.cause,!n)return C;var b=r("Error"),w=t((function(e,t){var n=u(g?t:e,void 0),r=g?new C(e):new C;return void 0!==n&&i(r,"message",n),p&&i(r,"stack",f(r.stack,2)),this&&a(y,this)&&c(r,this,w),arguments.length>h&&l(r,arguments[h]),r}));if(w.prototype=y,"Error"!==m&&(A?A(w,b):s(w,b,{name:!0})),s(w,C),!d)try{y.name!==m&&i(y,"name",m),y.constructor=w}catch(e){}return w}}},2120:function(e,t,n){var r=n(2109),o=n(5005),i=n(2104),a=n(7293),A=n(9191),s="AggregateError",c=o(s),u=!a((function(){return 1!==c([1]).errors[0]}))&&a((function(){return 7!==c([1],s,{cause:7}).cause}));r({global:!0,forced:u},{AggregateError:A(s,(function(e){return function(t,n){return i(e,this,arguments)}}),u,!0)})},9170:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(7976),a=n(9518),A=n(7674),s=n(9920),c=n(30),u=n(8880),l=n(9114),f=n(7741),p=n(8340),d=n(408),g=n(6277),h=n(5112),v=n(2914),m=h("toStringTag"),C=o.Error,y=[].push,b=function(e,t){var n,r=arguments.length>2?arguments[2]:void 0,o=i(w,this);A?n=A(new C,o?a(this):w):(n=o?this:c(w),u(n,m,"Error")),void 0!==t&&u(n,"message",g(t)),v&&u(n,"stack",f(n.stack,1)),p(n,r);var s=[];return d(e,y,{that:s}),u(n,"errors",s),n};A?A(b,C):s(b,C,{name:!0});var w=b.prototype=c(C.prototype,{constructor:l(1,b),message:l(1,""),name:l(1,"AggregateError")});r({global:!0},{AggregateError:b})},8264:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(3331),a=n(6340),A=i.ArrayBuffer;r({global:!0,forced:o.ArrayBuffer!==A},{ArrayBuffer:A}),a("ArrayBuffer")},6938:function(e,t,n){var r=n(2109),o=n(260);r({target:"ArrayBuffer",stat:!0,forced:!o.NATIVE_ARRAY_BUFFER_VIEWS},{isView:o.isView})},9575:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(7293),a=n(3331),A=n(9670),s=n(1400),c=n(7466),u=n(6707),l=a.ArrayBuffer,f=a.DataView,p=f.prototype,d=o(l.prototype.slice),g=o(p.getUint8),h=o(p.setUint8);r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:i((function(){return!new l(2).slice(1,void 0).byteLength}))},{slice:function(e,t){if(d&&void 0===t)return d(A(this),e);for(var n=A(this).byteLength,r=s(e,n),o=s(void 0===t?n:t,n),i=new(u(this,l))(c(o-r)),a=new f(this),p=new f(i),v=0;r<o;)h(p,v++,g(a,r++));return i}})},2262:function(e,t,n){"use strict";var r=n(2109),o=n(7908),i=n(6244),a=n(9303),A=n(1223);r({target:"Array",proto:!0},{at:function(e){var t=o(this),n=i(t),r=a(e),A=r>=0?r:n+r;return A<0||A>=n?void 0:t[A]}}),A("at")},2222:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(7293),a=n(3157),A=n(111),s=n(7908),c=n(6244),u=n(6135),l=n(5417),f=n(1194),p=n(5112),d=n(7392),g=p("isConcatSpreadable"),h=9007199254740991,v="Maximum allowed index exceeded",m=o.TypeError,C=d>=51||!i((function(){var e=[];return e[g]=!1,e.concat()[0]!==e})),y=f("concat"),b=function(e){if(!A(e))return!1;var t=e[g];return void 0!==t?!!t:a(e)};r({target:"Array",proto:!0,forced:!C||!y},{concat:function(e){var t,n,r,o,i,a=s(this),A=l(a,0),f=0;for(t=-1,r=arguments.length;t<r;t++)if(b(i=-1===t?a:arguments[t])){if(f+(o=c(i))>h)throw m(v);for(n=0;n<o;n++,f++)n in i&&u(A,f,i[n])}else{if(f>=h)throw m(v);u(A,f++,i)}return A.length=f,A}})},545:function(e,t,n){var r=n(2109),o=n(1048),i=n(1223);r({target:"Array",proto:!0},{copyWithin:o}),i("copyWithin")},6541:function(e,t,n){"use strict";var r=n(2109),o=n(2092).every;r({target:"Array",proto:!0,forced:!n(2133)("every")},{every:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},3290:function(e,t,n){var r=n(2109),o=n(1285),i=n(1223);r({target:"Array",proto:!0},{fill:o}),i("fill")},7327:function(e,t,n){"use strict";var r=n(2109),o=n(2092).filter;r({target:"Array",proto:!0,forced:!n(1194)("filter")},{filter:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},4553:function(e,t,n){"use strict";var r=n(2109),o=n(2092).findIndex,i=n(1223),a="findIndex",A=!0;a in[]&&Array(1).findIndex((function(){A=!1})),r({target:"Array",proto:!0,forced:A},{findIndex:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i(a)},9826:function(e,t,n){"use strict";var r=n(2109),o=n(2092).find,i=n(1223),a="find",A=!0;a in[]&&Array(1).find((function(){A=!1})),r({target:"Array",proto:!0,forced:A},{find:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i(a)},6535:function(e,t,n){"use strict";var r=n(2109),o=n(6790),i=n(9662),a=n(7908),A=n(6244),s=n(5417);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),r=A(n);return i(e),(t=s(n,0)).length=o(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},4944:function(e,t,n){"use strict";var r=n(2109),o=n(6790),i=n(7908),a=n(6244),A=n(9303),s=n(5417);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=i(this),n=a(t),r=s(t,0);return r.length=o(r,t,t,n,0,void 0===e?1:A(e)),r}})},9554:function(e,t,n){"use strict";var r=n(2109),o=n(8533);r({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},1038:function(e,t,n){var r=n(2109),o=n(8457);r({target:"Array",stat:!0,forced:!n(7072)((function(e){Array.from(e)}))},{from:o})},6699:function(e,t,n){"use strict";var r=n(2109),o=n(1318).includes,i=n(1223);r({target:"Array",proto:!0},{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i("includes")},2772:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(1318).indexOf,a=n(2133),A=o([].indexOf),s=!!A&&1/A([1],1,-0)<0,c=a("indexOf");r({target:"Array",proto:!0,forced:s||!c},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return s?A(this,e,t)||0:i(this,e,t)}})},9753:function(e,t,n){n(2109)({target:"Array",stat:!0},{isArray:n(3157)})},6992:function(e,t,n){"use strict";var r=n(5656),o=n(1223),i=n(7497),a=n(9909),A=n(3070).f,s=n(654),c=n(1913),u=n(9781),l="Array Iterator",f=a.set,p=a.getterFor(l);e.exports=s(Array,"Array",(function(e,t){f(this,{type:l,target:r(e),index:0,kind:t})}),(function(){var e=p(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values");var d=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!c&&u&&"values"!==d.name)try{A(d,"name",{value:"values"})}catch(e){}},9600:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(8361),a=n(5656),A=n(2133),s=o([].join),c=i!=Object,u=A("join",",");r({target:"Array",proto:!0,forced:c||!u},{join:function(e){return s(a(this),void 0===e?",":e)}})},4986:function(e,t,n){var r=n(2109),o=n(6583);r({target:"Array",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},1249:function(e,t,n){"use strict";var r=n(2109),o=n(2092).map;r({target:"Array",proto:!0,forced:!n(1194)("map")},{map:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},6572:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(7293),a=n(4411),A=n(6135),s=o.Array;r({target:"Array",stat:!0,forced:i((function(){function e(){}return!(s.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new(a(this)?this:s)(t);t>e;)A(n,e,arguments[e++]);return n.length=t,n}})},6644:function(e,t,n){"use strict";var r=n(2109),o=n(3671).right,i=n(2133),a=n(7392),A=n(5268);r({target:"Array",proto:!0,forced:!i("reduceRight")||!A&&a>79&&a<83},{reduceRight:function(e){return o(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},5827:function(e,t,n){"use strict";var r=n(2109),o=n(3671).left,i=n(2133),a=n(7392),A=n(5268);r({target:"Array",proto:!0,forced:!i("reduce")||!A&&a>79&&a<83},{reduce:function(e){var t=arguments.length;return o(this,e,t,t>1?arguments[1]:void 0)}})},5069:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(3157),a=o([].reverse),A=[1,2];r({target:"Array",proto:!0,forced:String(A)===String(A.reverse())},{reverse:function(){return i(this)&&(this.length=this.length),a(this)}})},7042:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(3157),a=n(4411),A=n(111),s=n(1400),c=n(6244),u=n(5656),l=n(6135),f=n(5112),p=n(1194),d=n(206),g=p("slice"),h=f("species"),v=o.Array,m=Math.max;r({target:"Array",proto:!0,forced:!g},{slice:function(e,t){var n,r,o,f=u(this),p=c(f),g=s(e,p),C=s(void 0===t?p:t,p);if(i(f)&&(n=f.constructor,(a(n)&&(n===v||i(n.prototype))||A(n)&&null===(n=n[h]))&&(n=void 0),n===v||void 0===n))return d(f,g,C);for(r=new(void 0===n?v:n)(m(C-g,0)),o=0;g<C;g++,o++)g in f&&l(r,o,f[g]);return r.length=o,r}})},5212:function(e,t,n){"use strict";var r=n(2109),o=n(2092).some;r({target:"Array",proto:!0,forced:!n(2133)("some")},{some:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},2707:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(9662),a=n(7908),A=n(6244),s=n(1340),c=n(7293),u=n(4362),l=n(2133),f=n(8886),p=n(256),d=n(7392),g=n(8008),h=[],v=o(h.sort),m=o(h.push),C=c((function(){h.sort(void 0)})),y=c((function(){h.sort(null)})),b=l("sort"),w=!c((function(){if(d)return d<70;if(!(f&&f>3)){if(p)return!0;if(g)return g<603;var e,t,n,r,o="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)h.push({k:t+r,v:n})}for(h.sort((function(e,t){return t.v-e.v})),r=0;r<h.length;r++)t=h[r].k.charAt(0),o.charAt(o.length-1)!==t&&(o+=t);return"DGBEFHACIJK"!==o}}));r({target:"Array",proto:!0,forced:C||!y||!b||!w},{sort:function(e){void 0!==e&&i(e);var t=a(this);if(w)return void 0===e?v(t):v(t,e);var n,r,o=[],c=A(t);for(r=0;r<c;r++)r in t&&m(o,t[r]);for(u(o,function(e){return function(t,n){return void 0===n?-1:void 0===t?1:void 0!==e?+e(t,n)||0:s(t)>s(n)?1:-1}}(e)),n=o.length,r=0;r<n;)t[r]=o[r++];for(;r<c;)delete t[r++];return t}})},8706:function(e,t,n){n(6340)("Array")},561:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(1400),a=n(9303),A=n(6244),s=n(7908),c=n(5417),u=n(6135),l=n(1194)("splice"),f=o.TypeError,p=Math.max,d=Math.min,g=9007199254740991,h="Maximum allowed length exceeded";r({target:"Array",proto:!0,forced:!l},{splice:function(e,t){var n,r,o,l,v,m,C=s(this),y=A(C),b=i(e,y),w=arguments.length;if(0===w?n=r=0:1===w?(n=0,r=y-b):(n=w-2,r=d(p(a(t),0),y-b)),y+n-r>g)throw f(h);for(o=c(C,r),l=0;l<r;l++)(v=b+l)in C&&u(o,l,C[v]);if(o.length=r,n<r){for(l=b;l<y-r;l++)m=l+n,(v=l+r)in C?C[m]=C[v]:delete C[m];for(l=y;l>y-r+n;l--)delete C[l-1]}else if(n>r)for(l=y-r;l>b;l--)m=l+n-1,(v=l+r-1)in C?C[m]=C[v]:delete C[m];for(l=0;l<n;l++)C[l+b]=arguments[l+2];return C.length=y-r+n,o}})},9244:function(e,t,n){n(1223)("flatMap")},3792:function(e,t,n){n(1223)("flat")},6716:function(e,t,n){var r=n(2109),o=n(3331);r({global:!0,forced:!n(4019)},{DataView:o.DataView})},3016:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(7293)((function(){return 120!==new Date(16e11).getYear()})),a=o(Date.prototype.getFullYear);r({target:"Date",proto:!0,forced:i},{getYear:function(){return a(this)-1900}})},3843:function(e,t,n){var r=n(2109),o=n(7854),i=n(1702),a=o.Date,A=i(a.prototype.getTime);r({target:"Date",stat:!0},{now:function(){return A(new a)}})},1801:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(9303),a=Date.prototype,A=o(a.getTime),s=o(a.setFullYear);r({target:"Date",proto:!0},{setYear:function(e){A(this);var t=i(e);return s(this,0<=t&&t<=99?t+1900:t)}})},9550:function(e,t,n){n(2109)({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},8733:function(e,t,n){var r=n(2109),o=n(5573);r({target:"Date",proto:!0,forced:Date.prototype.toISOString!==o},{toISOString:o})},5735:function(e,t,n){"use strict";var r=n(2109),o=n(7293),i=n(7908),a=n(7593);r({target:"Date",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=i(this),n=a(t,"number");return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},6078:function(e,t,n){var r=n(2597),o=n(1320),i=n(8709),a=n(5112)("toPrimitive"),A=Date.prototype;r(A,a)||o(A,a,i)},3710:function(e,t,n){var r=n(1702),o=n(1320),i=Date.prototype,a="Invalid Date",A=r(i.toString),s=r(i.getTime);String(new Date(NaN))!=a&&o(i,"toString",(function(){var e=s(this);return e==e?A(this):a}))},1703:function(e,t,n){var r=n(2109),o=n(7854),i=n(2104),a=n(9191),A=o.WebAssembly,s=7!==Error("e",{cause:7}).cause,c=function(e,t){var n={};n[e]=a(e,t,s),r({global:!0,forced:s},n)},u=function(e,t){if(A&&A[e]){var n={};n[e]=a("WebAssembly."+e,t,s),r({target:"WebAssembly",stat:!0,forced:s},n)}};c("Error",(function(e){return function(t){return i(e,this,arguments)}})),c("EvalError",(function(e){return function(t){return i(e,this,arguments)}})),c("RangeError",(function(e){return function(t){return i(e,this,arguments)}})),c("ReferenceError",(function(e){return function(t){return i(e,this,arguments)}})),c("SyntaxError",(function(e){return function(t){return i(e,this,arguments)}})),c("TypeError",(function(e){return function(t){return i(e,this,arguments)}})),c("URIError",(function(e){return function(t){return i(e,this,arguments)}})),u("CompileError",(function(e){return function(t){return i(e,this,arguments)}})),u("LinkError",(function(e){return function(t){return i(e,this,arguments)}})),u("RuntimeError",(function(e){return function(t){return i(e,this,arguments)}}))},6647:function(e,t,n){var r=n(1320),o=n(7762),i=Error.prototype;i.toString!==o&&r(i,"toString",o)},2130:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(1340),a=o("".charAt),A=o("".charCodeAt),s=o(/./.exec),c=o(1..toString),u=o("".toUpperCase),l=/[\w*+\-./@]/,f=function(e,t){for(var n=c(e,16);n.length<t;)n="0"+n;return n};r({global:!0},{escape:function(e){for(var t,n,r=i(e),o="",c=r.length,p=0;p<c;)t=a(r,p++),s(l,t)?o+=t:o+=(n=A(t,0))<256?"%"+f(n,2):"%u"+u(f(n,4));return o}})},4812:function(e,t,n){var r=n(2109),o=n(7065);r({target:"Function",proto:!0,forced:Function.bind!==o},{bind:o})},4855:function(e,t,n){"use strict";var r=n(614),o=n(111),i=n(3070),a=n(9518),A=n(5112)("hasInstance"),s=Function.prototype;A in s||i.f(s,A,{value:function(e){if(!r(this)||!o(e))return!1;var t=this.prototype;if(!o(t))return e instanceof this;for(;e=a(e);)if(t===e)return!0;return!1}})},8309:function(e,t,n){var r=n(9781),o=n(6530).EXISTS,i=n(1702),a=n(3070).f,A=Function.prototype,s=i(A.toString),c=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,u=i(c.exec);r&&!o&&a(A,"name",{configurable:!0,get:function(){try{return u(c,s(this))[1]}catch(e){return""}}})},5837:function(e,t,n){n(2109)({global:!0},{globalThis:n(7854)})},8862:function(e,t,n){var r=n(2109),o=n(7854),i=n(5005),a=n(2104),A=n(1702),s=n(7293),c=o.Array,u=i("JSON","stringify"),l=A(/./.exec),f=A("".charAt),p=A("".charCodeAt),d=A("".replace),g=A(1..toString),h=/[\uD800-\uDFFF]/g,v=/^[\uD800-\uDBFF]$/,m=/^[\uDC00-\uDFFF]$/,C=function(e,t,n){var r=f(n,t-1),o=f(n,t+1);return l(v,e)&&!l(m,o)||l(m,e)&&!l(v,r)?"\\u"+g(p(e,0),16):e},y=s((function(){return'"\\udf06\\ud834"'!==u("\udf06\ud834")||'"\\udead"'!==u("\udead")}));u&&r({target:"JSON",stat:!0,forced:y},{stringify:function(e,t,n){for(var r=0,o=arguments.length,i=c(o);r<o;r++)i[r]=arguments[r];var A=a(u,null,i);return"string"==typeof A?d(A,h,C):A}})},3706:function(e,t,n){var r=n(7854);n(8003)(r.JSON,"JSON",!0)},1532:function(e,t,n){"use strict";n(7710)("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n(5631))},9752:function(e,t,n){var r=n(2109),o=n(6513),i=Math.acosh,a=Math.log,A=Math.sqrt,s=Math.LN2;r({target:"Math",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(1/0)!=1/0},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?a(e)+s:o(e-1+A(e-1)*A(e+1))}})},2376:function(e,t,n){var r=n(2109),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:"Math",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function e(t){return isFinite(t=+t)&&0!=t?t<0?-e(-t):i(t+a(t*t+1)):t}})},3181:function(e,t,n){var r=n(2109),o=Math.atanh,i=Math.log;r({target:"Math",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:i((1+e)/(1-e))/2}})},3484:function(e,t,n){var r=n(2109),o=n(4310),i=Math.abs,a=Math.pow;r({target:"Math",stat:!0},{cbrt:function(e){return o(e=+e)*a(i(e),1/3)}})},2388:function(e,t,n){var r=n(2109),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-o(i(e+.5)*a):32}})},8621:function(e,t,n){var r=n(2109),o=n(6736),i=Math.cosh,a=Math.abs,A=Math.E;r({target:"Math",stat:!0,forced:!i||i(710)===1/0},{cosh:function(e){var t=o(a(e)-1)+1;return(t+1/(t*A*A))*(A/2)}})},403:function(e,t,n){var r=n(2109),o=n(6736);r({target:"Math",stat:!0,forced:o!=Math.expm1},{expm1:o})},4755:function(e,t,n){n(2109)({target:"Math",stat:!0},{fround:n(6130)})},5438:function(e,t,n){var r=n(2109),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:"Math",stat:!0,forced:!!o&&o(1/0,NaN)!==1/0},{hypot:function(e,t){for(var n,r,o=0,A=0,s=arguments.length,c=0;A<s;)c<(n=i(arguments[A++]))?(o=o*(r=c/n)*r+1,c=n):o+=n>0?(r=n/c)*r:n;return c===1/0?1/0:c*a(o)}})},332:function(e,t,n){var r=n(2109),o=n(7293),i=Math.imul;r({target:"Math",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(e,t){var n=65535,r=+e,o=+t,i=n&r,a=n&o;return 0|i*a+((n&r>>>16)*a+i*(n&o>>>16)<<16>>>0)}})},658:function(e,t,n){n(2109)({target:"Math",stat:!0},{log10:n(202)})},197:function(e,t,n){n(2109)({target:"Math",stat:!0},{log1p:n(6513)})},4914:function(e,t,n){var r=n(2109),o=Math.log,i=Math.LN2;r({target:"Math",stat:!0},{log2:function(e){return o(e)/i}})},2420:function(e,t,n){n(2109)({target:"Math",stat:!0},{sign:n(4310)})},160:function(e,t,n){var r=n(2109),o=n(7293),i=n(6736),a=Math.abs,A=Math.exp,s=Math.E;r({target:"Math",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return a(e=+e)<1?(i(e)-i(-e))/2:(A(e-1)-A(-e-1))*(s/2)}})},970:function(e,t,n){var r=n(2109),o=n(6736),i=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=o(e=+e),n=o(-e);return t==1/0?1:n==1/0?-1:(t-n)/(i(e)+i(-e))}})},2703:function(e,t,n){n(8003)(Math,"Math",!0)},3689:function(e,t,n){var r=n(2109),o=Math.ceil,i=Math.floor;r({target:"Math",stat:!0},{trunc:function(e){return(e>0?i:o)(e)}})},9653:function(e,t,n){"use strict";var r=n(9781),o=n(7854),i=n(1702),a=n(4705),A=n(1320),s=n(2597),c=n(9587),u=n(7976),l=n(2190),f=n(7593),p=n(7293),d=n(8006).f,g=n(1236).f,h=n(3070).f,v=n(863),m=n(3111).trim,C="Number",y=o.Number,b=y.prototype,w=o.TypeError,E=i("".slice),B=i("".charCodeAt),x=function(e){var t=f(e,"number");return"bigint"==typeof t?t:k(t)},k=function(e){var t,n,r,o,i,a,A,s,c=f(e,"number");if(l(c))throw w("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=m(c),43===(t=B(c,0))||45===t){if(88===(n=B(c,2))||120===n)return NaN}else if(48===t){switch(B(c,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+c}for(a=(i=E(c,2)).length,A=0;A<a;A++)if((s=B(i,A))<48||s>o)return NaN;return parseInt(i,r)}return+c};if(a(C,!y(" 0o1")||!y("0b1")||y("+0x1"))){for(var I,S=function(e){var t=arguments.length<1?0:y(x(e)),n=this;return u(b,n)&&p((function(){v(n)}))?c(Object(t),n,S):t},T=r?d(y):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),L=0;T.length>L;L++)s(y,I=T[L])&&!s(S,I)&&h(S,I,g(y,I));S.prototype=b,b.constructor=S,A(o,C,S)}},3299:function(e,t,n){n(2109)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},5192:function(e,t,n){n(2109)({target:"Number",stat:!0},{isFinite:n(7023)})},3161:function(e,t,n){n(2109)({target:"Number",stat:!0},{isInteger:n(5988)})},4048:function(e,t,n){n(2109)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},8285:function(e,t,n){var r=n(2109),o=n(5988),i=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return o(e)&&i(e)<=9007199254740991}})},4363:function(e,t,n){n(2109)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},5994:function(e,t,n){n(2109)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},1874:function(e,t,n){var r=n(2109),o=n(2814);r({target:"Number",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},9494:function(e,t,n){var r=n(2109),o=n(3009);r({target:"Number",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},1354:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(1702),a=n(9303),A=n(863),s=n(8415),c=n(202),u=n(7293),l=o.RangeError,f=o.String,p=o.isFinite,d=Math.abs,g=Math.floor,h=Math.pow,v=Math.round,m=i(1..toExponential),C=i(s),y=i("".slice),b="-6.9000e-11"===m(-69e-12,4)&&"1.25e+0"===m(1.255,2)&&"1.235e+4"===m(12345,3)&&"3e+1"===m(25,0),w=u((function(){m(1,1/0)}))&&u((function(){m(1,-1/0)})),E=!u((function(){m(1/0,1/0)}))&&!u((function(){m(NaN,1/0)}));r({target:"Number",proto:!0,forced:!b||!w||!E},{toExponential:function(e){var t=A(this);if(void 0===e)return m(t);var n=a(e);if(!p(t))return f(t);if(n<0||n>20)throw l("Incorrect fraction digits");if(b)return m(t,n);var r="",o="",i=0,s="",u="";if(t<0&&(r="-",t=-t),0===t)i=0,o=C("0",n+1);else{var w=c(t);i=g(w);var E=0,B=h(10,i-n);2*t>=(2*(E=v(t/B))+1)*B&&(E+=1),E>=h(10,n+1)&&(E/=10,i+=1),o=f(E)}return 0!==n&&(o=y(o,0,1)+"."+y(o,1)),0===i?(s="+",u="0"):(s=i>0?"+":"-",u=f(d(i))),r+(o+"e")+s+u}})},6977:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(1702),a=n(9303),A=n(863),s=n(8415),c=n(7293),u=o.RangeError,l=o.String,f=Math.floor,p=i(s),d=i("".slice),g=i(1..toFixed),h=function(e,t,n){return 0===t?n:t%2==1?h(e,t-1,n*e):h(e*e,t/2,n)},v=function(e,t,n){for(var r=-1,o=n;++r<6;)o+=t*e[r],e[r]=o%1e7,o=f(o/1e7)},m=function(e,t){for(var n=6,r=0;--n>=0;)r+=e[n],e[n]=f(r/t),r=r%t*1e7},C=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var r=l(e[t]);n=""===n?r:n+p("0",7-r.length)+r}return n};r({target:"Number",proto:!0,forced:c((function(){return"0.000"!==g(8e-5,3)||"1"!==g(.9,0)||"1.25"!==g(1.255,2)||"1000000000000000128"!==g(0xde0b6b3a7640080,0)}))||!c((function(){g({})}))},{toFixed:function(e){var t,n,r,o,i=A(this),s=a(e),c=[0,0,0,0,0,0],f="",g="0";if(s<0||s>20)throw u("Incorrect fraction digits");if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return l(i);if(i<0&&(f="-",i=-i),i>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(i*h(2,69,1))-69)<0?i*h(2,-t,1):i/h(2,t,1),n*=4503599627370496,(t=52-t)>0){for(v(c,0,n),r=s;r>=7;)v(c,1e7,0),r-=7;for(v(c,h(10,r,1),0),r=t-1;r>=23;)m(c,1<<23),r-=23;m(c,1<<r),v(c,1,1),m(c,2),g=C(c)}else v(c,0,n),v(c,1<<-t,0),g=C(c)+p("0",s);return s>0?f+((o=g.length)<=s?"0."+p("0",s-o)+g:d(g,0,o-s)+"."+d(g,o-s)):f+g}})},5147:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(7293),a=n(863),A=o(1..toPrecision);r({target:"Number",proto:!0,forced:i((function(){return"1"!==A(1,void 0)}))||!i((function(){A({})}))},{toPrecision:function(e){return void 0===e?A(a(this)):A(a(this),e)}})},9601:function(e,t,n){var r=n(2109),o=n(1574);r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},8011:function(e,t,n){n(2109)({target:"Object",stat:!0,sham:!n(9781)},{create:n(30)})},9595:function(e,t,n){"use strict";var r=n(2109),o=n(9781),i=n(9026),a=n(9662),A=n(7908),s=n(3070);o&&r({target:"Object",proto:!0,forced:i},{__defineGetter__:function(e,t){s.f(A(this),e,{get:a(t),enumerable:!0,configurable:!0})}})},3321:function(e,t,n){var r=n(2109),o=n(9781),i=n(6048).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==i,sham:!o},{defineProperties:i})},9070:function(e,t,n){var r=n(2109),o=n(9781),i=n(3070).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==i,sham:!o},{defineProperty:i})},5500:function(e,t,n){"use strict";var r=n(2109),o=n(9781),i=n(9026),a=n(9662),A=n(7908),s=n(3070);o&&r({target:"Object",proto:!0,forced:i},{__defineSetter__:function(e,t){s.f(A(this),e,{set:a(t),enumerable:!0,configurable:!0})}})},9720:function(e,t,n){var r=n(2109),o=n(4699).entries;r({target:"Object",stat:!0},{entries:function(e){return o(e)}})},3371:function(e,t,n){var r=n(2109),o=n(6677),i=n(7293),a=n(111),A=n(2423).onFreeze,s=Object.freeze;r({target:"Object",stat:!0,forced:i((function(){s(1)})),sham:!o},{freeze:function(e){return s&&a(e)?s(A(e)):e}})},8559:function(e,t,n){var r=n(2109),o=n(408),i=n(6135);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return o(e,(function(e,n){i(t,e,n)}),{AS_ENTRIES:!0}),t}})},5003:function(e,t,n){var r=n(2109),o=n(7293),i=n(5656),a=n(1236).f,A=n(9781),s=o((function(){a(1)}));r({target:"Object",stat:!0,forced:!A||s,sham:!A},{getOwnPropertyDescriptor:function(e,t){return a(i(e),t)}})},9337:function(e,t,n){var r=n(2109),o=n(9781),i=n(3887),a=n(5656),A=n(1236),s=n(6135);r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(e){for(var t,n,r=a(e),o=A.f,c=i(r),u={},l=0;c.length>l;)void 0!==(n=o(r,t=c[l++]))&&s(u,t,n);return u}})},6210:function(e,t,n){var r=n(2109),o=n(7293),i=n(1156).f;r({target:"Object",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},489:function(e,t,n){var r=n(2109),o=n(7293),i=n(7908),a=n(9518),A=n(8544);r({target:"Object",stat:!0,forced:o((function(){a(1)})),sham:!A},{getPrototypeOf:function(e){return a(i(e))}})},6314:function(e,t,n){n(2109)({target:"Object",stat:!0},{hasOwn:n(2597)})},1825:function(e,t,n){var r=n(2109),o=n(2050);r({target:"Object",stat:!0,forced:Object.isExtensible!==o},{isExtensible:o})},8410:function(e,t,n){var r=n(2109),o=n(7293),i=n(111),a=n(4326),A=n(7556),s=Object.isFrozen;r({target:"Object",stat:!0,forced:o((function(){s(1)}))||A},{isFrozen:function(e){return!i(e)||!(!A||"ArrayBuffer"!=a(e))||!!s&&s(e)}})},2200:function(e,t,n){var r=n(2109),o=n(7293),i=n(111),a=n(4326),A=n(7556),s=Object.isSealed;r({target:"Object",stat:!0,forced:o((function(){s(1)}))||A},{isSealed:function(e){return!i(e)||!(!A||"ArrayBuffer"!=a(e))||!!s&&s(e)}})},3304:function(e,t,n){n(2109)({target:"Object",stat:!0},{is:n(1150)})},7941:function(e,t,n){var r=n(2109),o=n(7908),i=n(1956);r({target:"Object",stat:!0,forced:n(7293)((function(){i(1)}))},{keys:function(e){return i(o(e))}})},4869:function(e,t,n){"use strict";var r=n(2109),o=n(9781),i=n(9026),a=n(7908),A=n(4948),s=n(9518),c=n(1236).f;o&&r({target:"Object",proto:!0,forced:i},{__lookupGetter__:function(e){var t,n=a(this),r=A(e);do{if(t=c(n,r))return t.get}while(n=s(n))}})},3952:function(e,t,n){"use strict";var r=n(2109),o=n(9781),i=n(9026),a=n(7908),A=n(4948),s=n(9518),c=n(1236).f;o&&r({target:"Object",proto:!0,forced:i},{__lookupSetter__:function(e){var t,n=a(this),r=A(e);do{if(t=c(n,r))return t.set}while(n=s(n))}})},7227:function(e,t,n){var r=n(2109),o=n(111),i=n(2423).onFreeze,a=n(6677),A=n(7293),s=Object.preventExtensions;r({target:"Object",stat:!0,forced:A((function(){s(1)})),sham:!a},{preventExtensions:function(e){return s&&o(e)?s(i(e)):e}})},514:function(e,t,n){var r=n(2109),o=n(111),i=n(2423).onFreeze,a=n(6677),A=n(7293),s=Object.seal;r({target:"Object",stat:!0,forced:A((function(){s(1)})),sham:!a},{seal:function(e){return s&&o(e)?s(i(e)):e}})},8304:function(e,t,n){n(2109)({target:"Object",stat:!0},{setPrototypeOf:n(7674)})},1539:function(e,t,n){var r=n(1694),o=n(1320),i=n(288);r||o(Object.prototype,"toString",i,{unsafe:!0})},6833:function(e,t,n){var r=n(2109),o=n(4699).values;r({target:"Object",stat:!0},{values:function(e){return o(e)}})},4678:function(e,t,n){var r=n(2109),o=n(2814);r({global:!0,forced:parseFloat!=o},{parseFloat:o})},1058:function(e,t,n){var r=n(2109),o=n(3009);r({global:!0,forced:parseInt!=o},{parseInt:o})},7922:function(e,t,n){"use strict";var r=n(2109),o=n(6916),i=n(9662),a=n(8523),A=n(2534),s=n(408);r({target:"Promise",stat:!0},{allSettled:function(e){var t=this,n=a.f(t),r=n.resolve,c=n.reject,u=A((function(){var n=i(t.resolve),a=[],A=0,c=1;s(e,(function(e){var i=A++,s=!1;c++,o(n,t,e).then((function(e){s||(s=!0,a[i]={status:"fulfilled",value:e},--c||r(a))}),(function(e){s||(s=!0,a[i]={status:"rejected",reason:e},--c||r(a))}))})),--c||r(a)}));return u.error&&c(u.value),n.promise}})},4668:function(e,t,n){"use strict";var r=n(2109),o=n(9662),i=n(5005),a=n(6916),A=n(8523),s=n(2534),c=n(408),u="No one promise resolved";r({target:"Promise",stat:!0},{any:function(e){var t=this,n=i("AggregateError"),r=A.f(t),l=r.resolve,f=r.reject,p=s((function(){var r=o(t.resolve),i=[],A=0,s=1,p=!1;c(e,(function(e){var o=A++,c=!1;s++,a(r,t,e).then((function(e){c||p||(p=!0,l(e))}),(function(e){c||p||(c=!0,i[o]=e,--s||f(new n(i,u)))}))})),--s||f(new n(i,u))}));return p.error&&f(p.value),r.promise}})},7727:function(e,t,n){"use strict";var r=n(2109),o=n(1913),i=n(3366),a=n(7293),A=n(5005),s=n(614),c=n(6707),u=n(9478),l=n(1320);if(r({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){i.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=c(this,A("Promise")),n=s(e);return this.then(n?function(n){return u(t,e()).then((function(){return n}))}:e,n?function(n){return u(t,e()).then((function(){throw n}))}:e)}}),!o&&s(i)){var f=A("Promise").prototype.finally;i.prototype.finally!==f&&l(i.prototype,"finally",f,{unsafe:!0})}},8674:function(e,t,n){"use strict";var r,o,i,a,A=n(2109),s=n(1913),c=n(7854),u=n(5005),l=n(6916),f=n(3366),p=n(1320),d=n(2248),g=n(7674),h=n(8003),v=n(6340),m=n(9662),C=n(614),y=n(111),b=n(5787),w=n(2788),E=n(408),B=n(7072),x=n(6707),k=n(261).set,I=n(5948),S=n(9478),T=n(842),L=n(8523),R=n(2534),Q=n(8572),O=n(9909),M=n(4705),D=n(5112),F=n(7871),P=n(5268),U=n(7392),N=D("species"),W="Promise",j=O.getterFor(W),Y=O.set,G=O.getterFor(W),z=f&&f.prototype,_=f,V=z,H=c.TypeError,J=c.document,Z=c.process,K=L.f,X=K,q=!!(J&&J.createEvent&&c.dispatchEvent),$=C(c.PromiseRejectionEvent),ee="unhandledrejection",te=!1,ne=M(W,(function(){var e=w(_),t=e!==String(_);if(!t&&66===U)return!0;if(s&&!V.finally)return!0;if(U>=51&&/native code/.test(e))return!1;var n=new _((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};return(n.constructor={})[N]=r,!(te=n.then((function(){}))instanceof r)||!t&&F&&!$})),re=ne||!B((function(e){_.all(e).catch((function(){}))})),oe=function(e){var t;return!(!y(e)||!C(t=e.then))&&t},ie=function(e,t){var n,r,o,i=t.value,a=1==t.state,A=a?e.ok:e.fail,s=e.resolve,c=e.reject,u=e.domain;try{A?(a||(2===t.rejection&&ue(t),t.rejection=1),!0===A?n=i:(u&&u.enter(),n=A(i),u&&(u.exit(),o=!0)),n===e.promise?c(H("Promise-chain cycle")):(r=oe(n))?l(r,n,s,c):s(n)):c(i)}catch(e){u&&!o&&u.exit(),c(e)}},ae=function(e,t){e.notified||(e.notified=!0,I((function(){for(var n,r=e.reactions;n=r.get();)ie(n,e);e.notified=!1,t&&!e.rejection&&se(e)})))},Ae=function(e,t,n){var r,o;q?((r=J.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),c.dispatchEvent(r)):r={promise:t,reason:n},!$&&(o=c["on"+e])?o(r):e===ee&&T("Unhandled promise rejection",n)},se=function(e){l(k,c,(function(){var t,n=e.facade,r=e.value;if(ce(e)&&(t=R((function(){P?Z.emit("unhandledRejection",r,n):Ae(ee,n,r)})),e.rejection=P||ce(e)?2:1,t.error))throw t.value}))},ce=function(e){return 1!==e.rejection&&!e.parent},ue=function(e){l(k,c,(function(){var t=e.facade;P?Z.emit("rejectionHandled",t):Ae("rejectionhandled",t,e.value)}))},le=function(e,t,n){return function(r){e(t,r,n)}},fe=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,ae(e,!0))},pe=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw H("Promise can't be resolved itself");var r=oe(t);r?I((function(){var n={done:!1};try{l(r,t,le(pe,n,e),le(fe,n,e))}catch(t){fe(n,t,e)}})):(e.value=t,e.state=1,ae(e,!1))}catch(t){fe({done:!1},t,e)}}};if(ne&&(V=(_=function(e){b(this,V),m(e),l(r,this);var t=j(this);try{e(le(pe,t),le(fe,t))}catch(e){fe(t,e)}}).prototype,(r=function(e){Y(this,{type:W,done:!1,notified:!1,parent:!1,reactions:new Q,rejection:!1,state:0,value:void 0})}).prototype=d(V,{then:function(e,t){var n=G(this),r=K(x(this,_));return n.parent=!0,r.ok=!C(e)||e,r.fail=C(t)&&t,r.domain=P?Z.domain:void 0,0==n.state?n.reactions.add(r):I((function(){ie(r,n)})),r.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new r,t=j(e);this.promise=e,this.resolve=le(pe,t),this.reject=le(fe,t)},L.f=K=function(e){return e===_||e===i?new o(e):X(e)},!s&&C(f)&&z!==Object.prototype)){a=z.then,te||(p(z,"then",(function(e,t){var n=this;return new _((function(e,t){l(a,n,e,t)})).then(e,t)}),{unsafe:!0}),p(z,"catch",V.catch,{unsafe:!0}));try{delete z.constructor}catch(e){}g&&g(z,V)}A({global:!0,wrap:!0,forced:ne},{Promise:_}),h(_,W,!1,!0),v(W),i=u(W),A({target:W,stat:!0,forced:ne},{reject:function(e){var t=K(this);return l(t.reject,void 0,e),t.promise}}),A({target:W,stat:!0,forced:s||ne},{resolve:function(e){return S(s&&this===i?_:this,e)}}),A({target:W,stat:!0,forced:re},{all:function(e){var t=this,n=K(t),r=n.resolve,o=n.reject,i=R((function(){var n=m(t.resolve),i=[],a=0,A=1;E(e,(function(e){var s=a++,c=!1;A++,l(n,t,e).then((function(e){c||(c=!0,i[s]=e,--A||r(i))}),o)})),--A||r(i)}));return i.error&&o(i.value),n.promise},race:function(e){var t=this,n=K(t),r=n.reject,o=R((function(){var o=m(t.resolve);E(e,(function(e){l(o,t,e).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},224:function(e,t,n){var r=n(2109),o=n(2104),i=n(9662),a=n(9670);r({target:"Reflect",stat:!0,forced:!n(7293)((function(){Reflect.apply((function(){}))}))},{apply:function(e,t,n){return o(i(e),t,a(n))}})},2419:function(e,t,n){var r=n(2109),o=n(5005),i=n(2104),a=n(7065),A=n(9483),s=n(9670),c=n(111),u=n(30),l=n(7293),f=o("Reflect","construct"),p=Object.prototype,d=[].push,g=l((function(){function e(){}return!(f((function(){}),[],e)instanceof e)})),h=!l((function(){f((function(){}))})),v=g||h;r({target:"Reflect",stat:!0,forced:v,sham:v},{construct:function(e,t){A(e),s(t);var n=arguments.length<3?e:A(arguments[2]);if(h&&!g)return f(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return i(d,r,t),new(i(a,e,r))}var o=n.prototype,l=u(c(o)?o:p),v=i(e,l,t);return c(v)?v:l}})},9596:function(e,t,n){var r=n(2109),o=n(9781),i=n(9670),a=n(4948),A=n(3070);r({target:"Reflect",stat:!0,forced:n(7293)((function(){Reflect.defineProperty(A.f({},1,{value:1}),1,{value:2})})),sham:!o},{defineProperty:function(e,t,n){i(e);var r=a(t);i(n);try{return A.f(e,r,n),!0}catch(e){return!1}}})},2586:function(e,t,n){var r=n(2109),o=n(9670),i=n(1236).f;r({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=i(o(e),t);return!(n&&!n.configurable)&&delete e[t]}})},5683:function(e,t,n){var r=n(2109),o=n(9781),i=n(9670),a=n(1236);r({target:"Reflect",stat:!0,sham:!o},{getOwnPropertyDescriptor:function(e,t){return a.f(i(e),t)}})},9361:function(e,t,n){var r=n(2109),o=n(9670),i=n(9518);r({target:"Reflect",stat:!0,sham:!n(8544)},{getPrototypeOf:function(e){return i(o(e))}})},4819:function(e,t,n){var r=n(2109),o=n(6916),i=n(111),a=n(9670),A=n(5032),s=n(1236),c=n(9518);r({target:"Reflect",stat:!0},{get:function e(t,n){var r,u,l=arguments.length<3?t:arguments[2];return a(t)===l?t[n]:(r=s.f(t,n))?A(r)?r.value:void 0===r.get?void 0:o(r.get,l):i(u=c(t))?e(u,n,l):void 0}})},1037:function(e,t,n){n(2109)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},5898:function(e,t,n){var r=n(2109),o=n(9670),i=n(2050);r({target:"Reflect",stat:!0},{isExtensible:function(e){return o(e),i(e)}})},7318:function(e,t,n){n(2109)({target:"Reflect",stat:!0},{ownKeys:n(3887)})},4361:function(e,t,n){var r=n(2109),o=n(5005),i=n(9670);r({target:"Reflect",stat:!0,sham:!n(6677)},{preventExtensions:function(e){i(e);try{var t=o("Object","preventExtensions");return t&&t(e),!0}catch(e){return!1}}})},9532:function(e,t,n){var r=n(2109),o=n(9670),i=n(6077),a=n(7674);a&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){o(e),i(t);try{return a(e,t),!0}catch(e){return!1}}})},3593:function(e,t,n){var r=n(2109),o=n(6916),i=n(9670),a=n(111),A=n(5032),s=n(7293),c=n(3070),u=n(1236),l=n(9518),f=n(9114);r({target:"Reflect",stat:!0,forced:s((function(){var e=function(){},t=c.f(new e,"a",{configurable:!0});return!1!==Reflect.set(e.prototype,"a",1,t)}))},{set:function e(t,n,r){var s,p,d,g=arguments.length<4?t:arguments[3],h=u.f(i(t),n);if(!h){if(a(p=l(t)))return e(p,n,r,g);h=f(0)}if(A(h)){if(!1===h.writable||!a(g))return!1;if(s=u.f(g,n)){if(s.get||s.set||!1===s.writable)return!1;s.value=r,c.f(g,n,s)}else c.f(g,n,f(0,r))}else{if(void 0===(d=h.set))return!1;o(d,g,r)}return!0}})},1299:function(e,t,n){var r=n(2109),o=n(7854),i=n(8003);r({global:!0},{Reflect:{}}),i(o.Reflect,"Reflect",!0)},4603:function(e,t,n){var r=n(9781),o=n(7854),i=n(1702),a=n(4705),A=n(9587),s=n(8880),c=n(3070).f,u=n(8006).f,l=n(7976),f=n(7850),p=n(1340),d=n(7066),g=n(2999),h=n(1320),v=n(7293),m=n(2597),C=n(9909).enforce,y=n(6340),b=n(5112),w=n(9441),E=n(7168),B=b("match"),x=o.RegExp,k=x.prototype,I=o.SyntaxError,S=i(d),T=i(k.exec),L=i("".charAt),R=i("".replace),Q=i("".indexOf),O=i("".slice),M=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,D=/a/g,F=/a/g,P=new x(D)!==D,U=g.MISSED_STICKY,N=g.UNSUPPORTED_Y;if(a("RegExp",r&&(!P||U||w||E||v((function(){return F[B]=!1,x(D)!=D||x(F)==F||"/a/i"!=x(D,"i")}))))){for(var W=function(e,t){var n,r,o,i,a,c,u=l(k,this),d=f(e),g=void 0===t,h=[],v=e;if(!u&&d&&g&&e.constructor===W)return e;if((d||l(k,e))&&(e=e.source,g&&(t="flags"in v?v.flags:S(v))),e=void 0===e?"":p(e),t=void 0===t?"":p(t),v=e,w&&"dotAll"in D&&(r=!!t&&Q(t,"s")>-1)&&(t=R(t,/s/g,"")),n=t,U&&"sticky"in D&&(o=!!t&&Q(t,"y")>-1)&&N&&(t=R(t,/y/g,"")),E&&(i=function(e){for(var t,n=e.length,r=0,o="",i=[],a={},A=!1,s=!1,c=0,u="";r<=n;r++){if("\\"===(t=L(e,r)))t+=L(e,++r);else if("]"===t)A=!1;else if(!A)switch(!0){case"["===t:A=!0;break;case"("===t:T(M,O(e,r+1))&&(r+=2,s=!0),o+=t,c++;continue;case">"===t&&s:if(""===u||m(a,u))throw new I("Invalid capture group name");a[u]=!0,i[i.length]=[u,c],s=!1,u="";continue}s?u+=t:o+=t}return[o,i]}(e),e=i[0],h=i[1]),a=A(x(e,t),u?this:k,W),(r||o||h.length)&&(c=C(a),r&&(c.dotAll=!0,c.raw=W(function(e){for(var t,n=e.length,r=0,o="",i=!1;r<=n;r++)"\\"!==(t=L(e,r))?i||"."!==t?("["===t?i=!0:"]"===t&&(i=!1),o+=t):o+="[\\s\\S]":o+=t+L(e,++r);return o}(e),n)),o&&(c.sticky=!0),h.length&&(c.groups=h)),e!==v)try{s(a,"source",""===v?"(?:)":v)}catch(e){}return a},j=function(e){e in W||c(W,e,{configurable:!0,get:function(){return x[e]},set:function(t){x[e]=t}})},Y=u(x),G=0;Y.length>G;)j(Y[G++]);k.constructor=W,W.prototype=k,h(o,"RegExp",W)}y("RegExp")},8450:function(e,t,n){var r=n(7854),o=n(9781),i=n(9441),a=n(4326),A=n(3070).f,s=n(9909).get,c=RegExp.prototype,u=r.TypeError;o&&i&&A(c,"dotAll",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!s(this).dotAll;throw u("Incompatible receiver, RegExp required")}}})},4916:function(e,t,n){"use strict";var r=n(2109),o=n(2261);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},2087:function(e,t,n){var r=n(9781),o=n(3070),i=n(7066),a=n(7293),A=RegExp.prototype;r&&a((function(){return"sy"!==Object.getOwnPropertyDescriptor(A,"flags").get.call({dotAll:!0,sticky:!0})}))&&o.f(A,"flags",{configurable:!0,get:i})},8386:function(e,t,n){var r=n(7854),o=n(9781),i=n(2999).MISSED_STICKY,a=n(4326),A=n(3070).f,s=n(9909).get,c=RegExp.prototype,u=r.TypeError;o&&i&&A(c,"sticky",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!s(this).sticky;throw u("Incompatible receiver, RegExp required")}}})},7601:function(e,t,n){"use strict";n(4916);var r,o,i=n(2109),a=n(7854),A=n(6916),s=n(1702),c=n(614),u=n(111),l=(r=!1,(o=/[ac]/).exec=function(){return r=!0,/./.exec.apply(this,arguments)},!0===o.test("abc")&&r),f=a.Error,p=s(/./.test);i({target:"RegExp",proto:!0,forced:!l},{test:function(e){var t=this.exec;if(!c(t))return p(this,e);var n=A(t,this,e);if(null!==n&&!u(n))throw new f("RegExp exec method returned something other than an Object or null");return!!n}})},9714:function(e,t,n){"use strict";var r=n(1702),o=n(6530).PROPER,i=n(1320),a=n(9670),A=n(7976),s=n(1340),c=n(7293),u=n(7066),l="toString",f=RegExp.prototype,p=f.toString,d=r(u),g=c((function(){return"/a/b"!=p.call({source:"a",flags:"b"})})),h=o&&p.name!=l;(g||h)&&i(RegExp.prototype,l,(function(){var e=a(this),t=s(e.source),n=e.flags;return"/"+t+"/"+s(void 0===n&&A(f,e)&&!("flags"in f)?d(e):n)}),{unsafe:!0})},189:function(e,t,n){"use strict";n(7710)("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n(5631))},5218:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("anchor")},{anchor:function(e){return o(this,"a","name",e)}})},4506:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(4488),a=n(9303),A=n(1340),s=n(7293),c=o("".charAt);r({target:"String",proto:!0,forced:s((function(){return"\ud842"!=="𠮷".at(-2)}))},{at:function(e){var t=A(i(this)),n=t.length,r=a(e),o=r>=0?r:n+r;return o<0||o>=n?void 0:c(t,o)}})},4475:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("big")},{big:function(){return o(this,"big","","")}})},7929:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("blink")},{blink:function(){return o(this,"blink","","")}})},915:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("bold")},{bold:function(){return o(this,"b","","")}})},9841:function(e,t,n){"use strict";var r=n(2109),o=n(8710).codeAt;r({target:"String",proto:!0},{codePointAt:function(e){return o(this,e)}})},7852:function(e,t,n){"use strict";var r,o=n(2109),i=n(1702),a=n(1236).f,A=n(7466),s=n(1340),c=n(3929),u=n(4488),l=n(4964),f=n(1913),p=i("".endsWith),d=i("".slice),g=Math.min,h=l("endsWith");o({target:"String",proto:!0,forced:!(!f&&!h&&(r=a(String.prototype,"endsWith"),r&&!r.writable)||h)},{endsWith:function(e){var t=s(u(this));c(e);var n=arguments.length>1?arguments[1]:void 0,r=t.length,o=void 0===n?r:g(A(n),r),i=s(e);return p?p(t,i,o):d(t,o-i.length,o)===i}})},9253:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("fixed")},{fixed:function(){return o(this,"tt","","")}})},2125:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("fontcolor")},{fontcolor:function(e){return o(this,"font","color",e)}})},8830:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("fontsize")},{fontsize:function(e){return o(this,"font","size",e)}})},4953:function(e,t,n){var r=n(2109),o=n(7854),i=n(1702),a=n(1400),A=o.RangeError,s=String.fromCharCode,c=String.fromCodePoint,u=i([].join);r({target:"String",stat:!0,forced:!!c&&1!=c.length},{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,o=0;r>o;){if(t=+arguments[o++],a(t,1114111)!==t)throw A(t+" is not a valid code point");n[o]=t<65536?s(t):s(55296+((t-=65536)>>10),t%1024+56320)}return u(n,"")}})},2023:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(3929),a=n(4488),A=n(1340),s=n(4964),c=o("".indexOf);r({target:"String",proto:!0,forced:!s("includes")},{includes:function(e){return!!~c(A(a(this)),A(i(e)),arguments.length>1?arguments[1]:void 0)}})},8734:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("italics")},{italics:function(){return o(this,"i","","")}})},8783:function(e,t,n){"use strict";var r=n(8710).charAt,o=n(1340),i=n(9909),a=n(654),A="String Iterator",s=i.set,c=i.getterFor(A);a(String,"String",(function(e){s(this,{type:A,string:o(e),index:0})}),(function(){var e,t=c(this),n=t.string,o=t.index;return o>=n.length?{value:void 0,done:!0}:(e=r(n,o),t.index+=e.length,{value:e,done:!1})}))},9254:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("link")},{link:function(e){return o(this,"a","href",e)}})},6373:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(6916),a=n(1702),A=n(4994),s=n(4488),c=n(7466),u=n(1340),l=n(9670),f=n(4326),p=n(7976),d=n(7850),g=n(7066),h=n(8173),v=n(1320),m=n(7293),C=n(5112),y=n(6707),b=n(1530),w=n(7651),E=n(9909),B=n(1913),x=C("matchAll"),k="RegExp String Iterator",I=E.set,S=E.getterFor(k),T=RegExp.prototype,L=o.TypeError,R=a(g),Q=a("".indexOf),O=a("".matchAll),M=!!O&&!m((function(){O("a",/./)})),D=A((function(e,t,n,r){I(this,{type:k,regexp:e,string:t,global:n,unicode:r,done:!1})}),"RegExp String",(function(){var e=S(this);if(e.done)return{value:void 0,done:!0};var t=e.regexp,n=e.string,r=w(t,n);return null===r?{value:void 0,done:e.done=!0}:e.global?(""===u(r[0])&&(t.lastIndex=b(n,c(t.lastIndex),e.unicode)),{value:r,done:!1}):(e.done=!0,{value:r,done:!1})})),F=function(e){var t,n,r,o,i,a,A=l(this),s=u(e);return t=y(A,RegExp),void 0===(n=A.flags)&&p(T,A)&&!("flags"in T)&&(n=R(A)),r=void 0===n?"":u(n),o=new t(t===RegExp?A.source:A,r),i=!!~Q(r,"g"),a=!!~Q(r,"u"),o.lastIndex=c(A.lastIndex),new D(o,s,i,a)};r({target:"String",proto:!0,forced:M},{matchAll:function(e){var t,n,r,o,a=s(this);if(null!=e){if(d(e)&&(t=u(s("flags"in T?e.flags:R(e))),!~Q(t,"g")))throw L("`.matchAll` does not allow non-global regexes");if(M)return O(a,e);if(void 0===(r=h(e,x))&&B&&"RegExp"==f(e)&&(r=F),r)return i(r,e,a)}else if(M)return O(a,e);return n=u(a),o=new RegExp(e,"g"),B?i(F,o,n):o[x](n)}}),B||x in T||v(T,x,F)},4723:function(e,t,n){"use strict";var r=n(6916),o=n(7007),i=n(9670),a=n(7466),A=n(1340),s=n(4488),c=n(8173),u=n(1530),l=n(7651);o("match",(function(e,t,n){return[function(t){var n=s(this),o=null==t?void 0:c(t,e);return o?r(o,t,n):new RegExp(t)[e](A(n))},function(e){var r=i(this),o=A(e),s=n(t,r,o);if(s.done)return s.value;if(!r.global)return l(r,o);var c=r.unicode;r.lastIndex=0;for(var f,p=[],d=0;null!==(f=l(r,o));){var g=A(f[0]);p[d]=g,""===g&&(r.lastIndex=u(o,a(r.lastIndex),c)),d++}return 0===d?null:p}]}))},6528:function(e,t,n){"use strict";var r=n(2109),o=n(6650).end;r({target:"String",proto:!0,forced:n(7061)},{padEnd:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},3112:function(e,t,n){"use strict";var r=n(2109),o=n(6650).start;r({target:"String",proto:!0,forced:n(7061)},{padStart:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},8992:function(e,t,n){var r=n(2109),o=n(1702),i=n(5656),a=n(7908),A=n(1340),s=n(6244),c=o([].push),u=o([].join);r({target:"String",stat:!0},{raw:function(e){for(var t=i(a(e).raw),n=s(t),r=arguments.length,o=[],l=0;n>l;){if(c(o,A(t[l++])),l===n)return u(o,"");l<r&&c(o,A(arguments[l]))}}})},2481:function(e,t,n){n(2109)({target:"String",proto:!0},{repeat:n(8415)})},8757:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(6916),a=n(1702),A=n(4488),s=n(614),c=n(7850),u=n(1340),l=n(8173),f=n(7066),p=n(647),d=n(5112),g=n(1913),h=d("replace"),v=RegExp.prototype,m=o.TypeError,C=a(f),y=a("".indexOf),b=a("".replace),w=a("".slice),E=Math.max,B=function(e,t,n){return n>e.length?-1:""===t?n:y(e,t,n)};r({target:"String",proto:!0},{replaceAll:function(e,t){var n,r,o,a,f,d,x,k,I,S=A(this),T=0,L=0,R="";if(null!=e){if((n=c(e))&&(r=u(A("flags"in v?e.flags:C(e))),!~y(r,"g")))throw m("`.replaceAll` does not allow non-global regexes");if(o=l(e,h))return i(o,e,S,t);if(g&&n)return b(u(S),e,t)}for(a=u(S),f=u(e),(d=s(t))||(t=u(t)),x=f.length,k=E(1,x),T=B(a,f,0);-1!==T;)I=d?u(t(f,T,a)):p(f,a,T,[],void 0,t),R+=w(a,L,T)+I,L=T+x,T=B(a,f,T+k);return L<a.length&&(R+=w(a,L)),R}})},5306:function(e,t,n){"use strict";var r=n(2104),o=n(6916),i=n(1702),a=n(7007),A=n(7293),s=n(9670),c=n(614),u=n(9303),l=n(7466),f=n(1340),p=n(4488),d=n(1530),g=n(8173),h=n(647),v=n(7651),m=n(5112)("replace"),C=Math.max,y=Math.min,b=i([].concat),w=i([].push),E=i("".indexOf),B=i("".slice),x="$0"==="a".replace(/./,"$0"),k=!!/./[m]&&""===/./[m]("a","$0");a("replace",(function(e,t,n){var i=k?"$":"$0";return[function(e,n){var r=p(this),i=null==e?void 0:g(e,m);return i?o(i,e,r,n):o(t,f(r),e,n)},function(e,o){var a=s(this),A=f(e);if("string"==typeof o&&-1===E(o,i)&&-1===E(o,"$<")){var p=n(t,a,A,o);if(p.done)return p.value}var g=c(o);g||(o=f(o));var m=a.global;if(m){var x=a.unicode;a.lastIndex=0}for(var k=[];;){var I=v(a,A);if(null===I)break;if(w(k,I),!m)break;""===f(I[0])&&(a.lastIndex=d(A,l(a.lastIndex),x))}for(var S,T="",L=0,R=0;R<k.length;R++){for(var Q=f((I=k[R])[0]),O=C(y(u(I.index),A.length),0),M=[],D=1;D<I.length;D++)w(M,void 0===(S=I[D])?S:String(S));var F=I.groups;if(g){var P=b([Q],M,O,A);void 0!==F&&w(P,F);var U=f(r(o,void 0,P))}else U=h(Q,A,O,M,F,o);O>=L&&(T+=B(A,L,O)+U,L=O+Q.length)}return T+B(A,L)}]}),!!A((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}))||!x||k)},4765:function(e,t,n){"use strict";var r=n(6916),o=n(7007),i=n(9670),a=n(4488),A=n(1150),s=n(1340),c=n(8173),u=n(7651);o("search",(function(e,t,n){return[function(t){var n=a(this),o=null==t?void 0:c(t,e);return o?r(o,t,n):new RegExp(t)[e](s(n))},function(e){var r=i(this),o=s(e),a=n(t,r,o);if(a.done)return a.value;var c=r.lastIndex;A(c,0)||(r.lastIndex=0);var l=u(r,o);return A(r.lastIndex,c)||(r.lastIndex=c),null===l?-1:l.index}]}))},7268:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("small")},{small:function(){return o(this,"small","","")}})},3123:function(e,t,n){"use strict";var r=n(2104),o=n(6916),i=n(1702),a=n(7007),A=n(7850),s=n(9670),c=n(4488),u=n(6707),l=n(1530),f=n(7466),p=n(1340),d=n(8173),g=n(1589),h=n(7651),v=n(2261),m=n(2999),C=n(7293),y=m.UNSUPPORTED_Y,b=4294967295,w=Math.min,E=[].push,B=i(/./.exec),x=i(E),k=i("".slice),I=!C((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));a("split",(function(e,t,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var i=p(c(this)),a=void 0===n?b:n>>>0;if(0===a)return[];if(void 0===e)return[i];if(!A(e))return o(t,i,e,a);for(var s,u,l,f=[],d=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),h=0,m=new RegExp(e.source,d+"g");(s=o(v,m,i))&&!((u=m.lastIndex)>h&&(x(f,k(i,h,s.index)),s.length>1&&s.index<i.length&&r(E,f,g(s,1)),l=s[0].length,h=u,f.length>=a));)m.lastIndex===s.index&&m.lastIndex++;return h===i.length?!l&&B(m,"")||x(f,""):x(f,k(i,h)),f.length>a?g(f,0,a):f}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:o(t,this,e,n)}:t,[function(t,n){var r=c(this),a=null==t?void 0:d(t,e);return a?o(a,t,r,n):o(i,p(r),t,n)},function(e,r){var o=s(this),a=p(e),A=n(i,o,a,r,i!==t);if(A.done)return A.value;var c=u(o,RegExp),d=o.unicode,g=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(y?"g":"y"),v=new c(y?"^(?:"+o.source+")":o,g),m=void 0===r?b:r>>>0;if(0===m)return[];if(0===a.length)return null===h(v,a)?[a]:[];for(var C=0,E=0,B=[];E<a.length;){v.lastIndex=y?0:E;var I,S=h(v,y?k(a,E):a);if(null===S||(I=w(f(v.lastIndex+(y?E:0)),a.length))===C)E=l(a,E,d);else{if(x(B,k(a,C,E)),B.length===m)return B;for(var T=1;T<=S.length-1;T++)if(x(B,S[T]),B.length===m)return B;E=C=I}}return x(B,k(a,C)),B}]}),!I,y)},6755:function(e,t,n){"use strict";var r,o=n(2109),i=n(1702),a=n(1236).f,A=n(7466),s=n(1340),c=n(3929),u=n(4488),l=n(4964),f=n(1913),p=i("".startsWith),d=i("".slice),g=Math.min,h=l("startsWith");o({target:"String",proto:!0,forced:!(!f&&!h&&(r=a(String.prototype,"startsWith"),r&&!r.writable)||h)},{startsWith:function(e){var t=s(u(this));c(e);var n=A(g(arguments.length>1?arguments[1]:void 0,t.length)),r=s(e);return p?p(t,r,n):d(t,n,n+r.length)===r}})},7397:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("strike")},{strike:function(){return o(this,"strike","","")}})},86:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("sub")},{sub:function(){return o(this,"sub","","")}})},3650:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(4488),a=n(9303),A=n(1340),s=o("".slice),c=Math.max,u=Math.min;r({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(e,t){var n,r,o=A(i(this)),l=o.length,f=a(e);return f===1/0&&(f=0),f<0&&(f=c(l+f,0)),(n=void 0===t?l:a(t))<=0||n===1/0||f>=(r=u(f+n,l))?"":s(o,f,r)}})},623:function(e,t,n){"use strict";var r=n(2109),o=n(4230);r({target:"String",proto:!0,forced:n(3429)("sup")},{sup:function(){return o(this,"sup","","")}})},8702:function(e,t,n){"use strict";var r=n(2109),o=n(3111).end,i=n(6091)("trimEnd"),a=i?function(){return o(this)}:"".trimEnd;r({target:"String",proto:!0,name:"trimEnd",forced:i},{trimEnd:a,trimRight:a})},5674:function(e,t,n){"use strict";var r=n(2109),o=n(3111).start,i=n(6091)("trimStart"),a=i?function(){return o(this)}:"".trimStart;r({target:"String",proto:!0,name:"trimStart",forced:i},{trimStart:a,trimLeft:a})},3210:function(e,t,n){"use strict";var r=n(2109),o=n(3111).trim;r({target:"String",proto:!0,forced:n(6091)("trim")},{trim:function(){return o(this)}})},2443:function(e,t,n){n(7235)("asyncIterator")},1817:function(e,t,n){"use strict";var r=n(2109),o=n(9781),i=n(7854),a=n(1702),A=n(2597),s=n(614),c=n(7976),u=n(1340),l=n(3070).f,f=n(9920),p=i.Symbol,d=p&&p.prototype;if(o&&s(p)&&(!("description"in d)||void 0!==p().description)){var g={},h=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:u(arguments[0]),t=c(d,this)?new p(e):void 0===e?p():p(e);return""===e&&(g[t]=!0),t};f(h,p),h.prototype=d,d.constructor=h;var v="Symbol(test)"==String(p("test")),m=a(d.toString),C=a(d.valueOf),y=/^Symbol\((.*)\)[^)]+$/,b=a("".replace),w=a("".slice);l(d,"description",{configurable:!0,get:function(){var e=C(this),t=m(e);if(A(g,e))return"";var n=v?w(t,7,-1):b(t,y,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:h})}},2401:function(e,t,n){n(7235)("hasInstance")},8722:function(e,t,n){n(7235)("isConcatSpreadable")},2165:function(e,t,n){n(7235)("iterator")},2526:function(e,t,n){"use strict";var r=n(2109),o=n(7854),i=n(5005),a=n(2104),A=n(6916),s=n(1702),c=n(1913),u=n(9781),l=n(133),f=n(7293),p=n(2597),d=n(3157),g=n(614),h=n(111),v=n(7976),m=n(2190),C=n(9670),y=n(7908),b=n(5656),w=n(4948),E=n(1340),B=n(9114),x=n(30),k=n(1956),I=n(8006),S=n(1156),T=n(5181),L=n(1236),R=n(3070),Q=n(6048),O=n(5296),M=n(206),D=n(1320),F=n(2309),P=n(6200),U=n(3501),N=n(9711),W=n(5112),j=n(6061),Y=n(7235),G=n(8003),z=n(9909),_=n(2092).forEach,V=P("hidden"),H="Symbol",J=W("toPrimitive"),Z=z.set,K=z.getterFor(H),X=Object.prototype,q=o.Symbol,$=q&&q.prototype,ee=o.TypeError,te=o.QObject,ne=i("JSON","stringify"),re=L.f,oe=R.f,ie=S.f,ae=O.f,Ae=s([].push),se=F("symbols"),ce=F("op-symbols"),ue=F("string-to-symbol-registry"),le=F("symbol-to-string-registry"),fe=F("wks"),pe=!te||!te.prototype||!te.prototype.findChild,de=u&&f((function(){return 7!=x(oe({},"a",{get:function(){return oe(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=re(X,t);r&&delete X[t],oe(e,t,n),r&&e!==X&&oe(X,t,r)}:oe,ge=function(e,t){var n=se[e]=x($);return Z(n,{type:H,tag:e,description:t}),u||(n.description=t),n},he=function(e,t,n){e===X&&he(ce,t,n),C(e);var r=w(t);return C(n),p(se,r)?(n.enumerable?(p(e,V)&&e[V][r]&&(e[V][r]=!1),n=x(n,{enumerable:B(0,!1)})):(p(e,V)||oe(e,V,B(1,{})),e[V][r]=!0),de(e,r,n)):oe(e,r,n)},ve=function(e,t){C(e);var n=b(t),r=k(n).concat(be(n));return _(r,(function(t){u&&!A(me,n,t)||he(e,t,n[t])})),e},me=function(e){var t=w(e),n=A(ae,this,t);return!(this===X&&p(se,t)&&!p(ce,t))&&(!(n||!p(this,t)||!p(se,t)||p(this,V)&&this[V][t])||n)},Ce=function(e,t){var n=b(e),r=w(t);if(n!==X||!p(se,r)||p(ce,r)){var o=re(n,r);return!o||!p(se,r)||p(n,V)&&n[V][r]||(o.enumerable=!0),o}},ye=function(e){var t=ie(b(e)),n=[];return _(t,(function(e){p(se,e)||p(U,e)||Ae(n,e)})),n},be=function(e){var t=e===X,n=ie(t?ce:b(e)),r=[];return _(n,(function(e){!p(se,e)||t&&!p(X,e)||Ae(r,se[e])})),r};if(l||(q=function(){if(v($,this))throw ee("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?E(arguments[0]):void 0,t=N(e),n=function(e){this===X&&A(n,ce,e),p(this,V)&&p(this[V],t)&&(this[V][t]=!1),de(this,t,B(1,e))};return u&&pe&&de(X,t,{configurable:!0,set:n}),ge(t,e)},D($=q.prototype,"toString",(function(){return K(this).tag})),D(q,"withoutSetter",(function(e){return ge(N(e),e)})),O.f=me,R.f=he,Q.f=ve,L.f=Ce,I.f=S.f=ye,T.f=be,j.f=function(e){return ge(W(e),e)},u&&(oe($,"description",{configurable:!0,get:function(){return K(this).description}}),c||D(X,"propertyIsEnumerable",me,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!l,sham:!l},{Symbol:q}),_(k(fe),(function(e){Y(e)})),r({target:H,stat:!0,forced:!l},{for:function(e){var t=E(e);if(p(ue,t))return ue[t];var n=q(t);return ue[t]=n,le[n]=t,n},keyFor:function(e){if(!m(e))throw ee(e+" is not a symbol");if(p(le,e))return le[e]},useSetter:function(){pe=!0},useSimple:function(){pe=!1}}),r({target:"Object",stat:!0,forced:!l,sham:!u},{create:function(e,t){return void 0===t?x(e):ve(x(e),t)},defineProperty:he,defineProperties:ve,getOwnPropertyDescriptor:Ce}),r({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:ye,getOwnPropertySymbols:be}),r({target:"Object",stat:!0,forced:f((function(){T.f(1)}))},{getOwnPropertySymbols:function(e){return T.f(y(e))}}),ne&&r({target:"JSON",stat:!0,forced:!l||f((function(){var e=q();return"[null]"!=ne([e])||"{}"!=ne({a:e})||"{}"!=ne(Object(e))}))},{stringify:function(e,t,n){var r=M(arguments),o=t;if((h(t)||void 0!==e)&&!m(e))return d(t)||(t=function(e,t){if(g(o)&&(t=A(o,this,e,t)),!m(t))return t}),r[1]=t,a(ne,null,r)}}),!$[J]){var we=$.valueOf;D($,J,(function(e){return A(we,this)}))}G(q,H),U[V]=!0},6066:function(e,t,n){n(7235)("matchAll")},9007:function(e,t,n){n(7235)("match")},3510:function(e,t,n){n(7235)("replace")},1840:function(e,t,n){n(7235)("search")},6982:function(e,t,n){n(7235)("species")},2159:function(e,t,n){n(7235)("split")},6649:function(e,t,n){n(7235)("toPrimitive")},9341:function(e,t,n){n(7235)("toStringTag")},543:function(e,t,n){n(7235)("unscopables")},8675:function(e,t,n){"use strict";var r=n(260),o=n(6244),i=n(9303),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("at",(function(e){var t=a(this),n=o(t),r=i(e),A=r>=0?r:n+r;return A<0||A>=n?void 0:t[A]}))},2990:function(e,t,n){"use strict";var r=n(1702),o=n(260),i=r(n(1048)),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(e,t){return i(a(this),e,t,arguments.length>2?arguments[2]:void 0)}))},8927:function(e,t,n){"use strict";var r=n(260),o=n(2092).every,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},3105:function(e,t,n){"use strict";var r=n(260),o=n(6916),i=n(1285),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("fill",(function(e){var t=arguments.length;return o(i,a(this),e,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}))},5035:function(e,t,n){"use strict";var r=n(260),o=n(2092).filter,i=n(3074),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("filter",(function(e){var t=o(a(this),e,arguments.length>1?arguments[1]:void 0);return i(this,t)}))},7174:function(e,t,n){"use strict";var r=n(260),o=n(2092).findIndex,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},4345:function(e,t,n){"use strict";var r=n(260),o=n(2092).find,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},4197:function(e,t,n){n(9843)("Float32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},6495:function(e,t,n){n(9843)("Float64",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},2846:function(e,t,n){"use strict";var r=n(260),o=n(2092).forEach,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",(function(e){o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},8145:function(e,t,n){"use strict";var r=n(3832);(0,n(260).exportTypedArrayStaticMethod)("from",n(7321),r)},4731:function(e,t,n){"use strict";var r=n(260),o=n(1318).includes,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},7209:function(e,t,n){"use strict";var r=n(260),o=n(1318).indexOf,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},5109:function(e,t,n){n(9843)("Int16",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},5125:function(e,t,n){n(9843)("Int32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},7145:function(e,t,n){n(9843)("Int8",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},6319:function(e,t,n){"use strict";var r=n(7854),o=n(7293),i=n(1702),a=n(260),A=n(6992),s=n(5112)("iterator"),c=r.Uint8Array,u=i(A.values),l=i(A.keys),f=i(A.entries),p=a.aTypedArray,d=a.exportTypedArrayMethod,g=c&&c.prototype,h=!o((function(){g[s].call([1])})),v=!!g&&g.values&&g[s]===g.values&&"values"===g.values.name,m=function(){return u(p(this))};d("entries",(function(){return f(p(this))}),h),d("keys",(function(){return l(p(this))}),h),d("values",m,h||!v,{name:"values"}),d(s,m,h||!v,{name:"values"})},8867:function(e,t,n){"use strict";var r=n(260),o=n(1702),i=r.aTypedArray,a=r.exportTypedArrayMethod,A=o([].join);a("join",(function(e){return A(i(this),e)}))},7789:function(e,t,n){"use strict";var r=n(260),o=n(2104),i=n(6583),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",(function(e){var t=arguments.length;return o(i,a(this),t>1?[e,arguments[1]]:[e])}))},3739:function(e,t,n){"use strict";var r=n(260),o=n(2092).map,i=n(6304),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("map",(function(e){return o(a(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(i(e))(t)}))}))},5206:function(e,t,n){"use strict";var r=n(260),o=n(3832),i=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(i(this))(t);t>e;)n[e]=arguments[e++];return n}),o)},4483:function(e,t,n){"use strict";var r=n(260),o=n(3671).right,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",(function(e){var t=arguments.length;return o(i(this),e,t,t>1?arguments[1]:void 0)}))},9368:function(e,t,n){"use strict";var r=n(260),o=n(3671).left,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",(function(e){var t=arguments.length;return o(i(this),e,t,t>1?arguments[1]:void 0)}))},2056:function(e,t,n){"use strict";var r=n(260),o=r.aTypedArray,i=r.exportTypedArrayMethod,a=Math.floor;i("reverse",(function(){for(var e,t=this,n=o(t).length,r=a(n/2),i=0;i<r;)e=t[i],t[i++]=t[--n],t[n]=e;return t}))},3462:function(e,t,n){"use strict";var r=n(7854),o=n(6916),i=n(260),a=n(6244),A=n(4590),s=n(7908),c=n(7293),u=r.RangeError,l=r.Int8Array,f=l&&l.prototype,p=f&&f.set,d=i.aTypedArray,g=i.exportTypedArrayMethod,h=!c((function(){var e=new Uint8ClampedArray(2);return o(p,e,{length:1,0:3},1),3!==e[1]})),v=h&&i.NATIVE_ARRAY_BUFFER_VIEWS&&c((function(){var e=new l(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));g("set",(function(e){d(this);var t=A(arguments.length>1?arguments[1]:void 0,1),n=s(e);if(h)return o(p,this,n,t);var r=this.length,i=a(n),c=0;if(i+t>r)throw u("Wrong length");for(;c<i;)this[t+c]=n[c++]}),!h||v)},678:function(e,t,n){"use strict";var r=n(260),o=n(6304),i=n(7293),a=n(206),A=r.aTypedArray;(0,r.exportTypedArrayMethod)("slice",(function(e,t){for(var n=a(A(this),e,t),r=o(this),i=0,s=n.length,c=new r(s);s>i;)c[i]=n[i++];return c}),i((function(){new Int8Array(1).slice()})))},7462:function(e,t,n){"use strict";var r=n(260),o=n(2092).some,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:void 0)}))},3824:function(e,t,n){"use strict";var r=n(7854),o=n(1702),i=n(7293),a=n(9662),A=n(4362),s=n(260),c=n(8886),u=n(256),l=n(7392),f=n(8008),p=r.Array,d=s.aTypedArray,g=s.exportTypedArrayMethod,h=r.Uint16Array,v=h&&o(h.prototype.sort),m=!(!v||i((function(){v(new h(2),null)}))&&i((function(){v(new h(2),{})}))),C=!!v&&!i((function(){if(l)return l<74;if(c)return c<67;if(u)return!0;if(f)return f<602;var e,t,n=new h(516),r=p(516);for(e=0;e<516;e++)t=e%4,n[e]=515-e,r[e]=e-2*t+3;for(v(n,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(n[e]!==r[e])return!0}));g("sort",(function(e){return void 0!==e&&a(e),C?v(this,e):A(d(this),function(e){return function(t,n){return void 0!==e?+e(t,n)||0:n!=n?-1:t!=t?1:0===t&&0===n?1/t>0&&1/n<0?1:-1:t>n}}(e))}),!C||m)},5021:function(e,t,n){"use strict";var r=n(260),o=n(7466),i=n(1400),a=n(6304),A=r.aTypedArray;(0,r.exportTypedArrayMethod)("subarray",(function(e,t){var n=A(this),r=n.length,s=i(e,r);return new(a(n))(n.buffer,n.byteOffset+s*n.BYTES_PER_ELEMENT,o((void 0===t?r:i(t,r))-s))}))},2974:function(e,t,n){"use strict";var r=n(7854),o=n(2104),i=n(260),a=n(7293),A=n(206),s=r.Int8Array,c=i.aTypedArray,u=i.exportTypedArrayMethod,l=[].toLocaleString,f=!!s&&a((function(){l.call(new s(1))}));u("toLocaleString",(function(){return o(l,f?A(c(this)):c(this),A(arguments))}),a((function(){return[1,2].toLocaleString()!=new s([1,2]).toLocaleString()}))||!a((function(){s.prototype.toLocaleString.call([1,2])})))},5016:function(e,t,n){"use strict";var r=n(260).exportTypedArrayMethod,o=n(7293),i=n(7854),a=n(1702),A=i.Uint8Array,s=A&&A.prototype||{},c=[].toString,u=a([].join);o((function(){c.call({})}))&&(c=function(){return u(this)});var l=s.toString!=c;r("toString",c,l)},8255:function(e,t,n){n(9843)("Uint16",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},9135:function(e,t,n){n(9843)("Uint32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},2472:function(e,t,n){n(9843)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},9743:function(e,t,n){n(9843)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}),!0)},8221:function(e,t,n){"use strict";var r=n(2109),o=n(1702),i=n(1340),a=String.fromCharCode,A=o("".charAt),s=o(/./.exec),c=o("".slice),u=/^[\da-f]{2}$/i,l=/^[\da-f]{4}$/i;r({global:!0},{unescape:function(e){for(var t,n,r=i(e),o="",f=r.length,p=0;p<f;){if("%"===(t=A(r,p++)))if("u"===A(r,p)){if(n=c(r,p+1,p+5),s(l,n)){o+=a(parseInt(n,16)),p+=5;continue}}else if(n=c(r,p,p+2),s(u,n)){o+=a(parseInt(n,16)),p+=2;continue}o+=t}return o}})},4129:function(e,t,n){"use strict";var r,o=n(7854),i=n(1702),a=n(2248),A=n(2423),s=n(7710),c=n(9320),u=n(111),l=n(2050),f=n(9909).enforce,p=n(8536),d=!o.ActiveXObject&&"ActiveXObject"in o,g=function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},h=s("WeakMap",g,c);if(p&&d){r=c.getConstructor(g,"WeakMap",!0),A.enable();var v=h.prototype,m=i(v.delete),C=i(v.has),y=i(v.get),b=i(v.set);a(v,{delete:function(e){if(u(e)&&!l(e)){var t=f(this);return t.frozen||(t.frozen=new r),m(this,e)||t.frozen.delete(e)}return m(this,e)},has:function(e){if(u(e)&&!l(e)){var t=f(this);return t.frozen||(t.frozen=new r),C(this,e)||t.frozen.has(e)}return C(this,e)},get:function(e){if(u(e)&&!l(e)){var t=f(this);return t.frozen||(t.frozen=new r),C(this,e)?y(this,e):t.frozen.get(e)}return y(this,e)},set:function(e,t){if(u(e)&&!l(e)){var n=f(this);n.frozen||(n.frozen=new r),C(this,e)?b(this,e,t):n.frozen.set(e,t)}else b(this,e,t);return this}})}},8478:function(e,t,n){"use strict";n(7710)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n(9320))},5505:function(e,t,n){var r=n(2109),o=n(5005),i=n(1702),a=n(7293),A=n(1340),s=n(2597),c=n(8053),u=n(4170).ctoi,l=/[^\d+/a-z]/i,f=/[\t\n\f\r ]+/g,p=/[=]+$/,d=o("atob"),g=String.fromCharCode,h=i("".charAt),v=i("".replace),m=i(l.exec),C=a((function(){return""!==atob(" ")})),y=!C&&!a((function(){d()}));r({global:!0,enumerable:!0,forced:C||y},{atob:function(e){if(c(arguments.length,1),y)return d(e);var t,n,r=v(A(e),f,""),i="",a=0,C=0;if(r.length%4==0&&(r=v(r,p,"")),r.length%4==1||m(l,r))throw new(o("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;t=h(r,a++);)s(u,t)&&(n=C%4?64*n+u[t]:u[t],C++%4&&(i+=g(255&n>>(-2*C&6))));return i}})},7479:function(e,t,n){var r=n(2109),o=n(5005),i=n(1702),a=n(7293),A=n(1340),s=n(8053),c=n(4170).itoc,u=o("btoa"),l=i("".charAt),f=i("".charCodeAt),p=!!u&&!a((function(){u()}));r({global:!0,enumerable:!0,forced:p},{btoa:function(e){if(s(arguments.length,1),p)return u(e);for(var t,n,r=A(e),i="",a=0,d=c;l(r,a)||(d="=",a%1);){if((n=f(r,a+=3/4))>255)throw new(o("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");i+=l(d,63&(t=t<<8|n)>>8-a%1*8)}return i}})},4747:function(e,t,n){var r=n(7854),o=n(8324),i=n(8509),a=n(8533),A=n(8880),s=function(e){if(e&&e.forEach!==a)try{A(e,"forEach",a)}catch(t){e.forEach=a}};for(var c in o)o[c]&&s(r[c]&&r[c].prototype);s(i)},3948:function(e,t,n){var r=n(7854),o=n(8324),i=n(8509),a=n(6992),A=n(8880),s=n(5112),c=s("iterator"),u=s("toStringTag"),l=a.values,f=function(e,t){if(e){if(e[c]!==l)try{A(e,c,l)}catch(t){e[c]=l}if(e[u]||A(e,u,t),o[t])for(var n in a)if(e[n]!==a[n])try{A(e,n,a[n])}catch(t){e[n]=a[n]}}};for(var p in o)f(r[p]&&r[p].prototype,p);f(i,"DOMTokenList")},7714:function(e,t,n){"use strict";var r=n(2109),o=n(4038),i=n(5005),a=n(7293),A=n(30),s=n(9114),c=n(3070).f,u=n(6048).f,l=n(1320),f=n(2597),p=n(5787),d=n(9670),g=n(7762),h=n(6277),v=n(3678),m=n(7741),C=n(9909),y=n(9781),b=n(1913),w="DOMException",E=i("Error"),B=i(w)||function(){try{(new(i("MessageChannel")||o("worker_threads").MessageChannel)).port1.postMessage(new WeakMap)}catch(e){if("DATA_CLONE_ERR"==e.name&&25==e.code)return e.constructor}}(),x=B&&B.prototype,k=E.prototype,I=C.set,S=C.getterFor(w),T="stack"in E(w),L=function(e){return f(v,e)&&v[e].m?v[e].c:0},R=function(){p(this,Q);var e=arguments.length,t=h(e<1?void 0:arguments[0]),n=h(e<2?void 0:arguments[1],"Error"),r=L(n);if(I(this,{type:w,name:n,message:t,code:r}),y||(this.name=n,this.message=t,this.code=r),T){var o=E(t);o.name=w,c(this,"stack",s(1,m(o.stack,1)))}},Q=R.prototype=A(k),O=function(e){return{enumerable:!0,configurable:!0,get:e}},M=function(e){return O((function(){return S(this)[e]}))};y&&u(Q,{name:M("name"),message:M("message"),code:M("code")}),c(Q,"constructor",s(1,R));var D=a((function(){return!(new B instanceof E)})),F=D||a((function(){return k.toString!==g||"2: 1"!==String(new B(1,2))})),P=D||a((function(){return 25!==new B(1,"DataCloneError").code})),U=D||25!==B.DATA_CLONE_ERR||25!==x.DATA_CLONE_ERR,N=b?F||P||U:D;r({global:!0,forced:N},{DOMException:N?R:B});var W=i(w),j=W.prototype;for(var Y in F&&(b||B===W)&&l(j,"toString",g),P&&y&&B===W&&c(j,"code",O((function(){return L(d(this).name)}))),v)if(f(v,Y)){var G=v[Y],z=G.s,_=s(6,G.c);f(W,z)||c(W,z,_),f(j,z)||c(j,z,_)}},2801:function(e,t,n){"use strict";var r=n(2109),o=n(5005),i=n(9114),a=n(3070).f,A=n(2597),s=n(5787),c=n(9587),u=n(6277),l=n(3678),f=n(7741),p=n(1913),d="DOMException",g=o("Error"),h=o(d),v=function(){s(this,m);var e=arguments.length,t=u(e<1?void 0:arguments[0]),n=u(e<2?void 0:arguments[1],"Error"),r=new h(t,n),o=g(t);return o.name=d,a(r,"stack",i(1,f(o.stack,1))),c(r,this,v),r},m=v.prototype=h.prototype,C="stack"in g(d),y="stack"in new h(1,2),b=C&&!y;r({global:!0,forced:p||b},{DOMException:b?v:h});var w=o(d),E=w.prototype;if(E.constructor!==w)for(var B in p||a(E,"constructor",i(1,w)),l)if(A(l,B)){var x=l[B],k=x.s;A(w,k)||a(w,k,i(6,x.c))}},1174:function(e,t,n){var r=n(5005),o="DOMException";n(8003)(r(o),o)},4633:function(e,t,n){var r=n(2109),o=n(7854),i=n(261);r({global:!0,bind:!0,enumerable:!0,forced:!o.setImmediate||!o.clearImmediate},{setImmediate:i.set,clearImmediate:i.clear})},5844:function(e,t,n){var r=n(2109),o=n(7854),i=n(5948),a=n(9662),A=n(8053),s=n(5268),c=o.process;r({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){A(arguments.length,1),a(e);var t=s&&c.domain;i(t?t.bind(e):e)}})},1295:function(e,t,n){var r,o=n(1913),i=n(2109),a=n(7854),A=n(5005),s=n(1702),c=n(7293),u=n(9711),l=n(614),f=n(4411),p=n(111),d=n(2190),g=n(408),h=n(9670),v=n(648),m=n(2597),C=n(6135),y=n(8880),b=n(6244),w=n(8053),E=n(7066),B=n(2914),x=a.Object,k=a.Date,I=a.Error,S=a.EvalError,T=a.RangeError,L=a.ReferenceError,R=a.SyntaxError,Q=a.TypeError,O=a.URIError,M=a.PerformanceMark,D=a.WebAssembly,F=D&&D.CompileError||I,P=D&&D.LinkError||I,U=D&&D.RuntimeError||I,N=A("DOMException"),W=A("Set"),j=A("Map"),Y=j.prototype,G=s(Y.has),z=s(Y.get),_=s(Y.set),V=s(W.prototype.add),H=A("Object","keys"),J=s([].push),Z=s((!0).valueOf),K=s(1..valueOf),X=s("".valueOf),q=s(E),$=s(k.prototype.getTime),ee=u("structuredClone"),te="DataCloneError",ne="Transferring",re=function(e){return!c((function(){var t=new a.Set([7]),n=e(t),r=e(x(7));return n==t||!n.has(7)||"object"!=typeof r||7!=r}))&&e},oe=a.structuredClone,ie=o||(r=oe,!(!c((function(){var e=r(new a.AggregateError([1],ee,{cause:3}));return"AggregateError"!=e.name||1!=e.errors[0]||e.message!=ee||3!=e.cause}))&&r)),ae=!oe&&re((function(e){return new M(ee,{detail:e}).detail})),Ae=re(oe)||ae,se=function(e){throw new N("Uncloneable type: "+e,te)},ce=function(e,t){throw new N((t||"Cloning")+" of "+e+" cannot be properly polyfilled in this engine",te)},ue=function(e,t){if(d(e)&&se("Symbol"),!p(e))return e;if(t){if(G(t,e))return z(t,e)}else t=new j;var n,r,o,i,s,c,u,g,h,w,E=v(e),M=!1;switch(E){case"Array":o=[],M=!0;break;case"Object":o={},M=!0;break;case"Map":o=new j,M=!0;break;case"Set":o=new W,M=!0;break;case"RegExp":o=new RegExp(e.source,"flags"in e?e.flags:q(e));break;case"Error":switch(r=e.name){case"AggregateError":o=A("AggregateError")([]);break;case"EvalError":o=S();break;case"RangeError":o=T();break;case"ReferenceError":o=L();break;case"SyntaxError":o=R();break;case"TypeError":o=Q();break;case"URIError":o=O();break;case"CompileError":o=F();break;case"LinkError":o=P();break;case"RuntimeError":o=U();break;default:o=I()}M=!0;break;case"DOMException":o=new N(e.message,e.name),M=!0;break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":n=a[E],p(n)||ce(E),o=new n(ue(e.buffer,t),e.byteOffset,"DataView"===E?e.byteLength:e.length);break;case"DOMQuad":try{o=new DOMQuad(ue(e.p1,t),ue(e.p2,t),ue(e.p3,t),ue(e.p4,t))}catch(t){Ae?o=Ae(e):ce(E)}break;case"FileList":if(n=a.DataTransfer,f(n)){for(i=new n,s=0,c=b(e);s<c;s++)i.items.add(ue(e[s],t));o=i.files}else Ae?o=Ae(e):ce(E);break;case"ImageData":try{o=new ImageData(ue(e.data,t),e.width,e.height,{colorSpace:e.colorSpace})}catch(t){Ae?o=Ae(e):ce(E)}break;default:if(Ae)o=Ae(e);else switch(E){case"BigInt":o=x(e.valueOf());break;case"Boolean":o=x(Z(e));break;case"Number":o=x(K(e));break;case"String":o=x(X(e));break;case"Date":o=new k($(e));break;case"ArrayBuffer":(n=a.DataView)||"function"==typeof e.slice||ce(E);try{if("function"==typeof e.slice)o=e.slice(0);else for(c=e.byteLength,o=new ArrayBuffer(c),h=new n(e),w=new n(o),s=0;s<c;s++)w.setUint8(s,h.getUint8(s))}catch(e){throw new N("ArrayBuffer is detached",te)}break;case"SharedArrayBuffer":o=e;break;case"Blob":try{o=e.slice(0,e.size,e.type)}catch(e){ce(E)}break;case"DOMPoint":case"DOMPointReadOnly":n=a[E];try{o=n.fromPoint?n.fromPoint(e):new n(e.x,e.y,e.z,e.w)}catch(e){ce(E)}break;case"DOMRect":case"DOMRectReadOnly":n=a[E];try{o=n.fromRect?n.fromRect(e):new n(e.x,e.y,e.width,e.height)}catch(e){ce(E)}break;case"DOMMatrix":case"DOMMatrixReadOnly":n=a[E];try{o=n.fromMatrix?n.fromMatrix(e):new n(e)}catch(e){ce(E)}break;case"AudioData":case"VideoFrame":l(e.clone)||ce(E);try{o=e.clone()}catch(e){se(E)}break;case"File":try{o=new File([e],e.name,e)}catch(e){ce(E)}break;case"CryptoKey":case"GPUCompilationMessage":case"GPUCompilationInfo":case"ImageBitmap":case"RTCCertificate":case"WebAssembly.Module":ce(E);default:se(E)}}if(_(t,e,o),M)switch(E){case"Array":case"Object":for(u=H(e),s=0,c=b(u);s<c;s++)g=u[s],C(o,g,ue(e[g],t));break;case"Map":e.forEach((function(e,n){_(o,ue(n,t),ue(e,t))}));break;case"Set":e.forEach((function(e){V(o,ue(e,t))}));break;case"Error":y(o,"message",ue(e.message,t)),m(e,"cause")&&y(o,"cause",ue(e.cause,t)),"AggregateError"==r&&(o.errors=ue(e.errors,t));case"DOMException":B&&y(o,"stack",ue(e.stack,t))}return o},le=oe&&!c((function(){var e=new ArrayBuffer(8),t=oe(e,{transfer:[e]});return 0!=e.byteLength||8!=t.byteLength})),fe=function(e,t){if(!p(e))throw Q("Transfer option cannot be converted to a sequence");var n=[];g(e,(function(e){J(n,h(e))}));var r,o,i,A,s,c,u=0,d=b(n);if(le)for(A=oe(n,{transfer:n});u<d;)_(t,n[u],A[u++]);else for(;u<d;){if(r=n[u++],G(t,r))throw new N("Duplicate transferable",te);switch(o=v(r)){case"ImageBitmap":i=a.OffscreenCanvas,f(i)||ce(o,ne);try{(c=new i(r.width,r.height)).getContext("bitmaprenderer").transferFromImageBitmap(r),s=c.transferToImageBitmap()}catch(e){}break;case"AudioData":case"VideoFrame":l(r.clone)&&l(r.close)||ce(o,ne);try{s=r.clone(),r.close()}catch(e){}break;case"ArrayBuffer":case"MessagePort":case"OffscreenCanvas":case"ReadableStream":case"TransformStream":case"WritableStream":ce(o,ne)}if(void 0===s)throw new N("This object cannot be transferred: "+o,te);_(t,r,s)}};i({global:!0,enumerable:!0,sham:!le,forced:ie},{structuredClone:function(e){var t,n=w(arguments.length,1)>1?h(arguments[1]):void 0,r=n?n.transfer:void 0;return void 0!==r&&(t=new j,fe(r,t)),ue(e,t)}})},2564:function(e,t,n){var r=n(2109),o=n(7854),i=n(2104),a=n(614),A=n(8113),s=n(206),c=n(8053),u=/MSIE .\./.test(A),l=o.Function,f=function(e){return function(t,n){var r=c(arguments.length,1)>2,o=a(t)?t:l(t),A=r?s(arguments,2):void 0;return e(r?function(){i(o,this,A)}:o,n)}};r({global:!0,bind:!0,forced:u},{setTimeout:f(o.setTimeout),setInterval:f(o.setInterval)})},1637:function(e,t,n){"use strict";n(6992);var r=n(2109),o=n(7854),i=n(5005),a=n(6916),A=n(1702),s=n(590),c=n(1320),u=n(2248),l=n(8003),f=n(4994),p=n(9909),d=n(5787),g=n(614),h=n(2597),v=n(9974),m=n(648),C=n(9670),y=n(111),b=n(1340),w=n(30),E=n(9114),B=n(8554),x=n(1246),k=n(8053),I=n(5112),S=n(4362),T=I("iterator"),L="URLSearchParams",R="URLSearchParamsIterator",Q=p.set,O=p.getterFor(L),M=p.getterFor(R),D=i("fetch"),F=i("Request"),P=i("Headers"),U=F&&F.prototype,N=P&&P.prototype,W=o.RegExp,j=o.TypeError,Y=o.decodeURIComponent,G=o.encodeURIComponent,z=A("".charAt),_=A([].join),V=A([].push),H=A("".replace),J=A([].shift),Z=A([].splice),K=A("".split),X=A("".slice),q=/\+/g,$=Array(4),ee=function(e){return $[e-1]||($[e-1]=W("((?:%[\\da-f]{2}){"+e+"})","gi"))},te=function(e){try{return Y(e)}catch(t){return e}},ne=function(e){var t=H(e,q," "),n=4;try{return Y(t)}catch(e){for(;n;)t=H(t,ee(n--),te);return t}},re=/[!'()~]|%20/g,oe={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},ie=function(e){return oe[e]},ae=function(e){return H(G(e),re,ie)},Ae=f((function(e,t){Q(this,{type:R,iterator:B(O(e).entries),kind:t})}),"Iterator",(function(){var e=M(this),t=e.kind,n=e.iterator.next(),r=n.value;return n.done||(n.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),n}),!0),se=function(e){this.entries=[],this.url=null,void 0!==e&&(y(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===z(e,0)?X(e,1):e:b(e)))};se.prototype={type:L,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,n,r,o,i,A,s,c=x(e);if(c)for(n=(t=B(e,c)).next;!(r=a(n,t)).done;){if(i=(o=B(C(r.value))).next,(A=a(i,o)).done||(s=a(i,o)).done||!a(i,o).done)throw j("Expected sequence with length 2");V(this.entries,{key:b(A.value),value:b(s.value)})}else for(var u in e)h(e,u)&&V(this.entries,{key:u,value:b(e[u])})},parseQuery:function(e){if(e)for(var t,n,r=K(e,"&"),o=0;o<r.length;)(t=r[o++]).length&&(n=K(t,"="),V(this.entries,{key:ne(J(n)),value:ne(_(n,"="))}))},serialize:function(){for(var e,t=this.entries,n=[],r=0;r<t.length;)e=t[r++],V(n,ae(e.key)+"="+ae(e.value));return _(n,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var ce=function(){d(this,ue);var e=arguments.length>0?arguments[0]:void 0;Q(this,new se(e))},ue=ce.prototype;if(u(ue,{append:function(e,t){k(arguments.length,2);var n=O(this);V(n.entries,{key:b(e),value:b(t)}),n.updateURL()},delete:function(e){k(arguments.length,1);for(var t=O(this),n=t.entries,r=b(e),o=0;o<n.length;)n[o].key===r?Z(n,o,1):o++;t.updateURL()},get:function(e){k(arguments.length,1);for(var t=O(this).entries,n=b(e),r=0;r<t.length;r++)if(t[r].key===n)return t[r].value;return null},getAll:function(e){k(arguments.length,1);for(var t=O(this).entries,n=b(e),r=[],o=0;o<t.length;o++)t[o].key===n&&V(r,t[o].value);return r},has:function(e){k(arguments.length,1);for(var t=O(this).entries,n=b(e),r=0;r<t.length;)if(t[r++].key===n)return!0;return!1},set:function(e,t){k(arguments.length,1);for(var n,r=O(this),o=r.entries,i=!1,a=b(e),A=b(t),s=0;s<o.length;s++)(n=o[s]).key===a&&(i?Z(o,s--,1):(i=!0,n.value=A));i||V(o,{key:a,value:A}),r.updateURL()},sort:function(){var e=O(this);S(e.entries,(function(e,t){return e.key>t.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,n=O(this).entries,r=v(e,arguments.length>1?arguments[1]:void 0),o=0;o<n.length;)r((t=n[o++]).value,t.key,this)},keys:function(){return new Ae(this,"keys")},values:function(){return new Ae(this,"values")},entries:function(){return new Ae(this,"entries")}},{enumerable:!0}),c(ue,T,ue.entries,{name:"entries"}),c(ue,"toString",(function(){return O(this).serialize()}),{enumerable:!0}),l(ce,L),r({global:!0,forced:!s},{URLSearchParams:ce}),!s&&g(P)){var le=A(N.has),fe=A(N.set),pe=function(e){if(y(e)){var t,n=e.body;if(m(n)===L)return t=e.headers?new P(e.headers):new P,le(t,"content-type")||fe(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),w(e,{body:E(0,b(n)),headers:E(0,t)})}return e};if(g(D)&&r({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return D(e,arguments.length>1?pe(arguments[1]):{})}}),g(F)){var de=function(e){return d(this,U),new F(e,arguments.length>1?pe(arguments[1]):{})};U.constructor=de,de.prototype=U,r({global:!0,forced:!0},{Request:de})}}e.exports={URLSearchParams:ce,getState:O}},285:function(e,t,n){"use strict";n(8783);var r,o=n(2109),i=n(9781),a=n(590),A=n(7854),s=n(9974),c=n(1702),u=n(6048).f,l=n(1320),f=n(5787),p=n(2597),d=n(1574),g=n(8457),h=n(1589),v=n(8710).codeAt,m=n(3197),C=n(1340),y=n(8003),b=n(8053),w=n(1637),E=n(9909),B=E.set,x=E.getterFor("URL"),k=w.URLSearchParams,I=w.getState,S=A.URL,T=A.TypeError,L=A.parseInt,R=Math.floor,Q=Math.pow,O=c("".charAt),M=c(/./.exec),D=c([].join),F=c(1..toString),P=c([].pop),U=c([].push),N=c("".replace),W=c([].shift),j=c("".split),Y=c("".slice),G=c("".toLowerCase),z=c([].unshift),_="Invalid scheme",V="Invalid host",H="Invalid port",J=/[a-z]/i,Z=/[\d+-.a-z]/i,K=/\d/,X=/^0x/i,q=/^[0-7]+$/,$=/^\d+$/,ee=/^[\da-f]+$/i,te=/[\0\t\n\r #%/:<>?@[\\\]^|]/,ne=/[\0\t\n\r #/:<>?@[\\\]^|]/,re=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,oe=/[\t\n\r]/g,ie=function(e){var t,n,r,o;if("number"==typeof e){for(t=[],n=0;n<4;n++)z(t,e%256),e=R(e/256);return D(t,".")}if("object"==typeof e){for(t="",r=function(e){for(var t=null,n=1,r=null,o=0,i=0;i<8;i++)0!==e[i]?(o>n&&(t=r,n=o),r=null,o=0):(null===r&&(r=i),++o);return o>n&&(t=r,n=o),t}(e),n=0;n<8;n++)o&&0===e[n]||(o&&(o=!1),r===n?(t+=n?":":"::",o=!0):(t+=F(e[n],16),n<7&&(t+=":")));return"["+t+"]"}return e},ae={},Ae=d({},ae,{" ":1,'"':1,"<":1,">":1,"`":1}),se=d({},Ae,{"#":1,"?":1,"{":1,"}":1}),ce=d({},se,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),ue=function(e,t){var n=v(e,0);return n>32&&n<127&&!p(t,e)?e:encodeURIComponent(e)},le={ftp:21,file:null,http:80,https:443,ws:80,wss:443},fe=function(e,t){var n;return 2==e.length&&M(J,O(e,0))&&(":"==(n=O(e,1))||!t&&"|"==n)},pe=function(e){var t;return e.length>1&&fe(Y(e,0,2))&&(2==e.length||"/"===(t=O(e,2))||"\\"===t||"?"===t||"#"===t)},de=function(e){return"."===e||"%2e"===G(e)},ge={},he={},ve={},me={},Ce={},ye={},be={},we={},Ee={},Be={},xe={},ke={},Ie={},Se={},Te={},Le={},Re={},Qe={},Oe={},Me={},De={},Fe=function(e,t,n){var r,o,i,a=C(e);if(t){if(o=this.parse(a))throw T(o);this.searchParams=null}else{if(void 0!==n&&(r=new Fe(n,!0)),o=this.parse(a,null,r))throw T(o);(i=I(new k)).bindURL(this),this.searchParams=i}};Fe.prototype={type:"URL",parse:function(e,t,n){var o,i,a,A,s,c=this,u=t||ge,l=0,f="",d=!1,v=!1,m=!1;for(e=C(e),t||(c.scheme="",c.username="",c.password="",c.host=null,c.port=null,c.path=[],c.query=null,c.fragment=null,c.cannotBeABaseURL=!1,e=N(e,re,"")),e=N(e,oe,""),o=g(e);l<=o.length;){switch(i=o[l],u){case ge:if(!i||!M(J,i)){if(t)return _;u=ve;continue}f+=G(i),u=he;break;case he:if(i&&(M(Z,i)||"+"==i||"-"==i||"."==i))f+=G(i);else{if(":"!=i){if(t)return _;f="",u=ve,l=0;continue}if(t&&(c.isSpecial()!=p(le,f)||"file"==f&&(c.includesCredentials()||null!==c.port)||"file"==c.scheme&&!c.host))return;if(c.scheme=f,t)return void(c.isSpecial()&&le[c.scheme]==c.port&&(c.port=null));f="","file"==c.scheme?u=Se:c.isSpecial()&&n&&n.scheme==c.scheme?u=me:c.isSpecial()?u=we:"/"==o[l+1]?(u=Ce,l++):(c.cannotBeABaseURL=!0,U(c.path,""),u=Oe)}break;case ve:if(!n||n.cannotBeABaseURL&&"#"!=i)return _;if(n.cannotBeABaseURL&&"#"==i){c.scheme=n.scheme,c.path=h(n.path),c.query=n.query,c.fragment="",c.cannotBeABaseURL=!0,u=De;break}u="file"==n.scheme?Se:ye;continue;case me:if("/"!=i||"/"!=o[l+1]){u=ye;continue}u=Ee,l++;break;case Ce:if("/"==i){u=Be;break}u=Qe;continue;case ye:if(c.scheme=n.scheme,i==r)c.username=n.username,c.password=n.password,c.host=n.host,c.port=n.port,c.path=h(n.path),c.query=n.query;else if("/"==i||"\\"==i&&c.isSpecial())u=be;else if("?"==i)c.username=n.username,c.password=n.password,c.host=n.host,c.port=n.port,c.path=h(n.path),c.query="",u=Me;else{if("#"!=i){c.username=n.username,c.password=n.password,c.host=n.host,c.port=n.port,c.path=h(n.path),c.path.length--,u=Qe;continue}c.username=n.username,c.password=n.password,c.host=n.host,c.port=n.port,c.path=h(n.path),c.query=n.query,c.fragment="",u=De}break;case be:if(!c.isSpecial()||"/"!=i&&"\\"!=i){if("/"!=i){c.username=n.username,c.password=n.password,c.host=n.host,c.port=n.port,u=Qe;continue}u=Be}else u=Ee;break;case we:if(u=Ee,"/"!=i||"/"!=O(f,l+1))continue;l++;break;case Ee:if("/"!=i&&"\\"!=i){u=Be;continue}break;case Be:if("@"==i){d&&(f="%40"+f),d=!0,a=g(f);for(var y=0;y<a.length;y++){var b=a[y];if(":"!=b||m){var w=ue(b,ce);m?c.password+=w:c.username+=w}else m=!0}f=""}else if(i==r||"/"==i||"?"==i||"#"==i||"\\"==i&&c.isSpecial()){if(d&&""==f)return"Invalid authority";l-=g(f).length+1,f="",u=xe}else f+=i;break;case xe:case ke:if(t&&"file"==c.scheme){u=Le;continue}if(":"!=i||v){if(i==r||"/"==i||"?"==i||"#"==i||"\\"==i&&c.isSpecial()){if(c.isSpecial()&&""==f)return V;if(t&&""==f&&(c.includesCredentials()||null!==c.port))return;if(A=c.parseHost(f))return A;if(f="",u=Re,t)return;continue}"["==i?v=!0:"]"==i&&(v=!1),f+=i}else{if(""==f)return V;if(A=c.parseHost(f))return A;if(f="",u=Ie,t==ke)return}break;case Ie:if(!M(K,i)){if(i==r||"/"==i||"?"==i||"#"==i||"\\"==i&&c.isSpecial()||t){if(""!=f){var E=L(f,10);if(E>65535)return H;c.port=c.isSpecial()&&E===le[c.scheme]?null:E,f=""}if(t)return;u=Re;continue}return H}f+=i;break;case Se:if(c.scheme="file","/"==i||"\\"==i)u=Te;else{if(!n||"file"!=n.scheme){u=Qe;continue}if(i==r)c.host=n.host,c.path=h(n.path),c.query=n.query;else if("?"==i)c.host=n.host,c.path=h(n.path),c.query="",u=Me;else{if("#"!=i){pe(D(h(o,l),""))||(c.host=n.host,c.path=h(n.path),c.shortenPath()),u=Qe;continue}c.host=n.host,c.path=h(n.path),c.query=n.query,c.fragment="",u=De}}break;case Te:if("/"==i||"\\"==i){u=Le;break}n&&"file"==n.scheme&&!pe(D(h(o,l),""))&&(fe(n.path[0],!0)?U(c.path,n.path[0]):c.host=n.host),u=Qe;continue;case Le:if(i==r||"/"==i||"\\"==i||"?"==i||"#"==i){if(!t&&fe(f))u=Qe;else if(""==f){if(c.host="",t)return;u=Re}else{if(A=c.parseHost(f))return A;if("localhost"==c.host&&(c.host=""),t)return;f="",u=Re}continue}f+=i;break;case Re:if(c.isSpecial()){if(u=Qe,"/"!=i&&"\\"!=i)continue}else if(t||"?"!=i)if(t||"#"!=i){if(i!=r&&(u=Qe,"/"!=i))continue}else c.fragment="",u=De;else c.query="",u=Me;break;case Qe:if(i==r||"/"==i||"\\"==i&&c.isSpecial()||!t&&("?"==i||"#"==i)){if(".."===(s=G(s=f))||"%2e."===s||".%2e"===s||"%2e%2e"===s?(c.shortenPath(),"/"==i||"\\"==i&&c.isSpecial()||U(c.path,"")):de(f)?"/"==i||"\\"==i&&c.isSpecial()||U(c.path,""):("file"==c.scheme&&!c.path.length&&fe(f)&&(c.host&&(c.host=""),f=O(f,0)+":"),U(c.path,f)),f="","file"==c.scheme&&(i==r||"?"==i||"#"==i))for(;c.path.length>1&&""===c.path[0];)W(c.path);"?"==i?(c.query="",u=Me):"#"==i&&(c.fragment="",u=De)}else f+=ue(i,se);break;case Oe:"?"==i?(c.query="",u=Me):"#"==i?(c.fragment="",u=De):i!=r&&(c.path[0]+=ue(i,ae));break;case Me:t||"#"!=i?i!=r&&("'"==i&&c.isSpecial()?c.query+="%27":c.query+="#"==i?"%23":ue(i,ae)):(c.fragment="",u=De);break;case De:i!=r&&(c.fragment+=ue(i,Ae))}l++}},parseHost:function(e){var t,n,r;if("["==O(e,0)){if("]"!=O(e,e.length-1))return V;if(t=function(e){var t,n,r,o,i,a,A,s=[0,0,0,0,0,0,0,0],c=0,u=null,l=0,f=function(){return O(e,l)};if(":"==f()){if(":"!=O(e,1))return;l+=2,u=++c}for(;f();){if(8==c)return;if(":"!=f()){for(t=n=0;n<4&&M(ee,f());)t=16*t+L(f(),16),l++,n++;if("."==f()){if(0==n)return;if(l-=n,c>6)return;for(r=0;f();){if(o=null,r>0){if(!("."==f()&&r<4))return;l++}if(!M(K,f()))return;for(;M(K,f());){if(i=L(f(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++r&&4!=r||c++}if(4!=r)return;break}if(":"==f()){if(l++,!f())return}else if(f())return;s[c++]=t}else{if(null!==u)return;l++,u=++c}}if(null!==u)for(a=c-u,c=7;0!=c&&a>0;)A=s[c],s[c--]=s[u+a-1],s[u+--a]=A;else if(8!=c)return;return s}(Y(e,1,-1)),!t)return V;this.host=t}else if(this.isSpecial()){if(e=m(e),M(te,e))return V;if(t=function(e){var t,n,r,o,i,a,A,s=j(e,".");if(s.length&&""==s[s.length-1]&&s.length--,(t=s.length)>4)return e;for(n=[],r=0;r<t;r++){if(""==(o=s[r]))return e;if(i=10,o.length>1&&"0"==O(o,0)&&(i=M(X,o)?16:8,o=Y(o,8==i?1:2)),""===o)a=0;else{if(!M(10==i?$:8==i?q:ee,o))return e;a=L(o,i)}U(n,a)}for(r=0;r<t;r++)if(a=n[r],r==t-1){if(a>=Q(256,5-t))return null}else if(a>255)return null;for(A=P(n),r=0;r<n.length;r++)A+=n[r]*Q(256,3-r);return A}(e),null===t)return V;this.host=t}else{if(M(ne,e))return V;for(t="",n=g(e),r=0;r<n.length;r++)t+=ue(n[r],ae);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"==this.scheme},includesCredentials:function(){return""!=this.username||""!=this.password},isSpecial:function(){return p(le,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"==this.scheme&&1==t&&fe(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,n=e.username,r=e.password,o=e.host,i=e.port,a=e.path,A=e.query,s=e.fragment,c=t+":";return null!==o?(c+="//",e.includesCredentials()&&(c+=n+(r?":"+r:"")+"@"),c+=ie(o),null!==i&&(c+=":"+i)):"file"==t&&(c+="//"),c+=e.cannotBeABaseURL?a[0]:a.length?"/"+D(a,"/"):"",null!==A&&(c+="?"+A),null!==s&&(c+="#"+s),c},setHref:function(e){var t=this.parse(e);if(t)throw T(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"==e)try{return new Pe(e.path[0]).origin}catch(e){return"null"}return"file"!=e&&this.isSpecial()?e+"://"+ie(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse(C(e)+":",ge)},getUsername:function(){return this.username},setUsername:function(e){var t=g(C(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var n=0;n<t.length;n++)this.username+=ue(t[n],ce)}},getPassword:function(){return this.password},setPassword:function(e){var t=g(C(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var n=0;n<t.length;n++)this.password+=ue(t[n],ce)}},getHost:function(){var e=this.host,t=this.port;return null===e?"":null===t?ie(e):ie(e)+":"+t},setHost:function(e){this.cannotBeABaseURL||this.parse(e,xe)},getHostname:function(){var e=this.host;return null===e?"":ie(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,ke)},getPort:function(){var e=this.port;return null===e?"":C(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""==(e=C(e))?this.port=null:this.parse(e,Ie))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+D(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,Re))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""==(e=C(e))?this.query=null:("?"==O(e,0)&&(e=Y(e,1)),this.query="",this.parse(e,Me)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!=(e=C(e))?("#"==O(e,0)&&(e=Y(e,1)),this.fragment="",this.parse(e,De)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var Pe=function(e){var t=f(this,Ue),n=b(arguments.length,1)>1?arguments[1]:void 0,r=B(t,new Fe(e,!1,n));i||(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},Ue=Pe.prototype,Ne=function(e,t){return{get:function(){return x(this)[e]()},set:t&&function(e){return x(this)[t](e)},configurable:!0,enumerable:!0}};if(i&&u(Ue,{href:Ne("serialize","setHref"),origin:Ne("getOrigin"),protocol:Ne("getProtocol","setProtocol"),username:Ne("getUsername","setUsername"),password:Ne("getPassword","setPassword"),host:Ne("getHost","setHost"),hostname:Ne("getHostname","setHostname"),port:Ne("getPort","setPort"),pathname:Ne("getPathname","setPathname"),search:Ne("getSearch","setSearch"),searchParams:Ne("getSearchParams"),hash:Ne("getHash","setHash")}),l(Ue,"toJSON",(function(){return x(this).serialize()}),{enumerable:!0}),l(Ue,"toString",(function(){return x(this).serialize()}),{enumerable:!0}),S){var We=S.createObjectURL,je=S.revokeObjectURL;We&&l(Pe,"createObjectURL",s(We,S)),je&&l(Pe,"revokeObjectURL",s(je,S))}y(Pe,"URL"),o({global:!0,forced:!a,sham:!i},{URL:Pe})},3753:function(e,t,n){"use strict";var r=n(2109),o=n(6916);r({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return o(URL.prototype.toString,this)}})},8594:function(e,t,n){n(2526),n(1817),n(2443),n(2401),n(8722),n(2165),n(9007),n(6066),n(3510),n(1840),n(6982),n(2159),n(6649),n(9341),n(543),n(1703),n(6647),n(9170),n(2120),n(2262),n(2222),n(545),n(6541),n(3290),n(7327),n(9826),n(4553),n(4944),n(6535),n(9554),n(1038),n(6699),n(2772),n(9753),n(6992),n(9600),n(4986),n(1249),n(6572),n(5827),n(6644),n(5069),n(7042),n(5212),n(2707),n(8706),n(561),n(3792),n(9244),n(8264),n(6938),n(9575),n(6716),n(3016),n(3843),n(1801),n(9550),n(8733),n(5735),n(6078),n(3710),n(2130),n(4812),n(4855),n(8309),n(5837),n(8862),n(3706),n(1532),n(9752),n(2376),n(3181),n(3484),n(2388),n(8621),n(403),n(4755),n(5438),n(332),n(658),n(197),n(4914),n(2420),n(160),n(970),n(2703),n(3689),n(9653),n(3299),n(5192),n(3161),n(4048),n(8285),n(4363),n(5994),n(1874),n(9494),n(1354),n(6977),n(5147),n(9601),n(8011),n(9595),n(3321),n(9070),n(5500),n(9720),n(3371),n(8559),n(5003),n(9337),n(6210),n(489),n(6314),n(3304),n(1825),n(8410),n(2200),n(7941),n(4869),n(3952),n(7227),n(514),n(8304),n(1539),n(6833),n(4678),n(1058),n(8674),n(7922),n(4668),n(7727),n(224),n(2419),n(9596),n(2586),n(4819),n(5683),n(9361),n(1037),n(5898),n(7318),n(4361),n(3593),n(9532),n(1299),n(4603),n(8450),n(4916),n(2087),n(8386),n(7601),n(9714),n(189),n(4506),n(9841),n(7852),n(4953),n(2023),n(8783),n(4723),n(6373),n(6528),n(3112),n(8992),n(2481),n(5306),n(8757),n(4765),n(3123),n(6755),n(3650),n(3210),n(8702),n(5674),n(5218),n(4475),n(7929),n(915),n(9253),n(2125),n(8830),n(8734),n(9254),n(7268),n(7397),n(86),n(623),n(4197),n(6495),n(7145),n(5109),n(5125),n(2472),n(9743),n(8255),n(9135),n(8675),n(2990),n(8927),n(3105),n(5035),n(4345),n(7174),n(2846),n(8145),n(4731),n(7209),n(6319),n(8867),n(7789),n(3739),n(5206),n(9368),n(4483),n(2056),n(3462),n(678),n(7462),n(3824),n(5021),n(2974),n(5016),n(8221),n(4129),n(8478),n(5505),n(7479),n(4747),n(3948),n(7714),n(2801),n(1174),n(4633),n(5844),n(1295),n(2564),n(285),n(3753),n(1637),n(857)},2021:function(e,t,n){"use strict";var r=n(7537),o=n.n(r),i=n(3645),a=n.n(i),A=n(1667),s=n.n(A),c=new URL(n(8613),n.b),u=new URL(n(5442),n.b),l=new URL(n(5986),n.b),f=a()(o()),p=s()(c),d=s()(u),g=s()(l);f.push([e.id,'@charset "UTF-8";@keyframes op-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@-webkit-keyframes op-slideOutDown{from{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}to{visibility:hidden;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@keyframes op-slideOutDown{from{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}to{visibility:hidden;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@-webkit-keyframes op-slideInUp{from{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);opacity:1}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes op-slideInUp{from{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);opacity:1}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@font-face{font-family:"frameIcon";src:url('+p+") format('truetype');font-weight:normal;font-style:normal}@font-face{font-family:'op-icons';src:url("+d+") format('truetype');font-weight:normal;font-style:normal}@font-face{font-family:'op-seek-icons';src:url("+g+') format(\'truetype\');font-weight:normal;font-style:normal}:root{--op-accent-color:#50e3c2}.op-wrapper.ovenplayer{position:relative;max-height:100%;overflow:hidden;zoom:1 !important;width:100%;display:block;font-family:Helvetica,Arial,sans-serif;background-color:#000;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;font-size:14px;font-weight:100;outline:0;-webkit-touch-callout:none;user-select:none}.op-wrapper.ovenplayer *{box-sizing:inherit}.op-wrapper.ovenplayer object{width:100%;height:100%;position:absolute}.op-wrapper.ovenplayer:before,.op-wrapper.ovenplayer:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-wrapper.ovenplayer *,.op-wrapper.ovenplayer *:before,.op-wrapper.ovenplayer *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-wrapper.ovenplayer.op-fullscreen{width:100% !important;height:100% !important;top:0;right:0;bottom:0;left:0;z-index:9999;margin:0;position:fixed}.op-wrapper.ovenplayer.op-fullscreen .op-watermark-container,.op-wrapper.ovenplayer.op-fullscreen .op-thumbnail-container{width:100vw;max-width:calc(100vh * 16 / 9);height:calc(100vw * 9 / 16);max-height:100vh;top:50%;left:50%;transform:translate(-50%, -50%)}.op-wrapper.ovenplayer.op-autohide{cursor:none}.op-wrapper.ovenplayer.op-autohide .op-bottom-panel{-webkit-animation-name:op-slideOutDown;animation-name:op-slideOutDown;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.op-wrapper.ovenplayer.op-autohide .op-progressbar-container,.op-wrapper.ovenplayer.op-autohide .op-controls .op-button{cursor:none}.op-wrapper.ovenplayer.op-autohide .op-caption-text-container{bottom:25px}.op-wrapper.ovenplayer.op-no-controls .op-controls-container{display:none !important}.op-wrapper.ovenplayer .op-ratio{padding-bottom:56.25%}.op-wrapper.ovenplayer ::-webkit-scrollbar{width:5px;height:8px}.op-wrapper.ovenplayer ::-webkit-scrollbar-button:start:decrement,.op-wrapper.ovenplayer ::-webkit-scrollbar-button:end:increment{display:block;height:3px;background:#2f2f3e}.op-wrapper.ovenplayer ::-webkit-scrollbar-track{background:#2f2f3e;-webkit-border-radius:10px;border-radius:10px}.op-wrapper.ovenplayer ::-webkit-scrollbar-thumb{height:50px;width:50px;background:#606071;-webkit-border-radius:8px;border-radius:8px}.op-wrapper.ovenplayer .op-clear{color:inherit;background-color:transparent;padding:0;margin:0;float:none;font-family:Helvetica,Arial,sans-serif;font-size:1em;line-height:1em;list-style:none;text-transform:none;vertical-align:baseline;border:0;font-variant:inherit;font-stretch:inherit;-webkit-tap-highlight-color:rgba(255,255,255,0)}.op-player{position:absolute;top:0;height:100%;width:100%}.op-player .op-core-ui-wrapper{position:relative;height:100%}.op-player .op-media-element-container{position:absolute;left:0px;top:0px;width:100%;height:100%}.op-player .op-media-element-container video{position:absolute;left:0;top:0;width:100%;height:100%}.op-player .op-media-element-container object{width:100%;height:100%}.op-ads{position:absolute;height:100%;width:100%;padding-bottom:34px;top:0}.op-ads>div{position:absolute !important;width:100% !important;height:100% !important}.op-ads>div iframe{pointer-events:auto}.op-ads video.op-ads-vast-video{background-color:#000;position:absolute;width:100%;height:100%;left:0;top:0;z-index:1}.op-ads .op-ads-button{bottom:36px;cursor:default;margin-right:4px;pointer-events:auto;position:absolute;right:0;z-index:1;width:auto !important;height:auto !important;border-radius:4px;background-color:rgba(18,18,28,0.7);min-width:155px;display:none}.op-ads .op-ads-button .op-ads-textview{color:#e6e6e6;font-weight:normal;font-size:11px;padding:6px 12px;text-align:center;display:inline-block;width:100%;vertical-align:middle}.op-ads .op-ads-button .videoAdUiAction{padding:8px 24px;cursor:pointer;direction:ltr;font-weight:normal;font-size:20px;border:1px solid rgba(255,255,255,0.5)}.op-ads .op-ads-button .videoAdUiAction:hover{border-radius:4px;border:1px solid #fff}.op-ads .op-ads-button .videoAdUiAction i{display:inline-block;width:auto}.op-button{display:inline-block;border:none;background:transparent;padding:0;color:inherit;text-align:inherit;overflow:hidden;font-weight:100;text-indent:0 !important}.op-button:focus,.op-button{outline:0}i.op-con{font-family:"op-icons","op-seek-icons";font-style:normal;font-weight:normal;speak:none;font-size:inherit;width:auto;font-size:30px;line-height:30px;display:block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:pointer}i.op-con.disable{color:#4f4f4f}i.op-con.op-close-icon::before{content:"\\e900"}i.op-con.op-pause-big::before{content:"\\e911"}i.op-con.op-fullscreen-compress::before{content:"\\e901"}i.op-con.op-fullscreen-expand::before{content:"\\e902"}i.op-con.op-arrow-left::before{content:"\\e903"}i.op-con.op-arrow-right::before{content:"\\e909"}i.op-con.op-empty-video::before{content:"\\e904"}i.op-con.op-play::before{content:"\\e906"}i.op-con.op-replay::before{content:"\\e908"}i.op-con.op-seek-back::before{content:"\\e920"}i.op-con.op-seek-forward::before{content:"\\e921"}i.op-con.op-playlist-icon::before{content:"\\e907"}i.op-con.op-replay-big::before{content:"\\e908"}i.op-con.op-setting::before{content:"\\e90A"}i.op-con.op-pause::before{content:"\\e90C"}i.op-con.op-volume-small{display:none;margin-top:-1px}i.op-con.op-volume-small::before{content:"\\e90D"}i.op-con.op-volume-mute{display:none}i.op-con.op-volume-mute::before{content:"\\e90E"}i.op-con.op-volume-max::before{content:"\\e90F"}i.op-con.op-play-big::before{content:"\\e910"}i.op-con.op-warning::before{content:"\\e912"}.op-badge{display:inline-block;padding:.75em .714em .714em .68em;font-size:1em;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.286em;background-color:#12121c}.op-playlist{position:absolute;width:100%;height:100%;left:0;top:0;padding:2.857em;background:#000;z-index:6}.op-playlist .op-badge{position:absolute;top:.857em;right:.857em;opacity:.7}.op-playlist .btn-left{float:left;font-size:2.857em}.op-playlist .btn-right{float:right;font-size:2.857em}.op-playlist .op-playlist-header{font-size:2.857em;font-weight:bold}.op-playlist .op-playlist-header:after{display:block;content:\'\';clear:both}.op-playlist .op-playlist-header .op-con.op-close-icon{float:right}.op-playlist .op-playlist-body{height:100%;overflow:hidden;position:relative}.op-playlist .op-playlist-body .op-playlist-body-arrows{margin-top:-15px;position:absolute;top:50%;height:30px;-ms-transform:translateY(-50%);transform:translateY(-50%);width:100%;left:0}.op-playlist .op-playlist-body .op-playlist-body-container{width:100%;height:100%;position:relative;margin-right:auto;margin-left:auto;max-width:992px}.op-playlist .op-playlist-body .op-playlist-body-container .op-playlist-body-center{margin:0;position:absolute;top:50%;padding-right:3em;padding-left:3em;-ms-transform:translateY(-50%);transform:translateY(-50%);width:100%}.op-playlist .op-playlist-body .op-playlist-body-row{margin-right:-15px;margin-left:-15px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card{padding-right:15px;padding-left:15px;margin:15px 0;-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%;cursor:pointer}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card.active{color:#50e3c2;color:var(--op-accent-color)}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card.active .op-playlist-card-thumbnail{border-color:#50e3c2;border-color:var(--op-accent-color)}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail{position:relative;display:block;width:100%;padding:0;overflow:hidden;border:.214em solid transparent;background-color:#000}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail img{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail.empty{background-color:#bababa}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail.empty>i{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff !important;font-size:1.6em !important}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail::before{padding-top:56.25%;display:block;content:""}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-title{margin-top:.857em;font-size:1.429em;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.op-message-box{position:absolute;top:0;left:0;width:100%;height:100%;z-index:4}.op-message-box .op-message-container{position:absolute;top:45%;margin-top:-35px;width:100%;padding:0 12px;text-align:center}.op-message-box .op-message-container .op-message-text{display:inline-block;background-color:rgba(18,18,28,0.3);padding:.8em 1.2em;word-wrap:break-word;max-width:80%;border-radius:4px;cursor:pointer}.op-message-box .op-message-container .op-message-text .op-message-description{font-size:12px;margin-top:12px;color:#999}.op-message-box .op-message-container .op-message-icon{display:inline-block;margin-top:12px;width:100%}.op-message-box .op-message-container .op-message-icon i.op-con{cursor:pointer;font-size:80px;width:80px;height:80px;line-height:80px;display:inline-block;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-message-box.op-message-box-default-cursor .op-message-container .op-message-text{cursor:default}.op-message-box.op-message-box-default-cursor .op-message-container .op-message-icon i.op-con{cursor:default}.op-bigbutton-container{cursor:pointer;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center;z-index:5}.op-bigbutton-container .op-bigbutton{width:80px;height:80px;display:block;font-size:80px;line-height:80px;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-thumbnail-container{position:absolute;width:100%;height:100%;top:0;left:0;z-index:2;pointer-events:none}.op-thumbnail-container .op-thumbnail-wrapper{position:absolute;left:0;top:0;width:100%;height:100%}.op-thumbnail-container .op-thumbnail-wrapper img{width:100%;height:100%}.op-thumbnail-container .op-thumbnail-wrapper .op-thumbnail-header{position:absolute;left:1rem;top:1rem;padding:0 .5rem;font-size:2.857em;font-weight:bold;line-height:1.4;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-thumbnail-container .op-thumbnail-wrapper .op-thumbnail-header:after{display:block;content:\'\';clear:both}.op-watermark-container{position:absolute;width:100%;height:100%;top:0;left:0;z-index:3}.op-watermark-container .op-watermark{position:absolute;display:inline-block}.op-watermark-container .op-watermark img{width:100%;height:100%}.op-watermark-container .op-watermark .op-watermark-text{font-size:14px}.op-setting-panel{position:absolute;bottom:55px;right:12px;overflow-y:auto;max-height:100%;width:260px;user-select:none;background-color:rgba(28,28,28,0.9);text-shadow:0 0 2px rgba(0,0,0,0.5);z-index:8}.op-setting-panel.background{display:none}.op-setting-panel .op-setting-title,.op-setting-panel .op-setting-item{width:100%;height:38px;line-height:38px;cursor:pointer;outline:none;text-align:left}.op-setting-panel .op-setting-title-container .op-setting-title .op-setting-title-title{padding-left:12px;font-weight:bold}.op-setting-panel .op-setting-title-container .op-setting-title .op-setting-title-previcon{padding:0 0 0 12px;margin-right:-6px}.op-setting-panel .op-setting-item-container .op-setting-item:hover{background-color:rgba(255,255,255,0.1)}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-title{padding-left:12px}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-nexticon{float:right;padding-right:12px;margin-left:-6px}.op-setting-panel .op-setting-item-container .op-setting-item span.op-setting-item-value{float:right;padding-right:12px}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-checked{padding-left:12px;visibility:hidden}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-checked.op-show{visibility:visible}.op-controls-container{display:none}.op-controls-container .op-bottom-panel{position:absolute;left:0px;bottom:0px;width:100%;z-index:5;-webkit-animation-name:op-slideInUp;animation-name:op-slideInUp;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.op-controls-container .op-bottom-panel .op-gradient-bottom{position:absolute;width:100%;height:100%;background-color:rgba(18,18,18,0.5);pointer-events:none}.op-controls-container .op-bottom-panel .op-progressbar-container{display:block;position:relative;width:100%;height:4px;bottom:50px}.op-controls-container .op-bottom-panel .op-progressbar-container.op-progressbar-container-disabled{cursor:default}.op-controls-container .op-bottom-panel .op-progressbar-container .op-progressbar-padding{position:absolute;width:100%;height:15px;bottom:-5px;cursor:pointer}.op-controls-container .op-bottom-panel .op-controls{position:relative;width:100%;height:50px;text-align:left;overflow:hidden}.op-controls-container .op-bottom-panel .op-controls:after{content:\'\';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-setting-button{position:relative;margin-right:12px}.op-controls-container .op-bottom-panel .op-controls .op-playlist-button{position:relative;margin-right:12px}.op-controls-container .op-bottom-panel .op-controls .op-navigators{float:left;height:30px;line-height:30px}.op-controls-container .op-bottom-panel .op-controls .op-left-controls{position:absolute;top:0;left:0;padding:14px 0 10px 0}.op-controls-container .op-bottom-panel .op-controls .op-left-controls:after{content:\'\';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-right-controls{position:absolute;top:0;right:0;padding:14px 0 10px 0}.op-controls-container .op-bottom-panel .op-controls .op-right-controls:after{content:\'\';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons{position:relative;display:inline-block;margin-left:14px;overflow:hidden;font-weight:100;height:30px}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button{margin-right:6px;position:relative;text-align:center;color:#fff}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon{position:relative}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon.reverse:after{content:\'\\e900\'}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon:after{font-family:\'frameIcon\' !important;speak:none;content:\'\\e901\';font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;font-size:2.4em;left:0;line-height:30px;height:30px}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon .btn-text{font-weight:bold;font-size:.8em;line-height:30px;height:30px}.op-progressbar{position:absolute;bottom:0;left:0;width:100%;height:100%;outline:none;margin-top:10px}.op-progressbar .op-play-background-color{background-color:#50e3c2;background-color:var(--op-accent-color)}.op-progressbar .op-progress-list{cursor:pointer;position:relative;height:100%;background:rgba(255,255,255,0.2)}.op-progressbar .op-progress-list .op-load-progress,.op-progressbar .op-progress-list .op-play-progress,.op-progressbar .op-progress-list .op-hover-progress{position:absolute;left:0;bottom:0;width:100%;height:100%}.op-progressbar .op-progress-list .op-play-progress{width:0}.op-progressbar .op-progress-list .op-load-progress{width:0;background-color:rgba(255,255,255,0.5)}.op-progressbar .op-progress-list .op-hover-progress{left:0;width:0;background-color:rgba(255,255,255,0.6)}.op-progressbar .op-progressbar-knob-container{position:absolute;top:-5px;left:0}.op-progressbar .op-progressbar-knob-container .op-progressbar-knob{width:14px;height:14px;border-radius:7px}.op-progressbar .op-progressbar-time{display:none;position:absolute;bottom:15px;left:auto;width:auto;background-color:rgba(28,28,28,0.9);border-radius:2px;padding:5px 9px;font-size:.8em;line-height:15px;user-select:none;white-space:nowrap;opacity:.7}.op-progressbar-hover .op-progressbar-time{display:inline-block}.op-on-error .op-progressbar-time{display:none}.op-progressbar-section-start,.op-progressbar-section-end{display:none;position:absolute;width:3px;height:14px;bottom:-5px;background-color:#50e3c2;background-color:var(--op-accent-color)}.op-progressbar-preview{position:absolute;display:none;bottom:50px;border:2px solid #fff;border-radius:2px;background-color:#000;z-index:9}.op-play-controller{margin-left:15px}.op-seek-button{position:relative;top:0px}.op-seek-button.op-seek-button-back{margin-left:12px}.op-seek-button.op-seek-button-forward{margin-left:6px}.op-seek-button i{padding-top:1px;font-size:26px}.op-seek-button span{position:absolute;top:10.5px;left:0;right:0;text-align:center;font-size:10px;line-height:10px;cursor:pointer}.op-volume-controller{display:inline-block;position:relative;margin-left:12px}.op-volume-controller:after{content:\'\';clear:both}.op-volume-controller .op-volume-button{float:left}@-webkit-keyframes slide{100%{left:0}}@keyframes slide{100%{left:0}}.op-volume-controller .op-volume-slider-container{float:left;opacity:0;position:relative;width:0px;margin-right:0;line-height:30px;height:30px;cursor:pointer;user-select:none;outline:none}.op-volume-controller .op-volume-slider-container.active{width:70px;opacity:1;margin-left:8px;-moz-transition:opacity .4s cubic-bezier(0, 0, .2, 1);-webkit-transition:opacity .4s cubic-bezier(0, 0, .2, 1);transition:opacity .4s cubic-bezier(0, 0, .2, 1)}.op-volume-controller .op-volume-slider-container .op-volume-silder{height:100%;position:relative}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-bg,.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-value{position:absolute;display:block;left:0;top:50%;height:4px;margin-top:-2px;border-radius:10px}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-bg{width:100%;background:#fff}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-value{width:100%;background:#50e3c2;background:var(--op-accent-color);border-radius:10px 0 0 10px}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-handle{position:absolute;top:50%;left:30px;width:12px;height:12px;border-radius:10px;margin-top:-6px;background:#fff}.op-time-display{float:left;position:relative;margin-left:14px;height:30px;line-height:30px;white-space:nowrap;vertical-align:top;font-size:14px;user-select:none}.op-time-display .op-live-badge{opacity:1;width:auto;display:inline-block}.op-time-display .op-live-badge:before{background:#ff0000;display:inline-block;position:relative;top:-2px;width:6px;height:6px;margin-right:5px;content:\'\';border-radius:6px}.op-time-display .op-live-badge.op-live-badge-delayed:before{background:#fff}.op-time-display .op-live-badge .op-live-badge-lowlatency{display:inline-block;margin-right:5px}.op-time-display .op-live-badge .op-live-text{cursor:pointer}.op-context-panel{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute;overflow:hidden;width:200px;padding:6px 0;z-index:8;background:rgba(28,28,28,0.9);text-shadow:0 0 2px rgba(0,0,0,0.5);font-weight:lighter;user-select:none}.op-context-panel:before,.op-context-panel:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-context-panel *,.op-context-panel *:before,.op-context-panel *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-context-panel .op-context-item{width:100%;height:38px;padding-left:12px;line-height:38px;cursor:pointer;outline:none;font-size:.8em;font-weight:lighter;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.op-context-panel .op-context-item:hover{background-color:rgba(255,255,255,0.1)}.op-fullscreen-button{position:relative;margin-right:15px}.op-fullscreen-button .op-fullscreen-compress{display:none}.op-spinner-container{position:absolute;top:50%;width:64px;left:50%;margin-left:-32px;margin-top:-32px;z-index:7;display:none}.op-spinner-container .op-spinner{display:inline-block;position:relative;width:64px;height:64px;border:4px solid transparent;border-top:4px solid #50e3c2;border-top:4px solid var(--op-accent-color);border-radius:50%;animation:spin 1.2s cubic-bezier(.5, 0, .5, 1) infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.op-caption-viewer .op-caption-text-container{position:absolute;bottom:60px;width:100%;padding:0 12px;text-align:center;-moz-transition:bottom .25s cubic-bezier(0, 0, .2, 1);-webkit-transition:bottom .25s cubic-bezier(0, 0, .2, 1);transition:bottom .25s cubic-bezier(0, 0, .2, 1)}.op-caption-viewer .op-caption-text-container .op-caption-text{color:#fff;font-size:1em;line-height:1.2em;text-shadow:2px 2px 2px gray;padding:.1em .3em;user-select:none;word-break:break-word;white-space:pre-line;border:none;background:none}.op-caption-button{width:36px}.op-caption-button>i{font-size:18px;-moz-transition:color .25s cubic-bezier(0, 0, .2, 1);-webkit-transition:color .25s cubic-bezier(0, 0, .2, 1);transition:color .25s cubic-bezier(0, 0, .2, 1)}.op-caption-active .op-caption-button>i{color:#F36446}.op-wrapper.ovenplayer.large{font-size:14px}.op-wrapper.ovenplayer.large .op-caption-text{font-size:2em;line-height:2em}.op-wrapper.ovenplayer.medium{font-size:12px}.op-wrapper.ovenplayer.medium .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.small{font-size:10px}.op-wrapper.ovenplayer.small .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.small .op-playlist{padding:1rem}.op-wrapper.ovenplayer.small .op-playlist .op-playlist-card{margin:5px 0}.op-wrapper.ovenplayer.xsmall{font-size:10px}.op-wrapper.ovenplayer.xsmall .op-bigbutton-container .op-bigbutton{width:60px;height:60px;font-size:60px;line-height:60px}.op-wrapper.ovenplayer.xsmall .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.xsmall .op-playlist{padding:1rem}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-header{font-size:2em}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-card{margin:5px 0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;padding:0 6em}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-card .op-playlist-card-title{margin-top:0}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container{top:50%;font-weight:bold}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container .op-message-icon{margin-top:0}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container .op-message-icon .op-con{font-size:40px;width:40px;height:40px;line-height:40px}.op-wrapper.ovenplayer.xsmall .op-ads-button{bottom:22px}.op-wrapper.ovenplayer.xsmall .op-ads-button .videoAdUiAction{padding:4px;font-size:14px}.op-wrapper.ovenplayer.xxsmall .op-left-controls{max-width:240px;overflow:hidden}.op-wrapper.ovenplayer.xxsmall .op-live-badge-lowlatency{max-width:75px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel{height:34px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls{top:4px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls .op-left-controls{height:30px;padding:0}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls .op-right-controls{height:30px;padding:0}.op-wrapper.ovenplayer.linear-ad .op-ads{top:0;bottom:0}.op-wrapper.ovenplayer.linear-ad .op-button i.op-con{width:24px;height:24px;font-size:24px}.op-wrapper.ovenplayer.linear-ad .op-controls-container .op-bottom-panel .op-progressbar-container{bottom:50px}@keyframes fade{from{opacity:.3}55%{opacity:1}75%{opacity:1}to{opacity:.3}}@-webkit-keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:scale3d(.5, .5, .5);transform:scale3d(.5, .5, .5)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(.97, .97, .97);transform:scale3d(.97, .97, .97)}to{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(.97, .97, .97);transform:scale3d(.97, .97, .97)}to{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.op-player .bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.op-player .fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}.op-player .animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media (prefers-reduced-motion){.op-player .animated{-webkit-animation:unset !important;animation:unset !important;-webkit-transition:none !important;transition:none !important}}@media only screen and (max-width:399px){.op-seek-button{display:none !important}}',"",{version:3,sources:["webpack://./src/stylesheet/ovenplayer.less"],names:[],mappings:"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",sourcesContent:['@charset "UTF-8";\n\n/**\n * @brief   Animation\n * */\n\n@keyframes op-spinner {\n  0% {\n    transform: rotate(0deg);\n  }\n\n  100% {\n    transform: rotate(360deg);\n  }\n}\n\n@-webkit-keyframes op-slideOutDown {\n  from {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n\n  to {\n    visibility: hidden;\n    -webkit-transform: translate3d(0, 100%, 0);\n    transform: translate3d(0, 100%, 0);\n  }\n}\n\n@keyframes op-slideOutDown {\n  from {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n\n  to {\n    visibility: hidden;\n    -webkit-transform: translate3d(0, 100%, 0);\n    transform: translate3d(0, 100%, 0);\n  }\n}\n\n@-webkit-keyframes op-slideInUp {\n  from {\n    -webkit-transform: translate3d(0, 100%, 0);\n    transform: translate3d(0, 100%, 0);\n    opacity: 1;\n  }\n\n  to {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n@keyframes op-slideInUp {\n  from {\n    -webkit-transform: translate3d(0, 100%, 0);\n    transform: translate3d(0, 100%, 0);\n    opacity: 1;\n  }\n\n  to {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n}\n\n@font-face {\n  font-family: "frameIcon";\n  src: url("../assets/images/ic-player-frame-jump.ttf?rxg7gj") format(\'truetype\');\n  font-weight: normal;\n  font-style: normal;\n}\n\n@font-face {\n  font-family: \'op-icons\';\n  src: url(\'../assets/fonts/fontello.ttf?13010392\') format(\'truetype\');\n  font-weight: normal;\n  font-style: normal;\n}\n\n@font-face {\n  font-family: \'op-seek-icons\';\n  src: url(\'../assets/fonts/seek-icons.ttf?13010392\') format(\'truetype\');\n  font-weight: normal;\n  font-style: normal;\n}\n\n/**\n * @brief   common style\n * */\n\n:root {\n  --op-accent-color: #50e3c2;\n}\n\n.op-wrapper.ovenplayer {\n  position: relative;\n  max-height: 100%;\n\n  overflow: hidden;\n  zoom: 1 !important;\n  width: 100%;\n  display: block;\n  font-family: Helvetica, Arial, sans-serif;\n  background-color: #000;\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  color: #fff;\n  font-size: 14px;\n  font-weight: 100;\n  outline: 0;\n\n  -webkit-touch-callout: none;\n  user-select: none;\n\n  * {\n    box-sizing: inherit;\n  }\n\n  object {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n  }\n\n  &:before,\n  &:after {\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n  }\n\n  & *,\n  & *:before,\n  & *:after {\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n  }\n\n  &.op-fullscreen {\n    width: 100% !important;\n    height: 100% !important;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 9999;\n    margin: 0;\n    position: fixed;\n\n    .op-watermark-container,\n    .op-thumbnail-container {\n      width: 100vw;\n      max-width: calc(100vh * 16 / 9);\n      height: calc(100vw * 9 / 16);\n      max-height: 100vh;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n    }\n\n  }\n\n  &.op-autohide {\n    cursor: none;\n\n    .op-bottom-panel {\n\n      -webkit-animation-name: op-slideOutDown;\n      animation-name: op-slideOutDown;\n\n      -webkit-animation-duration: 0.2s;\n      animation-duration: 0.2s;\n      -webkit-animation-fill-mode: both;\n      animation-fill-mode: both;\n    }\n\n    .op-progressbar-container,\n    .op-controls .op-button {\n      cursor: none;\n    }\n\n    .op-caption-text-container {\n      bottom: 25px;\n    }\n  }\n\n  &.op-no-controls {\n\n    .op-controls-container {\n      display: none !important;\n    }\n  }\n\n  .op-ratio {\n    padding-bottom: 56.25%;\n    /*16:9*/\n  }\n\n  & ::-webkit-scrollbar {\n    width: 5px;\n    height: 8px;\n  }\n\n  & ::-webkit-scrollbar-button:start:decrement,\n  ::-webkit-scrollbar-button:end:increment {\n    display: block;\n    height: 3px;\n    background: #2f2f3e;\n  }\n\n  & ::-webkit-scrollbar-track {\n    background: #2f2f3e;\n    -webkit-border-radius: 10px;\n    border-radius: 10px;\n  }\n\n  & ::-webkit-scrollbar-thumb {\n    height: 50px;\n    width: 50px;\n    background: #606071;\n    -webkit-border-radius: 8px;\n    border-radius: 8px;\n  }\n\n  .op-clear {\n    color: inherit;\n    background-color: transparent;\n    padding: 0;\n    margin: 0;\n    float: none;\n    font-family: Helvetica, Arial, sans-serif;\n    font-size: 1em;\n    line-height: 1em;\n    list-style: none;\n    text-transform: none;\n    vertical-align: baseline;\n    border: 0;\n    font-variant: inherit;\n    font-stretch: inherit;\n    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n  }\n}\n\n.op-player {\n  position: absolute;\n  top: 0;\n  height: 100%;\n  width: 100%;\n\n\n\n  .op-core-ui-wrapper {\n    position: relative;\n    height: 100%;\n  }\n\n  .op-media-element-container {\n    /* display: block;\n    height: 100%;\n    width: auto;\n    position : relative;*/\n\n\n    position: absolute;\n    left: 0px;\n    top: 0px;\n    width: 100%;\n    height: 100%;\n\n    video {\n      position: absolute;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n    }\n\n    object {\n      width: 100%;\n      height: 100%;\n    }\n  }\n\n  .op-ui {\n\n    /*position : absolute;\n    bottom : 0px;\n    left : 0px;\n    width: 100%;\n    height: 100%;*/\n    .op-controls-container {}\n\n    .op-helpers-container {}\n  }\n}\n\n.op-ads {\n  position: absolute;\n  height: 100%;\n  width: 100%;\n  padding-bottom: 34px;\n  //pointer-events: none;\n  top: 0;\n\n  &>div {\n    position: absolute !important;\n    width: 100% !important;\n    height: 100% !important;\n\n    iframe {\n      pointer-events: auto;\n    }\n  }\n\n  video.op-ads-vast-video {\n    background-color: rgb(0, 0, 0);\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    left: 0;\n    top: 0;\n    z-index: 1;\n  }\n\n  .op-ads-button {\n    bottom: 36px;\n    cursor: default;\n    margin-right: 4px;\n    pointer-events: auto;\n    position: absolute;\n    right: 0;\n    z-index: 1;\n    width: auto !important;\n    height: auto !important;\n    border-radius: 4px;\n    background-color: rgba(18, 18, 28, 0.7);\n    min-width: 155px;\n    display: none;\n\n    .op-ads-textview {\n      color: #e6e6e6;\n      //font-family: arial,sans-serif;\n      font-weight: normal;\n      font-size: 11px;\n      padding: 6px 12px;\n      text-align: center;\n      display: inline-block;\n      width: 100%;\n      vertical-align: middle;\n    }\n\n    .videoAdUiAction {\n      padding: 8px 24px;\n      cursor: pointer;\n      direction: ltr;\n      font-weight: normal;\n      font-size: 20px;\n      border: 1px solid rgba(255, 255, 255, 0.5);\n\n      &:hover {\n        border-radius: 4px;\n        border: 1px solid rgba(255, 255, 255, 1);\n      }\n\n      i {\n        display: inline-block;\n        width: auto;\n      }\n    }\n  }\n\n}\n\n/**\n * @brief   common components\n * */\n\n.op-button {\n  display: inline-block;\n  border: none;\n  background: transparent;\n  padding: 0;\n  color: inherit;\n  text-align: inherit;\n  overflow: hidden;\n  font-weight: 100;\n  text-indent: 0 !important;\n\n  &:focus,\n  & {\n    outline: 0;\n  }\n}\n\ni.op-con {\n  font-family: "op-icons", "op-seek-icons";\n  font-style: normal;\n  font-weight: normal;\n  speak: none;\n\n  font-size: inherit;\n  width: auto;\n  font-size: 30px;\n  line-height: 30px;\n\n  display: block;\n  text-decoration: inherit;\n  text-align: center;\n\n  /* For safety - reset parent styles, that can break glyph codes*/\n  font-variant: normal;\n  text-transform: none;\n\n  /* Font smoothing. That was taken from TWBS */\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n  cursor: pointer;\n\n  &.disable {\n    color: #4f4f4f;\n  }\n\n  &.op-close-icon {\n    &::before {\n      content: "\\e900";\n    }\n  }\n\n  &.op-pause-big {\n    &::before {\n      content: "\\e911";\n    }\n  }\n\n  &.op-fullscreen-compress {\n    &::before {\n      content: "\\e901";\n    }\n  }\n\n  &.op-fullscreen-expand {\n    &::before {\n      content: "\\e902";\n    }\n  }\n\n  &.op-arrow-left {\n    &::before {\n      content: "\\e903";\n    }\n  }\n\n  &.op-arrow-right {\n    &::before {\n      content: "\\e909";\n    }\n  }\n\n  &.op-empty-video {\n    &::before {\n      content: "\\e904";\n    }\n  }\n\n  &.op-play {\n    &::before {\n      content: "\\e906";\n    }\n  }\n\n  &.op-replay {\n    &::before {\n      content: "\\e908";\n    }\n  }\n\n  &.op-seek-back {\n    &::before {\n      content: "\\e920";\n    }\n  }\n\n  &.op-seek-forward {\n    &::before {\n      content: "\\e921";\n    }\n  }\n\n  &.op-playlist-icon {\n    &::before {\n      content: "\\e907";\n    }\n  }\n\n  &.op-replay-big {\n    &::before {\n      content: "\\e908";\n    }\n  }\n\n  &.op-setting {\n    &::before {\n      content: "\\e90A";\n    }\n  }\n\n  &.op-pause {\n    &::before {\n      content: "\\e90C";\n    }\n  }\n\n  &.op-volume-small {\n    display: none;\n    margin-top: -1px;\n\n    &::before {\n      content: "\\e90D";\n    }\n  }\n\n  &.op-volume-mute {\n    display: none;\n\n    &::before {\n      content: "\\e90E";\n    }\n  }\n\n  &.op-volume-max {\n    &::before {\n      content: "\\e90F";\n    }\n  }\n\n  &.op-play-big {\n    &::before {\n      content: "\\e910";\n    }\n  }\n\n  &.op-warning {\n    &::before {\n      content: "\\e912";\n    }\n  }\n}\n\n.op-badge {\n  display: inline-block;\n  padding: .75em .714em .714em .680em;\n  font-size: 1em;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.286em;\n  background-color: #12121c;\n}\n\n.op-playlist {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  left: 0;\n  top: 0;\n  padding: 2.857em;\n  background: #000;\n  z-index: 6;\n\n  .op-badge {\n    position: absolute;\n    top: 0.857em;\n    right: 0.857em;\n    opacity: 0.7;\n  }\n\n  .btn-left {\n    float: left;\n    font-size: 2.857em;\n  }\n\n  .btn-right {\n    float: right;\n    font-size: 2.857em;\n  }\n\n  .op-playlist-header {\n    font-size: 2.857em;\n    font-weight: bold;\n\n    &:after {\n      display: block;\n      content: \'\';\n      clear: both;\n    }\n\n    .op-con.op-close-icon {\n      float: right;\n    }\n  }\n\n  .op-playlist-body {\n    height: 100%;\n    overflow: hidden;\n    position: relative;\n\n    .op-playlist-body-arrows {\n      margin-top: -15px;\n      position: absolute;\n      top: 50%;\n      height: 30px;\n      -ms-transform: translateY(-50%);\n      transform: translateY(-50%);\n      width: 100%;\n      left: 0;\n    }\n\n    .op-playlist-body-container {\n      width: 100%;\n      height: 100%;\n      position: relative;\n      margin-right: auto;\n      margin-left: auto;\n      max-width: 992px;\n\n      .op-playlist-body-center {\n        margin: 0;\n        position: absolute;\n        top: 50%;\n        padding-right: 3em;\n        padding-left: 3em;\n        -ms-transform: translateY(-50%);\n        transform: translateY(-50%);\n        width: 100%;\n      }\n    }\n\n    .op-playlist-body-row {\n      margin-right: -15px;\n      margin-left: -15px;\n      display: -ms-flexbox;\n      display: flex;\n      -ms-flex-wrap: wrap;\n      flex-wrap: wrap;\n\n\n      .op-playlist-card {\n        padding-right: 15px;\n        padding-left: 15px;\n        margin: 15px 0;\n        -ms-flex-preferred-size: 0;\n        flex-basis: 0;\n        -ms-flex-positive: 1;\n        flex-grow: 1;\n        -ms-flex: 0 0 33.333333%;\n        flex: 0 0 33.333333%;\n        max-width: 33.333333%;\n        cursor: pointer;\n\n        &.active {\n          color: #50e3c2;\n          color: var(--op-accent-color);\n\n          .op-playlist-card-thumbnail {\n            border-color: #50e3c2;\n            border-color: var(--op-accent-color);\n          }\n        }\n\n        .op-playlist-card-thumbnail {\n          position: relative;\n          display: block;\n          width: 100%;\n          padding: 0;\n          overflow: hidden;\n          border: 0.214em solid transparent;\n          background-color: #000;\n\n          img {\n            position: absolute;\n            top: 0;\n            bottom: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            border: 0;\n          }\n\n          &.empty {\n            background-color: #bababa;\n\n            &>i {\n              margin: 0;\n              position: absolute;\n              top: 50%;\n              left: 50%;\n              transform: translate(-50%, -50%);\n              color: #fff !important;\n              font-size: 1.6em !important;\n            }\n          }\n\n          &::before {\n            padding-top: 56.25%;\n            display: block;\n            content: "";\n          }\n        }\n\n        .op-playlist-card-title {\n          margin-top: 0.857em;\n          font-size: 1.429em;\n          padding: 2px 0;\n          white-space: nowrap;\n          overflow: hidden;\n          text-overflow: ellipsis;\n        }\n\n      }\n    }\n\n  }\n}\n\n\n/**\n * @brief   Message Box\n * */\n\n.op-message-box {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 4;\n\n  .op-message-container {\n    position: absolute;\n    top: 45%;\n    margin-top: -35px;\n    width: 100%;\n    padding: 0 12px;\n    text-align: center;\n\n    .op-message-text {\n      display: inline-block;\n      background-color: rgba(18, 18, 28, .3);\n      padding: 0.8em 1.2em;\n      word-wrap: break-word;\n      max-width: 80%;\n      border-radius: 4px;\n      cursor: pointer;\n\n      .op-message-description {\n        font-size: 12px;\n        margin-top: 12px;\n        color: #999;\n      }\n    }\n\n\n    .op-message-icon {\n      display: inline-block;\n      margin-top: 12px;\n      width: 100%;\n\n      i.op-con {\n        cursor: pointer;\n        font-size: 80px;\n        width: 80px;\n        height: 80px;\n        line-height: 80px;\n        display: inline-block;\n        text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\n      }\n    }\n\n    /*.op-message-button{\n      display: inline-block;\n      padding : 1em;\n      margin-left : 0.4em;\n      background-color: rgba(28,28,28,.4);\n      cursor : pointer;\n    }*/\n  }\n}\n\n.op-message-box.op-message-box-default-cursor .op-message-container .op-message-text {\n  cursor: default;\n}\n\n.op-message-box.op-message-box-default-cursor .op-message-container .op-message-icon i.op-con {\n  cursor: default;\n}\n\n/**\n * @brief   Big button\n * */\n\n.op-bigbutton-container {\n  cursor: pointer;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  text-align: center;\n  z-index: 5;\n\n  .op-bigbutton {\n    width: 80px;\n    height: 80px;\n    display: block;\n    font-size: 80px;\n    line-height: 80px;\n    text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\n  }\n}\n\n/**\n * @brief   Thumbnail\n * */\n\n.op-thumbnail-container {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  //padding-bottom: 56.25%;\n  top: 0;\n  left: 0;\n  //transform: translate(-50%, -50%);\n  z-index: 2;\n  pointer-events: none;\n\n  .op-thumbnail-wrapper {\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: 100%;\n    height: 100%;\n\n    img {\n      width: 100%;\n      height: 100%;\n    }\n\n    .op-thumbnail-header {\n      position: absolute;\n      left: 1rem;\n      top: 1rem;\n      padding: 0 0.5rem;\n      font-size: 2.857em;\n      font-weight: bold;\n      line-height: 1.4;\n      text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\n\n      &:after {\n        display: block;\n        content: \'\';\n        clear: both;\n      }\n    }\n  }\n}\n\n/**\n * @brief   WaterMark\n * */\n\n.op-watermark-container {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  //padding-bottom: 56.25%;\n  top: 0;\n  left: 0;\n  //transform: translate(-50%, -50%);\n  z-index: 3;\n\n  .op-watermark {\n    position: absolute;\n    display: inline-block;\n\n    img {\n      width: 100%;\n      height: 100%;\n    }\n\n    .op-watermark-text {\n      font-size: 14px;\n    }\n  }\n}\n\n/**\n * @brief   Setting panel\n * */\n\n.op-setting-panel {\n  position: absolute;\n  bottom: 55px;\n  right: 12px;\n  overflow-y: auto;\n  max-height: 100%;\n  width: 260px;\n  //font-size: 0.8em;\n  user-select: none;\n  background-color: rgba(28, 28, 28, .9);\n  text-shadow: 0 0 2px rgba(0, 0, 0, .5);\n  z-index: 8;\n\n  &.background {\n    //opacity: 0;\n    //background-color: rgba(28,28,28,.0);\n    display: none;\n  }\n\n  .op-setting-title,\n  .op-setting-item {\n    width: 100%;\n    height: 38px;\n    line-height: 38px;\n    cursor: pointer;\n    outline: none;\n    text-align: left;\n  }\n\n  .op-setting-title-container {\n    .op-setting-title {\n      .op-setting-title-title {\n        padding-left: 12px;\n        font-weight: bold;\n        //font-size: 0.9rem;\n      }\n\n      .op-setting-title-previcon {\n        padding: 0 0 0 12px;\n        margin-right: -6px;\n      }\n\n    }\n  }\n\n  .op-setting-item-container {\n    .op-setting-item {\n      &:hover {\n        background-color: rgba(255, 255, 255, .1);\n      }\n\n      .op-setting-item-title {\n        padding-left: 12px;\n      }\n\n      .op-setting-item-nexticon {\n        float: right;\n        padding-right: 12px;\n        margin-left: -6px;\n      }\n\n      span.op-setting-item-value {\n        float: right;\n        padding-right: 12px;\n      }\n\n      .op-setting-item-checked {\n        padding-left: 12px;\n        visibility: hidden;\n      }\n\n      .op-setting-item-checked.op-show {\n        visibility: visible;\n      }\n    }\n  }\n}\n\n\n\n/**\n * @brief   Controls (container)\n * */\n\n.op-controls-container {\n  display: none;\n\n  .op-bottom-panel {\n    position: absolute;\n    left: 0px;\n    bottom: 0px;\n    width: 100%;\n    z-index: 5;\n\n    .op-gradient-bottom {\n      position: absolute;\n      width: 100%;\n      height: 100%;\n      background-color: rgba(18, 18, 18, 0.5);\n      pointer-events: none;\n      /*-moz-transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);\n      -webkit-transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);\n      transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);*/\n    }\n\n    -webkit-animation-name: op-slideInUp;\n    animation-name: op-slideInUp;\n\n    -webkit-animation-duration: 0.5s;\n    animation-duration: 0.5s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n\n    .op-progressbar-container {\n      display: block;\n      position: relative;\n      width: 100%;\n      height: 4px;\n      bottom: 50px;\n\n      &.op-progressbar-container-disabled {\n        cursor: default;\n      }\n\n      .op-progressbar-padding {\n        position: absolute;\n        width: 100%;\n        height: 15px;\n        bottom: -5px;\n        cursor: pointer;\n      }\n    }\n\n\n    /*contols container*/\n    .op-controls {\n      position: relative;\n      width: 100%;\n      height: 50px;\n      text-align: left;\n      overflow: hidden;\n\n      &:after {\n        content: \'\';\n        clear: both;\n      }\n\n      .op-setting-button {\n        position: relative;\n        margin-right: 12px;\n      }\n\n      .op-playlist-button {\n        position: relative;\n        margin-right: 12px;\n      }\n\n      .op-navigators {\n        float: left;\n        height: 30px;\n        line-height: 30px;\n      }\n\n      .op-left-controls {\n        position: absolute;\n        top: 0;\n        left: 0;\n        padding: 14px 0 10px 0;\n\n        &:after {\n          content: \'\';\n          clear: both;\n        }\n      }\n\n      .op-right-controls {\n        position: absolute;\n        top: 0;\n        right: 0;\n        padding: 14px 0 10px 0;\n\n        &:after {\n          content: \'\';\n          clear: both;\n        }\n      }\n\n      /*maybe not use*/\n      .op-frame-buttons {\n        position: relative;\n        display: inline-block;\n        margin-left: 14px;\n        overflow: hidden;\n        font-weight: 100;\n        height: 30px;\n\n        .op-frame-button {\n          margin-right: 6px;\n          position: relative;\n          text-align: center;\n          color: #fff;\n\n          .frame-icon {\n            position: relative;\n\n            &.reverse {\n              &:after {\n                content: \'\\e900\';\n              }\n            }\n\n            &:after {\n              font-family: \'frameIcon\' !important;\n              speak: none;\n              content: \'\\e901\';\n              font-style: normal;\n              font-weight: normal;\n              font-variant: normal;\n              text-transform: none;\n\n              /* Better Font Rendering =========== */\n              -webkit-font-smoothing: antialiased;\n              -moz-osx-font-smoothing: grayscale;\n              position: absolute;\n              font-size: 2.4em;\n              left: 0;\n              line-height: 30px;\n              height: 30px;\n            }\n\n            .btn-text {\n              font-weight: bold;\n              font-size: 0.8em;\n              line-height: 30px;\n              height: 30px;\n            }\n\n          }\n\n        }\n\n      }\n    }\n  }\n\n}\n\n\n/**\n * @brief   Progressbar\n * */\n\n.op-progressbar {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  outline: none;\n  margin-top: 10px;\n\n  .op-play-background-color {\n    background-color: #50e3c2; // for ie 11\n    background-color: var(--op-accent-color);\n  }\n\n  .op-progress-list {\n    cursor: pointer;\n    position: relative;\n    height: 100%;\n    background: rgba(255, 255, 255, 0.2);\n\n    .op-load-progress,\n    .op-play-progress,\n    .op-hover-progress {\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      width: 100%;\n      height: 100%;\n    }\n\n    .op-play-progress {\n      width: 0;\n    }\n\n    .op-load-progress {\n      width: 0;\n      background-color: rgba(255, 255, 255, .5);\n    }\n\n    .op-hover-progress {\n      left: 0;\n      width: 0;\n      background-color: rgba(255, 255, 255, .6);\n    }\n\n  }\n\n  .op-progressbar-knob-container {\n    position: absolute;\n    top: -5px;\n    left: 0;\n\n    .op-progressbar-knob {\n      width: 14px;\n      height: 14px;\n      border-radius: 7px;\n    }\n  }\n\n  .op-progressbar-time {\n    display: none;\n    position: absolute;\n    bottom: 15px;\n    left: auto;\n    width: auto;\n    background-color: rgba(28, 28, 28, 0.9);\n    border-radius: 2px;\n    padding: 5px 9px;\n    font-size: 0.8em;\n    line-height: 15px;\n    user-select: none;\n    white-space: nowrap;\n    opacity: 0.7;\n  }\n\n\n}\n\n.op-progressbar-hover .op-progressbar-time {\n  display: inline-block;\n}\n\n.op-on-error .op-progressbar-time {\n  display: none;\n}\n\n.op-progressbar-section-start,\n.op-progressbar-section-end {\n  display: none;\n  position: absolute;\n  width: 3px;\n  height: 14px;\n  bottom: -5px;\n  background-color: #50e3c2;\n  background-color: var(--op-accent-color);\n}\n\n.op-progressbar-preview {\n  position: absolute;\n  display: none;\n  bottom: 50px;\n  border: 2px solid #fff;\n  border-radius: 2px;\n  background-color: #000;\n  z-index: 9;\n}\n\n.op-play-controller {\n  margin-left: 15px;\n}\n\n/**\n * @brief   Seek button\n * */\n\n.op-seek-button {\n  //display: none;\n  position: relative;\n  top: 0px;\n\n  &.op-seek-button-back {\n    margin-left: 12px;\n  }\n\n  &.op-seek-button-forward {\n    margin-left: 6px;\n  }\n\n  i {\n    padding-top: 1px;\n    font-size: 26px;\n  }\n\n  span {\n    position: absolute;\n    top: 10.5px;\n    left: 0;\n    right: 0;\n    text-align: center;\n    font-size: 10px;\n    line-height: 10px;\n    cursor: pointer;\n  }\n}\n\n\n/**\n * @brief   Volume button\n * */\n.op-volume-controller {\n  display: inline-block;\n  position: relative;\n  margin-left: 12px;\n\n  &:after {\n    content: \'\';\n    clear: both;\n  }\n\n  .op-volume-button {\n    float: left;\n  }\n\n  @-webkit-keyframes slide {\n    100% {\n      left: 0;\n    }\n  }\n\n  @keyframes slide {\n    100% {\n      left: 0;\n    }\n  }\n\n  .op-volume-slider-container {\n    /*display: inline-block;*/\n    float: left;\n    opacity: 0;\n    position: relative;\n    width: 0px;\n    margin-right: 0;\n    line-height: 30px;\n    height: 30px;\n    cursor: pointer;\n    user-select: none;\n    outline: none;\n\n    &.active {\n      width: 70px;\n      opacity: 1;\n      margin-left: 8px;\n      -moz-transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\n      -webkit-transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\n      transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\n    }\n\n    .op-volume-silder {\n      height: 100%;\n      position: relative;\n\n      .op-volume-slider-bg,\n      .op-volume-slider-value {\n        position: absolute;\n        display: block;\n        left: 0;\n        top: 50%;\n        height: 4px;\n        margin-top: -2px;\n        border-radius: 10px;\n      }\n\n      .op-volume-slider-bg {\n        width: 100%;\n        background: #fff;\n      }\n\n      .op-volume-slider-value {\n        width: 100%;\n        background: #50e3c2;\n        background: var(--op-accent-color);\n        border-radius: 10px 0 0 10px;\n        //-moz-transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\n        //-webkit-transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\n        //transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\n      }\n\n      .op-volume-slider-handle {\n        position: absolute;\n        top: 50%;\n        left: 30px;\n        width: 12px;\n        height: 12px;\n        border-radius: 10px;\n        margin-top: -6px;\n        background: #fff;\n        //-moz-transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\n        //-webkit-transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\n        //transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\n      }\n    }\n  }\n}\n\n\n/**\n * @brief   Time Display\n * */\n\n.op-time-display {\n  float: left;\n  position: relative;\n  margin-left: 14px;\n  height: 30px;\n  line-height: 30px;\n  white-space: nowrap;\n  vertical-align: top;\n  font-size: 14px;\n  user-select: none;\n  /*흠 이부분 어떻게 처리하지*/\n\n  .op-time-current,\n  .op-time-separator,\n  .op-time-duration {}\n\n  .op-live-badge {\n    opacity: 1;\n    width: auto;\n    display: inline-block;\n\n    &:before {\n      background: #ff0000;\n      display: inline-block;\n      position: relative;\n      top: -2px;\n      width: 6px;\n      height: 6px;\n      margin-right: 5px;\n      content: \'\';\n      border-radius: 6px;\n    }\n\n    &.op-live-badge-delayed:before {\n      background: #fff;\n    }\n\n    .op-live-badge-lowlatency {\n      display: inline-block;\n      margin-right: 5px;\n    }\n\n    .op-live-text {\n      cursor: pointer;\n    }\n  }\n\n}\n\n\n/**\n * @brief   Context Panel\n * */\n\n.op-context-panel {\n  -moz-box-sizing: border-box;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  display: block;\n  position: absolute;\n  overflow: hidden;\n  width: 200px;\n  padding: 6px 0;\n  z-index: 8;\n  background: rgba(28, 28, 28, 0.9);\n  text-shadow: 0 0 2px rgba(0, 0, 0, .5);\n  font-weight: lighter;\n  user-select: none;\n\n  &:before,\n  &:after {\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n  }\n\n  & *,\n  & *:before,\n  & *:after {\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n  }\n\n  .op-context-item {\n    width: 100%;\n    height: 38px;\n    padding-left: 12px;\n    line-height: 38px;\n    cursor: pointer;\n    outline: none;\n    font-size: 0.8em;\n    font-weight: lighter;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    overflow: hidden;\n\n    &:hover {\n      background-color: rgba(255, 255, 255, .1);\n    }\n  }\n\n}\n\n\n\n\n\n\n/**\n * @brief   FullScreen button\n * */\n\n.op-fullscreen-button {\n  position: relative;\n  margin-right: 15px;\n\n  .op-fullscreen-compress {\n    display: none;\n  }\n}\n\n/**\n * @brief   spinner\n * */\n\n.op-spinner-container {\n  position: absolute;\n  top: 50%;\n  width: 64px;\n  left: 50%;\n  margin-left: -32px;\n  margin-top: -32px;\n  z-index: 7;\n  display: none;\n\n\n  .op-spinner {\n    display: inline-block;\n    position: relative;\n    width: 64px;\n    height: 64px;\n\n    border: 4px solid transparent;\n    border-top: 4px solid #50e3c2;\n    border-top: 4px solid var(--op-accent-color);\n    border-radius: 50%;\n\n    animation: spin 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n\n    @keyframes spin {\n      0% {\n        transform: rotate(0deg);\n      }\n\n      100% {\n        transform: rotate(360deg);\n      }\n    }\n  }\n\n}\n\n\n/**\n * @brief   caption.\n * */\n\n.op-caption-viewer {\n\n  .op-caption-text-container {\n    position: absolute;\n    bottom: 60px;\n    width: 100%;\n    padding: 0 12px;\n    text-align: center;\n    -moz-transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n    -webkit-transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n    transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n\n    .op-caption-text {\n      color: #fff;\n      font-size: 1em;\n      line-height: 1.2em;\n      text-shadow: 2px 2px 2px gray;\n      padding: .1em .3em;\n      user-select: none;\n      word-break: break-word;\n      white-space: pre-line;\n      border: none;\n      background: none;\n    }\n  }\n}\n\n.op-caption-button {\n  width: 36px;\n}\n\n.op-caption-button>i {\n  font-size: 18px;\n  -moz-transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n  -webkit-transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n  transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\n}\n\n.op-caption-active .op-caption-button>i {\n  color: #F36446;\n}\n\n\n\n/*Responsive  */\n\n.op-wrapper.ovenplayer.large {\n  font-size: 14px;\n\n  .op-caption-text {\n    font-size: 2em;\n    line-height: 2em;\n  }\n\n}\n\n.op-wrapper.ovenplayer.medium {\n  font-size: 12px;\n\n  .op-caption-text {\n    font-size: 1.4em;\n    line-height: 1.4em;\n  }\n}\n\n.op-wrapper.ovenplayer.small {\n  font-size: 10px;\n\n  .op-caption-text {\n    font-size: 1.4em;\n    line-height: 1.4em;\n  }\n\n  .op-playlist {\n    padding: 1rem;\n\n    .op-playlist-card {\n      margin: 5px 0;\n    }\n  }\n\n}\n\n.op-wrapper.ovenplayer.xsmall {\n  font-size: 10px;\n\n  .op-bigbutton-container {\n\n    .op-bigbutton {\n      width: 60px;\n      height: 60px;\n      font-size: 60px;\n      line-height: 60px;\n    }\n  }\n\n  .op-caption-text {\n    font-size: 1.4em;\n    line-height: 1.4em;\n  }\n\n  .op-playlist {\n    padding: 1rem;\n\n    .op-playlist-header {\n      font-size: 2em;\n    }\n\n    .op-playlist-card {\n      margin: 5px 0;\n      -ms-flex: 0 0 100%;\n      flex: 0 0 100%;\n      max-width: 100%;\n      padding: 0 6em;\n\n      .op-playlist-card-title {\n        margin-top: 0;\n      }\n    }\n  }\n\n  .op-message-box {\n    .op-message-container {\n      top: 50%;\n      font-weight: bold;\n\n      .op-message-icon {\n        margin-top: 0;\n\n        .op-con {\n          font-size: 40px;\n          width: 40px;\n          height: 40px;\n          line-height: 40px;\n        }\n      }\n    }\n  }\n\n  .op-ads-button {\n    bottom: 22px;\n\n    .videoAdUiAction {\n      padding: 4px;\n      font-size: 14px;\n    }\n  }\n}\n\n.op-wrapper.ovenplayer.xxsmall {\n\n  .op-left-controls {\n    max-width: 240px; // for small layout\n    overflow: hidden; // for small layout\n  }\n\n  .op-live-badge-lowlatency {\n    max-width: 75px;\n  }\n}\n\n/*AD MODE*/\n.op-wrapper.ovenplayer.linear-ad {\n\n  .op-bottom-panel {\n    height: 34px;\n\n    .op-controls {\n\n      top: 4px;\n\n      .op-left-controls {\n        height: 30px;\n        padding: 0;\n      }\n\n      .op-right-controls {\n        height: 30px;\n        padding: 0;\n      }\n    }\n  }\n\n  .op-ads {\n    top: 0;\n    bottom: 0;\n  }\n\n  .op-button {\n    i.op-con {\n      width: 24px;\n      height: 24px;\n      font-size: 24px;\n    }\n  }\n\n  .op-right-controls {\n    .op-button {\n      //margin-top: -2px;\n    }\n  }\n\n  .op-controls-container .op-bottom-panel .op-progressbar-container {\n    bottom: 50px;\n  }\n}\n\n/**\n * @brief   Animation\n * */\n\n.op-player {\n  @keyframes fade {\n    from {\n      opacity: 0.3;\n    }\n\n    /*5% { opacity: 0.3; }*/\n    /*40% { opacity: 1; }*/\n    /*50% { opacity: 1; }*/\n    55% {\n      opacity: 1;\n    }\n\n    75% {\n      opacity: 1;\n    }\n\n    to {\n      opacity: 0.3;\n    }\n  }\n\n  @-webkit-keyframes bounceIn {\n\n    from,\n    20%,\n    40%,\n    60%,\n    80%,\n    to {\n      -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n      animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n    }\n\n    0% {\n      opacity: 0;\n      -webkit-transform: scale3d(0.5, 0.5, 0.5);\n      transform: scale3d(0.5, 0.5, 0.5);\n    }\n\n    20% {\n      -webkit-transform: scale3d(1.1, 1.1, 1.1);\n      transform: scale3d(1.1, 1.1, 1.1);\n    }\n\n    40% {\n      -webkit-transform: scale3d(0.9, 0.9, 0.9);\n      transform: scale3d(0.9, 0.9, 0.9);\n    }\n\n    60% {\n      opacity: 1;\n      -webkit-transform: scale3d(1.03, 1.03, 1.03);\n      transform: scale3d(1.03, 1.03, 1.03);\n    }\n\n    80% {\n      -webkit-transform: scale3d(0.97, 0.97, 0.97);\n      transform: scale3d(0.97, 0.97, 0.97);\n    }\n\n    to {\n      opacity: 1;\n      -webkit-transform: scale3d(1, 1, 1);\n      transform: scale3d(1, 1, 1);\n    }\n  }\n\n  @keyframes bounceIn {\n\n    from,\n    20%,\n    40%,\n    60%,\n    80%,\n    to {\n      -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n      animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n    }\n\n    0% {\n      opacity: 0;\n      -webkit-transform: scale3d(0.3, 0.3, 0.3);\n      transform: scale3d(0.3, 0.3, 0.3);\n    }\n\n    20% {\n      -webkit-transform: scale3d(1.1, 1.1, 1.1);\n      transform: scale3d(1.1, 1.1, 1.1);\n    }\n\n    40% {\n      -webkit-transform: scale3d(0.9, 0.9, 0.9);\n      transform: scale3d(0.9, 0.9, 0.9);\n    }\n\n    60% {\n      opacity: 1;\n      -webkit-transform: scale3d(1.03, 1.03, 1.03);\n      transform: scale3d(1.03, 1.03, 1.03);\n    }\n\n    80% {\n      -webkit-transform: scale3d(0.97, 0.97, 0.97);\n      transform: scale3d(0.97, 0.97, 0.97);\n    }\n\n    to {\n      opacity: 1;\n      -webkit-transform: scale3d(1, 1, 1);\n      transform: scale3d(1, 1, 1);\n    }\n  }\n\n  .bounceIn {\n    -webkit-animation-duration: 0.75s;\n    animation-duration: 0.75s;\n    -webkit-animation-name: bounceIn;\n    animation-name: bounceIn;\n  }\n\n  @-webkit-keyframes fadeIn {\n    from {\n      opacity: 0;\n    }\n\n    to {\n      opacity: 1;\n    }\n  }\n\n  @keyframes fadeIn {\n    from {\n      opacity: 0;\n    }\n\n    to {\n      opacity: 1;\n    }\n  }\n\n  .fadeIn {\n    -webkit-animation-name: fadeIn;\n    animation-name: fadeIn;\n  }\n\n  .animated {\n    -webkit-animation-duration: 1s;\n    animation-duration: 1s;\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both;\n  }\n\n  @media (prefers-reduced-motion) {\n    .animated {\n      -webkit-animation: unset !important;\n      animation: unset !important;\n      -webkit-transition: none !important;\n      transition: none !important;\n    }\n  }\n\n\n  /* Pulse Shrink */\n  /*.op-button {\n    //display: inline-block;\n    //vertical-align: middle;\n    transform: translateZ(0);\n    box-shadow: 0 0 1px rgba(0, 0, 0, 0);\n    backface-visibility: hidden;\n    -moz-osx-font-smoothing: grayscale;\n    transition-duration: 0.3s;\n    transition-property: transform;\n  }\n  .op-button:hover,\n  .op-button:focus,\n  .op-button:active {\n    transform: scale(1.1);\n  }*/\n}\n\n\n@media only screen and (max-width: 399px) {\n  .op-seek-button {\n    display: none !important;\n  }\n}'],sourceRoot:""}]),t.Z=f},3645:function(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(r)for(var A=0;A<this.length;A++){var s=this[A][0];null!=s&&(a[s]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);r&&a[u[0]]||(void 0!==i&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},1667:function(e){"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},7537:function(e){"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),i="/*# ".concat(o," */"),a=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(e," */")}));return[t].concat(a).concat([i]).join("\n")}return[t].join("\n")}},3379:function(e){"use strict";var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var i={},a=[],A=0;A<e.length;A++){var s=e[A],c=r.base?s[0]+r.base:s[0],u=i[c]||0,l="".concat(c," ").concat(u);i[c]=u+1;var f=n(l),p={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==f)t[f].references++,t[f].updater(p);else{var d=o(p,r);r.byIndex=A,t.splice(A,0,{identifier:l,updater:d,references:1})}a.push(l)}return a}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var i=r(e=e||[],o=o||{});return function(e){e=e||[];for(var a=0;a<i.length;a++){var A=n(i[a]);t[A].references--}for(var s=r(e,o),c=0;c<i.length;c++){var u=n(i[c]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}i=s}}},569:function(e){"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},9216:function(e){"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},3565:function(e,t,n){"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7795:function(e){"use strict";e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},4589:function(e){"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},7147:function(e,t,n){"use strict";var r="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==r&&r,o="URLSearchParams"in r,i="Symbol"in r&&"iterator"in Symbol,a="FileReader"in r&&"Blob"in r&&function(){try{return new Blob,!0}catch(e){return!1}}(),A="FormData"in r,s="ArrayBuffer"in r;if(s)var c=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(e){return e&&c.indexOf(Object.prototype.toString.call(e))>-1};function l(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function f(e){return"string"!=typeof e&&(e=String(e)),e}function p(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return i&&(t[Symbol.iterator]=function(){return t}),t}function d(e){this.map={},e instanceof d?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function g(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function h(e){return new Promise((function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}}))}function v(e){var t=new FileReader,n=h(t);return t.readAsArrayBuffer(e),n}function m(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function C(){return this.bodyUsed=!1,this._initBody=function(e){var t;this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:a&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:A&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:o&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():s&&a&&(t=e)&&DataView.prototype.isPrototypeOf(t)?(this._bodyArrayBuffer=m(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(e)||u(e))?this._bodyArrayBuffer=m(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):o&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},a&&(this.blob=function(){var e=g(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?g(this)||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer)):this.blob().then(v)}),this.text=function(){var e,t,n,r=g(this);if(r)return r;if(this._bodyBlob)return e=this._bodyBlob,n=h(t=new FileReader),t.readAsText(e),n;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},A&&(this.formData=function(){return this.text().then(w)}),this.json=function(){return this.text().then(JSON.parse)},this}d.prototype.append=function(e,t){e=l(e),t=f(t);var n=this.map[e];this.map[e]=n?n+", "+t:t},d.prototype.delete=function(e){delete this.map[l(e)]},d.prototype.get=function(e){return e=l(e),this.has(e)?this.map[e]:null},d.prototype.has=function(e){return this.map.hasOwnProperty(l(e))},d.prototype.set=function(e,t){this.map[l(e)]=f(t)},d.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},d.prototype.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),p(e)},d.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),p(e)},d.prototype.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),p(e)},i&&(d.prototype[Symbol.iterator]=d.prototype.entries);var y=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function b(e,t){if(!(this instanceof b))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');var n,r,o=(t=t||{}).body;if(e instanceof b){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new d(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,o||null==e._bodyInit||(o=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new d(t.headers)),this.method=(r=(n=t.method||this.method||"GET").toUpperCase(),y.indexOf(r)>-1?r:n),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(o),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==t.cache&&"no-cache"!==t.cache)){var i=/([?&])_=[^&]*/;i.test(this.url)?this.url=this.url.replace(i,"$1_="+(new Date).getTime()):this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}function w(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}})),t}function E(e,t){if(!(this instanceof E))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===t.statusText?"":""+t.statusText,this.headers=new d(t.headers),this.url=t.url||"",this._initBody(e)}b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},C.call(b.prototype),C.call(E.prototype),E.prototype.clone=function(){return new E(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},E.error=function(){var e=new E(null,{status:0,statusText:""});return e.type="error",e};var B=[301,302,303,307,308];E.redirect=function(e,t){if(-1===B.indexOf(t))throw new RangeError("Invalid status code");return new E(null,{status:t,headers:{location:e}})};var x=r.DOMException;try{new x}catch(e){(x=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack}).prototype=Object.create(Error.prototype),x.prototype.constructor=x}function k(e,t){return new Promise((function(n,o){var i=new b(e,t);if(i.signal&&i.signal.aborted)return o(new x("Aborted","AbortError"));var A=new XMLHttpRequest;function c(){A.abort()}A.onload=function(){var e,t,r={status:A.status,statusText:A.statusText,headers:(e=A.getAllResponseHeaders()||"",t=new d,e.replace(/\r?\n[\t ]+/g," ").split("\r").map((function(e){return 0===e.indexOf("\n")?e.substr(1,e.length):e})).forEach((function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}})),t)};r.url="responseURL"in A?A.responseURL:r.headers.get("X-Request-URL");var o="response"in A?A.response:A.responseText;setTimeout((function(){n(new E(o,r))}),0)},A.onerror=function(){setTimeout((function(){o(new TypeError("Network request failed"))}),0)},A.ontimeout=function(){setTimeout((function(){o(new TypeError("Network request failed"))}),0)},A.onabort=function(){setTimeout((function(){o(new x("Aborted","AbortError"))}),0)},A.open(i.method,function(e){try{return""===e&&r.location.href?r.location.href:e}catch(t){return e}}(i.url),!0),"include"===i.credentials?A.withCredentials=!0:"omit"===i.credentials&&(A.withCredentials=!1),"responseType"in A&&(a?A.responseType="blob":s&&i.headers.get("Content-Type")&&-1!==i.headers.get("Content-Type").indexOf("application/octet-stream")&&(A.responseType="arraybuffer")),!t||"object"!=typeof t.headers||t.headers instanceof d?i.headers.forEach((function(e,t){A.setRequestHeader(t,e)})):Object.getOwnPropertyNames(t.headers).forEach((function(e){A.setRequestHeader(e,f(t.headers[e]))})),i.signal&&(i.signal.addEventListener("abort",c),A.onreadystatechange=function(){4===A.readyState&&i.signal.removeEventListener("abort",c)}),A.send(void 0===i._bodyInit?null:i._bodyInit)}))}k.polyfill=!0,r.fetch||(r.fetch=k,r.Headers=d,r.Request=b,r.Response=E)},5442:function(e){"use strict";e.exports="data:font/ttf;base64,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"},5986:function(e){"use strict";e.exports="data:font/ttf;base64,AAEAAAAPAIAAAwBwR1NVQiCLJXoAAAD8AAAAVE9TLzI/QEsYAAABUAAAAFZjbWFwjePtyQAAAagAAAF+Y3Z0IAAAAAAAAAh4AAAADmZwZ21iLvl6AAAIiAAADgxnYXNwAAAAEAAACHAAAAAIZ2x5ZuLwowoAAAMoAAABiGhlYWQaqKjBAAAEsAAAADZoaGVhBzwDVgAABOgAAAAkaG10eAu4AAAAAAUMAAAADGxvY2EAYADEAAAFGAAAAAhtYXhwAPIOYwAABSAAAAAgbmFtZV/m2rgAAAVAAAAC5XBvc3S0mWDXAAAIKAAAAEhwcmVwfrY7tgAAFpQAAACcAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAED6AGQAAUAAAJ6ArwAAACMAnoCvAAAAeAAMQECAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOkg6SEDUv9qAFoDUgCWAAAAAQAAAAAAAAAAAAUAAAADAAAALAAAAAQAAAFWAAEAAAAAAFAAAwABAAAALAADAAoAAAFWAAQAJAAAAAQABAABAADpIf//AADpIP//AAAAAQAEAAAAAQACAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAoAAAAAAAAAAIAAOkgAADpIAAAAAEAAOkhAADpIQAAAAIAAAABAAD/7wNjAy0AKQA/QDwCAQAEAwECAAJMAQEESgACAAEAAgGABQEEAAACBABpAAEDAwFZAAEBA2EAAwEDUQAAACkAKRcXGRQGBhorATUHFzUeARcWFRQHBgcGIicmJyY1NCYiBhUUFxYXFjI3Njc2NTQnJicmAguWlkx/JSUpKENGpEZDKCkTHBQyMVNWxlZTMTIvLU5QAsxhiolvBVNCQ05SRkMoKSkoQ0ZSDhMUDWNWUzEyMjFTVmNfU1EyMwABAAD/7wNjAy0AKgBDQEAVAQIDFAEAAgJMFgEDSgUBAAIBAgABgAADAAIAAwJpAAEEBAFZAAEBBGEABAEEUQEAIyIYFxMSCQgAKgEqBgYWKwEiBhUUBwYHBiInJicmNTQ3PgE3FTcnFQYHBgcGFRQXFhcWMjc2NzY1NCYDQQ0UKShDRqRGQygpJiR/TJaWXlBOLS8yMVNWxlZTMTIUAX8TDlJGQygpKShDRlJOQ0JTBW+JimEGMzJRU19jVlMxMjIxU1ZjDhMAAAEAAAABAADSnNS7Xw889QAPA+gAAAAA286yYAAAAADbzrJgAAD/7wPoAy0AAAAIAAIAAAAAAAAAAQAAA1L/agAAA+gAAAAAA+gAAQAAAAAAAAAAAAAAAAAAAAMD6AAAA+gAAAPoAAAAAAAAAGAAxAABAAAAAwArAAEAAAAAAAIADAAqAI0AAABUDgwAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACgA1AAEAAAAAAAIABwA/AAEAAAAAAAMACgBGAAEAAAAAAAQACgBQAAEAAAAAAAUACwBaAAEAAAAAAAYACgBlAAEAAAAAAAoAKwBvAAEAAAAAAAsAEwCaAAMAAQQJAAAAagCtAAMAAQQJAAEAFAEXAAMAAQQJAAIADgErAAMAAQQJAAMAFAE5AAMAAQQJAAQAFAFNAAMAAQQJAAUAFgFhAAMAAQQJAAYAFAF3AAMAAQQJAAoAVgGLAAMAAQQJAAsAJgHhQ29weXJpZ2h0IChDKSAyMDIwIGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21zZWVrLWljb25zUmVndWxhcnNlZWstaWNvbnNzZWVrLWljb25zVmVyc2lvbiAxLjBzZWVrLWljb25zR2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20AQwBvAHAAeQByAGkAZwBoAHQAIAAoAEMAKQAgADIAMAAyADAAIABiAHkAIABvAHIAaQBnAGkAbgBhAGwAIABhAHUAdABoAG8AcgBzACAAQAAgAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAHMAZQBlAGsALQBpAGMAbwBuAHMAUgBlAGcAdQBsAGEAcgBzAGUAZQBrAC0AaQBjAG8AbgBzAHMAZQBlAGsALQBpAGMAbwBuAHMAVgBlAHIAcwBpAG8AbgAgADEALgAwAHMAZQBlAGsALQBpAGMAbwBuAHMARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwECAQMBBAAMb3Atc2Vlay1iYWNrD29wLXNlZWstZm9yd2FyZAAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQAGOwDENjuAUAYllZZGFZsAErWVkjsABQWGVZWSBksBZDI0JZLbAFLCBFILAEJWFkILAHQ1BYsAcjQrAII0IbISFZsAFgLbAGLCMhIyGwAysgZLEHYkIgsAgjQrAGRVgbsQENQ0VjsQENQ7AAYEVjsAUqISCwCEMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZIVkgsEBTWLABKxshsEBZI7AAUFhlWS2wByywCUMrsgACAENgQi2wCCywCSNCIyCwACNCYbACYmawAWOwAWCwByotsAksICBFILAOQ2O4BABiILAAUFiwQGBZZrABY2BEsAFgLbAKLLIJDgBDRUIqIbIAAQBDYEItsAsssABDI0SyAAEAQ2BCLbAMLCAgRSCwASsjsABDsAQlYCBFiiNhIGQgsCBQWCGwABuwMFBYsCAbsEBZWSOwAFBYZVmwAyUjYUREsAFgLbANLCAgRSCwASsjsABDsAQlYCBFiiNhIGSwJFBYsAAbsEBZI7AAUFhlWbADJSNhRESwAWAtsA4sILAAI0KzDQwAA0VQWCEbIyFZKiEtsA8ssQICRbBkYUQtsBAssAFgICCwD0NKsABQWCCwDyNCWbAQQ0qwAFJYILAQI0JZLbARLCCwEGJmsAFjILgEAGOKI2GwEUNgIIpgILARI0IjLbASLEtUWLEEZERZJLANZSN4LbATLEtRWEtTWLEEZERZGyFZJLATZSN4LbAULLEAEkNVWLESEkOwAWFCsBErWbAAQ7ACJUKxDwIlQrEQAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAQKiEjsAFhIIojYbAQKiEbsQEAQ2CwAiVCsAIlYbAQKiFZsA9DR7AQQ0dgsAJiILAAUFiwQGBZZrABYyCwDkNjuAQAYiCwAFBYsEBgWWawAWNgsQAAEyNEsAFDsAA+sgEBAUNgQi2wFSwAsQACRVRYsBIjQiBFsA4jQrANI7AAYEIgYLcYGAEAEQATAEJCQopgILAUI0KwAWGxFAgrsIsrGyJZLbAWLLEAFSstsBcssQEVKy2wGCyxAhUrLbAZLLEDFSstsBossQQVKy2wGyyxBRUrLbAcLLEGFSstsB0ssQcVKy2wHiyxCBUrLbAfLLEJFSstsCssIyCwEGJmsAFjsAZgS1RYIyAusAFdGyEhWS2wLCwjILAQYmawAWOwFmBLVFgjIC6wAXEbISFZLbAtLCMgsBBiZrABY7AmYEtUWCMgLrABchshIVktsCAsALAPK7EAAkVUWLASI0IgRbAOI0KwDSOwAGBCIGCwAWG1GBgBABEAQkKKYLEUCCuwiysbIlktsCEssQAgKy2wIiyxASArLbAjLLECICstsCQssQMgKy2wJSyxBCArLbAmLLEFICstsCcssQYgKy2wKCyxByArLbApLLEIICstsCossQkgKy2wLiwgPLABYC2wLywgYLAYYCBDI7ABYEOwAiVhsAFgsC4qIS2wMCywLyuwLyotsDEsICBHICCwDkNjuAQAYiCwAFBYsEBgWWawAWNgI2E4IyCKVVggRyAgsA5DY7gEAGIgsABQWLBAYFlmsAFjYCNhOBshWS2wMiwAsQACRVRYsQ4GRUKwARawMSqxBQEVRVgwWRsiWS2wMywAsA8rsQACRVRYsQ4GRUKwARawMSqxBQEVRVgwWRsiWS2wNCwgNbABYC2wNSwAsQ4GRUKwAUVjuAQAYiCwAFBYsEBgWWawAWOwASuwDkNjuAQAYiCwAFBYsEBgWWawAWOwASuwABa0AAAAAABEPiM4sTQBFSohLbA2LCA8IEcgsA5DY7gEAGIgsABQWLBAYFlmsAFjYLAAQ2E4LbA3LC4XPC2wOCwgPCBHILAOQ2O4BABiILAAUFiwQGBZZrABY2CwAENhsAFDYzgtsDkssQIAFiUgLiBHsAAjQrACJUmKikcjRyNhIFhiGyFZsAEjQrI4AQEVFCotsDossAAWsBcjQrAEJbAEJUcjRyNhsQwAQrALQytlii4jICA8ijgtsDsssAAWsBcjQrAEJbAEJSAuRyNHI2EgsAYjQrEMAEKwC0MrILBgUFggsEBRWLMEIAUgG7MEJgUaWUJCIyCwCkMgiiNHI0cjYSNGYLAGQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsARDYGQjsAVDYWRQWLAEQ2EbsAVDYFmwAyWwAmIgsABQWLBAYFlmsAFjYSMgILAEJiNGYTgbI7AKQ0awAiWwCkNHI0cjYWAgsAZDsAJiILAAUFiwQGBZZrABY2AjILABKyOwBkNgsAErsAUlYbAFJbACYiCwAFBYsEBgWWawAWOwBCZhILAEJWBkI7ADJWBkUFghGyMhWSMgILAEJiNGYThZLbA8LLAAFrAXI0IgICCwBSYgLkcjRyNhIzw4LbA9LLAAFrAXI0IgsAojQiAgIEYjR7ABKyNhOC2wPiywABawFyNCsAMlsAIlRyNHI2GwAFRYLiA8IyEbsAIlsAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbkIAAgAY2MjIFhiGyFZY7gEAGIgsABQWLBAYFlmsAFjYCMuIyAgPIo4IyFZLbA/LLAAFrAXI0IgsApDIC5HI0cjYSBgsCBgZrACYiCwAFBYsEBgWWawAWMjICA8ijgtsEAsIyAuRrACJUawF0NYUBtSWVggPFkusTABFCstsEEsIyAuRrACJUawF0NYUhtQWVggPFkusTABFCstsEIsIyAuRrACJUawF0NYUBtSWVggPFkjIC5GsAIlRrAXQ1hSG1BZWCA8WS6xMAEUKy2wQyywOisjIC5GsAIlRrAXQ1hQG1JZWCA8WS6xMAEUKy2wRCywOyuKICA8sAYjQoo4IyAuRrACJUawF0NYUBtSWVggPFkusTABFCuwBkMusDArLbBFLLAAFrAEJbAEJiAgIEYjR2GwDCNCLkcjRyNhsAtDKyMgPCAuIzixMAEUKy2wRiyxCgQlQrAAFrAEJbAEJSAuRyNHI2EgsAYjQrEMAEKwC0MrILBgUFggsEBRWLMEIAUgG7MEJgUaWUJCIyBHsAZDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwBENgZCOwBUNhZFBYsARDYRuwBUNgWbADJbACYiCwAFBYsEBgWWawAWNhsAIlRmE4IyA8IzgbISAgRiNHsAErI2E4IVmxMAEUKy2wRyyxADorLrEwARQrLbBILLEAOyshIyAgPLAGI0IjOLEwARQrsAZDLrAwKy2wSSywABUgR7AAI0KyAAEBFRQTLrA2Ki2wSiywABUgR7AAI0KyAAEBFRQTLrA2Ki2wSyyxAAEUE7A3Ki2wTCywOSotsE0ssAAWRSMgLiBGiiNhOLEwARQrLbBOLLAKI0KwTSstsE8ssgAARistsFAssgABRistsFEssgEARistsFIssgEBRistsFMssgAARystsFQssgABRystsFUssgEARystsFYssgEBRystsFcsswAAAEMrLbBYLLMAAQBDKy2wWSyzAQAAQystsFosswEBAEMrLbBbLLMAAAFDKy2wXCyzAAEBQystsF0sswEAAUMrLbBeLLMBAQFDKy2wXyyyAABFKy2wYCyyAAFFKy2wYSyyAQBFKy2wYiyyAQFFKy2wYyyyAABIKy2wZCyyAAFIKy2wZSyyAQBIKy2wZiyyAQFIKy2wZyyzAAAARCstsGgsswABAEQrLbBpLLMBAABEKy2waiyzAQEARCstsGssswAAAUQrLbBsLLMAAQFEKy2wbSyzAQABRCstsG4sswEBAUQrLbBvLLEAPCsusTABFCstsHAssQA8K7BAKy2wcSyxADwrsEErLbByLLAAFrEAPCuwQistsHMssQE8K7BAKy2wdCyxATwrsEErLbB1LLAAFrEBPCuwQistsHYssQA9Ky6xMAEUKy2wdyyxAD0rsEArLbB4LLEAPSuwQSstsHkssQA9K7BCKy2weiyxAT0rsEArLbB7LLEBPSuwQSstsHwssQE9K7BCKy2wfSyxAD4rLrEwARQrLbB+LLEAPiuwQCstsH8ssQA+K7BBKy2wgCyxAD4rsEIrLbCBLLEBPiuwQCstsIIssQE+K7BBKy2wgyyxAT4rsEIrLbCELLEAPysusTABFCstsIUssQA/K7BAKy2whiyxAD8rsEErLbCHLLEAPyuwQistsIgssQE/K7BAKy2wiSyxAT8rsEErLbCKLLEBPyuwQistsIsssgsAA0VQWLAGG7IEAgNFWCMhGyFZWUIrsAhlsAMkUHixBQEVRVgwWS0AS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAdCsQAAKrEAB0KxAAoqsQAHQrEACiqxAAdCuQAAAAsqsQAHQrkAAAALKrkAAwAARLEkAYhRWLBAiFi5AAMAZESxKAGIUVi4CACIWLkAAwAARFkbsScBiFFYugiAAAEEQIhjVFi5AAMAAERZWVlZWbEADiq4Af+FsASNsQIARLMFZAYAREQ="},8613:function(e){"use strict";e.exports="data:font/ttf;base64,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"}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.m=e,n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.b=document.baseURI||self.location.href,n(8594),n(7147);var r=n(8445);return r.default}()}));
+//# sourceMappingURL=ovenplayer.js.map
diff --git a/js/ovenplayer.js.map b/js/ovenplayer.js.map
index 61c4afe..60c5735 100644
--- a/js/ovenplayer.js.map
+++ b/js/ovenplayer.js.map
@@ -1 +1 @@
-{"version":3,"file":"ovenplayer.js","mappings":"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AAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,IAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAS,MAAS,MAAS,MAC3D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,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R,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MAC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","sources":["webpack://OvenPlayer/webpack/universalModuleDefinition","webpack://OvenPlayer/./src/js/version.js","webpack://OvenPlayer/./src/js/utils/strings.js","webpack://OvenPlayer/./src/js/api/caption/parser/SrtParser.js","webpack://OvenPlayer/./src/js/utils/captions/vttCue.js","webpack://OvenPlayer/./src/js/utils/captions/vttRegion.js","webpack://OvenPlayer/./src/js/api/caption/parser/VttParser.js","webpack://OvenPlayer/./src/js/utils/browser.js","webpack://OvenPlayer/./src/js/api/caption/parser/SmiParser.js","webpack://OvenPlayer/./src/js/api/caption/Loader.js","webpack://OvenPlayer/./src/js/api/constants.js","webpack://OvenPlayer/./src/js/api/caption/Manager.js","webpack://OvenPlayer/./src/js/api/EventEmitter.js","webpack://OvenPlayer/./src/js/utils/likeA$.js","webpack://OvenPlayer/./src/js/utils/validator.js","webpack://OvenPlayer/./src/js/api/SupportChecker.js","webpack://OvenPlayer/./src/js/api/ads/utils.js","webpack://OvenPlayer/./src/js/api/provider/utils.js","webpack://OvenPlayer/./src/js/api/ads/ima/Ad.js","webpack://OvenPlayer/./src/js/api/ads/ima/Listener.js","webpack://OvenPlayer/./src/js/utils/vast-client.js","webpack://OvenPlayer/./src/js/ovenplayer.sdk.js","webpack://OvenPlayer/./src/js/api/ads/vast/Ad.js","webpack://OvenPlayer/./src/js/api/ads/vast/Listener.js","webpack://OvenPlayer/./src/js/api/provider/html5/Provider.js","webpack://OvenPlayer/./src/js/api/provider/html5/Listener.js","webpack://OvenPlayer/./src/js/api/provider/html5/providers/Html5.js","webpack://OvenPlayer/./src/js/api/provider/html5/providers/WebRTCLoader.js","webpack://OvenPlayer/./src/js/api/provider/html5/providers/WebRTC.js","webpack://OvenPlayer/./src/js/utils/sizeHumanizer.js","webpack://OvenPlayer/./src/js/api/provider/html5/providers/Dash.js","webpack://OvenPlayer/./src/js/api/provider/html5/providers/Hls.js","webpack://OvenPlayer/./src/js/api/Api.js","webpack://OvenPlayer/./src/js/api/playlist/Manager.js","webpack://OvenPlayer/./src/js/api/provider/Controller.js","webpack://OvenPlayer/./src/js/api/media/Manager.js","webpack://OvenPlayer/./src/js/api/ApiExpansions.js","webpack://OvenPlayer/./src/js/api/Configurator.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/mainTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/playlistPanelTemplate.js","webpack://OvenPlayer/./src/js/view/engine/Templates.js","webpack://OvenPlayer/./src/js/view/example/textviewTemplate.js","webpack://OvenPlayer/./src/js/view/viewTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/mainTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/bigButtonTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/thumbnailTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/waterMarkTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/messageBoxTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/spinnerTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/contextPanelTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/captionViewerTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/mainTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/volumeButtonTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/progressBarTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/playButtonTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/settingButtonTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/frameButtonsTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/timeDisplayTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/fullScreenButtonTemplate.js","webpack://OvenPlayer/./src/js/view/engine/OvenTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/messageBox.js","webpack://OvenPlayer/./src/js/view/components/helpers/main.js","webpack://OvenPlayer/./src/js/view/components/helpers/bigButton.js","webpack://OvenPlayer/./src/js/view/components/helpers/thumbnail.js","webpack://OvenPlayer/./src/js/view/components/helpers/spinner.js","webpack://OvenPlayer/./src/js/view/components/helpers/captionViewer.js","webpack://OvenPlayer/./src/js/view/components/helpers/waterMark.js","webpack://OvenPlayer/./src/js/view/global/PanelManager.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/main.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/speedPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/sourcePanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/qualityPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/audioTrackPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/captionPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/timeDisplayPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingButton.js","webpack://OvenPlayer/./src/js/view/components/controls/main.js","webpack://OvenPlayer/./src/js/view/components/controls/playlistPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/progressBar.js","webpack://OvenPlayer/./src/js/view/components/controls/fullScreenButton.js","webpack://OvenPlayer/./src/js/view/components/controls/timeDisplay.js","webpack://OvenPlayer/./src/js/view/components/controls/playButton.js","webpack://OvenPlayer/./src/js/view/components/controls/volumeButton.js","webpack://OvenPlayer/./src/stylesheet/ovenplayer.less?0fb6","webpack://OvenPlayer/./src/js/ovenplayer.js","webpack://OvenPlayer/./src/js/view/view.js","webpack://OvenPlayer/./src/js/view/components/helpers/contextPanel.js","webpack://OvenPlayer/./src/js/utils/polyfills/dom.js","webpack://OvenPlayer/./src/js/utils/resize-sensor.js","webpack://OvenPlayer/./src/js/utils/underscore.js","webpack://OvenPlayer/./node_modules/core-js/internals/a-callable.js","webpack://OvenPlayer/./node_modules/core-js/internals/a-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/a-possible-prototype.js","webpack://OvenPlayer/./node_modules/core-js/internals/add-to-unscopables.js","webpack://OvenPlayer/./node_modules/core-js/internals/advance-string-index.js","webpack://OvenPlayer/./node_modules/core-js/internals/an-instance.js","webpack://OvenPlayer/./node_modules/core-js/internals/an-object.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-buffer-native.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-buffer.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-copy-within.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-fill.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-for-each.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-from.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-includes.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-iteration.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-last-index-of.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-method-is-strict.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-reduce.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-slice-simple.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-slice.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-sort.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-species-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-species-create.js","webpack://OvenPlayer/./node_modules/core-js/internals/base64-map.js","webpack://OvenPlayer/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://OvenPlayer/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://OvenPlayer/./node_modules/core-js/internals/classof-raw.js","webpack://OvenPlayer/./node_modules/core-js/internals/classof.js","webpack://OvenPlayer/./node_modules/core-js/internals/clear-error-stack.js","webpack://OvenPlayer/./node_modules/core-js/internals/collection-strong.js","webpack://OvenPlayer/./node_modules/core-js/internals/collection-weak.js","webpack://OvenPlayer/./node_modules/core-js/internals/collection.js","webpack://OvenPlayer/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://OvenPlayer/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://OvenPlayer/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://OvenPlayer/./node_modules/core-js/internals/create-html.js","webpack://OvenPlayer/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://OvenPlayer/./node_modules/core-js/internals/create-property-descriptor.js","webpack://OvenPlayer/./node_modules/core-js/internals/create-property.js","webpack://OvenPlayer/./node_modules/core-js/internals/date-to-iso-string.js","webpack://OvenPlayer/./node_modules/core-js/internals/date-to-primitive.js","webpack://OvenPlayer/./node_modules/core-js/internals/define-iterator.js","webpack://OvenPlayer/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://OvenPlayer/./node_modules/core-js/internals/descriptors.js","webpack://OvenPlayer/./node_modules/core-js/internals/document-create-element.js","webpack://OvenPlayer/./node_modules/core-js/internals/dom-exception-constants.js","webpack://OvenPlayer/./node_modules/core-js/internals/dom-iterables.js","webpack://OvenPlayer/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-ff-version.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-browser.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-ios.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-node.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-user-agent.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-v8-version.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-webkit-version.js","webpack://OvenPlayer/./node_modules/core-js/internals/enum-bug-keys.js","webpack://OvenPlayer/./node_modules/core-js/internals/error-stack-installable.js","webpack://OvenPlayer/./node_modules/core-js/internals/error-to-string.js","webpack://OvenPlayer/./node_modules/core-js/internals/export.js","webpack://OvenPlayer/./node_modules/core-js/internals/fails.js","webpack://OvenPlayer/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://OvenPlayer/./node_modules/core-js/internals/flatten-into-array.js","webpack://OvenPlayer/./node_modules/core-js/internals/freezing.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-apply.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-bind-context.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-bind-native.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-bind.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-call.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-name.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-uncurry-this.js","webpack://OvenPlayer/./node_modules/core-js/internals/get-built-in.js","webpack://OvenPlayer/./node_modules/core-js/internals/get-iterator-method.js","webpack://OvenPlayer/./node_modules/core-js/internals/get-iterator.js","webpack://OvenPlayer/./node_modules/core-js/internals/get-method.js","webpack://OvenPlayer/./node_modules/core-js/internals/get-substitution.js","webpack://OvenPlayer/./node_modules/core-js/internals/global.js","webpack://OvenPlayer/./node_modules/core-js/internals/has-own-property.js","webpack://OvenPlayer/./node_modules/core-js/internals/hidden-keys.js","webpack://OvenPlayer/./node_modules/core-js/internals/host-report-errors.js","webpack://OvenPlayer/./node_modules/core-js/internals/html.js","webpack://OvenPlayer/./node_modules/core-js/internals/ie8-dom-define.js","webpack://OvenPlayer/./node_modules/core-js/internals/ieee754.js","webpack://OvenPlayer/./node_modules/core-js/internals/indexed-object.js","webpack://OvenPlayer/./node_modules/core-js/internals/inherit-if-required.js","webpack://OvenPlayer/./node_modules/core-js/internals/inspect-source.js","webpack://OvenPlayer/./node_modules/core-js/internals/install-error-cause.js","webpack://OvenPlayer/./node_modules/core-js/internals/internal-metadata.js","webpack://OvenPlayer/./node_modules/core-js/internals/internal-state.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-array.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-callable.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-data-descriptor.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-forced.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-integral-number.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-object.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-pure.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-regexp.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-symbol.js","webpack://OvenPlayer/./node_modules/core-js/internals/iterate.js","webpack://OvenPlayer/./node_modules/core-js/internals/iterator-close.js","webpack://OvenPlayer/./node_modules/core-js/internals/iterators-core.js","webpack://OvenPlayer/./node_modules/core-js/internals/iterators.js","webpack://OvenPlayer/./node_modules/core-js/internals/length-of-array-like.js","webpack://OvenPlayer/./node_modules/core-js/internals/math-expm1.js","webpack://OvenPlayer/./node_modules/core-js/internals/math-fround.js","webpack://OvenPlayer/./node_modules/core-js/internals/math-log10.js","webpack://OvenPlayer/./node_modules/core-js/internals/math-log1p.js","webpack://OvenPlayer/./node_modules/core-js/internals/math-sign.js","webpack://OvenPlayer/./node_modules/core-js/internals/microtask.js","webpack://OvenPlayer/./node_modules/core-js/internals/native-promise-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/native-symbol.js","webpack://OvenPlayer/./node_modules/core-js/internals/native-url.js","webpack://OvenPlayer/./node_modules/core-js/internals/native-weak-map.js","webpack://OvenPlayer/./node_modules/core-js/internals/new-promise-capability.js","webpack://OvenPlayer/./node_modules/core-js/internals/normalize-string-argument.js","webpack://OvenPlayer/./node_modules/core-js/internals/not-a-regexp.js","webpack://OvenPlayer/./node_modules/core-js/internals/number-is-finite.js","webpack://OvenPlayer/./node_modules/core-js/internals/number-parse-float.js","webpack://OvenPlayer/./node_modules/core-js/internals/number-parse-int.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-assign.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-create.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-define-properties.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-define-property.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-is-extensible.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-keys-internal.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-keys.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-prototype-accessors-forced.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-to-array.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-to-string.js","webpack://OvenPlayer/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://OvenPlayer/./node_modules/core-js/internals/own-keys.js","webpack://OvenPlayer/./node_modules/core-js/internals/path.js","webpack://OvenPlayer/./node_modules/core-js/internals/perform.js","webpack://OvenPlayer/./node_modules/core-js/internals/promise-resolve.js","webpack://OvenPlayer/./node_modules/core-js/internals/queue.js","webpack://OvenPlayer/./node_modules/core-js/internals/redefine-all.js","webpack://OvenPlayer/./node_modules/core-js/internals/redefine.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-exec.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-flags.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://OvenPlayer/./node_modules/core-js/internals/require-object-coercible.js","webpack://OvenPlayer/./node_modules/core-js/internals/same-value.js","webpack://OvenPlayer/./node_modules/core-js/internals/set-global.js","webpack://OvenPlayer/./node_modules/core-js/internals/set-species.js","webpack://OvenPlayer/./node_modules/core-js/internals/set-to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/internals/shared-key.js","webpack://OvenPlayer/./node_modules/core-js/internals/shared-store.js","webpack://OvenPlayer/./node_modules/core-js/internals/shared.js","webpack://OvenPlayer/./node_modules/core-js/internals/species-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-html-forced.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-multibyte.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-pad.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-repeat.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-trim-forced.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-trim.js","webpack://OvenPlayer/./node_modules/core-js/internals/task.js","webpack://OvenPlayer/./node_modules/core-js/internals/this-number-value.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-absolute-index.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-index.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-indexed-object.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-length.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-object.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-offset.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-positive-integer.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-primitive.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-property-key.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-string-tag-support.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-string.js","webpack://OvenPlayer/./node_modules/core-js/internals/try-node-require.js","webpack://OvenPlayer/./node_modules/core-js/internals/try-to-string.js","webpack://OvenPlayer/./node_modules/core-js/internals/typed-array-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack://OvenPlayer/./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack://OvenPlayer/./node_modules/core-js/internals/typed-array-from.js","webpack://OvenPlayer/./node_modules/core-js/internals/typed-array-species-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/uid.js","webpack://OvenPlayer/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://OvenPlayer/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://OvenPlayer/./node_modules/core-js/internals/validate-arguments-length.js","webpack://OvenPlayer/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://OvenPlayer/./node_modules/core-js/internals/well-known-symbol.js","webpack://OvenPlayer/./node_modules/core-js/internals/whitespaces.js","webpack://OvenPlayer/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.aggregate-error.cause.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.aggregate-error.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array-buffer.is-view.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array-buffer.slice.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.at.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.concat.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.copy-within.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.every.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.fill.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.filter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.find-index.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.find.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.flat-map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.flat.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.for-each.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.from.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.includes.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.index-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.is-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.join.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.last-index-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.reduce-right.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.reduce.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.reverse.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.slice.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.some.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.sort.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.species.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.splice.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.data-view.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.get-year.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.now.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.set-year.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.to-gmt-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.to-iso-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.to-json.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.to-primitive.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.to-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.error.cause.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.error.to-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.escape.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.function.bind.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.function.has-instance.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.function.name.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.global-this.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.json.stringify.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.json.to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.acosh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.asinh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.atanh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.cbrt.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.clz32.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.cosh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.expm1.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.fround.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.hypot.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.imul.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.log10.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.log1p.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.log2.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.sign.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.sinh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.tanh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.trunc.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.constructor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.epsilon.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.is-finite.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.is-integer.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.is-nan.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.is-safe-integer.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.min-safe-integer.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.parse-float.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.parse-int.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.to-exponential.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.to-precision.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.assign.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.create.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.define-getter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.define-properties.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.define-property.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.define-setter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.entries.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.freeze.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.from-entries.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.get-own-property-names.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.has-own.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.is-extensible.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.is-frozen.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.is-sealed.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.is.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.keys.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.lookup-getter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.lookup-setter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.prevent-extensions.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.seal.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.to-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.values.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.parse-float.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.parse-int.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.promise.any.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.promise.finally.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.promise.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.apply.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.construct.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.define-property.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.delete-property.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.get.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.has.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.is-extensible.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.own-keys.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.prevent-extensions.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.set-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.set.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.dot-all.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.exec.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.flags.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.sticky.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.test.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.set.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.anchor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.at-alternative.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.big.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.blink.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.bold.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.code-point-at.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.ends-with.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.fixed.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.fontcolor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.fontsize.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.from-code-point.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.includes.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.italics.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.link.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.match-all.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.match.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.pad-end.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.pad-start.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.raw.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.repeat.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.replace-all.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.replace.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.search.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.small.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.split.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.starts-with.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.strike.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.sub.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.substr.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.sup.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.trim-end.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.trim-start.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.trim.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.description.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.has-instance.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.match-all.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.match.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.replace.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.search.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.species.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.split.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.to-primitive.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.unscopables.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.at.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.every.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.fill.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.filter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.find-index.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.find.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.float64-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.for-each.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.from.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.includes.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.index-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.int16-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.int32-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.int8-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.join.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.reduce.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.reverse.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.set.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.slice.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.some.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.sort.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.subarray.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.to-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.unescape.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.weak-map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.weak-set.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.atob.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.btoa.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.dom-exception.constructor.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.immediate.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.queue-microtask.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.structured-clone.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.timers.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.url-search-params.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.url.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.url.to-json.js","webpack://OvenPlayer/./node_modules/core-js/stable/index.js","webpack://OvenPlayer/./src/stylesheet/ovenplayer.less","webpack://OvenPlayer/./node_modules/css-loader/dist/runtime/api.js","webpack://OvenPlayer/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://OvenPlayer/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://OvenPlayer/./node_modules/whatwg-fetch/fetch.js","webpack://OvenPlayer/webpack/bootstrap","webpack://OvenPlayer/webpack/runtime/compat get default export","webpack://OvenPlayer/webpack/runtime/define property getters","webpack://OvenPlayer/webpack/runtime/global","webpack://OvenPlayer/webpack/runtime/hasOwnProperty shorthand","webpack://OvenPlayer/webpack/runtime/jsonp chunk loading","webpack://OvenPlayer/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"OvenPlayer\"] = factory();\n\telse\n\t\troot[\"OvenPlayer\"] = factory();\n})(self, function() {\nreturn ","/**\r\n * Created by hoho on 2018. 6. 29..\r\n */\r\nexport const version = __VERSION__;\r\n","import _ from 'utils/underscore';\r\n\r\nexport function trim(string) {\r\n    return string ? string.replace(/^\\s+|\\s+$/g, '') : \"\";\r\n}\r\n\r\n/**\r\n * extractExtension\r\n *\r\n * @param      {string} path for url\r\n * @return     {string}  Extension\r\n */\r\nexport const extractExtension = function(path) {\r\n    if(!path || path.substr(0,4)=='rtmp') {\r\n        return \"\";\r\n    }\r\n    function getAzureFileFormat(path) {\r\n        let extension = \"\";\r\n        if ((/[(,]format=mpd-/i).test(path)) {\r\n            extension = 'mpd';\r\n        }else if ((/[(,]format=m3u8-/i).test(path)) {\r\n            extension = 'm3u8';\r\n        }\r\n        return extension;\r\n    }\r\n\r\n    let azuredFormat = getAzureFileFormat(path);\r\n    if(azuredFormat) {\r\n        return azuredFormat;\r\n    }\r\n    path = path.split('?')[0].split('#')[0];\r\n    if(path.lastIndexOf('.') > -1) {\r\n        return path.substr(path.lastIndexOf('.') + 1, path.length).toLowerCase();\r\n    }else{\r\n        return \"\";\r\n    }\r\n};\r\n\r\n\r\n/**\r\n * naturalHms\r\n *\r\n * @param      {number | string}  second  The second\r\n * @return     {string}  formatted String\r\n */\r\nexport function naturalHms(second) {\r\n    let secNum = parseInt(second, 10);\r\n    if(!second){\r\n        return \"00:00\";\r\n    }\r\n    let hours   = Math.floor(secNum / 3600);\r\n    let minutes = Math.floor((secNum - (hours * 3600)) / 60);\r\n    let seconds = secNum - (hours * 3600) - (minutes * 60);\r\n\r\n    //if (hours > 0) {minutes = \"0\"+minutes;}\r\n    if (minutes < 10) {minutes = \"0\"+minutes;}\r\n    if (seconds < 10) {seconds = \"0\"+seconds;}\r\n\r\n    if (hours > 0) {\r\n        return hours+':'+minutes+':'+seconds;\r\n    } else {\r\n        return minutes+':'+seconds;\r\n    }\r\n}\r\n\r\n\r\nexport function hmsToSecond(str, frameRate) {\r\n    if(!str) {\r\n        return 0;\r\n    }\r\n    if(_.isNumber(str) && !_.isNaN(str)){\r\n        return str;\r\n    }\r\n    str = str.replace(',', '.');\r\n    let arr = str.split(':');\r\n    let arrLength = arr.length;\r\n    let sec = 0;\r\n    if (str.slice(-1) === 's'){\r\n        sec = parseFloat(str);\r\n    }else if (str.slice(-1) === 'm'){\r\n        sec = parseFloat(str) * 60;\r\n    }else if (str.slice(-1) === 'h'){\r\n        sec = parseFloat(str) * 3600;\r\n    }else if (arrLength > 1) {\r\n        var secIndex = arrLength - 1;\r\n        if (arrLength === 4) {\r\n            if (frameRate) {\r\n                sec = parseFloat(arr[secIndex]) / frameRate;\r\n            }\r\n            secIndex -= 1;\r\n        }\r\n        sec += parseFloat(arr[secIndex]);\r\n        sec += parseFloat(arr[secIndex - 1]) * 60;\r\n        if (arrLength >= 3) {\r\n            sec += parseFloat(arr[secIndex - 2]) * 3600;\r\n        }\r\n    } else {\r\n        sec = parseFloat(str);\r\n    }\r\n    if (_.isNaN(sec)) {\r\n        return 0;\r\n    }\r\n    return sec;\r\n}","/**\r\n * Created by hoho on 2018. 5. 29..\r\n */\r\nimport { hmsToSecond, trim } from \"utils/strings\"\r\n\r\nfunction _entry(data) {\r\n    var entry = {};\r\n    var array = data.split('\\r\\n');\r\n    if (array.length === 1) {\r\n        array = data.split('\\n');\r\n    }\r\n    var idx = 1;\r\n    if (array[0].indexOf(' --> ') > 0) {\r\n        idx = 0;\r\n    }\r\n    if (array.length > idx + 1 && array[idx + 1]) {\r\n        // This line contains the start and end.\r\n        var line = array[idx];\r\n        var index = line.indexOf(' --> ');\r\n        if (index > 0) {\r\n            entry.start = hmsToSecond(line.substr(0, index));\r\n            entry.end = hmsToSecond(line.substr(index + 5));\r\n            entry.text = array.slice(idx + 1).join('\\r\\n');\r\n        }\r\n    }\r\n    return entry;\r\n\r\n}\r\n\r\nconst SrtParser = function(data) {\r\n    var captions = [];\r\n\r\n    data = trim(data);\r\n\r\n    var list = data.split('\\r\\n\\r\\n');\r\n    if (list.length === 1) {\r\n        list = data.split('\\n\\n');\r\n    }\r\n\r\n\r\n\r\n    for (var i = 0; i < list.length; i++) {\r\n        if (list[i] === 'WEBVTT') {\r\n            continue;\r\n        }\r\n        var entry = _entry(list[i]);\r\n        if (entry.text) {\r\n            captions.push(entry);\r\n        }\r\n    }\r\n\r\n    return captions;\r\n}\r\n\r\n\r\n\r\nexport default SrtParser;","/**\r\n * Copyright 2013 vtt.js Contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nlet VTTCue = window.VTTCue;\r\n\r\nvar autoKeyword = \"auto\";\r\nvar directionSetting = {\r\n    \"\": true,\r\n    \"lr\": true,\r\n    \"rl\": true\r\n};\r\nvar alignSetting = {\r\n    \"start\": true,\r\n    \"middle\": true,\r\n    \"end\": true,\r\n    \"left\": true,\r\n    \"right\": true\r\n};\r\n\r\nfunction findDirectionSetting(value) {\r\n    if (typeof value !== \"string\") {\r\n        return false;\r\n    }\r\n    var dir = directionSetting[value.toLowerCase()];\r\n    return dir ? value.toLowerCase() : false;\r\n}\r\n\r\nfunction findAlignSetting(value) {\r\n    if (typeof value !== \"string\") {\r\n        return false;\r\n    }\r\n    var align = alignSetting[value.toLowerCase()];\r\n    return align ? value.toLowerCase() : false;\r\n}\r\n\r\nfunction extend(obj) {\r\n    var i = 1;\r\n    for (; i < arguments.length; i++) {\r\n        var cobj = arguments[i];\r\n        for (var p in cobj) {\r\n            obj[p] = cobj[p];\r\n        }\r\n    }\r\n\r\n    return obj;\r\n}\r\nif(!VTTCue){\r\n    VTTCue = function (startTime, endTime, text) {\r\n        var cue = this;\r\n        var isIE8 = (/MSIE\\s8\\.0/).test(navigator.userAgent);\r\n        var baseObj = {};\r\n\r\n        if (isIE8) {\r\n            cue = document.createElement('custom');\r\n        } else {\r\n            baseObj.enumerable = true;\r\n        }\r\n\r\n        /**\r\n         * Shim implementation specific properties. These properties are not in\r\n         * the spec.\r\n         */\r\n\r\n            // Lets us know when the VTTCue's data has changed in such a way that we need\r\n            // to recompute its display state. This lets us compute its display state\r\n            // lazily.\r\n        cue.hasBeenReset = false;\r\n\r\n        /**\r\n         * VTTCue and TextTrackCue properties\r\n         * http://dev.w3.org/html5/webvtt/#vttcue-interface\r\n         */\r\n\r\n        var _id = \"\";\r\n        var _pauseOnExit = false;\r\n        var _startTime = startTime;\r\n        var _endTime = endTime;\r\n        var _text = text;\r\n        var _region = null;\r\n        var _vertical = \"\";\r\n        var _snapToLines = true;\r\n        var _line = \"auto\";\r\n        var _lineAlign = \"start\";\r\n        var _position = 50;\r\n        var _positionAlign = \"middle\";\r\n        var _size = 50;\r\n        var _align = \"middle\";\r\n\r\n        Object.defineProperty(cue,\r\n            \"id\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _id;\r\n                },\r\n                set: function(value) {\r\n                    _id = \"\" + value;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"pauseOnExit\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _pauseOnExit;\r\n                },\r\n                set: function(value) {\r\n                    _pauseOnExit = !!value;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"startTime\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _startTime;\r\n                },\r\n                set: function(value) {\r\n                    if (typeof value !== \"number\") {\r\n                        throw new TypeError(\"Start time must be set to a number.\");\r\n                    }\r\n                    _startTime = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"endTime\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _endTime;\r\n                },\r\n                set: function(value) {\r\n                    if (typeof value !== \"number\") {\r\n                        throw new TypeError(\"End time must be set to a number.\");\r\n                    }\r\n                    _endTime = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"text\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _text;\r\n                },\r\n                set: function(value) {\r\n                    _text = \"\" + value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"region\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _region;\r\n                },\r\n                set: function(value) {\r\n                    _region = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"vertical\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _vertical;\r\n                },\r\n                set: function(value) {\r\n                    var setting = findDirectionSetting(value);\r\n                    // Have to check for false because the setting an be an empty string.\r\n                    if (setting === false) {\r\n                        throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n                    }\r\n                    _vertical = setting;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"snapToLines\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _snapToLines;\r\n                },\r\n                set: function(value) {\r\n                    _snapToLines = !!value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"line\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _line;\r\n                },\r\n                set: function(value) {\r\n                    if (typeof value !== \"number\" && value !== autoKeyword) {\r\n                        throw new SyntaxError(\"An invalid number or illegal string was specified.\");\r\n                    }\r\n                    _line = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"lineAlign\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _lineAlign;\r\n                },\r\n                set: function(value) {\r\n                    var setting = findAlignSetting(value);\r\n                    if (!setting) {\r\n                        throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n                    }\r\n                    _lineAlign = setting;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"position\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _position;\r\n                },\r\n                set: function(value) {\r\n                    if (value < 0 || value > 100) {\r\n                        throw new Error(\"Position must be between 0 and 100.\");\r\n                    }\r\n                    _position = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"positionAlign\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _positionAlign;\r\n                },\r\n                set: function(value) {\r\n                    var setting = findAlignSetting(value);\r\n                    if (!setting) {\r\n                        throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n                    }\r\n                    _positionAlign = setting;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"size\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _size;\r\n                },\r\n                set: function(value) {\r\n                    if (value < 0 || value > 100) {\r\n                        throw new Error(\"Size must be between 0 and 100.\");\r\n                    }\r\n                    _size = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"align\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _align;\r\n                },\r\n                set: function(value) {\r\n                    var setting = findAlignSetting(value);\r\n                    if (!setting) {\r\n                        throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n                    }\r\n                    _align = setting;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        /**\r\n         * Other <track> spec defined properties\r\n         */\r\n\r\n            // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\r\n        cue.displayState = undefined;\r\n\r\n        if (isIE8) {\r\n            return cue;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * VTTCue methods\r\n     */\r\n\r\n    VTTCue.prototype.getCueAsHTML = function() {\r\n        // Assume WebVTT.convertCueToDOMTree is on the global.\r\n        return WebVTT.convertCueToDOMTree(window, this.text);\r\n    };\r\n\r\n};\r\n\r\nexport default VTTCue;","/**\r\n * Copyright 2013 vtt.js Contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nlet VTTRegion = \"\";\r\n\r\nvar scrollSetting = {\r\n    \"\": true,\r\n    \"up\": true\r\n};\r\n\r\nfunction findScrollSetting(value) {\r\n    if (typeof value !== \"string\") {\r\n        return false;\r\n    }\r\n    var scroll = scrollSetting[value.toLowerCase()];\r\n    return scroll ? value.toLowerCase() : false;\r\n}\r\n\r\nfunction isValidPercentValue(value) {\r\n    return typeof value === \"number\" && (value >= 0 && value <= 100);\r\n}\r\n\r\n// VTTRegion shim http://dev.w3.org/html5/webvtt/#vttregion-interface\r\nVTTRegion = function() {\r\n    var _width = 100;\r\n    var _lines = 3;\r\n    var _regionAnchorX = 0;\r\n    var _regionAnchorY = 100;\r\n    var _viewportAnchorX = 0;\r\n    var _viewportAnchorY = 100;\r\n    var _scroll = \"\";\r\n\r\n    Object.defineProperties(this, {\r\n        \"width\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _width;\r\n            },\r\n            set: function(value) {\r\n                if (!isValidPercentValue(value)) {\r\n                    throw new Error(\"Width must be between 0 and 100.\");\r\n                }\r\n                _width = value;\r\n            }\r\n        },\r\n        \"lines\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _lines;\r\n            },\r\n            set: function(value) {\r\n                if (typeof value !== \"number\") {\r\n                    throw new TypeError(\"Lines must be set to a number.\");\r\n                }\r\n                _lines = value;\r\n            }\r\n        },\r\n        \"regionAnchorY\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _regionAnchorY;\r\n            },\r\n            set: function(value) {\r\n                if (!isValidPercentValue(value)) {\r\n                    throw new Error(\"RegionAnchorX must be between 0 and 100.\");\r\n                }\r\n                _regionAnchorY = value;\r\n            }\r\n        },\r\n        \"regionAnchorX\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _regionAnchorX;\r\n            },\r\n            set: function(value) {\r\n                if(!isValidPercentValue(value)) {\r\n                    throw new Error(\"RegionAnchorY must be between 0 and 100.\");\r\n                }\r\n                _regionAnchorX = value;\r\n            }\r\n        },\r\n        \"viewportAnchorY\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _viewportAnchorY;\r\n            },\r\n            set: function(value) {\r\n                if (!isValidPercentValue(value)) {\r\n                    throw new Error(\"ViewportAnchorY must be between 0 and 100.\");\r\n                }\r\n                _viewportAnchorY = value;\r\n            }\r\n        },\r\n        \"viewportAnchorX\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _viewportAnchorX;\r\n            },\r\n            set: function(value) {\r\n                if (!isValidPercentValue(value)) {\r\n                    throw new Error(\"ViewportAnchorX must be between 0 and 100.\");\r\n                }\r\n                _viewportAnchorX = value;\r\n            }\r\n        },\r\n        \"scroll\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _scroll;\r\n            },\r\n            set: function(value) {\r\n                var setting = findScrollSetting(value);\r\n                // Have to check for false as an empty string is a legal value.\r\n                if (setting === false) {\r\n                    throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n                }\r\n                _scroll = setting;\r\n            }\r\n        }\r\n    });\r\n}\r\n\r\nexport default VTTRegion;","/* vtt.js - v0.12.1 (https://github.com/mozilla/vtt.js) built on 03-12-2015 */\r\nimport VTTCue from 'utils/captions/vttCue';\r\nimport VTTRegion from 'utils/captions/vttRegion';\r\n\r\n/**\r\n * Copyright 2013 vtt.js Contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\r\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\r\n\r\nlet WebVTT = function(){};\r\nfunction makeColorSet(color, opacity) {\r\n    if(opacity === undefined) {\r\n        opacity = 1;\r\n    }\r\n    return \"rgba(\" + [parseInt(color.substring(0, 2), 16),\r\n            parseInt(color.substring(2, 4), 16),\r\n            parseInt(color.substring(4, 6), 16),\r\n            opacity].join(\",\") + \")\";\r\n}\r\n\r\nvar WebVTTPrefs = ['webvtt.font.color', 'webvtt.font.opacity', 'webvtt.font.scale',\r\n    'webvtt.bg.color', 'webvtt.bg.opacity',\r\n    'webvtt.edge.color', 'webvtt.edge.type'];\r\n\r\nvar fontScale = 1;\r\n\r\nfunction observe(subject, topic, data) {\r\n    switch (data) {\r\n        case \"webvtt.font.color\":\r\n        case \"webvtt.font.opacity\":\r\n            var fontColor = Services.prefs.getCharPref(\"webvtt.font.color\");\r\n            var fontOpacity = Services.prefs.getIntPref(\"webvtt.font.opacity\") / 100;\r\n            WebVTTSet.fontSet = makeColorSet(fontColor, fontOpacity);\r\n            break;\r\n        case \"webvtt.font.scale\":\r\n            fontScale = Services.prefs.getIntPref(\"webvtt.font.scale\") / 100;\r\n            break;\r\n        case \"webvtt.bg.color\":\r\n        case \"webvtt.bg.opacity\":\r\n            var backgroundColor = Services.prefs.getCharPref(\"webvtt.bg.color\");\r\n            var backgroundOpacity = Services.prefs.getIntPref(\"webvtt.bg.opacity\") / 100;\r\n            WebVTTSet.backgroundSet = makeColorSet(backgroundColor, backgroundOpacity);\r\n            break;\r\n        case \"webvtt.edge.color\":\r\n        case \"webvtt.edge.type\":\r\n            var edgeTypeList = [\"\", \"0px 0px \", \"4px 4px 4px \", \"-2px -2px \", \"2px 2px \"];\r\n            var edgeType = Services.prefs.getIntPref(\"webvtt.edge.type\");\r\n            var edgeColor = Services.prefs.getCharPref(\"webvtt.edge.color\");\r\n            WebVTTSet.edgeSet = edgeTypeList[edgeType] + makeColorSet(edgeColor);\r\n            break;\r\n    }\r\n}\r\n\r\nif(typeof Services !== \"undefined\") {\r\n    var WebVTTSet = {};\r\n    WebVTTPrefs.forEach(function (pref) {\r\n        observe(undefined, undefined, pref);\r\n        Services.prefs.addObserver(pref, observe, false);\r\n    });\r\n}\r\n\r\nvar _objCreate = Object.create || (function() {\r\n        function F() {}\r\n        return function(o) {\r\n            if (arguments.length !== 1) {\r\n                throw new Error('Object.create shim only accepts one parameter.');\r\n            }\r\n            F.prototype = o;\r\n            return new F();\r\n        };\r\n    })();\r\n\r\n// Creates a new ParserError object from an errorData object. The errorData\r\n// object should have default code and message properties. The default message\r\n// property can be overriden by passing in a message parameter.\r\n// See ParsingError.Errors below for acceptable errors.\r\nfunction ParsingError(errorData, message) {\r\n    this.name = \"ParsingError\";\r\n    this.code = errorData.code;\r\n    this.message = message || errorData.message;\r\n}\r\nParsingError.prototype = _objCreate(Error.prototype);\r\nParsingError.prototype.constructor = ParsingError;\r\n\r\n// ParsingError metadata for acceptable ParsingErrors.\r\nParsingError.Errors = {\r\n    BadSignature: {\r\n        code: 0,\r\n        message: \"Malformed WebVTT signature.\"\r\n    },\r\n    BadTimeStamp: {\r\n        code: 1,\r\n        message: \"Malformed time stamp.\"\r\n    }\r\n};\r\n\r\n// Try to parse input as a time stamp.\r\nfunction parseTimeStamp(input) {\r\n\r\n    function computeSeconds(h, m, s, f) {\r\n        return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;\r\n    }\r\n\r\n    var m = input.match(/^(\\d+):(\\d{2})(:\\d{2})?\\.(\\d{3})/);\r\n    if (!m) {\r\n        return null;\r\n    }\r\n\r\n    if (m[3]) {\r\n        // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]\r\n        return computeSeconds(m[1], m[2], m[3].replace(\":\", \"\"), m[4]);\r\n    } else if (m[1] > 59) {\r\n        // Timestamp takes the form of [hours]:[minutes].[milliseconds]\r\n        // First position is hours as it's over 59.\r\n        return computeSeconds(m[1], m[2], 0,  m[4]);\r\n    } else {\r\n        // Timestamp takes the form of [minutes]:[seconds].[milliseconds]\r\n        return computeSeconds(0, m[1], m[2], m[4]);\r\n    }\r\n}\r\n\r\n// A settings object holds key/value pairs and will ignore anything but the first\r\n// assignment to a specific key.\r\nfunction Settings() {\r\n    this.values = _objCreate(null);\r\n}\r\n\r\nSettings.prototype = {\r\n    // Only accept the first assignment to any key.\r\n    set: function(k, v) {\r\n        if (!this.get(k) && v !== \"\") {\r\n            this.values[k] = v;\r\n        }\r\n    },\r\n    // Return the value for a key, or a default value.\r\n    // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\r\n    // a number of possible default values as properties where 'defaultKey' is\r\n    // the key of the property that will be chosen; otherwise it's assumed to be\r\n    // a single value.\r\n    get: function(k, dflt, defaultKey) {\r\n        if (defaultKey) {\r\n            return this.has(k) ? this.values[k] : dflt[defaultKey];\r\n        }\r\n        return this.has(k) ? this.values[k] : dflt;\r\n    },\r\n    // Check whether we have a value for a key.\r\n    has: function(k) {\r\n        return k in this.values;\r\n    },\r\n    // Accept a setting if its one of the given alternatives.\r\n    alt: function(k, v, a) {\r\n        for (var n = 0; n < a.length; ++n) {\r\n            if (v === a[n]) {\r\n                this.set(k, v);\r\n                break;\r\n            }\r\n        }\r\n    },\r\n    // Accept a setting if its a valid (signed) integer.\r\n    integer: function(k, v) {\r\n        if (/^-?\\d+$/.test(v)) { // integer\r\n            this.set(k, parseInt(v, 10));\r\n        }\r\n    },\r\n    // Accept a setting if its a valid percentage.\r\n    percent: function(k, v) {\r\n        var m;\r\n        if ((m = v.match(/^([\\d]{1,3})(\\.[\\d]*)?%$/))) {\r\n            v = parseFloat(v);\r\n            if (v >= 0 && v <= 100) {\r\n                this.set(k, v);\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n};\r\n\r\n// Helper function to parse input into groups separated by 'groupDelim', and\r\n// interprete each group as a key/value pair separated by 'keyValueDelim'.\r\nfunction parseOptions(input, callback, keyValueDelim, groupDelim) {\r\n    var groups = groupDelim ? input.split(groupDelim) : [input];\r\n    for (var i in groups) {\r\n        if (typeof groups[i] !== \"string\") {\r\n            continue;\r\n        }\r\n        var kv = groups[i].split(keyValueDelim);\r\n        if (kv.length !== 2) {\r\n            continue;\r\n        }\r\n        var k = kv[0];\r\n        var v = kv[1];\r\n        callback(k, v);\r\n    }\r\n}\r\n\r\nfunction parseCue(input, cue, regionList) {\r\n    // Remember the original input if we need to throw an error.\r\n    var oInput = input;\r\n    // 4.1 WebVTT timestamp\r\n    function consumeTimeStamp() {\r\n        var ts = parseTimeStamp(input);\r\n        if (ts === null) {\r\n            throw new ParsingError(ParsingError.Errors.BadTimeStamp,\r\n                \"Malformed timestamp: \" + oInput);\r\n        }\r\n        // Remove time stamp from input.\r\n        input = input.replace(/^[^\\sa-zA-Z-]+/, \"\");\r\n        return ts;\r\n    }\r\n\r\n    // 4.4.2 WebVTT cue settings\r\n    function consumeCueSettings(input, cue) {\r\n        var settings = new Settings();\r\n\r\n        parseOptions(input, function (k, v) {\r\n            switch (k) {\r\n                case \"region\":\r\n                    // Find the last region we parsed with the same region id.\r\n                    for (var i = regionList.length - 1; i >= 0; i--) {\r\n                        if (regionList[i].id === v) {\r\n                            settings.set(k, regionList[i].region);\r\n                            break;\r\n                        }\r\n                    }\r\n                    break;\r\n                case \"vertical\":\r\n                    settings.alt(k, v, [\"rl\", \"lr\"]);\r\n                    break;\r\n                case \"line\":\r\n                    var vals = v.split(\",\"),\r\n                        vals0 = vals[0];\r\n                    settings.integer(k, vals0);\r\n                    settings.percent(k, vals0) ? settings.set(\"snapToLines\", false) : null;\r\n                    settings.alt(k, vals0, [\"auto\"]);\r\n                    if (vals.length === 2) {\r\n                        settings.alt(\"lineAlign\", vals[1], [\"start\", \"middle\", \"end\"]);\r\n                    }\r\n                    break;\r\n                case \"position\":\r\n                    vals = v.split(\",\");\r\n                    settings.percent(k, vals[0]);\r\n                    if (vals.length === 2) {\r\n                        settings.alt(\"positionAlign\", vals[1], [\"start\", \"middle\", \"end\"]);\r\n                    }\r\n                    break;\r\n                case \"size\":\r\n                    settings.percent(k, v);\r\n                    break;\r\n                case \"align\":\r\n                    settings.alt(k, v, [\"start\", \"middle\", \"end\", \"left\", \"right\"]);\r\n                    break;\r\n            }\r\n        }, /:/, /\\s/);\r\n\r\n        //hslee remove these fields.\r\n        //Because safari dies here always. And Player doen't use style fields.\r\n        // Apply default values for any missing fields.\r\n        /*cue.region = settings.get(\"region\", null);\r\n        cue.vertical = settings.get(\"vertical\", \"\");\r\n        cue.line = settings.get(\"line\", \"auto\");\r\n        cue.lineAlign = settings.get(\"lineAlign\", \"start\");\r\n        cue.snapToLines = settings.get(\"snapToLines\", true);\r\n        cue.size = settings.get(\"size\", 100);\r\n        //cue.align = settings.get(\"align\", \"middle\");\r\n        cue.position = settings.get(\"position\", \"auto\");\r\n        cue.positionAlign = settings.get(\"positionAlign\", {\r\n            start: \"start\",\r\n            left: \"start\",\r\n            middle: \"middle\",\r\n            end: \"end\",\r\n            right: \"end\"\r\n        }, cue.align\r\n        );*/\r\n    }\r\n\r\n    function skipWhitespace() {\r\n        input = input.replace(/^\\s+/, \"\");\r\n    }\r\n\r\n    // 4.1 WebVTT cue timings.\r\n    skipWhitespace();\r\n    cue.startTime = consumeTimeStamp();   // (1) collect cue start time\r\n    skipWhitespace();\r\n    if (input.substr(0, 3) !== \"-->\") {     // (3) next characters must match \"-->\"\r\n        throw new ParsingError(ParsingError.Errors.BadTimeStamp,\r\n            \"Malformed time stamp (time stamps must be separated by '-->'): \" +\r\n            oInput);\r\n    }\r\n    input = input.substr(3);\r\n    skipWhitespace();\r\n    cue.endTime = consumeTimeStamp();     // (5) collect cue end time\r\n\r\n    // 4.1 WebVTT cue settings list.\r\n    skipWhitespace();\r\n    consumeCueSettings(input, cue);\r\n}\r\n\r\nvar ESCAPE = {\r\n    \"&amp;\": \"&\",\r\n    \"&lt;\": \"<\",\r\n    \"&gt;\": \">\",\r\n    \"&lrm;\": \"\\u200e\",\r\n    \"&rlm;\": \"\\u200f\",\r\n    \"&nbsp;\": \"\\u00a0\"\r\n};\r\n\r\nvar TAG_NAME = {\r\n    c: \"span\",\r\n    i: \"i\",\r\n    b: \"b\",\r\n    u: \"u\",\r\n    ruby: \"ruby\",\r\n    rt: \"rt\",\r\n    v: \"span\",\r\n    lang: \"span\"\r\n};\r\n\r\nvar TAG_ANNOTATION = {\r\n    v: \"title\",\r\n    lang: \"lang\"\r\n};\r\n\r\nvar NEEDS_PARENT = {\r\n    rt: \"ruby\"\r\n};\r\n\r\n// Parse content into a document fragment.\r\nfunction parseContent(window, input) {\r\n    function nextToken() {\r\n        // Check for end-of-string.\r\n        if (!input) {\r\n            return null;\r\n        }\r\n\r\n        // Consume 'n' characters from the input.\r\n        function consume(result) {\r\n            input = input.substr(result.length);\r\n            return result;\r\n        }\r\n\r\n        var m = input.match(/^([^<]*)(<[^>]+>?)?/);\r\n        // If there is some text before the next tag, return it, otherwise return\r\n        // the tag.\r\n        return consume(m[1] ? m[1] : m[2]);\r\n    }\r\n\r\n    // Unescape a string 's'.\r\n    function unescape1(e) {\r\n        return ESCAPE[e];\r\n    }\r\n    function unescape(s) {\r\n        while ((m = s.match(/&(amp|lt|gt|lrm|rlm|nbsp);/))) {\r\n            s = s.replace(m[0], unescape1);\r\n        }\r\n        return s;\r\n    }\r\n\r\n    function shouldAdd(current, element) {\r\n        return !NEEDS_PARENT[element.localName] ||\r\n            NEEDS_PARENT[element.localName] === current.localName;\r\n    }\r\n\r\n    // Create an element for this tag.\r\n    function createElement(type, annotation) {\r\n        var tagName = TAG_NAME[type];\r\n        if (!tagName) {\r\n            return null;\r\n        }\r\n        var element = window.document.createElement(tagName);\r\n        element.localName = tagName;\r\n        var name = TAG_ANNOTATION[type];\r\n        if (name && annotation) {\r\n            element[name] = annotation.trim();\r\n        }\r\n        return element;\r\n    }\r\n\r\n    var rootDiv = window.document.createElement(\"div\"),\r\n        current = rootDiv,\r\n        t,\r\n        tagStack = [];\r\n\r\n    while ((t = nextToken()) !== null) {\r\n        if (t[0] === '<') {\r\n            if (t[1] === \"/\") {\r\n                // If the closing tag matches, move back up to the parent node.\r\n                if (tagStack.length &&\r\n                    tagStack[tagStack.length - 1] === t.substr(2).replace(\">\", \"\")) {\r\n                    tagStack.pop();\r\n                    current = current.parentNode;\r\n                }\r\n                // Otherwise just ignore the end tag.\r\n                continue;\r\n            }\r\n            var ts = parseTimeStamp(t.substr(1, t.length - 2));\r\n            var node;\r\n            if (ts) {\r\n                // Timestamps are lead nodes as well.\r\n                node = window.document.createProcessingInstruction(\"timestamp\", ts);\r\n                current.appendChild(node);\r\n                continue;\r\n            }\r\n            var m = t.match(/^<([^.\\s/0-9>]+)(\\.[^\\s\\\\>]+)?([^>\\\\]+)?(\\\\?)>?$/);\r\n            // If we can't parse the tag, skip to the next tag.\r\n            if (!m) {\r\n                continue;\r\n            }\r\n            // Try to construct an element, and ignore the tag if we couldn't.\r\n            node = createElement(m[1], m[3]);\r\n            if (!node) {\r\n                continue;\r\n            }\r\n            // Determine if the tag should be added based on the context of where it\r\n            // is placed in the cuetext.\r\n            if (!shouldAdd(current, node)) {\r\n                continue;\r\n            }\r\n            // Set the class list (as a list of classes, separated by space).\r\n            if (m[2]) {\r\n                node.className = m[2].substr(1).replace('.', ' ');\r\n            }\r\n            // Append the node to the current node, and enter the scope of the new\r\n            // node.\r\n            tagStack.push(m[1]);\r\n            current.appendChild(node);\r\n            current = node;\r\n            continue;\r\n        }\r\n\r\n        // Text nodes are leaf nodes.\r\n        current.appendChild(window.document.createTextNode(unescape(t)));\r\n    }\r\n\r\n    return rootDiv;\r\n}\r\n\r\n// This is a list of all the Unicode characters that have a strong\r\n// right-to-left category. What this means is that these characters are\r\n// written right-to-left for sure. It was generated by pulling all the strong\r\n// right-to-left characters out of the Unicode data table. That table can\r\n// found at: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\r\nvar strongRTLChars = [0x05BE, 0x05C0, 0x05C3, 0x05C6, 0x05D0, 0x05D1,\r\n    0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA,\r\n    0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, 0x05E0, 0x05E1, 0x05E2, 0x05E3,\r\n    0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x05F0, 0x05F1,\r\n    0x05F2, 0x05F3, 0x05F4, 0x0608, 0x060B, 0x060D, 0x061B, 0x061E, 0x061F,\r\n    0x0620, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628,\r\n    0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631,\r\n    0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063A,\r\n    0x063B, 0x063C, 0x063D, 0x063E, 0x063F, 0x0640, 0x0641, 0x0642, 0x0643,\r\n    0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, 0x066D, 0x066E,\r\n    0x066F, 0x0671, 0x0672, 0x0673, 0x0674, 0x0675, 0x0676, 0x0677, 0x0678,\r\n    0x0679, 0x067A, 0x067B, 0x067C, 0x067D, 0x067E, 0x067F, 0x0680, 0x0681,\r\n    0x0682, 0x0683, 0x0684, 0x0685, 0x0686, 0x0687, 0x0688, 0x0689, 0x068A,\r\n    0x068B, 0x068C, 0x068D, 0x068E, 0x068F, 0x0690, 0x0691, 0x0692, 0x0693,\r\n    0x0694, 0x0695, 0x0696, 0x0697, 0x0698, 0x0699, 0x069A, 0x069B, 0x069C,\r\n    0x069D, 0x069E, 0x069F, 0x06A0, 0x06A1, 0x06A2, 0x06A3, 0x06A4, 0x06A5,\r\n    0x06A6, 0x06A7, 0x06A8, 0x06A9, 0x06AA, 0x06AB, 0x06AC, 0x06AD, 0x06AE,\r\n    0x06AF, 0x06B0, 0x06B1, 0x06B2, 0x06B3, 0x06B4, 0x06B5, 0x06B6, 0x06B7,\r\n    0x06B8, 0x06B9, 0x06BA, 0x06BB, 0x06BC, 0x06BD, 0x06BE, 0x06BF, 0x06C0,\r\n    0x06C1, 0x06C2, 0x06C3, 0x06C4, 0x06C5, 0x06C6, 0x06C7, 0x06C8, 0x06C9,\r\n    0x06CA, 0x06CB, 0x06CC, 0x06CD, 0x06CE, 0x06CF, 0x06D0, 0x06D1, 0x06D2,\r\n    0x06D3, 0x06D4, 0x06D5, 0x06E5, 0x06E6, 0x06EE, 0x06EF, 0x06FA, 0x06FB,\r\n    0x06FC, 0x06FD, 0x06FE, 0x06FF, 0x0700, 0x0701, 0x0702, 0x0703, 0x0704,\r\n    0x0705, 0x0706, 0x0707, 0x0708, 0x0709, 0x070A, 0x070B, 0x070C, 0x070D,\r\n    0x070F, 0x0710, 0x0712, 0x0713, 0x0714, 0x0715, 0x0716, 0x0717, 0x0718,\r\n    0x0719, 0x071A, 0x071B, 0x071C, 0x071D, 0x071E, 0x071F, 0x0720, 0x0721,\r\n    0x0722, 0x0723, 0x0724, 0x0725, 0x0726, 0x0727, 0x0728, 0x0729, 0x072A,\r\n    0x072B, 0x072C, 0x072D, 0x072E, 0x072F, 0x074D, 0x074E, 0x074F, 0x0750,\r\n    0x0751, 0x0752, 0x0753, 0x0754, 0x0755, 0x0756, 0x0757, 0x0758, 0x0759,\r\n    0x075A, 0x075B, 0x075C, 0x075D, 0x075E, 0x075F, 0x0760, 0x0761, 0x0762,\r\n    0x0763, 0x0764, 0x0765, 0x0766, 0x0767, 0x0768, 0x0769, 0x076A, 0x076B,\r\n    0x076C, 0x076D, 0x076E, 0x076F, 0x0770, 0x0771, 0x0772, 0x0773, 0x0774,\r\n    0x0775, 0x0776, 0x0777, 0x0778, 0x0779, 0x077A, 0x077B, 0x077C, 0x077D,\r\n    0x077E, 0x077F, 0x0780, 0x0781, 0x0782, 0x0783, 0x0784, 0x0785, 0x0786,\r\n    0x0787, 0x0788, 0x0789, 0x078A, 0x078B, 0x078C, 0x078D, 0x078E, 0x078F,\r\n    0x0790, 0x0791, 0x0792, 0x0793, 0x0794, 0x0795, 0x0796, 0x0797, 0x0798,\r\n    0x0799, 0x079A, 0x079B, 0x079C, 0x079D, 0x079E, 0x079F, 0x07A0, 0x07A1,\r\n    0x07A2, 0x07A3, 0x07A4, 0x07A5, 0x07B1, 0x07C0, 0x07C1, 0x07C2, 0x07C3,\r\n    0x07C4, 0x07C5, 0x07C6, 0x07C7, 0x07C8, 0x07C9, 0x07CA, 0x07CB, 0x07CC,\r\n    0x07CD, 0x07CE, 0x07CF, 0x07D0, 0x07D1, 0x07D2, 0x07D3, 0x07D4, 0x07D5,\r\n    0x07D6, 0x07D7, 0x07D8, 0x07D9, 0x07DA, 0x07DB, 0x07DC, 0x07DD, 0x07DE,\r\n    0x07DF, 0x07E0, 0x07E1, 0x07E2, 0x07E3, 0x07E4, 0x07E5, 0x07E6, 0x07E7,\r\n    0x07E8, 0x07E9, 0x07EA, 0x07F4, 0x07F5, 0x07FA, 0x0800, 0x0801, 0x0802,\r\n    0x0803, 0x0804, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 0x080A, 0x080B,\r\n    0x080C, 0x080D, 0x080E, 0x080F, 0x0810, 0x0811, 0x0812, 0x0813, 0x0814,\r\n    0x0815, 0x081A, 0x0824, 0x0828, 0x0830, 0x0831, 0x0832, 0x0833, 0x0834,\r\n    0x0835, 0x0836, 0x0837, 0x0838, 0x0839, 0x083A, 0x083B, 0x083C, 0x083D,\r\n    0x083E, 0x0840, 0x0841, 0x0842, 0x0843, 0x0844, 0x0845, 0x0846, 0x0847,\r\n    0x0848, 0x0849, 0x084A, 0x084B, 0x084C, 0x084D, 0x084E, 0x084F, 0x0850,\r\n    0x0851, 0x0852, 0x0853, 0x0854, 0x0855, 0x0856, 0x0857, 0x0858, 0x085E,\r\n    0x08A0, 0x08A2, 0x08A3, 0x08A4, 0x08A5, 0x08A6, 0x08A7, 0x08A8, 0x08A9,\r\n    0x08AA, 0x08AB, 0x08AC, 0x200F, 0xFB1D, 0xFB1F, 0xFB20, 0xFB21, 0xFB22,\r\n    0xFB23, 0xFB24, 0xFB25, 0xFB26, 0xFB27, 0xFB28, 0xFB2A, 0xFB2B, 0xFB2C,\r\n    0xFB2D, 0xFB2E, 0xFB2F, 0xFB30, 0xFB31, 0xFB32, 0xFB33, 0xFB34, 0xFB35,\r\n    0xFB36, 0xFB38, 0xFB39, 0xFB3A, 0xFB3B, 0xFB3C, 0xFB3E, 0xFB40, 0xFB41,\r\n    0xFB43, 0xFB44, 0xFB46, 0xFB47, 0xFB48, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4C,\r\n    0xFB4D, 0xFB4E, 0xFB4F, 0xFB50, 0xFB51, 0xFB52, 0xFB53, 0xFB54, 0xFB55,\r\n    0xFB56, 0xFB57, 0xFB58, 0xFB59, 0xFB5A, 0xFB5B, 0xFB5C, 0xFB5D, 0xFB5E,\r\n    0xFB5F, 0xFB60, 0xFB61, 0xFB62, 0xFB63, 0xFB64, 0xFB65, 0xFB66, 0xFB67,\r\n    0xFB68, 0xFB69, 0xFB6A, 0xFB6B, 0xFB6C, 0xFB6D, 0xFB6E, 0xFB6F, 0xFB70,\r\n    0xFB71, 0xFB72, 0xFB73, 0xFB74, 0xFB75, 0xFB76, 0xFB77, 0xFB78, 0xFB79,\r\n    0xFB7A, 0xFB7B, 0xFB7C, 0xFB7D, 0xFB7E, 0xFB7F, 0xFB80, 0xFB81, 0xFB82,\r\n    0xFB83, 0xFB84, 0xFB85, 0xFB86, 0xFB87, 0xFB88, 0xFB89, 0xFB8A, 0xFB8B,\r\n    0xFB8C, 0xFB8D, 0xFB8E, 0xFB8F, 0xFB90, 0xFB91, 0xFB92, 0xFB93, 0xFB94,\r\n    0xFB95, 0xFB96, 0xFB97, 0xFB98, 0xFB99, 0xFB9A, 0xFB9B, 0xFB9C, 0xFB9D,\r\n    0xFB9E, 0xFB9F, 0xFBA0, 0xFBA1, 0xFBA2, 0xFBA3, 0xFBA4, 0xFBA5, 0xFBA6,\r\n    0xFBA7, 0xFBA8, 0xFBA9, 0xFBAA, 0xFBAB, 0xFBAC, 0xFBAD, 0xFBAE, 0xFBAF,\r\n    0xFBB0, 0xFBB1, 0xFBB2, 0xFBB3, 0xFBB4, 0xFBB5, 0xFBB6, 0xFBB7, 0xFBB8,\r\n    0xFBB9, 0xFBBA, 0xFBBB, 0xFBBC, 0xFBBD, 0xFBBE, 0xFBBF, 0xFBC0, 0xFBC1,\r\n    0xFBD3, 0xFBD4, 0xFBD5, 0xFBD6, 0xFBD7, 0xFBD8, 0xFBD9, 0xFBDA, 0xFBDB,\r\n    0xFBDC, 0xFBDD, 0xFBDE, 0xFBDF, 0xFBE0, 0xFBE1, 0xFBE2, 0xFBE3, 0xFBE4,\r\n    0xFBE5, 0xFBE6, 0xFBE7, 0xFBE8, 0xFBE9, 0xFBEA, 0xFBEB, 0xFBEC, 0xFBED,\r\n    0xFBEE, 0xFBEF, 0xFBF0, 0xFBF1, 0xFBF2, 0xFBF3, 0xFBF4, 0xFBF5, 0xFBF6,\r\n    0xFBF7, 0xFBF8, 0xFBF9, 0xFBFA, 0xFBFB, 0xFBFC, 0xFBFD, 0xFBFE, 0xFBFF,\r\n    0xFC00, 0xFC01, 0xFC02, 0xFC03, 0xFC04, 0xFC05, 0xFC06, 0xFC07, 0xFC08,\r\n    0xFC09, 0xFC0A, 0xFC0B, 0xFC0C, 0xFC0D, 0xFC0E, 0xFC0F, 0xFC10, 0xFC11,\r\n    0xFC12, 0xFC13, 0xFC14, 0xFC15, 0xFC16, 0xFC17, 0xFC18, 0xFC19, 0xFC1A,\r\n    0xFC1B, 0xFC1C, 0xFC1D, 0xFC1E, 0xFC1F, 0xFC20, 0xFC21, 0xFC22, 0xFC23,\r\n    0xFC24, 0xFC25, 0xFC26, 0xFC27, 0xFC28, 0xFC29, 0xFC2A, 0xFC2B, 0xFC2C,\r\n    0xFC2D, 0xFC2E, 0xFC2F, 0xFC30, 0xFC31, 0xFC32, 0xFC33, 0xFC34, 0xFC35,\r\n    0xFC36, 0xFC37, 0xFC38, 0xFC39, 0xFC3A, 0xFC3B, 0xFC3C, 0xFC3D, 0xFC3E,\r\n    0xFC3F, 0xFC40, 0xFC41, 0xFC42, 0xFC43, 0xFC44, 0xFC45, 0xFC46, 0xFC47,\r\n    0xFC48, 0xFC49, 0xFC4A, 0xFC4B, 0xFC4C, 0xFC4D, 0xFC4E, 0xFC4F, 0xFC50,\r\n    0xFC51, 0xFC52, 0xFC53, 0xFC54, 0xFC55, 0xFC56, 0xFC57, 0xFC58, 0xFC59,\r\n    0xFC5A, 0xFC5B, 0xFC5C, 0xFC5D, 0xFC5E, 0xFC5F, 0xFC60, 0xFC61, 0xFC62,\r\n    0xFC63, 0xFC64, 0xFC65, 0xFC66, 0xFC67, 0xFC68, 0xFC69, 0xFC6A, 0xFC6B,\r\n    0xFC6C, 0xFC6D, 0xFC6E, 0xFC6F, 0xFC70, 0xFC71, 0xFC72, 0xFC73, 0xFC74,\r\n    0xFC75, 0xFC76, 0xFC77, 0xFC78, 0xFC79, 0xFC7A, 0xFC7B, 0xFC7C, 0xFC7D,\r\n    0xFC7E, 0xFC7F, 0xFC80, 0xFC81, 0xFC82, 0xFC83, 0xFC84, 0xFC85, 0xFC86,\r\n    0xFC87, 0xFC88, 0xFC89, 0xFC8A, 0xFC8B, 0xFC8C, 0xFC8D, 0xFC8E, 0xFC8F,\r\n    0xFC90, 0xFC91, 0xFC92, 0xFC93, 0xFC94, 0xFC95, 0xFC96, 0xFC97, 0xFC98,\r\n    0xFC99, 0xFC9A, 0xFC9B, 0xFC9C, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1,\r\n    0xFCA2, 0xFCA3, 0xFCA4, 0xFCA5, 0xFCA6, 0xFCA7, 0xFCA8, 0xFCA9, 0xFCAA,\r\n    0xFCAB, 0xFCAC, 0xFCAD, 0xFCAE, 0xFCAF, 0xFCB0, 0xFCB1, 0xFCB2, 0xFCB3,\r\n    0xFCB4, 0xFCB5, 0xFCB6, 0xFCB7, 0xFCB8, 0xFCB9, 0xFCBA, 0xFCBB, 0xFCBC,\r\n    0xFCBD, 0xFCBE, 0xFCBF, 0xFCC0, 0xFCC1, 0xFCC2, 0xFCC3, 0xFCC4, 0xFCC5,\r\n    0xFCC6, 0xFCC7, 0xFCC8, 0xFCC9, 0xFCCA, 0xFCCB, 0xFCCC, 0xFCCD, 0xFCCE,\r\n    0xFCCF, 0xFCD0, 0xFCD1, 0xFCD2, 0xFCD3, 0xFCD4, 0xFCD5, 0xFCD6, 0xFCD7,\r\n    0xFCD8, 0xFCD9, 0xFCDA, 0xFCDB, 0xFCDC, 0xFCDD, 0xFCDE, 0xFCDF, 0xFCE0,\r\n    0xFCE1, 0xFCE2, 0xFCE3, 0xFCE4, 0xFCE5, 0xFCE6, 0xFCE7, 0xFCE8, 0xFCE9,\r\n    0xFCEA, 0xFCEB, 0xFCEC, 0xFCED, 0xFCEE, 0xFCEF, 0xFCF0, 0xFCF1, 0xFCF2,\r\n    0xFCF3, 0xFCF4, 0xFCF5, 0xFCF6, 0xFCF7, 0xFCF8, 0xFCF9, 0xFCFA, 0xFCFB,\r\n    0xFCFC, 0xFCFD, 0xFCFE, 0xFCFF, 0xFD00, 0xFD01, 0xFD02, 0xFD03, 0xFD04,\r\n    0xFD05, 0xFD06, 0xFD07, 0xFD08, 0xFD09, 0xFD0A, 0xFD0B, 0xFD0C, 0xFD0D,\r\n    0xFD0E, 0xFD0F, 0xFD10, 0xFD11, 0xFD12, 0xFD13, 0xFD14, 0xFD15, 0xFD16,\r\n    0xFD17, 0xFD18, 0xFD19, 0xFD1A, 0xFD1B, 0xFD1C, 0xFD1D, 0xFD1E, 0xFD1F,\r\n    0xFD20, 0xFD21, 0xFD22, 0xFD23, 0xFD24, 0xFD25, 0xFD26, 0xFD27, 0xFD28,\r\n    0xFD29, 0xFD2A, 0xFD2B, 0xFD2C, 0xFD2D, 0xFD2E, 0xFD2F, 0xFD30, 0xFD31,\r\n    0xFD32, 0xFD33, 0xFD34, 0xFD35, 0xFD36, 0xFD37, 0xFD38, 0xFD39, 0xFD3A,\r\n    0xFD3B, 0xFD3C, 0xFD3D, 0xFD50, 0xFD51, 0xFD52, 0xFD53, 0xFD54, 0xFD55,\r\n    0xFD56, 0xFD57, 0xFD58, 0xFD59, 0xFD5A, 0xFD5B, 0xFD5C, 0xFD5D, 0xFD5E,\r\n    0xFD5F, 0xFD60, 0xFD61, 0xFD62, 0xFD63, 0xFD64, 0xFD65, 0xFD66, 0xFD67,\r\n    0xFD68, 0xFD69, 0xFD6A, 0xFD6B, 0xFD6C, 0xFD6D, 0xFD6E, 0xFD6F, 0xFD70,\r\n    0xFD71, 0xFD72, 0xFD73, 0xFD74, 0xFD75, 0xFD76, 0xFD77, 0xFD78, 0xFD79,\r\n    0xFD7A, 0xFD7B, 0xFD7C, 0xFD7D, 0xFD7E, 0xFD7F, 0xFD80, 0xFD81, 0xFD82,\r\n    0xFD83, 0xFD84, 0xFD85, 0xFD86, 0xFD87, 0xFD88, 0xFD89, 0xFD8A, 0xFD8B,\r\n    0xFD8C, 0xFD8D, 0xFD8E, 0xFD8F, 0xFD92, 0xFD93, 0xFD94, 0xFD95, 0xFD96,\r\n    0xFD97, 0xFD98, 0xFD99, 0xFD9A, 0xFD9B, 0xFD9C, 0xFD9D, 0xFD9E, 0xFD9F,\r\n    0xFDA0, 0xFDA1, 0xFDA2, 0xFDA3, 0xFDA4, 0xFDA5, 0xFDA6, 0xFDA7, 0xFDA8,\r\n    0xFDA9, 0xFDAA, 0xFDAB, 0xFDAC, 0xFDAD, 0xFDAE, 0xFDAF, 0xFDB0, 0xFDB1,\r\n    0xFDB2, 0xFDB3, 0xFDB4, 0xFDB5, 0xFDB6, 0xFDB7, 0xFDB8, 0xFDB9, 0xFDBA,\r\n    0xFDBB, 0xFDBC, 0xFDBD, 0xFDBE, 0xFDBF, 0xFDC0, 0xFDC1, 0xFDC2, 0xFDC3,\r\n    0xFDC4, 0xFDC5, 0xFDC6, 0xFDC7, 0xFDF0, 0xFDF1, 0xFDF2, 0xFDF3, 0xFDF4,\r\n    0xFDF5, 0xFDF6, 0xFDF7, 0xFDF8, 0xFDF9, 0xFDFA, 0xFDFB, 0xFDFC, 0xFE70,\r\n    0xFE71, 0xFE72, 0xFE73, 0xFE74, 0xFE76, 0xFE77, 0xFE78, 0xFE79, 0xFE7A,\r\n    0xFE7B, 0xFE7C, 0xFE7D, 0xFE7E, 0xFE7F, 0xFE80, 0xFE81, 0xFE82, 0xFE83,\r\n    0xFE84, 0xFE85, 0xFE86, 0xFE87, 0xFE88, 0xFE89, 0xFE8A, 0xFE8B, 0xFE8C,\r\n    0xFE8D, 0xFE8E, 0xFE8F, 0xFE90, 0xFE91, 0xFE92, 0xFE93, 0xFE94, 0xFE95,\r\n    0xFE96, 0xFE97, 0xFE98, 0xFE99, 0xFE9A, 0xFE9B, 0xFE9C, 0xFE9D, 0xFE9E,\r\n    0xFE9F, 0xFEA0, 0xFEA1, 0xFEA2, 0xFEA3, 0xFEA4, 0xFEA5, 0xFEA6, 0xFEA7,\r\n    0xFEA8, 0xFEA9, 0xFEAA, 0xFEAB, 0xFEAC, 0xFEAD, 0xFEAE, 0xFEAF, 0xFEB0,\r\n    0xFEB1, 0xFEB2, 0xFEB3, 0xFEB4, 0xFEB5, 0xFEB6, 0xFEB7, 0xFEB8, 0xFEB9,\r\n    0xFEBA, 0xFEBB, 0xFEBC, 0xFEBD, 0xFEBE, 0xFEBF, 0xFEC0, 0xFEC1, 0xFEC2,\r\n    0xFEC3, 0xFEC4, 0xFEC5, 0xFEC6, 0xFEC7, 0xFEC8, 0xFEC9, 0xFECA, 0xFECB,\r\n    0xFECC, 0xFECD, 0xFECE, 0xFECF, 0xFED0, 0xFED1, 0xFED2, 0xFED3, 0xFED4,\r\n    0xFED5, 0xFED6, 0xFED7, 0xFED8, 0xFED9, 0xFEDA, 0xFEDB, 0xFEDC, 0xFEDD,\r\n    0xFEDE, 0xFEDF, 0xFEE0, 0xFEE1, 0xFEE2, 0xFEE3, 0xFEE4, 0xFEE5, 0xFEE6,\r\n    0xFEE7, 0xFEE8, 0xFEE9, 0xFEEA, 0xFEEB, 0xFEEC, 0xFEED, 0xFEEE, 0xFEEF,\r\n    0xFEF0, 0xFEF1, 0xFEF2, 0xFEF3, 0xFEF4, 0xFEF5, 0xFEF6, 0xFEF7, 0xFEF8,\r\n    0xFEF9, 0xFEFA, 0xFEFB, 0xFEFC, 0x10800, 0x10801, 0x10802, 0x10803,\r\n    0x10804, 0x10805, 0x10808, 0x1080A, 0x1080B, 0x1080C, 0x1080D, 0x1080E,\r\n    0x1080F, 0x10810, 0x10811, 0x10812, 0x10813, 0x10814, 0x10815, 0x10816,\r\n    0x10817, 0x10818, 0x10819, 0x1081A, 0x1081B, 0x1081C, 0x1081D, 0x1081E,\r\n    0x1081F, 0x10820, 0x10821, 0x10822, 0x10823, 0x10824, 0x10825, 0x10826,\r\n    0x10827, 0x10828, 0x10829, 0x1082A, 0x1082B, 0x1082C, 0x1082D, 0x1082E,\r\n    0x1082F, 0x10830, 0x10831, 0x10832, 0x10833, 0x10834, 0x10835, 0x10837,\r\n    0x10838, 0x1083C, 0x1083F, 0x10840, 0x10841, 0x10842, 0x10843, 0x10844,\r\n    0x10845, 0x10846, 0x10847, 0x10848, 0x10849, 0x1084A, 0x1084B, 0x1084C,\r\n    0x1084D, 0x1084E, 0x1084F, 0x10850, 0x10851, 0x10852, 0x10853, 0x10854,\r\n    0x10855, 0x10857, 0x10858, 0x10859, 0x1085A, 0x1085B, 0x1085C, 0x1085D,\r\n    0x1085E, 0x1085F, 0x10900, 0x10901, 0x10902, 0x10903, 0x10904, 0x10905,\r\n    0x10906, 0x10907, 0x10908, 0x10909, 0x1090A, 0x1090B, 0x1090C, 0x1090D,\r\n    0x1090E, 0x1090F, 0x10910, 0x10911, 0x10912, 0x10913, 0x10914, 0x10915,\r\n    0x10916, 0x10917, 0x10918, 0x10919, 0x1091A, 0x1091B, 0x10920, 0x10921,\r\n    0x10922, 0x10923, 0x10924, 0x10925, 0x10926, 0x10927, 0x10928, 0x10929,\r\n    0x1092A, 0x1092B, 0x1092C, 0x1092D, 0x1092E, 0x1092F, 0x10930, 0x10931,\r\n    0x10932, 0x10933, 0x10934, 0x10935, 0x10936, 0x10937, 0x10938, 0x10939,\r\n    0x1093F, 0x10980, 0x10981, 0x10982, 0x10983, 0x10984, 0x10985, 0x10986,\r\n    0x10987, 0x10988, 0x10989, 0x1098A, 0x1098B, 0x1098C, 0x1098D, 0x1098E,\r\n    0x1098F, 0x10990, 0x10991, 0x10992, 0x10993, 0x10994, 0x10995, 0x10996,\r\n    0x10997, 0x10998, 0x10999, 0x1099A, 0x1099B, 0x1099C, 0x1099D, 0x1099E,\r\n    0x1099F, 0x109A0, 0x109A1, 0x109A2, 0x109A3, 0x109A4, 0x109A5, 0x109A6,\r\n    0x109A7, 0x109A8, 0x109A9, 0x109AA, 0x109AB, 0x109AC, 0x109AD, 0x109AE,\r\n    0x109AF, 0x109B0, 0x109B1, 0x109B2, 0x109B3, 0x109B4, 0x109B5, 0x109B6,\r\n    0x109B7, 0x109BE, 0x109BF, 0x10A00, 0x10A10, 0x10A11, 0x10A12, 0x10A13,\r\n    0x10A15, 0x10A16, 0x10A17, 0x10A19, 0x10A1A, 0x10A1B, 0x10A1C, 0x10A1D,\r\n    0x10A1E, 0x10A1F, 0x10A20, 0x10A21, 0x10A22, 0x10A23, 0x10A24, 0x10A25,\r\n    0x10A26, 0x10A27, 0x10A28, 0x10A29, 0x10A2A, 0x10A2B, 0x10A2C, 0x10A2D,\r\n    0x10A2E, 0x10A2F, 0x10A30, 0x10A31, 0x10A32, 0x10A33, 0x10A40, 0x10A41,\r\n    0x10A42, 0x10A43, 0x10A44, 0x10A45, 0x10A46, 0x10A47, 0x10A50, 0x10A51,\r\n    0x10A52, 0x10A53, 0x10A54, 0x10A55, 0x10A56, 0x10A57, 0x10A58, 0x10A60,\r\n    0x10A61, 0x10A62, 0x10A63, 0x10A64, 0x10A65, 0x10A66, 0x10A67, 0x10A68,\r\n    0x10A69, 0x10A6A, 0x10A6B, 0x10A6C, 0x10A6D, 0x10A6E, 0x10A6F, 0x10A70,\r\n    0x10A71, 0x10A72, 0x10A73, 0x10A74, 0x10A75, 0x10A76, 0x10A77, 0x10A78,\r\n    0x10A79, 0x10A7A, 0x10A7B, 0x10A7C, 0x10A7D, 0x10A7E, 0x10A7F, 0x10B00,\r\n    0x10B01, 0x10B02, 0x10B03, 0x10B04, 0x10B05, 0x10B06, 0x10B07, 0x10B08,\r\n    0x10B09, 0x10B0A, 0x10B0B, 0x10B0C, 0x10B0D, 0x10B0E, 0x10B0F, 0x10B10,\r\n    0x10B11, 0x10B12, 0x10B13, 0x10B14, 0x10B15, 0x10B16, 0x10B17, 0x10B18,\r\n    0x10B19, 0x10B1A, 0x10B1B, 0x10B1C, 0x10B1D, 0x10B1E, 0x10B1F, 0x10B20,\r\n    0x10B21, 0x10B22, 0x10B23, 0x10B24, 0x10B25, 0x10B26, 0x10B27, 0x10B28,\r\n    0x10B29, 0x10B2A, 0x10B2B, 0x10B2C, 0x10B2D, 0x10B2E, 0x10B2F, 0x10B30,\r\n    0x10B31, 0x10B32, 0x10B33, 0x10B34, 0x10B35, 0x10B40, 0x10B41, 0x10B42,\r\n    0x10B43, 0x10B44, 0x10B45, 0x10B46, 0x10B47, 0x10B48, 0x10B49, 0x10B4A,\r\n    0x10B4B, 0x10B4C, 0x10B4D, 0x10B4E, 0x10B4F, 0x10B50, 0x10B51, 0x10B52,\r\n    0x10B53, 0x10B54, 0x10B55, 0x10B58, 0x10B59, 0x10B5A, 0x10B5B, 0x10B5C,\r\n    0x10B5D, 0x10B5E, 0x10B5F, 0x10B60, 0x10B61, 0x10B62, 0x10B63, 0x10B64,\r\n    0x10B65, 0x10B66, 0x10B67, 0x10B68, 0x10B69, 0x10B6A, 0x10B6B, 0x10B6C,\r\n    0x10B6D, 0x10B6E, 0x10B6F, 0x10B70, 0x10B71, 0x10B72, 0x10B78, 0x10B79,\r\n    0x10B7A, 0x10B7B, 0x10B7C, 0x10B7D, 0x10B7E, 0x10B7F, 0x10C00, 0x10C01,\r\n    0x10C02, 0x10C03, 0x10C04, 0x10C05, 0x10C06, 0x10C07, 0x10C08, 0x10C09,\r\n    0x10C0A, 0x10C0B, 0x10C0C, 0x10C0D, 0x10C0E, 0x10C0F, 0x10C10, 0x10C11,\r\n    0x10C12, 0x10C13, 0x10C14, 0x10C15, 0x10C16, 0x10C17, 0x10C18, 0x10C19,\r\n    0x10C1A, 0x10C1B, 0x10C1C, 0x10C1D, 0x10C1E, 0x10C1F, 0x10C20, 0x10C21,\r\n    0x10C22, 0x10C23, 0x10C24, 0x10C25, 0x10C26, 0x10C27, 0x10C28, 0x10C29,\r\n    0x10C2A, 0x10C2B, 0x10C2C, 0x10C2D, 0x10C2E, 0x10C2F, 0x10C30, 0x10C31,\r\n    0x10C32, 0x10C33, 0x10C34, 0x10C35, 0x10C36, 0x10C37, 0x10C38, 0x10C39,\r\n    0x10C3A, 0x10C3B, 0x10C3C, 0x10C3D, 0x10C3E, 0x10C3F, 0x10C40, 0x10C41,\r\n    0x10C42, 0x10C43, 0x10C44, 0x10C45, 0x10C46, 0x10C47, 0x10C48, 0x1EE00,\r\n    0x1EE01, 0x1EE02, 0x1EE03, 0x1EE05, 0x1EE06, 0x1EE07, 0x1EE08, 0x1EE09,\r\n    0x1EE0A, 0x1EE0B, 0x1EE0C, 0x1EE0D, 0x1EE0E, 0x1EE0F, 0x1EE10, 0x1EE11,\r\n    0x1EE12, 0x1EE13, 0x1EE14, 0x1EE15, 0x1EE16, 0x1EE17, 0x1EE18, 0x1EE19,\r\n    0x1EE1A, 0x1EE1B, 0x1EE1C, 0x1EE1D, 0x1EE1E, 0x1EE1F, 0x1EE21, 0x1EE22,\r\n    0x1EE24, 0x1EE27, 0x1EE29, 0x1EE2A, 0x1EE2B, 0x1EE2C, 0x1EE2D, 0x1EE2E,\r\n    0x1EE2F, 0x1EE30, 0x1EE31, 0x1EE32, 0x1EE34, 0x1EE35, 0x1EE36, 0x1EE37,\r\n    0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE4D, 0x1EE4E,\r\n    0x1EE4F, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D,\r\n    0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE67, 0x1EE68, 0x1EE69, 0x1EE6A,\r\n    0x1EE6C, 0x1EE6D, 0x1EE6E, 0x1EE6F, 0x1EE70, 0x1EE71, 0x1EE72, 0x1EE74,\r\n    0x1EE75, 0x1EE76, 0x1EE77, 0x1EE79, 0x1EE7A, 0x1EE7B, 0x1EE7C, 0x1EE7E,\r\n    0x1EE80, 0x1EE81, 0x1EE82, 0x1EE83, 0x1EE84, 0x1EE85, 0x1EE86, 0x1EE87,\r\n    0x1EE88, 0x1EE89, 0x1EE8B, 0x1EE8C, 0x1EE8D, 0x1EE8E, 0x1EE8F, 0x1EE90,\r\n    0x1EE91, 0x1EE92, 0x1EE93, 0x1EE94, 0x1EE95, 0x1EE96, 0x1EE97, 0x1EE98,\r\n    0x1EE99, 0x1EE9A, 0x1EE9B, 0x1EEA1, 0x1EEA2, 0x1EEA3, 0x1EEA5, 0x1EEA6,\r\n    0x1EEA7, 0x1EEA8, 0x1EEA9, 0x1EEAB, 0x1EEAC, 0x1EEAD, 0x1EEAE, 0x1EEAF,\r\n    0x1EEB0, 0x1EEB1, 0x1EEB2, 0x1EEB3, 0x1EEB4, 0x1EEB5, 0x1EEB6, 0x1EEB7,\r\n    0x1EEB8, 0x1EEB9, 0x1EEBA, 0x1EEBB, 0x10FFFD];\r\n\r\nfunction determineBidi(cueDiv) {\r\n    var nodeStack = [],\r\n        text = \"\",\r\n        charCode;\r\n\r\n    if (!cueDiv || !cueDiv.childNodes) {\r\n        return \"ltr\";\r\n    }\r\n\r\n    function pushNodes(nodeStack, node) {\r\n        for (var i = node.childNodes.length - 1; i >= 0; i--) {\r\n            nodeStack.push(node.childNodes[i]);\r\n        }\r\n    }\r\n\r\n    function nextTextNode(nodeStack) {\r\n        if (!nodeStack || !nodeStack.length) {\r\n            return null;\r\n        }\r\n\r\n        var node = nodeStack.pop(),\r\n            text = node.textContent || node.innerText;\r\n        if (text) {\r\n            // TODO: This should match all unicode type B characters (paragraph\r\n            // separator characters). See issue #115.\r\n            var m = text.match(/^.*(\\n|\\r)/);\r\n            if (m) {\r\n                nodeStack.length = 0;\r\n                return m[0];\r\n            }\r\n            return text;\r\n        }\r\n        if (node.tagName === \"ruby\") {\r\n            return nextTextNode(nodeStack);\r\n        }\r\n        if (node.childNodes) {\r\n            pushNodes(nodeStack, node);\r\n            return nextTextNode(nodeStack);\r\n        }\r\n    }\r\n\r\n    pushNodes(nodeStack, cueDiv);\r\n    while ((text = nextTextNode(nodeStack))) {\r\n        for (var i = 0; i < text.length; i++) {\r\n            charCode = text.charCodeAt(i);\r\n            for (var j = 0; j < strongRTLChars.length; j++) {\r\n                if (strongRTLChars[j] === charCode) {\r\n                    return \"rtl\";\r\n                }\r\n            }\r\n        }\r\n    }\r\n    return \"ltr\";\r\n}\r\n\r\nfunction computeLinePos(cue) {\r\n    if (typeof cue.line === \"number\" &&\r\n        (cue.snapToLines || (cue.line >= 0 && cue.line <= 100))) {\r\n        return cue.line;\r\n    }\r\n    if (!cue.track || !cue.track.textTrackList ||\r\n        !cue.track.textTrackList.mediaElement) {\r\n        return -1;\r\n    }\r\n    var track = cue.track,\r\n        trackList = track.textTrackList,\r\n        count = 0;\r\n    for (var i = 0; i < trackList.length && trackList[i] !== track; i++) {\r\n        if (trackList[i].mode === \"showing\") {\r\n            count++;\r\n        }\r\n    }\r\n    return ++count * -1;\r\n}\r\n\r\nfunction StyleBox() {\r\n}\r\n\r\n// Apply styles to a div. If there is no div passed then it defaults to the\r\n// div on 'this'.\r\nStyleBox.prototype.applyStyles = function(styles, div) {\r\n    div = div || this.div;\r\n    for (var prop in styles) {\r\n        if (styles.hasOwnProperty(prop)) {\r\n            div.style[prop] = styles[prop];\r\n        }\r\n    }\r\n};\r\n\r\nStyleBox.prototype.formatStyle = function(val, unit) {\r\n    return val === 0 ? 0 : val + unit;\r\n};\r\n\r\n// Constructs the computed display state of the cue (a div). Places the div\r\n// into the overlay which should be a block level element (usually a div).\r\nfunction CueStyleBox(window, cue, styleOptions) {\r\n    var isIE8 = (typeof navigator !== \"undefined\") &&\r\n        (/MSIE\\s8\\.0/).test(navigator.userAgent);\r\n    var color = \"rgba(255, 255, 255, 1)\";\r\n    var backgroundColor = \"rgba(0, 0, 0, 0.8)\";\r\n    var textShadow = \"\";\r\n\r\n    if(typeof WebVTTSet !== \"undefined\") {\r\n        color = WebVTTSet.fontSet;\r\n        backgroundColor = WebVTTSet.backgroundSet;\r\n        textShadow = WebVTTSet.edgeSet;\r\n    }\r\n\r\n    if (isIE8) {\r\n        color = \"rgb(255, 255, 255)\";\r\n        backgroundColor = \"rgb(0, 0, 0)\";\r\n    }\r\n\r\n    StyleBox.call(this);\r\n    this.cue = cue;\r\n\r\n    // Parse our cue's text into a DOM tree rooted at 'cueDiv'. This div will\r\n    // have inline positioning and will function as the cue background box.\r\n    this.cueDiv = parseContent(window, cue.text);\r\n    var styles = {\r\n        color: color,\r\n        backgroundColor: backgroundColor,\r\n        textShadow: textShadow,\r\n        position: \"relative\",\r\n        left: 0,\r\n        right: 0,\r\n        top: 0,\r\n        bottom: 0,\r\n        display: \"inline\"\r\n    };\r\n\r\n    if (!isIE8) {\r\n        styles.writingMode = cue.vertical === \"\" ? \"horizontal-tb\"\r\n            : cue.vertical === \"lr\" ? \"vertical-lr\"\r\n            : \"vertical-rl\";\r\n        styles.unicodeBidi = \"plaintext\";\r\n    }\r\n    this.applyStyles(styles, this.cueDiv);\r\n\r\n    // Create an absolutely positioned div that will be used to position the cue\r\n    // div. Note, all WebVTT cue-setting alignments are equivalent to the CSS\r\n    // mirrors of them except \"middle\" which is \"center\" in CSS.\r\n    this.div = window.document.createElement(\"div\");\r\n    styles = {\r\n        textAlign: cue.align === \"middle\" ? \"center\" : cue.align,\r\n        font: styleOptions.font,\r\n        whiteSpace: \"pre-line\",\r\n        position: \"absolute\"\r\n    };\r\n\r\n    if (!isIE8) {\r\n        styles.direction = determineBidi(this.cueDiv);\r\n        styles.writingMode = cue.vertical === \"\" ? \"horizontal-tb\"\r\n            : cue.vertical === \"lr\" ? \"vertical-lr\"\r\n            : \"vertical-rl\".\r\n            stylesunicodeBidi =  \"plaintext\";\r\n    }\r\n\r\n    this.applyStyles(styles);\r\n\r\n    this.div.appendChild(this.cueDiv);\r\n\r\n    // Calculate the distance from the reference edge of the viewport to the text\r\n    // position of the cue box. The reference edge will be resolved later when\r\n    // the box orientation styles are applied.\r\n    var textPos = 0;\r\n    switch (cue.positionAlign) {\r\n        case \"start\":\r\n            textPos = cue.position;\r\n            break;\r\n        case \"middle\":\r\n            textPos = cue.position - (cue.size / 2);\r\n            break;\r\n        case \"end\":\r\n            textPos = cue.position - cue.size;\r\n            break;\r\n    }\r\n\r\n    // Horizontal box orientation; textPos is the distance from the left edge of the\r\n    // area to the left edge of the box and cue.size is the distance extending to\r\n    // the right from there.\r\n    if (cue.vertical === \"\") {\r\n        this.applyStyles({\r\n            left:  this.formatStyle(textPos, \"%\"),\r\n            width: this.formatStyle(cue.size, \"%\")\r\n        });\r\n        // Vertical box orientation; textPos is the distance from the top edge of the\r\n        // area to the top edge of the box and cue.size is the height extending\r\n        // downwards from there.\r\n    } else {\r\n        this.applyStyles({\r\n            top: this.formatStyle(textPos, \"%\"),\r\n            height: this.formatStyle(cue.size, \"%\")\r\n        });\r\n    }\r\n\r\n    this.move = function(box) {\r\n        this.applyStyles({\r\n            top: this.formatStyle(box.top, \"px\"),\r\n            bottom: this.formatStyle(box.bottom, \"px\"),\r\n            left: this.formatStyle(box.left, \"px\"),\r\n            right: this.formatStyle(box.right, \"px\"),\r\n            height: this.formatStyle(box.height, \"px\"),\r\n            width: this.formatStyle(box.width, \"px\")\r\n        });\r\n    };\r\n}\r\nCueStyleBox.prototype = _objCreate(StyleBox.prototype);\r\nCueStyleBox.prototype.constructor = CueStyleBox;\r\n\r\n// Represents the co-ordinates of an Element in a way that we can easily\r\n// compute things with such as if it overlaps or intersects with another Element.\r\n// Can initialize it with either a StyleBox or another BoxPosition.\r\nfunction BoxPosition(obj) {\r\n    var isIE8 = (typeof navigator !== \"undefined\") &&\r\n        (/MSIE\\s8\\.0/).test(navigator.userAgent);\r\n\r\n    // Either a BoxPosition was passed in and we need to copy it, or a StyleBox\r\n    // was passed in and we need to copy the results of 'getBoundingClientRect'\r\n    // as the object returned is readonly. All co-ordinate values are in reference\r\n    // to the viewport origin (top left).\r\n    var lh, height, width, top;\r\n    if (obj.div) {\r\n        height = obj.div.offsetHeight;\r\n        width = obj.div.offsetWidth;\r\n        top = obj.div.offsetTop;\r\n\r\n        var rects = (rects = obj.div.childNodes) && (rects = rects[0]) &&\r\n            rects.getClientRects && rects.getClientRects();\r\n        obj = obj.div.getBoundingClientRect();\r\n        // In certain cases the outter div will be slightly larger then the sum of\r\n        // the inner div's lines. This could be due to bold text, etc, on some platforms.\r\n        // In this case we should get the average line height and use that. This will\r\n        // result in the desired behaviour.\r\n        lh = rects ? Math.max((rects[0] && rects[0].height) || 0, obj.height / rects.length)\r\n            : 0;\r\n\r\n    }\r\n    this.left = obj.left;\r\n    this.right = obj.right;\r\n    this.top = obj.top || top;\r\n    this.height = obj.height || height;\r\n    this.bottom = obj.bottom || (top + (obj.height || height));\r\n    this.width = obj.width || width;\r\n    this.lineHeight = lh !== undefined ? lh : obj.lineHeight;\r\n\r\n    if (isIE8 && !this.lineHeight) {\r\n        this.lineHeight = 13;\r\n    }\r\n}\r\n\r\n// Move the box along a particular axis. Optionally pass in an amount to move\r\n// the box. If no amount is passed then the default is the line height of the\r\n// box.\r\nBoxPosition.prototype.move = function(axis, toMove) {\r\n    toMove = toMove !== undefined ? toMove : this.lineHeight;\r\n    switch (axis) {\r\n        case \"+x\":\r\n            this.left += toMove;\r\n            this.right += toMove;\r\n            break;\r\n        case \"-x\":\r\n            this.left -= toMove;\r\n            this.right -= toMove;\r\n            break;\r\n        case \"+y\":\r\n            this.top += toMove;\r\n            this.bottom += toMove;\r\n            break;\r\n        case \"-y\":\r\n            this.top -= toMove;\r\n            this.bottom -= toMove;\r\n            break;\r\n    }\r\n};\r\n\r\n// Check if this box overlaps another box, b2.\r\nBoxPosition.prototype.overlaps = function(b2) {\r\n    return this.left < b2.right &&\r\n        this.right > b2.left &&\r\n        this.top < b2.bottom &&\r\n        this.bottom > b2.top;\r\n};\r\n\r\n// Check if this box overlaps any other boxes in boxes.\r\nBoxPosition.prototype.overlapsAny = function(boxes) {\r\n    for (var i = 0; i < boxes.length; i++) {\r\n        if (this.overlaps(boxes[i])) {\r\n            return true;\r\n        }\r\n    }\r\n    return false;\r\n};\r\n\r\n// Check if this box is within another box.\r\nBoxPosition.prototype.within = function(container) {\r\n    return this.top >= container.top &&\r\n        this.bottom <= container.bottom &&\r\n        this.left >= container.left &&\r\n        this.right <= container.right;\r\n};\r\n\r\n// Check if this box is entirely within the container or it is overlapping\r\n// on the edge opposite of the axis direction passed. For example, if \"+x\" is\r\n// passed and the box is overlapping on the left edge of the container, then\r\n// return true.\r\nBoxPosition.prototype.overlapsOppositeAxis = function(container, axis) {\r\n    switch (axis) {\r\n        case \"+x\":\r\n            return this.left < container.left;\r\n        case \"-x\":\r\n            return this.right > container.right;\r\n        case \"+y\":\r\n            return this.top < container.top;\r\n        case \"-y\":\r\n            return this.bottom > container.bottom;\r\n    }\r\n};\r\n\r\n// Find the percentage of the area that this box is overlapping with another\r\n// box.\r\nBoxPosition.prototype.intersectPercentage = function(b2) {\r\n    var x = Math.max(0, Math.min(this.right, b2.right) - Math.max(this.left, b2.left)),\r\n        y = Math.max(0, Math.min(this.bottom, b2.bottom) - Math.max(this.top, b2.top)),\r\n        intersectArea = x * y;\r\n    return intersectArea / (this.height * this.width);\r\n};\r\n\r\n// Convert the positions from this box to CSS compatible positions using\r\n// the reference container's positions. This has to be done because this\r\n// box's positions are in reference to the viewport origin, whereas, CSS\r\n// values are in referecne to their respective edges.\r\nBoxPosition.prototype.toCSSCompatValues = function(reference) {\r\n    return {\r\n        top: this.top - reference.top,\r\n        bottom: reference.bottom - this.bottom,\r\n        left: this.left - reference.left,\r\n        right: reference.right - this.right,\r\n        height: this.height,\r\n        width: this.width\r\n    };\r\n};\r\n\r\n// Get an object that represents the box's position without anything extra.\r\n// Can pass a StyleBox, HTMLElement, or another BoxPositon.\r\nBoxPosition.getSimpleBoxPosition = function(obj) {\r\n    var height = obj.div ? obj.div.offsetHeight : obj.tagName ? obj.offsetHeight : 0;\r\n    var width = obj.div ? obj.div.offsetWidth : obj.tagName ? obj.offsetWidth : 0;\r\n    var top = obj.div ? obj.div.offsetTop : obj.tagName ? obj.offsetTop : 0;\r\n\r\n    obj = obj.div ? obj.div.getBoundingClientRect() :\r\n        obj.tagName ? obj.getBoundingClientRect() : obj;\r\n    var ret = {\r\n        left: obj.left,\r\n        right: obj.right,\r\n        top: obj.top || top,\r\n        height: obj.height || height,\r\n        bottom: obj.bottom || (top + (obj.height || height)),\r\n        width: obj.width || width\r\n    };\r\n    return ret;\r\n};\r\n\r\n// Move a StyleBox to its specified, or next best, position. The containerBox\r\n// is the box that contains the StyleBox, such as a div. boxPositions are\r\n// a list of other boxes that the styleBox can't overlap with.\r\nfunction moveBoxToLinePosition(window, styleBox, containerBox, boxPositions) {\r\n\r\n    // Find the best position for a cue box, b, on the video. The axis parameter\r\n    // is a list of axis, the order of which, it will move the box along. For example:\r\n    // Passing [\"+x\", \"-x\"] will move the box first along the x axis in the positive\r\n    // direction. If it doesn't find a good position for it there it will then move\r\n    // it along the x axis in the negative direction.\r\n    function findBestPosition(b, axis) {\r\n        var bestPosition,\r\n            specifiedPosition = new BoxPosition(b),\r\n            percentage = 1; // Highest possible so the first thing we get is better.\r\n\r\n        for (var i = 0; i < axis.length; i++) {\r\n            while (b.overlapsOppositeAxis(containerBox, axis[i]) ||\r\n            (b.within(containerBox) && b.overlapsAny(boxPositions))) {\r\n                b.move(axis[i]);\r\n            }\r\n            // We found a spot where we aren't overlapping anything. This is our\r\n            // best position.\r\n            if (b.within(containerBox)) {\r\n                return b;\r\n            }\r\n            var p = b.intersectPercentage(containerBox);\r\n            // If we're outside the container box less then we were on our last try\r\n            // then remember this position as the best position.\r\n            if (percentage > p) {\r\n                bestPosition = new BoxPosition(b);\r\n                percentage = p;\r\n            }\r\n            // Reset the box position to the specified position.\r\n            b = new BoxPosition(specifiedPosition);\r\n        }\r\n        return bestPosition || specifiedPosition;\r\n    }\r\n\r\n    var boxPosition = new BoxPosition(styleBox),\r\n        cue = styleBox.cue,\r\n        linePos = computeLinePos(cue),\r\n        axis = [];\r\n\r\n    // If we have a line number to align the cue to.\r\n    if (cue.snapToLines) {\r\n        var size;\r\n        switch (cue.vertical) {\r\n            case \"\":\r\n                axis = [ \"+y\", \"-y\" ];\r\n                size = \"height\";\r\n                break;\r\n            case \"rl\":\r\n                axis = [ \"+x\", \"-x\" ];\r\n                size = \"width\";\r\n                break;\r\n            case \"lr\":\r\n                axis = [ \"-x\", \"+x\" ];\r\n                size = \"width\";\r\n                break;\r\n        }\r\n\r\n        var step = boxPosition.lineHeight,\r\n            position = step * Math.round(linePos),\r\n            maxPosition = containerBox[size] + step,\r\n            initialAxis = axis[0];\r\n\r\n        // If the specified intial position is greater then the max position then\r\n        // clamp the box to the amount of steps it would take for the box to\r\n        // reach the max position.\r\n        if (Math.abs(position) > maxPosition) {\r\n            position = position < 0 ? -1 : 1;\r\n            position *= Math.ceil(maxPosition / step) * step;\r\n        }\r\n\r\n        // If computed line position returns negative then line numbers are\r\n        // relative to the bottom of the video instead of the top. Therefore, we\r\n        // need to increase our initial position by the length or width of the\r\n        // video, depending on the writing direction, and reverse our axis directions.\r\n        if (linePos < 0) {\r\n            position += cue.vertical === \"\" ? containerBox.height : containerBox.width;\r\n            axis = axis.reverse();\r\n        }\r\n\r\n        // Move the box to the specified position. This may not be its best\r\n        // position.\r\n        boxPosition.move(initialAxis, position);\r\n\r\n    } else {\r\n        // If we have a percentage line value for the cue.\r\n        var calculatedPercentage = (boxPosition.lineHeight / containerBox.height) * 100;\r\n\r\n        switch (cue.lineAlign) {\r\n            case \"middle\":\r\n                linePos -= (calculatedPercentage / 2);\r\n                break;\r\n            case \"end\":\r\n                linePos -= calculatedPercentage;\r\n                break;\r\n        }\r\n\r\n        // Apply initial line position to the cue box.\r\n        switch (cue.vertical) {\r\n            case \"\":\r\n                styleBox.applyStyles({\r\n                    top: styleBox.formatStyle(linePos, \"%\")\r\n                });\r\n                break;\r\n            case \"rl\":\r\n                styleBox.applyStyles({\r\n                    left: styleBox.formatStyle(linePos, \"%\")\r\n                });\r\n                break;\r\n            case \"lr\":\r\n                styleBox.applyStyles({\r\n                    right: styleBox.formatStyle(linePos, \"%\")\r\n                });\r\n                break;\r\n        }\r\n\r\n        axis = [ \"+y\", \"-x\", \"+x\", \"-y\" ];\r\n\r\n        // Get the box position again after we've applied the specified positioning\r\n        // to it.\r\n        boxPosition = new BoxPosition(styleBox);\r\n    }\r\n\r\n    var bestPosition = findBestPosition(boxPosition, axis);\r\n    styleBox.move(bestPosition.toCSSCompatValues(containerBox));\r\n}\r\n\r\n/*function WebVTT() {\r\n // Nothing\r\n }*/\r\n\r\n// Helper to allow strings to be decoded instead of the default binary utf8 data.\r\nWebVTT.StringDecoder = function() {\r\n    return {\r\n        decode: function(data) {\r\n            if (!data) {\r\n                return \"\";\r\n            }\r\n            if (typeof data !== \"string\") {\r\n                throw new Error(\"Error - expected string data.\");\r\n            }\r\n            return decodeURIComponent(encodeURIComponent(data));\r\n        }\r\n    };\r\n};\r\n\r\nWebVTT.convertCueToDOMTree = function(window, cuetext) {\r\n    if (!window || !cuetext) {\r\n        return null;\r\n    }\r\n    return parseContent(window, cuetext);\r\n};\r\n\r\nvar FONT_SIZE_PERCENT = 0.05;\r\nvar FONT_STYLE = \"sans-serif\";\r\nvar CUE_BACKGROUND_PADDING = \"1.5%\";\r\n\r\n// Runs the processing model over the cues and regions passed to it.\r\n// @param overlay A block level element (usually a div) that the computed cues\r\n//                and regions will be placed into.\r\nWebVTT.processCues = function(window, cues, overlay) {\r\n    if (!window || !cues || !overlay) {\r\n        return null;\r\n    }\r\n\r\n    // Remove all previous children.\r\n    while (overlay.firstChild) {\r\n        overlay.removeChild(overlay.firstChild);\r\n    }\r\n\r\n    var paddedOverlay = window.document.createElement(\"div\");\r\n    paddedOverlay.style.position = \"absolute\";\r\n    paddedOverlay.style.left = \"0\";\r\n    paddedOverlay.style.right = \"0\";\r\n    paddedOverlay.style.top = \"0\";\r\n    paddedOverlay.style.bottom = \"0\";\r\n    paddedOverlay.style.margin = CUE_BACKGROUND_PADDING;\r\n    overlay.appendChild(paddedOverlay);\r\n\r\n    // Determine if we need to compute the display states of the cues. This could\r\n    // be the case if a cue's state has been changed since the last computation or\r\n    // if it has not been computed yet.\r\n    function shouldCompute(cues) {\r\n        for (var i = 0; i < cues.length; i++) {\r\n            if (cues[i].hasBeenReset || !cues[i].displayState) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    // We don't need to recompute the cues' display states. Just reuse them.\r\n    if (!shouldCompute(cues)) {\r\n        for (var i = 0; i < cues.length; i++) {\r\n            paddedOverlay.appendChild(cues[i].displayState);\r\n        }\r\n        return;\r\n    }\r\n\r\n    var boxPositions = [],\r\n        containerBox = BoxPosition.getSimpleBoxPosition(paddedOverlay),\r\n        fontSize = Math.round(containerBox.height * FONT_SIZE_PERCENT * 100) / 100;\r\n    var styleOptions = {\r\n        font: (fontSize * fontScale) + \"px \" + FONT_STYLE\r\n    };\r\n\r\n    (function() {\r\n        var styleBox, cue;\r\n\r\n        for (var i = 0; i < cues.length; i++) {\r\n            cue = cues[i];\r\n\r\n            // Compute the intial position and styles of the cue div.\r\n            styleBox = new CueStyleBox(window, cue, styleOptions);\r\n            paddedOverlay.appendChild(styleBox.div);\r\n\r\n            // Move the cue div to it's correct line position.\r\n            moveBoxToLinePosition(window, styleBox, containerBox, boxPositions);\r\n\r\n            // Remember the computed div so that we don't have to recompute it later\r\n            // if we don't have too.\r\n            cue.displayState = styleBox.div;\r\n\r\n            boxPositions.push(BoxPosition.getSimpleBoxPosition(styleBox));\r\n        }\r\n    })();\r\n};\r\n\r\nWebVTT.Parser = function(window, decoder) {\r\n    this.window = window;\r\n    this.state = \"INITIAL\";\r\n    this.buffer = \"\";\r\n    this.decoder = decoder || new TextDecoder(\"utf8\");\r\n    this.regionList = [];\r\n};\r\n\r\nWebVTT.Parser.prototype = {\r\n    // If the error is a ParsingError then report it to the consumer if\r\n    // possible. If it's not a ParsingError then throw it like normal.\r\n    reportOrThrowError: function(e) {\r\n        if (e instanceof ParsingError) {\r\n            this.onparsingerror && this.onparsingerror(e);\r\n        } else {\r\n            throw e;\r\n        }\r\n    },\r\n    parse: function (data, flushing) {\r\n        var self = this;\r\n        // If there is no data then we won't decode it, but will just try to parse\r\n        // whatever is in buffer already. This may occur in circumstances, for\r\n        // example when flush() is called.\r\n        if (data) {\r\n            // Try to decode the data that we received.\r\n            self.buffer += self.decoder.decode(data, {stream: true});\r\n        }\r\n        function collectNextLine() {\r\n            var buffer = self.buffer;\r\n            var pos = 0;\r\n            while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\r\n                ++pos;\r\n            }\r\n            var line = buffer.substr(0, pos);\r\n            // Advance the buffer early in case we fail below.\r\n            if (buffer[pos] === '\\r') {\r\n                ++pos;\r\n            }\r\n            if (buffer[pos] === '\\n') {\r\n                ++pos;\r\n            }\r\n            self.buffer = buffer.substr(pos);\r\n            return line;\r\n        }\r\n\r\n        // 3.4 WebVTT region and WebVTT region settings syntax\r\n        function parseRegion(input) {\r\n            var settings = new Settings();\r\n\r\n            parseOptions(input, function (k, v) {\r\n                switch (k) {\r\n                    case \"id\":\r\n                        settings.set(k, v);\r\n                        break;\r\n                    case \"width\":\r\n                        settings.percent(k, v);\r\n                        break;\r\n                    case \"lines\":\r\n                        settings.integer(k, v);\r\n                        break;\r\n                    case \"regionanchor\":\r\n                    case \"viewportanchor\":\r\n                        var xy = v.split(',');\r\n                        if (xy.length !== 2) {\r\n                            break;\r\n                        }\r\n                        // We have to make sure both x and y parse, so use a temporary\r\n                        // settings object here.\r\n                        var anchor = new Settings();\r\n                        anchor.percent(\"x\", xy[0]);\r\n                        anchor.percent(\"y\", xy[1]);\r\n                        if (!anchor.has(\"x\") || !anchor.has(\"y\")) {\r\n                            break;\r\n                        }\r\n                        settings.set(k + \"X\", anchor.get(\"x\"));\r\n                        settings.set(k + \"Y\", anchor.get(\"y\"));\r\n                        break;\r\n                    case \"scroll\":\r\n                        settings.alt(k, v, [\"up\"]);\r\n                        break;\r\n                }\r\n            }, /=/, /\\s/);\r\n\r\n            // Create the region, using default values for any values that were not\r\n            // specified.\r\n            if (settings.has(\"id\")) {\r\n                var region = new VTTRegion();\r\n                region.width = settings.get(\"width\", 100);\r\n                region.lines = settings.get(\"lines\", 3);\r\n                region.regionAnchorX = settings.get(\"regionanchorX\", 0);\r\n                region.regionAnchorY = settings.get(\"regionanchorY\", 100);\r\n                region.viewportAnchorX = settings.get(\"viewportanchorX\", 0);\r\n                region.viewportAnchorY = settings.get(\"viewportanchorY\", 100);\r\n                region.scroll = settings.get(\"scroll\", \"\");\r\n                // Register the region.\r\n                self.onregion && self.onregion(region);\r\n                // Remember the VTTRegion for later in case we parse any VTTCues that\r\n                // reference it.\r\n                self.regionList.push({\r\n                    id: settings.get(\"id\"),\r\n                    region: region\r\n                });\r\n            }\r\n        }\r\n\r\n        // 3.2 WebVTT metadata header syntax\r\n        function parseHeader(input) {\r\n            parseOptions(input, function (k, v) {\r\n                switch (k) {\r\n                    case \"Region\":\r\n                        // 3.3 WebVTT region metadata header syntax\r\n                        parseRegion(v);\r\n                        break;\r\n                }\r\n            }, /:/);\r\n        }\r\n\r\n        // 5.1 WebVTT file parsing.\r\n        try {\r\n            var line;\r\n            if (self.state === \"INITIAL\") {\r\n                // We can't start parsing until we have the first line.\r\n                if (!/\\r\\n|\\n/.test(self.buffer)) {\r\n                    return this;\r\n                }\r\n\r\n                line = collectNextLine();\r\n\r\n                var m = line.match(/^WEBVTT([ \\t].*)?$/);\r\n                if (!m || !m[0]) {\r\n                    throw new ParsingError(ParsingError.Errors.BadSignature);\r\n                }\r\n\r\n                self.state = \"HEADER\";\r\n            }\r\n\r\n            var alreadyCollectedLine = false;\r\n            while (self.buffer) {\r\n                // We can't parse a line until we have the full line.\r\n                if (!/\\r\\n|\\n/.test(self.buffer)) {\r\n                    return this;\r\n                }\r\n\r\n                if (!alreadyCollectedLine) {\r\n                    line = collectNextLine();\r\n                } else {\r\n                    alreadyCollectedLine = false;\r\n                }\r\n                switch (self.state) {\r\n                    case \"HEADER\":\r\n                        // 13-18 - Allow a header (metadata) under the WEBVTT line.\r\n                        if (/:/.test(line)) {\r\n                            parseHeader(line);\r\n                        } else if (!line) {\r\n                            // An empty line terminates the header and starts the body (cues).\r\n                            self.state = \"ID\";\r\n                        }\r\n                        continue;\r\n                    case \"NOTE\":\r\n                        // Ignore NOTE blocks.\r\n                        if (!line) {\r\n                            self.state = \"ID\";\r\n                        }\r\n                        continue;\r\n                    case \"ID\":\r\n                        // Check for the start of NOTE blocks.\r\n                        if (/^NOTE($|[ \\t])/.test(line)) {\r\n                            self.state = \"NOTE\";\r\n                            break;\r\n                        }\r\n                        // 19-29 - Allow any number of line terminators, then initialize new cue values.\r\n                        if (!line) {\r\n                            continue;\r\n                        }\r\n                        self.cue = new VTTCue(0, 0, \"\");\r\n                        self.state = \"CUE\";\r\n                        // 30-39 - Check if self line contains an optional identifier or timing data.\r\n                        if (line.indexOf(\"-->\") === -1) {\r\n                            self.cue.id = line;\r\n                            continue;\r\n                        }\r\n                    // Process line as start of a cue.\r\n                    /*falls through*/\r\n                    case \"CUE\":\r\n                        // 40 - Collect cue timings and settings.\r\n                        try {\r\n                            parseCue(line, self.cue, self.regionList);\r\n                        } catch (e) {\r\n                            self.reportOrThrowError(e);\r\n                            // In case of an error ignore rest of the cue.\r\n                            self.cue = null;\r\n                            self.state = \"BADCUE\";\r\n                            continue;\r\n                        }\r\n                        self.state = \"CUETEXT\";\r\n                        continue;\r\n                    case \"CUETEXT\":\r\n                        var hasSubstring = line.indexOf(\"-->\") !== -1;\r\n                        // 34 - If we have an empty line then report the cue.\r\n                        // 35 - If we have the special substring '-->' then report the cue,\r\n                        // but do not collect the line as we need to process the current\r\n                        // one as a new cue.\r\n                        if (!line || hasSubstring && (alreadyCollectedLine = true)) {\r\n                            // We are done parsing self cue.\r\n                            self.oncue && self.oncue(self.cue);\r\n                            self.cue = null;\r\n                            self.state = \"ID\";\r\n                            continue;\r\n                        }\r\n                        if (self.cue.text) {\r\n                            self.cue.text += \"\\n\";\r\n                        }\r\n                        self.cue.text += line;\r\n                        continue;\r\n                    case \"BADCUE\": // BADCUE\r\n                        // 54-62 - Collect and discard the remaining cue.\r\n                        if (!line) {\r\n                            self.state = \"ID\";\r\n                        }\r\n                        continue;\r\n                }\r\n            }\r\n\r\n\r\n            if (!flushing) {\r\n                //때때로 (한긇 vtt로 추정) cue가 남아 있는채로 self.flush()를 호출해서 cue가 있기 때문에 다시 self.parse()를 타는 경우가 생김.\r\n                //왜 이렇게 짜여 있는지 모르겠고 일단 아래와 같은 코드로 위기를 극복한다.\r\n                if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\r\n                    self.oncue(self.cue);\r\n                }\r\n                self.flush();\r\n                return this;\r\n            }\r\n        } catch (e) {\r\n            self.reportOrThrowError(e);\r\n            // If we are currently parsing a cue, report what we have.\r\n            if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\r\n                self.oncue(self.cue);\r\n            }\r\n            self.cue = null;\r\n            // Enter BADWEBVTT state if header was not parsed correctly otherwise\r\n            // another exception occurred so enter BADCUE state.\r\n            self.state = self.state === \"INITIAL\" ? \"BADWEBVTT\" : \"BADCUE\";\r\n        }\r\n        return this;\r\n    },\r\n    flush: function () {\r\n        var self = this;\r\n\r\n        try {\r\n            // Finish decoding the stream.\r\n            self.buffer += self.decoder.decode();\r\n            // Synthesize the end of the current cue or region.\r\n            if (self.cue || self.state === \"HEADER\") {\r\n                self.buffer += \"\\n\\n\";\r\n                self.parse(null, true);\r\n            }\r\n            // If we've flushed, parsed, and we're still on the INITIAL state then\r\n            // that means we don't have enough of the stream to parse the first\r\n            // line.\r\n            if (self.state === \"INITIAL\") {\r\n                throw new ParsingError(ParsingError.Errors.BadSignature);\r\n            }\r\n        } catch(e) {\r\n            self.reportOrThrowError(e);\r\n        }\r\n        self.onflush && self.onflush();\r\n        return this;\r\n    }\r\n};\r\n\r\n\r\n\r\n\r\nexport default WebVTT;","/**\r\n * Created by hoho on 2018. 8. 24..\r\n */\r\n\r\nexport const getBrowserLanguage = function(){\r\n    let nav = window.navigator,\r\n        browserLanguagePropertyKeys = ['language', 'browserLanguage', 'systemLanguage', 'userLanguage'],\r\n        i,\r\n        language;\r\n\r\n    // support for HTML 5.1 \"navigator.languages\"\r\n    if (Array.isArray(nav.languages)) {\r\n        for (i = 0; i < nav.languages.length; i++) {\r\n            language = nav.languages[i];\r\n            if (language && language.length) {\r\n                return language;\r\n            }\r\n        }\r\n    }\r\n\r\n    // support for other well known properties in browsers\r\n    for (i = 0; i < browserLanguagePropertyKeys.length; i++) {\r\n        language = nav[browserLanguagePropertyKeys[i]];\r\n        if (language && language.length) {\r\n            return language;\r\n        }\r\n    }\r\n\r\n    return null;\r\n};\r\nexport const analUserAgent = function(){\r\n    let unknown = '-';\r\n\r\n    // screen\r\n    let screenSize = '';\r\n    if (screen.width) {\r\n        let width = (screen.width) ? screen.width : '';\r\n        let height = (screen.height) ? screen.height : '';\r\n        screenSize += '' + width + \" x \" + height;\r\n    }\r\n\r\n    // browser\r\n    let nVer = navigator.appVersion;\r\n    let nAgt = navigator.userAgent;\r\n    let browser = navigator.appName;\r\n    let version = '' + parseFloat(navigator.appVersion);\r\n    let majorVersion = parseInt(navigator.appVersion, 10);\r\n    let isWebview = false;\r\n    let nameOffset, verOffset, ix;\r\n\r\n    // Opera\r\n    if ((verOffset = nAgt.indexOf('Opera')) != -1) {\r\n        browser = 'Opera';\r\n        version = nAgt.substring(verOffset + 6);\r\n        if ((verOffset = nAgt.indexOf('Version')) != -1) {\r\n            version = nAgt.substring(verOffset + 8);\r\n        }\r\n    }\r\n    // Opera Next\r\n    if ((verOffset = nAgt.indexOf('OPR')) != -1) {\r\n        browser = 'Opera';\r\n        version = nAgt.substring(verOffset + 4);\r\n    }\r\n    //삼성 브라우저\r\n    else if ((verOffset = nAgt.indexOf('SamsungBrowser')) != -1) {\r\n        browser = 'SamsungBrowser';\r\n        version = nAgt.substring(verOffset + 15);\r\n    }\r\n    // Edge\r\n    else if ((verOffset = nAgt.indexOf('Edge')) != -1) {\r\n        browser = 'Microsoft Edge';\r\n        version = nAgt.substring(verOffset + 5);\r\n    }\r\n    // MSIE\r\n    else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {\r\n        browser = 'Microsoft Internet Explorer';\r\n        version = nAgt.substring(verOffset + 5);\r\n\r\n\r\n        //win7 IE11 userAgent is ugly....\r\n        if( (nAgt.indexOf('Trident/') !== -1) && (nAgt.indexOf('rv:') !== -1)  ){\r\n            version = nAgt.substring(nAgt.indexOf('rv:') + 3);\r\n        }\r\n    }\r\n    // Chrome\r\n    else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {\r\n        browser = 'Chrome';\r\n        version = nAgt.substring(verOffset + 7);\r\n    }\r\n    else if ((verOffset = nAgt.indexOf('CriOS')) != -1) {   //iphone - chrome\r\n        browser = 'Chrome';\r\n        version = nAgt.substring(verOffset + 6);\r\n    }\r\n    // Firefox\r\n    else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {\r\n        browser = 'Firefox';\r\n        version = nAgt.substring(verOffset + 8);\r\n    }\r\n    else if ((verOffset = nAgt.indexOf('FxiOS')) != -1) {\r\n        browser = 'Firefox';\r\n        version = nAgt.substring(verOffset + 6);\r\n    }\r\n    // Safari\r\n    else if ((verOffset = nAgt.indexOf('Safari')) != -1) {\r\n        browser = 'Safari';\r\n        version = nAgt.substring(verOffset + 7);\r\n        if ((verOffset = nAgt.indexOf('Version')) != -1) {\r\n            version = nAgt.substring(verOffset + 8);\r\n        }\r\n    }\r\n\r\n\r\n    // MSIE 11+\r\n    else if (nAgt.indexOf('Trident/') !== -1) {\r\n        browser = 'Microsoft Internet Explorer';\r\n        version = nAgt.substring(nAgt.indexOf('rv:') + 3);\r\n    }\r\n    // Other browsers\r\n    else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {\r\n        browser = nAgt.substring(nameOffset, verOffset);\r\n        version = nAgt.substring(verOffset + 1);\r\n        if (browser.toLowerCase() == browser.toUpperCase()) {\r\n            browser = navigator.appName;\r\n        }\r\n    }\r\n    if(nAgt.indexOf(' wv') > 0){\r\n        isWebview = true;\r\n    }\r\n    // trim the version string\r\n    if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix);\r\n    if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix);\r\n    if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix);\r\n\r\n    majorVersion = parseInt('' + version, 10);\r\n    if (isNaN(majorVersion)) {\r\n        version = '' + parseFloat(navigator.appVersion);\r\n        majorVersion = parseInt(navigator.appVersion, 10);\r\n    }\r\n\r\n    // mobile version\r\n    var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);\r\n\r\n    // cookie\r\n    var cookieEnabled = (navigator.cookieEnabled) ? true : false;\r\n\r\n    if (typeof navigator.cookieEnabled == 'undefined' && !cookieEnabled) {\r\n        document.cookie = 'testcookie';\r\n        cookieEnabled = (document.cookie.indexOf('testcookie') != -1) ? true : false;\r\n    }\r\n\r\n    // system\r\n    var os = unknown;\r\n    var clientStrings = [\r\n        {s:'Windows 10', r:/(Windows 10.0|Windows NT 10.0)/},\r\n        {s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/},\r\n        {s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/},\r\n        {s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/},\r\n        {s:'Windows Vista', r:/Windows NT 6.0/},\r\n        {s:'Windows Server 2003', r:/Windows NT 5.2/},\r\n        {s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/},\r\n        {s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/},\r\n        {s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/},\r\n        {s:'Windows 98', r:/(Windows 98|Win98)/},\r\n        {s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/},\r\n        {s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},\r\n        {s:'Windows CE', r:/Windows CE/},\r\n        {s:'Windows 3.11', r:/Win16/},\r\n        {s:'Android', r:/Android/},\r\n        {s:'Open BSD', r:/OpenBSD/},\r\n        {s:'Sun OS', r:/SunOS/},\r\n        {s:'Linux', r:/(Linux|X11)/},\r\n        {s:'iOS', r:/(iPhone|iPad|iPod)/},\r\n        {s:'Mac OS XI', r:/Mac OS X 11/},\r\n        {s:'Mac OS X', r:/Mac OS X 10/},\r\n        {s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},\r\n        {s:'QNX', r:/QNX/},\r\n        {s:'UNIX', r:/UNIX/},\r\n        {s:'BeOS', r:/BeOS/},\r\n        {s:'OS/2', r:/OS\\/2/},\r\n        {s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\\/Teoma|ia_archiver)/}\r\n    ];\r\n    for (var id in clientStrings) {\r\n        var cs = clientStrings[id];\r\n        if (cs.r.test(nAgt)) {\r\n            os = cs.s;\r\n            break;\r\n        }\r\n    }\r\n\r\n    var osVersion = unknown;\r\n\r\n    if (/Windows/.test(os)) {\r\n        osVersion = /Windows (.*)/.exec(os)[1];\r\n        os = 'Windows';\r\n    }\r\n\r\n    switch (os) {\r\n        case 'Mac OS XI':\r\n            osVersion = /Mac OS X (11[\\.\\_\\d]+)/.exec(nAgt)[1];\r\n            break;\r\n\r\n        case 'Mac OS X':\r\n            osVersion = /Mac OS X (10[\\.\\_\\d]+)/.exec(nAgt)[1];\r\n            break;\r\n\r\n        case 'Android':\r\n            osVersion = /Android ([\\.\\_\\d]+)/.exec(nAgt)[1];\r\n            break;\r\n\r\n        case 'iOS':\r\n            osVersion = /OS (\\d+)_(\\d+)_?(\\d+)?/.exec(nVer);\r\n            osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0);\r\n            break;\r\n    }\r\n\r\n    return {\r\n        screen: screenSize,\r\n        browser: browser,\r\n        browserVersion: version,\r\n        browserMajorVersion: majorVersion,\r\n        mobile: mobile,\r\n        ua : nAgt,\r\n        os: os,\r\n        osVersion: osVersion,\r\n        cookies: cookieEnabled\r\n    };\r\n};\r\n","import {getBrowserLanguage} from \"utils/browser\";\r\n/*\r\n *  sami-parser\r\n *  The MIT License (MIT)\r\n *\r\n *  Copyright (c) 2013 Constantine Kim <elegantcoder@gmail.com>\r\n *  https://github.com/elegantcoder/sami-parser\r\n *\r\n */\r\n\r\nconst langCodes = [\"ab\",\"aa\",\"af\", \"ak\", \"sq\", \"am\", \"ar\", \"an\", \"hy\", \"as\", \"av\", \"ae\", \"ay\", \"az\", \"bm\", \"ba\", \"eu\", \"be\", \"bn\", \"bh\", \"bi\", \"nb\",\"bs\",\"br\",\"bg\",\"my\",\"es\",\"ca\",\"km\",\"ch\",\"ce\",\"ny\",\"ny\",\"zh\",\"za\",\"cu\",\"cu\",\"cv\",\"kw\",\r\n    \"co\",\"cr\",\"hr\",\"cs\",\"da\",\"dv\",\"dv\",\"nl\",\"dz\",\"en\",\"eo\",\"et\",\"ee\",\"fo\",\"fj\",\"fi\",\"nl\",\"fr\",\"ff\",\"gd\",\"gl\",\"lg\",\"ka\",\"de\",\"ki\",\"el\",\"kl\",\"gn\",\"gu\",\"ht\",\"ht\",\"ha\",\"he\",\"hz\",\"hi\",\"ho\",\"hu\",\"is\",\"io\",\"ig\",\"id\",\"ia\",\"ie\",\"iu\",\"ik\",\"ga\",\r\n    \"it\",\"ja\",\"jv\",\"kl\",\"kn\",\"kr\",\"ks\",\"kk\",\"ki\",\"rw\",\"ky\",\"kv\",\"kg\",\"ko\",\"kj\",\"ku\",\"kj\",\"ky\",\"lo\",\"la\",\"lv\",\"lb\",\"li\",\"li\",\"li\",\"ln\",\"lt\",\"lu\",\"lb\",\"mk\",\"mg\",\"ms\",\"ml\",\"dv\",\"mt\",\"gv\",\"mi\",\"mr\",\"mh\",\"ro\",\"ro\",\"mn\",\"na\",\"nv\",\"nv\",\"nd\",\r\n    \"nr\",\"ng\",\"ne\",\"nd\",\"se\",\"no\",\"nb\",\"nn\",\"ii\",\"ny\",\"nn\",\"ie\",\"oc\",\"oj\",\"cu\",\"cu\",\"cu\",\"or\",\"om\",\"os\",\"os\",\"pi\",\"pa\",\"ps\",\"fa\",\"pl\",\"pt\",\"pa\",\"ps\",\"qu\",\"ro\",\"rm\",\"rn\",\"ru\",\"sm\",\"sg\",\"sa\",\"sc\",\"gd\",\"sr\",\"sn\",\"ii\",\"sd\",\"si\",\"si\",\"sk\",\r\n    \"sl\",\"so\",\"st\",\"nr\",\"es\",\"su\",\"sw\",\"ss\",\"sv\",\"tl\",\"ty\",\"tg\",\"ta\",\"tt\",\"te\",\"th\",\"bo\",\"ti\",\"to\",\"ts\",\"tn\",\"tr\",\"tk\",\"tw\",\"ug\",\"uk\",\"ur\",\"ug\",\"uz\",\"ca\",\"ve\",\"vi\",\"vo\",\"wa\",\"cy\",\"fy\",\"wo\",\"xh\",\"yi\",\"yo\",\"za\",\"zu\"];\r\n\r\nconst reOpenSync = /<sync/i;\r\n\r\nconst reCloseSync = /<sync|<\\/body|<\\/sami/i;\r\n\r\nconst reLineEnding = /\\r\\n?|\\n/g;\r\n\r\nconst reBrokenTag = /<[a-z]*[^>]*<[a-z]*/g;\r\n\r\nconst reStartTime = /<sync[^>]+?start[^=]*=[^0-9]*([0-9]*)[\"^0-9\"]*/i;\r\n\r\nconst reBr = /<br[^>]*>/ig;\r\n\r\nconst reStyle = /<style[^>]*>([\\s\\S]*?)<\\/style[^>]*>/i;\r\n\r\nconst reComment = /(<!--|-->)/g;\r\n\r\nconst clone = function(obj) {\r\n    var flags, key, newInstance;\r\n    if ((obj == null) || typeof obj !== 'object') {\r\n        return obj;\r\n    }\r\n    if (obj instanceof Date) {\r\n        return new Date(obj.getTime());\r\n    }\r\n    if (obj instanceof RegExp) {\r\n        flags = '';\r\n        if (obj.global != null) {\r\n            flags += 'g';\r\n        }\r\n        if (obj.ignoreCase != null) {\r\n            flags += 'i';\r\n        }\r\n        if (obj.multiline != null) {\r\n            flags += 'm';\r\n        }\r\n        if (obj.sticky != null) {\r\n            flags += 'y';\r\n        }\r\n        return new RegExp(obj.source, flags);\r\n    }\r\n    newInstance = new obj.constructor();\r\n    for (key in obj) {\r\n        newInstance[key] = clone(obj[key]);\r\n    }\r\n    return newInstance;\r\n};\r\n\r\nconst strip_tags = function (input, allowed) {\r\n    // http://kevin.vanzonneveld.net\r\n    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +   improved by: Luke Godfrey\r\n    // +      input by: Pul\r\n    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +   bugfixed by: Onno Marsman\r\n    // +      input by: Alex\r\n    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +      input by: Marc Palau\r\n    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +      input by: Brett Zamir (http://brett-zamir.me)\r\n    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +   bugfixed by: Eric Nagel\r\n    // +      input by: Bobby Drake\r\n    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +   bugfixed by: Tomasz Wesolowski\r\n    // +      input by: Evertjan Garretsen\r\n    // +    revised by: Rafał Kukawski (http://blog.kukawski.pl/)\r\n    // *     example 1: strip_tags('<p>Kevin</p> <br /><b>van</b> <i>Zonneveld</i>', '<i><b>');\r\n    // *     returns 1: 'Kevin <b>van</b> <i>Zonneveld</i>'\r\n    // *     example 2: strip_tags('<p>Kevin <img src=\"someimage.png\" onmouseover=\"someFunction()\">van <i>Zonneveld</i></p>', '<p>');\r\n    // *     returns 2: '<p>Kevin van Zonneveld</p>'\r\n    // *     example 3: strip_tags(\"<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>\", \"<a>\");\r\n    // *     returns 3: '<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>'\r\n    // *     example 4: strip_tags('1 < 5 5 > 1');\r\n    // *     returns 4: '1 < 5 5 > 1'\r\n    // *     example 5: strip_tags('1 <br/> 1');\r\n    // *     returns 5: '1  1'\r\n    // *     example 6: strip_tags('1 <br/> 1', '<br>');\r\n    // *     returns 6: '1  1'\r\n    // *     example 7: strip_tags('1 <br/> 1', '<br><br/>');\r\n    // *     returns 7: '1 <br/> 1'\r\n    allowed = (((allowed || \"\") + \"\").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)\r\n    var tags = /<\\/?([a-z][a-z0-9]*)\\b[^>]*>/gi,\r\n        commentsAndPhpTags = /<!--[\\s\\S]*?-->|<\\?(?:php)?[\\s\\S]*?\\?>/gi;\r\n    return input.replace(commentsAndPhpTags, '').replace(tags, function($0, $1) {\r\n        return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';\r\n    });\r\n};\r\n\r\nconst _sort = function(langItem) {\r\n    return langItem.sort(function(a, b) {\r\n        var res;\r\n        if ((res = a.start - b.start) === 0) {\r\n            return a.end - b.end;\r\n        } else {\r\n            return res;\r\n        }\r\n    });\r\n};\r\n\r\nconst _mergeMultiLanguages = function(arr) {\r\n    var content, dict, i, idx, key, lang, ret, val, _i, _len, _ref;\r\n    dict = {};\r\n    i = arr.length;\r\n    ret = [];\r\n    for (i = _i = 0, _len = arr.length; _i < _len; i = ++_i) {\r\n        val = arr[i];\r\n        key = val.startTime + ',' + val.endTime;\r\n        if ((idx = dict[key]) !== void 0) {\r\n            _ref = val.languages;\r\n            for (lang in _ref) {\r\n                content = _ref[lang];\r\n                ret[idx].languages[lang] = content;\r\n            }\r\n        } else {\r\n            ret.push(val);\r\n            dict[key] = ret.length - 1;\r\n        }\r\n    }\r\n    return ret;\r\n};\r\n\r\nconst SmiParser = function(sami, options) {\r\n    var definedLangs, duration, errors, getDefinedLangs, getLanguage, key, makeEndTime, parse, result, value, _ref, fixedLang;\r\n    parse = function() {\r\n        var element, error, innerText, isBroken, item, lang, langItem, lineNum, nextStartTagIdx, ret, startTagIdx, startTime, str, tempRet, _ref, _ref1, _ref2;\r\n        error = function(error) {\r\n            var e;\r\n            e = new Error(error);\r\n            e.line = lineNum;\r\n            e.context = element;\r\n            return errors.push(e);\r\n        };\r\n        lineNum = 1;\r\n        ret = [];\r\n        tempRet = {};\r\n        str = sami;\r\n        while (true) {\r\n            startTagIdx = str.search();\r\n            if (nextStartTagIdx <= 0 || startTagIdx < 0) {\r\n                break;\r\n            }\r\n            nextStartTagIdx = str.slice(startTagIdx + 1).search(reCloseSync) + 1;\r\n            if (nextStartTagIdx > 0) {\r\n                element = str.slice(startTagIdx, startTagIdx + nextStartTagIdx);\r\n            } else {\r\n                element = str.slice(startTagIdx);\r\n            }\r\n            lineNum += ((_ref = str.slice(0, startTagIdx).match(reLineEnding)) != null ? _ref.length : void 0) || 0;\r\n            if (isBroken = reBrokenTag.test(element)) {\r\n                error('ERROR_BROKEN_TAGS');\r\n            }\r\n            str = str.slice(startTagIdx + nextStartTagIdx);\r\n            startTime = +((_ref1 = element.match(reStartTime)) != null ? parseFloat(_ref1[1]/1000) : void 0);  //HSLEE ms -> s 로 변경\r\n            if (startTime === null || startTime < 0) {\r\n                error('ERROR_INVALID_TIME');\r\n            }\r\n\r\n            // We don't need complex language. cus SMI doens't obey the rules...\r\n            lang = getLanguage(element);\r\n            //lang = \"ko\";\r\n            if (!lang) {\r\n               // continue;\r\n                error('ERROR_INVALID_LANGUAGE');\r\n            }\r\n            lineNum += ((_ref2 = element.match(reLineEnding)) != null ? _ref2.length : void 0) || 0;\r\n            element = element.replace(reLineEnding, '');\r\n            element = element.replace(reBr, \"\\n\");\r\n            innerText = strip_tags(element).trim();\r\n\r\n            //HSLEE : 20180530 - 우린 랭기지 구분이 필요 없다. 있는거 그대로 보여줄뿐\r\n            item = {\r\n                start: startTime,\r\n                //languages: {},\r\n                text: \"\",\r\n                contents: innerText\r\n            };\r\n            if (lang) {\r\n                //item.languages[lang] = innerText;\r\n                item.text = innerText;\r\n            }\r\n            tempRet[lang] || (tempRet[lang] = []);\r\n            //tempRet[lang].push(item);\r\n            if(item.start){\r\n                tempRet[lang].push(item);\r\n            }\r\n\r\n        }\r\n\r\n        //fixed by hslee 190130\r\n        //SMI was designed for multi language. But global standard (my guess) SRT, VTT doesn't support multi language.\r\n        //This update is handling if SMI has multiple languages.\r\n        fixedLang = fixedLang || getBrowserLanguage();\r\n        let convertedLanguageNames = Object.keys(tempRet);\r\n\r\n        if(convertedLanguageNames && convertedLanguageNames.length > 0){\r\n            if(convertedLanguageNames.indexOf(fixedLang) > -1){\r\n                langItem = tempRet[fixedLang];\r\n            }else{\r\n                langItem = tempRet[convertedLanguageNames.filter(function(name){return name !== \"undefined\"})[0]];\r\n            }\r\n            langItem = _sort(langItem);\r\n            langItem = makeEndTime(langItem);\r\n            ret = ret.concat(langItem);\r\n        }\r\n\r\n        //ret = _mergeMultiLanguages(ret);\r\n        ret = _sort(ret);\r\n        return ret;\r\n    };\r\n    getLanguage = function(element) {\r\n        var className, lang;\r\n        if(!element){return ;}\r\n        for (className in definedLangs) {\r\n            lang = definedLangs[className];\r\n            if (lang.reClassName.test(element)) {\r\n                return lang.lang;\r\n            }\r\n        }\r\n    };\r\n    getDefinedLangs = function() {\r\n        var className, declaration, e, error, lang, matched, parsed, rule, selector, _i, _len, _ref, _ref1, _results;\r\n        try {\r\n            matched = ((_ref = sami.match(reStyle)) != null ? _ref[1] : void 0) || '';\r\n            matched = matched.replace(reComment, '');\r\n            parsed = cssParse(matched);\r\n            _ref1 = parsed.stylesheet.rules;\r\n            _results = [];\r\n            for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\r\n                rule = _ref1[_i];\r\n                selector = rule.selectors[0];\r\n                if ((selector != null ? selector[0] : void 0) === '.') {\r\n                    _results.push((function() {\r\n                        var _j, _len1, _ref2, _results1;\r\n                        _ref2 = rule.declarations;\r\n                        _results1 = [];\r\n                        for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {\r\n                            declaration = _ref2[_j];\r\n                            if (declaration.property.toLowerCase() === 'lang') {\r\n                                className = selector.slice(1);\r\n                                lang = declaration.value.slice(0, 2);\r\n                                if (~langCodes.indexOf(lang)) {\r\n                                    _results1.push(definedLangs[className] = {\r\n                                        lang: lang,\r\n                                        reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(\" + className + \")['\\\"\\S]?\", 'i')\r\n                                    });\r\n                                } else {\r\n                                    throw Error();\r\n                                }\r\n                            } else {\r\n                                _results1.push(void 0);\r\n                            }\r\n                        }\r\n                        return _results1;\r\n                    })());\r\n                } else {\r\n                    _results.push(void 0);\r\n                }\r\n            }\r\n            return _results;\r\n        } catch (_error) {\r\n            e = _error;\r\n            errors.push(error = new Error('ERROR_INVALID_LANGUAGE_DEFINITION'));\r\n        }\r\n    };\r\n    makeEndTime = function(langItem) {\r\n        var i, item, _ref;\r\n        i = langItem.length;\r\n        while (i--) {\r\n            item = langItem[i];\r\n            if ((_ref = langItem[i - 1]) != null) {\r\n                //HSLEE : 이왕이면 SRT 파서와 포맷을 맞추자\r\n                _ref.end = item.start;\r\n            }\r\n            if (!item.contents || item.contents === '&nbsp;') {\r\n                langItem.splice(i, 1);\r\n            } else {\r\n                delete langItem[i].contents;\r\n                if (!item.end) {\r\n                    item.end = item.start + duration;\r\n                }\r\n            }\r\n        }\r\n        return langItem;\r\n    };\r\n    errors = [];\r\n    definedLangs = {\r\n        KRCC: {\r\n            lang: 'ko',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(KRCC)['\\\"\\S]?\", 'i')\r\n        },\r\n        KOCC: {\r\n            lang: 'ko',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(KOCC)['\\\"\\S]?\", 'i')\r\n        },\r\n        KR: {\r\n            lang: 'ko',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(KR)['\\\"\\S]?\", 'i')\r\n        },\r\n        ENCC: {\r\n            lang: 'en',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(ENCC)['\\\"\\S]?\", 'i')\r\n        },\r\n        EGCC: {\r\n            lang: 'en',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(EGCC)['\\\"\\S]?\", 'i')\r\n        },\r\n        EN: {\r\n            lang: 'en',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(EN)['\\\"\\S]?\", 'i')\r\n        },\r\n        JPCC: {\r\n            lang: 'ja',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(JPCC)['\\\"\\S]?\", 'i')\r\n        }\r\n    };\r\n    if (options != null ? options.definedLangs : void 0) {\r\n        _ref = options.definedLangs;\r\n        for (key in _ref) {\r\n            value = _ref[key];\r\n            definedLangs[key] = value;\r\n        }\r\n    }\r\n    duration = (options != null ? options.duration : void 0) || 10; //HSLEE ms -> s 로 변경\r\n    fixedLang = options.fixedLang;\r\n    sami = sami.trim();\r\n    //getDefinedLangs();\r\n    result = parse();\r\n    return {\r\n        result: result,\r\n        errors: errors\r\n    };\r\n};\r\n\r\n\r\nexport default SmiParser;","/**\r\n * Created by hoho on 2018. 7. 4..\r\n */\r\nimport SrtParser from \"api/caption/parser/SrtParser\";\r\nimport WebVTT from 'api/caption/parser/VttParser'\r\nimport VTTCue from 'utils/captions/vttCue'\r\nimport SmiParser from 'api/caption/parser/SmiParser'\r\n\r\nconst Loader = function () {\r\n    const that = {};\r\n\r\n    const convertToVTTCues = function (cues) {\r\n        return cues.map(cue => new VTTCue(cue.start, cue.end, cue.text));\r\n    };\r\n\r\n    that.load = (track, language, successCallback, errorCallback) => {\r\n\r\n        fetch(track.file).then(function (response) {\r\n            if (response.ok) {\r\n\r\n                response.text().then(function (body) {\r\n                    let cues = [];\r\n                    let vttCues = [];\r\n\r\n                    if (body.indexOf('WEBVTT') >= 0) {\r\n                        OvenPlayerConsole.log(\"WEBVTT LOADED\");\r\n                        let parser = new WebVTT.Parser(window, WebVTT.StringDecoder());\r\n                        vttCues = [];\r\n                        parser.oncue = function (cue) {\r\n                            vttCues.push(cue);\r\n                        };\r\n                        parser.onflush = function () {\r\n                            //delete track.xhr;\r\n                            successCallback(vttCues);\r\n                        };\r\n                        // Parse calls onflush internally\r\n                        parser.parse(body);\r\n                    } else if (body.indexOf('SAMI') >= 0) {\r\n                        OvenPlayerConsole.log(\"SAMI LOADED\");\r\n                        let parsedData = SmiParser(body, {fixedLang: language});\r\n                        vttCues = convertToVTTCues(parsedData.result);\r\n                        successCallback(vttCues);\r\n\r\n                    } else {\r\n                        OvenPlayerConsole.log(\"SRT LOADED\");\r\n                        cues = SrtParser(body);\r\n                        vttCues = convertToVTTCues(cues);\r\n                        successCallback(vttCues);\r\n                    }\r\n                }).catch(function (e) {\r\n                    errorCallback(e);\r\n                });\r\n\r\n            } else {\r\n                errorCallback(response.status);\r\n            }\r\n        }).catch(function (e) {\r\n            errorCallback(e);\r\n        });\r\n\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default Loader;\r\n","// STATE\r\nexport const STATE_BUFFERING = \"buffering\";\r\nexport const STATE_IDLE = \"idle\";\r\nexport const STATE_COMPLETE = \"complete\";\r\nexport const STATE_PAUSED = \"paused\";\r\nexport const STATE_PLAYING = \"playing\";\r\nexport const STATE_ERROR = \"error\";\r\nexport const STATE_LOADING = \"loading\";\r\nexport const STATE_STALLED = \"stalled\";\r\n\r\nexport const STATE_AD_LOADING = \"adLoading\";\r\nexport const STATE_AD_LOADED = \"adLoaded\";\r\nexport const STATE_AD_PLAYING = \"adPlaying\";\r\nexport const STATE_AD_PAUSED = \"adPaused\";\r\nexport const STATE_AD_COMPLETE = \"adComplete\";\r\nexport const STATE_AD_ERROR = \"adError\";\r\nexport const PLAYER_AD_CLICK = \"adclick\";\r\n\r\n// PROVIDER\r\nexport const PROVIDER_HTML5 = \"html5\";\r\nexport const PROVIDER_WEBRTC = \"webrtc\";\r\nexport const PROVIDER_DASH = \"dash\";\r\nexport const PROVIDER_HLS = \"hls\";\r\nexport const PROVIDER_RTMP = \"rtmp\";\r\n\r\n// EVENTS\r\nexport const CONTENT_COMPLETE = STATE_COMPLETE;\r\nexport const READY = \"ready\";\r\nexport const DESTROY = \"destroy\";\r\nexport const CONTENT_SEEK = \"seek\";\r\nexport const CONTENT_BUFFER_FULL = \"bufferFull\";\r\nexport const DISPLAY_CLICK = \"displayClick\";\r\nexport const CONTENT_LOADED = \"loaded\";\r\nexport const PLAYLIST_CHANGED = \"playlistChanged\";\r\nexport const CONTENT_SEEKED = \"seeked\";\r\nexport const ALL_PLAYLIST_ENDED = \"allPlaylistEnded\";\r\nexport const NETWORK_UNSTABLED = \"unstableNetwork\";\r\nexport const HLS_PREPARED = \"hlsPrepared\";\r\nexport const HLS_DESTROYED = \"hlsDestroyed\";\r\nexport const DASH_PREPARED = \"dashPrepared\";\r\nexport const DASH_DESTROYED = \"dashDestroyed\";\r\nexport const PEER_CONNECTION_PREPARED = \"peerConnectionPrepared\";\r\nexport const PEER_CONNECTION_DESTROYED = \"peerConnectionDestroyed\";\r\n\r\n\r\n\r\nexport const ERROR = \"error\";\r\n\r\n// STATE OF PLAYER\r\nexport const PLAYER_STATE = \"stateChanged\";\r\nexport const PLAYER_COMPLETE = STATE_COMPLETE;\r\nexport const PLAYER_PAUSE = \"pause\";\r\nexport const PLAYER_PLAY = \"play\";\r\n\r\nexport const PLAYER_CLICKED = \"clicked\";\r\nexport const PLAYER_RESIZED = \"resized\";\r\nexport const PLAYER_LOADING = \"loading\";\r\nexport const PLAYER_FULLSCREEN_REQUEST = \"fullscreenRequested\";\r\nexport const PLAYER_FULLSCREEN_CHANGED = \"fullscreenChanged\";\r\nexport const PLAYER_WARNING = \"warning\";\r\n\r\nexport const AD_CHANGED = \"adChanged\";\r\nexport const AD_TIME = \"adTime\";\r\nexport const CONTENT_BUFFER = \"bufferChanged\";\r\nexport const CONTENT_TIME = \"time\";\r\nexport const CONTENT_RATE_CHANGE = \"ratechange\";\r\nexport const CONTENT_VOLUME = \"volumeChanged\";\r\nexport const CONTENT_MUTE = \"mute\";\r\nexport const CONTENT_META = \"metaChanged\";\r\nexport const CONTENT_SOURCE_CHANGED = \"sourceChanged\";\r\nexport const CONTENT_LEVEL_CHANGED = \"qualityLevelChanged\";\r\nexport const CONTENT_DURATION_CHANGED = \"durationChanged\";\r\nexport const PLAYBACK_RATE_CHANGED = \"playbackRateChanged\";\r\nexport const CONTENT_CAPTION_CUE_CHANGED = \"cueChanged\";\r\nexport const CONTENT_CAPTION_CHANGED = \"captionChanged\";\r\nexport const CONTENT_TIME_MODE_CHANGED = \"timeDisplayModeChanged\";\r\nexport const OME_P2P_MODE = \"p2pMode\";\r\nexport const AUDIO_TRACK_CHANGED = \"audioTrackChanged\";\r\n\r\n\r\nexport const AD_CLIENT_GOOGLEIMA = \"googleima\";\r\nexport const AD_CLIENT_VAST = \"vast\";\r\n\r\n\r\nexport const INIT_UNKNWON_ERROR = 100;\r\nexport const INIT_UNSUPPORT_ERROR = 101;\r\nexport const INIT_RTMP_SETUP_ERROR = 102;\r\nexport const INIT_DASH_UNSUPPORT = 103;\r\nexport const INIT_ADS_ERROR = 104;\r\nexport const INIT_DASH_FAIL = 105;\r\nexport const INIT_HLSJS_FAIL = 106;\r\nexport const PLAYER_UNKNWON_ERROR = 300;\r\nexport const PLAYER_UNKNWON_OPERATION_ERROR = 301;\r\nexport const PLAYER_UNKNWON_NETWORK_ERROR = 302;\r\nexport const PLAYER_UNKNWON_DECODE_ERROR = 303;\r\nexport const PLAYER_FILE_ERROR = 304;\r\nexport const PLAYER_CAPTION_ERROR = 305;\r\nexport const PLAYER_BAD_REQUEST_ERROR = 306;\r\nexport const PLAYER_AUTH_FAILED_ERROR = 307;\r\nexport const PLAYER_NOT_ACCEPTABLE_ERROR = 308;\r\nexport const PLAYER_WEBRTC_WS_ERROR = 501;\r\nexport const PLAYER_WEBRTC_ADD_ICECANDIDATE_ERROR = 502;\r\nexport const PLAYER_WEBRTC_SET_REMOTE_DESC_ERROR = 503;\r\nexport const PLAYER_WEBRTC_CREATE_ANSWER_ERROR = 504;\r\nexport const PLAYER_WEBRTC_SET_LOCAL_DESC_ERROR = 505;\r\nexport const PLAYER_WEBRTC_INTERNAL_ERROR = 506;\r\nexport const PLAYER_WEBRTC_NETWORK_SLOW = 510;\r\nexport const PLAYER_WEBRTC_UNEXPECTED_DISCONNECT = 511;\r\nexport const PLAYER_WEBRTC_TIMEOUT = 512;\r\n\r\nexport const WARN_MSG_MUTEDPLAY = \"Please touch here to turn on the sound.\";\r\n\r\n\r\nexport const UI_ICONS = {\r\n    volume_mute : \"volume-mute\",\r\n    op_warning : \"op-warning\"\r\n};\r\n\r\n\r\nexport const ERRORS = {codes : \"\"};\r\n\r\n\r\nexport const SYSTEM_TEXT = [\r\n    {\r\n        \"lang\" : \"en\",\r\n        \"ui\" : {\r\n            \"context\" : \"About OvenPlayer\",\r\n            \"controls\" : {\r\n                \"live\" : \"Live Streaming\",\r\n                \"low_latency_live\" : \"Sub-Second Latency Streaming\",\r\n                \"low_latency_p2p\" : \"Sub-Second Latency P2P\",\r\n            },\r\n            \"playlist\" : \"Playlist\",\r\n            \"setting\" : {\r\n                \"title\" : \"Settings\",\r\n                \"speed\" : \"Speed\",\r\n                \"speedUnit\" : \"x\",\r\n                \"source\" : \"Source\",\r\n                \"quality\" : \"Quality\",\r\n                \"audioTrack\" : \"Audio\",\r\n                \"caption\" : \"Caption\",\r\n                \"display\" : \"Display\"\r\n            }\r\n        },\r\n        \"api\" : {\r\n            \"message\" : {\r\n                \"muted_play\" : \"Please touch here to turn on the sound.\"\r\n            },\r\n            \"error\": {\r\n                100: {\r\n                    \"code\": 100,\r\n                    \"message\": \"Can not load due to unknown reasons.\",\r\n                    \"reason\": \"Can not load due to unknown reasons.\"\r\n                },\r\n                101: {\r\n                    \"code\": 101,\r\n                    \"message\": \"Can not load due to playable media not found.\",\r\n                    \"reason\": \"Can not load due to playable media not found.\"\r\n                },\r\n                102: {\r\n                    \"code\": 102,\r\n                    \"message\": \"Flash fetching process aborted. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>\",\r\n                    \"reason\": \"It looks like not found swf or your environment is localhost.\"\r\n                },\r\n                103: {\r\n                    \"code\": 103,\r\n                    \"message\": \"Can not load due to dash.js. Please use the latest dash.js.\",\r\n                    \"reason\": \"dash.js version is old.\"\r\n                },\r\n                104: {\r\n                    \"code\": 104,\r\n                    \"message\": \"Can not load due to google ima for Ads. \",\r\n                    \"reason\": \"Please check the google ima library.\"\r\n                },\r\n                105: {\r\n                    \"code\": 105,\r\n                    \"message\": \"Error initializing DASH.\",\r\n                    \"reason\": \"Error initializing DASH.\"\r\n                },\r\n                106: {\r\n                    \"code\": 106,\r\n                    \"message\": \"Error initializing HLS.\",\r\n                    \"reason\": \"Error initializing HLS.\"\r\n                },\r\n                300: {\r\n                    \"code\": 300,\r\n                    \"message\": \"Can not play due to unknown reasons.\",\r\n                    \"reason\": \"Can not play due to unknown reasons.\"\r\n                },\r\n                301: {\r\n                    \"code\": 301,\r\n                    \"message\": \"Fetching process aborted by user.\",\r\n                    \"reason\": \"Fetching process aborted by user.\"\r\n                },\r\n                302: {\r\n                    \"code\": 302,\r\n                    \"message\": \"Some of the media could not be downloaded due to a network error.\",\r\n                    \"reason\": \"Error occurred when downloading.\"\r\n                },\r\n                303: {\r\n                    \"code\": 303,\r\n                    \"message\": \"Unable to load media. This may be due to a server or network error, or due to an unsupported format.\",\r\n                    \"reason\": \"Error occurred when decoding.\"\r\n                },\r\n                304: {\r\n                    \"code\": 304,\r\n                    \"message\": \"Media playback has been canceled. It looks like your media is corrupted or your browser does not support the features your media uses.\",\r\n                    \"reason\": \"Media playback not supported.\"\r\n                },\r\n                305: {\r\n                    \"code\": 305,\r\n                    \"message\": \"Can not load captions due to unknown reasons.\",\r\n                    \"reason\": \"Can not load captions due to unknown reasons.\"\r\n                },\r\n                306: {\r\n                    \"code\": 306,\r\n                    \"message\": \"Unable to load media. This may be due to a server or network error, or due to an unsupported format.\",\r\n                    \"reason\": \"The server cannot or will not process the request.\"\r\n                },\r\n                307: {\r\n                    \"code\": 307,\r\n                    \"message\": \"Unable to load media. This may be due to a server or network error, or due to an unsupported format.\",\r\n                    \"reason\": \"The server refused the request.\"\r\n                },\r\n                308: {\r\n                    \"code\": 308,\r\n                    \"message\": \"Unable to load media. This may be due to a server or network error, or due to an unsupported format.\",\r\n                    \"reason\": \"The server do not accept the request.\"\r\n                },\r\n                501: {\r\n                    \"code\": 501,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebSocket connection failed.\"\r\n                },\r\n                502: {\r\n                    \"code\": 502,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebRTC addIceCandidate failed.\"\r\n                },\r\n                503: {\r\n                    \"code\": 503,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebRTC setRemoteDescription failed.\"\r\n                },\r\n                504: {\r\n                    \"code\": 504,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebRTC peer createOffer failed.\"\r\n                },\r\n                505: {\r\n                    \"code\": 505,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebRTC setLocalDescription failed.\"\r\n                },\r\n                506: {\r\n                    \"code\": 506,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebRTC internal error.\"\r\n                },\r\n                510: {\r\n                    \"code\": 510,\r\n                    \"message\": \"Network connection is unstable. Check the network connection.\",\r\n                    \"reason\": \"Network is slow.\"\r\n                },\r\n                511: {\r\n                    \"code\": 511,\r\n                    \"message\": \"Connection with low-latency(OME) terminated unexpectedly.\",\r\n                    \"reason\": \"Unexpected end of connection.\"\r\n                },\r\n                512: {\r\n                    \"code\": 512,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"Connection timeout.\"\r\n                }\r\n            }\r\n        }\r\n    },\r\n    {\r\n        \"lang\" : \"ko\",\r\n        \"ui\" : {\r\n            \"context\" : \"오븐플레이어에 관하여\",\r\n            \"controls\" : {\r\n                \"live\" : \"라이브\",\r\n                \"low_latency_live\" : \"초저지연 라이브\",\r\n                \"low_latency_p2p\" : \"초저지연 P2P\",\r\n            },\r\n            \"playlist\" : \"플레이리스트\",\r\n            \"setting\" : {\r\n                \"title\" : \"설정\",\r\n                \"speed\" : \"재생 속도\",\r\n                \"speedUnit\" : \"x\",\r\n                \"source\" : \"소스\",\r\n                \"quality\" : \"품질\",\r\n                \"audioTrack\" : \"오디오\",\r\n                \"caption\" : \"자막\",\r\n                \"display\" : \"표시\"\r\n            }\r\n        },\r\n        \"api\" : {\r\n            \"message\" : {\r\n                \"muted_play\" : \"눌러서 소리 켜기\"\r\n            },\r\n            \"error\": {\r\n                100: {\r\n                    \"code\": 100,\r\n                    \"message\": \"알 수 없는 이유로 로드 할 수 없습니다.\",\r\n                    \"reason\": \"알 수 없는 이유로 로드 할 수 없습니다.\"\r\n                },\r\n                101: {\r\n                    \"code\": 101,\r\n                    \"message\": \"지원되는 미디어를 찾지 못해 로드 할 수 없습니다.\",\r\n                    \"reason\": \"Can not load due to playable media not found.\"\r\n                },\r\n                102: {\r\n                    \"code\": 102,\r\n                    \"message\": \"플레시 로드가 중단 되었습니다. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>\",\r\n                    \"reason\": \"It looks like not found swf or your environment is localhost.\"\r\n                },\r\n                103: {\r\n                    \"code\": 103,\r\n                    \"message\": \"DashJS로 인해 로드 할 수 없습니다. 최신 dash.js를 사용해 주세요.\",\r\n                    \"reason\": \"dash.js version is old.\"\r\n                },\r\n                104: {\r\n                    \"code\": 104,\r\n                    \"message\": \"Google IMA 라이브러리가 없어 로드 할 수 없습니다.\",\r\n                    \"reason\": \"Please check the google ima library.\"\r\n                },\r\n                105: {\r\n                    \"code\": 105,\r\n                    \"message\": \"DASH 초기화 중 오류가 발생했습니다.\",\r\n                    \"reason\": \"Error initializing DASH.\"\r\n                },\r\n                106: {\r\n                    \"code\": 106,\r\n                    \"message\": \"HLS 초기화 중 오류가 발생했습니다.\",\r\n                    \"reason\": \"Error initializing HLS.\"\r\n                },\r\n                300: {\r\n                    \"code\": 300,\r\n                    \"message\": \"알 수 없는 이유로 재생할 수 없습니다.\",\r\n                    \"reason\": \"Can not play due to unknown reasons.\"\r\n                },\r\n                301: {\r\n                    \"code\": 301,\r\n                    \"message\": \"사용자에 의한 프로세스 중단.\",\r\n                    \"reason\": \"Fetching process aborted by user.\"\r\n                },\r\n                302: {\r\n                    \"code\": 302,\r\n                    \"message\": \"네트워크 오류로 인해 일부 미디어를 다운로드 할 수 없습니다.\",\r\n                    \"reason\": \"Error occurred when downloading.\"\r\n                },\r\n                303: {\r\n                    \"code\": 303,\r\n                    \"message\": \"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.\",\r\n                    \"reason\": \"Error occurred when decoding.\"\r\n                },\r\n                304: {\r\n                    \"code\": 304,\r\n                    \"message\": \"미디어 재생이 취소되었습니다. 미디어가 손상되었거나 브라우저가 미디어에서 사용하는 기능을 지원하지 않는 것 같습니다.\",\r\n                    \"reason\": \"Media playback not supported.\"\r\n                },\r\n                305: {\r\n                    \"code\": 305,\r\n                    \"message\": \"알 수 없는 이유로 자막을 로드 할 수 없습니다.\",\r\n                    \"reason\": \"Can not load captions due to unknown reasons.\"\r\n                },\r\n                306: {\r\n                    \"code\": 306,\r\n                    \"message\": \"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.\",\r\n                    \"reason\": \"The server cannot or will not process the request.\"\r\n                },\r\n                307: {\r\n                    \"code\": 307,\r\n                    \"message\": \"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.\",\r\n                    \"reason\": \"The server refused the request.\"\r\n                },\r\n                308: {\r\n                    \"code\": 308,\r\n                    \"message\": \"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.\",\r\n                    \"reason\": \"The server do not accept the request.\"\r\n                },\r\n                501: {\r\n                    \"code\": 501,\r\n                    \"message\": \"웹소켓 연결 실패\",\r\n                    \"reason\": \"WebSocket connection failed.\"\r\n                },\r\n                502: {\r\n                    \"code\": 502,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"WebRTC addIceCandidate failed.\"\r\n                },\r\n                503: {\r\n                    \"code\": 503,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"WebRTC setRemoteDescription failed.\"\r\n                },\r\n                504: {\r\n                    \"code\": 504,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"WebRTC peer createOffer failed.\"\r\n                },\r\n                505: {\r\n                    \"code\": 505,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"WebRTC setLocalDescription failed.\"\r\n                },\r\n                506: {\r\n                    \"code\": 506,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"WebRTC internal error.\"\r\n                },\r\n                510: {\r\n                    \"code\": 510,\r\n                    \"message\": \"네트워크 연결이 불안정합니다. 네트워크 연결을 확인하십시오.\",\r\n                    \"reason\": \"Network is slow.\"\r\n                },\r\n                511: {\r\n                    \"code\": 511,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"Unexpected end of connection.\"\r\n                },\r\n                512: {\r\n                    \"code\": 512,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"Connection timeout.\"\r\n                }\r\n            }\r\n        }\r\n    },\r\n    {\r\n        \"lang\" : \"pl\",\r\n        \"ui\" : {\r\n            \"context\" : \"O OvenPlayer\",\r\n            \"controls\" : {\r\n                \"live\" : \"Transmisja na żywo\",\r\n                \"low_latency_live\" : \"Transmisja z niskim opóźnieniem\",\r\n                \"low_latency_p2p\" : \"Transmisja z niskim opóźnieniem P2P\",\r\n            },\r\n            \"playlist\" : \"Playlista\",\r\n            \"setting\" : {\r\n                \"title\" : \"Ustawienia\",\r\n                \"speed\" : \"Prędkość\",\r\n                \"speedUnit\" : \"x\",\r\n                \"source\" : \"Źrodło\",\r\n                \"quality\" : \"Jakość\",\r\n                \"audioTrack\" : \"Audio\",\r\n                \"caption\" : \"Podtytuł\",\r\n                \"display\" : \"Wyświetlacz\"\r\n            }\r\n        },\r\n        \"api\" : {\r\n            \"message\" : {\r\n                \"muted_play\" : \"Naciśnij tutaj, aby aktywować dźwięk\"\r\n            },\r\n            \"error\": {\r\n                100: {\r\n                    \"code\": 100,\r\n                    \"message\": \"Nie można załadować z nieznanego powodu.\",\r\n                    \"reason\": \"Can not load due to unknown reasons.\"\r\n                },\r\n                101: {\r\n                    \"code\": 101,\r\n                    \"message\": \"Nie można załadować, ponieważ nie znaleziono multimediów, który można odtworzyć.\",\r\n                    \"reason\": \"Can not load due to playable media not found.\"\r\n                },\r\n                102: {\r\n                    \"code\": 102,\r\n                    \"message\": \"Flash fetching process aborted. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>\",\r\n                    \"reason\": \"It looks like not found swf or your environment is localhost.\"\r\n                },\r\n                103: {\r\n                    \"code\": 103,\r\n                    \"message\": \"Nie można załadować, ponieważ wersja dash.js jest za stara.\",\r\n                    \"reason\": \"dash.js version is old.\"\r\n                },\r\n                104: {\r\n                    \"code\": 104,\r\n                    \"message\": \"Can not load due to google ima for Ads. \",\r\n                    \"reason\": \"Please check the google ima library.\"\r\n                },\r\n                105: {\r\n                    \"code\": 105,\r\n                    \"message\": \"Nie można załadować, nie znaleziono DASH.\",\r\n                    \"reason\": \"Error initializing DASH.\"\r\n                },\r\n                106: {\r\n                    \"code\": 106,\r\n                    \"message\": \"Nie można załadować, nie znaleziono hlsjs.\",\r\n                    \"reason\": \"Error initializing HLS\"\r\n                },\r\n                300: {\r\n                    \"code\": 300,\r\n                    \"message\": \"Nie można odtworzyć z nieznanego powodu.\",\r\n                    \"reason\": \"Can not play due to unknown reasons.\"\r\n                },\r\n                301: {\r\n                    \"code\": 301,\r\n                    \"message\": \"Proces pobierania przerwany przez użytkownika.\",\r\n                    \"reason\": \"Fetching process aborted by user.\"\r\n                },\r\n                302: {\r\n                    \"code\": 302,\r\n                    \"message\": \"Nie udało się pobrać niektórych multimediów z powodu błędu sieci.\",\r\n                    \"reason\": \"Error occurred when downloading.\"\r\n                },\r\n                303: {\r\n                    \"code\": 303,\r\n                    \"message\": \"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.\",\r\n                    \"reason\": \"Error occurred when decoding.\"\r\n                },\r\n                304: {\r\n                    \"code\": 304,\r\n                    \"message\": \"Odtwarzanie zostało anulowane. Wygląda na to, że plik jest uszkodzony lub Twoja przeglądarka nie obsługuje tego pliku.\",\r\n                    \"reason\": \"Media playback not supported.\"\r\n                },\r\n                305: {\r\n                    \"code\": 305,\r\n                    \"message\": \"Nie można wczytać napisów z nieznanego powodu.\",\r\n                    \"reason\": \"Can not load captions due to unknown reasons.\"\r\n                },\r\n                306: {\r\n                    \"code\": 306,\r\n                    \"message\": \"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.\",\r\n                    \"reason\": \"The server cannot or will not process the request.\"\r\n                },\r\n                307: {\r\n                    \"code\": 307,\r\n                    \"message\": \"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.\",\r\n                    \"reason\": \"The server refused the request.\"\r\n                },\r\n                308: {\r\n                    \"code\": 308,\r\n                    \"message\": \"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.\",\r\n                    \"reason\": \"The server do not accept the request.\"\r\n                },\r\n                501: {\r\n                    \"code\": 501,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebSocket connection failed.\"\r\n                },\r\n                502: {\r\n                    \"code\": 502,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebRTC addIceCandidate failed.\"\r\n                },\r\n                503: {\r\n                    \"code\": 503,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebRTC setRemoteDescription failed.\"\r\n                },\r\n                504: {\r\n                    \"code\": 504,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebRTC peer createOffer failed.\"\r\n                },\r\n                505: {\r\n                    \"code\": 505,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebRTC setLocalDescription failed.\"\r\n                },\r\n                506: {\r\n                    \"code\": 506,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebRTC internal error.\"\r\n                },\r\n                510: {\r\n                    \"code\": 510,\r\n                    \"message\": \"Połączenie sieciowe jest niestabilne. Sprawdź swoją sieć.\",\r\n                    \"reason\": \"Network is slow.\"\r\n                },\r\n                511: {\r\n                    \"code\": 511,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nieoczekiwanie zakończone.\",\r\n                    \"reason\": \"Unexpected end of connection.\"\r\n                },\r\n                512: {\r\n                    \"code\": 512,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"Connection timeout.\"\r\n                }\r\n            }\r\n        }\r\n    }\r\n];\r\n","/**\r\n * Created by hoho on 2018. 5. 17..\r\n */\r\nimport CaptionLoader from 'api/caption/Loader';\r\nimport {READY, ERRORS, ERROR, PLAYER_CAPTION_ERROR, CONTENT_META, CONTENT_TIME, CONTENT_CAPTION_CUE_CHANGED, CONTENT_CAPTION_CHANGED} from \"api/constants\";\r\nimport _ from \"utils/underscore\";\r\n\r\nconst isSupport = function(kind){\r\n    return kind === 'subtitles' || kind === 'captions';\r\n};\r\n\r\nconst Manager = function(api, playlistIndex){\r\n\r\n    const that = {};\r\n    let captionList = [];\r\n    let currentCaptionIndex = -1;\r\n\r\n    let captionLoader = CaptionLoader();\r\n    let isFisrtLoad = true;\r\n    let isShowing = false;\r\n\r\n    OvenPlayerConsole.log(\"Caption Manager >> \", playlistIndex);\r\n\r\n\r\n    let bindTrack = function(track, vttCues){\r\n        track.data = vttCues || [];\r\n        track.name = track.label || track.name || track.language;\r\n        track.id = (function(track, tracksCount) {\r\n            var trackId;\r\n            var prefix = track.kind || 'cc';\r\n            if (track.default || track.defaulttrack) {\r\n                trackId = 'default';\r\n\r\n            } else {\r\n                trackId = track.id || (prefix + tracksCount);\r\n            }\r\n            if(isFisrtLoad){\r\n                //This execute only on. and then use flushCaptionList(lastCaptionIndex);\r\n                changeCurrentCaption(captionList.length||0);\r\n                isFisrtLoad = false;\r\n\r\n            }\r\n            return trackId;\r\n        })(track, captionList.length);\r\n\r\n        captionList.push(track);\r\n        return track.id;\r\n    };\r\n    let changeCurrentCaption = function(index){\r\n        currentCaptionIndex = index;\r\n        api.trigger(CONTENT_CAPTION_CHANGED, currentCaptionIndex);\r\n    };\r\n    if(api.getConfig().playlist && api.getConfig().playlist.length > 0){\r\n        let playlist = api.getConfig().playlist[playlistIndex];\r\n\r\n        if(playlist && playlist.tracks && playlist.tracks.length > 0){\r\n            for(let i = 0; i < playlist.tracks.length; i ++){\r\n                const track = playlist.tracks[i];\r\n\r\n                if(isSupport(track.kind) && ! _.findWhere(track, {file : track.file})){\r\n                    //that.flushCaptionList(currentCaptionIndex);\r\n\r\n                    captionLoader.load(track, track.lang, function(vttCues){\r\n                        if(vttCues && vttCues.length > 0){\r\n                            let captionId = bindTrack(track, vttCues);\r\n                        }\r\n                    }, function(error){\r\n                        let tempError = ERRORS.codes[PLAYER_CAPTION_ERROR];\r\n                        tempError.error = error;\r\n                        api.trigger(ERROR, tempError);\r\n                    });\r\n                }\r\n            }\r\n\r\n        }\r\n    }\r\n\r\n    api.on(CONTENT_TIME, function(meta){\r\n        let position = meta.position;\r\n        if(currentCaptionIndex > -1 && captionList[currentCaptionIndex]){\r\n            let currentCues = _.filter(captionList[currentCaptionIndex].data, function (cue) {\r\n                return position >= (cue.startTime) && ( (!cue.endTime || position) <= cue.endTime);\r\n            });\r\n            if(currentCues && currentCues.length > 0){\r\n                api.trigger(CONTENT_CAPTION_CUE_CHANGED, currentCues[0]);\r\n            }\r\n        }\r\n\r\n    });\r\n    that.flushCaptionList = (lastCaptionIndex) =>{\r\n        captionList = [];\r\n        changeCurrentCaption(lastCaptionIndex);\r\n        //currentCaptionIndex = lastCaptionIndex;\r\n    };\r\n    that.getCaptionList = () =>{\r\n        return captionList||[];\r\n    };\r\n    that.getCurrentCaption = () =>{\r\n        return currentCaptionIndex;\r\n    };\r\n    that.setCurrentCaption = (_index) =>{\r\n        if(_index > -2 && _index < captionList.length){\r\n            changeCurrentCaption(_index);\r\n        }else{\r\n            return null;\r\n        }\r\n    };\r\n    that.addCaption = (track) =>{\r\n        if(isSupport(track.kind) && ! _.findWhere(captionLoader, {file : track.file})){\r\n            captionLoader.load(track, function(vttCues){\r\n                if(vttCues && vttCues.length > 0){\r\n                    bindTrack(track, vttCues);\r\n                }\r\n            }, function(error){\r\n                let tempError = errors[PLAYER_CAPTION_ERROR];\r\n                tempError.error = error;\r\n                api.trigger(ERROR, tempError);\r\n            });\r\n        }\r\n    };\r\n    that.removeCaption = (index) => {\r\n        if(index > -1 && index < captionList.length){\r\n            captionList.splice(index, 1);\r\n            return captionList;\r\n        }else{\r\n            return null;\r\n        }\r\n    };\r\n    that.destroy = () => {\r\n        captionList = [];\r\n        captionLoader = null;\r\n        api.off(CONTENT_TIME, null, that);\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\n\r\n\r\n\r\nexport default Manager;\r\n","/**\r\n * Created by hoho on 2018. 7. 3..\r\n */\r\n\r\n/**\r\n * @brief   This module provide custom events.\r\n * @param   object    An object that requires custom events.\r\n *\r\n * */\r\n\r\nconst EventEmitter = function(object){\r\n    let that = object;\r\n    let _events =[];\r\n\r\n    const triggerEvents = function(events, args, context){\r\n        let i = 0;\r\n        let length = events.length;\r\n        for(i = 0; i < length; i ++){\r\n            let event = events[i];\r\n            event.listener.apply( ( event.context || context ), args);\r\n        }\r\n    };\r\n\r\n    that.on = function(name, listener, context){\r\n        (_events[name] || (_events[name]=[]) ).push({ listener: listener  , context : context});\r\n        return that;\r\n    };\r\n    that.trigger = function(name){\r\n        if(!_events){\r\n            return false;\r\n        }\r\n        const args = [].slice.call(arguments, 1);\r\n        const events = _events[name];\r\n        const allEvents = _events.all;\r\n\r\n        if(events){\r\n            triggerEvents(events, args, that);\r\n        }\r\n        if(allEvents){\r\n            triggerEvents(allEvents, arguments, that);\r\n        }\r\n    };\r\n    that.off = function(name, listener, context){\r\n        if(!_events){\r\n            return false;\r\n        }\r\n\r\n        if (!name && !listener && !context)  {\r\n            _events = [];\r\n            return that;\r\n        }\r\n\r\n        const names = name ? [name] : Object.keys(_events);\r\n\r\n        for (let i = 0, l = names.length; i < l; i++) {\r\n            name = names[i];\r\n            const events = _events[name];\r\n            if (events) {\r\n                const retain = _events[name] = [];\r\n                if (listener  || context) {\r\n                    for (let j = 0, k = events.length; j < k; j++) {\r\n                        const event = events[j];\r\n                        if ((listener && listener !== event.listener && listener !== event.listener.listener  && listener !== event.listener._listener)\r\n                            ||(context && context !== event.context)\r\n                        ) {\r\n                            retain.push(event);\r\n                        }\r\n                    }\r\n                }\r\n                if (!retain.length) {\r\n                    delete _events[name];\r\n                }\r\n            }\r\n        }\r\n        return that;\r\n    };\r\n    that.once = function(name, listener, context){\r\n        let count = 0;\r\n        const onceCallback = function() {\r\n            if (count++) {\r\n                return;\r\n            }\r\n            that.off(name, onceCallback);\r\n            listener.apply(that, arguments);\r\n        };\r\n        onceCallback._listener = listener;\r\n        return that.on(name, onceCallback, context);\r\n    };\r\n\r\n    return that;\r\n}\r\n\r\nexport default EventEmitter;\r\n","/**\r\n * Created by hoho on 2018. 7. 23..\r\n */\r\nimport _ from \"utils/underscore\";\r\nimport dom from 'utils/polyfills/dom.js';\r\n\r\n/**\r\n * @brief   It was replace jquery's selector. It Often used by OvenTemplate. (/view/engine/OvenTemplate.js)\r\n * @param   selectorOrElement  string or element\r\n *\r\n * */\r\n\r\n\r\nconst La$ = function(selectorOrElement){\r\n    const that = {};\r\n\r\n    let $element = null;\r\n\r\n    const returnNode = function($element , selector){\r\n        let nodeList =  $element.querySelectorAll(selector);\r\n        if(nodeList.length > 1){\r\n            return nodeList;\r\n        }else{\r\n            return nodeList[0];\r\n        }\r\n\r\n    };\r\n\r\n    if( _.isElement(selectorOrElement) || _.every(selectorOrElement, function(item){return _.isElement(item)})){\r\n        $element = selectorOrElement;\r\n    }else if(selectorOrElement === \"document\"){\r\n        $element = document;\r\n    }else if(selectorOrElement === \"window\"){\r\n        $element = window;\r\n    }else{\r\n        $element = returnNode(document, selectorOrElement);\r\n    }\r\n\r\n\r\n    if(!$element){\r\n        return null;\r\n    }\r\n\r\n    /*EFFECTS*/\r\n\r\n    that.show = () =>{\r\n        $element.style.display = 'block';\r\n    };\r\n\r\n    that.hide = () =>{\r\n        $element.style.display = 'none';\r\n    };\r\n\r\n    /*ELEMENTS*/\r\n\r\n    that.addClass = (name) =>{\r\n        if($element.classList){\r\n            $element.classList.add(name);\r\n        }else{\r\n            let classNames = $element.className.split(\" \");\r\n            if(classNames.indexOf(name) === -1){\r\n                $element.className += \" \" + name;\r\n            }\r\n        }\r\n    };\r\n\r\n    that.after = (htmlString) => {\r\n        $element.insertAdjacentHTML('afterend', htmlString);\r\n    };\r\n\r\n    that.append = (htmlString) => {\r\n        $element.appendChild(htmlString);\r\n    };\r\n\r\n    that.before = (htmlString) => {\r\n        $element.insertAdjacentHTML('beforebegin', htmlString);\r\n    };\r\n\r\n    that.children = () => {\r\n        return $element.children || [];\r\n    };\r\n\r\n    //The contains() method returns a Boolean value indicating whether a node is a descendant of a specified node.\r\n    //A descendant can be a child, grandchild, great-grandchild, and so on.\r\n    that.contains = (elChild) => {\r\n        return $element !== elChild && $element.contains(elChild);\r\n    };\r\n\r\n    that.empty = () => {\r\n        $element.innerHTML = \"\";\r\n    };\r\n\r\n\r\n    that.find = (selector) =>{\r\n        return La$(returnNode($element, selector));\r\n    };\r\n\r\n    that.css = (name, value) => {\r\n        if(value){\r\n            if($element.length > 0){\r\n                $element.forEach(function(element){\r\n                    element.style[name] = value;\r\n                })\r\n            }else{\r\n                $element.style[name] = value;\r\n            }\r\n        }else{\r\n            return $element.style[name];\r\n        }\r\n\r\n    };\r\n\r\n\r\n\r\n    that.removeClass = (name) =>{\r\n        if ($element.classList){\r\n            $element.classList.remove(name);\r\n        }else{\r\n            $element.className = $element.className.replace(new RegExp('(^|\\\\b)' + name.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\r\n\r\n        }\r\n    };\r\n\r\n    that.removeAttribute = (attrName) => {\r\n        $element.removeAttribute(attrName);\r\n    };\r\n\r\n\r\n\r\n    /*that.append = (htmlCode) =>{\r\n        $element.innerHTML += htmlCode;\r\n    };*/\r\n\r\n    that.text = (text) => { //IE8+\r\n        if(text === undefined){\r\n            return $element.textContent;\r\n        }else{\r\n            $element.textContent = text;\r\n        }\r\n    };\r\n    that.html = (htmlString) => {\r\n        $element.innerHTML = htmlString;\r\n    };\r\n    that.hasClass = (name) => { //IE8+\r\n        if($element.classList){\r\n            return $element.classList.contains(name);\r\n        }else{\r\n            return new RegExp('(^| )' + name + '( |$)', 'gi').test($element.name);\r\n        }\r\n    };\r\n\r\n    that.is = ($targetElement) => {\r\n        /*var matches = function(el, selector) {\r\n            return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector);\r\n        };\r\n\r\n        matches(el, '.my-class');*/\r\n        return $element === $targetElement;\r\n    };\r\n\r\n    that.offset = () =>{    //IE8+\r\n        const rect = $element.getBoundingClientRect();\r\n\r\n        return {\r\n            top: rect.top + document.body.scrollTop,\r\n            left: rect.left + document.body.scrollLeft\r\n        }\r\n    };\r\n\r\n    that.width = () => {    //IE8+\r\n        return $element.clientWidth;\r\n    };\r\n\r\n    that.height = () => {   //IE8+\r\n        return $element.clientHeight;\r\n    };\r\n\r\n    that.attr = (attr) => {\r\n        return $element.getAttribute(attr);\r\n    };\r\n\r\n    that.replace = (html) => {\r\n        $element.replaceWith(html);\r\n    };\r\n\r\n\r\n    that.remove = () => {\r\n        if($element.length > 1){\r\n            $element.parentElement.removeChild($element);\r\n        }else{\r\n            $element.remove();\r\n        }\r\n\r\n    };\r\n\r\n    that.removeChild = (element) => {\r\n        if(element){\r\n            $element.removeChild(element);\r\n        }else{\r\n            while ($element.hasChildNodes()) {\r\n                $element.removeChild($element.firstChild);\r\n            }\r\n        }\r\n\r\n    };\r\n\r\n    that.get = () => {\r\n        return $element;\r\n    };\r\n\r\n    that.closest = (selectorString) => {\r\n\r\n        $element.closest = function (s) {\r\n\r\n            let el = $element;\r\n\r\n            do {\r\n\r\n                if (el.matches(s)) {\r\n                    return el;\r\n                }\r\n\r\n                el = el.parentElement || el.parentNode;\r\n\r\n            } while (el !== null && el.nodeType === 1);\r\n\r\n            return null;\r\n        };\r\n\r\n        let closestElement = $element.closest(selectorString);\r\n\r\n        if(closestElement){\r\n            return La$(closestElement);\r\n        }else{\r\n            return null;\r\n        }\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default La$;\r\n","import {extractExtension} from \"utils/strings\";\r\n\r\nexport const isRtmp = function (file, type) {\r\n    if (file) {\r\n        return (file.indexOf('rtmp:') == 0 || type == 'rtmp');\r\n    }\r\n};\r\nexport const isWebRTC = function (file, type) {\r\n    if (file) {\r\n        return (file.indexOf('ws:') === 0 || file.indexOf('wss:') === 0 || type === 'webrtc');\r\n    }\r\n    return false;\r\n};\r\nexport const isHls = function (file, type) {\r\n    if (file) {\r\n        return (type === 'hls' || type === 'm3u8' || type === 'application/vnd.apple.mpegurl' || extractExtension(file) == 'm3u8');\r\n\r\n    }\r\n};\r\nexport const isDash = function (file, type) {\r\n    if (file) {\r\n        return (type === 'mpd' || type === 'dash' || type === 'application/dash+xml' || extractExtension(file) == 'mpd');\r\n\r\n    }\r\n};\r\n\r\nexport const checkAndGetContainerElement = function (container) {\r\n    if (!container) {\r\n\r\n        return null;\r\n    }\r\n\r\n    let containerElement = null;\r\n\r\n    if (typeof container === 'string') {\r\n\r\n        containerElement = document.getElementById(container);\r\n    } else if (container.nodeType) {\r\n\r\n        containerElement = container;\r\n    } else {\r\n\r\n        return null;\r\n    }\r\n\r\n    return containerElement;\r\n};","import {isRtmp, isWebRTC, isDash, isHls} from \"utils/validator\";\r\nimport {analUserAgent} from \"utils/browser\";\r\n/**\r\n * @brief   This finds the provider that matches the input source.\r\n * @param\r\n * */\r\n\r\nconst SupportChecker = function(){\r\n    const that = {};\r\n    OvenPlayerConsole.log(\"SupportChecker loaded.\");\r\n    let userAgentObject = analUserAgent();\r\n\r\n    const supportList = [\r\n        {\r\n            name: 'html5',\r\n            checkSupport: function (source) {\r\n                const MimeTypes = {\r\n                    aac: 'audio/mp4',\r\n                    mp4: 'video/mp4',\r\n                    f4v: 'video/mp4',\r\n                    m4v: 'video/mp4',\r\n                    mov: 'video/mp4',\r\n                    mp3: 'audio/mpeg',\r\n                    mpeg: 'audio/mpeg',\r\n                    ogv: 'video/ogg',\r\n                    ogg: 'video/ogg',\r\n                    oga: 'video/ogg',\r\n                    vorbis: 'video/ogg',\r\n                    webm: 'video/webm',\r\n                    f4a: 'video/aac',\r\n                    m3u8: 'application/vnd.apple.mpegurl',\r\n                    m3u: 'application/vnd.apple.mpegurl',\r\n                    hls: 'application/vnd.apple.mpegurl'\r\n                };\r\n\r\n                const video = function(){\r\n                    return document.createElement('video')\r\n                }();\r\n                if (!video.canPlayType) {\r\n                    return false;\r\n                }\r\n\r\n\r\n                const file = source.file;\r\n                const type = source.type;\r\n\r\n                if(!type){return false;}\r\n                const mimeType = source.mimeType || MimeTypes[type];\r\n\r\n                // Latest Edge browser returns \"Chrome\" from userAgentObject.browser\r\n                // Make sure to use hls.js Android devices\r\n                if(isHls(file, type) && (userAgentObject.browser === \"Microsoft Edge\" || userAgentObject.os === \"Android\")) {\r\n\r\n                    return false;\r\n                }\r\n\r\n                if (isRtmp(file, type)) {\r\n                    return false;\r\n                }\r\n\r\n                if(isWebRTC(file, type)){\r\n                    return false;\r\n                }\r\n\r\n                if (!mimeType) {\r\n                    return false;\r\n                }\r\n\r\n                return !!video.canPlayType(mimeType);\r\n            }\r\n        },\r\n        {\r\n            name: 'webrtc',\r\n            checkSupport: function (source) {\r\n                const video = function(){\r\n                    return document.createElement('video')\r\n                }();\r\n                if (!video.canPlayType) {\r\n                    return false;\r\n                }\r\n                if (isRtmp(file, type)) {\r\n                    return false;\r\n                }\r\n\r\n                const file = source.file;\r\n                const type = source.type;\r\n\r\n                if(isWebRTC(file, type)){\r\n                    return true;\r\n                }else{\r\n                    return false;\r\n                }\r\n            }\r\n        },\r\n        {\r\n            name: 'dash',\r\n            checkSupport: function (source) {\r\n                const file = source.file;\r\n\r\n                const type = source.type;\r\n                if (isRtmp(file, type)) {\r\n                    return false;\r\n                }\r\n\r\n                if (typeof ( window.MediaSource || window.WebKitMediaSource ) === \"function\" && isDash(file, type)) {\r\n                    return true;\r\n                }else{\r\n                    return false;\r\n                }\r\n            }\r\n        },\r\n        {\r\n            name: 'hls',\r\n            checkSupport: function (source) {\r\n                const video = function(){\r\n                    return document.createElement('video')\r\n                }();\r\n                const file = source.file;\r\n                const type = source.type;\r\n                if (isRtmp(file, type)) {\r\n                    return false;\r\n                }\r\n\r\n                //this method from hls.js\r\n                const isHlsSupport = () =>{\r\n                     function getMediaSource() {\r\n                        if (typeof window !== 'undefined') {\r\n                            return window.MediaSource || window.WebKitMediaSource;\r\n                        }\r\n                    }\r\n                    var mediaSource = getMediaSource();\r\n                    var sourceBuffer = window.SourceBuffer || window.WebKitSourceBuffer;\r\n                    var isTypeSupported = mediaSource && typeof mediaSource.isTypeSupported === 'function' && mediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"');\r\n\r\n                    // if SourceBuffer is exposed ensure its API is valid\r\n                    // safari and old version of Chrome doe not expose SourceBuffer globally so checking SourceBuffer.prototype is impossible\r\n                    var sourceBufferValidAPI = !sourceBuffer || sourceBuffer.prototype && typeof sourceBuffer.prototype.appendBuffer === 'function' && typeof sourceBuffer.prototype.remove === 'function';\r\n                    return !!isTypeSupported && !!sourceBufferValidAPI;\r\n                };\r\n                //Remove this '!!video.canPlayType('application/vnd.apple.mpegurl')' if you want to use hlsjs.\r\n                //Yes I need hlsjs. 2019-06-12 && !!video.canPlayType('application/vnd.apple.mpegurl');\r\n                return isHlsSupport();\r\n            }\r\n        },\r\n        {\r\n            name: 'rtmp',\r\n            checkSupport: function (source) {\r\n                const file = source.file;\r\n                const type = source.type;\r\n                function testFlash() {\r\n\r\n                    var support = false;\r\n\r\n                    //IE only\r\n                    if(\"ActiveXObject\" in window) {\r\n\r\n                        try{\r\n                            support = !!(new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash\"));\r\n                        }catch(e){\r\n                            support = false;\r\n                        }\r\n\r\n                        //W3C, better support in legacy browser\r\n                    } else {\r\n\r\n                        support = !!navigator.mimeTypes['application/x-shockwave-flash'];\r\n\r\n                    }\r\n\r\n                    return support;\r\n\r\n                }\r\n                function checkSupport(){\r\n                    if(userAgentObject.browser === \"Microsoft Edge\" || userAgentObject.os === \"Android\" || userAgentObject.os === \"iOS\"  || userAgentObject.browser === \"Safari\"){\r\n                        return false;\r\n                    }else{\r\n                        return true;\r\n                    }\r\n                }\r\n                if (isRtmp(file, type) && testFlash() && checkSupport()) {\r\n                    return true;\r\n                }else{\r\n                    return false;\r\n                }\r\n            }\r\n        }\r\n    ];\r\n\r\n    that.findProviderNameBySource = (soruce_) => {\r\n        OvenPlayerConsole.log(\"SupportChecker : findProviderNameBySource()\", soruce_);\r\n        const source = (soruce_ === Object(soruce_)) ? soruce_ : {};\r\n        for(var i = 0; i < supportList.length; i ++){\r\n            if(supportList[i].checkSupport(source)){\r\n                return supportList[i].name;\r\n            }\r\n        }\r\n    };\r\n    that.findProviderNamesByPlaylist = (playlistItem) => {\r\n        OvenPlayerConsole.log(\"SupportChecker : findProviderNamesByPlaylist()\", playlistItem);\r\n        let supportNames = [];\r\n        /*for (let i = playlist_.length; i--;) {\r\n\r\n\r\n        }*/\r\n        const item = playlistItem;\r\n\r\n        if(item && item.sources){\r\n            for(let j = 0; j < item.sources.length; j ++){\r\n                let source = item.sources[j];\r\n                if (source) {\r\n                    const supported = that.findProviderNameBySource(source);\r\n                    if (supported) {\r\n                        supportNames.push(supported);\r\n                    }\r\n                }\r\n            }\r\n\r\n            return supportNames;\r\n        }\r\n        return null;\r\n\r\n    };\r\n    return that;\r\n};\r\n\r\nexport default SupportChecker;\r\n","/**\r\n * Created by hoho on 27/06/2019.\r\n */\r\nexport const TEMP_VIDEO_URL = \"data:video/mp4;base64, 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\";\r\n","/**\r\n * Created by hoho on 2018. 11. 12..\r\n */\r\nimport {ERROR, STATE_ERROR} from \"api/constants\";\r\nimport _ from \"utils/underscore\";\r\n\r\nexport const extractVideoElement = function(elementOrMse) {\r\n    if(_.isElement(elementOrMse)){\r\n        return elementOrMse;\r\n    }\r\n    if(elementOrMse.getVideoElement){\r\n        return elementOrMse.getVideoElement();\r\n    }else if(elementOrMse.media){\r\n        return elementOrMse.media;\r\n    }\r\n    return null;\r\n};\r\n\r\nexport const separateLive = function(mse) {\r\n    //ToDo : You consider hlsjs. But not now because we don't support hlsjs.\r\n\r\n    if(mse && mse.isDynamic){\r\n        return mse.isDynamic();\r\n    }else{\r\n        return false;\r\n    }\r\n};\r\n\r\nexport const errorTrigger = function(error, provider){\r\n    if(provider){\r\n        provider.setState(STATE_ERROR);\r\n        provider.pause();\r\n        provider.trigger(ERROR, error );\r\n    }\r\n\r\n};\r\n\r\nexport const pickCurrentSource = (sources, playerConfig) => {\r\n\r\n    let sourceIndex = 0;\r\n\r\n    if (sources) {\r\n\r\n        if (playerConfig.getSourceIndex() === -1) {\r\n\r\n            for (var i = 0; i < sources.length; i++) {\r\n                if (sources[i].default) {\r\n                    sourceIndex = i;\r\n                    break;\r\n                }\r\n            }\r\n        } else {\r\n\r\n            sourceIndex = playerConfig.getSourceIndex();\r\n        }\r\n\r\n    }\r\n\r\n    return sourceIndex;\r\n}","/**\r\n * Created by hoho on 08/04/2019.\r\n */\r\nimport AdsEventsListener from \"api/ads/ima/Listener\";\r\nimport {TEMP_VIDEO_URL} from \"api/ads/utils\";\r\nimport LA$ from \"utils/likeA$.js\";\r\nimport {errorTrigger} from \"api/provider/utils\";\r\nimport {\r\n    ERROR,\r\n    CONTENT_VOLUME,\r\n    STATE_LOADING,\r\n    INIT_ADS_ERROR,\r\n    STATE_AD_ERROR,\r\n    PLAYER_WARNING,\r\n    CONTENT_META,\r\n    WARN_MSG_MUTEDPLAY,\r\n    STATE_AD_LOADING,\r\n    PROVIDER_DASH,\r\n    UI_ICONS\r\n} from \"api/constants\";\r\n\r\nconst Ad = function(elVideo, provider, playerConfig, adTagUrl, errorCallback){\r\n    //Todo : move createAdContainer to MediaManager\r\n    const AUTOPLAY_NOT_ALLOWED = \"autoplayNotAllowed\";\r\n    const ADMANGER_LOADING_ERROR = \"admanagerLoadingTimeout\";\r\n    let ADS_MANAGER_LOADED = \"\";\r\n    let AD_ERROR = \"\";\r\n\r\n    let that = {};\r\n    let adsManagerLoaded = false;\r\n    let adsErrorOccurred = false;\r\n    let spec = {\r\n        started: false, //player started\r\n        active : false, //on Ad\r\n        isVideoEnded : false\r\n    };\r\n    let OnManagerLoaded = null;\r\n    let OnAdError = null;\r\n\r\n    let adDisplayContainer = null;\r\n    let adsLoader = null;\r\n    let adsManager = null;\r\n    let listener = null;\r\n    let adsRequest = null;\r\n    let autoplayAllowed = false, autoplayRequiresMuted = false;\r\n    let browser = playerConfig.getBrowser();\r\n    let isMobile = browser.os === \"Android\" || browser.os === \"iOS\";\r\n\r\n    let adDisplayContainerInitialized = false;\r\n\r\n    // google.ima.settings.setAutoPlayAdBreaks(false);\r\n    //google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED);\r\n\r\n    //google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED);\r\n    //google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true);\r\n    const sendWarningMessageForMutedPlay = function(){\r\n        provider.trigger(PLAYER_WARNING, {\r\n            message : WARN_MSG_MUTEDPLAY,\r\n            timer : 10 * 1000,\r\n            iconClass : UI_ICONS.volume_mute,\r\n            onClickCallback : function(){\r\n                provider.setMute(false);\r\n            }\r\n        });\r\n    };\r\n    OvenPlayerConsole.log(\"IMA : started \", \"isMobile : \", isMobile, adTagUrl);\r\n\r\n    try{\r\n        ADS_MANAGER_LOADED = google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED;\r\n        AD_ERROR = google.ima.AdErrorEvent.Type.AD_ERROR;\r\n        google.ima.settings.setLocale(playerConfig.getLanguage());\r\n        google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true);\r\n\r\n        const createAdContainer = () => {\r\n            let adContainer = document.createElement('div');\r\n            adContainer.setAttribute('class', 'op-ads');\r\n            adContainer.setAttribute('id', 'op-ads');\r\n            playerConfig.getContainer().append(adContainer);\r\n\r\n            return adContainer;\r\n        };\r\n        OnAdError = function(adErrorEvent){\r\n            //note : adErrorEvent.getError().getInnerError().getErrorCode() === 1205 & adErrorEvent.getError().getVastErrorCode() === 400 is Browser User Interactive error.\r\n\r\n            //Do not triggering ERROR. becuase It just AD!\r\n\r\n            console.log(adErrorEvent.getError().getVastErrorCode(), adErrorEvent.getError().getMessage());\r\n            adsErrorOccurred = true;\r\n            let innerError = adErrorEvent.getError().getInnerError();\r\n            if(innerError){\r\n                console.log(innerError.getErrorCode(), innerError.getMessage());\r\n            }\r\n            /*if (adsManager) {\r\n                adsManager.destroy();\r\n            }*/\r\n            provider.trigger(STATE_AD_ERROR, {code : adErrorEvent.getError().getVastErrorCode() , message : adErrorEvent.getError().getMessage()});\r\n            spec.active = false;\r\n            spec.started = true;\r\n            provider.play();\r\n\r\n            /*if(innerError && innerError.getErrorCode() === 1205){\r\n             }else{\r\n\r\n             }*/\r\n\r\n\r\n        };\r\n        OnManagerLoaded = function(adsManagerLoadedEvent){\r\n\r\n            OvenPlayerConsole.log(\"IMA : OnManagerLoaded \");\r\n            let adsRenderingSettings = new google.ima.AdsRenderingSettings();\r\n            adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true;\r\n            //adsRenderingSettings.useStyledNonLinearAds = true;\r\n            if(adsManager){\r\n                OvenPlayerConsole.log(\"IMA : destroy adsManager----\");\r\n                listener.destroy();\r\n                listener = null;\r\n                adsManager.destroy();\r\n                adsManager = null;\r\n            }\r\n            adsManager = adsManagerLoadedEvent.getAdsManager(elVideo, adsRenderingSettings);\r\n\r\n            listener = AdsEventsListener(adsManager, provider, spec, OnAdError);\r\n\r\n            OvenPlayerConsole.log(\"IMA : created admanager and listner \");\r\n\r\n            adsManagerLoaded = true;\r\n        };\r\n        let adConatinerElment = createAdContainer();\r\n        adDisplayContainer = new google.ima.AdDisplayContainer(adConatinerElment, elVideo);\r\n        adsLoader = new google.ima.AdsLoader(adDisplayContainer);\r\n\r\n        adsLoader.addEventListener(ADS_MANAGER_LOADED, OnManagerLoaded, false);\r\n        adsLoader.addEventListener(AD_ERROR, OnAdError, false);\r\n\r\n        OvenPlayerConsole.log(\"IMA : adDisplayContainer initialized\");\r\n        provider.on(CONTENT_VOLUME, function(data) {\r\n            if(adsManager){\r\n                if(data.mute){\r\n                    adsManager.setVolume(0);\r\n                }else{\r\n                    adsManager.setVolume(data.volume/100);\r\n                }\r\n            }\r\n        }, that);\r\n\r\n        const setAutoPlayToAdsRequest = function (){\r\n            if(adsRequest){\r\n                OvenPlayerConsole.log(\"IMA : setADWillAutoPlay \", \"autoplayAllowed\",autoplayAllowed, \"autoplayRequiresMuted\",autoplayRequiresMuted);\r\n\r\n                adsRequest.setAdWillAutoPlay(autoplayAllowed);\r\n                adsRequest.setAdWillPlayMuted(autoplayRequiresMuted);\r\n                if(autoplayRequiresMuted){\r\n                    sendWarningMessageForMutedPlay();\r\n                }\r\n            }\r\n        };\r\n\r\n        const initRequest = function(){\r\n            adsManagerLoaded = false;\r\n            OvenPlayerConsole.log(\"IMA : initRequest() AutoPlay Support : \", \"autoplayAllowed\",autoplayAllowed, \"autoplayRequiresMuted\",autoplayRequiresMuted);\r\n            /*if(adsRequest){\r\n             return false;\r\n             }*/\r\n            adsRequest = new google.ima.AdsRequest();\r\n\r\n            adsRequest.forceNonLinearFullSlot = false;\r\n            /*if(playerConfig.getBrowser().browser === \"Safari\" && playerConfig.getBrowser().os === \"iOS\" ){\r\n             autoplayAllowed = false;\r\n             autoplayRequiresMuted = false;\r\n             }*/\r\n\r\n            setAutoPlayToAdsRequest();\r\n            adsRequest.adTagUrl = adTagUrl;\r\n\r\n            adsLoader.requestAds(adsRequest);\r\n            OvenPlayerConsole.log(\"IMA : requestAds Complete\");\r\n            //two way what ad starts.\r\n            //adsLoader.requestAds(adsRequest); or  adsManager.start();\r\n            //what? why?? wth??\r\n        };\r\n\r\n\r\n        const checkAutoplaySupport = function () {\r\n            OvenPlayerConsole.log(\"IMA : checkAutoplaySupport() \");\r\n\r\n            let temporarySupportCheckVideo = document.createElement('video');\r\n            temporarySupportCheckVideo.setAttribute('playsinline', 'true');\r\n            temporarySupportCheckVideo.src = TEMP_VIDEO_URL;\r\n            temporarySupportCheckVideo.load();\r\n\r\n            //Dash has already loaded when triggered provider.play() always.\r\n            if(isMobile && provider.getName() !== PROVIDER_DASH ){\r\n                //Main video sets user gesture when temporarySupportCheckVideo triggered checking.\r\n                elVideo.load();\r\n            }\r\n            /* Different browser-specific ways to delivery UI to other elements.  My Guess. 2019-06-19\r\n            *   (temporarySupportCheckVideo's User Interaction delivery to elVideo.)\r\n            *   Mobile Chrome WebView :\r\n            *   You have to run elVideo.load() when temporarySupportCheckVideo issues within 5 seconds of user interaction.\r\n            *\r\n            *   Mobile ios safari :\r\n            *   You have to run elVideo.load() before temporarySupportCheckVideo run play().\r\n            * */\r\n\r\n            const clearAndReport = function(_autoplayAllowed, _autoplayRequiresMuted){\r\n                autoplayAllowed = _autoplayAllowed;\r\n                autoplayRequiresMuted = _autoplayRequiresMuted;\r\n                temporarySupportCheckVideo.pause();\r\n                temporarySupportCheckVideo.remove();\r\n\r\n                setAutoPlayToAdsRequest();\r\n            };\r\n\r\n            return new Promise(function(resolve, reject){\r\n                if(!temporarySupportCheckVideo.play){\r\n                    //I can't remember this case...\r\n                    OvenPlayerConsole.log(\"IMA : !temporarySupportCheckVideo.play\");\r\n                    clearAndReport(true, false);\r\n                    resolve();\r\n                }else{\r\n                    let playPromise = temporarySupportCheckVideo.play();\r\n                    if (playPromise !== undefined) {\r\n                        playPromise.then(function(){\r\n                            OvenPlayerConsole.log(\"IMA : auto play allowed.\");\r\n                            // If we make it here, unmuted autoplay works.\r\n                            clearAndReport(true, false);\r\n                            resolve();\r\n\r\n                        }).catch(function(error){\r\n\r\n                            OvenPlayerConsole.log(\"IMA : auto play failed\", error.message);\r\n                            clearAndReport(false, false);\r\n                            resolve();\r\n\r\n\r\n                            //Disable Muted Play\r\n                            /*temporarySupportCheckVideo.muted = true;\r\n                            temporarySupportCheckVideo.volume = 0;\r\n                            playPromise = temporarySupportCheckVideo.play();\r\n\r\n                            playPromise.then(function () {\r\n                                // If we make it here, muted autoplay works but unmuted autoplay does not.\r\n\r\n                                OvenPlayerConsole.log(\"ADS : muted auto play success.\");\r\n                                provider.setMute(true);\r\n                                clearAndReport(true, true);\r\n                                resolve();\r\n\r\n                            }).catch(function (error) {\r\n                                OvenPlayerConsole.log(\"ADS : muted auto play failed\", error.message);\r\n                                clearAndReport(false, false);\r\n                                resolve();\r\n                            });*/\r\n                        });\r\n                    }else{\r\n                        OvenPlayerConsole.log(\"IMA : promise not support\");\r\n                        //Maybe this is IE11....\r\n                        clearAndReport(true, false);\r\n                        resolve();\r\n                    }\r\n                }\r\n            });\r\n        }\r\n\r\n        that.isActive = () => {\r\n            return spec.active;\r\n        };\r\n        that.started = () => {\r\n            return spec.started;\r\n        };\r\n        that.play = () => {\r\n            if(spec.started){\r\n                return new Promise(function (resolve, reject) {\r\n                    try{\r\n                        adsManager.resume();\r\n                        resolve();\r\n                    } catch (error){\r\n                        reject(error);\r\n                    }\r\n                });\r\n            }else{\r\n                adDisplayContainer.initialize();\r\n\r\n                return new Promise(function (resolve, reject) {\r\n                    let retryCount = 0;\r\n                    const checkAdsManagerIsReady = function(){\r\n                        retryCount ++;\r\n                        if(adsManagerLoaded){\r\n                            OvenPlayerConsole.log(\"IMA : ad start!\");\r\n                            adsManager.init(\"100%\", \"100%\", google.ima.ViewMode.NORMAL);\r\n                            adsManager.start();\r\n                            spec.started = true;\r\n\r\n                            resolve();\r\n                        }else{\r\n                            if(adsErrorOccurred){\r\n                                reject(new Error(ADMANGER_LOADING_ERROR));\r\n                            }else{\r\n                                if(retryCount < 150){\r\n                                    setTimeout(checkAdsManagerIsReady, 100);\r\n                                }else{\r\n                                    reject(new Error(ADMANGER_LOADING_ERROR));\r\n                                }\r\n                            }\r\n\r\n                        }\r\n\r\n                    };\r\n                    checkAutoplaySupport().then(function () {\r\n                        if( (playerConfig.isAutoStart() && !autoplayAllowed) ){\r\n                            OvenPlayerConsole.log(\"IMA : autoplayAllowed : false\");\r\n                            spec.started = false;\r\n                            reject(new Error(AUTOPLAY_NOT_ALLOWED));\r\n                        }else{\r\n                            initRequest();\r\n                            checkAdsManagerIsReady();\r\n                        }\r\n                    });\r\n                });\r\n\r\n\r\n            }\r\n        };\r\n        that.pause = () => {\r\n            adsManager.pause();\r\n        };\r\n        that.videoEndedCallback = (completeContentCallback) => {\r\n            //listener.isLinearAd : get current ad's status whether linear ad or not.\r\n            if(listener && (listener.isAllAdComplete() || !listener.isLinearAd())){\r\n                completeContentCallback();\r\n            }else if(adsErrorOccurred){\r\n                completeContentCallback();\r\n            }else{\r\n                //If you need play the post-roll, you have to call to adsLoader when contents was completed.\r\n                spec.isVideoEnded = true;\r\n                adsLoader.contentComplete();\r\n            }\r\n        };\r\n\r\n        that.destroy = () => {\r\n\r\n            if(adsLoader){\r\n                adsLoader.removeEventListener(ADS_MANAGER_LOADED, OnManagerLoaded);\r\n                adsLoader.removeEventListener(AD_ERROR, OnAdError);\r\n            }\r\n\r\n            if(adsManager){\r\n                adsManager.destroy();\r\n            }\r\n\r\n            if(adDisplayContainer){\r\n                adDisplayContainer.destroy();\r\n            }\r\n\r\n            if(listener){\r\n                listener.destroy();\r\n            }\r\n\r\n            let $ads = LA$(playerConfig.getContainer()).find(\".op-ads\");\r\n            if($ads){\r\n                $ads.remove();\r\n            }\r\n\r\n            provider.off(CONTENT_VOLUME, null, that);\r\n        };\r\n\r\n        return that;\r\n    }catch (error){\r\n        //let tempError = ERRORS[INIT_ADS_ERROR];\r\n        //tempError.error = error;\r\n        //errorCallback(tempError);\r\n        return null;\r\n    }\r\n\r\n\r\n};\r\n\r\n\r\nexport default Ad;\r\n\r\n","/**\r\n * Created by hoho on 10/04/2019.\r\n */\r\n\r\nimport {\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n    AD_CHANGED,\r\n    AD_TIME,\r\n    STATE_PAUSED,\r\n    STATE_ERROR,\r\n    CONTENT_COMPLETE,\r\n    CONTENT_SEEK,\r\n    CONTENT_BUFFER_FULL,\r\n    CONTENT_SEEKED,\r\n    CONTENT_BUFFER,\r\n    CONTENT_TIME,\r\n    CONTENT_VOLUME,\r\n    CONTENT_META,\r\n    PLAYER_UNKNWON_ERROR,\r\n    PLAYER_UNKNWON_OPERATION_ERROR,\r\n    PLAYER_UNKNWON_NETWORK_ERROR,\r\n    PLAYER_UNKNWON_DECODE_ERROR,\r\n    PLAYER_FILE_ERROR,\r\n    PLAYER_STATE,\r\n    PLAYER_CLICKED,\r\n    PLAYER_AD_CLICK,\r\n    PROVIDER_HTML5,\r\n    PROVIDER_WEBRTC,\r\n    PROVIDER_DASH,\r\n    PROVIDER_HLS\r\n} from \"api/constants\";\r\n\r\nconst Listener = function(adsManager, provider, adsSpec, OnAdError){\r\n    let that = {};\r\n    let lowLevelEvents = {};\r\n\r\n    let intervalTimer = null;\r\n\r\n    const AD_BUFFERING = google.ima.AdEvent.Type.AD_BUFFERING;\r\n    const CONTENT_PAUSE_REQUESTED = google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED;\r\n    const CONTENT_RESUME_REQUESTED = google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED;\r\n    const AD_ERROR = google.ima.AdErrorEvent.Type.AD_ERROR;\r\n    const ALL_ADS_COMPLETED = google.ima.AdEvent.Type.ALL_ADS_COMPLETED;\r\n    const CLICK = google.ima.AdEvent.Type.CLICK;\r\n    const SKIPPED = google.ima.AdEvent.Type.SKIPPED;\r\n    const COMPLETE = google.ima.AdEvent.Type.COMPLETE;\r\n    const FIRST_QUARTILE= google.ima.AdEvent.Type.FIRST_QUARTILE;\r\n    const LOADED = google.ima.AdEvent.Type.LOADED;\r\n    const MIDPOINT= google.ima.AdEvent.Type.MIDPOINT;\r\n    const PAUSED = google.ima.AdEvent.Type.PAUSED;\r\n    const RESUMED = google.ima.AdEvent.Type.RESUMED;\r\n    const STARTED = google.ima.AdEvent.Type.STARTED;\r\n    const USER_CLOSE = google.ima.AdEvent.Type.USER_CLOSE;\r\n    const THIRD_QUARTILE = google.ima.AdEvent.Type.THIRD_QUARTILE;\r\n\r\n    let isAllAdCompelete = false;   //Post roll을 위해\r\n    let adCompleteCallback = null;\r\n    let currentAd = null;\r\n    OvenPlayerConsole.log(\"IMA : Listener Created\");\r\n     lowLevelEvents[CONTENT_PAUSE_REQUESTED] = (adEvent) => {\r\n         OvenPlayerConsole.log(\"IMA LISTENER : \", adEvent.type);\r\n\r\n         //This callls when player is playing contents for ad.\r\n         if(adsSpec.started){\r\n             adsSpec.active = true;\r\n             provider.pause();\r\n         }\r\n\r\n    };\r\n\r\n    lowLevelEvents[CONTENT_RESUME_REQUESTED] = (adEvent) => {\r\n        OvenPlayerConsole.log(\"IMA LISTENER : \", adEvent.type);\r\n        //This calls when one ad ended.\r\n        //And this is signal what play the contents.\r\n        adsSpec.active = false;\r\n\r\n        if(adsSpec.started && (provider.getPosition() === 0 || !adsSpec.isVideoEnded)  ){\r\n            provider.play();\r\n        }\r\n\r\n    };\r\n    lowLevelEvents[AD_ERROR] = (adEvent) => {\r\n        isAllAdCompelete = true;\r\n        OnAdError(adEvent);\r\n    } ;\r\n\r\n    lowLevelEvents[ALL_ADS_COMPLETED] = (adEvent) => {\r\n        OvenPlayerConsole.log(\"IMA LISTENER : \", adEvent.type);\r\n\r\n        isAllAdCompelete = true;\r\n        if(adsSpec.isVideoEnded){\r\n            provider.setState(STATE_COMPLETE);\r\n        }\r\n    };\r\n    lowLevelEvents[CLICK] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        provider.trigger(PLAYER_CLICKED, {type : PLAYER_AD_CLICK});\r\n    };\r\n    lowLevelEvents[FIRST_QUARTILE] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n    };\r\n    //\r\n    lowLevelEvents[AD_BUFFERING] = (adEvent) => {\r\n        OvenPlayerConsole.log(\"AD_BUFFERING\",adEvent.type);\r\n    };\r\n    lowLevelEvents[LOADED] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        let remainingTime = adsManager.getRemainingTime();\r\n        let ad = adEvent.getAd();\r\n        provider.trigger(STATE_AD_LOADED, {remaining : remainingTime, isLinear : ad.isLinear() });\r\n\r\n    };\r\n    lowLevelEvents[MIDPOINT] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n    };\r\n    lowLevelEvents[PAUSED] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        provider.setState(STATE_AD_PAUSED);\r\n    };\r\n    lowLevelEvents[RESUMED] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        provider.setState(STATE_AD_PLAYING);\r\n    };\r\n\r\n\r\n    lowLevelEvents[STARTED] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        let ad = adEvent.getAd();\r\n        currentAd = ad;\r\n\r\n        let adObject = {\r\n            isLinear : ad.isLinear() ,\r\n            duration : ad.getDuration(),\r\n            skipTimeOffset : ad.getSkipTimeOffset()     //The number of seconds of playback before the ad becomes skippable.\r\n        };\r\n        provider.trigger(AD_CHANGED, adObject);\r\n\r\n\r\n        if (ad.isLinear()) {\r\n\r\n            provider.setState(STATE_AD_PLAYING);\r\n            adsSpec.started = true;\r\n            // For a linear ad, a timer can be started to poll for\r\n            // the remaining time.\r\n            intervalTimer = setInterval(\r\n                function() {\r\n                    let remainingTime = adsManager.getRemainingTime();\r\n                    let duration = ad.getDuration();\r\n\r\n                    provider.trigger(AD_TIME, {\r\n                        duration : duration,\r\n                        skipTimeOffset : ad.getSkipTimeOffset(),\r\n                        remaining : remainingTime,\r\n                        position : duration - remainingTime,\r\n                        skippable : adsManager.getAdSkippableState()\r\n                    });\r\n                },\r\n                300); // every 300ms\r\n        }else{\r\n            provider.play();\r\n        }\r\n    };\r\n    lowLevelEvents[COMPLETE] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        let ad = adEvent.getAd();\r\n        if (ad.isLinear()) {\r\n            clearInterval(intervalTimer);\r\n        }\r\n        provider.trigger(STATE_AD_COMPLETE);\r\n    };\r\n    //User skipped ad. same process on complete.\r\n    lowLevelEvents[SKIPPED] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n\r\n        let ad = adEvent.getAd();\r\n        if (ad.isLinear()) {\r\n            clearInterval(intervalTimer);\r\n        }\r\n        provider.trigger(STATE_AD_COMPLETE);\r\n    };\r\n    lowLevelEvents[USER_CLOSE] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        let ad = adEvent.getAd();\r\n        if (ad.isLinear()) {\r\n            clearInterval(intervalTimer);\r\n        }\r\n        provider.trigger(STATE_AD_COMPLETE);\r\n    };\r\n    lowLevelEvents[THIRD_QUARTILE] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n    };\r\n\r\n\r\n    Object.keys(lowLevelEvents).forEach(eventName => {\r\n        adsManager.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        adsManager.addEventListener(eventName, lowLevelEvents[eventName]);\r\n    });\r\n    that.setAdCompleteCallback = (_adCompleteCallback) => {\r\n        adCompleteCallback = _adCompleteCallback;\r\n    };\r\n    that.isAllAdComplete = () => {\r\n        return isAllAdCompelete;\r\n    };\r\n    that.isLinearAd = () => {\r\n        return currentAd  ? currentAd.isLinear() : true;\r\n    };\r\n    that.destroy = () =>{\r\n        OvenPlayerConsole.log(\"IMAEventListener : destroy()\");\r\n        //provider.trigger(STATE_AD_COMPLETE);\r\n        Object.keys(lowLevelEvents).forEach(eventName => {\r\n            adsManager.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        });\r\n    };\r\n    return that;\r\n\r\n};\r\n\r\nexport default Listener;","/*Copyright (c) 2013 Olivier Poitrey <rs@dailymotion.com>\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is furnished\r\n to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n THE SOFTWARE.*/\r\nclass Ad{constructor(){this.id=null,this.sequence=null,this.system=null,this.title=null,this.description=null,this.advertiser=null,this.pricing=null,this.survey=null,this.errorURLTemplates=[],this.impressionURLTemplates=[],this.creatives=[],this.extensions=[]}}class AdExtension{constructor(){this.attributes={},this.children=[]}}class AdExtensionChild{constructor(){this.name=null,this.value=null,this.attributes={}}}class CompanionAd{constructor(){this.id=null,this.width=0,this.height=0,this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.altText=null,this.companionClickThroughURLTemplate=null,this.companionClickTrackingURLTemplates=[],this.trackingEvents={}}}class Creative{constructor(e={}){this.id=e.id||null,this.adId=e.adId||null,this.sequence=e.sequence||null,this.apiFramework=e.apiFramework||null,this.trackingEvents={}}}class CreativeCompanion extends Creative{constructor(e={}){super(e),this.type=\"companion\",this.variations=[]}}function track(e,t){resolveURLTemplates(e,t).forEach(e=>{if(\"undefined\"!=typeof window&&null!==window){(new Image).src=e}})}function resolveURLTemplates(e,t={}){const r=[];t.ASSETURI&&(t.ASSETURI=encodeURIComponentRFC3986(t.ASSETURI)),t.CONTENTPLAYHEAD&&(t.CONTENTPLAYHEAD=encodeURIComponentRFC3986(t.CONTENTPLAYHEAD)),t.ERRORCODE&&!/^[0-9]{3}$/.test(t.ERRORCODE)&&(t.ERRORCODE=900),t.CACHEBUSTING=leftpad(Math.round(1e8*Math.random()).toString()),t.TIMESTAMP=encodeURIComponentRFC3986((new Date).toISOString()),t.RANDOM=t.random=t.CACHEBUSTING;for(let i in e){let s=e[i];if(\"string\"==typeof s){for(let e in t){const r=t[e],i=`[${e}]`,n=`%%${e}%%`;s=(s=s.replace(i,r)).replace(n,r)}r.push(s)}}return r}function encodeURIComponentRFC3986(e){return encodeURIComponent(e).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16)}`)}function leftpad(e){return e.length<8?range(0,8-e.length,!1).map(e=>\"0\").join(\"\")+e:e}function range(e,t,r){let i=[],s=e<t,n=r?s?t+1:t-1:t;for(let t=e;s?t<n:t>n;s?t++:t--)i.push(t);return i}function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}function flatten(e){return e.reduce((e,t)=>e.concat(Array.isArray(t)?flatten(t):t),[])}const util={track:track,resolveURLTemplates:resolveURLTemplates,encodeURIComponentRFC3986:encodeURIComponentRFC3986,leftpad:leftpad,range:range,isNumeric:isNumeric,flatten:flatten};function childByName(e,t){const r=e.childNodes;for(let e in r){const i=r[e];if(i.nodeName===t)return i}}function childrenByName(e,t){const r=[],i=e.childNodes;for(let e in i){const s=i[e];s.nodeName===t&&r.push(s)}return r}function resolveVastAdTagURI(e,t){if(!t)return e;if(0===e.indexOf(\"//\")){const{protocol:t}=location;return`${t}${e}`}if(-1===e.indexOf(\"://\")){return`${t.slice(0,t.lastIndexOf(\"/\"))}/${e}`}return e}function parseBoolean(e){return-1!==[\"true\",\"TRUE\",\"1\"].indexOf(e)}function parseNodeText(e){return e&&(e.textContent||e.text||\"\").trim()}function copyNodeAttribute(e,t,r){const i=t.getAttribute(e);i&&r.setAttribute(e,i)}function parseDuration(e){if(null==e)return-1;if(util.isNumeric(e))return parseInt(e);const t=e.split(\":\");if(3!==t.length)return-1;const r=t[2].split(\".\");let i=parseInt(r[0]);2===r.length&&(i+=parseFloat(`0.${r[1]}`));const s=parseInt(60*t[1]),n=parseInt(60*t[0]*60);return isNaN(n)||isNaN(s)||isNaN(i)||s>3600||i>60?-1:n+s+i}function splitVAST(e){const t=[];let r=null;return e.forEach((i,s)=>{if(i.sequence&&(i.sequence=parseInt(i.sequence,10)),i.sequence>1){const t=e[s-1];if(t&&t.sequence===i.sequence-1)return void(r&&r.push(i));delete i.sequence}r=[i],t.push(r)}),t}function mergeWrapperAdData(e,t){e.errorURLTemplates=t.errorURLTemplates.concat(e.errorURLTemplates),e.impressionURLTemplates=t.impressionURLTemplates.concat(e.impressionURLTemplates),e.extensions=t.extensions.concat(e.extensions),e.creatives.forEach(e=>{if(t.trackingEvents&&t.trackingEvents[e.type])for(let r in t.trackingEvents[e.type]){const i=t.trackingEvents[e.type][r];e.trackingEvents[r]||(e.trackingEvents[r]=[]),e.trackingEvents[r]=e.trackingEvents[r].concat(i)}}),t.videoClickTrackingURLTemplates&&t.videoClickTrackingURLTemplates.length&&e.creatives.forEach(e=>{\"linear\"===e.type&&(e.videoClickTrackingURLTemplates=e.videoClickTrackingURLTemplates.concat(t.videoClickTrackingURLTemplates))}),t.videoCustomClickURLTemplates&&t.videoCustomClickURLTemplates.length&&e.creatives.forEach(e=>{\"linear\"===e.type&&(e.videoCustomClickURLTemplates=e.videoCustomClickURLTemplates.concat(t.videoCustomClickURLTemplates))}),t.videoClickThroughURLTemplate&&e.creatives.forEach(e=>{\"linear\"===e.type&&null==e.videoClickThroughURLTemplate&&(e.videoClickThroughURLTemplate=t.videoClickThroughURLTemplate)})}const parserUtils={childByName:childByName,childrenByName:childrenByName,resolveVastAdTagURI:resolveVastAdTagURI,parseBoolean:parseBoolean,parseNodeText:parseNodeText,copyNodeAttribute:copyNodeAttribute,parseDuration:parseDuration,splitVAST:splitVAST,mergeWrapperAdData:mergeWrapperAdData};function parseCreativeCompanion(e,t){const r=new CreativeCompanion(t);return parserUtils.childrenByName(e,\"Companion\").forEach(e=>{const t=new CompanionAd;t.id=e.getAttribute(\"id\")||null,t.width=e.getAttribute(\"width\"),t.height=e.getAttribute(\"height\"),t.companionClickTrackingURLTemplates=[],parserUtils.childrenByName(e,\"HTMLResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"IFrameResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"StaticResource\").forEach(r=>{t.type=r.getAttribute(\"creativeType\")||0,parserUtils.childrenByName(e,\"AltText\").forEach(e=>{t.altText=parserUtils.parseNodeText(e)}),t.staticResource=parserUtils.parseNodeText(r)}),parserUtils.childrenByName(e,\"TrackingEvents\").forEach(e=>{parserUtils.childrenByName(e,\"Tracking\").forEach(e=>{const r=e.getAttribute(\"event\"),i=parserUtils.parseNodeText(e);r&&i&&(null==t.trackingEvents[r]&&(t.trackingEvents[r]=[]),t.trackingEvents[r].push(i))})}),parserUtils.childrenByName(e,\"CompanionClickTracking\").forEach(e=>{t.companionClickTrackingURLTemplates.push(parserUtils.parseNodeText(e))}),t.companionClickThroughURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(e,\"CompanionClickThrough\")),t.companionClickTrackingURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(e,\"CompanionClickTracking\")),r.variations.push(t)}),r}class CreativeLinear extends Creative{constructor(e={}){super(e),this.type=\"linear\",this.duration=0,this.skipDelay=null,this.mediaFiles=[],this.videoClickThroughURLTemplate=null,this.videoClickTrackingURLTemplates=[],this.videoCustomClickURLTemplates=[],this.adParameters=null,this.icons=[]}}class Icon{constructor(){this.program=null,this.height=0,this.width=0,this.xPosition=0,this.yPosition=0,this.apiFramework=null,this.offset=null,this.duration=0,this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.iconClickThroughURLTemplate=null,this.iconClickTrackingURLTemplates=[],this.iconViewTrackingURLTemplate=null}}class MediaFile{constructor(){this.id=null,this.fileURL=null,this.deliveryType=\"progressive\",this.mimeType=null,this.codec=null,this.bitrate=0,this.minBitrate=0,this.maxBitrate=0,this.width=0,this.height=0,this.apiFramework=null,this.scalable=null,this.maintainAspectRatio=null}}function parseCreativeLinear(e,t){let r;const i=new CreativeLinear(t);i.duration=parserUtils.parseDuration(parserUtils.parseNodeText(parserUtils.childByName(e,\"Duration\")));const s=e.getAttribute(\"skipoffset\");if(null==s)i.skipDelay=null;else if(\"%\"===s.charAt(s.length-1)&&-1!==i.duration){const e=parseInt(s,10);i.skipDelay=i.duration*(e/100)}else i.skipDelay=parserUtils.parseDuration(s);const n=parserUtils.childByName(e,\"VideoClicks\");n&&(i.videoClickThroughURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(n,\"ClickThrough\")),parserUtils.childrenByName(n,\"ClickTracking\").forEach(e=>{i.videoClickTrackingURLTemplates.push(parserUtils.parseNodeText(e))}),parserUtils.childrenByName(n,\"CustomClick\").forEach(e=>{i.videoCustomClickURLTemplates.push(parserUtils.parseNodeText(e))}));const a=parserUtils.childByName(e,\"AdParameters\");a&&(i.adParameters=parserUtils.parseNodeText(a)),parserUtils.childrenByName(e,\"TrackingEvents\").forEach(e=>{parserUtils.childrenByName(e,\"Tracking\").forEach(e=>{let t=e.getAttribute(\"event\");const s=parserUtils.parseNodeText(e);if(t&&s){if(\"progress\"===t){if(!(r=e.getAttribute(\"offset\")))return;t=\"%\"===r.charAt(r.length-1)?`progress-${r}`:`progress-${Math.round(parserUtils.parseDuration(r))}`}null==i.trackingEvents[t]&&(i.trackingEvents[t]=[]),i.trackingEvents[t].push(s)}})}),parserUtils.childrenByName(e,\"MediaFiles\").forEach(e=>{parserUtils.childrenByName(e,\"MediaFile\").forEach(e=>{const t=new MediaFile;t.id=e.getAttribute(\"id\"),t.fileURL=parserUtils.parseNodeText(e),t.deliveryType=e.getAttribute(\"delivery\"),t.codec=e.getAttribute(\"codec\"),t.mimeType=e.getAttribute(\"type\"),t.apiFramework=e.getAttribute(\"apiFramework\"),t.bitrate=parseInt(e.getAttribute(\"bitrate\")||0),t.minBitrate=parseInt(e.getAttribute(\"minBitrate\")||0),t.maxBitrate=parseInt(e.getAttribute(\"maxBitrate\")||0),t.width=parseInt(e.getAttribute(\"width\")||0),t.height=parseInt(e.getAttribute(\"height\")||0);let r=e.getAttribute(\"scalable\");r&&\"string\"==typeof r&&(\"true\"===(r=r.toLowerCase())?t.scalable=!0:\"false\"===r&&(t.scalable=!1));let s=e.getAttribute(\"maintainAspectRatio\");s&&\"string\"==typeof s&&(\"true\"===(s=s.toLowerCase())?t.maintainAspectRatio=!0:\"false\"===s&&(t.maintainAspectRatio=!1)),i.mediaFiles.push(t)})});const o=parserUtils.childByName(e,\"Icons\");return o&&parserUtils.childrenByName(o,\"Icon\").forEach(e=>{const t=new Icon;t.program=e.getAttribute(\"program\"),t.height=parseInt(e.getAttribute(\"height\")||0),t.width=parseInt(e.getAttribute(\"width\")||0),t.xPosition=parseXPosition(e.getAttribute(\"xPosition\")),t.yPosition=parseYPosition(e.getAttribute(\"yPosition\")),t.apiFramework=e.getAttribute(\"apiFramework\"),t.offset=parserUtils.parseDuration(e.getAttribute(\"offset\")),t.duration=parserUtils.parseDuration(e.getAttribute(\"duration\")),parserUtils.childrenByName(e,\"HTMLResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"IFrameResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"StaticResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||0,t.staticResource=parserUtils.parseNodeText(e)});const r=parserUtils.childByName(e,\"IconClicks\");r&&(t.iconClickThroughURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(r,\"IconClickThrough\")),parserUtils.childrenByName(r,\"IconClickTracking\").forEach(e=>{t.iconClickTrackingURLTemplates.push(parserUtils.parseNodeText(e))})),t.iconViewTrackingURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(e,\"IconViewTracking\")),i.icons.push(t)}),i}function parseXPosition(e){return-1!==[\"left\",\"right\"].indexOf(e)?e:parseInt(e||0)}function parseYPosition(e){return-1!==[\"top\",\"bottom\"].indexOf(e)?e:parseInt(e||0)}class CreativeNonLinear extends Creative{constructor(e={}){super(e),this.type=\"nonlinear\",this.variations=[]}}class NonLinearAd{constructor(){this.id=null,this.width=0,this.height=0,this.expandedWidth=0,this.expandedHeight=0,this.scalable=!0,this.maintainAspectRatio=!0,this.minSuggestedDuration=0,this.apiFramework=\"static\",this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.nonlinearClickThroughURLTemplate=null,this.nonlinearClickTrackingURLTemplates=[],this.adParameters=null}}function parseCreativeNonLinear(e,t){const r=new CreativeNonLinear(t);return parserUtils.childrenByName(e,\"TrackingEvents\").forEach(e=>{let t,i;parserUtils.childrenByName(e,\"Tracking\").forEach(e=>{t=e.getAttribute(\"event\"),i=parserUtils.parseNodeText(e),t&&i&&(null==r.trackingEvents[t]&&(r.trackingEvents[t]=[]),r.trackingEvents[t].push(i))})}),parserUtils.childrenByName(e,\"NonLinear\").forEach(e=>{const t=new NonLinearAd;t.id=e.getAttribute(\"id\")||null,t.width=e.getAttribute(\"width\"),t.height=e.getAttribute(\"height\"),t.expandedWidth=e.getAttribute(\"expandedWidth\"),t.expandedHeight=e.getAttribute(\"expandedHeight\"),t.scalable=parserUtils.parseBoolean(e.getAttribute(\"scalable\")),t.maintainAspectRatio=parserUtils.parseBoolean(e.getAttribute(\"maintainAspectRatio\")),t.minSuggestedDuration=parserUtils.parseDuration(e.getAttribute(\"minSuggestedDuration\")),t.apiFramework=e.getAttribute(\"apiFramework\"),parserUtils.childrenByName(e,\"HTMLResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"IFrameResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"StaticResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||0,t.staticResource=parserUtils.parseNodeText(e)});const i=parserUtils.childByName(e,\"AdParameters\");i&&(t.adParameters=parserUtils.parseNodeText(i)),t.nonlinearClickThroughURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(e,\"NonLinearClickThrough\")),parserUtils.childrenByName(e,\"NonLinearClickTracking\").forEach(e=>{t.nonlinearClickTrackingURLTemplates.push(parserUtils.parseNodeText(e))}),r.variations.push(t)}),r}function parseAd(e){const t=e.childNodes;for(let r in t){const i=t[r];if(-1!==[\"Wrapper\",\"InLine\"].indexOf(i.nodeName)){if(parserUtils.copyNodeAttribute(\"id\",e,i),parserUtils.copyNodeAttribute(\"sequence\",e,i),\"Wrapper\"===i.nodeName)return parseWrapper(i);if(\"InLine\"===i.nodeName)return parseInLine(i)}}}function parseInLine(e){const t=e.childNodes,r=new Ad;r.id=e.getAttribute(\"id\")||null,r.sequence=e.getAttribute(\"sequence\")||null;for(let e in t){const i=t[e];switch(i.nodeName){case\"Error\":r.errorURLTemplates.push(parserUtils.parseNodeText(i));break;case\"Impression\":r.impressionURLTemplates.push(parserUtils.parseNodeText(i));break;case\"Creatives\":parserUtils.childrenByName(i,\"Creative\").forEach(e=>{const t={id:e.getAttribute(\"id\")||null,adId:parseCreativeAdIdAttribute(e),sequence:e.getAttribute(\"sequence\")||null,apiFramework:e.getAttribute(\"apiFramework\")||null};for(let i in e.childNodes){const s=e.childNodes[i];switch(s.nodeName){case\"Linear\":let e=parseCreativeLinear(s,t);e&&r.creatives.push(e);break;case\"NonLinearAds\":let i=parseCreativeNonLinear(s,t);i&&r.creatives.push(i);break;case\"CompanionAds\":let n=parseCreativeCompanion(s,t);n&&r.creatives.push(n)}}});break;case\"Extensions\":parseExtensions(r.extensions,parserUtils.childrenByName(i,\"Extension\"));break;case\"AdSystem\":r.system={value:parserUtils.parseNodeText(i),version:i.getAttribute(\"version\")||null};break;case\"AdTitle\":r.title=parserUtils.parseNodeText(i);break;case\"Description\":r.description=parserUtils.parseNodeText(i);break;case\"Advertiser\":r.advertiser=parserUtils.parseNodeText(i);break;case\"Pricing\":r.pricing={value:parserUtils.parseNodeText(i),model:i.getAttribute(\"model\")||null,currency:i.getAttribute(\"currency\")||null};break;case\"Survey\":r.survey=parserUtils.parseNodeText(i)}}return r}function parseWrapper(e){const t=parseInLine(e);let r=parserUtils.childByName(e,\"VASTAdTagURI\");if(r?t.nextWrapperURL=parserUtils.parseNodeText(r):(r=parserUtils.childByName(e,\"VASTAdTagURL\"))&&(t.nextWrapperURL=parserUtils.parseNodeText(parserUtils.childByName(r,\"URL\"))),t.creatives.forEach(e=>{if(-1!==[\"linear\",\"nonlinear\"].indexOf(e.type)){if(e.trackingEvents){t.trackingEvents||(t.trackingEvents={}),t.trackingEvents[e.type]||(t.trackingEvents[e.type]={});for(let r in e.trackingEvents){const i=e.trackingEvents[r];t.trackingEvents[e.type][r]||(t.trackingEvents[e.type][r]=[]),i.forEach(i=>{t.trackingEvents[e.type][r].push(i)})}}e.videoClickTrackingURLTemplates&&(t.videoClickTrackingURLTemplates||(t.videoClickTrackingURLTemplates=[]),e.videoClickTrackingURLTemplates.forEach(e=>{t.videoClickTrackingURLTemplates.push(e)})),e.videoClickThroughURLTemplate&&(t.videoClickThroughURLTemplate=e.videoClickThroughURLTemplate),e.videoCustomClickURLTemplates&&(t.videoCustomClickURLTemplates||(t.videoCustomClickURLTemplates=[]),e.videoCustomClickURLTemplates.forEach(e=>{t.videoCustomClickURLTemplates.push(e)}))}}),t.nextWrapperURL)return t}function parseExtensions(e,t){t.forEach(t=>{const r=new AdExtension,i=t.attributes,s=t.childNodes;if(t.attributes)for(let e in i){const t=i[e];t.nodeName&&t.nodeValue&&(r.attributes[t.nodeName]=t.nodeValue)}for(let e in s){const t=s[e],i=parserUtils.parseNodeText(t);if(\"#comment\"!==t.nodeName&&\"\"!==i){const e=new AdExtensionChild;if(e.name=t.nodeName,e.value=i,t.attributes){const r=t.attributes;for(let t in r){const i=r[t];e.attributes[i.nodeName]=i.nodeValue}}r.children.push(e)}}e.push(r)})}function parseCreativeAdIdAttribute(e){return e.getAttribute(\"AdID\")||e.getAttribute(\"adID\")||e.getAttribute(\"adId\")||null}var domain;function EventHandlers(){}function EventEmitter(){EventEmitter.init.call(this)}function $getMaxListeners(e){return void 0===e._maxListeners?EventEmitter.defaultMaxListeners:e._maxListeners}function emitNone(e,t,r){if(t)e.call(r);else for(var i=e.length,s=arrayClone(e,i),n=0;n<i;++n)s[n].call(r)}function emitOne(e,t,r,i){if(t)e.call(r,i);else for(var s=e.length,n=arrayClone(e,s),a=0;a<s;++a)n[a].call(r,i)}function emitTwo(e,t,r,i,s){if(t)e.call(r,i,s);else for(var n=e.length,a=arrayClone(e,n),o=0;o<n;++o)a[o].call(r,i,s)}function emitThree(e,t,r,i,s,n){if(t)e.call(r,i,s,n);else for(var a=e.length,o=arrayClone(e,a),l=0;l<a;++l)o[l].call(r,i,s,n)}function emitMany(e,t,r,i){if(t)e.apply(r,i);else for(var s=e.length,n=arrayClone(e,s),a=0;a<s;++a)n[a].apply(r,i)}function _addListener(e,t,r,i){var s,n,a;if(\"function\"!=typeof r)throw new TypeError('\"listener\" argument must be a function');if((n=e._events)?(n.newListener&&(e.emit(\"newListener\",t,r.listener?r.listener:r),n=e._events),a=n[t]):(n=e._events=new EventHandlers,e._eventsCount=0),a){if(\"function\"==typeof a?a=n[t]=i?[r,a]:[a,r]:i?a.unshift(r):a.push(r),!a.warned&&(s=$getMaxListeners(e))&&s>0&&a.length>s){a.warned=!0;var o=new Error(\"Possible EventEmitter memory leak detected. \"+a.length+\" \"+t+\" listeners added. Use emitter.setMaxListeners() to increase limit\");o.name=\"MaxListenersExceededWarning\",o.emitter=e,o.type=t,o.count=a.length,emitWarning(o)}}else a=n[t]=r,++e._eventsCount;return e}function emitWarning(e){\"function\"==typeof console.warn?console.warn(e):console.log(e)}function _onceWrap(e,t,r){var i=!1;function s(){e.removeListener(t,s),i||(i=!0,r.apply(e,arguments))}return s.listener=r,s}function listenerCount(e){var t=this._events;if(t){var r=t[e];if(\"function\"==typeof r)return 1;if(r)return r.length}return 0}function spliceOne(e,t){for(var r=t,i=r+1,s=e.length;i<s;r+=1,i+=1)e[r]=e[i];e.pop()}function arrayClone(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}function unwrapListeners(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function xdr(){let e;return window.XDomainRequest&&(e=new XDomainRequest),e}function supported(){return!!xdr()}function get(e,t,r){let i=\"function\"==typeof window.ActiveXObject?new window.ActiveXObject(\"Microsoft.XMLDOM\"):void 0;if(!i)return r(new Error(\"FlashURLHandler: Microsoft.XMLDOM format not supported\"));i.async=!1,request.open(\"GET\",e),request.timeout=t.timeout||0,request.withCredentials=t.withCredentials||!1,request.send(),request.onprogress=function(){},request.onload=function(){i.loadXML(request.responseText),r(null,i)}}EventHandlers.prototype=Object.create(null),EventEmitter.EventEmitter=EventEmitter,EventEmitter.usingDomains=!1,EventEmitter.prototype.domain=void 0,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.init=function(){this.domain=null,EventEmitter.usingDomains&&(!domain.active||this instanceof domain.Domain||(this.domain=domain.active)),this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new EventHandlers,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},EventEmitter.prototype.setMaxListeners=function(e){if(\"number\"!=typeof e||e<0||isNaN(e))throw new TypeError('\"n\" argument must be a positive number');return this._maxListeners=e,this},EventEmitter.prototype.getMaxListeners=function(){return $getMaxListeners(this)},EventEmitter.prototype.emit=function(e){var t,r,i,s,n,a,o,l=\"error\"===e;if(a=this._events)l=l&&null==a.error;else if(!l)return!1;if(o=this.domain,l){if(t=arguments[1],!o){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified \"error\" event. ('+t+\")\");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified \"error\" event')),t.domainEmitter=this,t.domain=o,t.domainThrown=!1,o.emit(\"error\",t),!1}if(!(r=a[e]))return!1;var p=\"function\"==typeof r;switch(i=arguments.length){case 1:emitNone(r,p,this);break;case 2:emitOne(r,p,this,arguments[1]);break;case 3:emitTwo(r,p,this,arguments[1],arguments[2]);break;case 4:emitThree(r,p,this,arguments[1],arguments[2],arguments[3]);break;default:for(s=new Array(i-1),n=1;n<i;n++)s[n-1]=arguments[n];emitMany(r,p,this,s)}return!0},EventEmitter.prototype.addListener=function(e,t){return _addListener(this,e,t,!1)},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.prependListener=function(e,t){return _addListener(this,e,t,!0)},EventEmitter.prototype.once=function(e,t){if(\"function\"!=typeof t)throw new TypeError('\"listener\" argument must be a function');return this.on(e,_onceWrap(this,e,t)),this},EventEmitter.prototype.prependOnceListener=function(e,t){if(\"function\"!=typeof t)throw new TypeError('\"listener\" argument must be a function');return this.prependListener(e,_onceWrap(this,e,t)),this},EventEmitter.prototype.removeListener=function(e,t){var r,i,s,n,a;if(\"function\"!=typeof t)throw new TypeError('\"listener\" argument must be a function');if(!(i=this._events))return this;if(!(r=i[e]))return this;if(r===t||r.listener&&r.listener===t)0==--this._eventsCount?this._events=new EventHandlers:(delete i[e],i.removeListener&&this.emit(\"removeListener\",e,r.listener||t));else if(\"function\"!=typeof r){for(s=-1,n=r.length;n-- >0;)if(r[n]===t||r[n].listener&&r[n].listener===t){a=r[n].listener,s=n;break}if(s<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new EventHandlers,this;delete i[e]}else spliceOne(r,s);i.removeListener&&this.emit(\"removeListener\",e,a||t)}return this},EventEmitter.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new EventHandlers,this._eventsCount=0):r[e]&&(0==--this._eventsCount?this._events=new EventHandlers:delete r[e]),this;if(0===arguments.length){for(var i,s=Object.keys(r),n=0;n<s.length;++n)\"removeListener\"!==(i=s[n])&&this.removeAllListeners(i);return this.removeAllListeners(\"removeListener\"),this._events=new EventHandlers,this._eventsCount=0,this}if(\"function\"==typeof(t=r[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},EventEmitter.prototype.listeners=function(e){var t,r=this._events;return r&&(t=r[e])?\"function\"==typeof t?[t.listener||t]:unwrapListeners(t):[]},EventEmitter.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):listenerCount.call(e,t)},EventEmitter.prototype.listenerCount=listenerCount,EventEmitter.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};const flashURLHandler={get:get,supported:supported};function get$1(e,t,r){r(new Error(\"Please bundle the library for node to use the node urlHandler\"))}const nodeURLHandler={get:get$1};function xhr(){try{const e=new window.XMLHttpRequest;return\"withCredentials\"in e?e:null}catch(e){return console.log(\"Error in XHRURLHandler support check:\",e),null}}function supported$1(){return!!xhr()}function get$2(e,t,r){if(\"https:\"===window.location.protocol&&0===e.indexOf(\"http://\"))return r(new Error(\"XHRURLHandler: Cannot go from HTTPS to HTTP.\"));try{const i=xhr();i.open(\"GET\",e),i.timeout=t.timeout||0,i.withCredentials=t.withCredentials||!1,i.overrideMimeType&&i.overrideMimeType(\"text/xml\"),i.onreadystatechange=function(){4===i.readyState&&(200===i.status?r(null,i.responseXML):r(new Error(`XHRURLHandler: ${i.statusText}`)))},i.send()}catch(e){r(new Error(\"XHRURLHandler: Unexpected error\"))}}const XHRURLHandler={get:get$2,supported:supported$1};function get$3(e,t,r){return r||(\"function\"==typeof t&&(r=t),t={}),\"undefined\"==typeof window||null===window?nodeURLHandler.get(e,t,r):XHRURLHandler.supported()?XHRURLHandler.get(e,t,r):flashURLHandler.supported()?flashURLHandler.get(e,t,r):r(new Error(\"Current context is not supported by any of the default URLHandlers. Please provide a custom URLHandler\"))}const urlHandler={get:get$3};class VASTResponse{constructor(){this.ads=[],this.errorURLTemplates=[]}}const DEFAULT_MAX_WRAPPER_DEPTH=10,DEFAULT_EVENT_DATA={ERRORCODE:900,extensions:[]};class VASTParser extends EventEmitter{constructor(){super(),this.remainingAds=[],this.parentURLs=[],this.errorURLTemplates=[],this.rootErrorURLTemplates=[],this.maxWrapperDepth=null,this.URLTemplateFilters=[],this.fetchingOptions={}}addURLTemplateFilter(e){\"function\"==typeof e&&this.URLTemplateFilters.push(e)}removeURLTemplateFilter(){this.URLTemplateFilters.pop()}countURLTemplateFilters(){return this.URLTemplateFilters.length}clearURLTemplateFilters(){this.URLTemplateFilters=[]}trackVastError(e,t,...r){this.emit(\"VAST-error\",Object.assign(DEFAULT_EVENT_DATA,t,...r)),util.track(e,t)}getErrorURLTemplates(){return this.rootErrorURLTemplates.concat(this.errorURLTemplates)}fetchVAST(e,t,r){return new Promise((i,s)=>{this.URLTemplateFilters.forEach(t=>{e=t(e)}),this.parentURLs.push(e),this.emit(\"VAST-resolving\",{url:e,wrapperDepth:t,originalUrl:r}),this.urlHandler.get(e,this.fetchingOptions,(t,r)=>{this.emit(\"VAST-resolved\",{url:e,error:t}),t?s(t):i(r)})})}initParsingStatus(e={}){this.rootURL=\"\",this.remainingAds=[],this.parentURLs=[],this.errorURLTemplates=[],this.rootErrorURLTemplates=[],this.maxWrapperDepth=e.wrapperLimit||DEFAULT_MAX_WRAPPER_DEPTH,this.fetchingOptions={timeout:e.timeout,withCredentials:e.withCredentials},this.urlHandler=e.urlhandler||urlHandler}getRemainingAds(e){if(0===this.remainingAds.length)return Promise.reject(new Error(\"No more ads are available for the given VAST\"));const t=e?util.flatten(this.remainingAds):this.remainingAds.shift();return this.errorURLTemplates=[],this.parentURLs=[],this.resolveAds(t,{wrapperDepth:0,originalUrl:this.rootURL}).then(e=>this.buildVASTResponse(e))}getAndParseVAST(e,t={}){return this.initParsingStatus(t),this.rootURL=e,this.fetchVAST(e).then(r=>(t.originalUrl=e,t.isRootVAST=!0,this.parse(r,t).then(e=>this.buildVASTResponse(e))))}parseVAST(e,t={}){return this.initParsingStatus(t),t.isRootVAST=!0,this.parse(e,t).then(e=>this.buildVASTResponse(e))}buildVASTResponse(e){const t=new VASTResponse;return t.ads=e,t.errorURLTemplates=this.getErrorURLTemplates(),this.completeWrapperResolving(t),t}parse(e,{resolveAll:t=!0,wrapperSequence:r=null,originalUrl:i=null,wrapperDepth:s=0,isRootVAST:n=!1}){if(!e||!e.documentElement||\"VAST\"!==e.documentElement.nodeName)return Promise.reject(new Error(\"Invalid VAST XMLDocument\"));let a=[];const o=e.documentElement.childNodes;for(let e in o){const t=o[e];if(\"Error\"===t.nodeName){const e=parserUtils.parseNodeText(t);n?this.rootErrorURLTemplates.push(e):this.errorURLTemplates.push(e)}if(\"Ad\"===t.nodeName){const e=parseAd(t);e?a.push(e):this.trackVastError(this.getErrorURLTemplates(),{ERRORCODE:101})}}const l=a.length,c=a[l-1];return 1===l&&void 0!==r&&null!==r&&c&&!c.sequence&&(c.sequence=r),!1===t&&(this.remainingAds=parserUtils.splitVAST(a),a=this.remainingAds.shift()),this.resolveAds(a,{wrapperDepth:s,originalUrl:i})}resolveAds(e=[],{wrapperDepth:t,originalUrl:r}){const i=[];return e.forEach(e=>{const s=this.resolveWrappers(e,t,r);i.push(s)}),Promise.all(i).then(e=>{const i=util.flatten(e);if(!i&&this.remainingAds.length>0){const e=this.remainingAds.shift();return this.resolveAds(e,{wrapperDepth:t,originalUrl:r})}return i})}resolveWrappers(e,t,r){return new Promise((i,s)=>{if(t++,!e.nextWrapperURL)return delete e.nextWrapperURL,i(e);if(t>=this.maxWrapperDepth||-1!==this.parentURLs.indexOf(e.nextWrapperURL))return e.errorCode=302,delete e.nextWrapperURL,i(e);e.nextWrapperURL=parserUtils.resolveVastAdTagURI(e.nextWrapperURL,r);const n=e.sequence;r=e.nextWrapperURL,this.fetchVAST(e.nextWrapperURL,t,r).then(s=>this.parse(s,{originalUrl:r,wrapperSequence:n,wrapperDepth:t}).then(t=>{if(delete e.nextWrapperURL,0===t.length)return e.creatives=[],i(e);t.forEach(t=>{t&&parserUtils.mergeWrapperAdData(t,e)}),i(t)})).catch(t=>{e.errorCode=301,e.errorMessage=t.message,i(e)})})}completeWrapperResolving(e){if(0===e.ads.length)this.trackVastError(e.errorURLTemplates,{ERRORCODE:303});else for(let t=e.ads.length-1;t>=0;t--){let r=e.ads[t];(r.errorCode||0===r.creatives.length)&&(this.trackVastError(r.errorURLTemplates.concat(e.errorURLTemplates),{ERRORCODE:r.errorCode||303},{ERRORMESSAGE:r.errorMessage||\"\"},{extensions:r.extensions},{system:r.system}),e.ads.splice(t,1))}}}let storage=null;const DEFAULT_STORAGE={data:{},length:0,getItem(e){return this.data[e]},setItem(e,t){this.data[e]=t,this.length=Object.keys(this.data).length},removeItem(e){delete data[e],this.length=Object.keys(this.data).length},clear(){this.data={},this.length=0}};class Storage{constructor(){this.storage=this.initStorage()}initStorage(){if(storage)return storage;try{storage=\"undefined\"!=typeof window&&null!==window?window.localStorage||window.sessionStorage:null}catch(e){storage=null}return storage&&!this.isStorageDisabled(storage)||(storage=DEFAULT_STORAGE).clear(),storage}isStorageDisabled(e){const t=\"__VASTStorage__\";try{if(e.setItem(t,t),e.getItem(t)!==t)return e.removeItem(t),!0}catch(e){return!0}return e.removeItem(t),!1}getItem(e){return this.storage.getItem(e)}setItem(e,t){return this.storage.setItem(e,t)}removeItem(e){return this.storage.removeItem(e)}clear(){return this.storage.clear()}}class VASTClient{constructor(e,t,r){this.cappingFreeLunch=e||0,this.cappingMinimumTimeInterval=t||0,this.defaultOptions={withCredentials:!1,timeout:0},this.vastParser=new VASTParser,this.storage=r||new Storage,void 0===this.lastSuccessfulAd&&(this.lastSuccessfulAd=0),void 0===this.totalCalls&&(this.totalCalls=0),void 0===this.totalCallsTimeout&&(this.totalCallsTimeout=0)}getParser(){return this.vastParser}get lastSuccessfulAd(){return this.storage.getItem(\"vast-client-last-successful-ad\")}set lastSuccessfulAd(e){this.storage.setItem(\"vast-client-last-successful-ad\",e)}get totalCalls(){return this.storage.getItem(\"vast-client-total-calls\")}set totalCalls(e){this.storage.setItem(\"vast-client-total-calls\",e)}get totalCallsTimeout(){return this.storage.getItem(\"vast-client-total-calls-timeout\")}set totalCallsTimeout(e){this.storage.setItem(\"vast-client-total-calls-timeout\",e)}hasRemainingAds(){return this.vastParser.remainingAds.length>0}getNextAds(e){return this.vastParser.getRemainingAds(e)}get(e,t={}){const r=Date.now();return(t=Object.assign(this.defaultOptions,t)).hasOwnProperty(\"resolveAll\")||(t.resolveAll=!1),this.totalCallsTimeout<r?(this.totalCalls=1,this.totalCallsTimeout=r+36e5):this.totalCalls++,new Promise((i,s)=>{if(this.cappingFreeLunch>=this.totalCalls)return s(new Error(`VAST call canceled – FreeLunch capping not reached yet ${this.totalCalls}/${this.cappingFreeLunch}`));const n=r-this.lastSuccessfulAd;if(n<0)this.lastSuccessfulAd=0;else if(n<this.cappingMinimumTimeInterval)return s(new Error(`VAST call canceled – (${this.cappingMinimumTimeInterval})ms minimum interval reached`));this.vastParser.getAndParseVAST(e,t).then(e=>i(e)).catch(e=>s(e))})}}const DEFAULT_SKIP_DELAY=-1;class VASTTracker extends EventEmitter{constructor(e,t,r,i=null){super(),this.ad=t,this.creative=r,this.variation=i,this.muted=!1,this.impressed=!1,this.skippable=!1,this.trackingEvents={},this._alreadyTriggeredQuartiles={},this.emitAlwaysEvents=[\"creativeView\",\"start\",\"firstQuartile\",\"midpoint\",\"thirdQuartile\",\"complete\",\"resume\",\"pause\",\"rewind\",\"skip\",\"closeLinear\",\"close\"];for(let e in this.creative.trackingEvents){const t=this.creative.trackingEvents[e];this.trackingEvents[e]=t.slice(0)}this.creative instanceof CreativeLinear?this._initLinearTracking():this._initVariationTracking(),e&&this.on(\"start\",()=>{e.lastSuccessfulAd=Date.now()})}_initLinearTracking(){this.linear=!0,this.skipDelay=this.creative.skipDelay,this.setDuration(this.creative.duration),this.clickThroughURLTemplate=this.creative.videoClickThroughURLTemplate,this.clickTrackingURLTemplates=this.creative.videoClickTrackingURLTemplates}_initVariationTracking(){if(this.linear=!1,this.skipDelay=DEFAULT_SKIP_DELAY,this.variation){for(let e in this.variation.trackingEvents){const t=this.variation.trackingEvents[e];this.trackingEvents[e]?this.trackingEvents[e]=this.trackingEvents[e].concat(t.slice(0)):this.trackingEvents[e]=t.slice(0)}this.variation instanceof NonLinearAd?(this.clickThroughURLTemplate=this.variation.nonlinearClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.nonlinearClickTrackingURLTemplates,this.setDuration(this.variation.minSuggestedDuration)):this.variation instanceof CompanionAd&&(this.clickThroughURLTemplate=this.variation.companionClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.companionClickTrackingURLTemplates)}}setDuration(e){this.assetDuration=e,this.quartiles={firstQuartile:Math.round(25*this.assetDuration)/100,midpoint:Math.round(50*this.assetDuration)/100,thirdQuartile:Math.round(75*this.assetDuration)/100}}setProgress(e){const t=this.skipDelay||DEFAULT_SKIP_DELAY;if(-1===t||this.skippable||(t>e?this.emit(\"skip-countdown\",t-e):(this.skippable=!0,this.emit(\"skip-countdown\",0))),this.assetDuration>0){const t=[];if(e>0){const r=Math.round(e/this.assetDuration*100);t.push(\"start\"),t.push(`progress-${r}%`),t.push(`progress-${Math.round(e)}`);for(let r in this.quartiles)this.isQuartileReached(r,this.quartiles[r],e)&&(t.push(r),this._alreadyTriggeredQuartiles[r]=!0)}t.forEach(e=>{this.track(e,!0)}),e<this.progress&&this.track(\"rewind\")}this.progress=e}isQuartileReached(e,t,r){let i=!1;return t<=r&&!this._alreadyTriggeredQuartiles[e]&&(i=!0),i}setMuted(e){this.muted!==e&&this.track(e?\"mute\":\"unmute\"),this.muted=e}setPaused(e){this.paused!==e&&this.track(e?\"pause\":\"resume\"),this.paused=e}setFullscreen(e){this.fullscreen!==e&&this.track(e?\"fullscreen\":\"exitFullscreen\"),this.fullscreen=e}setExpand(e){this.expanded!==e&&this.track(e?\"expand\":\"collapse\"),this.expanded=e}setSkipDelay(e){\"number\"==typeof e&&(this.skipDelay=e)}trackImpression(){this.impressed||(this.impressed=!0,this.trackURLs(this.ad.impressionURLTemplates),this.track(\"creativeView\"))}errorWithCode(e){this.trackURLs(this.ad.errorURLTemplates,{ERRORCODE:e})}complete(){this.track(\"complete\")}close(){this.track(this.linear?\"closeLinear\":\"close\")}skip(){this.track(\"skip\"),this.trackingEvents=[]}click(e=null){this.clickTrackingURLTemplates&&this.clickTrackingURLTemplates.length&&this.trackURLs(this.clickTrackingURLTemplates);const t=this.clickThroughURLTemplate||e;if(t){const e=this.linear?{CONTENTPLAYHEAD:this.progressFormatted()}:{},r=util.resolveURLTemplates([t],e)[0];this.emit(\"clickthrough\",r)}}track(e,t=!1){\"closeLinear\"===e&&!this.trackingEvents[e]&&this.trackingEvents.close&&(e=\"close\");const r=this.trackingEvents[e],i=this.emitAlwaysEvents.indexOf(e)>-1;r?(this.emit(e,\"\"),this.trackURLs(r)):i&&this.emit(e,\"\"),t&&(delete this.trackingEvents[e],i&&this.emitAlwaysEvents.splice(this.emitAlwaysEvents.indexOf(e),1))}trackURLs(e,t={}){this.linear&&(this.creative&&this.creative.mediaFiles&&this.creative.mediaFiles[0]&&this.creative.mediaFiles[0].fileURL&&(t.ASSETURI=this.creative.mediaFiles[0].fileURL),t.CONTENTPLAYHEAD=this.progressFormatted()),util.track(e,t)}progressFormatted(){const e=parseInt(this.progress);let t=e/3600;t.length<2&&(t=`0${t}`);let r=e/60%60;r.length<2&&(r=`0${r}`);let i=e%60;return i.length<2&&(i=`0${r}`),`${t}:${r}:${i}.${parseInt(100*(this.progress-e))}`}}export{VASTClient,VASTParser,VASTTracker};","import API from 'api/Api';\r\nimport {isWebRTC, checkAndGetContainerElement} from 'utils/validator';\r\nimport _ from \"utils/underscore\";\r\n\r\n/**\r\n * Main OvenPlayerSDK object\r\n */\r\nfunction ovenPlayerFactory() {\r\n\r\n    const OvenPlayerSDK = {};\r\n\r\n    const playerList = OvenPlayerSDK.playerList = [];\r\n\r\n    /**\r\n     * Create player instance and return it.\r\n     *\r\n     * @param      {string | dom element} container  Id of container element or container element\r\n     * @param      {object} options  The options\r\n     */\r\n    OvenPlayerSDK.create = function (container, options) {\r\n\r\n        if (!window.OvenPlayerConsole || Object.keys(window.OvenPlayerConsole).length === 0) {\r\n            window.OvenPlayerConsole = {};\r\n            OvenPlayerConsole['log'] = function () {\r\n            };\r\n        }\r\n\r\n        let containerElement = checkAndGetContainerElement(container);\r\n\r\n        const playerInstance = API(containerElement);\r\n        playerInstance.init(options);\r\n\r\n        playerList.push(playerInstance);\r\n\r\n        return playerInstance;\r\n    };\r\n\r\n    /**\r\n     * Gets the player instance list.\r\n     *\r\n     * @return     {array}  The player list.\r\n     */\r\n    OvenPlayerSDK.getPlayerList = function () {\r\n\r\n        return playerList;\r\n    };\r\n\r\n    /**\r\n     * Gets the player instance by container id.\r\n     *\r\n     * @param      {string}  containerId  The container identifier\r\n     * @return     {obeject | null}  The player instance.\r\n     */\r\n    OvenPlayerSDK.getPlayerByContainerId = function (containerId) {\r\n\r\n        for (let i = 0; i < playerList.length; i++) {\r\n\r\n            if (playerList[i].getContainerId() === containerId) {\r\n\r\n                return playerList[i];\r\n            }\r\n        }\r\n\r\n        return null;\r\n    };\r\n\r\n    /**\r\n     * Gets the player instance by index.\r\n     *\r\n     * @param      {number}  index   The index\r\n     * @return     {object | null}  The player instance.\r\n     */\r\n    OvenPlayerSDK.getPlayerByIndex = function (index) {\r\n\r\n        const playerInstance = playerList[index];\r\n\r\n        if (playerInstance) {\r\n\r\n            return playerInstance;\r\n        } else {\r\n\r\n            return null;\r\n        }\r\n    };\r\n\r\n    /**\r\n     * Remove the player instance by playerInstance.\r\n     *\r\n     * @param      {playerInstance}  playerInstance\r\n     * @return     {null}\r\n     */\r\n    OvenPlayerSDK.removePlayer = function (playerInstance) {\r\n\r\n        for (let i = 0; i < playerList.length; i++) {\r\n\r\n            if (playerList[i] === playerInstance) {\r\n                playerList.splice(i, 1);\r\n            }\r\n        }\r\n    };\r\n\r\n    /**\r\n     * Generate webrtc source for player source type.\r\n     *\r\n     * @param      {Object | Array}  source   webrtc source\r\n     * @return     {Array}  Player source Object.\r\n     */\r\n    OvenPlayerSDK.generateWebrtcUrls = function (sources) {\r\n        return (_.isArray(sources) ? sources : [sources]).map(function (source, index) {\r\n            if (source.host && isWebRTC(source.host) && source.application && source.stream) {\r\n                return {\r\n                    file: source.host + \"/\" + source.application + \"/\" + source.stream,\r\n                    type: \"webrtc\",\r\n                    label: source.label ? source.label : \"webrtc-\" + (index + 1)\r\n                };\r\n            }\r\n        });\r\n    };\r\n\r\n    /**\r\n     * Whether show the player core log or not.\r\n     *\r\n     * @param      {boolean}  boolean   run debug mode or not.\r\n     * @return     {boolean}  run debug mode or not.\r\n     */\r\n    OvenPlayerSDK.debug = function (isDebugMode) {\r\n\r\n        if (isDebugMode) {\r\n            window.OvenPlayerConsole = {log: window['console']['log']};\r\n        } else {\r\n            window.OvenPlayerConsole = {\r\n                log: function () {\r\n                }\r\n            };\r\n        }\r\n        return isDebugMode;\r\n    };\r\n\r\n    return OvenPlayerSDK;\r\n}\r\n\r\n\r\nexport default ovenPlayerFactory();\r\n","/**\r\n * Created by hoho on 25/06/2019.\r\n */\r\n\r\nimport { VASTClient, VASTTracker } from 'utils/vast-client';\r\nimport AdsEventsListener from \"api/ads/vast/Listener\";\r\nimport {TEMP_VIDEO_URL} from \"api/ads/utils\";\r\nimport {\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n    STATE_AD_ERROR,\r\n    CONTENT_META,\r\n    PROVIDER_DASH\r\n} from \"api/constants\";\r\n\r\nconst Ad = function(elVideo, provider, playerConfig, adTagUrl){\r\n    const AUTOPLAY_NOT_ALLOWED = \"autoplayNotAllowed\";\r\n\r\n    let that = {};\r\n    let spec = {\r\n        started: false, //player started\r\n        active : false, //on Ad\r\n        isVideoEnded : false,\r\n        lang : playerConfig.getLanguage()\r\n    };\r\n    let adsErrorOccurred = false;\r\n    let listener = null;\r\n\r\n    let container = \"\";\r\n    let elAdVideo = null;\r\n    let textView = \"\";\r\n    let adButton = \"\";\r\n\r\n    let autoplayAllowed = false, autoplayRequiresMuted = false;\r\n    let browser = playerConfig.getBrowser();\r\n    let isMobile = browser.os === \"Android\" || browser.os === \"iOS\";\r\n\r\n    const createAdContainer = () => {\r\n        let adContainer = document.createElement('div');\r\n        adContainer.setAttribute('class', 'op-ads');\r\n        adContainer.setAttribute('id', 'op-ads');\r\n        playerConfig.getContainer().append(adContainer);\r\n\r\n        elAdVideo = document.createElement('video');\r\n        elAdVideo.setAttribute('playsinline', 'true');\r\n        elAdVideo.setAttribute('title', 'Advertisement');\r\n        elAdVideo.setAttribute('class', 'op-ads-vast-video');\r\n\r\n        adButton = document.createElement('div');\r\n        adButton.setAttribute('class', 'op-ads-button');\r\n\r\n        textView = document.createElement('div');\r\n        textView.setAttribute('class', 'op-ads-textview');\r\n\r\n        adButton.append(textView);\r\n        adContainer.append(elAdVideo);\r\n        adContainer.append(adButton);\r\n\r\n        return adContainer;\r\n    };\r\n\r\n    container = createAdContainer();\r\n\r\n    let vastClient = new VASTClient();\r\n    let vastTracker = null;\r\n    let ad = null;\r\n\r\n\r\n    const OnAdError = function(error){\r\n        console.log(error);\r\n        adsErrorOccurred = true;\r\n        elAdVideo.style.display = \"none\";\r\n        provider.trigger(STATE_AD_ERROR, {code : error.code, message : error.message});\r\n        spec.active = false;\r\n        spec.started = true;\r\n        provider.play();\r\n    };\r\n\r\n    const initRequest = function () {\r\n        vastClient.get(adTagUrl) .then(res => {\r\n            // Do something with the parsed VAST response\r\n            OvenPlayerConsole.log(\"VAST : initRequest()\");\r\n            ad = res.ads[0];\r\n            if(!ad){\r\n                throw {code : 401, message : \"File not found. Unable to find Linear/MediaFile from URI.\"};\r\n            }\r\n            vastTracker = new VASTTracker(vastClient, ad, ad.creatives[0]);\r\n\r\n            OvenPlayerConsole.log(\"VAST : created ad tracker.\");\r\n\r\n            listener = AdsEventsListener(elAdVideo, vastTracker, provider, spec, adButton, textView, OnAdError);\r\n\r\n            let videoURL =  \"\";\r\n            if(ad.creatives && ad.creatives.length > 0 && ad.creatives[0].mediaFiles && ad.creatives[0].mediaFiles.length > 0 && ad.creatives[0].mediaFiles[0].fileURL){\r\n                videoURL = ad.creatives[0].mediaFiles[0].fileURL;\r\n                OvenPlayerConsole.log(\"VAST : media url : \", videoURL);\r\n            }\r\n            elAdVideo.src = videoURL;\r\n\r\n            //keep volume even if playlist item changes.\r\n            elAdVideo.volume = elVideo.volume;\r\n            elAdVideo.muted = elVideo.muted;\r\n\r\n        }).catch(function(error){\r\n            OnAdError(error);\r\n        });\r\n\r\n    };\r\n\r\n\r\n\r\n    const checkAutoplaySupport = function () {\r\n        OvenPlayerConsole.log(\"VAST : checkAutoplaySupport() \");\r\n\r\n        let temporarySupportCheckVideo = document.createElement('video');\r\n        temporarySupportCheckVideo.setAttribute('playsinline', 'true');\r\n        temporarySupportCheckVideo.src = TEMP_VIDEO_URL;\r\n        temporarySupportCheckVideo.load();\r\n\r\n\r\n        elAdVideo.load();   //for ios User Interaction problem\r\n        //Dash has already loaded when triggered provider.play() always.\r\n        if(isMobile && provider.getName() !== PROVIDER_DASH ){\r\n            //Main video sets user gesture when temporarySupportCheckVideo triggered checking.\r\n            elVideo.load();\r\n        }\r\n        const clearAndReport = function(_autoplayAllowed, _autoplayRequiresMuted){\r\n            autoplayAllowed = _autoplayAllowed;\r\n            autoplayRequiresMuted = _autoplayRequiresMuted;\r\n            temporarySupportCheckVideo.pause();\r\n            temporarySupportCheckVideo.remove();\r\n        };\r\n\r\n        return new Promise(function(resolve, reject){\r\n            if(!temporarySupportCheckVideo.play){\r\n                //I can't remember this case...\r\n                OvenPlayerConsole.log(\"VAST : !temporarySupportCheckVideo.play\");\r\n                clearAndReport(true, false);\r\n                resolve();\r\n            }else{\r\n                let playPromise = temporarySupportCheckVideo.play();\r\n                if (playPromise !== undefined) {\r\n                    playPromise.then(function(){\r\n                        OvenPlayerConsole.log(\"VAST : auto play allowed.\");\r\n                        // If we make it here, unmuted autoplay works.\r\n                        clearAndReport(true, false);\r\n                        resolve();\r\n                    }).catch(function(error){\r\n                        OvenPlayerConsole.log(\"VAST : auto play failed\", error.message);\r\n                        clearAndReport(false, false);\r\n                        resolve();\r\n                    });\r\n                }else{\r\n                    OvenPlayerConsole.log(\"VAST : promise not support\");\r\n                    //Maybe this is IE11....\r\n                    clearAndReport(true, false);\r\n                    resolve();\r\n                }\r\n            }\r\n        });\r\n    }\r\n    that.isActive = () => {\r\n        return spec.active;\r\n    };\r\n    that.started = () => {\r\n        return spec.started;\r\n    };\r\n    that.play = () => {\r\n        if(spec.started){\r\n            return elAdVideo.play();\r\n        }else{\r\n            return new Promise(function (resolve, reject) {\r\n\r\n                const checkMainContentLoaded = function(){\r\n\r\n                    //wait for main contents meta loaded.\r\n                    //have to trigger CONTENT_META first. next trigger AD_CHANGED.\r\n                    //initControlUI first ->  init ad UI\r\n                    //Maybe google ima waits content loaded internal.\r\n                    if(provider.metaLoaded()){\r\n                        OvenPlayerConsole.log(\"VAST : main contents meta loaded.\");\r\n                        checkAutoplaySupport().then(function(){\r\n                            if( (playerConfig.isAutoStart() && !autoplayAllowed) ){\r\n                                OvenPlayerConsole.log(\"VAST : autoplayAllowed : false\");\r\n                                spec.started = false;\r\n                                reject(new Error(AUTOPLAY_NOT_ALLOWED));\r\n                            }else{\r\n                                initRequest();\r\n\r\n                                resolve();\r\n                            }\r\n                        });\r\n\r\n                    }else{\r\n                        setTimeout(checkMainContentLoaded, 100);\r\n                    }\r\n\r\n                };\r\n                checkMainContentLoaded();\r\n\r\n            });\r\n        }\r\n    };\r\n    that.pause = () => {\r\n        elAdVideo.pause();\r\n    };\r\n\r\n    //End Of Main Contents.\r\n    that.videoEndedCallback = (completeContentCallback) => {\r\n\r\n        completeContentCallback();\r\n        //check true when main contents ended.\r\n        spec.isVideoEnded = true;\r\n    };\r\n    that.destroy = () => {\r\n        if(listener){\r\n            listener.destroy();\r\n            listener = null;\r\n        }\r\n        vastTracker = null;\r\n        vastClient = null;\r\n\r\n        container.remove();\r\n\r\n    };\r\n    return that;\r\n};\r\n\r\nexport default Ad;","/**\r\n * Created by hoho on 26/06/2019.\r\n */\r\nimport {\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n    AD_CHANGED,\r\n    AD_TIME,\r\n    STATE_PAUSED,\r\n    STATE_ERROR,\r\n    CONTENT_COMPLETE,\r\n    CONTENT_SEEK,\r\n    CONTENT_BUFFER_FULL,\r\n    CONTENT_SEEKED,\r\n    CONTENT_BUFFER,\r\n    CONTENT_TIME,\r\n    CONTENT_VOLUME,\r\n    CONTENT_META,\r\n    PLAYER_UNKNWON_ERROR,\r\n    PLAYER_UNKNWON_OPERATION_ERROR,\r\n    PLAYER_UNKNWON_NETWORK_ERROR,\r\n    PLAYER_UNKNWON_DECODE_ERROR,\r\n    PLAYER_FILE_ERROR,\r\n    PLAYER_STATE,\r\n    PLAYER_CLICKED,\r\n    PLAYER_AD_CLICK,\r\n    PROVIDER_HTML5,\r\n    PROVIDER_WEBRTC,\r\n    PROVIDER_DASH,\r\n    PROVIDER_HLS\r\n} from \"api/constants\";\r\nimport LA$ from \"utils/likeA$.js\";\r\n\r\nconst Listener = function(elAdVideo, vastTracker, provider, adsSpec, adButton, textView, OnAdError){\r\n    const lowLevelEvents = {};\r\n    let that = {};\r\n    const MEDIAFILE_PLAYBACK_ERROR = '405';\r\n\r\n    let $textView = LA$(textView);\r\n    let $adButton = LA$(adButton);\r\n    let $elAdVideo = LA$(elAdVideo);\r\n\r\n    provider.on(CONTENT_VOLUME, function(data) {\r\n        if(data.mute){\r\n            elAdVideo.muted = true;\r\n        }else{\r\n            elAdVideo.muted = false;\r\n            elAdVideo.volume = data.volume/100;\r\n        }\r\n    }, that);\r\n\r\n    //Like a CONTENT_RESUME_REQUESTED\r\n    const processEndOfAd = function(){\r\n        adsSpec.active = false;\r\n\r\n        $adButton.hide();\r\n\r\n        if(adsSpec.started && (provider.getPosition() === 0 || !adsSpec.isVideoEnded)  ){\r\n            $elAdVideo.hide();\r\n            provider.play();\r\n        }\r\n        provider.trigger(STATE_AD_COMPLETE);\r\n    };\r\n    //Like a CONTENT_PAUSE_REQUESTED\r\n    const processStartOfAd = function(){\r\n\r\n        $elAdVideo.show();\r\n        $adButton.show();\r\n\r\n    };\r\n    const skipButtonClicked = function(event){\r\n        if($textView.hasClass(\"videoAdUiAction\")){\r\n            vastTracker.skip();\r\n            elAdVideo.pause();\r\n            processEndOfAd();\r\n        }\r\n    };\r\n\r\n    textView.addEventListener(\"click\", skipButtonClicked, false);\r\n\r\n\r\n    lowLevelEvents.error = function(){\r\n        OvenPlayerConsole.log(\"VAST : listener : error.\", elAdVideo.error);\r\n        console.log(\"VAST : listener : error.\", elAdVideo.error);\r\n        let error = {};\r\n        const code = (elAdVideo.error && elAdVideo.error.code) || 0;\r\n\r\n        if(code === 2) {\r\n            error.code = 402;\r\n            error.message = \"Timeout of MediaFile URI.\";\r\n        }else if(code === 3){\r\n            error.code = 405;\r\n            error.message = \"Problem displaying MediaFile. Video player found a MediaFile with supported type but couldn’t display it. MediaFile may include: unsupported codecs, different MIME type than MediaFile@type, unsupported delivery method, etc.\";\r\n        }else if(code === 4){\r\n            error.code = 403;\r\n            error.message = \"Couldn’t find MediaFile that is supported by this video player, based on the attributes of the MediaFile element.\";\r\n        }else{\r\n            error.code = 400;\r\n            error.message = \"General Linear error. Video player is unable to display the Linear Ad.\";\r\n        }\r\n        vastTracker.errorWithCode(error.code);\r\n        OnAdError(MEDIAFILE_PLAYBACK_ERROR);\r\n    };\r\n\r\n    lowLevelEvents.canplay = function(){\r\n\r\n    };\r\n    lowLevelEvents.ended = function(){\r\n        vastTracker.complete();\r\n\r\n        processEndOfAd();\r\n    };\r\n    lowLevelEvents.click = function(event){\r\n        vastTracker.click();\r\n    };\r\n    lowLevelEvents.play = function(){\r\n        vastTracker.setPaused(false);\r\n    };\r\n    lowLevelEvents.pause = function(){\r\n        vastTracker.setPaused(true);\r\n    };\r\n    lowLevelEvents.timeupdate = function(event){\r\n        vastTracker.setProgress(event.target.currentTime);\r\n        provider.trigger(AD_TIME, {\r\n            duration : elAdVideo.duration,\r\n            position : elAdVideo.currentTime\r\n        });\r\n    };\r\n    lowLevelEvents.volumechange = function(event){\r\n        OvenPlayerConsole.log(\"VAST : listener : Ad Video Volumechange.\");\r\n        vastTracker.setMuted(event.target.muted);\r\n    };\r\n    lowLevelEvents.loadedmetadata = function(){\r\n        OvenPlayerConsole.log(\"VAST : listener : Ad CONTENT LOADED .\");\r\n\r\n        //Flash play is very fast...\r\n        if(STATE_PLAYING === provider.getState()){\r\n            provider.pause();\r\n        }\r\n\r\n        vastTracker.trackImpression();\r\n\r\n        provider.trigger(STATE_AD_LOADED, {remaining : elAdVideo.duration, isLinear : true});\r\n        elAdVideo.play();\r\n    };\r\n\r\n    vastTracker.on('skip', () => {\r\n        // skip tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : skipped\");\r\n    });\r\n\r\n    vastTracker.on('mute', () => {\r\n        // mute tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : muted\");\r\n    });\r\n\r\n    vastTracker.on('unmute', () => {\r\n        // unmute tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : unmuted\");\r\n    });\r\n\r\n    vastTracker.on('resume', () => {\r\n        // resume tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : vastTracker resumed.\");\r\n\r\n        //prevent to set STATE_AD_PLAYING when first play.\r\n        if(adsSpec.started){\r\n            provider.setState(STATE_AD_PLAYING);\r\n        }\r\n\r\n    });\r\n    vastTracker.on('pause', () => {\r\n        // pause tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : vastTracker paused.\");\r\n        provider.setState(STATE_AD_PAUSED);\r\n    });\r\n\r\n    vastTracker.on('clickthrough', url => {\r\n        // Open the resolved clickThrough url\r\n        OvenPlayerConsole.log(\"VAST : listener : clickthrough :\", url);\r\n        //document.location.href = url;\r\n        window.open(url, '_blank');\r\n\r\n    });\r\n\r\n    vastTracker.on('skip-countdown', (data) => {\r\n        if(data === 0){\r\n            if(adsSpec.lang === \"ko\"){\r\n                $textView.html(\"광고 건너뛰기<i class='op-con op-arrow-right btn-right'></i>\");\r\n            }else{\r\n                $textView.html(\"Ad Skip<i class='op-con op-arrow-right btn-right'></i>\");\r\n            }\r\n            $textView.addClass(\"videoAdUiAction\");\r\n        }else{\r\n            if(adsSpec.lang === \"ko\"){\r\n                $textView.html((parseInt(data)+1)+\"초 후에 이 광고를 건너뛸 수 있습니다.\");\r\n            }else{\r\n                $textView.html(\"You can skip this ad in \"+(parseInt(data)+1));\r\n\r\n            }\r\n        }\r\n    });\r\n    vastTracker.on('rewind', () => {\r\n        OvenPlayerConsole.log(\"VAST : listener : rewind\");\r\n    });\r\n\r\n    vastTracker.on('start', () => {\r\n        OvenPlayerConsole.log(\"VAST : listener : started\");\r\n\r\n        adsSpec.started = true;\r\n        adsSpec.active = true;\r\n        processStartOfAd();\r\n\r\n        provider.trigger(AD_CHANGED, {isLinear : true});\r\n        provider.setState(STATE_AD_PLAYING);\r\n    });\r\n    vastTracker.on('firstQuartile', () => {\r\n        // firstQuartile tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : firstQuartile\");\r\n    });\r\n    vastTracker.on('midpoint', () => {\r\n        OvenPlayerConsole.log(\"VAST : listener : midpoint\");\r\n    });\r\n    vastTracker.on('thirdQuartile', () => {\r\n        OvenPlayerConsole.log(\"VAST : listener : thirdQuartile\");\r\n    });\r\n\r\n    vastTracker.on('creativeView', () => {\r\n        // impression tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : creativeView\");\r\n\r\n    });\r\n\r\n    Object.keys(lowLevelEvents).forEach(eventName => {\r\n        elAdVideo.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        elAdVideo.addEventListener(eventName, lowLevelEvents[eventName]);\r\n    });\r\n\r\n    that.destroy = () =>{\r\n        OvenPlayerConsole.log(\"EventListener : destroy()\");\r\n        textView.removeEventListener(\"click\", skipButtonClicked, false);\r\n        Object.keys(lowLevelEvents).forEach(eventName => {\r\n            elAdVideo.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        });\r\n    };\r\n    return that;\r\n};\r\n\r\nexport default Listener;","/**\r\n * Created by hoho on 2018. 6. 27..\r\n */\r\nimport Ima from \"api/ads/ima/Ad\";\r\nimport Vast from \"api/ads/vast/Ad\";\r\nimport EventEmitter from \"api/EventEmitter\";\r\nimport EventsListener from \"api/provider/html5/Listener\";\r\nimport { pickCurrentSource } from \"api/provider/utils\";\r\nimport {\r\n    WARN_MSG_MUTEDPLAY,\r\n    UI_ICONS, PLAYER_WARNING,\r\n    STATE_IDLE, STATE_PLAYING, STATE_PAUSED, STATE_COMPLETE, STATE_ERROR,\r\n    PLAYER_STATE, PLAYER_COMPLETE, PLAYER_PAUSE, PLAYER_PLAY, STATE_AD_PLAYING, STATE_AD_PAUSED,\r\n    CONTENT_META, CONTENT_TIME, CONTENT_CAPTION_CUE_CHANGED, CONTENT_SOURCE_CHANGED,\r\n    AD_CLIENT_GOOGLEIMA, AD_CLIENT_VAST,\r\n    PLAYBACK_RATE_CHANGED, CONTENT_MUTE, PROVIDER_HTML5, PROVIDER_WEBRTC, PROVIDER_DASH, PROVIDER_HLS\r\n} from \"api/constants\";\r\n\r\n/**\r\n * @brief   Core For Html5 Video.\r\n * @param   spec member value\r\n * @param   playerConfig  player config\r\n * @param   onExtendedLoad on load handler\r\n * */\r\nconst Provider = function (spec, playerConfig, onExtendedLoad) {\r\n    OvenPlayerConsole.log(\"[Provider] loaded. \");\r\n\r\n    let that = {};\r\n    EventEmitter(that);\r\n\r\n    let dashAttachedView = false;\r\n\r\n    let elVideo = spec.element;\r\n    let ads = null, listener = null, videoEndedCallback = null;\r\n\r\n    let isPlayingProcessing = false;\r\n\r\n    if (spec.adTagUrl) {\r\n        OvenPlayerConsole.log(\"[Provider] Ad Client - \", playerConfig.getAdClient());\r\n        if (playerConfig.getAdClient() === AD_CLIENT_VAST) {\r\n            ads = Vast(elVideo, that, playerConfig, spec.adTagUrl);\r\n        } else {\r\n            ads = Ima(elVideo, that, playerConfig, spec.adTagUrl);\r\n        }\r\n\r\n        if (!ads) {\r\n            console.log(\"Can not load due to google ima for Ads.\");\r\n        }\r\n    }\r\n\r\n    listener = EventsListener(elVideo, that, ads ? ads.videoEndedCallback : null, playerConfig);\r\n    elVideo.playbackRate = elVideo.defaultPlaybackRate = playerConfig.getPlaybackRate();\r\n\r\n    const _load = (lastPlayPosition) => {\r\n\r\n        const source = spec.sources[spec.currentSource];\r\n        spec.framerate = source.framerate;\r\n\r\n        that.setVolume(playerConfig.getVolume());\r\n\r\n        if (!spec.framerate) {\r\n            //init timecode mode\r\n            playerConfig.setTimecodeMode(true);\r\n        }\r\n        if (onExtendedLoad) {\r\n            onExtendedLoad(source, lastPlayPosition);\r\n\r\n        } else {\r\n\r\n            OvenPlayerConsole.log(\"source loaded : \", source, \"lastPlayPosition : \" + lastPlayPosition);\r\n\r\n            let previousSource = elVideo.src;\r\n\r\n            // const sourceElement = document.createElement('source');\r\n            // sourceElement.src = source.file;\r\n\r\n            const sourceChanged = (source.file !== previousSource);\r\n\r\n            if (sourceChanged) {\r\n\r\n                elVideo.src = source.file;\r\n\r\n                //Don't use this. https://stackoverflow.com/questions/30637784/detect-an-error-on-html5-video\r\n                //elVideo.append(sourceElement);\r\n\r\n                // Do not call load if src was not set. load() will cancel any active play promise.\r\n                if (previousSource || previousSource === '') {\r\n\r\n                    elVideo.load();\r\n                }\r\n\r\n            }\r\n\r\n            that.on(CONTENT_META, function () {\r\n                if (lastPlayPosition > 0) {\r\n                    that.seek(lastPlayPosition);\r\n                }\r\n            });\r\n        }\r\n\r\n    };\r\n\r\n    that.getName = () => {\r\n        return spec.name;\r\n    };\r\n    that.getMse = () => {\r\n        return spec.mse;\r\n    };\r\n    that.getMediaElement = () => {\r\n        return spec.element;\r\n    };\r\n    that.canSeek = () => {\r\n        return spec.canSeek;\r\n    };\r\n    that.setCanSeek = (canSeek) => {\r\n        spec.canSeek = canSeek;\r\n    };\r\n    that.isSeeking = () => {\r\n        return spec.seeking;\r\n    };\r\n    that.setSeeking = (seeking) => {\r\n        spec.seeking = seeking;\r\n    };\r\n    that.setMetaLoaded = () => {\r\n        spec.isLoaded = true;\r\n    };\r\n    that.metaLoaded = () => {\r\n        return spec.isLoaded;\r\n    };\r\n\r\n    that.setState = (newState) => {\r\n        if (spec.state !== newState) {\r\n            let prevState = spec.state;\r\n\r\n            OvenPlayerConsole.log(\"Provider : setState()\", newState);\r\n\r\n            //ToDo : This is temporary code. If main video occur error, player avoid error message on ad playing.\r\n            if (prevState === STATE_AD_PLAYING && (newState === STATE_ERROR || newState === STATE_IDLE)) {\r\n                return false;\r\n            }\r\n\r\n            /*\r\n             * 2019-06-13\r\n             * No more necessary this codes.\r\n             * Checking the autoPlay support was using main video element. elVideo.play() -> yes or no??\r\n             * And then that causes triggering play and pause event.\r\n             * And that checking waits for elVideo loaded. Dash load completion time is unknown.\r\n             * Then I changed check method. I make temporary video tag and insert empty video.\r\n             * */\r\n            //if ((prevState === STATE_AD_PLAYING || prevState === STATE_AD_PAUSED ) && (newState === STATE_PAUSED || newState === STATE_PLAYING)) {\r\n            //    return false;\r\n            //Ads checks checkAutoplaySupport(). It calls real play() and pause() to video element.\r\n            //And then that triggers \"playing\" and \"pause\".\r\n            //I prevent these process.\r\n            //}\r\n\r\n            OvenPlayerConsole.log(\"Provider : triggerSatatus\", newState);\r\n            switch (newState) {\r\n                case STATE_COMPLETE:\r\n                    that.trigger(PLAYER_COMPLETE);\r\n                    break;\r\n                case STATE_PAUSED:\r\n                    that.trigger(PLAYER_PAUSE, {\r\n                        prevState: spec.state,\r\n                        newstate: STATE_PAUSED\r\n                    });\r\n                    break;\r\n                case STATE_AD_PAUSED:\r\n                    that.trigger(PLAYER_PAUSE, {\r\n                        prevState: spec.state,\r\n                        newstate: STATE_AD_PAUSED\r\n                    });\r\n                    break;\r\n                case STATE_PLAYING:\r\n                    that.trigger(PLAYER_PLAY, {\r\n                        prevState: spec.state,\r\n                        newstate: STATE_PLAYING\r\n                    });\r\n                    break;\r\n                case STATE_AD_PLAYING:\r\n                    that.trigger(PLAYER_PLAY, {\r\n                        prevState: spec.state,\r\n                        newstate: STATE_AD_PLAYING\r\n                    });\r\n                    break;\r\n            }\r\n            spec.state = newState;\r\n            that.trigger(PLAYER_STATE, {\r\n                prevstate: prevState,\r\n                newstate: spec.state\r\n            });\r\n\r\n\r\n        }\r\n    };\r\n    that.getState = () => {\r\n        return spec.state;\r\n    };\r\n    that.setBuffer = (newBuffer) => {\r\n        spec.buffer = newBuffer;\r\n    };\r\n    that.getBuffer = () => {\r\n        return spec.buffer;\r\n    };\r\n    that.isLive = () => {\r\n        return spec.isLive ? true : (elVideo.duration === Infinity);\r\n    };\r\n    that.getDuration = () => {\r\n        return that.isLive() ? Infinity : elVideo.duration;\r\n    };\r\n    that.getDvrWindow = () => {\r\n        return spec.dvrWindow;\r\n    };\r\n    that.getPosition = () => {\r\n        if (!elVideo) {\r\n            return 0;\r\n        }\r\n        return elVideo.currentTime;\r\n    };\r\n    that.setVolume = (volume) => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        elVideo.volume = volume / 100;\r\n        playerConfig.setVolume(volume);\r\n    };\r\n    that.getVolume = () => {\r\n\r\n        return playerConfig.getVolume();\r\n    };\r\n    that.setMute = (state) => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        if (typeof state === 'undefined') {\r\n\r\n            const muted = playerConfig.isMute();\r\n\r\n            elVideo.muted = !muted;\r\n            playerConfig.setMute(!muted);\r\n\r\n            that.trigger(CONTENT_MUTE, {\r\n                mute: playerConfig.isMute()\r\n            });\r\n\r\n        } else {\r\n\r\n            elVideo.muted = state;\r\n            playerConfig.setMute(state);\r\n\r\n            that.trigger(CONTENT_MUTE, {\r\n                mute: playerConfig.isMute()\r\n            });\r\n        }\r\n        return elVideo.muted;\r\n    };\r\n    that.getMute = () => {\r\n\r\n        return playerConfig.isMute();\r\n    };\r\n\r\n    that.preload = (sources, lastPlayPosition) => {\r\n\r\n        spec.sources = sources;\r\n\r\n        spec.currentSource = pickCurrentSource(sources, playerConfig);\r\n        _load(lastPlayPosition || 0);\r\n\r\n        return new Promise(function (resolve, reject) {\r\n\r\n            if (playerConfig.isMute()) {\r\n                that.setMute(true);\r\n            }\r\n            if (playerConfig.getVolume()) {\r\n                that.setVolume(playerConfig.getVolume());\r\n            }\r\n\r\n            resolve();\r\n        });\r\n\r\n    };\r\n    that.load = (sources) => {\r\n\r\n        spec.sources = sources;\r\n        spec.currentSource = pickCurrentSource(sources, playerConfig);\r\n        _load(0);\r\n    };\r\n\r\n    that.play = () => {\r\n\r\n        OvenPlayerConsole.log(\"Provider : play()\");\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n\r\n        //Test it thoroughly and remove isPlayingProcessing. Most of the hazards have been removed. a lot of nonblocking play() way -> blocking play()\r\n        // if(isPlayingProcessing){\r\n        //     return false;\r\n        // }\r\n\r\n        isPlayingProcessing = true;\r\n        if (that.getState() !== STATE_PLAYING) {\r\n            if ((ads && ads.isActive()) || (ads && !ads.started())) {\r\n                ads.play().then(_ => {\r\n                    //ads play success\r\n                    isPlayingProcessing = false;\r\n                    OvenPlayerConsole.log(\"Provider : ads play success\");\r\n\r\n                }).catch(error => {\r\n                    //ads play fail maybe cause user interactive less\r\n                    isPlayingProcessing = false;\r\n                    OvenPlayerConsole.log(\"Provider : ads play fail\", error);\r\n                });\r\n\r\n            } else {\r\n                let promise = elVideo.play();\r\n                if (promise !== undefined) {\r\n                    promise.then(function () {\r\n                        isPlayingProcessing = false;\r\n                        OvenPlayerConsole.log(\"Provider : video play success\");\r\n                        /*\r\n                        if(mutedPlay){\r\n                            that.trigger(PLAYER_WARNING, {\r\n                                message : WARN_MSG_MUTEDPLAY,\r\n                                timer : 10 * 1000,\r\n                                iconClass : UI_ICONS.volume_mute,\r\n                                onClickCallback : function(){\r\n                                    that.setMute(false);\r\n                                }\r\n                            });\r\n                        }*/\r\n                    }).catch(error => {\r\n                        OvenPlayerConsole.log(\"Provider : video play error\", error.message);\r\n\r\n                        isPlayingProcessing = false;\r\n                        /*\r\n                        if(!mutedPlay){\r\n                            that.setMute(true);\r\n                            that.play(true);\r\n                        }\r\n                        */\r\n                    });\r\n                } else {\r\n                    //IE promise is undefinded.\r\n                    OvenPlayerConsole.log(\"Provider : video play success (ie)\");\r\n                    isPlayingProcessing = false;\r\n                }\r\n            }\r\n        }\r\n\r\n    };\r\n    that.pause = () => {\r\n\r\n        OvenPlayerConsole.log(\"Provider : pause()\");\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n\r\n        if (that.getState() === STATE_PLAYING) {\r\n            elVideo.pause();\r\n        } else if (that.getState() === STATE_AD_PLAYING) {\r\n            ads.pause();\r\n        }\r\n    };\r\n    that.seek = (position) => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        elVideo.currentTime = position;\r\n    };\r\n    that.setPlaybackRate = (playbackRate) => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        that.trigger(PLAYBACK_RATE_CHANGED, { playbackRate: playbackRate });\r\n        return elVideo.playbackRate = elVideo.defaultPlaybackRate = playbackRate;\r\n    };\r\n    that.getPlaybackRate = () => {\r\n        if (!elVideo) {\r\n            return 0;\r\n        }\r\n        return elVideo.playbackRate;\r\n    };\r\n\r\n    that.getSources = () => {\r\n        if (!elVideo) {\r\n            return [];\r\n        }\r\n\r\n        return spec.sources.map(function (source, index) {\r\n\r\n            var obj = {\r\n                file: source.file,\r\n                type: source.type,\r\n                label: source.label,\r\n                index: index,\r\n                sectionStart: source.sectionStart,\r\n                sectionEnd: source.sectionEnd,\r\n                gridThumbnail: source.gridThumbnail,\r\n            };\r\n\r\n            if (source.lowLatency) {\r\n                obj.lowLatency = source.lowLatency;\r\n            }\r\n\r\n            return obj;\r\n        });\r\n    };\r\n    that.getCurrentSource = () => {\r\n        return spec.currentSource;\r\n    };\r\n    that.setCurrentSource = (sourceIndex, needProviderChange) => {\r\n\r\n        if (sourceIndex > -1) {\r\n            if (spec.sources && spec.sources.length > sourceIndex) {\r\n                //that.pause();\r\n                //that.setState(STATE_IDLE);\r\n                OvenPlayerConsole.log(\"source changed : \" + sourceIndex);\r\n                spec.currentSource = sourceIndex;\r\n\r\n                that.trigger(CONTENT_SOURCE_CHANGED, {\r\n                    currentSource: sourceIndex\r\n                });\r\n                playerConfig.setSourceIndex(sourceIndex);\r\n                //playerConfig.setSourceLabel(spec.sources[sourceIndex].label);\r\n                //spec.currentQuality = sourceIndex;\r\n                //that.pause();\r\n                that.setState(STATE_IDLE);\r\n                if (needProviderChange) {\r\n                    _load(elVideo.currentTime || 0);\r\n                }\r\n                //\r\n                return spec.currentSource;\r\n            }\r\n        }\r\n    };\r\n\r\n\r\n    that.getQualityLevels = () => {\r\n        if (!elVideo) {\r\n            return [];\r\n        }\r\n        return spec.qualityLevels;\r\n    };\r\n    that.getCurrentQuality = () => {\r\n        if (!elVideo) {\r\n            return null;\r\n        }\r\n        return spec.currentQuality;\r\n    };\r\n    that.setCurrentQuality = (qualityIndex) => {\r\n        //Do nothing\r\n    };\r\n\r\n    that.getAudioTracks = () => {\r\n        if (!elVideo) {\r\n            return [];\r\n        }\r\n        return spec.audioTracks;\r\n    };\r\n\r\n    that.getCurrentAudioTrack = () => {\r\n        if (!elVideo) {\r\n            return [];\r\n        }\r\n        return spec.currentAudioTrack;\r\n    };\r\n\r\n    that.setCurrentAudioTrack = (audioTrackIndex) => {\r\n        //Do nothing\r\n    };\r\n\r\n    that.isAutoQuality = () => {\r\n        //Do nothing\r\n    };\r\n    that.setAutoQuality = (isAuto) => {\r\n        //Do nothing\r\n    };\r\n\r\n    that.getFramerate = () => {\r\n        return spec.framerate;\r\n    };\r\n    that.setFramerate = (framerate) => {\r\n        return spec.framerate = framerate;\r\n    };\r\n    that.seekFrame = (frameCount) => {\r\n        let fps = spec.framerate;\r\n        let currentFrames = elVideo.currentTime * fps;\r\n        let newPosition = (currentFrames + frameCount) / fps;\r\n        newPosition = newPosition + 0.00001; // FIXES A SAFARI SEEK ISSUE. myVdieo.currentTime = 0.04 would give SMPTE 00:00:00:00 wheras it should give 00:00:00:01\r\n\r\n        that.pause();\r\n        that.seek(newPosition);\r\n    };\r\n\r\n    that.stop = () => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        OvenPlayerConsole.log(\"CORE : stop() \");\r\n\r\n        elVideo.removeAttribute('preload');\r\n        elVideo.removeAttribute('src');\r\n        while (elVideo.firstChild) {\r\n            elVideo.removeChild(elVideo.firstChild);\r\n        }\r\n\r\n        that.pause();\r\n        that.setState(STATE_IDLE);\r\n        isPlayingProcessing = false;\r\n    };\r\n\r\n    that.destroy = () => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        that.stop();\r\n        listener.destroy();\r\n        //elVideo.remove();\r\n\r\n        if (ads) {\r\n            ads.destroy();\r\n            ads = null;\r\n        }\r\n        that.off();\r\n        OvenPlayerConsole.log(\"CORE : destroy() player stop, listener, event destroied\");\r\n    };\r\n\r\n    //XXX : I hope using es6 classes. but I think to occur problem from Old IE. Then I choice function inherit. Finally using super function is so difficult.\r\n    // use : let super_destroy  = that.super('destroy'); ... super_destroy();\r\n    that.super = (name) => {\r\n        const method = that[name];\r\n        return function () {\r\n            return method.apply(that, arguments);\r\n        };\r\n    };\r\n    return that;\r\n\r\n};\r\n\r\nexport default Provider;\r\n","import {\r\n    ERRORS,\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_AD_PLAYING,\r\n    STATE_PAUSED,\r\n    STATE_ERROR,\r\n    CONTENT_COMPLETE,\r\n    CONTENT_SEEK,\r\n    CONTENT_BUFFER_FULL,\r\n    CONTENT_SEEKED,\r\n    CONTENT_BUFFER,\r\n    CONTENT_TIME,\r\n    CONTENT_VOLUME,\r\n    CONTENT_META,\r\n    CONTENT_DURATION_CHANGED,\r\n    PLAYER_UNKNWON_ERROR,\r\n    PLAYER_UNKNWON_OPERATION_ERROR,\r\n    PLAYER_UNKNWON_NETWORK_ERROR,\r\n    PLAYER_UNKNWON_DECODE_ERROR,\r\n    PLAYER_FILE_ERROR,\r\n    PROVIDER_HTML5,\r\n    PROVIDER_WEBRTC,\r\n    PROVIDER_DASH,\r\n    PROVIDER_HLS\r\n} from \"api/constants\";\r\nimport {extractVideoElement, errorTrigger} from \"api/provider/utils\";\r\n\r\n/**\r\n * @brief   Trigger on various video events.\r\n * @param   extendedElement extended media object by mse.\r\n * @param   Provider provider  html5Provider\r\n * */\r\n\r\n\r\nconst Listener = function(element, provider, videoEndedCallback, playerConfig){\r\n    const lowLevelEvents = {};\r\n\r\n    OvenPlayerConsole.log(\"EventListener loaded.\",element ,provider );\r\n    const that = {};\r\n\r\n    let stalled = -1;\r\n    let elVideo =  element;\r\n    const between = function (num, min, max) {\r\n        return Math.max(Math.min(num, max), min);\r\n    };\r\n    const compareStalledTime = function(stalled, position){\r\n        //Original Code is stalled !== position\r\n        //Because Dashjs is very meticulous. Then always diffrence stalled and position.\r\n        //That is why when I use toFixed(2).\r\n        return stalled.toFixed(2) === position.toFixed(2);\r\n    };\r\n\r\n    lowLevelEvents.canplay = () => {\r\n        //Fires when the browser can start playing the audio/video\r\n        provider.setCanSeek(true);\r\n        provider.trigger(CONTENT_BUFFER_FULL);\r\n        OvenPlayerConsole.log(\"EventListener : on canplay\");\r\n    };\r\n\r\n    lowLevelEvents.durationchange = () => {\r\n        //Fires when the duration of the audio/video is changed\r\n        lowLevelEvents.progress();\r\n        OvenPlayerConsole.log(\"EventListener : on durationchange\");\r\n\r\n        provider.trigger(CONTENT_DURATION_CHANGED);\r\n    };\r\n\r\n    lowLevelEvents.ended = () => {\r\n        //Fires when the current playlist is ended\r\n        OvenPlayerConsole.log(\"EventListener : on ended\");\r\n\r\n        // IE doesn't set paused property to true. So force set it.\r\n        elVideo.pause();\r\n\r\n        if(provider.getState() !== STATE_IDLE && provider.getState() !== STATE_COMPLETE && provider.getState() !== STATE_ERROR) {\r\n            if(videoEndedCallback){\r\n                videoEndedCallback(function(){\r\n                    provider.setState(STATE_COMPLETE);\r\n                });\r\n            }else{\r\n                provider.setState(STATE_COMPLETE);\r\n            }\r\n        }\r\n    };\r\n\r\n    lowLevelEvents.loadeddata = () => {\r\n        //Fires when the browser has loaded the current frame of the audio/video\r\n        //Do nothing Because this causes chaos by loadedmetadata.\r\n        /*\r\n        var metadata = {\r\n            duration: elVideo.duration,\r\n            height: elVideo.videoHeight,\r\n            width: elVideo.videoWidth\r\n        };\r\n        provider.trigger(CONTENT_META, metadata);*/\r\n    };\r\n\r\n    lowLevelEvents.loadedmetadata = () => {\r\n        //Fires when the browser has loaded meta data for the audio/video\r\n\r\n        let sources = provider.getSources();\r\n        let sourceIndex = provider.getCurrentSource();\r\n        let type = sourceIndex > -1 ? sources[sourceIndex].type : \"\";\r\n        var metadata = {\r\n            duration: provider.isLive() ?  Infinity : elVideo.duration,\r\n            type :type\r\n        };\r\n\r\n        provider.setMetaLoaded();\r\n\r\n        OvenPlayerConsole.log(\"EventListener : on loadedmetadata\", metadata);\r\n        provider.trigger(CONTENT_META, metadata);\r\n    };\r\n\r\n    lowLevelEvents.pause = () => {\r\n        //Fires when the audio/video has been paused\r\n        if(provider.getState() === STATE_COMPLETE || provider.getState() === STATE_ERROR){\r\n            return false;\r\n        }\r\n        if(elVideo.ended){\r\n            return false;\r\n        }\r\n        if(elVideo.error){\r\n            return false;\r\n        }\r\n        if(elVideo.currentTime === elVideo.duration){\r\n            return false;\r\n        }\r\n        OvenPlayerConsole.log(\"EventListener : on pause\");\r\n\r\n        provider.setState(STATE_PAUSED);\r\n    };\r\n\r\n    lowLevelEvents.loadstart = () => {\r\n\r\n        if (playerConfig) {\r\n            if (!playerConfig.getConfig().showBigPlayButton && playerConfig.getConfig().autoStart) {\r\n                provider.setState(STATE_LOADING);\r\n            }\r\n        }\r\n    };\r\n\r\n    lowLevelEvents.play = () => {\r\n\r\n        //Fires when the audio/video has been started or is no longer paused\r\n        stalled = -1;\r\n        if (!elVideo.paused && provider.getState() !== STATE_PLAYING) {\r\n            provider.setState(STATE_LOADING);\r\n        }\r\n    };\r\n\r\n    lowLevelEvents.playing = () => {\r\n        //Fires when the audio/video is playing after having been paused or stopped for buffering\r\n        OvenPlayerConsole.log(\"EventListener : on playing\");\r\n        if(stalled < 0){\r\n            provider.setState(STATE_PLAYING);\r\n        }\r\n    };\r\n\r\n    lowLevelEvents.progress = () => {\r\n        //Fires when the browser is downloading the audio/video\r\n        let timeRanges = elVideo.buffered;\r\n        if(!timeRanges ){\r\n            return false;\r\n        }\r\n\r\n        let duration = elVideo.duration, position = elVideo.currentTime;\r\n        let buffered = between( (timeRanges.length> 0 ? timeRanges.end(timeRanges.length - 1) : 0 ) / duration, 0, 1);\r\n\r\n        provider.setBuffer(buffered*100);\r\n        provider.trigger(CONTENT_BUFFER, {\r\n            bufferPercent: buffered*100,\r\n            position:  position,\r\n            duration: duration\r\n        });\r\n        OvenPlayerConsole.log(\"EventListener : on progress\", buffered*100);\r\n    };\r\n\r\n\r\n    lowLevelEvents.timeupdate = () => {\r\n        //Fires when the current playback position has changed\r\n        let position = elVideo.currentTime;\r\n        let duration = elVideo.duration;\r\n        if (isNaN(duration)) {\r\n            return;\r\n        }\r\n\r\n        if (position > duration) {\r\n            elVideo.pause();\r\n            provider.setState(STATE_COMPLETE);\r\n            return;\r\n        }\r\n\r\n        let sectionStart = provider.getSources()[provider.getCurrentSource()].sectionStart;\r\n\r\n        if (sectionStart && position < sectionStart && provider.getState() === STATE_PLAYING) {\r\n\r\n            provider.seek(sectionStart);\r\n        }\r\n\r\n        let sectionEnd = provider.getSources()[provider.getCurrentSource()].sectionEnd;\r\n\r\n        if (sectionEnd && position > sectionEnd && provider.getState() === STATE_PLAYING) {\r\n\r\n            provider.stop();\r\n            provider.setState(STATE_COMPLETE);\r\n            return;\r\n        }\r\n\r\n        //Sometimes dash live gave to me crazy duration. (9007199254740991...) why???\r\n        if(duration > 9000000000000000){    //9007199254740991\r\n            duration = Infinity;\r\n        }\r\n\r\n        if(!provider.isSeeking() && !elVideo.paused && (provider.getState() === STATE_STALLED || provider.getState() === STATE_LOADING || provider.getState() === STATE_AD_PLAYING) &&\r\n            !compareStalledTime(stalled, position) ){\r\n            stalled = -1;\r\n            provider.setState(STATE_PLAYING);\r\n        }\r\n\r\n        if (sectionStart && sectionStart > 0) {\r\n\r\n            position = position - sectionStart;\r\n\r\n            if (position < 0) {\r\n                position = 0;\r\n            }\r\n        }\r\n\r\n        if (sectionEnd) {\r\n            duration = sectionEnd;\r\n        }\r\n\r\n        if (sectionStart) {\r\n            duration = duration - sectionStart;\r\n        }\r\n\r\n        if (provider.getState() === STATE_PLAYING || provider.isSeeking()) {\r\n            provider.trigger(CONTENT_TIME, {\r\n                position: position,\r\n                duration: duration\r\n            });\r\n        }\r\n\r\n    };\r\n\r\n    lowLevelEvents.seeking = () => {\r\n        provider.setSeeking(true);\r\n        OvenPlayerConsole.log(\"EventListener : on seeking\", elVideo.currentTime);\r\n        provider.trigger(CONTENT_SEEK,{\r\n            position : elVideo.currentTime\r\n        });\r\n    };\r\n    lowLevelEvents.seeked = () => {\r\n        if(!provider.isSeeking()){\r\n            return;\r\n        }\r\n        OvenPlayerConsole.log(\"EventListener : on seeked\");\r\n        provider.setSeeking(false);\r\n        provider.trigger(CONTENT_SEEKED);\r\n    };\r\n\r\n    lowLevelEvents.stalled = () => {\r\n        OvenPlayerConsole.log(\"EventListener : on stalled\");\r\n        //This callback does not work on chrome. This calls on Firefox intermittent. Then do not work here. using waiting event.\r\n    };\r\n\r\n    lowLevelEvents.waiting = () => {\r\n        //Fires when the video stops because it needs to buffer the next frame\r\n        OvenPlayerConsole.log(\"EventListener : on waiting\", provider.getState());\r\n        if(provider.isSeeking()){\r\n            provider.setState(STATE_LOADING);\r\n        }else if(provider.getState() === STATE_PLAYING){\r\n            stalled = elVideo.currentTime;\r\n            provider.setState(STATE_STALLED);\r\n        }\r\n    };\r\n\r\n    lowLevelEvents.volumechange = () => {\r\n        OvenPlayerConsole.log(\"EventListener : on volumechange\", Math.round(elVideo.volume * 100));\r\n        provider.trigger(CONTENT_VOLUME, {\r\n            volume: Math.round(elVideo.volume * 100),\r\n            mute: elVideo.muted\r\n        });\r\n    };\r\n\r\n    lowLevelEvents.error = () => {\r\n        const code = (elVideo.error && elVideo.error.code) || 0;\r\n        let convertedErroCode = ({\r\n            0: PLAYER_UNKNWON_ERROR,\r\n            1: PLAYER_UNKNWON_OPERATION_ERROR,\r\n            2: PLAYER_UNKNWON_NETWORK_ERROR,\r\n            3: PLAYER_UNKNWON_DECODE_ERROR,\r\n            4: PLAYER_FILE_ERROR\r\n        }[code]||0);\r\n\r\n        OvenPlayerConsole.log(\"EventListener : on error\", convertedErroCode);\r\n        errorTrigger(ERRORS.codes[convertedErroCode], provider);\r\n    };\r\n\r\n    Object.keys(lowLevelEvents).forEach(eventName => {\r\n        elVideo.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        elVideo.addEventListener(eventName, lowLevelEvents[eventName]);\r\n    });\r\n\r\n    that.destroy = () =>{\r\n        OvenPlayerConsole.log(\"EventListener : destroy()\");\r\n\r\n        Object.keys(lowLevelEvents).forEach(eventName => {\r\n            elVideo.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        });\r\n    };\r\n    return that;\r\n};\r\n\r\nexport default Listener;","/**\r\n * Created by hoho on 2018. 8. 24..\r\n */\r\nimport Provider from \"api/provider/html5/Provider\";\r\nimport {errorTrigger} from \"api/provider/utils\";\r\nimport {PROVIDER_HTML5, STATE_IDLE} from \"api/constants\";\r\n\r\n/**\r\n * @brief   html5 provider extended core.\r\n * @param   container player element.\r\n * @param   playerConfig    config.\r\n * */\r\n\r\nconst Html5 = function(element, playerConfig, adTagUrl){\r\n\r\n    let spec = {\r\n        name : PROVIDER_HTML5,\r\n        element : element,\r\n        mse : null,\r\n        listener : null,\r\n        isLoaded : false,\r\n        canSeek : false,\r\n        isLive : false,\r\n        seeking : false,\r\n        state : STATE_IDLE,\r\n        buffer : 0,\r\n        framerate : 0,\r\n        currentQuality : -1,\r\n        qualityLevels : [],\r\n        currentAudioTrack: -1,\r\n        audioTracks: [],\r\n        currentSource : -1,\r\n        sources : [],\r\n        adTagUrl : adTagUrl\r\n    };\r\n\r\n    let that = Provider(spec, playerConfig, null);\r\n    let superDestroy_func  = that.super('destroy');\r\n\r\n    OvenPlayerConsole.log(\"HTML5 PROVIDER LOADED.\");\r\n\r\n    that.destroy = () =>{\r\n        OvenPlayerConsole.log(\"HTML5 : PROVIDER DESTROYED.\");\r\n\r\n        superDestroy_func();\r\n    };\r\n\r\n    return that;\r\n\r\n};\r\n\r\nexport default Html5;\r\n","import _ from \"utils/underscore\";\r\nimport {analUserAgent} from \"utils/browser\";\r\nimport {\r\n    ERRORS,\r\n    PLAYER_WEBRTC_WS_ERROR,\r\n    PLAYER_WEBRTC_ADD_ICECANDIDATE_ERROR,\r\n    PLAYER_WEBRTC_SET_REMOTE_DESC_ERROR,\r\n    PLAYER_WEBRTC_CREATE_ANSWER_ERROR,\r\n    PLAYER_WEBRTC_SET_LOCAL_DESC_ERROR,\r\n    PLAYER_WEBRTC_NETWORK_SLOW,\r\n    PLAYER_WEBRTC_UNEXPECTED_DISCONNECT,\r\n    PLAYER_WEBRTC_INTERNAL_ERROR,\r\n    OME_P2P_MODE,\r\n    CONTENT_LEVEL_CHANGED,\r\n    PEER_CONNECTION_PREPARED\r\n} from \"api/constants\";\r\nimport sizeHumanizer from \"../../../../utils/sizeHumanizer\";\r\nimport {PEER_CONNECTION_DESTROYED} from \"../../../constants\";\r\n\r\n\r\nconst WebRTCLoader = function (provider,\r\n                               webSocketUrl,\r\n                               loadCallback,\r\n                               connectedCallback,\r\n                               internalErrorCallback,\r\n                               errorTrigger,\r\n                               playerConfig,\r\n                               spec) {\r\n\r\n    let defaultConnectionConfig = {};\r\n\r\n    let that = {};\r\n\r\n    let ws = null;\r\n    let wsConnected = false;\r\n\r\n    let mainStream = null;\r\n\r\n    // used for getting media stream from OME or host peer\r\n    let mainPeerConnectionInfo = null;\r\n\r\n    // used for send media stream to client peer.\r\n    let clientPeerConnections = {};\r\n\r\n    //closed websocket by ome or client.\r\n    let wsClosedByPlayer = false;\r\n\r\n    let recoverPacketLoss = false;\r\n\r\n    let playlistFromOme = null;\r\n    let autoQuality = false;\r\n\r\n    if (playerConfig.getConfig().webrtcConfig &&\r\n        playerConfig.getConfig().webrtcConfig.recoverPacketLoss === true) {\r\n\r\n        recoverPacketLoss = true;\r\n    }\r\n\r\n    let generatePublicCandidate = true;\r\n\r\n    if (playerConfig.getConfig().webrtcConfig &&\r\n        playerConfig.getConfig().webrtcConfig.generatePublicCandidate === false) {\r\n\r\n        generatePublicCandidate = playerConfig.getConfig().webrtcConfig.generatePublicCandidate;\r\n    }\r\n\r\n    let statisticsTimer = null;\r\n\r\n    let currentBrowser = analUserAgent();\r\n\r\n    (function () {\r\n        let existingHandler = window.onbeforeunload;\r\n        window.onbeforeunload = function (event) {\r\n            if (existingHandler) {\r\n                existingHandler(event);\r\n            }\r\n            OvenPlayerConsole.log(\"This calls auto when browser closed.\");\r\n            closePeer();\r\n        }\r\n    })();\r\n\r\n    function getPeerConnectionById(id) {\r\n\r\n        let peerConnection = null;\r\n\r\n        if (mainPeerConnectionInfo && id === mainPeerConnectionInfo.id) {\r\n            peerConnection = mainPeerConnectionInfo.peerConnection;\r\n        } else if (clientPeerConnections[id]) {\r\n            peerConnection = clientPeerConnections[id].peerConnection;\r\n        }\r\n\r\n        return peerConnection;\r\n    }\r\n\r\n    function extractLossPacketsOnNetworkStatus(peerConnectionInfo) {\r\n\r\n        if (peerConnectionInfo.statisticsTimer) {\r\n            clearTimeout(peerConnectionInfo.statisticsTimer);\r\n        }\r\n\r\n        if (!peerConnectionInfo.status) {\r\n            peerConnectionInfo.status = {};\r\n            peerConnectionInfo.status.lostPacketsArr = [];\r\n            peerConnectionInfo.status.slotLength = 8; //8 statistics. every 2 seconds\r\n            peerConnectionInfo.status.prevPacketsLost = 0;\r\n            peerConnectionInfo.status.avg8Losses = 0;\r\n            peerConnectionInfo.status.avgMoreThanThresholdCount = 0;  //If avg8Loss more than threshold.\r\n            peerConnectionInfo.status.threshold = 40;\r\n        }\r\n\r\n        let lostPacketsArr = peerConnectionInfo.status.lostPacketsArr,\r\n            slotLength = peerConnectionInfo.status.slotLength, //8 statistics. every 2 seconds\r\n            prevPacketsLost = peerConnectionInfo.status.prevPacketsLost,\r\n            avg8Losses = peerConnectionInfo.status.avg8Losses,\r\n            // avgMoreThanThresholdCount = peerConnectionInfo.status.avgMoreThanThresholdCount,  //If avg8Loss more than threshold.\r\n            threshold = peerConnectionInfo.status.threshold;\r\n\r\n        peerConnectionInfo.statisticsTimer = setTimeout(function () {\r\n            if (!peerConnectionInfo.peerConnection) {\r\n                return false;\r\n            }\r\n\r\n            peerConnectionInfo.peerConnection.getStats().then(function (stats) {\r\n\r\n                if (!stats) {\r\n                    return;\r\n                }\r\n\r\n                if (playerConfig.getConfig().autoFallback && stats) {\r\n\r\n                    stats.forEach(function (state) {\r\n\r\n                        if (state.type === \"inbound-rtp\" && state.kind === 'video' && !state.isRemote) {\r\n\r\n                            //(state.packetsLost - prevPacketsLost) is real current lost.\r\n\r\n                            let actualPacketLost = parseInt(state.packetsLost) - parseInt(prevPacketsLost);\r\n\r\n                            lostPacketsArr.push(parseInt(state.packetsLost) - parseInt(prevPacketsLost));\r\n\r\n                            if (lostPacketsArr.length > slotLength) {\r\n\r\n                                lostPacketsArr.shift();\r\n                            }\r\n\r\n                            if (lostPacketsArr.length === slotLength) {\r\n\r\n                                avg8Losses = _.reduce(lostPacketsArr, function (memo, num) {\r\n                                    return memo + num;\r\n                                }, 0) / slotLength;\r\n                                OvenPlayerConsole.log(\"Last8 LOST PACKET AVG  : \" + (avg8Losses), \"Current Packet LOST: \" + actualPacketLost, \"Total Packet Lost: \" + state.packetsLost, lostPacketsArr);\r\n\r\n                                if (avg8Losses > threshold) {\r\n                                    peerConnectionInfo.status.avgMoreThanThresholdCount = peerConnectionInfo.status.avgMoreThanThresholdCount + 1;\r\n                                    if (peerConnectionInfo.status.avgMoreThanThresholdCount >= 60) {\r\n                                        OvenPlayerConsole.log(\"NETWORK UNSTABLED!!! \");\r\n                                        let tempError = ERRORS.codes[PLAYER_WEBRTC_NETWORK_SLOW];\r\n                                        closePeer(tempError);\r\n                                    }\r\n                                } else {\r\n                                    peerConnectionInfo.status.avgMoreThanThresholdCount = 0;\r\n                                }\r\n                            }\r\n                            peerConnectionInfo.status.prevPacketsLost = state.packetsLost;\r\n                        }\r\n                    });\r\n\r\n                    extractLossPacketsOnNetworkStatus(peerConnectionInfo);\r\n                }\r\n            });\r\n\r\n        }, 2000);\r\n\r\n    }\r\n\r\n    // return -1 if no opus;\r\n    // return opus format number\r\n    function getOpusFormatNumber(sdp) {\r\n\r\n        const lines = sdp.split('\\r\\n');\r\n        let opusFormatNumber = -1;\r\n\r\n        for (let i = 0; i < lines.length - 1; i++) {\r\n\r\n            lines[i] = lines[i].toLowerCase();\r\n\r\n            if (lines[i].indexOf('a=rtpmap') > -1 && lines[i].indexOf('opus') > -1) {\r\n                // parsing \"a=rtpmap:102 OPUS/48000/2\" line\r\n                opusFormatNumber = lines[i].split(' ')[0].split(':')[1];\r\n                break;\r\n            }\r\n        }\r\n\r\n        return opusFormatNumber;\r\n    }\r\n\r\n    function checkOpusIsStereo(sdp, opusFormatNumber) {\r\n\r\n        const lines = sdp.split('\\r\\n');\r\n\r\n        let stereo = false;\r\n\r\n        for (let i = 0; i < lines.length - 1; i++) {\r\n\r\n            lines[i] = lines[i].toLowerCase();\r\n\r\n            // check stereo=1 from \"a=fmtp:102 sprop-stereo=1;stereo=1;minptime=10;useinbandfec=1\"\r\n            if (lines[i].indexOf('a=fmtp:' + opusFormatNumber) > -1) {\r\n\r\n                if (lines[i].indexOf('stereo=1') > -1) {\r\n                    stereo = true;\r\n                }\r\n                break;\r\n            }\r\n        }\r\n\r\n        return stereo;\r\n    }\r\n\r\n    function mungeSdpForceStereoOpus(sdp, opusFormatNumber) {\r\n\r\n        const lines = sdp.split('\\r\\n');\r\n\r\n        // find this line and modify. \"a=fmtp:102 minptime=10;useinbandfec=1\"\r\n        for (let i = 0; i < lines.length - 1; i++) {\r\n\r\n            // check stereo=1 from \"a=fmtp:102 sprop-stereo=1;stereo=1;minptime=10;useinbandfec=1\"\r\n            if (lines[i].indexOf('a=fmtp:' + opusFormatNumber) > -1) {\r\n\r\n                if (lines[i].indexOf('stereo=1') === -1) {\r\n\r\n                    lines[i] = lines[i] + ';stereo=1';\r\n                }\r\n                break;\r\n            }\r\n        }\r\n\r\n        return lines.join('\\r\\n');\r\n    }\r\n\r\n    function createMainPeerConnection(id, peerId, sdp, candidates, iceServers) {\r\n\r\n        let peerConnectionConfig = {};\r\n\r\n        // first priority using ice servers from player setting.\r\n        if (playerConfig.getConfig().webrtcConfig && playerConfig.getConfig().webrtcConfig.iceServers) {\r\n\r\n            peerConnectionConfig.iceServers = playerConfig.getConfig().webrtcConfig.iceServers;\r\n\r\n            if (playerConfig.getConfig().webrtcConfig.iceTransportPolicy) {\r\n\r\n                peerConnectionConfig.iceTransportPolicy = playerConfig.getConfig().webrtcConfig.iceTransportPolicy;\r\n            }\r\n        } else if (iceServers) {\r\n\r\n            // second priority using ice servers from ome and force using TCP\r\n            peerConnectionConfig.iceServers = [];\r\n\r\n            for (let i = 0; i < iceServers.length; i++) {\r\n\r\n                let iceServer = iceServers[i];\r\n\r\n                let regIceServer = {};\r\n\r\n                regIceServer.urls = iceServer.urls;\r\n\r\n                let hasWebsocketUrl = false;\r\n                let socketUrl = generateDomainFromUrl(webSocketUrl);\r\n\r\n                for (let j = 0; j < regIceServer.urls.length; j++) {\r\n\r\n                    let serverUrl = regIceServer.urls[j];\r\n\r\n                    if (serverUrl.indexOf(socketUrl) > -1) {\r\n                        hasWebsocketUrl = true;\r\n                        break;\r\n                    }\r\n                }\r\n\r\n                if (!hasWebsocketUrl) {\r\n\r\n                    if (regIceServer.urls.length > 0) {\r\n\r\n                        let cloneIceServer = _.clone(regIceServer.urls[0]);\r\n                        let ip = findIp(cloneIceServer);\r\n\r\n                        if (socketUrl && ip) {\r\n                            regIceServer.urls.push(cloneIceServer.replace(ip, socketUrl));\r\n                        }\r\n                    }\r\n                }\r\n\r\n                regIceServer.username = iceServer.username || iceServer.user_name;\r\n                regIceServer.credential = iceServer.credential;\r\n\r\n                peerConnectionConfig.iceServers.push(regIceServer);\r\n            }\r\n\r\n            peerConnectionConfig.iceTransportPolicy = 'relay';\r\n\r\n        } else {\r\n\r\n            // last priority using default ice servers.\r\n            peerConnectionConfig = defaultConnectionConfig;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"Main Peer Connection Config : \", peerConnectionConfig);\r\n\r\n        let peerConnection = null;\r\n\r\n        try {\r\n\r\n            peerConnection = new RTCPeerConnection(peerConnectionConfig);\r\n            provider.trigger(PEER_CONNECTION_PREPARED, peerConnection);\r\n\r\n        } catch (error) {\r\n            let tempError = ERRORS.codes[PLAYER_WEBRTC_INTERNAL_ERROR];\r\n            tempError.error = error;\r\n            closePeer(tempError);\r\n            return;\r\n        }\r\n\r\n        mainPeerConnectionInfo = {\r\n            id: id,\r\n            peerId: peerId,\r\n            peerConnection: peerConnection\r\n        };\r\n\r\n        //Set remote description when I received sdp from server.\r\n        peerConnection.setRemoteDescription(new RTCSessionDescription(sdp)).then(function () {\r\n\r\n            peerConnection.createAnswer().then(function (desc) {\r\n\r\n                const opusFormatNumber = getOpusFormatNumber(sdp.sdp);\r\n\r\n                if (opusFormatNumber > -1) {\r\n\r\n                    if (checkOpusIsStereo(sdp.sdp, opusFormatNumber)) {\r\n\r\n                        //If offer has opus and if it is stereo, munge local sdp to force stereo=1\r\n                        //Thanks to community https://github.com/AirenSoft/OvenMediaEngine/issues/203\r\n                        desc.sdp = mungeSdpForceStereoOpus(desc.sdp, opusFormatNumber);\r\n                    }\r\n                }\r\n\r\n                OvenPlayerConsole.log('Local SDP', desc);\r\n\r\n                sendMessage(ws, {\r\n                    id: id,\r\n                    peer_id: peerId,\r\n                    command: 'answer',\r\n                    sdp: desc\r\n                });\r\n\r\n                OvenPlayerConsole.log(\"create Host Answer : success\");\r\n\r\n                peerConnection.setLocalDescription(desc).then(function () {\r\n\r\n\r\n                }).catch(function (error) {\r\n\r\n                    let tempError = ERRORS.codes[PLAYER_WEBRTC_SET_LOCAL_DESC_ERROR];\r\n                    tempError.error = error;\r\n                    closePeer(tempError);\r\n                });\r\n            }).catch(function (error) {\r\n\r\n                let tempError = ERRORS.codes[PLAYER_WEBRTC_CREATE_ANSWER_ERROR];\r\n                tempError.error = error;\r\n                closePeer(tempError);\r\n            });\r\n        }).catch(function (error) {\r\n\r\n            let tempError = ERRORS.codes[PLAYER_WEBRTC_SET_REMOTE_DESC_ERROR];\r\n            tempError.error = error;\r\n            closePeer(tempError);\r\n        });\r\n\r\n        if (candidates) {\r\n\r\n            addIceCandidate(peerConnection, candidates);\r\n        }\r\n\r\n        peerConnection.onicecandidate = function (e) {\r\n\r\n            if (e.candidate) {\r\n\r\n                OvenPlayerConsole.log(\"WebRTCLoader send candidate to server : \", e.candidate);\r\n\r\n                // console.log('Main Peer Connection candidate', e.candidate);\r\n                sendMessage(ws, {\r\n                    id: id,\r\n                    peer_id: peerId,\r\n                    command: \"candidate\",\r\n                    candidates: [e.candidate]\r\n                });\r\n            }\r\n        };\r\n\r\n        peerConnection.onconnectionstatechange = function (e) {\r\n            //ConnectionState\r\n            OvenPlayerConsole.log(\"[on connection state change]\", peerConnection.connectionState, e);\r\n\r\n            // firefox and opera do not support onconnectionstatechange (Jan 07, 2021)\r\n            // double check with oniceconnectionstatechange\r\n            if (peerConnection.connectionState === 'connected') {\r\n\r\n                if (connectedCallback) {\r\n                    connectedCallback();\r\n                }\r\n            }\r\n        };\r\n\r\n        peerConnection.onicecandidateerror = function (e) {\r\n\r\n        };\r\n\r\n        peerConnection.onicegatheringstatechange = function (e) {\r\n\r\n        };\r\n\r\n        peerConnection.oniceconnectionstatechange = function (e) {\r\n            OvenPlayerConsole.log(\"[on ice connection state change]\", peerConnection.iceConnectionState, e);\r\n\r\n            if (peerConnection.iceConnectionState === 'connected') {\r\n\r\n                if (connectedCallback) {\r\n                    connectedCallback();\r\n                }\r\n            }\r\n            /*\r\n            * https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/iceConnectionState\r\n            * Checks to ensure that components are still connected failed for at least one component of the RTCPeerConnection. This is a less stringent test than \"failed\" and may trigger intermittently and resolve just as spontaneously on less reliable networks, or during temporary disconnections. When the problem resolves, the connection may return to the \"connected\" state.\r\n            * */\r\n            //This process is my imagination. I do not know how to reproduce.\r\n            //Situation : OME is dead but ome can't send 'stop' message.\r\n            if (peerConnection.iceConnectionState === 'disconnected' || peerConnection.iceConnectionState === 'closed') {\r\n                if (!wsClosedByPlayer) {\r\n                    if (mainPeerConnectionInfo) {\r\n                        let tempError = ERRORS.codes[PLAYER_WEBRTC_UNEXPECTED_DISCONNECT];\r\n                        closePeer(tempError);\r\n                    }\r\n                }\r\n            }\r\n        };\r\n\r\n        peerConnection.ontrack = function (e) {\r\n\r\n            OvenPlayerConsole.log(\"stream received.\");\r\n\r\n            OvenPlayerConsole.log('Recovery On Packet Loss :', recoverPacketLoss);\r\n\r\n            if (recoverPacketLoss) {\r\n                extractLossPacketsOnNetworkStatus(mainPeerConnectionInfo);\r\n            }\r\n\r\n            mainStream = e.streams[0];\r\n            loadCallback(e.streams[0]);\r\n\r\n            if (playerConfig.getConfig().webrtcConfig && playerConfig.getConfig().webrtcConfig.playoutDelayHint) {\r\n\r\n                let hint = playerConfig.getConfig().webrtcConfig.playoutDelayHint;\r\n\r\n                const receivers = mainPeerConnectionInfo.peerConnection.getReceivers();\r\n\r\n                for (let i = 0; i < receivers.length; i++) {\r\n\r\n                    let receiver = receivers[i];\r\n\r\n                    if (receiver.track.kind === 'audio') {\r\n\r\n                        receiver.playoutDelayHint = hint;\r\n                        receiver.jitterBufferDelayHint = hint;\r\n                    } else {\r\n\r\n                        receiver.playoutDelayHint = hint;\r\n                    }\r\n\r\n                    OvenPlayerConsole.log(\"WebRTC playoutDelayHint\", receiver, hint);\r\n                }\r\n\r\n            }\r\n        };\r\n    }\r\n\r\n    function createClientPeerConnection(hostId, clientId) {\r\n\r\n        if (!mainStream) {\r\n\r\n            setTimeout(function () {\r\n\r\n                createClientPeerConnection(hostId, clientId);\r\n            }, 100);\r\n\r\n            return;\r\n        }\r\n\r\n        let peerConnection = new RTCPeerConnection(defaultConnectionConfig);\r\n\r\n        clientPeerConnections[clientId] = {\r\n            id: clientId,\r\n            peerId: hostId,\r\n            peerConnection: peerConnection\r\n        };\r\n\r\n        peerConnection.addStream(mainStream);\r\n\r\n        // let offerOption = {\r\n        //     offerToReceiveAudio: 1,\r\n        //     offerToReceiveVideo: 1\r\n        // };\r\n\r\n        peerConnection.createOffer(setLocalAndSendMessage, handleCreateOfferError, {});\r\n\r\n        function setLocalAndSendMessage(sessionDescription) {\r\n            peerConnection.setLocalDescription(sessionDescription);\r\n\r\n            sendMessage(ws, {\r\n                id: hostId,\r\n                peer_id: clientId,\r\n                sdp: sessionDescription,\r\n                command: 'offer_p2p'\r\n            });\r\n        }\r\n\r\n        function handleCreateOfferError(event) {\r\n\r\n        }\r\n\r\n        peerConnection.onicecandidate = function (e) {\r\n            if (e.candidate) {\r\n                OvenPlayerConsole.log(\"WebRTCLoader send candidate to server : \" + e.candidate);\r\n\r\n\r\n                // console.log('Client Peer Connection candidate', e.candidate);\r\n\r\n                sendMessage(ws, {\r\n                    id: hostId,\r\n                    peer_id: clientId,\r\n                    command: \"candidate_p2p\",\r\n                    candidates: [e.candidate]\r\n                });\r\n\r\n            }\r\n        };\r\n    }\r\n\r\n    function generateDomainFromUrl(url) {\r\n        let result = '';\r\n        let match;\r\n        if (match = url.match(/^(?:wss?:\\/\\/)?(?:[^@\\n]+@)?(?:www\\.)?([^:\\/\\n\\?\\=]+)/im)) {\r\n            result = match[1];\r\n        }\r\n\r\n        return result;\r\n    }\r\n\r\n    function findIp(string) {\r\n\r\n        let result = '';\r\n        let match;\r\n\r\n        if (match = string.match(new RegExp(\"\\\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\b\", 'gi'))) {\r\n            result = match[0];\r\n        }\r\n\r\n        return result;\r\n    }\r\n\r\n    function copyCandidate(basicCandidate) {\r\n\r\n        let cloneCandidate = _.clone(basicCandidate);\r\n\r\n        let newDomain = generateDomainFromUrl(webSocketUrl);\r\n        let ip = findIp(cloneCandidate.candidate);\r\n\r\n        return new Promise(function (resolve, reject) {\r\n\r\n            if (ip === '' || ip === newDomain) {\r\n\r\n                resolve(null);\r\n            }\r\n\r\n            // firefox browser throws a candidate parsing exception when a domain name is set at the address property. So we resolve the dns using google dns resolve api.\r\n            if (currentBrowser.browser === 'Firefox' && !findIp(newDomain)) {\r\n\r\n                resolve(null);\r\n\r\n            } else {\r\n\r\n                cloneCandidate.candidate = cloneCandidate.candidate.replace(ip, newDomain);\r\n                resolve(cloneCandidate);\r\n            }\r\n\r\n        });\r\n    }\r\n\r\n    function addIceCandidate(peerConnection, candidates) {\r\n\r\n        for (let i = 0; i < candidates.length; i++) {\r\n            if (candidates[i] && candidates[i].candidate) {\r\n\r\n                let basicCandidate = candidates[i];\r\n\r\n                peerConnection.addIceCandidate(new RTCIceCandidate(basicCandidate)).then(function () {\r\n                    OvenPlayerConsole.log(\"addIceCandidate : success\");\r\n                }).catch(function (error) {\r\n                    let tempError = ERRORS.codes[PLAYER_WEBRTC_ADD_ICECANDIDATE_ERROR];\r\n                    tempError.error = error;\r\n                    closePeer(tempError);\r\n                });\r\n\r\n                if (generatePublicCandidate) {\r\n\r\n                    let cloneCandidatePromise = copyCandidate(basicCandidate);\r\n\r\n                    if (cloneCandidatePromise) {\r\n                        cloneCandidatePromise.then(function (cloneCandidate) {\r\n\r\n                            if (cloneCandidate) {\r\n\r\n                                peerConnection.addIceCandidate(new RTCIceCandidate(cloneCandidate)).then(function () {\r\n                                    OvenPlayerConsole.log(\"cloned addIceCandidate : success\");\r\n\r\n                                }).catch(function (error) {\r\n\r\n                                    let tempError = ERRORS.codes[PLAYER_WEBRTC_ADD_ICECANDIDATE_ERROR];\r\n                                    tempError.error = error;\r\n                                    closePeer(tempError);\r\n                                });\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    function initWebSocket() {\r\n\r\n        try {\r\n\r\n            ws = new WebSocket(webSocketUrl);\r\n\r\n            ws.onopen = function () {\r\n\r\n                wsConnected = true;\r\n\r\n                sendMessage(ws, {\r\n                    command: \"request_offer\"\r\n                });\r\n            };\r\n\r\n            ws.onmessage = function (e) {\r\n\r\n                const message = JSON.parse(e.data);\r\n\r\n                if (message.error) {\r\n                    let tempError = ERRORS.codes[PLAYER_WEBRTC_WS_ERROR];\r\n                    tempError.error = message.error;\r\n                    closePeer(tempError);\r\n                    return;\r\n                }\r\n\r\n                if (Object.keys(message).length === 0 && message.constructor === Object) {\r\n\r\n                    OvenPlayerConsole.log('Empty Message');\r\n                    return;\r\n                }\r\n\r\n                if (message.command === 'ping') {\r\n\r\n                    sendMessage(ws, {command: 'pong'});\r\n                    return;\r\n                }\r\n\r\n                if (message.command === 'offer') {\r\n\r\n                    let iceServers = message.iceServers || message.ice_servers;\r\n\r\n                    createMainPeerConnection(message.id, message.peer_id, message.sdp, message.candidates, iceServers);\r\n                    if (message.peer_id === 0) {\r\n                        provider.trigger(OME_P2P_MODE, false);\r\n                    } else {\r\n                        provider.trigger(OME_P2P_MODE, true);\r\n                    }\r\n                }\r\n\r\n                if (message.command === 'request_offer_p2p') {\r\n\r\n                    createClientPeerConnection(message.id, message.peer_id);\r\n                }\r\n\r\n                if (message.command === 'answer_p2p') {\r\n\r\n                    let peerConnection1 = getPeerConnectionById(message.peer_id);\r\n\r\n                    peerConnection1.setRemoteDescription(new RTCSessionDescription(message.sdp))\r\n                        .then(function (desc) {\r\n\r\n                        })\r\n                        .catch(function (error) {\r\n                            let tempError = ERRORS.codes[PLAYER_WEBRTC_SET_REMOTE_DESC_ERROR];\r\n                            tempError.error = error;\r\n                            closePeer(tempError);\r\n                        });\r\n                }\r\n\r\n                if (message.command === 'candidate') {\r\n\r\n                    // Candidates for new client peer\r\n                    let peerConnection2 = getPeerConnectionById(message.id);\r\n\r\n                    addIceCandidate(peerConnection2, message.candidates);\r\n                }\r\n\r\n                if (message.command === 'candidate_p2p') {\r\n\r\n                    // Candidates for new client peer\r\n                    let peerConnection3 = getPeerConnectionById(message.peer_id);\r\n\r\n                    addIceCandidate(peerConnection3, message.candidates);\r\n                }\r\n\r\n                if (message.command === 'notification') {\r\n\r\n                    if (message.type === 'playlist') {\r\n\r\n                        const renditions = message.message.renditions;\r\n                        playlistFromOme = message.message;\r\n\r\n                        for (let i = 0; i < renditions.length; i++) {\r\n\r\n                            let rendition = renditions[i];\r\n\r\n                            spec.qualityLevels.push({\r\n                                bitrate: rendition.video_track.video.bitrate,\r\n                                height: rendition.video_track.video.height,\r\n                                width: rendition.video_track.video.width,\r\n                                index: i,\r\n                                label: rendition.name\r\n                            });\r\n                        }\r\n\r\n                        spec.currentQuality = 0;\r\n                        autoQuality = message.message.auto;\r\n                    }\r\n\r\n                    if (message.type === 'rendition_changed') {\r\n\r\n                        const rendition = message.message;\r\n\r\n                        if (message.auto) {\r\n                            autoQuality = message.auto;\r\n                        }\r\n\r\n                        let qualityIndex = -1;\r\n\r\n                        for (let i = 0; i < playlistFromOme.renditions.length; i ++) {\r\n\r\n                            if (rendition.rendition_name ===  playlistFromOme.renditions[i].name) {\r\n                                qualityIndex = i;\r\n                                spec.currentQuality = i;\r\n                                break;\r\n                            }\r\n                        }\r\n\r\n                        provider.trigger(CONTENT_LEVEL_CHANGED, {\r\n                            isAuto: autoQuality,\r\n                            currentQuality: qualityIndex,\r\n                            type: \"render\"\r\n                        });\r\n                    }\r\n                }\r\n\r\n                if (message.command === 'stop') {\r\n\r\n                    if (mainPeerConnectionInfo.peerId === message.peer_id) {\r\n\r\n                        //My parent was dead. And then I will retry.\r\n\r\n                        // close connection with host and retry\r\n                        // console.log('close connection with host');\r\n\r\n                        mainStream = null;\r\n                        mainPeerConnectionInfo.peerConnection.close();\r\n                        mainPeerConnectionInfo = null;\r\n\r\n                        //resetCallback();\r\n                        provider.pause();\r\n\r\n                        sendMessage(ws, {\r\n                            command: 'request_offer'\r\n                        });\r\n\r\n                    } else {\r\n\r\n                        // close connection with client\r\n                        if (clientPeerConnections[message.peer_id]) {\r\n                            // console.log('close connection with client: ', message.peer_id);\r\n                            clientPeerConnections[message.peer_id].peerConnection.close();\r\n                            delete clientPeerConnections[message.peer_id];\r\n                        }\r\n                    }\r\n                }\r\n            };\r\n            ws.onclose = function (e) {\r\n\r\n                if (!wsClosedByPlayer) {\r\n\r\n                    if (connectedCallback) {\r\n                        if (!wsConnected) {\r\n\r\n                            // If the websocket is closed while there is no connection,\r\n                            // it is judged as a timeout.\r\n                            closePeer();\r\n                            return;\r\n                        }\r\n                    }\r\n\r\n                    let tempError = ERRORS.codes[PLAYER_WEBRTC_WS_ERROR];\r\n\r\n                    if (mainPeerConnectionInfo) {\r\n                        tempError = ERRORS.codes[PLAYER_WEBRTC_UNEXPECTED_DISCONNECT];\r\n                    }\r\n\r\n                    closePeer(tempError);\r\n                }\r\n            };\r\n\r\n            ws.onerror = function (error) {\r\n\r\n            };\r\n\r\n        } catch (error) {\r\n\r\n            closePeer(error);\r\n        }\r\n    }\r\n\r\n    function initialize() {\r\n\r\n        OvenPlayerConsole.log(\"WebRTCLoader connecting...\");\r\n        OvenPlayerConsole.log(\"WebRTCLoader url : \" + webSocketUrl);\r\n\r\n        initWebSocket();\r\n    }\r\n\r\n    function closePeer(error) {\r\n\r\n        OvenPlayerConsole.log('WebRTC Loader closePeer()');\r\n\r\n        if (!error) {\r\n            wsClosedByPlayer = true;\r\n        }\r\n\r\n        if (mainPeerConnectionInfo) {\r\n\r\n            if (mainPeerConnectionInfo.statisticsTimer) {\r\n                clearTimeout(mainPeerConnectionInfo.statisticsTimer);\r\n            }\r\n\r\n            mainStream = null;\r\n\r\n            OvenPlayerConsole.log('Closing main peer connection...');\r\n            if (statisticsTimer) {\r\n                clearTimeout(statisticsTimer);\r\n            }\r\n\r\n            if (mainPeerConnectionInfo.peerConnection) {\r\n\r\n                mainPeerConnectionInfo.peerConnection.close();\r\n            }\r\n\r\n            mainPeerConnectionInfo.peerConnection = null;\r\n            provider.trigger(PEER_CONNECTION_DESTROYED);\r\n            mainPeerConnectionInfo = null;\r\n        }\r\n\r\n        if (Object.keys(clientPeerConnections).length > 0) {\r\n\r\n            for (let clientId in clientPeerConnections) {\r\n\r\n                let clientPeerConnection = clientPeerConnections[clientId].peerConnection;\r\n\r\n                if (clientPeerConnection) {\r\n                    OvenPlayerConsole.log('Closing client peer connection...');\r\n                    clientPeerConnection.close();\r\n                    clientPeerConnection = null;\r\n                }\r\n            }\r\n\r\n            clientPeerConnections = {};\r\n        }\r\n\r\n        if (ws) {\r\n            OvenPlayerConsole.log('Closing websocket connection...');\r\n            OvenPlayerConsole.log(\"Send Signaling : Stop.\");\r\n            /*\r\n            0 (CONNECTING)\r\n            1 (OPEN)\r\n            2 (CLOSING)\r\n            3 (CLOSED)\r\n            */\r\n            if (ws.readyState === 1) {\r\n\r\n                wsClosedByPlayer = true;\r\n\r\n                if (mainPeerConnectionInfo) {\r\n                    sendMessage(ws, {\r\n                        command: 'stop',\r\n                        id: mainPeerConnectionInfo.id\r\n                    });\r\n                }\r\n\r\n                ws.close();\r\n            }\r\n\r\n        } else {\r\n            wsClosedByPlayer = false;\r\n        }\r\n\r\n        ws = null;\r\n\r\n        if (error) {\r\n\r\n            if (internalErrorCallback) {\r\n                internalErrorCallback(error);\r\n            }\r\n\r\n            errorTrigger(error, provider);\r\n        }\r\n    }\r\n\r\n    function sendMessage(ws, message) {\r\n\r\n        if (ws) {\r\n            ws.send(JSON.stringify(message));\r\n        }\r\n\r\n    }\r\n\r\n    provider.setCurrentQuality = (qualityIndex) => {\r\n\r\n        if (!playlistFromOme) {\r\n            return -1;\r\n        }\r\n\r\n        let rendition = playlistFromOme.renditions[qualityIndex];\r\n\r\n        if (!rendition) {\r\n            return spec.currentQuality;\r\n        }\r\n\r\n        sendMessage(ws, {\r\n            command: 'change_rendition',\r\n            id: mainPeerConnectionInfo.id,\r\n            rendition_name: rendition.name,\r\n            auto: false\r\n        });\r\n\r\n        autoQuality = false;\r\n\r\n        spec.currentQuality = qualityIndex;\r\n        return spec.currentQuality;\r\n    };\r\n\r\n    provider.isAutoQuality = () => {\r\n\r\n        return autoQuality;\r\n    };\r\n\r\n    provider.setAutoQuality = (auto) => {\r\n\r\n        sendMessage(ws, {\r\n            command: 'change_rendition',\r\n            id: mainPeerConnectionInfo.id,\r\n            auto: auto\r\n        });\r\n        autoQuality = auto;\r\n    };\r\n\r\n    that.connect = () => {\r\n\r\n        initialize();\r\n    };\r\n\r\n    that.destroy = () => {\r\n\r\n        wsClosedByPlayer = true;\r\n        closePeer();\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default WebRTCLoader;\r\n","/**\r\n * Created by hoho on 2018. 6. 11..\r\n */\r\nimport Provider from \"api/provider/html5/Provider\";\r\nimport WebRTCLoader from \"api/provider/html5/providers/WebRTCLoader\";\r\nimport {isWebRTC} from \"utils/validator\";\r\nimport {errorTrigger} from \"api/provider/utils\";\r\nimport {PROVIDER_WEBRTC, ERROR, PLAYER_STATE, STATE_IDLE, STATE_LOADING} from \"api/constants\";\r\nimport {ERRORS, PLAYER_WEBRTC_TIMEOUT} from \"../../../constants\";\r\n\r\n/**\r\n * @brief   webrtc provider extended core.\r\n * @param   container player element.\r\n * @param   playerConfig    config.\r\n * */\r\n\r\nconst WebRTC = function (element, playerConfig, adTagUrl) {\r\n    let that = {};\r\n    let webrtcLoader = null;\r\n    let superDestroy_func = null;\r\n    let superPlay_func = null;\r\n\r\n    let sourceFile = null;\r\n\r\n    let audioCtx = null;\r\n\r\n    let spec = {\r\n        name: PROVIDER_WEBRTC,\r\n        element: element,\r\n        mse: null,\r\n        listener: null,\r\n        isLoaded: false,\r\n        canSeek: false,\r\n        isLive: false,\r\n        seeking: false,\r\n        state: STATE_IDLE,\r\n        buffer: 0,\r\n        framerate: 0,\r\n        currentQuality: -1,\r\n        currentSource: -1,\r\n        qualityLevels: [],\r\n        sources: [],\r\n        adTagUrl: adTagUrl\r\n    };\r\n\r\n    let connectionTimeout = 10000;\r\n    let timeoutMaxRetry = 0;\r\n    let connectionCheckTimer = null;\r\n    let connected = false;\r\n    let connectionStartTime = null;\r\n    let connectedTime = null;\r\n\r\n    const device = () => {\r\n        return {\r\n            isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent),\r\n            iOS: /iPhone|iPad|iPod/i.test(navigator.userAgent)\r\n        }\r\n    };\r\n\r\n    const unlockAudio = (audioCtx) => {\r\n        let currentDevice = device();\r\n        let called = false;\r\n        if (currentDevice.isMobile && audioCtx.state === 'suspended') {\r\n\r\n            document.addEventListener('touchend', () => {\r\n                if (!called && audioCtx.state !== 'running') {\r\n                    audioCtx.resume();\r\n                    called = true\r\n                }\r\n            })\r\n        }\r\n    };\r\n\r\n    function loadWebRTCLoader() {\r\n\r\n        if (isWebRTC(sourceFile.file, sourceFile.type)) {\r\n\r\n            clearTimeout(connectionCheckTimer);\r\n\r\n            OvenPlayerConsole.log(\"WEBRTC : onBeforeLoad : \", sourceFile);\r\n\r\n            if (webrtcLoader) {\r\n                webrtcLoader.destroy();\r\n                webrtcLoader = null;\r\n            }\r\n\r\n            const loadCallback = function (stream) {\r\n\r\n                if (element.srcObject) {\r\n                    element.srcObject = null;\r\n                }\r\n\r\n                if (audioCtx) {\r\n                    audioCtx.close();\r\n                    audioCtx = null;\r\n                }\r\n\r\n                element.srcObject = stream;\r\n\r\n                if (stream.getAudioTracks().length > 0) {\r\n\r\n                    // Add some weird code to avoid the audio delay bug in Safari.\r\n                    // We don't even know why this code solves the audio delay.\r\n                    const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n\r\n                    // This code resolves audio delay in MacOS not IOS.\r\n                    audioCtx = new AudioContext();\r\n                    unlockAudio(audioCtx);\r\n\r\n\r\n                    // This code resolves audio delay in IOS.\r\n                    audioCtx.createMediaStreamSource(stream);\r\n                }\r\n\r\n            };\r\n\r\n            let internalErrorCallback = null;\r\n            let connectedCallback = null;\r\n\r\n            // add callback to check time out\r\n            if (timeoutMaxRetry > 0) {\r\n\r\n                internalErrorCallback = function () {\r\n\r\n                    clearTimeout(connectionCheckTimer);\r\n                };\r\n\r\n                connectedCallback = function () {\r\n\r\n                    clearTimeout(connectionCheckTimer);\r\n                    connectedTime = performance.now();\r\n                    connected = true;\r\n                };\r\n            }\r\n\r\n            webrtcLoader = WebRTCLoader(\r\n                that,\r\n                sourceFile.file,\r\n                loadCallback,\r\n                connectedCallback,\r\n                internalErrorCallback,\r\n                errorTrigger,\r\n                playerConfig,\r\n                spec\r\n            );\r\n\r\n            connectionStartTime = performance.now();\r\n            webrtcLoader.connect();\r\n\r\n            // add connection time out checker\r\n            if (timeoutMaxRetry > 0) {\r\n\r\n                that.once(PLAYER_STATE, function (e) {\r\n\r\n                    if (!connected) {\r\n                        if (e.newstate === STATE_IDLE) {\r\n\r\n                            clearTimeout(connectionCheckTimer);\r\n                            destroyWebRtcLoader();\r\n                        }\r\n                    }\r\n                });\r\n\r\n                that.once(ERROR, function () {\r\n\r\n                    connected = false;\r\n                });\r\n\r\n                connectionCheckTimer = setTimeout(function () {\r\n\r\n                    if (timeoutMaxRetry > 0) {\r\n                        if (!connected) {\r\n\r\n                            destroyWebRtcLoader();\r\n                            loadWebRTCLoader();\r\n                        }\r\n                    } else {\r\n                        destroyWebRtcLoader();\r\n                        let error = ERRORS.codes[PLAYER_WEBRTC_TIMEOUT];\r\n                        errorTrigger(error, that);\r\n                    }\r\n\r\n                    timeoutMaxRetry--;\r\n\r\n                }, connectionTimeout);\r\n            }\r\n        }\r\n    }\r\n\r\n    function destroyWebRtcLoader() {\r\n\r\n        if (webrtcLoader) {\r\n            webrtcLoader.destroy();\r\n            webrtcLoader = null;\r\n            element.srcObject = null;\r\n        }\r\n    }\r\n\r\n    that = Provider(spec, playerConfig, function (source) {\r\n\r\n        const config = playerConfig.getConfig();\r\n\r\n        if (config.webrtcConfig) {\r\n\r\n            if (typeof config.webrtcConfig.connectionTimeout === 'number'\r\n                    && config.webrtcConfig.connectionTimeout > 0) {\r\n\r\n                connectionTimeout = config.webrtcConfig.connectionTimeout;\r\n            }\r\n\r\n            if (typeof config.webrtcConfig.timeoutMaxRetry === 'number'\r\n                    && config.webrtcConfig.timeoutMaxRetry > 0) {\r\n\r\n                timeoutMaxRetry = config.webrtcConfig.timeoutMaxRetry;\r\n            }\r\n        }\r\n\r\n        sourceFile = source;\r\n        loadWebRTCLoader();\r\n    });\r\n\r\n    superDestroy_func = that.super('destroy');\r\n    superPlay_func = that.super('play');\r\n\r\n    OvenPlayerConsole.log(\"WEBRTC PROVIDER LOADED.\");\r\n\r\n\r\n    that.destroy = () => {\r\n\r\n        clearTimeout(connectionCheckTimer);\r\n\r\n        destroyWebRtcLoader();\r\n\r\n        OvenPlayerConsole.log(\"WEBRTC :  PROVIDER DESTROYED.\");\r\n\r\n        superDestroy_func();\r\n\r\n    };\r\n\r\n    that.play = () => {\r\n\r\n        if (timeoutMaxRetry > 0 && !connected) {\r\n\r\n            loadWebRTCLoader();\r\n        }\r\n\r\n        superPlay_func();\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\n\r\nexport default WebRTC;\r\n","/**\r\n * Created by hoho on 2018. 11. 14..\r\n */\r\n\r\nconst sizeHumanizer = function (bytes, si, postpix) {\r\n    let thresh = si ? 1000 : 1024;\r\n    if(Math.abs(bytes) < thresh) {\r\n        return bytes + ' B';\r\n    }\r\n    let unit = postpix||\"B\";\r\n    let units = ['k'+unit,'M'+unit,'G'+unit,'T'+unit,'P'+unit,'E'+unit,'Z'+unit,'Y'+unit];\r\n       // ? ['kB','MB','GB','TB','PB','EB','ZB','YB']: ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];\r\n    let u = -1;\r\n    do {\r\n        bytes /= thresh;\r\n        ++u;\r\n    } while(Math.abs(bytes) >= thresh && u < units.length - 1);\r\n    return bytes.toFixed(1)+units[u];\r\n}\r\n\r\nexport default sizeHumanizer;","/**\r\n * Created by hoho on 2018. 6. 14..\r\n */\r\nimport Provider from \"api/provider/html5/Provider\";\r\nimport {errorTrigger} from \"api/provider/utils\";\r\nimport sizeHumanizer from \"utils/sizeHumanizer\";\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    INIT_DASH_UNSUPPORT,\r\n    INIT_DASH_FAIL,\r\n    ERRORS,\r\n    PLAYER_UNKNWON_NETWORK_ERROR,\r\n    CONTENT_LEVEL_CHANGED,\r\n    PROVIDER_DASH,\r\n    DASH_PREPARED,\r\n    DASH_DESTROYED\r\n} from \"api/constants\";\r\nimport _ from \"utils/underscore\";\r\nimport {STATE_LOADING} from \"../../../constants\";\r\n\r\n/**\r\n * @brief   dashjs provider extended core.\r\n * @param   container player element.\r\n * @param   playerConfig    config.\r\n * */\r\nconst DASHERROR = {\r\n    DOWNLOAD: \"download\",\r\n    MANIFESTERROR: \"manifestError\"\r\n};\r\nconst Dash = function (element, playerConfig, adTagUrl) {\r\n\r\n    let that = {};\r\n    let dash = null;\r\n    let superPlay_func = null;\r\n    let superDestroy_func = null;\r\n    let seekPosition_sec = 0;\r\n    let prevLLLiveDuration = null;\r\n    let loadRetryer = null;\r\n    let sourceOfFile = \"\";\r\n\r\n    try {\r\n\r\n        if (dashjs.Version < \"3.0.0\") {\r\n            throw ERRORS.codes[INIT_DASH_UNSUPPORT];\r\n        }\r\n\r\n        const coveredSetAutoSwitchQualityFor = function (isAuto) {\r\n\r\n            dash.updateSettings({\r\n                streaming: {\r\n                    abr: {\r\n                        autoSwitchBitrate: {\r\n                            video: isAuto\r\n                        }\r\n                    }\r\n                }\r\n            });\r\n        };\r\n\r\n        const coveredGetAutoSwitchQualityFor = function () {\r\n\r\n            return dash.getSettings().streaming.abr.autoSwitchBitrate.video;\r\n        };\r\n\r\n        const liveDelayReducingCallback = function () {\r\n\r\n            if (dash.duration() !== prevLLLiveDuration) {\r\n                prevLLLiveDuration = dash.duration();\r\n\r\n                let dvrInfo = dash.getDashMetrics().getCurrentDVRInfo();\r\n                let liveDelay = playerConfig.getConfig().lowLatencyMpdLiveDelay;\r\n\r\n                if (!liveDelay) {\r\n                    liveDelay = 3;\r\n                }\r\n\r\n                dash.seek(dvrInfo.range.end - dvrInfo.range.start - liveDelay)\r\n            }\r\n\r\n        };\r\n\r\n        dash = dashjs.MediaPlayer().create();\r\n        dash.initialize(element, null, false);\r\n\r\n        window.op_dash = dash;\r\n\r\n        let spec = {\r\n            name: PROVIDER_DASH,\r\n            element: element,\r\n            mse: dash,\r\n            listener: null,\r\n            isLoaded: false,\r\n            canSeek: false,\r\n            isLive: false,\r\n            seeking: false,\r\n            state: STATE_IDLE,\r\n            buffer: 0,\r\n            framerate: 0,\r\n            currentQuality: -1,\r\n            currentSource: -1,\r\n            qualityLevels: [],\r\n            sources: [],\r\n            adTagUrl: adTagUrl\r\n        };\r\n\r\n        that = Provider(spec, playerConfig, function (source, lastPlayPosition) {\r\n\r\n            OvenPlayerConsole.log(\"DASH : Attach File : \", source, \"lastPlayPosition : \" + lastPlayPosition);\r\n\r\n            coveredSetAutoSwitchQualityFor(true);\r\n            sourceOfFile = source.file;\r\n\r\n            // dash.off(dashjs.MediaPlayer.events.PLAYBACK_PLAYING, liveDelayReducingCallback);\r\n\r\n            if (source.lowLatency === true) {\r\n\r\n                prevLLLiveDuration = null;\r\n\r\n                dash.updateSettings({\r\n                    streaming: {\r\n                        lowLatencyEnabled: source.lowLatency\r\n                    }\r\n                });\r\n\r\n                if (playerConfig.getConfig().lowLatencyMpdLiveDelay && typeof(playerConfig.getConfig().lowLatencyMpdLiveDelay) === 'number') {\r\n\r\n                    dash.updateSettings({\r\n                        streaming: {\r\n                            liveDelay: playerConfig.getConfig().lowLatencyMpdLiveDelay\r\n                        }\r\n                    });\r\n                }\r\n\r\n                // dash.on(dashjs.MediaPlayer.events.PLAYBACK_PLAYING, liveDelayReducingCallback);\r\n\r\n            } else {\r\n\r\n                dash.updateSettings({\r\n                    streaming: {\r\n                        lowLatencyEnabled: false,\r\n                        liveDelay: undefined\r\n                    }\r\n                });\r\n\r\n            }\r\n\r\n            dash.updateSettings({\r\n                debug: {\r\n                    logLevel: dashjs.Debug.LOG_LEVEL_NONE\r\n                }\r\n            });\r\n\r\n            let dashConfigFromPlayerConfig = playerConfig.getConfig().dashConfig;\r\n\r\n            if (dashConfigFromPlayerConfig) {\r\n                dash.updateSettings(dashConfigFromPlayerConfig);\r\n            }\r\n\r\n            that.trigger(DASH_PREPARED, dash);\r\n\r\n            dash.attachSource(sourceOfFile);\r\n\r\n            seekPosition_sec = lastPlayPosition;\r\n        });\r\n\r\n        superPlay_func = that.super('play');\r\n        superDestroy_func = that.super('destroy');\r\n        OvenPlayerConsole.log(\"DASH PROVIDER LOADED.\");\r\n\r\n        dash.on(dashjs.MediaPlayer.events.ERROR, function (error) {\r\n\r\n            let tempError = ERRORS.codes[PLAYER_UNKNWON_NETWORK_ERROR];\r\n            tempError.error = error;\r\n            errorTrigger(tempError, that);\r\n        });\r\n\r\n        dash.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_REQUESTED, function (event) {\r\n            if (event && event.mediaType && event.mediaType === \"video\") {\r\n                that.trigger(CONTENT_LEVEL_CHANGED, {\r\n                    isAuto: coveredGetAutoSwitchQualityFor(),\r\n                    currentQuality: spec.currentQuality,\r\n                    type: \"request\"\r\n                });\r\n            }\r\n        });\r\n        dash.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_RENDERED, function (event) {\r\n            if (event && event.mediaType && event.mediaType === \"video\") {\r\n                spec.currentQuality = event.newQuality;\r\n                that.trigger(CONTENT_LEVEL_CHANGED, {\r\n                    isAuto: coveredGetAutoSwitchQualityFor(),\r\n                    currentQuality: event.newQuality,\r\n                    type: \"render\"\r\n                });\r\n            }\r\n        });\r\n\r\n        dash.on(dashjs.MediaPlayer.events.PLAYBACK_METADATA_LOADED, function (event) {\r\n\r\n            OvenPlayerConsole.log(\"DASH : PLAYBACK_METADATA_LOADED  : \", dash.getQualityFor(\"video\"), dash.getBitrateInfoListFor('video'), dash.getBitrateInfoListFor('video')[dash.getQualityFor(\"video\")]);\r\n\r\n            let subQualityList = dash.getBitrateInfoListFor('video');\r\n            spec.currentQuality = dash.getQualityFor(\"video\");\r\n            for (let i = 0; i < subQualityList.length; i++) {\r\n                if (!_.findWhere(spec.qualityLevels, {bitrate: subQualityList[i].bitrate, height: subQualityList[i].height, width: subQualityList[i].width})) {\r\n                    spec.qualityLevels.push({\r\n                        bitrate: subQualityList[i].bitrate,\r\n                        height: subQualityList[i].height,\r\n                        width: subQualityList[i].width,\r\n                        index: subQualityList[i].qualityIndex,\r\n                        label: subQualityList[i].width + \"x\" + subQualityList[i].height + \", \" + sizeHumanizer(subQualityList[i].bitrate, true, \"bps\")\r\n                    });\r\n                }\r\n            }\r\n\r\n            if (dash.isDynamic()) {\r\n                spec.isLive = true;\r\n            }\r\n\r\n            if (seekPosition_sec && !spec.isLive) {\r\n                dash.seek(seekPosition_sec);\r\n            }\r\n\r\n        });\r\n\r\n        that.play = (mutedPlay) => {\r\n\r\n            if (that.getState() === STATE_AD_PLAYING || that.getState() === STATE_AD_PAUSED) {\r\n\r\n            } else {\r\n\r\n                superPlay_func(mutedPlay);\r\n            }\r\n\r\n        };\r\n\r\n        that.setCurrentQuality = (qualityIndex) => {\r\n            if (that.getState() !== STATE_PLAYING) {\r\n                that.play();\r\n            }\r\n            spec.currentQuality = qualityIndex;\r\n            if (coveredGetAutoSwitchQualityFor()) {\r\n                coveredSetAutoSwitchQualityFor(false);\r\n            }\r\n            dash.setQualityFor(\"video\", qualityIndex);\r\n            return spec.currentQuality;\r\n        };\r\n        that.isAutoQuality = () => {\r\n            return coveredGetAutoSwitchQualityFor();\r\n        };\r\n        that.setAutoQuality = (isAuto) => {\r\n            coveredSetAutoSwitchQualityFor(isAuto);\r\n        };\r\n        that.destroy = () => {\r\n\r\n            if (dash.destroy) {\r\n\r\n                dash.destroy();\r\n            } else {\r\n\r\n                dash.reset();\r\n            }\r\n\r\n            dash = null;\r\n            that.trigger(DASH_DESTROYED);\r\n            OvenPlayerConsole.log(\"DASH : PROVIDER DESTROYED.\");\r\n            superDestroy_func();\r\n        };\r\n    } catch (error) {\r\n\r\n        if (error && error.code && error.code === INIT_DASH_UNSUPPORT) {\r\n            throw error;\r\n        } else {\r\n            let tempError = ERRORS.codes[INIT_DASH_FAIL];\r\n            tempError.error = error;\r\n            throw tempError;\r\n        }\r\n    }\r\n\r\n    return that;\r\n};\r\n\r\n\r\nexport default Dash;\r\n","/**\r\n * Created by hoho on 2018. 6. 7..\r\n */\r\nimport Provider from \"api/provider/html5/Provider\";\r\nimport { errorTrigger } from \"api/provider/utils\";\r\nimport {\r\n    PROVIDER_HLS,\r\n    PLAYER_STATE, STATE_IDLE, STATE_LOADING,\r\n    ERRORS,\r\n    INIT_HLSJS_FAIL,\r\n    HLS_PREPARED,\r\n    HLS_DESTROYED,\r\n    PLAYER_UNKNWON_NETWORK_ERROR,\r\n    PLAYER_BAD_REQUEST_ERROR,\r\n    PLAYER_AUTH_FAILED_ERROR,\r\n    PLAYER_NOT_ACCEPTABLE_ERROR, STATE_PLAYING, CONTENT_LEVEL_CHANGED, AUDIO_TRACK_CHANGED\r\n} from \"api/constants\";\r\n\r\nimport sizeHumanizer from \"utils/sizeHumanizer\";\r\n\r\n/**\r\n * @brief   hlsjs provider extended core.\r\n * @param   container player element.\r\n * @param   playerConfig    config.\r\n * */\r\n\r\n\r\nconst HlsProvider = function (element, playerConfig, adTagUrl) {\r\n    let that = {};\r\n    let hls = null;\r\n    let superStop_func = null;\r\n    let superDestroy_func = null;\r\n    let loadRetryer = null;\r\n    let isManifestLoaded = false;\r\n    let firstLoaded = false;\r\n\r\n    try {\r\n\r\n        let hlsConfig = {\r\n            debug: false\r\n        };\r\n\r\n        let hlsConfigFromPlayerConfig = playerConfig.getConfig().hlsConfig;\r\n\r\n        if (hlsConfigFromPlayerConfig) {\r\n\r\n            for (let key in hlsConfigFromPlayerConfig) {\r\n                hlsConfig[key] = hlsConfigFromPlayerConfig[key];\r\n            }\r\n        }\r\n\r\n        hls = new Hls(hlsConfig);\r\n\r\n        window.op_hls = hls;\r\n\r\n        hls.attachMedia(element);\r\n\r\n        let spec = {\r\n            name: PROVIDER_HLS,\r\n            element: element,\r\n            mse: hls,\r\n            listener: null,\r\n            isLoaded: false,\r\n            canSeek: false,\r\n            isLive: false,\r\n            seeking: false,\r\n            state: STATE_IDLE,\r\n            buffer: 0,\r\n            dvrWindow: 0,\r\n            framerate: 0,\r\n            currentQuality: -1,\r\n            qualityLevels: [],\r\n            currentAudioTrack: -1,\r\n            audioTracks: [],\r\n            currentSource: -1,\r\n            sources: [],\r\n            adTagUrl: adTagUrl\r\n        };\r\n\r\n        that = Provider(spec, playerConfig, function (source, lastPlayPosition) {\r\n\r\n            OvenPlayerConsole.log(\"HLS : onExtendedLoad : \", source, \"lastPlayPosition : \" + lastPlayPosition);\r\n\r\n            that.trigger(HLS_PREPARED, hls);\r\n\r\n            hls.loadSource(source.file);\r\n\r\n            hls.once(Hls.Events.MANIFEST_LOADED, function (event, data) {\r\n\r\n                isManifestLoaded = true;\r\n\r\n                for (let i = 0; i < hls.levels.length; i++) {\r\n\r\n                    let qualityLevel = hls.levels[i];\r\n\r\n                    spec.qualityLevels.push({\r\n                        bitrate: qualityLevel.bitrate,\r\n                        height: qualityLevel.height,\r\n                        width: qualityLevel.width,\r\n                        index: i,\r\n                        label: qualityLevel.width + \"x\" + qualityLevel.height + \", \" + sizeHumanizer(qualityLevel.bitrate, true, \"bps\")\r\n                    });\r\n                }\r\n\r\n                spec.currentQuality = hls.firstLevel;\r\n\r\n                for (let i = 0; i < hls.audioTracks.length; i++) {\r\n\r\n                    let audioTrack = hls.audioTracks[i];\r\n\r\n                    spec.audioTracks.push({\r\n                        index: audioTrack.id,\r\n                        label: audioTrack.name\r\n                    });\r\n\r\n                    if (audioTrack.default === true) {\r\n                        spec.currentAudioTrack = audioTrack.id;\r\n                    }\r\n                }\r\n            });\r\n\r\n            hls.once(Hls.Events.LEVEL_LOADED, function (event, data) {\r\n\r\n                firstLoaded = true;\r\n\r\n                if (loadRetryer) {\r\n                    clearTimeout(loadRetryer);\r\n                    loadRetryer = null;\r\n                }\r\n\r\n                if (data.details.live) {\r\n                    spec.isLive = true;\r\n                } else {\r\n\r\n                    if (lastPlayPosition && lastPlayPosition >= 0) {\r\n                        that.seek(lastPlayPosition);\r\n                    }\r\n                }\r\n            });\r\n\r\n            hls.on(Hls.Events.LEVEL_SWITCHED, function (event, data) {\r\n\r\n                spec.currentQuality = data.level;\r\n\r\n                that.trigger(CONTENT_LEVEL_CHANGED, {\r\n                    isAuto: hls.autoLevelEnabled,\r\n                    currentQuality: spec.currentQuality,\r\n                    type: \"render\"\r\n                });\r\n            });\r\n\r\n            hls.on(Hls.Events.AUDIO_TRACK_SWITCHED , function (event, data) {\r\n\r\n                spec.currentAudioTrack = data.id;\r\n                that.trigger(AUDIO_TRACK_CHANGED, {\r\n                    currentAudioTrack: spec.currentAudioTrack\r\n                });\r\n            });\r\n\r\n            hls.on(Hls.Events.LEVEL_UPDATED, function (event, data) {\r\n                if (data && data.details) {\r\n                    spec.dvrWindow = data.details.totalduration;\r\n                }\r\n\r\n            });\r\n\r\n            hls.on(Hls.Events.ERROR, function (event, data) {\r\n\r\n                if (data && data.networkDetails && data.networkDetails.status === 202) {\r\n\r\n                    if (loadRetryer) {\r\n                        clearTimeout(loadRetryer);\r\n                        loadRetryer = null;\r\n                    }\r\n\r\n                    that.setState(STATE_LOADING);\r\n\r\n                    loadRetryer = setTimeout(function () {\r\n\r\n                        if (hls) {\r\n\r\n                            that.stop();\r\n                            hls.stopLoad();\r\n                            hls.loadSource(source.file);\r\n                        }\r\n\r\n                    }, 1000);\r\n\r\n                    return;\r\n                }\r\n\r\n                if (!data.fatal) {\r\n                    // do nothing when non fatal error. hlsjs will recover it automatically.\r\n                    return;\r\n                }\r\n\r\n                let errorType = PLAYER_UNKNWON_NETWORK_ERROR;\r\n\r\n                if (data && data.networkDetails && data.networkDetails.status === 400) {\r\n                    errorType = PLAYER_BAD_REQUEST_ERROR;\r\n                } else if (data && data.networkDetails && data.networkDetails.status === 403) {\r\n                    errorType = PLAYER_AUTH_FAILED_ERROR;\r\n                } else if (data && data.networkDetails && data.networkDetails.status === 406) {\r\n                    errorType = PLAYER_NOT_ACCEPTABLE_ERROR;\r\n                }\r\n\r\n                let tempError = ERRORS.codes[errorType];\r\n                tempError.error = data.details;\r\n                errorTrigger(tempError, that);\r\n            });\r\n\r\n            that.on(PLAYER_STATE, function (data) {\r\n\r\n                if (!firstLoaded && data.prevstate === STATE_LOADING && data.newstate === STATE_IDLE) {\r\n\r\n                    if (loadRetryer) {\r\n                        clearTimeout(loadRetryer);\r\n                        loadRetryer = null;\r\n                    }\r\n\r\n                    if (hls) {\r\n\r\n                        hls.stopLoad();\r\n                    }\r\n                }\r\n            });\r\n        });\r\n\r\n        that.setCurrentQuality = (qualityIndex) => {\r\n\r\n            hls.currentLevel = qualityIndex;\r\n            spec.currentQuality = qualityIndex;\r\n\r\n            return spec.currentQuality;\r\n        };\r\n\r\n        that.isAutoQuality = () => {\r\n            return hls.autoLevelEnabled;\r\n        };\r\n\r\n        that.setAutoQuality = (isAuto) => {\r\n            if (isAuto) {\r\n                hls.currentLevel = -1;\r\n            } else {\r\n                hls.currentLevel = hls.currentLevel;\r\n            }\r\n        };\r\n\r\n        that.setCurrentAudioTrack = (audioTrackIndex) => {\r\n            hls.audioTrack = audioTrackIndex;\r\n            spec.currentAudioTrack = audioTrackIndex;\r\n\r\n            return spec.currentAudioTrack;\r\n        };\r\n\r\n        that.getDuration = () => {\r\n            return element.duration;\r\n        }\r\n\r\n        superStop_func = that.super('stop');\r\n        that.stop = () => {\r\n\r\n            if (loadRetryer) {\r\n\r\n                clearTimeout(loadRetryer);\r\n                loadRetryer = null;\r\n            }\r\n\r\n            if (hls) {\r\n                hls.stopLoad();\r\n            }\r\n\r\n            superStop_func();\r\n        };\r\n\r\n        superDestroy_func = that.super('destroy');\r\n        that.destroy = () => {\r\n\r\n            if (loadRetryer) {\r\n\r\n                clearTimeout(loadRetryer);\r\n                loadRetryer = null;\r\n            }\r\n\r\n            if (hls) {\r\n\r\n                hls.destroy();\r\n                that.trigger(HLS_DESTROYED);\r\n            }\r\n\r\n            hls = null;\r\n            OvenPlayerConsole.log(\"HLS : PROVIDER DESTROYED.\");\r\n            superDestroy_func();\r\n        };\r\n\r\n        OvenPlayerConsole.log(\"HLS PROVIDER LOADED.\");\r\n    } catch (error) {\r\n        let tempError = ERRORS.codes[INIT_HLSJS_FAIL];\r\n        tempError.error = error;\r\n        throw tempError;\r\n    }\r\n\r\n    return that;\r\n};\r\n\r\n\r\nexport default HlsProvider;","import OvenPlayerSDK from \"ovenplayer.sdk\"\r\nimport CaptionManager from \"api/caption/Manager\";\r\nimport Configurator from \"api/Configurator\";\r\nimport EventEmitter from \"api/EventEmitter\";\r\nimport MediaManager from \"api/media/Manager\";\r\nimport PlaylistManager from \"api/playlist/Manager\";\r\nimport ProviderController from \"api/provider/Controller\";\r\nimport {\r\n    READY,\r\n    ERRORS,\r\n    ERROR,\r\n    CONTENT_COMPLETE,\r\n    CONTENT_META,\r\n    INIT_UNKNWON_ERROR,\r\n    INIT_UNSUPPORT_ERROR,\r\n    DESTROY,\r\n    PLAYER_PLAY,\r\n    NETWORK_UNSTABLED,\r\n    PLAYER_WEBRTC_NETWORK_SLOW,\r\n    PLAYER_WEBRTC_UNEXPECTED_DISCONNECT,\r\n    PLAYER_WEBRTC_SET_LOCAL_DESC_ERROR,\r\n    PLAYER_FILE_ERROR,\r\n    PROVIDER_DASH,\r\n    PROVIDER_HLS,\r\n    PROVIDER_WEBRTC,\r\n    PROVIDER_HTML5,\r\n    PROVIDER_RTMP,\r\n    ALL_PLAYLIST_ENDED\r\n} from \"api/constants\";\r\n\r\nimport { ApiRtmpExpansion } from 'api/ApiExpansions';\r\nimport { analUserAgent } from \"utils/browser\";\r\nimport { pickCurrentSource } from \"api/provider/utils\";\r\nimport { version } from \"../version\";\r\nimport { CONTENT_SOURCE_CHANGED } from \"./constants\";\r\n\r\n/**\r\n * @brief   This object connects UI to the provider.\r\n * @param   {object}    container  dom element\r\n *\r\n * */\r\n\r\nconst Api = function (container) {\r\n    const that = {};\r\n    EventEmitter(that);\r\n\r\n    OvenPlayerConsole.log(\"API loaded.\");\r\n\r\n    let playlistManager = PlaylistManager(that);\r\n    let providerController = ProviderController();\r\n    let userAgentObject = analUserAgent();\r\n    let mediaManager = MediaManager(container, userAgentObject);\r\n    let currentProvider = \"\";\r\n    let playerConfig = \"\";\r\n    let captionManager = \"\";\r\n\r\n    const runNextPlaylist = function (index) {\r\n        OvenPlayerConsole.log(\"runNextPlaylist\");\r\n        let nextPlaylistIndex = index; // || playlistManager.getCurrentPlaylistIndex() + 1;\r\n        let playlist = playlistManager.getPlaylist();\r\n        let hasNextPlaylist = playlist[nextPlaylistIndex] ? true : false;\r\n        //init source index\r\n        playerConfig.setSourceIndex(0);\r\n\r\n        //set Golbal Volume info\r\n        playerConfig.setVolume(currentProvider.getVolume());\r\n\r\n        if (hasNextPlaylist) {\r\n\r\n            playlistManager.setCurrentPlaylist(nextPlaylistIndex);\r\n            initProvider();\r\n\r\n        } else {\r\n            //All Playlist Ended.\r\n            that.trigger(ALL_PLAYLIST_ENDED, null);\r\n        }\r\n    };\r\n    const initProvider = function (lastPlayPosition) {\r\n\r\n        return providerController.loadProviders(playlistManager.getCurrentPlayList()).then(Providers => {\r\n\r\n            if (Providers.length < 1) {\r\n                throw ERRORS.codes[INIT_UNSUPPORT_ERROR];\r\n            }\r\n\r\n            if (currentProvider) {\r\n                currentProvider.destroy();\r\n                currentProvider = null;\r\n            }\r\n\r\n            if (captionManager) {\r\n                captionManager.destroy();\r\n                captionManager = null;\r\n            }\r\n\r\n            captionManager = CaptionManager(that, playlistManager.getCurrentPlaylistIndex());\r\n\r\n            OvenPlayerConsole.log(\"API : init() captions\");\r\n\r\n            let currentSourceIndex = pickCurrentSource(playlistManager.getCurrentSources(), playerConfig);\r\n            let providerName = Providers[currentSourceIndex][\"name\"];\r\n            OvenPlayerConsole.log(\"API : init() provider\", providerName);\r\n            //Init Provider.\r\n            currentProvider = Providers[currentSourceIndex].provider(\r\n                mediaManager.createMedia(providerName, playerConfig),\r\n                playerConfig,\r\n                playlistManager.getCurrentAdTag()\r\n            );\r\n\r\n            if (providerName === PROVIDER_RTMP) {\r\n                //If provider type is RTMP, we accepts RtmpExpansion.\r\n                Object.assign(that, ApiRtmpExpansion(currentProvider));\r\n            }\r\n\r\n            //This passes the event created by the Provider to API.\r\n            currentProvider.on(\"all\", function (name, data) {\r\n\r\n                if (name === ERROR) {\r\n\r\n                    // Chrome >=80 on Android misses h246 in SDP when first time after web page loaded.\r\n                    // So wait until browser get h264 capabilities and create answer SDP.\r\n                    // if (userAgentObject.os === 'Android' && userAgentObject.browser === 'Chrome') {\r\n                    //\r\n                    //     if (data && data.code && data.code === PLAYER_WEBRTC_SET_LOCAL_DESC_ERROR) {\r\n                    //\r\n                    //         setTimeout(function () {\r\n                    //\r\n                    //             that.setCurrentSource(that.getCurrentSource());\r\n                    //         }, webrtcRetryInterval);\r\n                    //\r\n                    //         return;\r\n                    //     }\r\n                    // }\r\n\r\n                    if (playerConfig.getConfig().autoFallback && that.getCurrentSource() + 1 < that.getSources().length) {\r\n\r\n                        that.pause();\r\n                        that.setCurrentSource(that.getCurrentSource() + 1);\r\n\r\n                        return;\r\n                    }\r\n                }\r\n\r\n                if (name === CONTENT_COMPLETE) {\r\n                    runNextPlaylist(playlistManager.getCurrentPlaylistIndex() + 1);\r\n                }\r\n\r\n                if (name === CONTENT_META) {\r\n                    if (playerConfig.isAutoStart()) {\r\n                        that.play();\r\n                    }\r\n                }\r\n\r\n                that.trigger(name, data);\r\n            });\r\n\r\n\r\n        }).then(() => {\r\n\r\n            //provider's preload() have to made Promise. Cuz it overcomes 'flash loading timing problem'.\r\n            currentProvider.preload(playlistManager.getCurrentSources(), lastPlayPosition).then(function () {\r\n\r\n\r\n            }).catch((error) => {\r\n\r\n                if (error && error.code && ERRORS.codes[error.code]) {\r\n                    that.trigger(ERROR, ERRORS.codes[error.code]);\r\n                } else {\r\n                    let tempError = ERRORS.codes[INIT_UNKNWON_ERROR];\r\n                    tempError.error = error;\r\n                    that.trigger(ERROR, tempError);\r\n                }\r\n            });\r\n        }).catch((error) => {\r\n            //INIT ERROR\r\n            if (error && error.code && ERRORS.codes[error.code]) {\r\n                that.trigger(ERROR, ERRORS.codes[error.code]);\r\n            } else {\r\n                let tempError = ERRORS.codes[INIT_UNKNWON_ERROR];\r\n                tempError.error = error;\r\n                that.trigger(ERROR, tempError);\r\n            }\r\n        });\r\n    };\r\n\r\n\r\n    /**\r\n     * init\r\n     * @param      {object} options player initial option value.\r\n     * @returns\r\n     **/\r\n    that.init = (options) => {\r\n\r\n        if (!options) {\r\n            options = {};\r\n        }\r\n\r\n        options.mediaContainer = container;\r\n        options.browser = userAgentObject;\r\n        playerConfig = Configurator(options, that);\r\n        OvenPlayerConsole.log(\"API : init()\");\r\n        OvenPlayerConsole.log(\"API : init() config : \", playerConfig);\r\n\r\n        //Not working : SyntaxError: \"ERRORS.codes\" is read-only\r\n        ERRORS.codes = playerConfig.getSystemText().api.error;\r\n        //Cool\r\n        //ERRORS.codes.push(playerConfig.getSystemText());\r\n\r\n        playlistManager.initPlaylist(playerConfig.getPlaylist(), playerConfig);\r\n        OvenPlayerConsole.log(\"API : init() sources : \", playlistManager.getCurrentSources());\r\n\r\n        initProvider();\r\n\r\n        setTimeout(function () {\r\n            that.trigger(READY);\r\n        });\r\n    };\r\n    that.getProviderName = () => {\r\n        if (currentProvider) {\r\n            return currentProvider.getName();\r\n        } else {\r\n            return null;\r\n        }\r\n\r\n    };\r\n    that.getProvider = () => {\r\n        return currentProvider;\r\n    };\r\n    that.getMseInstance = () => {\r\n        if (currentProvider) {\r\n            return currentProvider.getMse();\r\n        } else {\r\n            return null;\r\n        }\r\n\r\n    };\r\n    that.getConfig = () => {\r\n        OvenPlayerConsole.log(\"API : getConfig()\", playerConfig.getConfig());\r\n        return playerConfig.getConfig();\r\n    };\r\n    that.getBrowser = () => {\r\n\r\n        return playerConfig.getBrowser();\r\n    };\r\n    that.setTimecodeMode = (isShow) => {\r\n        OvenPlayerConsole.log(\"API : setTimecodeMode()\", isShow);\r\n        playerConfig.setTimecodeMode(isShow);\r\n    };\r\n    that.isTimecodeMode = () => {\r\n        OvenPlayerConsole.log(\"API : isTimecodeMode()\");\r\n        return playerConfig.isTimecodeMode();\r\n    };\r\n    that.getFramerate = () => {\r\n        OvenPlayerConsole.log(\"API : getFramerate()\");\r\n\r\n        if (currentProvider) {\r\n            return currentProvider.getFramerate();\r\n        }\r\n\r\n    };\r\n    that.seekFrame = (frameCount) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : seekFrame()\", frameCount);\r\n        return currentProvider.seekFrame(frameCount);\r\n    };\r\n    that.getDuration = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getDuration()\", currentProvider.getDuration());\r\n        return currentProvider.getDuration();\r\n    };\r\n    that.getDvrWindow = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getDvrWindow()\", currentProvider.getDvrWindow());\r\n        return currentProvider.getDvrWindow();\r\n    };\r\n    that.getPosition = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getPosition()\", currentProvider.getPosition());\r\n        return currentProvider.getPosition();\r\n    };\r\n    that.getVolume = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getVolume()\", currentProvider.getVolume());\r\n        return currentProvider.getVolume();\r\n    };\r\n    that.setVolume = (volume) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setVolume() \" + volume);\r\n        currentProvider.setVolume(volume);\r\n    };\r\n    that.setMute = (state) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setMute() \" + state);\r\n        return currentProvider.setMute(state);\r\n    };\r\n    that.getMute = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getMute() \" + currentProvider.getMute());\r\n        return currentProvider.getMute();\r\n    };\r\n    that.load = (playlist) => {\r\n        OvenPlayerConsole.log(\"API : load() \", playlist);\r\n\r\n        if (playlist) {\r\n\r\n            playerConfig.setSourceIndex(0);\r\n\r\n            if (currentProvider) {\r\n\r\n                if (currentProvider.getQualityLevels().length > 0) {\r\n                    currentProvider.setCurrentQuality(0);\r\n                }\r\n            }\r\n\r\n            if ('sources' in playlist) {\r\n                playerConfig.setPlaylist(playlist);\r\n            } else {\r\n                playerConfig.setPlaylist({\r\n                    sources: playlist\r\n                });\r\n            }\r\n\r\n            playlistManager.initPlaylist(playerConfig.getPlaylist(), playerConfig);\r\n        }\r\n        return initProvider();\r\n\r\n    };\r\n    that.play = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : play() \");\r\n\r\n        if (!currentProvider.metaLoaded() && !playerConfig.isAutoStart()) {\r\n            that.once(CONTENT_META, function () {\r\n                currentProvider.play();\r\n            });\r\n        } else {\r\n            currentProvider.play();\r\n        }\r\n    };\r\n    that.pause = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : pause() \");\r\n        currentProvider.pause();\r\n    };\r\n    that.seek = (position) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : seek() \" + position);\r\n        currentProvider.seek(position);\r\n    };\r\n    that.setPlaybackRate = (playbackRate) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setPlaybackRate() \", playbackRate);\r\n        return currentProvider.setPlaybackRate(playerConfig.setPlaybackRate(playbackRate));\r\n    };\r\n    that.getPlaybackRate = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getPlaybackRate() \", currentProvider.getPlaybackRate());\r\n        return currentProvider.getPlaybackRate();\r\n    };\r\n\r\n    that.getPlaylist = () => {\r\n        OvenPlayerConsole.log(\"API : getPlaylist() \", playlistManager.getPlaylist());\r\n        return playlistManager.getPlaylist();\r\n    };\r\n    that.getCurrentPlaylist = () => {\r\n        OvenPlayerConsole.log(\"API : getCurrentPlaylist() \", playlistManager.getCurrentPlaylistIndex());\r\n        return playlistManager.getCurrentPlaylistIndex();\r\n    };\r\n    that.setCurrentPlaylist = (index) => {\r\n        OvenPlayerConsole.log(\"API : setCurrentPlaylist() \", index);\r\n        runNextPlaylist(index);\r\n    };\r\n\r\n    that.getSources = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getSources() \", currentProvider.getSources());\r\n        return currentProvider.getSources();\r\n    };\r\n    that.getCurrentSource = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getCurrentSource() \", currentProvider.getCurrentSource());\r\n        return currentProvider.getCurrentSource();\r\n    };\r\n    that.setCurrentSource = (index) => {\r\n\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setCurrentSource() \", index);\r\n\r\n        let lastPlayPosition = currentProvider.getPosition();\r\n        playerConfig.setSourceIndex(index);\r\n\r\n        initProvider(lastPlayPosition).then(function () {\r\n\r\n            that.trigger(CONTENT_SOURCE_CHANGED, {\r\n                currentSource: index\r\n            });\r\n        });\r\n\r\n        return index;\r\n    };\r\n\r\n\r\n    that.getQualityLevels = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getQualityLevels() \", currentProvider.getQualityLevels());\r\n        return currentProvider.getQualityLevels();\r\n    };\r\n    that.getCurrentQuality = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getCurrentQuality() \", currentProvider.getCurrentQuality());\r\n        return currentProvider.getCurrentQuality();\r\n    };\r\n    that.setCurrentQuality = (qualityIndex) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setCurrentQuality() \", qualityIndex);\r\n\r\n        return currentProvider.setCurrentQuality(qualityIndex);\r\n    };\r\n\r\n    that.getAudioTracks = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getAudioTracks() \", currentProvider.getAudioTracks());\r\n        return currentProvider.getAudioTracks();\r\n    };\r\n\r\n    that.getCurrentAudioTrack = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getCurrentAudioTrack() \", currentProvider.getCurrentAudioTrack());\r\n        return currentProvider.getCurrentAudioTrack();\r\n    };\r\n\r\n    that.setCurrentAudioTrack = (audioTrackIndex) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setCurrentAudioTrack() \", audioTrackIndex);\r\n        return currentProvider.setCurrentAudioTrack(audioTrackIndex);\r\n    };\r\n\r\n    that.isAutoQuality = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : isAutoQuality()\");\r\n        return currentProvider.isAutoQuality();\r\n    };\r\n    that.setAutoQuality = (isAuto) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setAutoQuality() \", isAuto);\r\n        return currentProvider.setAutoQuality(isAuto);\r\n    };\r\n\r\n    that.getCaptionList = () => {\r\n        if (!captionManager) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getCaptionList() \", captionManager.getCaptionList());\r\n        return captionManager.getCaptionList();\r\n    };\r\n    that.getCurrentCaption = () => {\r\n        if (!captionManager) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getCurrentCaption() \", captionManager.getCurrentCaption());\r\n        return captionManager.getCurrentCaption();\r\n    };\r\n    that.setCurrentCaption = (index) => {\r\n        if (!captionManager) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : setCurrentCaption() \", index);\r\n        captionManager.setCurrentCaption(index);\r\n    };\r\n    that.addCaption = (track) => {\r\n        if (!captionManager) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : addCaption() \")\r\n        return captionManager.addCaption(track);\r\n    };\r\n    that.removeCaption = (index) => {\r\n        if (!captionManager) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : removeCaption() \", index)\r\n        return captionManager.removeCaption(index);\r\n    };\r\n\r\n    that.getBuffer = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getBuffer() \", currentProvider.getBuffer());\r\n        currentProvider.getBuffer();\r\n    };\r\n    that.getState = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getState() \", currentProvider.getState());\r\n        return currentProvider.getState();\r\n    };\r\n    that.stop = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : stop() \");\r\n        currentProvider.stop();\r\n    };\r\n    that.remove = () => {\r\n\r\n        OvenPlayerConsole.log(\"API : remove() \");\r\n\r\n        if (captionManager) {\r\n            captionManager.destroy();\r\n            captionManager = null;\r\n        }\r\n\r\n        if (currentProvider) {\r\n            currentProvider.destroy();\r\n            currentProvider = null;\r\n        }\r\n\r\n        if (mediaManager) {\r\n            mediaManager.destroy();\r\n            mediaManager = null;\r\n        }\r\n\r\n        that.trigger(DESTROY);\r\n        that.off();\r\n\r\n        providerController = null;\r\n        playlistManager = null;\r\n        playerConfig = null;\r\n\r\n        OvenPlayerConsole.log(\"API : remove() - currentProvider, providerController, playlistManager, playerConfig, api event destroed. \");\r\n        OvenPlayerSDK.removePlayer(that);\r\n\r\n    };\r\n\r\n    that.getMediaElement = () => {\r\n\r\n        return currentProvider.getMediaElement();\r\n    };\r\n\r\n    that.getVersion = () => {\r\n        return version;\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\n\r\nexport default Api;\r\n\r\n\r\n","import _ from \"utils/underscore\";\r\nimport {isRtmp, isWebRTC, isDash, isHls } from \"utils/validator\";\r\nimport {extractExtension ,trim} from \"../../utils/strings\";\r\nimport SupportChecker from \"../SupportChecker\";\r\nimport {PLAYLIST_CHANGED} from \"api/constants\";\r\n\r\n/**\r\n * @brief   This manages Playlist or Sources.\r\n * @param\r\n *\r\n * */\r\nconst Manager = function(provider){\r\n    const that = {};\r\n    let currentPlaylistItem = [];\r\n    let spec = {\r\n        playlist : [],\r\n        currentIndex : 0\r\n    };\r\n    let supportChecker = SupportChecker();\r\n\r\n    OvenPlayerConsole.log(\"PlaylistManager loaded.\");\r\n\r\n    const makePrettySource = function(source_){\r\n        if (!source_ || !source_.file && !(source_.host || source_.application || source_.stream)) {\r\n            return;\r\n        }\r\n\r\n        let source = Object.assign({}, { 'default': false }, source_);\r\n        source.file = trim('' + source.file);\r\n\r\n        if(source.host && source.application && source.stream){\r\n            source.file = source.host + \"/\" + source.application + \"/stream/\" + source.stream;\r\n            delete source.host;\r\n            delete source.application;\r\n            delete source.stream;\r\n        }\r\n\r\n        const mimetypeRegEx = /^[^/]+\\/(?:x-)?([^/]+)$/;\r\n\r\n        if (mimetypeRegEx.test(source.type)) {\r\n            // if type is given as a mimetype\r\n            source.mimeType = source.type;\r\n            source.type = source.type.replace(mimetypeRegEx, '$1');\r\n        }\r\n\r\n        if(isRtmp(source.file)){\r\n            source.type = 'rtmp';\r\n        }else if(isWebRTC(source.file)){\r\n            source.type = 'webrtc';\r\n        }else if(isHls(source.file, source.type)){\r\n            source.type = 'hls';\r\n        }else if(isDash(source.file, source.type)){\r\n            source.type = 'dash';\r\n        }else if (!source.type) {\r\n            source.type = extractExtension(source.file);\r\n        }\r\n\r\n        if (source.lowLatency) {\r\n            source.lowLatency = source.lowLatency;\r\n        }\r\n\r\n        if (!source.type) {\r\n            return;\r\n        }\r\n\r\n        // normalize types\r\n        switch (source.type) {\r\n            case 'm3u8':\r\n            case 'vnd.apple.mpegurl':\r\n                source.type = 'hls';\r\n                break;\r\n            case 'm4a':\r\n                source.type = 'aac';\r\n                break;\r\n            case 'smil':\r\n                source.type = 'rtmp';\r\n                break;\r\n            default:\r\n                break;\r\n        }\r\n\r\n        Object.keys(source).forEach(function(key) {\r\n            if (source[key] === '') {\r\n                delete source[key];\r\n            }\r\n        });\r\n\r\n        return source;\r\n\r\n    }\r\n\r\n    that.initPlaylist =(playlist, playerConfig) =>{\r\n\r\n        OvenPlayerConsole.log(\"PlaylistManager setPlaylist() \", playlist);\r\n        const prettiedPlaylist = (_.isArray(playlist) ? playlist : [playlist]).map(function(item){\r\n            if(!_.isArray(item.tracks)) {\r\n                delete item.tracks;\r\n            }\r\n            let playlistItem = Object.assign({},{\r\n                sources: [],\r\n                tracks: [],\r\n                title : \"\"\r\n            }, item );\r\n\r\n            if((playlistItem.sources === Object(playlistItem.sources)) && !_.isArray(playlistItem.sources)) {\r\n                playlistItem.sources = [makePrettySource(playlistItem.sources)];\r\n            }\r\n\r\n            if (!_.isArray(playlistItem.sources) || playlistItem.sources.length === 0) {\r\n                playlistItem.sources = [makePrettySource(playlistItem)];\r\n            }\r\n\r\n            if(!_.isArray(playlistItem.sources) || playlistItem.sources.length === 0) {\r\n                if (item.levels) {\r\n                    playlistItem.sources = item.levels;\r\n                } else {\r\n                    playlistItem.sources = [makePrettySource(item)];\r\n                }\r\n            }\r\n\r\n\r\n            for(let i = 0; i < playlistItem.sources.length; i++) {\r\n                let source = playlistItem.sources[i];\r\n                let prettySource = \"\";\r\n                if (!source) {\r\n                    continue;\r\n                }\r\n\r\n                let defaultSource = source.default;\r\n                if (defaultSource) {\r\n                    source.default = (defaultSource.toString() === 'true');\r\n                } else {\r\n                    source.default = false;\r\n                }\r\n\r\n                // If the source doesn't have a label, number it\r\n                if (!playlistItem.sources[i].label) {\r\n                    playlistItem.sources[i].label = playlistItem.sources[i].type+\"-\"+i.toString();\r\n                }\r\n\r\n                prettySource = makePrettySource(playlistItem.sources[i]);\r\n                if(supportChecker.findProviderNameBySource(prettySource)){\r\n                    playlistItem.sources[i] = prettySource;\r\n                }else{\r\n                    playlistItem.sources[i] = null;\r\n                }\r\n            }\r\n\r\n            playlistItem.sources = playlistItem.sources.filter(source => !!source);\r\n\r\n            if(!playlistItem.title &&  playlistItem.sources[0] && playlistItem.sources[0].label){\r\n                playlistItem.title = playlistItem.sources[0].label;\r\n            }\r\n\r\n            // default 가 없을때 webrtc가 있다면 webrtc default : true로 자동 설정\r\n            /*let haveDefault = _.find(playlistItem.sources, function(source){return source.default == true;});\r\n            let webrtcSource = [];\r\n            if(!haveDefault){\r\n                webrtcSource = _.find(playlistItem.sources, function(source){return source.type == \"webrtc\";});\r\n                if(webrtcSource){\r\n                    webrtcSource.default = true;\r\n                }\r\n            }*/\r\n\r\n\r\n            function extractOnlyOneProtocol(sources){\r\n                if(!!sources){\r\n                    let highPriorityType = playlistItem.sources[0].type;\r\n\r\n                    return _.filter(sources, {type : highPriorityType});\r\n                }\r\n            }\r\n\r\n            if(playerConfig.isCurrentProtocolOnly()){\r\n                playlistItem.sources = extractOnlyOneProtocol(playlistItem.sources);\r\n            }\r\n\r\n            if(!_.isArray(playlistItem.tracks)){\r\n                playlistItem.tracks = [];\r\n            }\r\n            if(_.isArray(playlistItem.captions)){\r\n                playlistItem.tracks = playlistItem.tracks.concat(playlistItem.captions);\r\n                delete playlistItem.captions;\r\n            }\r\n\r\n            playlistItem.tracks = playlistItem.tracks.map(function(track){\r\n                if(!track || !track.file){\r\n                    return false;\r\n                }\r\n                return Object.assign({}, {\r\n                    'kind': 'captions',\r\n                    'default': false\r\n                }, track);\r\n            }).filter(track => !!track);\r\n            return playlistItem;\r\n        }).filter(function(item){return item.sources && item.sources.length > 0;})||[];\r\n        spec.playlist = prettiedPlaylist;\r\n        return prettiedPlaylist;\r\n    };\r\n    that.getPlaylist = () => {\r\n        OvenPlayerConsole.log(\"PlaylistManager getPlaylist() \", spec.playlist);\r\n        return spec.playlist;\r\n    };\r\n    that.getCurrentPlayList = () => {\r\n        if(spec.playlist[spec.currentIndex]){\r\n            return spec.playlist[spec.currentIndex];\r\n        }else{\r\n            return [];\r\n        }\r\n    };\r\n    that.getCurrentPlaylistIndex = () => {\r\n        return spec.currentIndex;\r\n    };\r\n    that.setCurrentPlaylist = (index) => {\r\n        if(spec.playlist[index]){\r\n            spec.currentIndex = index;\r\n            provider.trigger(PLAYLIST_CHANGED, spec.currentIndex);\r\n        }\r\n        return spec.currentIndex;\r\n    };\r\n    that.getCurrentSources = () => {\r\n        if(spec.playlist[spec.currentIndex]){\r\n            OvenPlayerConsole.log(\"PlaylistManager getCurrentSources() \", spec.playlist[spec.currentIndex].sources);\r\n            return spec.playlist[spec.currentIndex].sources;\r\n        }else{\r\n            return null;\r\n        }\r\n\r\n    };\r\n    that.getCurrentAdTag = () => {\r\n        if(spec.playlist[spec.currentIndex]){\r\n            return spec.playlist[spec.currentIndex].adTagUrl || \"\";\r\n        }\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\n\r\nexport default Manager;\r\n","import SupportChecker from \"api/SupportChecker\";\r\nimport HTML5 from \"api/provider/html5/providers/Html5\";\r\nimport WebRTC from \"api/provider/html5/providers/WebRTC\";\r\nimport Dash from \"api/provider/html5/providers/Dash\";\r\nimport Hls from \"api/provider/html5/providers/Hls\";\r\n\r\nimport {\r\n    PROVIDER_HTML5, PROVIDER_WEBRTC, PROVIDER_DASH, PROVIDER_HLS, PROVIDER_RTMP, ERRORS, INIT_UNSUPPORT_ERROR\r\n} from \"api/constants\";\r\n\r\n/**\r\n * @brief   This manages provider.\r\n * @param\r\n * */\r\nconst Controller = function () {\r\n    let supportChacker = SupportChecker();\r\n    const Providers = {};\r\n\r\n    const that = {};\r\n    OvenPlayerConsole.log(\"ProviderController loaded.\");\r\n\r\n    const registeProvider = (name, provider) => {\r\n        if (Providers[name]) {\r\n            return;\r\n        }\r\n        OvenPlayerConsole.log(\"ProviderController _registerProvider() \", name);\r\n        Providers[name] = provider;\r\n    };\r\n\r\n    const ProviderLoader = {\r\n        html5: function () {\r\n\r\n            const provider = HTML5;\r\n            registeProvider(PROVIDER_HTML5, provider);\r\n            return {name: PROVIDER_HTML5, provider: provider};\r\n        },\r\n        webrtc: function () {\r\n\r\n            const provider = WebRTC;\r\n            registeProvider(PROVIDER_WEBRTC, provider);\r\n            return {name: PROVIDER_WEBRTC, provider: provider};\r\n        },\r\n        dash: function () {\r\n\r\n            const provider = Dash;\r\n            registeProvider(PROVIDER_DASH, provider);\r\n            return {name: PROVIDER_DASH, provider: provider};\r\n        },\r\n        hls: function () {\r\n\r\n            const provider = Hls;\r\n            registeProvider(PROVIDER_HLS, provider);\r\n            return {name: PROVIDER_HLS, provider: provider};\r\n        }\r\n    };\r\n\r\n\r\n    that.loadProviders = (playlistItem) => {\r\n        const supportedProviderNames = supportChacker.findProviderNamesByPlaylist(playlistItem);\r\n        OvenPlayerConsole.log(\"ProviderController loadProviders() \", supportedProviderNames);\r\n        if (!supportedProviderNames) {\r\n            return Promise.reject(ERRORS.codes[INIT_UNSUPPORT_ERROR]);\r\n        } else {\r\n            return Promise.all(\r\n                supportedProviderNames.filter(function (providerName) {\r\n                    return !!ProviderLoader[providerName];\r\n                }).map(function (providerName) {\r\n                    return ProviderLoader[providerName]();\r\n                })\r\n            );\r\n        }\r\n\r\n    };\r\n\r\n    that.findByName = (name) => {\r\n        OvenPlayerConsole.log(\"ProviderController findByName() \", name);\r\n        return Providers[name];\r\n    };\r\n\r\n    that.getProviderBySource = (source) => {\r\n        const supportedProviderName = supportChacker.findProviderNameBySource(source);\r\n        OvenPlayerConsole.log(\"ProviderController getProviderBySource() \", supportedProviderName);\r\n        return that.findByName(supportedProviderName);\r\n    };\r\n\r\n    that.isSameProvider = (currentSource, newSource) => {\r\n        OvenPlayerConsole.log(\"ProviderController isSameProvider() \", supportChacker.findProviderNameBySource(currentSource), supportChacker.findProviderNameBySource(newSource));\r\n        return supportChacker.findProviderNameBySource(currentSource) === supportChacker.findProviderNameBySource(newSource);\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default Controller;\r\n","/**\r\n * @brief   미디어 엘리먼트를 관리하는 객체. 현재는 하는 일이 많지 않다.\r\n * @param   {element}   container   dom element\r\n *\r\n * */\r\nimport {getBrowser} from \"utils/browser\";\r\nimport {PROVIDER_DASH, PROVIDER_HLS, PROVIDER_WEBRTC, PROVIDER_HTML5, PROVIDER_RTMP} from \"api/constants\";\r\nimport LA$ from \"utils/likeA$.js\";\r\nimport {version} from 'version';\r\n\r\nconst Manager = function(container, browserInfo){\r\n    const that = {};\r\n    let $container = LA$(container);\r\n    let videoElement = \"\";\r\n\r\n    OvenPlayerConsole.log(\"MediaManager loaded. browser : \", browserInfo );\r\n\r\n    const createHtmlVideo = function(isLoop, isAutoStart){\r\n\r\n        videoElement = document.createElement('video');\r\n        videoElement.setAttribute('disableremoteplayback', '');\r\n        videoElement.setAttribute('webkit-playsinline', 'true');\r\n        videoElement.setAttribute('playsinline', 'true');\r\n        if(isLoop){\r\n            videoElement.setAttribute('loop', '');\r\n        }\r\n        if(isAutoStart) {\r\n            videoElement.setAttribute('autoplay', '');\r\n        }\r\n        $container.append(videoElement);\r\n\r\n        return videoElement;\r\n    };\r\n\r\n    that.createMedia = (providerName , playerConfig)  => {\r\n        // if(videoElement){\r\n        //     // that.empty();\r\n        //     //reuse video element.\r\n        //     //because playlist is auto next playing.\r\n        //     //Only same video element does not require User Interaction Error.\r\n        //     return videoElement;\r\n        // }else{\r\n        //     return createHtmlVideo(playerConfig.isLoop(), playerConfig.isAutoStart());\r\n        // }\r\n        that.empty();\r\n        return createHtmlVideo(playerConfig.isLoop(), playerConfig.isAutoStart());\r\n    }\r\n\r\n    that.createAdContainer = () => {\r\n        let adContainer = document.createElement('div');\r\n        adContainer.setAttribute('class', 'op-ads');\r\n        $container.append(adContainer);\r\n\r\n        return adContainer;\r\n    };\r\n\r\n\r\n    that.empty = () =>{\r\n        OvenPlayerConsole.log(\"MediaManager removeElement()\");\r\n        $container.removeChild(videoElement);\r\n        videoElement = null;\r\n    };\r\n\r\n    that.destroy = () =>{\r\n        $container.removeChild();\r\n        $container = null;\r\n        videoElement = null;\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default Manager;\r\n","/**\r\n * Created by hoho on 2018. 8. 24..\r\n */\r\n\r\nexport const ApiRtmpExpansion = function(currentProvider){\r\n    return {\r\n        externalCallbackCreep : (result) => {\r\n            if(result.name && result.data){\r\n                return currentProvider.triggerEventFromExternal(result.name, result.data);\r\n            }else{\r\n                return null;\r\n            }\r\n        }\r\n    };\r\n};\r\n","import _ from \"utils/underscore\";\r\n\r\nimport {\r\n    CONTENT_TIME_MODE_CHANGED, SYSTEM_TEXT\r\n} from \"api/constants\";\r\n\r\n/**\r\n * @brief   This initializes the input options.\r\n * @param   options\r\n *\r\n * */\r\nconst Configurator = function(options, provider){\r\n\r\n    const composeSourceOptions = function(options){\r\n        const Defaults = {\r\n            mediaContainer : \"\",\r\n            playbackRates: [2, 1.5, 1, 0.5, 0.25],\r\n            playbackRate: 1,\r\n            mute: false,\r\n            volume: 100,\r\n            loop : false,\r\n            controls : true,\r\n            autoStart : false,\r\n            autoFallback: true,\r\n            timecode : true,\r\n            sourceIndex : -1,\r\n            browser : \"\",\r\n            hidePlaylistIcon : false,\r\n            rtmpBufferTime : 1,\r\n            rtmpBufferTimeMax : 3,\r\n            adClient : \"googleima\",\r\n            currentProtocolOnly : false,\r\n            systemText : null,\r\n            lang : \"en\",\r\n            loadingRetryCount: 0,\r\n            expandFullScreenUI: true,\r\n            fullscreenOption: null,\r\n            showBigPlayButton: true\r\n        };\r\n        const serialize = function (val) {\r\n            if (val === undefined) {\r\n                return null;\r\n            }\r\n            if (typeof val === 'string' && val.length < 6) {\r\n                const lowercaseVal = val.toLowerCase();\r\n                if (lowercaseVal === 'true') {\r\n                    return true;\r\n                }\r\n                if (lowercaseVal === 'false') {\r\n                    return false;\r\n                }\r\n                if (!isNaN(Number(val)) && !isNaN(parseFloat(val))) {\r\n                    return Number(val);\r\n                }\r\n            }\r\n            return val;\r\n        }\r\n        const deserialize = function (options) {\r\n            Object.keys(options).forEach((key) => {\r\n                if (key === 'id') {\r\n                    return;\r\n                }\r\n                options[key] = serialize(options[key]);\r\n            });\r\n        }\r\n\r\n        deserialize(options);\r\n        let config = Object.assign({}, Defaults, options);\r\n        let userCustumSystemText = [];\r\n        if(config.systemText){\r\n            userCustumSystemText = _.isArray(config.systemText) ? config.systemText : [config.systemText];\r\n        }\r\n\r\n        for(let i = 0; i < userCustumSystemText.length; i ++){\r\n            if(userCustumSystemText[i].lang){\r\n                let currentSystemText = _.findWhere(SYSTEM_TEXT , {\"lang\": userCustumSystemText[i].lang});\r\n                if(currentSystemText){\r\n                    //validate & update\r\n                    Object.assign(currentSystemText, userCustumSystemText[i]);\r\n                }else{\r\n                    //create\r\n                    currentSystemText = _.findWhere(SYSTEM_TEXT , {\"lang\": \"en\"});\r\n                    currentSystemText.lang = userCustumSystemText[i].lang;\r\n                    SYSTEM_TEXT.push(Object.assign(userCustumSystemText[i], currentSystemText));\r\n                }\r\n            }\r\n        }\r\n        config.systemText = _.findWhere(SYSTEM_TEXT , {\"lang\": config.lang});\r\n\r\n        let playbackRates = config.playbackRates;\r\n\r\n        playbackRates = playbackRates.filter(rate => _.isNumber(rate) && rate >= 0.25 && rate <= 4).map(rate => Math.round(rate * 4) / 4);\r\n\r\n        if (playbackRates.indexOf(1) < 0) {\r\n            playbackRates.push(1);\r\n        }\r\n        playbackRates.sort();\r\n\r\n        config.playbackRates = playbackRates;\r\n\r\n        config.rtmpBufferTime = config.rtmpBufferTime > 10 ? 10 : config.rtmpBufferTime;\r\n        config.rtmpBufferTimeMax = config.rtmpBufferTimeMax > 50 ? 50 : config.rtmpBufferTimeMax;\r\n\r\n\r\n        if (config.playbackRates.indexOf(config.playbackRate) < 0) {\r\n            config.playbackRate = 1;\r\n        }\r\n\r\n        const configPlaylist = config.playlist;\r\n        if (!configPlaylist) {\r\n            const obj = _.pick(config, [\r\n                'title',\r\n                'description',\r\n                'type',\r\n                'image',\r\n                'file',\r\n                'sources',\r\n                'tracks',\r\n                'host',\r\n                'application',\r\n                'stream',\r\n                'adTagUrl'\r\n            ]);\r\n\r\n            config.playlist = [ obj ];\r\n        } else if (_.isArray(configPlaylist.playlist)) {\r\n            config.feedData = configPlaylist;\r\n            config.playlist = configPlaylist.playlist;\r\n        }\r\n\r\n        delete config.duration;\r\n        return config;\r\n    };\r\n    OvenPlayerConsole.log(\"Configurator loaded.\", options);\r\n    let spec = composeSourceOptions(options);\r\n\r\n    //spec.isFullscreen = false; //IE 11 can't check current fullscreen state.\r\n\r\n    const that = {};\r\n    that.getConfig = () => {\r\n        return spec;\r\n    };\r\n    that.getAdClient = () => {\r\n        return spec.adClient;\r\n    };\r\n    that.setConfig = (config, value) => {\r\n        spec[config] = value;\r\n    };\r\n\r\n    that.getContainer = () => {\r\n        return spec.mediaContainer;\r\n    };\r\n    /*that.isFullscreen = () => {\r\n        return spec.isFullscreen;\r\n    }\r\n    that.setFullscreen = (isFullscreen) => {\r\n        return spec.isFullscreen = isFullscreen;\r\n    }*/\r\n\r\n    that.getPlaybackRate =()=>{\r\n        return spec.playbackRate;\r\n    };\r\n    that.setPlaybackRate =(playbackRate)=>{\r\n        spec.playbackRate = playbackRate;\r\n        return playbackRate;\r\n    };\r\n\r\n    that.getQualityLabel = () => {\r\n        return spec.qualityLabel;\r\n    };\r\n    that.setQualityLabel = (newLabel) => {\r\n        spec.qualityLabel = newLabel;\r\n    };\r\n\r\n    that.isCurrentProtocolOnly = () => {\r\n        return spec.currentProtocolOnly;\r\n    };\r\n    /*that.getSourceLabel = () => {\r\n        return spec.sourceLabel;\r\n    };\r\n    that.setSourceLabel = (newLabel) => {\r\n        spec.sourceLabel = newLabel;\r\n    };*/\r\n\r\n    that.getSourceIndex = () => {\r\n        return spec.sourceIndex;\r\n    };\r\n    that.setSourceIndex = (index) => {\r\n        spec.sourceIndex = index;\r\n    };\r\n    that.setTimecodeMode = (timecode) => {\r\n        if(spec.timecode !== timecode){\r\n            spec.timecode = timecode;\r\n            provider.trigger(CONTENT_TIME_MODE_CHANGED, timecode);\r\n        }\r\n    };\r\n    that.isTimecodeMode = () => {\r\n        return spec.timecode;\r\n    };\r\n    that.getRtmpBufferTime = () => {\r\n        return spec.rtmpBufferTime;\r\n    };\r\n    that.getRtmpBufferTimeMax = () => {\r\n        return spec.rtmpBufferTimeMax;\r\n    };\r\n    that.setMute = (mute) =>{\r\n        spec.mute = mute;\r\n    };\r\n    that.isMute = () =>{\r\n        return spec.mute;\r\n    };\r\n    that.getVolume = () =>{\r\n        return spec.volume;\r\n    };\r\n    that.setVolume = (volume) =>{\r\n        spec.volume = volume;\r\n    };\r\n    that.isLoop = () =>{\r\n        return spec.loop;\r\n    };\r\n    that.isAutoStart = () =>{\r\n        return spec.autoStart;\r\n    };\r\n    that.isControls = () =>{\r\n        return spec.controls;\r\n    };\r\n\r\n    that.getPlaybackRates =()=>{\r\n        return spec.playbackRates;\r\n    };\r\n    that.getBrowser = () => {\r\n        return spec.browser;\r\n    };\r\n    that.getSystemText = () => {\r\n        return spec.systemText;\r\n    };\r\n    that.getLanguage = () => {\r\n        return spec.lang;\r\n    };\r\n\r\n    that.getPlaylist =()=>{\r\n        return spec.playlist;\r\n    };\r\n    that.setPlaylist =(playlist)=>{\r\n        if(_.isArray(playlist)){\r\n            spec.playlist = playlist;\r\n        }else{\r\n            spec.playlist = [playlist];\r\n        }\r\n        return spec.playlist;\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default Configurator;\r\n","import _ from \"utils/underscore\";\r\n\r\nexport default (uiText, data) => {\r\n    let elements = '<div id=\"'+data.id+'\" class=\"op-setting-panel '+(data.isRoot ? 'animated fadeIn': '')+'\" style=\"max-height: '+data.height+'px\">' +\r\n                        '<div class=\"op-setting-title-container\">' +\r\n                            '<div class=\"op-setting-title\" tabindex=\"0\">' +\r\n                                (data.isRoot ? '' : '<span class=\"op-setting-title-previcon\">&lt;</span>') +\r\n                                '<span class=\"op-setting-title-title\">'+data.title+'</span>' +\r\n                            '</div>'+\r\n                        '</div>' +\r\n                        '<div class=\"op-setting-item-container\">';\r\n                            _.forEach(data.body, function(body){\r\n                                elements += settingItemTemplate(body, data.useCheck);\r\n                            });\r\n    elements+=          '</div>' +\r\n                    '</div>';\r\n    return elements;\r\n};\r\n\r\n\r\nexport const settingItemTemplate = (data, useCheck) => {\r\n    return (\r\n        '<div class=\"op-setting-item\" op-panel-type=\"'+data.panelType+'\" op-data-value=\"'+data.value+'\">' +\r\n        (useCheck?'<span class=\"op-setting-item-checked '+(data.isCheck?'op-show':'')+'\">&#x2713;</span>':'' )+\r\n        '<span class=\"op-setting-item-title\">'+data.title+'</span>' +\r\n        (data.hasNext?'<span class=\"op-setting-item-nexticon\">&gt;</span><span class=\"op-setting-item-value\">'+data.description+'</span>' : '' )+\r\n        '</div>'\r\n    );\r\n};","import {naturalHms} from \"utils/strings\"\r\n\r\nexport default (uiText, playlist) => {\r\n    return (`<div class=\"op-playlist\" tabindex=\"0\">` +\r\n                `<div class=\"op-playlist-header\">${uiText.playlist} <i class=\"op-con op-close-icon btn-close\"></i></div>` +\r\n                `<div class=\"op-playlist-body\">` +\r\n                    `<div class=\"op-playlist-body-container\">` +\r\n                        `<div class=\"op-playlist-body-center\"><div class=\"op-playlist-body-row\"></div></div>`+\r\n                    `</div>`+\r\n                    `<div class=\"op-playlist-body-arrows\">` +\r\n                        `<i class=\"op-con op-arrow-left btn-left\"></i><i class=\"op-con op-arrow-right btn-right\"></i>` +\r\n                    `</div>`+\r\n                `</div>`+\r\n            `</div>`);\r\n};\r\n\r\nexport const playlistItemTemplate = (data, isActive) => {\r\n    return (\r\n        `<div class=\"op-playlist-card ${isActive? `active`:``}\" data-index=\"${data.index}\">` +\r\n            `<div class=\"op-playlist-card-thumbnail ${data.image ? ``:`empty`}\">${data.image ? `<img src=${data.image}>`:`<i class=\"op-con op-empty-video\"></i>`} ${data.duration ? `<span class=\"op-badge\">${naturalHms(data.duration)}</span>`: ``} </div>`+\r\n            `<div class=\"op-playlist-card-title\">${data.title}</div>`+\r\n        `</div>`\r\n    );\r\n};","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\nimport TextViewTemplate from 'view/example/textviewTemplate';\r\nimport ViewTemplate from 'view/viewTemplate';\r\nimport HelpersTemplate from 'view/components/helpers/mainTemplate';\r\nimport BigButtonTemplate from 'view/components/helpers/bigButtonTemplate';\r\nimport ThumbnailTemplate from 'view/components/helpers/thumbnailTemplate';\r\nimport WaterMarkTemplate from 'view/components/helpers/waterMarkTemplate';\r\nimport MessageBoxTemplate from 'view/components/helpers/messageBoxTemplate';\r\nimport SpinnerTemplate from 'view/components/helpers/spinnerTemplate';\r\nimport ContextPanelTemplate from 'view/components/helpers/contextPanelTemplate';\r\nimport CaptionViewerTemplate from 'view/components/helpers/captionViewerTemplate';\r\n\r\n\r\nimport ControlsTemplate from 'view/components/controls/mainTemplate';\r\nimport VolumeButtonTemplate from 'view/components/controls/volumeButtonTemplate';\r\nimport ProgressBarTemplate from 'view/components/controls/progressBarTemplate';\r\nimport PlayButtonTemplate from 'view/components/controls/playButtonTemplate';\r\nimport SettingButtonTemplate from 'view/components/controls/settingButtonTemplate';\r\nimport FrameButtonsTemplate from 'view/components/controls/frameButtonsTemplate';\r\nimport TimeDisplayTemplate from 'view/components/controls/timeDisplayTemplate';\r\nimport FullScreenButtonTemplate from 'view/components/controls/fullScreenButtonTemplate';\r\nimport PanelsTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport SpeedPanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport SourcePanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport QualityPanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport AudioTrackPanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport CaptionPanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport TimeDisplayPanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport PlaylistPanelTemplate from 'view/components/controls/playlistPanelTemplate';\r\n\r\nconst Templates = {\r\n    TextViewTemplate,\r\n    ViewTemplate,\r\n    HelpersTemplate,\r\n    BigButtonTemplate,\r\n    ThumbnailTemplate,\r\n    WaterMarkTemplate,\r\n    MessageBoxTemplate,\r\n    SpinnerTemplate,\r\n    ContextPanelTemplate,\r\n    CaptionViewerTemplate,\r\n\r\n    ControlsTemplate,\r\n    VolumeButtonTemplate,\r\n    ProgressBarTemplate,\r\n    PlayButtonTemplate,\r\n    SettingButtonTemplate,\r\n    FrameButtonsTemplate,\r\n    TimeDisplayTemplate,\r\n    FullScreenButtonTemplate,\r\n    PanelsTemplate,\r\n    SpeedPanelTemplate,\r\n    SourcePanelTemplate,\r\n    QualityPanelTemplate,\r\n    AudioTrackPanelTemplate,\r\n    CaptionPanelTemplate,\r\n    TimeDisplayPanelTemplate,\r\n    PlaylistPanelTemplate\r\n};\r\n\r\nexport default Templates;","/**\r\n * Created by hoho on 2018. 7. 19..\r\n */\r\n\r\nconst TextViewTemplate = function(text){\r\n    return `<div class=\"textView\" style=\"padding : 5px; background: red; position : absolute; top: 0;\">` +\r\n                `<h3>${text}</h3>` +\r\n                `<button type=\"button\" class=\"btn\">button</button>` +\r\n            `</div>`;\r\n};\r\n\r\nexport default TextViewTemplate;","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\n\r\nconst ViewTemplate = function (uiText, id) {\r\n    return `<div class=\"ovenplayer op-wrapper\" tabindex=\"-1\" ${id ? `id = \"${id}\"` : ``}>` +\r\n            `<div class=\"op-ratio\"></div>` +\r\n            `<div class=\"op-player op-clear\">` +\r\n                `<div class=\"op-core-ui-wrapper op-clear\">` +\r\n                `<div class=\"op-media-element-container op-clear\"></div>` +\r\n                `<div class=\"op-ui op-clear\"></div>` +\r\n            `</div>` +\r\n            `</div>` +\r\n        `</div>`\r\n};\r\nexport default ViewTemplate;\r\n","/**\r\n * Created by hoho on 2018. 7. 19..\r\n */\r\n\r\nconst HelpersTemplate = function(uiText, text){\r\n    return `<div class=\"op-helpers-container\"></div>`;\r\n};\r\n\r\nexport default HelpersTemplate;\r\n","import {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED,\r\n    STATE_ERROR\r\n} from \"api/constants\";\r\n\r\n\r\nexport default (uiText, playerState) => {\r\n    return (`<div class=\"op-bigbutton-container \">` +\r\n            `${playerState === STATE_PLAYING ?`<i class=\"op-con op-pause-big\"></i>` :`` }`+\r\n            `${playerState === STATE_PAUSED ?`<i class=\"op-bigbutton op-con op-play-big\"></i>` :`` }`+\r\n            `${playerState === STATE_IDLE ?`<i class=\"op-bigbutton op-con op-play-big\"></i>` :`` }`+\r\n            `${playerState === STATE_COMPLETE ?`<i class=\"op-bigbutton op-con op-replay-big\"></i>` :`` }`+\r\n        `</div>`);\r\n};","export default (uiText, data) => {\r\n    return (`<div class=\"op-thumbnail-container\"><div class=\"op-thumbnail-wrapper\">`+\r\n        `${data.title ? `<div class=\"op-thumbnail-header\">${data.title}</div>`:``}` +\r\n    `</div></div>`);\r\n};","export default (uiText, data) => {\r\n    return (`<div class=\"op-watermark-container\">` +\r\n                `<div class=\"op-watermark\">`+\r\n                    `${data.waterMark.image ? `<img src=\"${data.waterMark.image}\">`:``}` +\r\n                    `${data.waterMark.text ? `<span class=\"op-watermark-text\">${data.waterMark.text}</span>`:``}` +\r\n                `</div>` +\r\n            `</div>`);\r\n};","export default (uiText, data) => {\r\n    return (\r\n        `<div class=\"op-message-box op-clear ${data.dontClose === true ? \"op-message-box-default-cursor\" : \"\"}\">` +\r\n            `<div class=\"op-message-container \">` +\r\n                `<div class=\"op-message-text\">${data.message}` +\r\n                 `${data.description ? `<div class=\"op-message-description\">${data.description}</div>` : `` }`+\r\n                `</div>` +\r\n                `${data.iconClass ? `<div class=\"op-message-icon\"><i class=\"op-con ${data.iconClass}\"></i></div>` : `` }`+\r\n            `</div>` +\r\n        `</div>`\r\n    );\r\n};","export default (uiText) => {\r\n    return `<div class=\"op-spinner-container\"><div class=\"op-spinner\"></div></div>`;\r\n};\r\n","import {version} from \"version\";\r\nexport default (uiText) => {\r\n    return (\r\n        `<div class=\"op-context-panel animated fadeIn\">` +\r\n            `<div class=\"op-context-item\" tabindex=\"1\">` +\r\n                `<span class=\"op-context-item-text\">${uiText.context} ${version}</span>` +\r\n            `</div>`+\r\n        `</div>`\r\n    );\r\n};","/**\r\n * Created by hoho on 22/11/2018.\r\n */\r\nexport default (uiText) => {\r\n    return (\r\n        `<div class=\"op-caption-viewer\">` +\r\n        `    <div class=\"op-caption-text-container\">` +\r\n        `        <pre class=\"op-caption-text\"></pre>` +\r\n        `      </div>` +\r\n        `</div>`\r\n    );\r\n};","\r\nconst Controls = function(uiText, hasPlaylist){\r\n    return (\r\n        `<div class=\"op-controls-container op-clear\">`+\r\n            `<div class=\"op-bottom-panel op-clear\">` +\r\n                `<div class=\"op-gradient-bottom op-clear\"></div>` +\r\n                `<div class=\"op-controls op-clear\">` +\r\n                    `<div class=\"op-left-controls op-clear\"></div>` +\r\n                    `<div class=\"op-right-controls op-clear\">`+\r\n                        `<div class=\"playlist-holder op-navigators op-clear\">${hasPlaylist?`<button class=\"op-button op-playlist-button\"><i class=\"op-con op-playlist-icon\"></i></button>`:``}</div>`+\r\n                        `<div class=\"setting-holder op-navigators op-clear\"></div>`+\r\n                        `<div class=\"fullscreen-holder op-navigators op-clear\"></div>`+\r\n                    `</div>` +\r\n                `</div>` +\r\n                `<div class=\"op-progressbar-container op-clear\"></div>` +\r\n            `</div>` +\r\n        `</div>`);\r\n\r\n};\r\n\r\n\r\nexport default Controls;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\nexport default (uiText) => {\r\n    return (\r\n        `<div class=\"op-navigators op-volume-controller\">`+\r\n            `<button class=\"op-button op-volume-button\">` +\r\n                `<i class=\"op-con op-volume-max\"></i>` +\r\n                `<i class=\"op-con op-volume-small\"></i>` +\r\n                `<i class=\"op-con op-volume-mute\"></i>` +\r\n            `</button>` +\r\n            `<div class=\"op-volume-slider-container\">` +\r\n                `<div class=\"op-volume-silder\">` +\r\n                    `<div class=\"op-volume-slider-bg\"></div>` +\r\n                    `<div class=\"op-volume-slider-value\"></div>` +\r\n                    `<div class=\"op-volume-slider-handle\"></div>` +\r\n                `</div>`+\r\n            `</div>` +\r\n        `</div>`\r\n    );\r\n};\r\n","export default (uiText) => {\r\n    return (\r\n        `<div class=\"op-progressbar\" tabindex=\"0\">` +\r\n            `<div class=\"op-progressbar-padding\"></div>` +\r\n            `<div class=\"op-progress-list\">` +\r\n                `<div class=\"op-load-progress\"></div>` +\r\n                `<div class=\"op-play-progress op-play-background-color\"></div>` +\r\n                `<div class=\"op-hover-progress\"></div>` +\r\n            `</div>` +\r\n            `<div class=\"op-progressbar-knob-container\">` +\r\n                `<div class=\"op-progressbar-knob op-play-background-color\"></div>` +\r\n            `</div>` +\r\n            `<span class=\"op-progressbar-preview\"></span>` +\r\n            `<span class=\"op-progressbar-time\">00:00</span>` +\r\n        `</div>`\r\n    );\r\n};\r\n","export default (uiText) => {\r\n    return (\r\n        `<div class=\"op-navigators op-play-controller\">` +\r\n            `<button class=\"op-button op-play-button\" type=\"button\">` +\r\n                `<i class=\"op-con op-play\"></i>` +\r\n                `<i class=\"op-con op-pause\" style=\"display: none;\"></i>` +\r\n                `<i class=\"op-con op-replay\" style=\"display: none;\"></i>` +\r\n            `</button>` +\r\n            `<button class=\"op-button op-seek-button op-seek-button-back\" type=\"button\">` +\r\n                `<i class=\"op-con op-seek-back\"></i>` +\r\n                `<span class=\"op-seek-back-text\">10</span>` +\r\n            `</button>` +\r\n            `<button class=\"op-button op-seek-button op-seek-button-forward\" type=\"button\">` +\r\n                `<i class=\"op-con op-seek-forward\"></i>` +\r\n                `<span class=\"op-seek-forward-text\">10</span>` +\r\n            `</button>` +\r\n        `</div>`\r\n    );\r\n};\r\n","export default (uiText) => {\r\n    return (`<button class=\"op-button op-setting-button\"><i class=\"op-con op-setting\"></i></button>`);\r\n};","export default (uiText) => {\r\n    return (\r\n        '<div class=\"op-frame-buttons\">'+\r\n            '<button class=\"op-button op-frame-button\" op-data-value=\"-5\"><div class=\"frame-icon\"><span class=\"btn-text\">-5f</span></div></button>'+\r\n            '<button class=\"op-button op-frame-button\" op-data-value=\"-1\"><div class=\"frame-icon\"><span class=\"btn-text\">-1f</span></div></button>'+\r\n            '<button class=\"op-button op-frame-button\" op-data-value=\"+1\"><div class=\"frame-icon reverse\"><span class=\"btn-text\">+1f</span></div></button>'+\r\n            '<button class=\"op-button op-frame-button\" op-data-value=\"+5\"><div class=\"frame-icon reverse\"><span class=\"btn-text\">+5f</span></div></button>'+\r\n        '</div>'\r\n    );\r\n};","export default (uiText, data) => {\r\n    return`<div class=\"op-navigators op-time-display\">`+\r\n            (data.duration === Infinity\r\n                ?\r\n                (\r\n                    `<span class=\"op-live-badge\" disabled=\"disabled\">` +\r\n                        (data.type ===\"webrtc\"\r\n                        ?\r\n                            (data.isP2P ?\r\n                                    `<span class=\"op-live-badge-lowlatency\">${uiText.controls.low_latency_p2p}</span>` : `<span class=\"op-live-badge-lowlatency\">${uiText.controls.low_latency_live}</span>`\r\n                            )\r\n                        :\r\n                        `<span class=\"op-live-text\" title=\"Skip ahead to live.\">${uiText.controls.live}</span>`) +\r\n                    `</span>`\r\n                )\r\n                :(`<span class=\"op-time-current\">00:00</span><span class=\"op-time-separator\"> / </span><span class=\"op-time-duration\">00:00</span>`)\r\n            ) +\r\n        `</div>`;\r\n};\r\n","export default (uiText) => {\r\n    return (\r\n        `<button class=\"op-button op-fullscreen-button\">`+\r\n        `<i class=\"op-con op-fullscreen-expand\"></i>` +\r\n        `<i class=\"op-con op-fullscreen-compress\"></i>` +\r\n        `</button>`\r\n    );\r\n};\r\n","/**\r\n * Created by hoho on 2018. 7. 19..\r\n */\r\n\r\nimport Templates from \"view/engine/Templates\";\r\nimport LA$ from 'utils/likeA$';\r\nimport _ from \"utils/underscore\";\r\n\r\n/**\r\n * @brief   This is simple ui renderer. This returns onRendered callback, onDestroyed callback on Template. And this bind events for Templates.\r\n * @param   container  dom element or LA$ object\r\n * @param   templateName    templateName\r\n * @param   data    preload data\r\n * @param   events    Template's events.\r\n * @param   onRendered    This callback occurs after append template.\r\n * @param   onDestroyed    This callback occurs after destroyed template.\r\n * @param   isRoot\r\n *\r\n * */\r\nconst OvenTemplate = function (container, templateName, playerConfig, data, events, onRendered, onDestroyed, isRoot) {\r\n\r\n    let $container = _.isElement(container) ? LA$(container) : container;\r\n    let $template;\r\n    let viewEvents = {};\r\n    let uiText = null;\r\n    let that = {};\r\n    that.data = data;\r\n    let createAndSelectElement = function (html) {\r\n        const newElement = document.createElement('div');\r\n        newElement.innerHTML = html;\r\n\r\n        $template = LA$(newElement.firstChild);\r\n\r\n        return newElement.firstChild;\r\n    }\r\n    if(playerConfig && playerConfig.systemText){\r\n        uiText = playerConfig.systemText.ui;\r\n    }\r\n    if (isRoot) {\r\n        $container.replace(createAndSelectElement(Templates[templateName + \"Template\"](uiText, data)));\r\n    } else {\r\n        $container.append(createAndSelectElement(Templates[templateName + \"Template\"](uiText, data)));\r\n    }\r\n\r\n    if (onRendered) {\r\n        onRendered($template, that);\r\n    }\r\n\r\n    Object.keys(events).forEach(eventString => {\r\n        let explodedText = eventString.split(\" \");\r\n        let eventName = explodedText[0].replace(/ /gi, \"\");\r\n        let target = explodedText[1].replace(/ /gi, \"\");\r\n\r\n        let $target = \"\";\r\n\r\n        if(target === \"document\" || target === \"window\" || target === \"body\"){\r\n            $target = LA$(target);\r\n        }else{\r\n            $target = $template.find(target) || ($template.hasClass(target.replace(\".\",\"\")) ? $template : null);\r\n        }\r\n\r\n\r\n        if (eventName && target && $target) {\r\n            let id = Object.keys(viewEvents).length++;\r\n\r\n            //because It retuns another data.\r\n            let wrappedFunc = function (event) {\r\n                return events[eventString](event, $template, that);\r\n            };\r\n            viewEvents[id] = {name: eventName, target: target, callback: wrappedFunc};\r\n\r\n            /*$template.get().addEventListener(eventName,function(evt){\r\n                var gtarget = evt.target;\r\n                while (gtarget!= null){\r\n                    if (gtarget.isEqualNode($target.get())){\r\n                        console.log(\"isEqual\", gtarget, $target.get());\r\n                        wrappedFunc(evt);\r\n                        return;\r\n                    }\r\n                    gtarget = gtarget.parentElement;\r\n                }\r\n            }, true);*/\r\n\r\n            let eventOption = null;\r\n\r\n            if (eventName.indexOf('touch') > -1) {\r\n                eventOption = { passive: true };\r\n            }\r\n\r\n            //sometimes target is NodeList\r\n            let nodeLength = $target.get().length;\r\n\r\n            if(nodeLength > 1){\r\n                let nodeList = $target.get();\r\n                for(let i = 0; i < nodeLength; i ++){\r\n                    nodeList[i].addEventListener(eventName, wrappedFunc, eventOption);\r\n                }\r\n                //IE NodeList doesn't have forEach. It's wack.\r\n                //$target.get().forEach(function($item){\r\n                //    $item.addEventListener(eventName, wrappedFunc);\r\n                //});\r\n            }else{\r\n                $target.get().addEventListener(eventName, wrappedFunc, eventOption);\r\n            }\r\n\r\n\r\n        } else {\r\n            return false;\r\n        }\r\n    });\r\n\r\n    that.destroy = function () {\r\n        Object.keys(viewEvents).forEach(id => {\r\n            let event = viewEvents[id];\r\n            let $target = \"\";\r\n\r\n            if(event.target === \"document\" || event.target === \"window\" ||  event.target === \"body\"){\r\n                $target = LA$(event.target);\r\n            }else{\r\n                $target = $template.find(event.target) || ($template.hasClass(event.target.replace(\".\",\"\")) ? $template : null);\r\n            }\r\n\r\n            //sometimes target is NodeList\r\n            let nodeLength = $target.get().length;\r\n            if(nodeLength > 1){\r\n                let nodeList = $target.get();\r\n                for(let i = 0; i < nodeLength; i ++){\r\n                    nodeList[i].removeEventListener(event.name, event.callback);\r\n                }\r\n                /*$target.get().forEach(function($item){\r\n                    $item.removeEventListener(event.name, event.callback);\r\n                });*/\r\n            }else{\r\n                $target.get().removeEventListener(event.name, event.callback);\r\n            }\r\n\r\n            delete viewEvents[id];\r\n        });\r\n\r\n        if($template){\r\n            if(isRoot){\r\n                $template.removeChild();\r\n                $template.removeAttribute(\"class\");\r\n            }else{\r\n                $template.remove();\r\n            }\r\n        }\r\n\r\n        if (onDestroyed) {\r\n            onDestroyed(that);\r\n        }\r\n    };\r\n    return that;\r\n\r\n};\r\n\r\n\r\nexport default OvenTemplate;\r\n","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED\r\n} from \"api/constants\";\r\n\r\nconst MessageBox = function($container, api, message, description, withTimer, iconClass, clickCallback, dontClose){\r\n\r\n    let autoDestroyTimer = \"\";\r\n    let data = {\r\n        message : message,\r\n        description : description,\r\n        iconClass : iconClass,\r\n        dontClose: dontClose\r\n    };\r\n\r\n\r\n    const onRendered = function($current, template){\r\n        if(withTimer){\r\n            autoDestroyTimer = setTimeout(function(){\r\n                template.destroy();\r\n            }, withTimer||5000);\r\n        }\r\n    };\r\n    const onDestroyed = function(){\r\n    };\r\n    const events = {\r\n        \"click .op-message-text\" : function(event, $current, template){\r\n            //event.preventDefault();\r\n            event.stopPropagation();\r\n\r\n            if (dontClose) {\r\n                return;\r\n            }\r\n            if(autoDestroyTimer){\r\n                clearTimeout(autoDestroyTimer);\r\n            }\r\n            if(clickCallback){\r\n                clickCallback();\r\n            }\r\n            template.destroy();\r\n        },\r\n        \"click .op-con\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            if (dontClose) {\r\n                return;\r\n            }\r\n\r\n            if(autoDestroyTimer){\r\n                clearTimeout(autoDestroyTimer);\r\n            }\r\n\r\n            if(clickCallback){\r\n                clickCallback();\r\n            }\r\n            template.destroy();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"MessageBox\", api.getConfig(), data, events, onRendered, onDestroyed );\r\n};\r\n\r\n\r\nexport default MessageBox;","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport BigButton from \"view/components/helpers/bigButton\";\r\nimport MessageBox from \"view/components/helpers/messageBox\";\r\nimport CaptionViewer from \"view/components/helpers/captionViewer\";\r\nimport Thumbnail from \"view/components/helpers/thumbnail\";\r\nimport WaterMark from \"view/components/helpers/waterMark\";\r\nimport Spinner from \"view/components/helpers/spinner\";\r\nimport {\r\n    READY,\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n    STATE_AD_LOADING,\r\n    PLAYLIST_CHANGED,\r\n    PLAYER_WARNING,\r\n    CONTENT_MUTE,\r\n    STATE_ERROR,\r\n    PLAYER_STATE,\r\n    ALL_PLAYLIST_ENDED,\r\n    CONTENT_LEVEL_CHANGED,\r\n    CONTENT_SOURCE_CHANGED,\r\n    NETWORK_UNSTABLED,\r\n    UI_ICONS\r\n} from \"api/constants\";\r\n\r\nconst Helpers = function($container, api){\r\n    let firstRun = false;\r\n    let bigButton = \"\", messageBox = \"\",  captionViewer = \"\", spinner = \"\", thumbnail, waterMark;\r\n    let mutedMessage = null;\r\n    let hasThumbnail = api.getConfig().image || api.getConfig().title;\r\n    let hasWaterMark = api.getConfig().waterMark && api.getConfig().waterMark.image ||\r\n        api.getConfig().waterMark && api.getConfig().waterMark.text;\r\n    let dont_show_message = false;\r\n\r\n    const onRendered = function($current, template){\r\n        let qualityLevelChanging = false, newQualityLevel = -1;\r\n        function createBigButton(state){\r\n\r\n            if (!api.getConfig().showBigPlayButton) {\r\n                return;\r\n            }\r\n\r\n            if (api.getState() === STATE_IDLE || api.getState() === STATE_COMPLETE) {\r\n\r\n                if (messageBox) {\r\n                    messageBox.destroy();\r\n                }\r\n\r\n                if (bigButton) {\r\n                    bigButton.destroy();\r\n                }\r\n\r\n                bigButton = BigButton($current, api, state);\r\n            }\r\n        }\r\n        function createMessage(message, description ,withTimer, iconClass, clickCallback, dontClose){\r\n\r\n            if(bigButton){\r\n                bigButton.destroy();\r\n            }\r\n\r\n            if(messageBox){\r\n                messageBox.destroy();\r\n            }\r\n\r\n            messageBox = MessageBox($current, api, message, description, withTimer, iconClass, clickCallback, dontClose);\r\n        }\r\n        function createThumbnail(){\r\n\r\n            const mediaElement = api.getMediaElement();\r\n\r\n            if (mediaElement) {\r\n                mediaElement.poster = ''\r\n            }\r\n\r\n            if (api.getConfig().image) {\r\n                mediaElement.poster = api.getConfig().image;\r\n            }\r\n\r\n\r\n            if(thumbnail){\r\n                thumbnail.destroy();\r\n            }\r\n\r\n            thumbnail = Thumbnail($current, api, api.getConfig());\r\n        }\r\n        function createWaterMark() {\r\n\r\n            if (waterMark) {\r\n                waterMark.destroy();\r\n            }\r\n\r\n            waterMark = WaterMark($current, api, api.getConfig());\r\n        }\r\n\r\n        spinner = Spinner($current, api);\r\n\r\n        /*if(api.getCaptionList() && api.getCaptionList().length > 0){\r\n            captionViewer = CaptionViewer($current, api);\r\n        }*/\r\n\r\n        captionViewer = CaptionViewer($current, api);\r\n\r\n        api.on(READY, function() {\r\n            if(hasThumbnail){\r\n                createThumbnail();  //shows when playlist changed.\r\n            }\r\n            if(hasWaterMark) {\r\n                createWaterMark();\r\n            }\r\n\r\n            if (!firstRun) {\r\n\r\n                createBigButton(STATE_PAUSED);\r\n                firstRun = true;\r\n            }\r\n\r\n        }, template);\r\n\r\n        //So far warning muted play is all!!\r\n        api.on(PLAYER_WARNING, function(data) {\r\n            if(data.message){\r\n\r\n                if(bigButton){\r\n                    bigButton.destroy();\r\n                }\r\n\r\n                if(messageBox){\r\n                    messageBox.destroy();\r\n                }\r\n                mutedMessage = MessageBox($current, api, data.message, null, data.timer, data.iconClass, data.onClickCallback, false);\r\n\r\n                //When the volume is turned on by an external something.\r\n                api.once(CONTENT_MUTE, function(data){\r\n                    if(!data.mute && mutedMessage){\r\n                        mutedMessage.destroy();\r\n                    }\r\n                }, template);\r\n            }\r\n        }, template);\r\n\r\n        api.on(PLAYER_STATE, function(data){\r\n            if(data && data.newstate){\r\n\r\n                if (data.newstate === STATE_IDLE) {\r\n                    if(messageBox){\r\n                        messageBox.destroy();\r\n                    }\r\n                }\r\n\r\n                if(data.newstate === STATE_PLAYING ||  data.newstate === STATE_AD_PLAYING){\r\n\r\n                    dont_show_message = false;\r\n\r\n                    if (messageBox) {\r\n                        messageBox.destroy();\r\n                    }\r\n                    if (bigButton) {\r\n                        bigButton.destroy();\r\n                    }\r\n                    if(thumbnail){\r\n                        thumbnail.destroy();\r\n                    }\r\n\r\n                    if(!qualityLevelChanging){\r\n                        spinner.show(false);\r\n                    }\r\n                } else if (data.newstate === STATE_COMPLETE) {\r\n\r\n                    spinner.show(false);\r\n                    createBigButton(data.newstate);\r\n                } else{\r\n\r\n                    if(data.newstate === STATE_STALLED || data.newstate === STATE_LOADING || data.newstate === STATE_AD_LOADING){\r\n\r\n                        dont_show_message = false;\r\n                        if(messageBox){\r\n                            messageBox.destroy();\r\n                        }\r\n                        if (bigButton) {\r\n                            bigButton.destroy();\r\n                        }\r\n                        spinner.show(true);\r\n                    }else{\r\n                        if(!qualityLevelChanging){\r\n                            spinner.show(false);\r\n                        }\r\n                    }\r\n                }\r\n\r\n            }\r\n        }, template);\r\n\r\n        api.on(CONTENT_SOURCE_CHANGED, function () {\r\n\r\n            if(hasThumbnail){\r\n                createThumbnail();  //shows when playlist changed.\r\n            }\r\n        });\r\n\r\n        //show spinner cuz dashjs spends long time for level change.\r\n        api.on(CONTENT_LEVEL_CHANGED, function(data){\r\n            if(data.currentQuality < 0 ){\r\n                return false;\r\n            }\r\n            if(data.isAuto){\r\n                qualityLevelChanging = false;\r\n                spinner.show(false);\r\n            }else{\r\n                if(data.type === \"request\"){\r\n                    newQualityLevel = data.currentQuality;\r\n                    qualityLevelChanging = true;\r\n                    spinner.show(true);\r\n                }else if(data.type === \"render\" && newQualityLevel === data.currentQuality){\r\n                    qualityLevelChanging = false;\r\n                    spinner.show(false);\r\n                    //createMessage(\"quality changed.\", 3000);\r\n                }\r\n            }\r\n\r\n         }, template);\r\n        api.on(ERROR, function(error) {\r\n\r\n            if (error.code === 510) {\r\n                dont_show_message = true;\r\n            }\r\n\r\n            if (error.code === 101 && api.getPlaylist().length === 0) {\r\n                dont_show_message = true;\r\n            }\r\n\r\n            if (dont_show_message) {\r\n                return;\r\n            }\r\n\r\n            let message = \"\", description = \"\";\r\n\r\n            if(bigButton){\r\n                bigButton.destroy();\r\n            }\r\n\r\n            if (error && error.code && error.code >= 100 && error.code < 1000) {\r\n                message = error.message;\r\n                if(error.code === 100){\r\n                    description = error.error.toString();\r\n                }\r\n            }  else {\r\n                message = \"Can not play due to unknown reasons.\";\r\n            }\r\n            OvenPlayerConsole.log(\"error occured : \", error);\r\n\r\n            createMessage(message, description, null, UI_ICONS.op_warning , null, true);\r\n        }, template);\r\n\r\n\r\n        api.on(NETWORK_UNSTABLED, function(event){\r\n            let message = \"Because the network connection is unstable, the following media source will be played.\";\r\n\r\n            if(api.getCurrentSource()+1 ===  api.getQualityLevels().length){\r\n                message = \"Network connection is unstable. Check the network connection.\";\r\n            }\r\n\r\n            OvenPlayerConsole.log(message);\r\n            //createMessage(message, null,5000);\r\n        }, template);\r\n\r\n        api.on(ALL_PLAYLIST_ENDED, function(){\r\n            if(hasThumbnail){\r\n                createThumbnail();\r\n            }\r\n        }, template);\r\n    };\r\n    const onDestroyed = function(template){\r\n        api.off(READY, null, template);\r\n        api.off(PLAYER_STATE, null, template);\r\n        api.off(PLAYER_WARNING, null, template);\r\n        api.off(ERROR, null, template);\r\n        api.off(NETWORK_UNSTABLED, null, template);\r\n        api.off(ALL_PLAYLIST_ENDED, null, template);\r\n        api.off(PLAYLIST_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n\r\n    };\r\n\r\n    return OvenTemplate($container, \"Helpers\", api.getConfig(), null, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default Helpers;\r\n","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED\r\n} from \"api/constants\";\r\nimport {STATE_ERROR} from \"../../../api/constants\";\r\n\r\nconst BigButton = function($container, api, playerState){\r\n\r\n    const onRendered = function($container, $current, template){\r\n        //Do nothing!\r\n    };\r\n    const onDestroyed = function(){\r\n        //Do nothing!\r\n    };\r\n    const events = {\r\n        \"click .op-bigbutton-container\" : function(event){\r\n            event.preventDefault();\r\n            event.stopPropagation();\r\n\r\n            const currentState = api.getState();\r\n            let playlist = api.getPlaylist();\r\n            let currentPlaylistIndex = api.getCurrentPlaylist();\r\n\r\n            if (currentState === STATE_IDLE || currentState === STATE_PAUSED) {\r\n                api.play();\r\n            } else if (currentState === STATE_ERROR) {\r\n                api.setCurrentSource(api.getCurrentSource());\r\n            } else if(currentState === STATE_COMPLETE){\r\n                if(playlist.length === (currentPlaylistIndex+1)){\r\n                    api.seek(0);\r\n                    api.play();\r\n                }\r\n            }\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"BigButton\", api.getConfig(), playerState, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default BigButton;","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED\r\n} from \"api/constants\";\r\n\r\nconst Thumbnail = function ($container, api, playerState) {\r\n\r\n    const onRendered = function ($current, template) {\r\n\r\n    };\r\n    const onDestroyed = function () {\r\n        //Do nothing!\r\n    };\r\n    const events = {};\r\n\r\n    return OvenTemplate($container, \"Thumbnail\", api.getConfig(), playerState, events, onRendered, onDestroyed);\r\n};\r\n\r\nexport default Thumbnail;","/**\r\n * Created by hoho on 2018. 7. 25..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\n\r\nconst Spinner = function($container, api){\r\n    let $spinner = \"\";\r\n\r\n    const onRendered = function($current, template){\r\n        $spinner = $current;\r\n    };\r\n    const onDestroyed = function(){\r\n        //Do nothing.\r\n    };\r\n    const events = {};\r\n\r\n    return Object.assign(OvenTemplate($container, \"Spinner\", api.getConfig(), null, events, onRendered, onDestroyed ), {\r\n        show: function (isShow) {\r\n            if(isShow){\r\n                $spinner.show();\r\n            }else{\r\n                $spinner.hide();\r\n            }\r\n        }\r\n    });\r\n};\r\n\r\n\r\nexport default Spinner;","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED,\r\n    CONTENT_CAPTION_CHANGED,\r\n    CONTENT_CAPTION_CUE_CHANGED\r\n} from \"api/constants\";\r\nimport LA$ from 'utils/likeA$';\r\n\r\n\r\nconst CaptionViewer = function($container, api, playerState){\r\n    const $root = LA$(api.getContainerElement());\r\n\r\n    const onRendered = function($container, $current, template){\r\n        let isDisable = false;\r\n        let deleteTimer = 0;\r\n\r\n        api.on(CONTENT_CAPTION_CHANGED, function(index) {\r\n            if(index > -1){\r\n                isDisable = false;\r\n            }else{\r\n                isDisable  = true;\r\n                $container.find(\".op-caption-text\").text(\"\");\r\n            }\r\n        }, template);\r\n\r\n        api.on(CONTENT_CAPTION_CUE_CHANGED, function(data) {\r\n            if(!isDisable && data && data.text){\r\n                let hideGap = data.endTime - data.startTime;\r\n\r\n                if(deleteTimer){\r\n                    clearTimeout(deleteTimer);\r\n                }\r\n\r\n                $container.find(\".op-caption-text\").html(data.text);\r\n\r\n                if(hideGap){\r\n                    deleteTimer = setTimeout(function(){\r\n                        $container.find(\".op-caption-text\").text(\"\");\r\n                    },hideGap * 1000);\r\n                }\r\n\r\n            }\r\n\r\n        }, template);\r\n\r\n\r\n    };\r\n    const onDestroyed = function(template){\r\n        $container.find(\".op-caption-text\").text(\"\");\r\n        api.off(CONTENT_CAPTION_CHANGED, null, template);\r\n        api.off(CONTENT_CAPTION_CUE_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n    };\r\n\r\n    return OvenTemplate($container, \"CaptionViewer\", api.getConfig(), playerState, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default CaptionViewer;","/**\r\n * Created by Sangwon Oh on 2020. 11. 10..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport _ from 'utils/underscore';\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED\r\n} from \"api/constants\";\r\n\r\nconst WaterMark = function($container, api, playerState){\r\n\r\n    let waterMark = null;\r\n    let textElem = null;\r\n    const defaultPosition = 'top-right';\r\n    const defaultX = '2.8125%';\r\n    const defaultY = '5%';\r\n    const defaultWidth = 'auto';\r\n    const defaultHeight = 'auto';\r\n    const defaultOpacity = 0.7;\r\n\r\n    const onRendered = function($current, template){\r\n\r\n        waterMark = $current.find('.op-watermark');\r\n        textElem = $current.find('.op-watermark-text');\r\n\r\n        let waterMarkOption = api.getConfig().waterMark;\r\n\r\n        let position = waterMarkOption.position || defaultPosition;\r\n\r\n        let y = waterMarkOption.y || defaultY;\r\n        let x = waterMarkOption.x || defaultX;\r\n\r\n        waterMark.css(position.split('-')[0], y);\r\n        waterMark.css(position.split('-')[1], x);\r\n\r\n        let width = waterMarkOption.width || defaultWidth;\r\n        let height = waterMarkOption.height || defaultHeight;\r\n\r\n        waterMark.css('width', width);\r\n        waterMark.css('height', height);\r\n\r\n        let opacity = waterMarkOption.opacity || defaultOpacity;\r\n        waterMark.css('opacity', opacity);\r\n\r\n        if (waterMarkOption.text) {\r\n\r\n            if (waterMarkOption.font) {\r\n\r\n                _.each(waterMarkOption.font, function (value, key) {\r\n                    textElem.css(key, value);\r\n                })\r\n            }\r\n        }\r\n\r\n    };\r\n    const onDestroyed = function(){\r\n        //Do nothing!\r\n    };\r\n    const events = {\r\n\r\n    };\r\n\r\n    return OvenTemplate($container, \"WaterMark\", api.getConfig(), playerState, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default WaterMark;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport _ from \"utils/underscore\";\r\n\r\nlet settingPanelList = [];\r\n\r\nconst PanelManager = function(){\r\n    const that = {};\r\n\r\n    let refreshFront = function(){\r\n        for(let i = 0 ; i < settingPanelList.length; i ++){\r\n            settingPanelList[i].data.setFront(false);\r\n        }\r\n        if(settingPanelList.length ){\r\n            settingPanelList[settingPanelList.length - 1].data.setFront(true);\r\n        }\r\n    };\r\n    that.clear = () => {\r\n        //clear all SettingPanelTemplate\r\n\r\n        _.each(settingPanelList, function(settingPanel){\r\n            settingPanel.destroy();\r\n        });\r\n        settingPanelList = [];\r\n        refreshFront();\r\n    };\r\n\r\n    that.removeLastItem = () =>{\r\n        let last = settingPanelList.pop();\r\n        last.destroy();\r\n        refreshFront();\r\n    };\r\n\r\n    that.add = (settingPanelObject) => {\r\n        settingPanelList.push(settingPanelObject);\r\n        refreshFront();\r\n    };\r\n\r\n    that.size = () => {\r\n        return settingPanelList.length;\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default PanelManager;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\nimport _ from \"utils/underscore\";\r\nimport sizeHumanizer from \"utils/sizeHumanizer\";\r\nimport SpeedPanel from \"view/components/controls/settingPanel/speedPanel\";\r\nimport SourcePanel from \"view/components/controls/settingPanel/sourcePanel\";\r\nimport QualityPanel from \"view/components/controls/settingPanel/qualityPanel\";\r\nimport AudioTrackPanel from \"view/components/controls/settingPanel/audioTrackPanel\";\r\nimport CaptionPanel from \"view/components/controls/settingPanel/captionPanel\";\r\nimport TimeDisplayPanel from \"view/components/controls/settingPanel/timeDisplayPanel\";\r\nimport {\r\n    CONTENT_LEVEL_CHANGED, PROVIDER_RTMP\r\n} from \"api/constants\";\r\nimport {AUDIO_TRACK_CHANGED} from \"../../../../api/constants\";\r\n\r\nlet PANEL_TITLE = {\r\n    \"speed\": \"Speed\",\r\n    \"speedUnit\": \"x\",\r\n    \"source\": \"Source\",\r\n    \"quality\": \"Quality\",\r\n    \"audioTrack\": \"Audio\",\r\n    \"caption\": \"Caption\",\r\n    \"display\": \"Display\"\r\n};\r\n\r\nconst Panels = function ($container, api, data) {\r\n\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    let playerConfig = api.getConfig();\r\n\r\n    if (playerConfig && playerConfig.systemText) {\r\n        Object.keys(PANEL_TITLE).forEach(title => {\r\n            PANEL_TITLE[title] = playerConfig.systemText.ui.setting[title];\r\n        });\r\n    }\r\n\r\n    function extractSubPanelData(api, panelType) {\r\n        let panel = {\r\n            id: \"panel-\" + new Date().getTime(),\r\n            title: \"\",\r\n            body: [],\r\n            useCheck: true,\r\n            panelType: panelType,\r\n            height: $root.height() - $root.find(\".op-bottom-panel\").height()\r\n        };\r\n        panel.title = PANEL_TITLE[panelType];\r\n        if (panelType === \"speed\") {\r\n            let playBackRates = api.getConfig().playbackRates;\r\n            let currentPlaybackRate = api.getPlaybackRate();\r\n            for (let i = 0; i < playBackRates.length; i++) {\r\n                let body = {\r\n                    title: playBackRates[i] + PANEL_TITLE.speedUnit, //(playBackRates[i] === 1? \"Normal\" : playBackRates[i]),\r\n                    isCheck: currentPlaybackRate === playBackRates[i],\r\n                    value: playBackRates[i],\r\n                    description: playBackRates[i],\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        } else if (panelType === \"source\") {\r\n            let sources = api.getSources();\r\n            for (let i = 0; i < sources.length; i++) {\r\n                let body = {\r\n                    title: sources[i].label,\r\n                    isCheck: api.getCurrentSource() === i,\r\n                    value: i,\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        } else if (panelType === \"quality\") {\r\n            let qualityLevels = api.getQualityLevels();\r\n            panel.body.push({\r\n                title: \"AUTO\",\r\n                isCheck: api.isAutoQuality(),\r\n                value: \"AUTO\",\r\n                panelType: panelType\r\n            });\r\n            for (let i = 0; i < qualityLevels.length; i++) {\r\n                let body = {\r\n                    title: qualityLevels[i].label,\r\n                    isCheck: api.getCurrentQuality() === i,\r\n                    value: i,\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        } else if (panelType === \"audioTrack\") {\r\n            let audioTracks = api.getAudioTracks();\r\n\r\n            for (let i = 0; i < audioTracks.length; i++) {\r\n                let body = {\r\n                    title: audioTracks[i].label,\r\n                    isCheck: audioTracks[i].index === api.getCurrentAudioTrack(),\r\n                    value: audioTracks[i].index,\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        } else if (panelType === \"caption\") {\r\n            let captions = api.getCaptionList();\r\n            panel.body.push({\r\n                title: \"OFF\",\r\n                isCheck: api.getCurrentCaption() === -1,\r\n                value: -1,\r\n                panelType: panelType\r\n            });\r\n            for (let i = 0; i < captions.length; i++) {\r\n                let body = {\r\n                    title: captions[i].label,\r\n                    isCheck: api.getCurrentCaption() === i,\r\n                    value: i,\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        } else if (panelType === \"display\") {\r\n            let displayModes = [\r\n                \"Play time\",\r\n                \"Framecode\"\r\n            ];\r\n            for (let i = 0; i < displayModes.length; i++) {\r\n                let body = {\r\n                    title: displayModes[i],\r\n                    isCheck: api.isTimecodeMode() ? (displayModes[i] === \"Play time\") : (displayModes[i] === \"Framecode\"),\r\n                    value: displayModes[i],\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        }\r\n        return panel;\r\n    };\r\n\r\n    data.setFront = function (isFront) {\r\n        if (isFront) {\r\n            $root.find(\"#\" + data.id).removeClass(\"background\");\r\n        } else {\r\n            $root.find(\"#\" + data.id).addClass(\"background\");\r\n        }\r\n    };\r\n\r\n    function setPanelMaxHeight() {\r\n        if ($root.find(\".op-setting-panel\")) {\r\n            $root.find(\".op-setting-panel\").css(\"max-height\", $root.height() - $root.find(\".op-bottom-panel\").height() + \"px\");\r\n        }\r\n    };\r\n    const onRendered = function ($current, template) {\r\n        setPanelMaxHeight();\r\n\r\n        api.on(CONTENT_LEVEL_CHANGED, function (data) {\r\n            let newQuality = data.currentQuality;\r\n            if (data.type === \"render\" && $root.find(\"#\" + template.data.id).find(\".op-setting-item\")) {\r\n                _.forEach($root.find(\"#\" + template.data.id).find(\".op-setting-item\").get() || [], function (panel) {\r\n                    let $panel = LA$(panel);\r\n\r\n                    if ($panel.attr(\"op-panel-type\") === \"quality\") {\r\n                        let qualityList = api.getQualityLevels();\r\n                        let newQualityObject = qualityList[newQuality];\r\n                        $panel.find(\".op-setting-item-value\").text(newQualityObject.width + \"x\" + newQualityObject.height + \", \" + sizeHumanizer(newQualityObject.bitrate, true, \"bps\"));\r\n                    }\r\n\r\n                });\r\n            }\r\n\r\n        }, template);\r\n\r\n        api.on(AUDIO_TRACK_CHANGED, function (data) {\r\n            _.forEach($root.find(\"#\" + template.data.id).find(\".op-setting-item\").get() || [], function (panel) {\r\n\r\n                let $panel = LA$(panel);\r\n\r\n                if($panel.attr(\"op-panel-type\") === \"audioTrack\"){\r\n                    $panel.find(\".op-setting-item-value\").text(api.getAudioTracks()[data.currentAudioTrack].label);\r\n                }\r\n            });\r\n        }, template);\r\n    };\r\n    const onDestroyed = function (template) {\r\n        api.off(CONTENT_LEVEL_CHANGED, null, template);\r\n        api.off(AUDIO_TRACK_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            //if this panel is background it disabled click.\r\n            if ($root.find(\"#\" + data.id).hasClass(\"background\")) {\r\n                return false;\r\n            }\r\n            let panelType = LA$(event.currentTarget).attr(\"op-panel-type\");\r\n            let panel = null;\r\n            if (panelType === \"speed\") {\r\n                panel = SpeedPanel($container, api, extractSubPanelData(api, panelType));\r\n            } else if (panelType === \"source\") {\r\n                panel = SourcePanel($container, api, extractSubPanelData(api, panelType));\r\n            } else if (panelType === \"quality\") {\r\n                panel = QualityPanel($container, api, extractSubPanelData(api, panelType));\r\n            } else if (panelType === \"audioTrack\") {\r\n                panel = AudioTrackPanel($container, api, extractSubPanelData(api, panelType));\r\n            } else if (panelType === \"caption\") {\r\n                panel = CaptionPanel($container, api, extractSubPanelData(api, panelType));\r\n            } else if (panelType === \"display\") {\r\n                panel = TimeDisplayPanel($container, api, extractSubPanelData(api, panelType));\r\n            }\r\n\r\n            panelManager.add(panel);\r\n        },\r\n        \"click .op-setting-title\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            if ($root.find(\"#\" + data.id).hasClass(\"background\")) {\r\n                return false;\r\n            }\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n    return OvenTemplate($container, \"Panels\", api.getConfig(), data, events, onRendered, onDestroyed);\r\n\r\n};\r\n\r\nexport default Panels;\r\n\r\n","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\n\r\n\r\nconst SpeedPanel = function($container, api, data){\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function(isFront){\r\n        if(isFront){\r\n            $root.find(\"#\"+data.id).removeClass(\"background\");\r\n        }else{\r\n            $root.find(\"#\"+data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function($current, template){\r\n        //Do nothing\r\n    };\r\n    const onDestroyed = function(template){\r\n        //Do nothing\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            api.setPlaybackRate(parseFloat(value));\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"SpeedPanel\", api.getConfig(), data, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default SpeedPanel;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\n\r\n\r\nconst SourcePanel = function($container, api, data){\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function(isFront){\r\n        if(isFront){\r\n            $root.find(\"#\"+data.id).removeClass(\"background\");\r\n        }else{\r\n            $root.find(\"#\"+data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function($current, template){\r\n        //Do nothing\r\n    };\r\n    const onDestroyed = function(template){\r\n        //Do nothing\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            api.setCurrentSource(parseInt(value));\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"SourcePanel\", api.getConfig(), data, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default SourcePanel;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\nimport _ from \"utils/underscore\";\r\nimport {\r\n    CONTENT_LEVEL_CHANGED\r\n} from \"api/constants\";\r\n\r\nconst QualityPanel = function($container, api, data){\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function(isFront){\r\n        if(isFront){\r\n            $root.find(\"#\"+data.id).removeClass(\"background\");\r\n        }else{\r\n            $root.find(\"#\"+data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function($current, template){\r\n\r\n        //This assistants UI when quality level changes. When you open setting panels.\r\n        api.on(CONTENT_LEVEL_CHANGED, function(data){\r\n            let newQuality = data.currentQuality;\r\n            if(data.type === \"render\"){\r\n                _.forEach( $root.find(\"#\"+template.data.id).find(\".op-setting-item\").get(), function(panel){\r\n                    let $panel = LA$(panel);\r\n                    if( $panel.find(\".op-setting-item-checked\").hasClass(\"op-show\")){\r\n                        $panel.find(\".op-setting-item-checked\").removeClass(\"op-show\");\r\n                    }\r\n                    if(newQuality === parseInt($panel.attr(\"op-data-value\"))){\r\n                        $panel.find(\".op-setting-item-checked\").addClass(\"op-show\");\r\n                    }\r\n                    if(data.isAuto && $panel.attr(\"op-data-value\") === \"AUTO\"){\r\n                        $panel.find(\".op-setting-item-checked\").addClass(\"op-show\");\r\n                    }\r\n                });\r\n            }\r\n        }, template);\r\n    };\r\n    const onDestroyed = function(template){\r\n        api.off(CONTENT_LEVEL_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            if(value === \"AUTO\"){\r\n                api.setAutoQuality(!api.isAutoQuality());\r\n            }else{\r\n                api.setCurrentQuality(parseInt(value));\r\n            }\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"QualityPanel\", api.getConfig(), data, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default QualityPanel;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\nimport {\r\n    AUDIO_TRACK_CHANGED\r\n} from \"api/constants\";\r\nimport _ from \"utils/underscore\";\r\n\r\nconst AudioTrackPanel = function ($container, api, data) {\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function (isFront) {\r\n        if (isFront) {\r\n            $root.find(\"#\" + data.id).removeClass(\"background\");\r\n        } else {\r\n            $root.find(\"#\" + data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function ($current, template) {\r\n        api.on(AUDIO_TRACK_CHANGED, function (data) {\r\n            _.forEach($root.find(\"#\" + template.data.id).find(\".op-setting-item\").get(), function (panel) {\r\n                let $panel = LA$(panel);\r\n\r\n                if ($panel.find(\".op-setting-item-checked\").hasClass(\"op-show\")) {\r\n                    $panel.find(\".op-setting-item-checked\").removeClass(\"op-show\");\r\n                }\r\n                if (data.currentAudioTrack === parseInt($panel.attr(\"op-data-value\"))) {\r\n                    $panel.find(\".op-setting-item-checked\").addClass(\"op-show\");\r\n                }\r\n            });\r\n        }, template);\r\n    };\r\n    const onDestroyed = function (template) {\r\n        api.off(AUDIO_TRACK_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            api.setCurrentAudioTrack(parseInt(value));\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"AudioTrackPanel\", api.getConfig(), data, events, onRendered, onDestroyed);\r\n\r\n};\r\n\r\nexport default AudioTrackPanel;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\n\r\n\r\nconst CaptionPanel = function($container, api, data){\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function(isFront){\r\n        if(isFront){\r\n            $root.find(\"#\"+data.id).removeClass(\"background\");\r\n        }else{\r\n            $root.find(\"#\"+data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function($current, template){\r\n        //Do nothing\r\n    };\r\n    const onDestroyed = function(template){\r\n        //Do nothing\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            api.setCurrentCaption(parseFloat(value));\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"CaptionPanel\", api.getConfig(),  data, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default CaptionPanel;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\n\r\n\r\nconst TimeDisplayPanel = function($container, api, data){\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function(isFront){\r\n        if(isFront){\r\n            $root.find(\"#\"+data.id).removeClass(\"background\");\r\n        }else{\r\n            $root.find(\"#\"+data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function($current, template){\r\n        //Do nothing\r\n    };\r\n    const onDestroyed = function(template){\r\n        //Do nothing\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            api.setTimecodeMode(value === \"Play time\");\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"TimeDisplayPanel\", api.getConfig(), data, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default TimeDisplayPanel;","/**\r\n * Created by hoho on 2019. 5. 17..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport Panels from \"view/components/controls/settingPanel/main\";\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport {\r\n    PROVIDER_RTMP\r\n} from \"api/constants\";\r\n\r\nlet PANEL_TITLE = {\r\n    \"speed\": \"Speed\",\r\n    \"speedUnit\": \"x\",\r\n    \"source\": \"Source\",\r\n    \"quality\": \"Quality\",\r\n    \"audioTrack\": \"Audio\",\r\n    \"caption\": \"Caption\",\r\n    \"display\": \"Display\"\r\n};\r\nconst SettingButton = function ($container, api) {\r\n    let panelManager = PanelManager();\r\n\r\n    function generateMainData(api) {\r\n        let panel = {\r\n            id: \"panel-\" + new Date().getTime(),\r\n            title: \"Settings\",\r\n            body: [],\r\n            isRoot: true,\r\n            panelType: \"\"\r\n        };\r\n\r\n        let playerConfig = api.getConfig();\r\n\r\n        if (playerConfig && playerConfig.systemText) {\r\n            Object.keys(PANEL_TITLE).forEach(title => {\r\n                PANEL_TITLE[title] = playerConfig.systemText.ui.setting[title];\r\n            });\r\n            panel.title = playerConfig.systemText.ui.setting.title;\r\n        }\r\n        let sources = api.getSources();\r\n        let currentSource = sources && sources.length > 0 ? sources[api.getCurrentSource()] : null;\r\n\r\n        let qualityLevels = api.getQualityLevels();\r\n        let currentQuality = qualityLevels && qualityLevels.length > 0 ? qualityLevels[api.getCurrentQuality()] : null;\r\n\r\n        let audioTracks = api.getAudioTracks();\r\n        let currentAudioTrack = audioTracks && audioTracks.length > 0 ? audioTracks[api.getCurrentAudioTrack()] : null;\r\n\r\n        let captions = api.getCaptionList();\r\n        let currentCaption = api.getCurrentCaption();\r\n\r\n        let framerate = api.getFramerate();\r\n\r\n        if (api.getDuration() !== Infinity && currentSource && currentSource.type !== PROVIDER_RTMP) {\r\n            let body = {\r\n                title: PANEL_TITLE.speed,\r\n                value: api.getPlaybackRate() + PANEL_TITLE.speedUnit,\r\n                description: api.getPlaybackRate() + PANEL_TITLE.speedUnit,\r\n                panelType: \"speed\",\r\n                hasNext: true\r\n            };\r\n            panel.body.push(body);\r\n        }\r\n        if (sources && sources.length > 1) {\r\n\r\n            let body = {\r\n                title: PANEL_TITLE.source,\r\n                value: currentSource ? currentSource.label : \"Default\",\r\n                description: currentSource ? currentSource.label : \"Default\",\r\n                panelType: \"source\",\r\n                hasNext: true\r\n            };\r\n\r\n            panel.body.push(body);\r\n        }\r\n        if (qualityLevels && qualityLevels.length > 0) {\r\n\r\n            let body = {\r\n                title: PANEL_TITLE.quality,\r\n                value: currentQuality ? currentQuality.label : \"Default\",\r\n                description: currentQuality ? currentQuality.label : \"Default\",\r\n                panelType: \"quality\",\r\n                hasNext: true\r\n            };\r\n\r\n            panel.body.push(body);\r\n        }\r\n\r\n        if (audioTracks && audioTracks.length > 0) {\r\n\r\n            let body = {\r\n                title: PANEL_TITLE.audioTrack,\r\n                value: currentAudioTrack ? currentAudioTrack.label : \"Default\",\r\n                description: currentAudioTrack ? currentAudioTrack.label : \"Default\",\r\n                panelType: \"audioTrack\",\r\n                hasNext: true\r\n            };\r\n\r\n            panel.body.push(body);\r\n        }\r\n\r\n        if (captions && captions.length > 0) {\r\n\r\n            let body = {\r\n                title: PANEL_TITLE.caption,\r\n                value: captions[currentCaption] ? captions[currentCaption].label : \"OFF\",\r\n                description: captions[currentCaption] ? captions[currentCaption].label : \"OFF\",\r\n                panelType: \"caption\",\r\n                hasNext: true\r\n            };\r\n\r\n            panel.body.push(body);\r\n        }\r\n        if (framerate > 0) {\r\n            let body = {\r\n                title: PANEL_TITLE.display,\r\n                value: api.isTimecodeMode() ? \"Play time\" : \"Framecode\",\r\n                description: api.isTimecodeMode() ? \"Play time\" : \"Framecode\",\r\n                panelType: \"display\",\r\n                hasNext: true\r\n            };\r\n\r\n            panel.body.push(body);\r\n        }\r\n\r\n        return panel;\r\n    };\r\n\r\n    const onRendered = function ($current, template) {\r\n    };\r\n    const onDestroyed = function (template) {\r\n    };\r\n    const events = {\r\n        \"click .op-setting-button\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let $parent = $current.closest(\".op-controls-container\");\r\n            if (panelManager.size() > 0) {\r\n                panelManager.clear();\r\n            } else {\r\n                let panelData = generateMainData(api);\r\n                panelManager.add(Panels($parent, api, panelData));\r\n            }\r\n        },\r\n    };\r\n\r\n    return OvenTemplate($container, \"SettingButton\", api.getConfig(), null, events, onRendered, onDestroyed);\r\n};\r\n\r\n\r\nexport default SettingButton;\r\n","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport PlayButton from \"view/components/controls/playButton\";\r\nimport SettingButton from \"view/components/controls/settingButton\";\r\nimport FrameButtons from \"view/components/controls/frameButtons\";\r\nimport VolumeButton from \"view/components/controls/volumeButton\";\r\nimport ProgressBar from \"view/components/controls/progressBar\";\r\nimport PlaylistPanel from \"view/components/controls/playlistPanel\";\r\nimport LA$ from 'utils/likeA$';\r\nimport TimeDisplay from \"view/components/controls/timeDisplay\";\r\nimport FullScreenButton from \"view/components/controls/fullScreenButton\";\r\nimport {\r\n    READY,\r\n    CONTENT_META, CONTENT_LEVEL_CHANGED, CONTENT_TIME_MODE_CHANGED, CONTENT_TIME, PLAYER_PLAY,\r\n    STATE_AD_LOADED,\r\n    PLAYER_RESIZED,\r\n    AD_CHANGED,\r\n    STATE_AD_ERROR,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n    CONTENT_SOURCE_CHANGED,\r\n    OME_P2P_MODE,\r\n    ERROR,\r\n    PROVIDER_HLS,\r\n    PLAYER_WEBRTC_WS_ERROR\r\n} from \"api/constants\";\r\n\r\nconst Controls = function ($container, api) {\r\n\r\n    let volumeButton = \"\", playButton = \"\", settingButton = \"\", progressBar = \"\", timeDisplay = \"\",\r\n        fullScreenButton = \"\", frameButtons = \"\", hasPlaylist = false, initialDuration;\r\n    let uiInited = false;\r\n    let webrtc_is_p2p_mode = false;\r\n    let isLiveMode = false;\r\n\r\n    let browser = api.getConfig().browser;\r\n    let isAndroid = browser.os === \"Android\";\r\n    let isIOS = browser.os === \"iOS\";\r\n\r\n    const $root = LA$(api.getContainerElement());\r\n    let lastContentMeta = {};\r\n\r\n    hasPlaylist = api.getPlaylist().length > 1;\r\n\r\n    if (api.getConfig().hidePlaylistIcon === true) {\r\n        hasPlaylist = false;\r\n    }\r\n\r\n    let playlistPanel = \"\";\r\n\r\n    const onRendered = function ($current, template) {\r\n\r\n        function setPanelMaxHeight() {\r\n            if ($root.find(\".op-setting-panel\")) {\r\n                $root.find(\".op-setting-panel\").css(\"max-height\", $root.height() - $root.find(\".op-bottom-panel\").height() + \"px\");\r\n            }\r\n        }\r\n\r\n        function initTimeDisplay(data) {\r\n            if (timeDisplay) {\r\n                timeDisplay.destroy();\r\n            }\r\n            timeDisplay = TimeDisplay($current.find(\".op-left-controls\"), api, data);\r\n        }\r\n\r\n        function initProgressBar(isAd) {\r\n            if (progressBar) {\r\n                progressBar.destroy();\r\n            }\r\n            progressBar = ProgressBar($current.find(\".op-progressbar-container\"), api, isAd);\r\n        }\r\n\r\n        function initFrameJumpButtons() {\r\n            if (frameButtons) {\r\n                frameButtons.destroy();\r\n            }\r\n            frameButtons = FrameButtons($current.find(\".op-controls\"), api);\r\n        }\r\n\r\n        function initSettingButton() {\r\n            if (settingButton) {\r\n                settingButton.destroy();\r\n            }\r\n            settingButton = SettingButton($current.find(\".setting-holder\"), api);\r\n        }\r\n\r\n        function initFullscreenButton() {\r\n            if (fullScreenButton) {\r\n                // Don't need to destroy.\r\n                return;\r\n                // fullScreenButton.destroy();\r\n            }\r\n            fullScreenButton = FullScreenButton($current.find(\".fullscreen-holder\"), api);\r\n        }\r\n\r\n        function makeControlUI(metadata) {\r\n\r\n            if (metadata.duration > 9000000000000000) {\r\n\r\n                metadata.duration = Infinity;\r\n            }\r\n\r\n            let sectionStart = api.getSources()[api.getCurrentSource()].sectionStart;\r\n            let sectionEnd = api.getSources()[api.getCurrentSource()].sectionEnd;\r\n\r\n            if (sectionEnd) {\r\n                metadata.duration = sectionEnd;\r\n            }\r\n\r\n            if (sectionStart) {\r\n                metadata.duration = metadata.duration - sectionStart;\r\n            }\r\n\r\n            initTimeDisplay(metadata);\r\n            initFullscreenButton();\r\n\r\n            if (api.getFramerate && api.getFramerate() > 0) {\r\n                // initFrameJumpButtons();\r\n            } else {\r\n                if (frameButtons) {\r\n                    frameButtons.destroy();\r\n                }\r\n            }\r\n\r\n            if (metadata.duration === Infinity) {\r\n\r\n                //live\r\n                OvenPlayerConsole.log(\"[[[[LIVE MODE]]]]\");\r\n                isLiveMode = true;\r\n\r\n                if (metadata.type === PROVIDER_HLS) {\r\n                    // show progress bar when hls\r\n                    initProgressBar(false);\r\n                } else {\r\n                    if (progressBar) {\r\n                        progressBar.destroy();\r\n                    }\r\n                }\r\n            } else {\r\n                //vod\r\n                initProgressBar(false);\r\n            }\r\n\r\n            uiInited = true;\r\n        }\r\n\r\n        function resetControlUI() {\r\n\r\n            if (timeDisplay) {\r\n                timeDisplay.destroy();\r\n            }\r\n\r\n            if (progressBar) {\r\n                progressBar.destroy();\r\n            }\r\n\r\n            initSettingButton();\r\n            initFullscreenButton();\r\n\r\n            $root.removeClass(\"linear-ad\");\r\n        }\r\n\r\n        playButton = PlayButton($current.find(\".op-left-controls\"), api);\r\n        volumeButton = VolumeButton($current.find(\".op-left-controls\"), api);\r\n\r\n        let playlist = api.getPlaylist();\r\n        let currentPlaylistIndex = api.getCurrentPlaylist();\r\n\r\n        if (playlist && playlist[currentPlaylistIndex] && playlist[currentPlaylistIndex].adTagUrl) {\r\n            //does not show setting button when ads plays.\r\n        } else {\r\n            initSettingButton();\r\n        }\r\n        initFullscreenButton();\r\n\r\n        api.on(READY, function () {\r\n            $current.show();\r\n        }, template);\r\n\r\n\r\n        api.on(CONTENT_META, function (data) {\r\n            initialDuration = data.duration;\r\n            lastContentMeta = data;\r\n            data.isP2P = webrtc_is_p2p_mode;\r\n            makeControlUI(data);\r\n        }, template);\r\n\r\n        /*\r\n        * I think do not nessessary this code anymore. Because muted play solves everything. 2019-06-04\r\n        *\r\n        *  -> muted play canceled. 2019-06-20(?)\r\n        */\r\n        api.on(CONTENT_TIME, function (metadata_for_when_after_playing) {\r\n\r\n            //Android HLS native doesn't give duration on CONTENT_META. why?\r\n            //Fortunately I have CONTENT_TIME.\r\n            //RTMP too.\r\n            if (isAndroid || (api && api.getProviderName && api.getProviderName() === \"rtmp\")) {\r\n                if (!initialDuration && (lastContentMeta && (lastContentMeta.duration !== metadata_for_when_after_playing.duration))) {\r\n                    lastContentMeta = metadata_for_when_after_playing;\r\n                    makeControlUI(metadata_for_when_after_playing);\r\n                }\r\n            }\r\n\r\n        }, template);\r\n\r\n        api.on(PLAYER_RESIZED, function (size) {\r\n            setPanelMaxHeight();\r\n        }, template);\r\n\r\n        api.on(OME_P2P_MODE, function (isP2P) {\r\n            webrtc_is_p2p_mode = isP2P;\r\n        }, template);\r\n\r\n        api.on(PLAYER_PLAY, function () {\r\n            if (!uiInited) {\r\n\r\n                let type = '';\r\n\r\n                if (api.getSources().length > 0) {\r\n\r\n                    if (api.getSources()[api.getCurrentSource()]) {\r\n\r\n                        if (api.getSources()[api.getCurrentSource()].type) {\r\n                            type = api.getSources()[api.getCurrentSource()].type;\r\n                        }\r\n                    }\r\n                }\r\n\r\n                makeControlUI({\r\n                    isP2P: webrtc_is_p2p_mode,\r\n                    duration: api.getDuration(),\r\n                    type: type\r\n                });\r\n            }\r\n            $current.show();\r\n        }, template);\r\n\r\n        api.on(ERROR, function (error) {\r\n            $current.show();\r\n        }, template);\r\n\r\n        api.on(AD_CHANGED, function (ad) {\r\n            if (ad.isLinear) {\r\n                $root.addClass(\"linear-ad\");\r\n\r\n                initProgressBar(true);\r\n                if (timeDisplay) {\r\n                    timeDisplay.destroy();\r\n                }\r\n                if (settingButton) {\r\n                    settingButton.destroy();\r\n                }\r\n\r\n                //Fullscreen button. Not required on iOS.\r\n                if (isIOS && fullScreenButton) {\r\n                    fullScreenButton.destroy();\r\n                }\r\n            } else {\r\n                $root.removeClass(\"linear-ad\");\r\n            }\r\n        }, template);\r\n\r\n\r\n        api.on(STATE_AD_COMPLETE, function () {\r\n            resetControlUI();\r\n        }, template);\r\n\r\n        api.on(STATE_AD_ERROR, function () {\r\n            resetControlUI();\r\n        }, template);\r\n\r\n        api.on(CONTENT_SOURCE_CHANGED, function () {\r\n            resetControlUI();\r\n        }, template);\r\n    };\r\n\r\n    const onDestroyed = function (template) {\r\n        api.off(CONTENT_META, null, template);\r\n        api.off(CONTENT_TIME, null, template);\r\n        api.off(STATE_AD_COMPLETE, null, template);\r\n        api.off(AD_CHANGED, null, template);\r\n        api.off(OME_P2P_MODE, null, template);\r\n        api.off(STATE_AD_ERROR, null, template);\r\n        api.off(PLAYER_RESIZED, null, template);\r\n        api.off(CONTENT_SOURCE_CHANGED, null, template);\r\n        if (timeDisplay) {\r\n            timeDisplay.destroy();\r\n        }\r\n        if (playButton) {\r\n            playButton.destroy();\r\n        }\r\n        if (progressBar) {\r\n            progressBar.destroy();\r\n        }\r\n        if (fullScreenButton) {\r\n            fullScreenButton.destroy();\r\n        }\r\n        if (volumeButton) {\r\n            volumeButton.destroy();\r\n        }\r\n\r\n    };\r\n\r\n    const events = {\r\n        \"mouseleave .op-controls\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            volumeButton.setMouseDown(false);\r\n            $current.find(\".op-volume-slider-container\").removeClass(\"active\");\r\n        },\r\n\r\n        \"click .op-playlist-button\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            playlistPanel = PlaylistPanel($current, api);\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"Controls\", api.getConfig(), hasPlaylist, events, onRendered, onDestroyed);\r\n};\r\n\r\nexport default Controls;\r\n","/**\r\n * Created by hoho on 06/03/2019.\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport {naturalHms} from \"utils/strings\"\r\nimport {playlistItemTemplate} from \"view/components/controls/playlistPanelTemplate\";\r\nimport LA$ from \"utils/likeA$\";\r\nimport {\r\n    PLAYER_RESIZED,\r\n    PLAYLIST_CHANGED\r\n} from \"api/constants\";\r\n\r\nconst PlaylistPanel = function($container, api){\r\n    const $root = LA$(api.getContainerElement());\r\n\r\n    let $playlistPanel = \"\";\r\n    let playlist = api.getPlaylist();\r\n    let totalCount = playlist.length;\r\n\r\n    let pageSize = 6;\r\n    let page = 0;\r\n    let pagedList = [];\r\n\r\n    if($root.width() > 576){\r\n        pageSize = 6;\r\n    }else if($root.width() <= 576) {\r\n        pageSize = 1;\r\n    }\r\n\r\n    function pagenate(page){\r\n        let totalPageCount = Math.ceil(totalCount / pageSize);\r\n        let currentPlaylistIndex = api.getCurrentPlaylist();\r\n\r\n        pagedList = playlist.slice(page*pageSize, (page*pageSize)+pageSize);\r\n\r\n        $playlistPanel.find(\".op-playlist-body-row\").removeChild();\r\n        $playlistPanel.find(\".op-arrow-left\").removeClass(\"disable\");\r\n        $playlistPanel.find(\".op-arrow-right\").removeClass(\"disable\");\r\n\r\n        for(let i = 0; i < pagedList.length; i ++){\r\n            let originalItemIndex = (page * pageSize) + i;\r\n            pagedList[i].index = originalItemIndex;\r\n            $playlistPanel.find(\".op-playlist-body-row\").get().append(\r\n                createAndSelectElement(playlistItemTemplate(pagedList[i], currentPlaylistIndex === originalItemIndex))\r\n            );\r\n        }\r\n\r\n        if(page === 0){\r\n            $playlistPanel.find(\".op-arrow-left\").addClass(\"disable\");\r\n        }\r\n        if(page+1 === totalPageCount){\r\n            $playlistPanel.find(\".op-arrow-right\").addClass(\"disable\");\r\n        }\r\n    };\r\n    function findCurrentPage(){\r\n        let currentPlaylistIndex = api.getCurrentPlaylist();\r\n        return Math.ceil((currentPlaylistIndex+1)/ pageSize) -1\r\n    };\r\n    function createAndSelectElement(html) {\r\n        const newElement = document.createElement('div');\r\n        newElement.innerHTML = html;\r\n        return newElement.firstChild;\r\n    }\r\n    const onRendered = function($current, template){\r\n        $playlistPanel = $current;\r\n\r\n        page = findCurrentPage();\r\n        pagenate(page);\r\n\r\n        api.on(PLAYER_RESIZED, function(size){\r\n            if( (size === \"xsmall\") && pageSize === 6 ){\r\n                pageSize = 1;\r\n                page = findCurrentPage();\r\n                pagenate(page);\r\n            }else if((size === \"small\" || size === \"medium\" || size === \"large\") && pageSize === 1){\r\n                pageSize = 6;\r\n                page = findCurrentPage();\r\n                pagenate(page);\r\n            }\r\n        },template);\r\n\r\n        api.on(PLAYLIST_CHANGED, function(size){\r\n            page = findCurrentPage();\r\n            pagenate(page);\r\n        },template);\r\n\r\n\r\n        //돔에서 엘리먼트가 제거되면 이벤트도 같이 제거 되어 버리기 때문에 일단 이렇게 해당 템플릿내에서만 live 되도록 처리. 추후 TemplateEngine에 개선\r\n        $current.get().addEventListener(\"click\",function(evt){\r\n            var gtarget = evt.target;\r\n            while (gtarget){\r\n                if (LA$(gtarget).hasClass(\"op-playlist-card\")){\r\n                    api.setCurrentPlaylist(parseInt(LA$(gtarget).attr(\"data-index\")));\r\n                    return;\r\n                }\r\n                gtarget = gtarget.parentElement;\r\n            }\r\n        }, true);\r\n\r\n    };\r\n    const onDestroyed = function(template){\r\n        api.off(PLAYER_RESIZED, null, template);\r\n        api.off(PLAYLIST_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n        \"click .btn-close\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            template.destroy();\r\n\r\n        },\r\n        \"click .op-arrow-left\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            if( !LA$(event.target).hasClass(\"disable\") ){\r\n                page--;\r\n                pagenate(page);\r\n            }\r\n        },\r\n        \"click .op-arrow-right\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            if( !LA$(event.target).hasClass(\"disable\") ){\r\n                page++;\r\n                pagenate(page);\r\n            }\r\n        }/*,\r\n        \"click .op-playlist-card\" : function(event, $current, template){\r\n            event.preventDefault();\r\n        }*/\r\n    };\r\n\r\n    return OvenTemplate($container, \"PlaylistPanel\", api.getConfig(), playlist, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default PlaylistPanel;\r\n","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport { naturalHms } from \"utils/strings\"\r\nimport LA$ from \"utils/likeA$\";\r\nimport {\r\n    CONTENT_TIME,\r\n    CONTENT_BUFFER,\r\n    AD_TIME,\r\n    PROVIDER_HLS\r\n} from \"api/constants\";\r\n\r\nconst ProgressBar = function ($container, api, isAd) {\r\n    const $root = LA$(api.getContainerElement());\r\n\r\n    if (api.getConfig().disableSeekUI) {\r\n        $container.addClass('op-progressbar-container-disabled');\r\n    }\r\n\r\n    let currentPlayingPosition = 0;\r\n    let currentPlayingPercentage = 0;\r\n    let currentLoadedPercentage = 0;\r\n\r\n    let mouseInside = false, mouseDown = false;\r\n    let panelManager = PanelManager();\r\n    let adDuration = 0;\r\n    let lastGridThumbnail = \"\";\r\n    let durationForCalc = 0;\r\n\r\n    let $progressBar = \"\",\r\n        $progressLoad = \"\",\r\n        $progressPlay = \"\",\r\n        $progressHover = \"\",\r\n        $knobContainer = \"\",\r\n        $knob = \"\",\r\n        knobWidth = 0,\r\n        $time = \"\",\r\n        $preview = \"\";\r\n\r\n    let isMobile = api.getBrowser().mobile;\r\n    let hlsLive = false;\r\n\r\n    if (api.getProvider().getName() === PROVIDER_HLS && api.getProvider().isLive()) {\r\n        hlsLive = true;\r\n    }\r\n\r\n    function positionElements(percentage) {\r\n\r\n        let progressBarWidth = $progressBar.width();\r\n        let position = progressBarWidth * percentage;\r\n\r\n        $progressPlay.css(\"width\", position + \"px\");\r\n        $progressHover.css(\"left\", position + \"px\");\r\n\r\n        let knobPostion = (progressBarWidth - knobWidth) * percentage;\r\n        $knobContainer.css(\"left\", knobPostion + \"px\");\r\n\r\n        currentPlayingPosition = position;\r\n        currentPlayingPercentage = percentage;\r\n    }\r\n\r\n    function drawHoverProgress(percentage) {\r\n\r\n        let progressBarWidth = $progressBar.width();\r\n        let hoverPosition = progressBarWidth * percentage;\r\n        $progressHover.css(\"width\", (percentage === 0 ? percentage : (hoverPosition - currentPlayingPosition)) + \"px\");\r\n\r\n    }\r\n\r\n    function drawLoadProgress(percentage) {\r\n\r\n        let progressBarWidth = $progressBar.width();\r\n        let loadPosition = progressBarWidth * percentage;\r\n\r\n        $progressLoad.css(\"width\", loadPosition + \"px\");\r\n        currentLoadedPercentage = percentage;\r\n    }\r\n\r\n    function calculatePercentage(event) {\r\n\r\n        let progressBarWidth = $progressBar.width();\r\n        let progressBarOffsetX = $progressBar.offset().left;\r\n\r\n        let pointerOffsetX = event.pageX;\r\n\r\n        if (event.touches) {\r\n\r\n            pointerOffsetX = (event.pageX || event.touches[0].clientX);\r\n        }\r\n\r\n        let percentage = (pointerOffsetX - progressBarOffsetX) / progressBarWidth;\r\n\r\n        if (percentage < 0) {\r\n            return 0;\r\n        }\r\n\r\n        if (percentage > 1) {\r\n            return 1;\r\n        }\r\n\r\n        return percentage;\r\n    }\r\n\r\n    function drawTimeIndicator(percentage, event) {\r\n        if (panelManager.size() > 0 || percentage === -1) {\r\n            $time.hide();\r\n            $preview.hide();\r\n            return;\r\n        } else {\r\n            $time.show();\r\n            $preview.show();\r\n        }\r\n\r\n        if (!hlsLive) {\r\n            let duration = api.getDuration();\r\n            let second = duration * percentage;\r\n\r\n            if (api.isTimecodeMode()) {\r\n                $time.text(naturalHms(second));\r\n            } else {\r\n                $time.text(Math.round(second * api.getFramerate()));\r\n            }\r\n        } else {\r\n            let duration = api.getDvrWindow();\r\n            let second = duration * (1 - percentage);\r\n            if (api.isTimecodeMode()) {\r\n                $time.text('- ' + naturalHms(second));\r\n            } else {\r\n                $time.text('- ' + Math.round(second * api.getFramerate()));\r\n            }\r\n        }\r\n\r\n        let timeElemWidth = $time.width();\r\n        let progressBarWidth = $progressBar.width();\r\n        let position = progressBarWidth * percentage;\r\n\r\n        let positionOfPixel = event.pageX - $progressBar.offset().left;\r\n\r\n        if (event.touches) {\r\n            positionOfPixel = (event.pageX || event.touches[0].clientX) - $progressBar.offset().left;\r\n        }\r\n\r\n\r\n        const calculateMagnetic = function (elementWidth) {\r\n            if (positionOfPixel < elementWidth / 2) {\r\n                return 0;\r\n            } else if (progressBarWidth - positionOfPixel < elementWidth / 2) {\r\n                return progressBarWidth - elementWidth;\r\n            } else {\r\n                return position - elementWidth / 2;\r\n            }\r\n        };\r\n\r\n        let magneticPosition = calculateMagnetic(timeElemWidth);\r\n        $time.css(\"left\", magneticPosition + \"px\");\r\n\r\n        if (api.getSources()[api.getCurrentSource()].gridThumbnail) {\r\n\r\n            let interval = api.getConfig().gridThumbnail.thumbnailInterval;\r\n            let width = api.getConfig().gridThumbnail.originalThumbnailWidth;\r\n            let height = api.getConfig().gridThumbnail.originalThumbnailHeight;\r\n            let columnCount = api.getConfig().gridThumbnail.columnCount;\r\n            let rowCount = api.getConfig().gridThumbnail.rowCount;\r\n            let scale = api.getConfig().gridThumbnail.resizeScale;\r\n\r\n            $preview.css('width', width * scale + 'px');\r\n            $preview.css('height', height * scale + 'px');\r\n            $preview.css('background-size', width * scale * columnCount + 'px ' + height * scale * rowCount + 'px');\r\n\r\n            let thumbnailNumber = Math.floor(second / interval);\r\n\r\n            let imageNumber = Math.floor(thumbnailNumber / (columnCount * rowCount));\r\n\r\n            let rowNumber = Math.floor((thumbnailNumber % (columnCount * rowCount)) / columnCount);\r\n            let columnNumber = (thumbnailNumber % (columnCount * rowCount)) % columnCount;\r\n\r\n            let left = -1 * columnNumber * width * scale;\r\n            let top = -1 * rowNumber * height * scale;\r\n\r\n            OvenPlayerConsole.log('Grid Thumbnail:', thumbnailNumber + ': ' + imageNumber + '(' + rowNumber + ', ' + columnNumber + ')');\r\n\r\n            let thumbnails = api.getSources()[api.getCurrentSource()].gridThumbnail;\r\n            let thumbnail = thumbnails[imageNumber];\r\n\r\n            if (lastGridThumbnail !== thumbnail) {\r\n\r\n                $preview.css('background-image', 'url(' + thumbnail + ')');\r\n                lastGridThumbnail = thumbnail;\r\n            }\r\n\r\n            $preview.css('background-position', 'left ' + left + 'px top ' + top + 'px');\r\n\r\n            let previewMagneticPosition = calculateMagnetic(width * scale);\r\n            $preview.css(\"left\", previewMagneticPosition + \"px\");\r\n        } else {\r\n\r\n            $preview.hide();\r\n        }\r\n    }\r\n\r\n    function seek(percentage) {\r\n\r\n        let time = (durationForCalc || 0) * percentage;\r\n\r\n        if (hlsLive) {\r\n            time = (durationForCalc - api.getDvrWindow()) + api.getDvrWindow() * percentage;\r\n        }\r\n\r\n        let sectionStart = api.getSources()[api.getCurrentSource()].sectionStart;\r\n\r\n        if (sectionStart && sectionStart > 0) {\r\n            time = time + sectionStart;\r\n        }\r\n\r\n        api.seek(time);\r\n    }\r\n\r\n\r\n    const onRendered = function ($current, template) {\r\n\r\n        $progressBar = $current;\r\n        $progressLoad = $current.find(\".op-load-progress\");\r\n        $progressPlay = $current.find(\".op-play-progress\");\r\n        $progressHover = $current.find(\".op-hover-progress\");\r\n        $knobContainer = $current.find(\".op-progressbar-knob-container\");\r\n        $knob = $current.find(\".op-progressbar-knob\");\r\n        knobWidth = $knob.width();\r\n        $time = $current.find(\".op-progressbar-time\");\r\n        $preview = $current.find(\".op-progressbar-preview\");\r\n\r\n        if (isAd) {\r\n            api.on(AD_TIME, function (data) {\r\n                if (data && data.duration && data.position) {\r\n                    positionElements(data.position / data.duration);\r\n                    adDuration = data.duration;\r\n                }\r\n            }, template);\r\n        } else {\r\n\r\n            api.on(CONTENT_TIME, function (data) {\r\n                if (data && data.duration && data.position) {\r\n\r\n                    durationForCalc = data.duration;\r\n                    let percentage = data.position / data.duration;\r\n\r\n                    if (hlsLive) {\r\n                        percentage = (api.getDvrWindow() - (data.duration - data.position)) / api.getDvrWindow();\r\n                    }\r\n\r\n                    positionElements(percentage);\r\n                }\r\n            }, template);\r\n\r\n            api.on(CONTENT_BUFFER, function (data) {\r\n                if (data && data.bufferPercent) {\r\n                    drawLoadProgress(data.bufferPercent / 100);\r\n                }\r\n            }, template);\r\n        }\r\n\r\n\r\n    };\r\n    const onDestroyed = function (template) {\r\n        if (isAd) {\r\n            api.off(AD_TIME, null, template);\r\n        } else {\r\n            api.off(CONTENT_TIME, null, template);\r\n            api.off(CONTENT_BUFFER, null, template);\r\n        }\r\n    };\r\n    let events = {\r\n        \"touchstart .op-progressbar\": function (event) {\r\n\r\n            if (isAd) {\r\n                return false;\r\n            }\r\n            mouseDown = true;\r\n            const percentage = calculatePercentage(event);\r\n\r\n            if (percentage === -1) {\r\n                return false;\r\n            }\r\n\r\n            positionElements(percentage);\r\n            drawHoverProgress(0);\r\n            seek(percentage);\r\n        },\r\n        \"touchmove .op-progressbar\": function (event) {\r\n\r\n            if (mouseDown) {\r\n                const percentage = calculatePercentage(event);\r\n\r\n                if (percentage === -1) {\r\n                    return false;\r\n                }\r\n\r\n                positionElements(percentage);\r\n                drawHoverProgress(0);\r\n                seek(percentage);\r\n                drawTimeIndicator(percentage, event);\r\n            }\r\n        },\r\n        \"touchend .op-progressbar\": function (event) {\r\n\r\n            if (mouseDown) {\r\n                mouseDown = false;\r\n            }\r\n\r\n            $root.removeClass(\"op-progressbar-hover\");\r\n            $time.hide();\r\n            $preview.hide();\r\n\r\n        },\r\n        \"mouseenter .op-progressbar\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n\r\n            if (!isMobile) {\r\n                if (!isAd) {\r\n                    mouseInside = true;\r\n                    $time.show();\r\n                }\r\n                $root.addClass(\"op-progressbar-hover\");\r\n            }\r\n        },\r\n        \"mouseleave .op-progressbar\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n\r\n            mouseInside = false;\r\n            mouseDown = false;\r\n\r\n            if (!mouseInside) {\r\n                $root.removeClass(\"op-progressbar-hover\");\r\n                $time.hide();\r\n                $preview.hide();\r\n            }\r\n            drawHoverProgress(0);\r\n        },\r\n        \"mousedown .op-progressbar\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n\r\n            if (isAd || isMobile) {\r\n                return false;\r\n            }\r\n\r\n            mouseDown = true;\r\n            const percentage = calculatePercentage(event);\r\n\r\n            if (percentage === -1) {\r\n                return false;\r\n            }\r\n\r\n            positionElements(percentage);\r\n            drawHoverProgress(0);\r\n            seek(percentage);\r\n        },\r\n        \"mousemove .op-progressbar\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n\r\n            if (!mouseDown && !isAd && !isMobile) {\r\n                const percentage = calculatePercentage(event);\r\n                drawHoverProgress(percentage);\r\n                drawTimeIndicator(percentage, event);\r\n            }\r\n\r\n            if (mouseDown && !isMobile) {\r\n                const percentage = calculatePercentage(event);\r\n\r\n                if (percentage === -1) {\r\n                    return false;\r\n                }\r\n                positionElements(percentage);\r\n                drawHoverProgress(0);\r\n                seek(percentage);\r\n                drawTimeIndicator(percentage, event);\r\n            }\r\n        },\r\n        \"mouseup .op-progressbar\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n\r\n            if (mouseDown && !isMobile) {\r\n                mouseDown = false;\r\n                $root.removeClass(\"op-progressbar-hover\");\r\n            }\r\n\r\n        }\r\n    };\r\n\r\n    if (api.getConfig().disableSeekUI) {\r\n        events = {}\r\n    }\r\n\r\n    return OvenTemplate($container, \"ProgressBar\", api.getConfig(), null, events, onRendered, onDestroyed);\r\n};\r\n\r\nexport default ProgressBar;\r\n","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport LA$ from \"utils/likeA$\";\r\nimport {\r\n    AD_CHANGED,\r\n    STATE_AD_COMPLETE,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    PLAYER_FULLSCREEN_CHANGED,\r\n    PLAYER_FULLSCREEN_REQUEST\r\n} from \"api/constants\";\r\n\r\n\r\n\r\nconst FullScreenButton = function($container, api){\r\n    const $root = LA$(api.getContainerElement());\r\n\r\n    let $iconExpand = \"\", $iconCompress = \"\", isFullScreen = false;\r\n\r\n    //ToDo : Template have to access Player Config.\r\n    let config = api.getConfig();\r\n\r\n    let browserInfo = api.getBrowser();\r\n    let isIos = browserInfo.os === \"iOS\"; // && browserInfo.browser === \"Safari\";\r\n    let isAndroid = browserInfo.os === \"Android\";\r\n    let fullscreenChagedEventName = \"\"; //For IE11\r\n    let isForceMode = false;    //This means to look like for fullscreen.\r\n\r\n    let fullScreenEventTypes = {\r\n        onfullscreenchange : \"fullscreenchange\",\r\n        onmozfullscreenchange : \"mozfullscreenchange\",\r\n        onwebkitfullscreenchange : \"webkitfullscreenchange\",\r\n        MSFullscreenChange : \"MSFullscreenChange\"\r\n    };\r\n\r\n\r\n    api.toggleFullScreen = toggleFullScreen;\r\n\r\n    function checkFullScreen(){\r\n\r\n        let fullScreen = false;\r\n\r\n        const fullScreenElement = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\r\n\r\n        if (fullScreenElement) {\r\n\r\n            if ($root.get() === fullScreenElement) {\r\n                fullScreen = true;\r\n            }\r\n        }\r\n\r\n        return fullScreen;\r\n\r\n    };\r\n\r\n    function resetFullscreenButtonState(){\r\n        OvenPlayerConsole.log(\"FULLSCREEN STATE : \", checkFullScreen());\r\n        if (checkFullScreen()) {\r\n            $root.addClass(\"op-fullscreen\");\r\n            isFullScreen = true;\r\n            $iconExpand.hide();\r\n            $iconCompress.show();\r\n\r\n        } else {\r\n            $root.removeClass(\"op-fullscreen\");\r\n            isFullScreen = false;\r\n            $iconExpand.show();\r\n            $iconCompress.hide();\r\n        }\r\n    };\r\n\r\n    function afterFullScreenChangedCallback(){\r\n        OvenPlayerConsole.log(\"afterFullScreenChangedCallback () \");\r\n        resetFullscreenButtonState();\r\n        api.trigger(PLAYER_FULLSCREEN_CHANGED, isFullScreen);\r\n    };\r\n\r\n    function forcedFakeFullscreenToggle(){\r\n        if(!isFullScreen){\r\n            $root.addClass(\"op-fullscreen\");\r\n            isFullScreen = true;\r\n            $iconExpand.hide();\r\n            $iconCompress.show();\r\n        }else{\r\n            $root.removeClass(\"op-fullscreen\");\r\n            isFullScreen = false;\r\n            $iconExpand.show();\r\n            $iconCompress.hide();\r\n        }\r\n        api.trigger(PLAYER_FULLSCREEN_CHANGED, isFullScreen);\r\n    };\r\n\r\n    function findFullScreenChangedEventName(){\r\n        let rootElement =  $root.get();\r\n        let eventName = \"\";\r\n        //ios don;t have a fullscreenchage event. go to hell.\r\n        //ios will checkFullScreen();\r\n\r\n        if (rootElement.requestFullscreen) {\r\n            eventName = fullScreenEventTypes.onfullscreenchange;\r\n        } else if (rootElement.webkitRequestFullScreen) {\r\n            eventName = fullScreenEventTypes.onwebkitfullscreenchange;\r\n        } else if (rootElement.mozRequestFullScreen) {\r\n            eventName = fullScreenEventTypes.onmozfullscreenchange;\r\n        } else if (rootElement.msRequestFullscreen) {\r\n            eventName = fullScreenEventTypes.MSFullscreenChange;\r\n        }else{\r\n            Object.keys(fullScreenEventTypes).forEach(event => {\r\n                if(document[event]){\r\n                    eventName = fullScreenEventTypes[event];\r\n                }\r\n            });\r\n        }\r\n        return eventName;\r\n\r\n        //This is original Code. IE11 doesn't follow rules. go to hell. IE11 returns \"fullscreenchange\". :(\r\n        /*\r\n         Object.keys(fullScreenEventTypes).forEach(eventName => {\r\n            if(document[eventName]){\r\n                console.log(eventName);\r\n                document.addEventListener(fullScreenEventTypes[eventName], afterFullScreenChangedCallback, false);\r\n            }\r\n         });\r\n         */\r\n    };\r\n\r\n    function requestFullScreen() {\r\n\r\n        let promise = \"\";\r\n        let rootElement =  $root.get();\r\n        let videoElements = $root.find(\"video\") ? $root.find(\"video\").get() : rootElement;\r\n        let videoElement, adVideoElement = null;\r\n        if(isIos){\r\n            //IOS ad makes two video elements. one is original video other is ad. i need kick ass to ios.\r\n            if(videoElements.length > 1){\r\n                for(let i = 0; i < videoElements.length; i ++){\r\n                    let videoTitle = videoElements[i].getAttribute(\"title\");\r\n                    if(videoTitle && videoTitle === \"Advertisement\"){\r\n                        adVideoElement = videoElements[i];\r\n                    }else{\r\n                        videoElement = videoElements[i];\r\n                    }\r\n                }\r\n            }else{\r\n                videoElement = videoElements;\r\n            }\r\n            if(adVideoElement && api.getState() === STATE_AD_LOADED || api.getState() === STATE_AD_PLAYING || api.getState() === STATE_AD_PAUSED){\r\n                if (adVideoElement.webkitEnterFullScreen){\r\n                    promise = adVideoElement.webkitEnterFullScreen();\r\n                    isFullScreen = true;\r\n                }\r\n            }else{\r\n                if (videoElement.webkitEnterFullScreen){\r\n                    promise = videoElement.webkitEnterFullScreen();\r\n                    isFullScreen = true;\r\n                }\r\n            }\r\n        }else{\r\n            if (rootElement.requestFullscreen) {\r\n                var fullScreenOption = api.getConfig().fullscreenOption;\r\n                promise = rootElement.requestFullscreen(fullScreenOption);\r\n            } else if (rootElement.webkitRequestFullScreen) {\r\n                promise = rootElement.webkitRequestFullScreen();\r\n            }  else if (rootElement.mozRequestFullScreen) {\r\n                promise = rootElement.mozRequestFullScreen();\r\n            } else if (rootElement.msRequestFullscreen) {\r\n                promise = rootElement.msRequestFullscreen();\r\n            }else {\r\n                // TODO(rock): warn not supported\r\n            }\r\n\r\n            //ToDo : Why occured this error?\r\n            //TypeError: Failed to execute 'requestFullscreen' on 'Element': Illegal invocation\r\n            /*\r\n             let sumOfRequestFullscreen = rootElement.requestFullscreen || rootElement.webkitRequestFullScreen ||\r\n             rootElement.mozRequestFullScreen || rootElement.msRequestFullscreen || videoElement.webkitEnterFullScreen;\r\n             if(sumOfRequestFullscreen){\r\n             promise = sumOfRequestFullscreen();\r\n             }\r\n             */\r\n        }\r\n\r\n        if(promise){\r\n\r\n            promise.then(function(){\r\n\r\n                isFullScreen = true;\r\n                isForceMode = false;\r\n                //config.setFullscreen(true);\r\n\r\n            }).catch(function(error){\r\n                //This means to look like for fullscreen.\r\n                isForceMode = true;\r\n                forcedFakeFullscreenToggle();\r\n\r\n\r\n                //wait for User Interaction. It runs Chrome only.\r\n                //Because \"fullscreen error\" occures Chrome.\r\n                //Firefox can't runs this routine because \"Element.requestFullscreen()이 짧게 실행되는 사용자 생성 이벤트 핸들러의 내부로부터 호출되지 않았기 때문에 전체화면 요청이 거부되었습니다.\".\r\n                /*if(error.message === \"fullscreen error\"){\r\n                    setTimeout(function(){\r\n                        requestFullScreen();\r\n                    },500);\r\n                }*/\r\n            });\r\n        }\r\n    };\r\n    function exitFullScreen() {\r\n\r\n        let promise = \"\";\r\n\r\n        if (document.exitFullscreen) {\r\n            promise = document.exitFullscreen();\r\n        } else if (document.webkitExitFullscreen) {\r\n            promise = document.webkitExitFullscreen();\r\n        } else if (document.webkitExitFullScreen) {\r\n            promise = document.webkitExitFullScreen();\r\n        } else if (document.mozCancelFullScreen) {\r\n            promise = document.mozCancelFullScreen();\r\n        } else if (document.msExitFullscreen) {\r\n            promise = document.msExitFullscreen();\r\n        } else {\r\n            // TODO(rock): warn not supported\r\n        }\r\n\r\n        if(promise){\r\n\r\n            promise.then(function(){\r\n\r\n                isFullScreen = false;\r\n\r\n            }).catch(function(error){\r\n\r\n            });\r\n        }\r\n\r\n    }\r\n    function toggleFullScreen() {\r\n\r\n        if (!isFullScreen || (isIos && !checkFullScreen())) {\r\n            requestFullScreen();\r\n        } else {\r\n            if(isForceMode){\r\n                forcedFakeFullscreenToggle();\r\n            }else{\r\n                exitFullScreen();\r\n            }\r\n        }\r\n    };\r\n\r\n    const onRendered = function($current, template){\r\n        $iconExpand = $current.find(\".op-fullscreen-expand\");\r\n        $iconCompress = $current.find(\".op-fullscreen-compress\");\r\n\r\n        resetFullscreenButtonState();\r\n\r\n        fullscreenChagedEventName = findFullScreenChangedEventName();\r\n        if(fullscreenChagedEventName){\r\n            document.addEventListener(fullscreenChagedEventName, afterFullScreenChangedCallback, false);\r\n        }\r\n\r\n        api.on(AD_CHANGED, function(ad){\r\n            //force close for ios midroll\r\n            let videoElements = $root.find(\"video\") ? $root.find(\"video\").get() : $root.get();\r\n            let videoElement, adVideoElement = null;\r\n\r\n            if(ad.isLinear && isIos && isFullScreen ){\r\n                if(videoElements.length > 1){\r\n                    for(let i = 0; i < videoElements.length; i ++){\r\n                        let videoTitle = videoElements[i].getAttribute(\"title\");\r\n                        if(videoTitle && videoTitle === \"Advertisement\"){\r\n                            adVideoElement = videoElements[i];\r\n                        }else{\r\n                            videoElement = videoElements[i];\r\n                        }\r\n                    }\r\n                }else{\r\n                    videoElement = videoElements;\r\n                }\r\n                if(videoElement && videoElement.webkitExitFullscreen){\r\n                    videoElement.webkitExitFullscreen();\r\n                    isFullScreen = false;\r\n                }\r\n            }\r\n        }, template);\r\n    };\r\n\r\n\r\n    const onDestroyed = function(template){\r\n\r\n        if (api.getConfig() && !api.getConfig().expandFullScreenUI) {\r\n\r\n            if(fullscreenChagedEventName){\r\n                document.removeEventListener(fullscreenChagedEventName, afterFullScreenChangedCallback);\r\n            }\r\n        }\r\n\r\n        api.off(AD_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-fullscreen-button\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            api.trigger(PLAYER_FULLSCREEN_REQUEST, null);\r\n            toggleFullScreen();\r\n        }\r\n    };\r\n    return OvenTemplate($container, \"FullScreenButton\", api.getConfig(), null, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default FullScreenButton;\r\n","/**\r\n * Created by hoho on 2018. 7. 25..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport { naturalHms } from \"utils/strings\";\r\nimport {\r\n    CONTENT_TIME,\r\n    CONTENT_TIME_MODE_CHANGED,\r\n    PROVIDER_HLS\r\n} from \"api/constants\";\r\n\r\nconst TimeDisplay = function ($container, api, data) {\r\n\r\n    let $position = \"\", $duration = \"\", $liveBadge = \"\", $liveText = \"\";\r\n    let hlsLive = false;\r\n\r\n    function convertHumanizeTime(time) {\r\n        return naturalHms(time);\r\n    };\r\n\r\n    const onRendered = function ($current, template) {\r\n        let isTimecode = api.isTimecodeMode();\r\n        $position = $current.find(\".op-time-current\");\r\n        $duration = $current.find(\".op-time-duration\");\r\n        $liveBadge = $current.find(\".op-live-badge\");\r\n        $liveText = $current.find(\".op-live-text\");\r\n\r\n        if (api.getProviderName() === PROVIDER_HLS && api.getProvider().isLive()) {\r\n            hlsLive = true;\r\n        }\r\n\r\n        if (data.duration !== Infinity) {\r\n\r\n            if (isTimecode) {\r\n                $duration.text(convertHumanizeTime(data.duration));\r\n            } else {\r\n                $duration.text(Math.round(data.duration * api.getFramerate()) + \" (\" + api.getFramerate() + \"fps)\");\r\n            }\r\n\r\n            api.on(CONTENT_TIME_MODE_CHANGED, function (isTimecodeMode) {\r\n                isTimecode = isTimecodeMode;\r\n                if (isTimecode) {\r\n                    $duration.text(convertHumanizeTime(data.duration));\r\n                } else {\r\n                    $duration.text(Math.round(data.duration * api.getFramerate()) + \" (\" + api.getFramerate() + \"fps)\");\r\n                }\r\n            }, template);\r\n\r\n            api.on(CONTENT_TIME, function (data) {\r\n                if (isTimecode) {\r\n                    $position.text(convertHumanizeTime(data.position));\r\n                } else {\r\n                    $position.text(Math.round(data.position * api.getFramerate()));\r\n                }\r\n            }, template);\r\n        } else {\r\n            if (hlsLive) {\r\n                api.on(CONTENT_TIME, function (data) {\r\n                    if (data.duration - data.position > 3) {\r\n                        $liveBadge.addClass('op-live-badge-delayed');\r\n                    } else {\r\n                        $liveBadge.removeClass('op-live-badge-delayed');\r\n                    }\r\n\r\n                }, template);\r\n            }\r\n        }\r\n\r\n    };\r\n    const onDestroyed = function (template) {\r\n        api.off(CONTENT_TIME_MODE_CHANGED, null, template);\r\n        api.off(CONTENT_TIME, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-live-text\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n            api.seek(Number.MAX_SAFE_INTEGER);\r\n        },\r\n    };\r\n\r\n    return OvenTemplate($container, \"TimeDisplay\", api.getConfig(), data, events, onRendered, onDestroyed);\r\n};\r\n\r\n\r\nexport default TimeDisplay;\r\n","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport {\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED,\r\n    STATE_ERROR,\r\n    PLAYER_STATE,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n} from \"api/constants\";\r\n\r\nconst PlayButton = function ($container, api) {\r\n    let $iconPlay = \"\",\r\n        $iconPause = \"\",\r\n        $iconReplay = \"\",\r\n        $buttonBack = \"\",\r\n        $buttonForward = \"\",\r\n        $textBack = \"\",\r\n        $textForward = \"\";\r\n\r\n\r\n\r\n    function setButtonState(state){\r\n        $iconPlay.hide();\r\n        $iconPause.hide();\r\n        $iconReplay.hide();\r\n        if(state === STATE_PLAYING || state === STATE_AD_PLAYING || state === STATE_LOADING || state === STATE_STALLED){\r\n            $iconPause.show();\r\n        }else if(state === STATE_PAUSED || state === STATE_AD_PAUSED){\r\n            $iconPlay.show();\r\n        }else if(state === STATE_COMPLETE){\r\n            $iconReplay.show();\r\n        }else{\r\n            $iconPlay.show();\r\n        }\r\n    };\r\n\r\n\r\n\r\n    const onRendered = function($current, template){\r\n        $iconPlay = $current.find(\".op-play-button .op-play\");\r\n        $iconPause = $current.find(\".op-play-button .op-pause\");\r\n        $iconReplay = $current.find(\".op-play-button .op-replay\");\r\n        $buttonBack = $current.find('.op-seek-button-back');\r\n        $buttonForward = $current.find('.op-seek-button-forward');\r\n        $textBack = $current.find('.op-seek-back-text');\r\n        $textForward = $current.find('.op-seek-forward-text');\r\n\r\n        api.on(PLAYER_STATE, function(data){\r\n            if(data && data.newstate){\r\n                setButtonState(data.newstate);\r\n            }\r\n        }, template);\r\n\r\n        if (!api.getConfig().showSeekControl) {\r\n            $buttonBack.hide();\r\n            $buttonForward.hide();\r\n        }\r\n\r\n        let seekInterval = api.getConfig().seekControlInterval;\r\n\r\n        if (seekInterval) {\r\n\r\n            $textBack.text(seekInterval);\r\n            $textForward.text(seekInterval);\r\n        } else {\r\n\r\n            $textBack.text(10);\r\n            $textForward.text(10);\r\n        }\r\n    };\r\n    const onDestroyed = function(template){\r\n        api.off(PLAYER_STATE, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-play-button\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            let currentState = api.getState();\r\n            let playlist = api.getPlaylist();\r\n            let currentPlaylistIndex = api.getCurrentPlaylist();\r\n\r\n            if (currentState === STATE_IDLE) {\r\n                api.play();\r\n            } else if (currentState === STATE_PLAYING || currentState === STATE_AD_PLAYING) {\r\n                api.pause();\r\n            } else if (currentState === STATE_LOADING || currentState === STATE_STALLED) {\r\n                api.stop();\r\n            } else if (currentState === STATE_PAUSED || currentState === STATE_AD_PAUSED) {\r\n                api.play();\r\n            } else if (currentState === STATE_ERROR) {\r\n                api.setCurrentSource(api.getCurrentSource());\r\n            } else if (currentState === STATE_COMPLETE) {\r\n                if(playlist.length === (currentPlaylistIndex+1)){\r\n                    api.seek(0);\r\n                    api.play();\r\n                }\r\n            }\r\n        },\r\n        \"click .op-seek-button-back\" : function(event, $current, template) {\r\n\r\n            let seekInterval = api.getConfig().seekControlInterval;\r\n\r\n            if (!seekInterval) {\r\n                seekInterval = 10;\r\n            }\r\n\r\n            let time = api.getPosition() - seekInterval;\r\n\r\n            if (time < 0) {\r\n                time = 0;\r\n            }\r\n\r\n            api.seek(time);\r\n        },\r\n        \"click .op-seek-button-forward\" : function(event, $current, template) {\r\n\r\n            let seekInterval = api.getConfig().seekControlInterval;\r\n\r\n            if (!seekInterval) {\r\n                seekInterval = 10;\r\n            }\r\n\r\n            let time = api.getPosition() + seekInterval;\r\n\r\n            if (time > api.getDuration()) {\r\n                time = api.getDuration();\r\n            }\r\n\r\n            api.seek(time);\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"PlayButton\", api.getConfig(), null, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default PlayButton;\r\n","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport {\r\n    READY,\r\n    CONTENT_VOLUME,\r\n    CONTENT_MUTE\r\n} from \"api/constants\";\r\nimport {PLAYER_PLAY} from \"../../../api/constants\";\r\n\r\nconst VolumeButton = function($container, api){\r\n\r\n    let $sliderContainer = \"\",\r\n        $slider = \"\",\r\n        $sliderHandle = \"\",\r\n        $sliderValue = \"\",\r\n        $volumeIconBig = \"\",\r\n        $volumeIconSmall = \"\",\r\n        $volumeIconMute = \"\";\r\n    let mouseDown = false;\r\n    let sliderWidth = 70,  handleWidth = 12, minRange = 0, maxRange = 0;\r\n\r\n    let isMobile = api.getBrowser().os === \"iOS\" || api.getBrowser().os === \"Android\";\r\n\r\n\r\n    function setVolumeIcon(percentage) {\r\n        $volumeIconBig.hide();\r\n        $volumeIconSmall.hide();\r\n        $volumeIconMute.hide();\r\n\r\n        if (percentage >= 70) {\r\n            $volumeIconBig.show();\r\n        } else if (percentage < 70 && percentage > 0) {\r\n            $volumeIconSmall.show();\r\n        } else if (percentage == 0) {\r\n            $volumeIconMute.show();\r\n        }else{\r\n            $volumeIconBig.show();\r\n        }\r\n    }\r\n\r\n    function setVolumeUI(percentage) {\r\n        if (api.getMute()) {\r\n            percentage = 0;\r\n        }\r\n\r\n        setVolumeIcon(percentage);\r\n\r\n        const handlePosition = maxRange * percentage / 100;\r\n\r\n\r\n        $sliderHandle.css(\"left\", handlePosition+ \"px\");\r\n        $sliderValue.css(\"width\", handlePosition+ \"px\");\r\n    }\r\n\r\n    function calculatePercentage(event) {\r\n        const relativeX = (event.pageX || event.touches[0].clientX) - $slider.offset().left;\r\n        let percentage = relativeX / sliderWidth * 100;\r\n\r\n        if (percentage < 0) {\r\n            percentage = 0;\r\n        }\r\n\r\n        if (percentage > 100) {\r\n            percentage = 100;\r\n        }\r\n        return percentage;\r\n    }\r\n\r\n\r\n    const onRendered = function($current, template){\r\n\r\n        $sliderContainer = $current.find(\".op-volume-slider-container\");\r\n\r\n        if (api.getBrowser().mobile) {\r\n            $sliderContainer.hide();\r\n        }\r\n\r\n        $slider = $current.find(\".op-volume-silder\");\r\n        $sliderHandle = $current.find(\".op-volume-slider-handle\");\r\n        $sliderValue = $current.find(\".op-volume-slider-value\");\r\n\r\n        $volumeIconBig = $current.find( \".op-volume-max\");\r\n        $volumeIconSmall = $current.find(\".op-volume-small\");\r\n        $volumeIconMute = $current.find(\".op-volume-mute\");\r\n\r\n        //ToDo : Can't read width.\r\n        //sliderWidth = $sliderContainer.width();\r\n        //handleWidth = $sliderHandle.width();\r\n\r\n        maxRange = sliderWidth - (handleWidth/2);\r\n\r\n        $sliderHandle.css(\"left\", maxRange+ \"px\");\r\n\r\n        setVolumeUI(api.getVolume());\r\n\r\n        api.on(READY, function() {\r\n            setVolumeUI(api.getVolume());\r\n        }, template);\r\n        api.on(CONTENT_VOLUME, function(data) {\r\n\r\n            setVolumeUI(data.volume);\r\n\r\n        }, template);\r\n        api.on(CONTENT_MUTE, function(data) {\r\n            if (data.mute) {\r\n                setVolumeUI(0);\r\n            } else {\r\n                setVolumeUI(api.getVolume());\r\n            }\r\n        }, template);\r\n\r\n    };\r\n    const onDestroyed = function(template){\r\n        api.off(READY, null, template);\r\n        api.off(CONTENT_VOLUME, null, template);\r\n        api.off(CONTENT_MUTE, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-volume-button\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            if(isMobile){\r\n\r\n            }else{\r\n                if (api.getVolume() === 0) {\r\n                    api.setMute(false);\r\n                    api.setVolume(100);\r\n                } else {\r\n                    api.setMute();\r\n                }\r\n            }\r\n\r\n        },\r\n        \"mouseenter .op-volume-button\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            if(!isMobile){\r\n                $sliderContainer.addClass(\"active\");\r\n            }\r\n        },\r\n        \"mouseleave .op-volume-silder\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            mouseDown = false;\r\n        },\r\n        \"mousedown .op-volume-silder\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            mouseDown = true;\r\n            api.setMute(false);\r\n            api.setVolume(calculatePercentage(event));\r\n        },\r\n        \"mouseup .op-volume-silder\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            mouseDown = false;\r\n        },\r\n        \"mousemove .op-volume-silder\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            if (!mouseDown) {\r\n                return false;\r\n            }\r\n\r\n            api.setVolume(calculatePercentage(event));\r\n        },\r\n        // \"touchstart .op-volume-slider-handle\" : function(event){\r\n        //     mouseDown = true;\r\n        //\r\n        // },\r\n        // \"touchmove .op-volume-slider-handle\" : function(event){\r\n        //     if(mouseDown){\r\n        //\r\n        //         api.setMute(false);\r\n        //         api.setVolume(calculatePercentage(event));\r\n        //     }\r\n        // },\r\n        // \"touchend .op-volume-slider-handle\" : function(event){\r\n        //\r\n        //     if(mouseDown){\r\n        //         mouseDown = false;\r\n        //     }\r\n        // },\r\n        \"touchstart .op-volume-button\" : function(event){\r\n            if(isMobile){\r\n                if (api.getMute()) {\r\n                    api.setMute(false);\r\n                } else {\r\n                    api.setMute(true);\r\n                }\r\n            }\r\n        }\r\n    };\r\n    let that = OvenTemplate($container, \"VolumeButton\", api.getConfig(), null, events, onRendered, onDestroyed);\r\n    that.setMouseDown = (state) => {\r\n        mouseDown = state;\r\n    };\r\n    return that;\r\n\r\n    /*or\r\n\r\n    return Object.assign(OvenTemplate($container, \"VolumeButton\", api.getConfig(), null, events, onRendered, onDestroyed), {\r\n        setMouseDown: function (state) {\r\n            mouseDown = state;\r\n        }\r\n    });*/\r\n};\r\n\r\nexport default VolumeButton;\r\n","\n      import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./ovenplayer.less\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./ovenplayer.less\";\n       export default content && content.locals ? content.locals : undefined;\n","import {version} from 'version'\r\nimport OvenPlayerSDK from './ovenplayer.sdk'\r\nimport {checkAndGetContainerElement} from 'utils/validator'\r\nimport View from './view/view';\r\n\r\nfunction ovenPlayerFactory() {\r\n\r\n    const OvenPlayer = {};\r\n\r\n    Object.assign(OvenPlayer, OvenPlayerSDK);\r\n\r\n    OvenPlayer.create = function (container, options) {\r\n\r\n        console.log(\"[OvenPlayer] v.\"+ version);\r\n\r\n        let containerElement = checkAndGetContainerElement(container);\r\n\r\n        let player = View(containerElement);\r\n\r\n        const playerInstance = OvenPlayerSDK.create(player.getMediaElementContainer(), options);\r\n\r\n        player.setApi(playerInstance);\r\n\r\n        return playerInstance;\r\n    };\r\n\r\n    return OvenPlayer;\r\n}\r\n\r\nexport default ovenPlayerFactory()","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport Helpers from 'view/components/helpers/main';\r\nimport Controls from 'view/components/controls/main';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport ContextPanel from 'view/components/helpers/contextPanel';\r\nimport LA$ from 'utils/likeA$';\r\nimport ResizeSensor from \"utils/resize-sensor\";\r\nimport {\r\n    READY,\r\n    DESTROY,\r\n    PLAYER_RESIZED,\r\n    PLAYER_PLAY,\r\n    STATE_IDLE,\r\n    STATE_AD_PLAYING,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED,\r\n    STATE_ERROR,\r\n    CONTENT_META,\r\n    PLAYER_STATE,\r\n    PLAYER_CLICKED,\r\n    ERROR\r\n} from \"api/constants\";\r\n\r\nimport '../../stylesheet/ovenplayer.less';\r\n\r\nconst View = function($container){\r\n    let viewTemplate = \"\", controls = \"\", helper = \"\", $playerRoot, contextPanel = \"\", api = null, autoHideTimer = \"\", playerState = STATE_IDLE;\r\n    let isShiftPressed = false;\r\n    let panelManager = PanelManager();\r\n    let screenSize = \"\";\r\n    let currentPlayerSize = \"\";\r\n\r\n    let that = {};\r\n\r\n    //Member Functions\r\n    function setHide(hide, autoHide) {\r\n        if (autoHideTimer) {\r\n            clearTimeout(autoHideTimer);\r\n            autoHideTimer = null;\r\n        }\r\n\r\n        if (hide) {\r\n            if(panelManager.size() > 0){\r\n                return false;\r\n            }\r\n            $playerRoot.addClass(\"op-autohide\");\r\n        } else {\r\n            $playerRoot.removeClass(\"op-autohide\");\r\n\r\n            if (autoHide) {\r\n                autoHideTimer = setTimeout(function() {\r\n                    if(panelManager.size()> 0){\r\n                        return false;\r\n                    }\r\n                    $playerRoot.addClass(\"op-autohide\");\r\n                }, 3000);\r\n            }\r\n        }\r\n    }\r\n    function togglePlayPause() {\r\n        const currentState = playerState;\r\n\r\n        if (currentState === STATE_IDLE || currentState === STATE_PAUSED || currentState === STATE_COMPLETE) {\r\n\r\n            if (currentState === STATE_COMPLETE) {\r\n                api.seek(0);\r\n            }\r\n\r\n            api.play();\r\n        }else if(currentState === STATE_PLAYING){\r\n            api.pause();\r\n        }\r\n    }\r\n    function seek(seconds, isRewind) {\r\n\r\n        const duration = api.getDuration();\r\n        const currentPosition = api.getPosition();\r\n        let position = 0;\r\n\r\n        if(isRewind){\r\n            position = Math.max(currentPosition - seconds, 0);\r\n        }else{\r\n            position = Math.min(currentPosition + seconds, duration);\r\n        }\r\n\r\n        api.seek(position);\r\n    }\r\n    function volume(isUp){\r\n        const currentVolumn = api.getVolume();\r\n        let newVolume = 0;\r\n        if(isUp){\r\n            newVolume =  Math.min(currentVolumn + 5, 100);\r\n        }else{\r\n            newVolume = Math.max(currentVolumn - 5, 0);\r\n        }\r\n        api.setVolume(newVolume);\r\n    }\r\n    function createContextPanel(pageX, pageY){\r\n        if(contextPanel){\r\n            contextPanel.destroy();\r\n            contextPanel = null;\r\n        }\r\n        contextPanel = ContextPanel($playerRoot, api, {pageX : pageX, pageY : pageY});\r\n    }\r\n\r\n    function calcPlayerWidth(){\r\n        let playerWidth = $playerRoot.width();\r\n        if(playerWidth < 576){\r\n            screenSize = \"xsmall\";\r\n            $playerRoot.addClass(\"xsmall\");\r\n\r\n            if (playerWidth < 490) {\r\n                $playerRoot.addClass(\"xxsmall\");\r\n            }\r\n\r\n        }else if(playerWidth < 768){\r\n            screenSize = \"small\";\r\n            $playerRoot.addClass(\"small\");\r\n        }else if(playerWidth < 992){\r\n            screenSize = \"medium\";\r\n            $playerRoot.addClass(\"medium\");\r\n        }else{\r\n            screenSize = \"large\";\r\n            $playerRoot.addClass(\"large\");\r\n        }\r\n    }\r\n\r\n    const onRendered = function($current, template){\r\n        $playerRoot = $current;\r\n        viewTemplate = template;\r\n        calcPlayerWidth();\r\n        currentPlayerSize = screenSize;\r\n        new ResizeSensor($playerRoot.get(), function() {\r\n\r\n            $playerRoot.removeClass(\"large\");\r\n            $playerRoot.removeClass(\"medium\");\r\n            $playerRoot.removeClass(\"small\");\r\n            $playerRoot.removeClass(\"xsmall\");\r\n            $playerRoot.removeClass(\"xxsmall\");\r\n            calcPlayerWidth();\r\n            if(screenSize !== currentPlayerSize){\r\n                currentPlayerSize = screenSize;\r\n                if(api){\r\n                    api.trigger(PLAYER_RESIZED, currentPlayerSize);\r\n                }\r\n            }\r\n        });\r\n\r\n    };\r\n    const onDestroyed = function(){\r\n        if(helper){\r\n            helper.destroy();\r\n            helper = null;\r\n        }\r\n        if(controls){\r\n            controls.destroy();\r\n            controls = null;\r\n        }\r\n    };\r\n    const events = {\r\n        \"click .ovenplayer\" : function(event, $current, template){\r\n\r\n            if(api){\r\n                api.trigger(PLAYER_CLICKED, event);\r\n            }\r\n\r\n            if(contextPanel){\r\n                event.preventDefault();\r\n                contextPanel.destroy();\r\n                contextPanel = null;\r\n                return false;\r\n            }\r\n\r\n            if(!(LA$(event.target).closest(\".op-controls-container\") || LA$(event.target).closest(\".op-setting-panel\")  )){\r\n\r\n                if(panelManager.size() > 0){\r\n                    event.preventDefault();\r\n                    panelManager.clear();\r\n                    return false;\r\n                }\r\n\r\n                if (api.getDuration() !== Infinity && !api.getBrowser().mobile) {\r\n                    togglePlayPause();\r\n                }\r\n\r\n            }\r\n        },\r\n        \"dblclick .ovenplayer\" : function(event, $current, template){\r\n\r\n            if (api) {\r\n\r\n                if (api.getConfig().expandFullScreenUI && api.toggleFullScreen) {\r\n\r\n                    if(!(LA$(event.target).closest(\".op-controls-container\") || LA$(event.target).closest(\".op-setting-panel\") )){\r\n                        api.toggleFullScreen();\r\n                    }\r\n                }\r\n            }\r\n        },\r\n        //For iOS safari\r\n        \"touchstart .ovenplayer\" : function(event, $current, template){\r\n            if (playerState === STATE_PLAYING || playerState === STATE_IDLE  || playerState === STATE_LOADING || (playerState === STATE_AD_PLAYING && screenSize === \"xsmall\")) {\r\n                setHide(false, true);\r\n            } else {\r\n                setHide(false);\r\n            }\r\n        },\r\n        \"mouseenter .ovenplayer\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            //small screen with STATE_AD_PLAYING setHide too. becuase mobile hide ad ui.\r\n            if (playerState === STATE_PLAYING || playerState === STATE_IDLE || playerState === STATE_LOADING || (playerState === STATE_AD_PLAYING && screenSize === \"xsmall\")) {\r\n                setHide(false, true);\r\n            } else {\r\n                setHide(false);\r\n            }\r\n        },\r\n        \"mousemove .ovenplayer\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            if (playerState === STATE_PLAYING || playerState === STATE_IDLE || playerState === STATE_LOADING || (playerState === STATE_AD_PLAYING && screenSize === \"xsmall\")) {\r\n                setHide(false, true);\r\n            } else {\r\n                setHide(false);\r\n            }\r\n        },\r\n        \"mouseleave .ovenplayer\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            if(playerState === STATE_PLAYING  || playerState === STATE_IDLE || playerState === STATE_LOADING || (playerState === STATE_AD_PLAYING && screenSize === \"xsmall\")){\r\n                setHide(true);\r\n            }\r\n        },\r\n        \"keydown .ovenplayer\" : function(event, $current, template){\r\n            let frameMode = api.getFramerate();\r\n            switch(event.keyCode){\r\n                case 16 :   //shift\r\n                    event.preventDefault();\r\n                    isShiftPressed = true;\r\n                    break;\r\n                case 32 :   //space\r\n                    event.preventDefault();\r\n                    togglePlayPause();\r\n                    break;\r\n                case 37 : //arrow left\r\n                    event.preventDefault();\r\n\r\n                    if (!api.getConfig().disableSeekUI) {\r\n                        if(isShiftPressed && frameMode){\r\n                            api.seekFrame(-1);\r\n                        }else{\r\n                            seek(5, true);\r\n                        }\r\n                    }\r\n                    break;\r\n                case 39 : //arrow right\r\n                    event.preventDefault();\r\n\r\n                    if (!api.getConfig().disableSeekUI) {\r\n\r\n                        if(isShiftPressed && frameMode){\r\n                            api.seekFrame(1);\r\n                        }else{\r\n                            seek(5, false);\r\n                        }\r\n                    }\r\n\r\n                    break;\r\n                case 38 : //arrow up\r\n                    event.preventDefault();\r\n                    volume(true);\r\n                    break;\r\n                case 40 : //arrow up\r\n                    event.preventDefault();\r\n                    volume(false);\r\n                    break;\r\n            }\r\n\r\n        },\r\n        \"keyup .ovenplayer\" : function(event, $current, template){\r\n            switch(event.keyCode) {\r\n                case 16 :   //shift\r\n                    event.preventDefault();\r\n                    isShiftPressed = false;\r\n                    break;\r\n            }\r\n\r\n        },\r\n        \"contextmenu .ovenplayer\" : function(event, $current, template){\r\n            event.stopPropagation();\r\n            if(!LA$(event.currentTarget).find(\"object\")){\r\n                event.preventDefault();\r\n                createContextPanel(event.pageX, event.pageY);\r\n                return false;\r\n            }\r\n        }\r\n    };\r\n\r\n    that = OvenTemplate($container, \"View\", null, $container.id, events, onRendered, onDestroyed, true);\r\n\r\n    that.getMediaElementContainer = () => {\r\n        return $playerRoot.find(\".op-media-element-container\").get();\r\n    };\r\n\r\n    that.setApi = (playerInstance) => {\r\n        api = playerInstance;\r\n\r\n        api.getContainerElement = () => {\r\n            return $playerRoot.get();\r\n        };\r\n\r\n        api.getContainerId = () => {\r\n            return $playerRoot.get().id;\r\n        };\r\n\r\n        api.on(READY, function(data) {\r\n\r\n            if(!controls){\r\n                controls = Controls($playerRoot.find(\".op-ui\"), playerInstance);\r\n            }\r\n\r\n            if (!showControlBar) {\r\n                $playerRoot.addClass(\"op-no-controls\");\r\n            }\r\n\r\n        });\r\n\r\n        api.on(ERROR, function(error) {\r\n            if(api){\r\n                let sources = api.getSources()||[];\r\n                if(controls && (sources.length <= 1)){\r\n                    // controls.destroy();\r\n                    // controls = null;\r\n                }\r\n            }\r\n\r\n        });\r\n\r\n        api.on(DESTROY, function(data) {\r\n            viewTemplate.destroy();\r\n        });\r\n\r\n        api.on(PLAYER_PLAY, function (data) {\r\n            if(!controls && showControlBar){\r\n                controls = Controls($playerRoot.find(\".op-ui\"), playerInstance);\r\n            }\r\n        });\r\n\r\n        api.on(PLAYER_STATE, function(data){\r\n            if(data && data.newstate){\r\n                playerState = data.newstate;\r\n                if(data.newstate === STATE_PLAYING || (data.newstate === STATE_AD_PLAYING && screenSize === \"xsmall\")){\r\n                    setHide(false, true);\r\n                }else{\r\n                    setHide(false);\r\n                }\r\n            }\r\n        });\r\n\r\n        let showControlBar = api.getConfig() && api.getConfig().controls;\r\n\r\n        helper = Helpers($playerRoot.find(\".op-ui\"), playerInstance);\r\n        controls = Controls($playerRoot.find(\".op-ui\"), playerInstance);\r\n\r\n        let aspectRatio = api.getConfig().aspectRatio;\r\n\r\n        if (aspectRatio) {\r\n\r\n            if (aspectRatio.split(':').length === 2) {\r\n\r\n                let width = aspectRatio.split(':')[0] * 1;\r\n                let height = aspectRatio.split(':')[1] * 1;\r\n\r\n                let ratio = height / width * 100;\r\n\r\n                $playerRoot.find('.op-ratio').css('padding-bottom', ratio + '%');\r\n            }\r\n        }\r\n\r\n        api.showControls = function (show) {\r\n            if (show) {\r\n                $playerRoot.removeClass(\"op-no-controls\");\r\n                setHide(false, true);\r\n            } else {\r\n                $playerRoot.addClass(\"op-no-controls\");\r\n            }\r\n        };\r\n    };\r\n\r\n\r\n    return that;\r\n};\r\n\r\n\r\n\r\nexport default View;\r\n","/**\r\n * Created by hoho on 2018. 8. 1..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport LA$ from 'utils/likeA$';\r\n\r\nconst ContextPanel = function($container, api, position){\r\n    const $root = LA$(api.getContainerElement());\r\n\r\n    const onRendered = function($current, template){\r\n        const panelWidth = $current.width();\r\n        const panelHeight = $current.height();\r\n\r\n        const x = Math.min(position.pageX - $root.offset().left, $root.width() - panelWidth);\r\n        const y = Math.min(position.pageY - $root.offset().top, $root.height() - panelHeight);\r\n\r\n        $current.css(\"left\" , x + \"px\");\r\n        $current.css(\"top\" , y + \"px\");\r\n    };\r\n    const onDestroyed = function(){\r\n        //Do nothing.\r\n    };\r\n    const events = {\r\n        \"click .op-context-item\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            window.open(\r\n                'https://github.com/AirenSoft/OvenPlayer',\r\n                '_blank'\r\n            );\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"ContextPanel\", api.getConfig(), position, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default ContextPanel;\r\n","/*\r\n* Copyright 2018 Joshua Bell\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n* */\r\n\r\n(function(global) {\r\n    'use strict';\r\n    if (!('window' in global && 'document' in global))\r\n        return;\r\n\r\n    //----------------------------------------------------------------------\r\n    //\r\n    // DOM\r\n    // https://dom.spec.whatwg.org/\r\n    //\r\n    //----------------------------------------------------------------------\r\n\r\n    // Document.querySelectorAll method\r\n    // http://ajaxian.com/archives/creating-a-queryselector-for-ie-that-runs-at-native-speed\r\n    // Needed for: IE7-\r\n    if (!document.querySelectorAll) {\r\n        document.querySelectorAll = function(selectors) {\r\n            var style = document.createElement('style'), elements = [], element;\r\n            document.documentElement.firstChild.appendChild(style);\r\n            document._qsa = [];\r\n\r\n            style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}';\r\n            window.scrollBy(0, 0);\r\n            style.parentNode.removeChild(style);\r\n\r\n            while (document._qsa.length) {\r\n                element = document._qsa.shift();\r\n                element.style.removeAttribute('x-qsa');\r\n                elements.push(element);\r\n            }\r\n            document._qsa = null;\r\n            return elements;\r\n        };\r\n    }\r\n\r\n    // Document.querySelector method\r\n    // Needed for: IE7-\r\n    if (!document.querySelector) {\r\n        document.querySelector = function(selectors) {\r\n            var elements = document.querySelectorAll(selectors);\r\n            return (elements.length) ? elements[0] : null;\r\n        };\r\n    }\r\n\r\n    // Document.getElementsByClassName method\r\n    // Needed for: IE8-\r\n    if (!document.getElementsByClassName) {\r\n        document.getElementsByClassName = function(classNames) {\r\n            classNames = String(classNames).replace(/^|\\s+/g, '.');\r\n            return document.querySelectorAll(classNames);\r\n        };\r\n    }\r\n\r\n    // Node interface constants\r\n    // Needed for: IE8-\r\n    global.Node = global.Node || function() { throw TypeError(\"Illegal constructor\"); };\r\n    [\r\n        ['ELEMENT_NODE', 1],\r\n        ['ATTRIBUTE_NODE', 2],\r\n        ['TEXT_NODE', 3],\r\n        ['CDATA_SECTION_NODE', 4],\r\n        ['ENTITY_REFERENCE_NODE', 5],\r\n        ['ENTITY_NODE', 6],\r\n        ['PROCESSING_INSTRUCTION_NODE', 7],\r\n        ['COMMENT_NODE', 8],\r\n        ['DOCUMENT_NODE', 9],\r\n        ['DOCUMENT_TYPE_NODE', 10],\r\n        ['DOCUMENT_FRAGMENT_NODE', 11],\r\n        ['NOTATION_NODE', 12]\r\n    ].forEach(function(p) { if (!(p[0] in global.Node)) global.Node[p[0]] = p[1]; });\r\n\r\n    // DOMException constants\r\n    // Needed for: IE8-\r\n    global.DOMException = global.DOMException || function() { throw TypeError(\"Illegal constructor\"); };\r\n    [\r\n        ['INDEX_SIZE_ERR', 1],\r\n        ['DOMSTRING_SIZE_ERR', 2],\r\n        ['HIERARCHY_REQUEST_ERR', 3],\r\n        ['WRONG_DOCUMENT_ERR', 4],\r\n        ['INVALID_CHARACTER_ERR', 5],\r\n        ['NO_DATA_ALLOWED_ERR', 6],\r\n        ['NO_MODIFICATION_ALLOWED_ERR', 7],\r\n        ['NOT_FOUND_ERR', 8],\r\n        ['NOT_SUPPORTED_ERR', 9],\r\n        ['INUSE_ATTRIBUTE_ERR', 10],\r\n        ['INVALID_STATE_ERR', 11],\r\n        ['SYNTAX_ERR', 12],\r\n        ['INVALID_MODIFICATION_ERR', 13],\r\n        ['NAMESPACE_ERR', 14],\r\n        ['INVALID_ACCESS_ERR', 15]\r\n    ].forEach(function(p) { if (!(p[0] in global.DOMException)) global.DOMException[p[0]] = p[1]; });\r\n\r\n    // Event and EventTargets interfaces\r\n    // Needed for: IE8\r\n    (function(){\r\n        if (!('Element' in global) || Element.prototype.addEventListener || !Object.defineProperty)\r\n            return;\r\n\r\n        // interface Event\r\n\r\n        // PhaseType (const unsigned short)\r\n        Event.CAPTURING_PHASE = 1;\r\n        Event.AT_TARGET       = 2;\r\n        Event.BUBBLING_PHASE  = 3;\r\n\r\n        Object.defineProperties(Event.prototype, {\r\n            CAPTURING_PHASE: { get: function() { return 1; } },\r\n            AT_TARGET:       { get: function() { return 2; } },\r\n            BUBBLING_PHASE:   { get: function() { return 3; } },\r\n            target: {\r\n                get: function() {\r\n                    return this.srcElement;\r\n                }},\r\n            currentTarget: {\r\n                get: function() {\r\n                    return this._currentTarget;\r\n                }},\r\n            eventPhase: {\r\n                get: function() {\r\n                    return (this.srcElement === this.currentTarget) ? Event.AT_TARGET : Event.BUBBLING_PHASE;\r\n                }},\r\n            bubbles: {\r\n                get: function() {\r\n                    switch (this.type) {\r\n                        // Mouse\r\n                        case 'click':\r\n                        case 'dblclick':\r\n                        case 'mousedown':\r\n                        case 'mouseup':\r\n                        case 'mouseover':\r\n                        case 'mousemove':\r\n                        case 'mouseout':\r\n                        case 'mousewheel':\r\n                        // Keyboard\r\n                        case 'keydown':\r\n                        case 'keypress':\r\n                        case 'keyup':\r\n                        // Frame/Object\r\n                        case 'resize':\r\n                        case 'scroll':\r\n                        // Form\r\n                        case 'select':\r\n                        case 'change':\r\n                        case 'submit':\r\n                        case 'reset':\r\n                            return true;\r\n                    }\r\n                    return false;\r\n                }},\r\n            cancelable: {\r\n                get: function() {\r\n                    switch (this.type) {\r\n                        // Mouse\r\n                        case 'click':\r\n                        case 'dblclick':\r\n                        case 'mousedown':\r\n                        case 'mouseup':\r\n                        case 'mouseover':\r\n                        case 'mouseout':\r\n                        case 'mousewheel':\r\n                        // Keyboard\r\n                        case 'keydown':\r\n                        case 'keypress':\r\n                        case 'keyup':\r\n                        // Form\r\n                        case 'submit':\r\n                            return true;\r\n                    }\r\n                    return false;\r\n                }},\r\n            timeStamp: {\r\n                get: function() {\r\n                    return this._timeStamp;\r\n                }},\r\n            stopPropagation: {\r\n                value: function() {\r\n                    this.cancelBubble = true;\r\n                }},\r\n            preventDefault: {\r\n                value: function() {\r\n                    this.returnValue = false;\r\n                }},\r\n            defaultPrevented: {\r\n                get: function() {\r\n                    return this.returnValue === false;\r\n                }}\r\n        });\r\n\r\n        // interface EventTarget\r\n\r\n        function addEventListener(type, listener, useCapture) {\r\n            if (typeof listener !== 'function') return;\r\n            if (type === 'DOMContentLoaded') type = 'load';\r\n            var target = this;\r\n            var f = function(e) {\r\n                e._timeStamp = Date.now();\r\n                e._currentTarget = target;\r\n                listener.call(this, e);\r\n                e._currentTarget = null;\r\n            };\r\n            this['_' + type + listener] = f;\r\n            this.attachEvent('on' + type, f);\r\n        }\r\n\r\n        function removeEventListener(type, listener, useCapture) {\r\n            if (typeof listener !== 'function') return;\r\n            if (type === 'DOMContentLoaded') type = 'load';\r\n            var f = this['_' + type + listener];\r\n            if (f) {\r\n                this.detachEvent('on' + type, f);\r\n                this['_' + type + listener] = null;\r\n            }\r\n        }\r\n\r\n        [Window, HTMLDocument, Element].forEach(function(o) {\r\n            o.prototype.addEventListener = addEventListener;\r\n            o.prototype.removeEventListener = removeEventListener;\r\n        });\r\n    }());\r\n\r\n    // CustomEvent\r\n    // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\r\n    // Needed for: IE\r\n    (function () {\r\n        if ('CustomEvent' in global && typeof global.CustomEvent === \"function\")\r\n            return;\r\n        function CustomEvent ( event, params ) {\r\n            params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n            var evt = document.createEvent( 'CustomEvent' );\r\n            evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\r\n            return evt;\r\n        }\r\n        CustomEvent.prototype = global.Event.prototype;\r\n        global.CustomEvent = CustomEvent;\r\n    })();\r\n\r\n    // Shim for DOM Events for IE7-\r\n    // http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html\r\n    // Use addEvent(object, event, handler) instead of object.addEventListener(event, handler)\r\n    window.addEvent = function(obj, type, fn) {\r\n        if (obj.addEventListener) {\r\n            obj.addEventListener(type, fn, false);\r\n        } else if (obj.attachEvent) {\r\n            obj[\"e\" + type + fn] = fn;\r\n            obj[type + fn] = function() {\r\n                var e = window.event;\r\n                e.currentTarget = obj;\r\n                e.preventDefault = function() { e.returnValue = false; };\r\n                e.stopPropagation = function() { e.cancelBubble = true; };\r\n                e.target = e.srcElement;\r\n                e.timeStamp = Date.now();\r\n                obj[\"e\" + type + fn].call(this, e);\r\n            };\r\n            obj.attachEvent(\"on\" + type, obj[type + fn]);\r\n        }\r\n    };\r\n\r\n    window.removeEvent = function(obj, type, fn) {\r\n        if (obj.removeEventListener) {\r\n            obj.removeEventListener(type, fn, false);\r\n        } else if (obj.detachEvent) {\r\n            obj.detachEvent(\"on\" + type, obj[type + fn]);\r\n            obj[type + fn] = null;\r\n            obj[\"e\" + type + fn] = null;\r\n        }\r\n    };\r\n\r\n    // DOMTokenList interface and Element.classList / Element.relList\r\n    // Needed for: IE9-\r\n    // Use getClassList(elem) instead of elem.classList() if IE7- support is needed\r\n    // Use getRelList(elem) instead of elem.relList() if IE7- support is needed\r\n    (function() {\r\n        function DOMTokenListShim(o, p) {\r\n            function split(s) { return s.length ? s.split(/\\s+/g) : []; }\r\n\r\n            // NOTE: This does not exactly match the spec.\r\n            function removeTokenFromString(token, string) {\r\n                var tokens = split(string),\r\n                    index = tokens.indexOf(token);\r\n                if (index !== -1) {\r\n                    tokens.splice(index, 1);\r\n                }\r\n                return tokens.join(' ');\r\n            }\r\n\r\n            Object.defineProperties(\r\n                this,\r\n                {\r\n                    length: {\r\n                        get: function() { return split(o[p]).length; }\r\n                    },\r\n\r\n                    item: {\r\n                        value: function(idx) {\r\n                            var tokens = split(o[p]);\r\n                            return 0 <= idx && idx < tokens.length ? tokens[idx] : null;\r\n                        }\r\n                    },\r\n\r\n                    contains: {\r\n                        value: function(token) {\r\n                            token = String(token);\r\n                            if (token.length === 0) { throw SyntaxError(); }\r\n                            if (/\\s/.test(token)) { throw Error(\"InvalidCharacterError\"); }\r\n                            var tokens = split(o[p]);\r\n\r\n                            return tokens.indexOf(token) !== -1;\r\n                        }\r\n                    },\r\n\r\n                    add: {\r\n                        value: function(/*tokens...*/) {\r\n                            var tokens = Array.prototype.slice.call(arguments).map(String);\r\n                            if (tokens.some(function(token) { return token.length === 0; })) {\r\n                                throw SyntaxError();\r\n                            }\r\n                            if (tokens.some(function(token) { return (/\\s/).test(token); })) {\r\n                                throw Error(\"InvalidCharacterError\");\r\n                            }\r\n\r\n                            try {\r\n                                var underlying_string = o[p];\r\n                                var token_list = split(underlying_string);\r\n                                tokens = tokens.filter(function(token) { return token_list.indexOf(token) === -1; });\r\n                                if (tokens.length === 0) {\r\n                                    return;\r\n                                }\r\n                                if (underlying_string.length !== 0 && !(/\\s$/).test(underlying_string)) {\r\n                                    underlying_string += ' ';\r\n                                }\r\n                                underlying_string += tokens.join(' ');\r\n                                o[p] = underlying_string;\r\n                            } finally {\r\n                                var length = split(o[p]).length;\r\n                                if (this.length !== length) { this.length = length; }\r\n                            }\r\n                        }\r\n                    },\r\n\r\n                    remove: {\r\n                        value: function(/*tokens...*/) {\r\n                            var tokens = Array.prototype.slice.call(arguments).map(String);\r\n                            if (tokens.some(function(token) { return token.length === 0; })) {\r\n                                throw SyntaxError();\r\n                            }\r\n                            if (tokens.some(function(token) { return (/\\s/).test(token); })) {\r\n                                throw Error(\"InvalidCharacterError\");\r\n                            }\r\n\r\n                            try {\r\n                                var underlying_string = o[p];\r\n                                tokens.forEach(function(token) {\r\n                                    underlying_string = removeTokenFromString(token, underlying_string);\r\n                                });\r\n                                o[p] = underlying_string;\r\n                            } finally {\r\n                                var length = split(o[p]).length;\r\n                                if (this.length !== length) { this.length = length; }\r\n                            }\r\n                        }\r\n                    },\r\n\r\n                    toggle: {\r\n                        value: function(token/*, force*/) {\r\n                            var force = arguments[1];\r\n                            try {\r\n                                token = String(token);\r\n                                if (token.length === 0) { throw SyntaxError(); }\r\n                                if (/\\s/.test(token)) { throw Error(\"InvalidCharacterError\"); }\r\n                                var tokens = split(o[p]),\r\n                                    index = tokens.indexOf(token);\r\n\r\n                                if (index !== -1 && (!force || force === (void 0))) {\r\n                                    o[p] = removeTokenFromString(token, o[p]);\r\n                                    return false;\r\n                                }\r\n                                if (index !== -1 && force) {\r\n                                    return true;\r\n                                }\r\n                                var underlying_string = o[p];\r\n                                if (underlying_string.length !== 0 && !/\\s$/.test(underlying_string)) {\r\n                                    underlying_string += ' ';\r\n                                }\r\n                                underlying_string += token;\r\n                                o[p] = underlying_string;\r\n                                return true;\r\n                            } finally {\r\n                                var length = split(o[p]).length;\r\n                                if (this.length !== length) { this.length = length; }\r\n                            }\r\n                        }\r\n                    },\r\n\r\n                    toString: {\r\n                        value: function() {\r\n                            return o[p];\r\n                        }\r\n                    }\r\n                });\r\n            if (!('length' in this)) {\r\n                // In case getters are not supported\r\n                this.length = split(o[p]).length;\r\n            } else {\r\n                // If they are, shim in index getters (up to 100)\r\n                for (var i = 0; i < 100; ++i) {\r\n                    Object.defineProperty(this, String(i), {\r\n                        get: (function(n) { return function() { return this.item(n); }; }(i))\r\n                    });\r\n                }\r\n            }\r\n        }\r\n\r\n        function addToElementPrototype(p, f) {\r\n            if ('Element' in global && Element.prototype && Object.defineProperty) {\r\n                Object.defineProperty(Element.prototype, p, { get: f });\r\n            }\r\n        }\r\n\r\n        // HTML - https://html.spec.whatwg.org\r\n        // Element.classList\r\n        if ('classList' in document.createElement('span')) {\r\n            window.getClassList = function(elem) { return elem.classList; };\r\n        } else {\r\n            window.getClassList = function(elem) { return new DOMTokenListShim(elem, 'className'); };\r\n            addToElementPrototype('classList', function() { return new DOMTokenListShim(this, 'className'); } );\r\n        }\r\n\r\n        // HTML - https://html.spec.whatwg.org\r\n        // HTMLAnchorElement.relList\r\n        // HTMLLinkElement.relList\r\n        if ('relList' in document.createElement('link')) {\r\n            window.getRelList = function(elem) { return elem.relList; };\r\n        } else {\r\n            window.getRelList = function(elem) { return new DOMTokenListShim(elem, 'rel'); };\r\n            addToElementPrototype('relList', function() { return new DOMTokenListShim(this, 'rel'); } );\r\n        }\r\n\r\n        // Add second argument to native DOMTokenList.toggle() if necessary\r\n        (function() {\r\n            if (!('DOMTokenList' in global)) return;\r\n            var e = document.createElement('span');\r\n            if (!('classList' in e)) return;\r\n            e.classList.toggle('x', false);\r\n            if (!e.classList.contains('x')) return;\r\n            global.DOMTokenList.prototype.toggle = function toggle(token/*, force*/) {\r\n                var force = arguments[1];\r\n                if (force === undefined) {\r\n                    var add = !this.contains(token);\r\n                    this[add ? 'add' : 'remove'](token);\r\n                    return add;\r\n                }\r\n                force = !!force;\r\n                this[force ? 'add' : 'remove'](token);\r\n                return force;\r\n            };\r\n        }());\r\n\r\n\r\n        // DOM - Interface NonDocumentTypeChildNode\r\n        // Interface NonDocumentTypeChildNode\r\n        // previousElementSibling / nextElementSibling - for IE8\r\n\r\n        if (!('previousElementSibling' in document.documentElement)) {\r\n            addToElementPrototype('previousElementSibling', function() {\r\n                var n = this.previousSibling;\r\n                while (n && n.nodeType !== Node.ELEMENT_NODE)\r\n                    n = n.previousSibling;\r\n                return n;\r\n            });\r\n        }\r\n\r\n        if (!('nextElementSibling' in document.documentElement)) {\r\n            addToElementPrototype('nextElementSibling', function() {\r\n                var n = this.nextSibling;\r\n                while (n && n.nodeType !== Node.ELEMENT_NODE)\r\n                    n = n.nextSibling;\r\n                return n;\r\n            });\r\n        }\r\n    }());\r\n\r\n    // Element.matches\r\n    // https://developer.mozilla.org/en/docs/Web/API/Element/matches\r\n    // Needed for: IE, Firefox 3.6, early Webkit and Opera 15.0\r\n    // Use msMatchesSelector(selector) for IE\r\n    // Use oMatchesSelector(selector) for Opera 15.0\r\n    // Use mozMatchesSelector(selector) for Firefox 3.6\r\n    // Use webkitMatchesSelector(selector) for early Webkit\r\n    // Use polyfill if no matches() support, but querySelectorAll() support\r\n    if ('Element' in global && !Element.prototype.matches) {\r\n        if (Element.prototype.msMatchesSelector) {\r\n            Element.prototype.matches = Element.prototype.msMatchesSelector;\r\n        } else if (Element.prototype.oMatchesSelector) {\r\n            Element.prototype.matches = Element.prototype.oMatchesSelector;\r\n        } else if (Element.prototype.mozMatchesSelector) {\r\n            Element.prototype.matches = Element.prototype.mozMatchesSelector;\r\n        } else if (Element.prototype.webkitMatchesSelector) {\r\n            Element.prototype.matches = Element.prototype.webkitMatchesSelector;\r\n        } else if (document.querySelectorAll) {\r\n            Element.prototype.matches = function matches(selector) {\r\n                var matches = (this.document || this.ownerDocument).querySelectorAll(selector),\r\n                    i = matches.length;\r\n                while (--i >= 0 && matches.item(i) !== this) {}\r\n                return i > -1;\r\n            };\r\n        }\r\n    }\r\n\r\n    // Element.closest\r\n    // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\r\n    if (window.Element && !Element.prototype.closest) {\r\n        Element.prototype.closest = function(s) {\r\n            var matches = (this.document || this.ownerDocument).querySelectorAll(s),\r\n                i,\r\n                el = this;\r\n            do {\r\n                i = matches.length;\r\n                while (--i >= 0 && matches.item(i) !== el) {};\r\n            } while ((i < 0) && (el = el.parentElement));\r\n            return el;\r\n        };\r\n    }\r\n\r\n    function mixin(o, ps) {\r\n        if (!o) return;\r\n        Object.keys(ps).forEach(function(p) {\r\n            if ((p in o) || (p in o.prototype)) return;\r\n            try {\r\n                Object.defineProperty(\r\n                    o.prototype,\r\n                    p,\r\n                    Object.getOwnPropertyDescriptor(ps, p)\r\n                );\r\n            } catch (ex) {\r\n                // Throws in IE8; just copy it\r\n                o[p] = ps[p];\r\n            }\r\n        });\r\n    }\r\n\r\n    // Mixin ParentNode\r\n    // https://dom.spec.whatwg.org/#interface-parentnode\r\n\r\n    function convertNodesIntoANode(nodes) {\r\n        var node = null;\r\n        nodes = nodes.map(function(node) {\r\n            return !(node instanceof Node) ? document.createTextNode(node) : node;\r\n        });\r\n        if (nodes.length === 1) {\r\n            node = nodes[0];\r\n        } else {\r\n            node = document.createDocumentFragment();\r\n            nodes.forEach(function(n) { node.appendChild(n); });\r\n        }\r\n        return node;\r\n    }\r\n\r\n    var ParentNode = {\r\n        prepend: function(/*...nodes*/) {\r\n            var nodes = [].slice.call(arguments);\r\n            nodes = convertNodesIntoANode(nodes);\r\n            this.insertBefore(nodes, this.firstChild);\r\n        },\r\n        append: function(/*...nodes*/) {\r\n            var nodes = [].slice.call(arguments);\r\n            nodes = convertNodesIntoANode(nodes);\r\n            this.appendChild(nodes);\r\n        }\r\n    };\r\n\r\n    mixin(global.Document || global.HTMLDocument, ParentNode); // HTMLDocument for IE8\r\n    mixin(global.DocumentFragment, ParentNode);\r\n    mixin(global.Element, ParentNode);\r\n\r\n    // Mixin ChildNode\r\n    // https://dom.spec.whatwg.org/#interface-childnode\r\n\r\n    var ChildNode = {\r\n        before: function(/*...nodes*/) {\r\n            var nodes = [].slice.call(arguments);\r\n            var parent = this.parentNode;\r\n            if (!parent) return;\r\n            var viablePreviousSibling = this.previousSibling;\r\n            while (nodes.indexOf(viablePreviousSibling) !== -1)\r\n                viablePreviousSibling = viablePreviousSibling.previousSibling;\r\n            var node = convertNodesIntoANode(nodes);\r\n            parent.insertBefore(node, viablePreviousSibling ?\r\n                viablePreviousSibling.nextSibling : parent.firstChild);\r\n        },\r\n        after: function(/*...nodes*/) {\r\n            var nodes = [].slice.call(arguments);\r\n            var parent = this.parentNode;\r\n            if (!parent) return;\r\n            var viableNextSibling = this.nextSibling;\r\n            while (nodes.indexOf(viableNextSibling) !== -1)\r\n                viableNextSibling = viableNextSibling.nextSibling;\r\n            var node = convertNodesIntoANode(nodes);\r\n            parent.insertBefore(node, viableNextSibling);\r\n        },\r\n        replaceWith: function(/*...nodes*/) {\r\n            var nodes = [].slice.call(arguments);\r\n            var parent = this.parentNode;\r\n            if (!parent) return;\r\n            var viableNextSibling = this.nextSibling;\r\n            while (nodes.indexOf(viableNextSibling) !== -1)\r\n                viableNextSibling = viableNextSibling.nextSibling;\r\n            var node = convertNodesIntoANode(nodes);\r\n\r\n            if (this.parentNode === parent)\r\n                parent.replaceChild(node, this);\r\n            else\r\n                parent.insertBefore(node, viableNextSibling);\r\n        },\r\n        remove: function() {\r\n            if (!this.parentNode) return;\r\n            this.parentNode.removeChild(this);\r\n        }\r\n    };\r\n\r\n    mixin(global.DocumentType, ChildNode);\r\n    mixin(global.Element, ChildNode);\r\n    mixin(global.CharacterData, ChildNode);\r\n\r\n}(self));","!function(a,b){\"function\"==typeof define&&define.amd?define([],function(){return a.returnExportsGlobal=b()}):\"object\"==typeof exports?module.exports=b():a.ResizeSensor=b()}(this,function(){var a=function(){\"use strict\";function a(){this.q=[],this.add=function(a){this.q.push(a)};var a,b;this.call=function(){for(a=0,b=this.q.length;b>a;a++)this.q[a].call()}}function b(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function c(c,e){if(c.resizedAttached){if(c.resizedAttached)return void c.resizedAttached.add(e)}else c.resizedAttached=new a,c.resizedAttached.add(e);c.resizeSensor=document.createElement(\"div\"),c.resizeSensor.className=\"resize-sensor\";var f=\"position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden; opacity: 0;\",g=\"position: absolute; left: 0; top: 0; transition: 0s;\";c.resizeSensor.style.cssText=f,c.resizeSensor.innerHTML='<div class=\"resize-sensor-expand\" style=\"'+f+'\"><div style=\"'+g+'\"></div></div><div class=\"resize-sensor-shrink\" style=\"'+f+'\"><div style=\"'+g+' width: 200%; height: 200%\"></div></div>',c.appendChild(c.resizeSensor),\"static\"==b(c,\"position\")&&(c.style.position=\"relative\");var h=c.resizeSensor.childNodes[0],i=h.childNodes[0],j=c.resizeSensor.childNodes[1],k=function(){i.style.width=1e5+\"px\",i.style.height=1e5+\"px\",h.scrollLeft=1e5,h.scrollTop=1e5,j.scrollLeft=1e5,j.scrollTop=1e5};k();var l=!1,m=function(){c.resizedAttached&&(l&&(c.resizedAttached.call(),l=!1),d(m))};d(m);var n,o,p,q,r=function(){((p=c.offsetWidth)!=n||(q=c.offsetHeight)!=o)&&(l=!0,n=p,o=q),k()},s=function(a,b,c){a.attachEvent?a.attachEvent(\"on\"+b,c):a.addEventListener(b,c)};s(h,\"scroll\",r),s(j,\"scroll\",r)}var d=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},e=function(a,b){var d=this,e=Object.prototype.toString.call(a),f=d._isCollectionTyped=\"[object Array]\"===e||\"[object NodeList]\"===e||\"[object HTMLCollection]\"===e||\"undefined\"!=typeof jQuery&&a instanceof window.jQuery||\"undefined\"!=typeof Elements&&a instanceof window.Elements;if(d._element=a,f)for(var g=0,h=a.length;h>g;g++)c(a[g],b);else c(a,b)};return e.prototype.detach=function(){var a=this,b=a._isCollectionTyped,c=a._element;if(b)for(var d=0,f=c.length;f>d;d++)e.detach(c[d]);else e.detach(c)},e.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)},e}();return a});","!function(n,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define(\"underscore\",r):(n=\"undefined\"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){\r\n    //     Underscore.js 1.13.1\r\n    //     https://underscorejs.org\r\n    //     (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\r\n    //     Underscore may be freely distributed under the MIT license.\r\n    var n=\"1.13.1\",r=\"object\"==typeof self&&self.self===self&&self||\"object\"==typeof global&&global.global===global&&global||Function(\"return this\")()||{},t=Array.prototype,e=Object.prototype,u=\"undefined\"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c=\"undefined\"!=typeof ArrayBuffer,l=\"undefined\"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable(\"toString\"),b=[\"valueOf\",\"isPrototypeOf\",\"toString\",\"propertyIsEnumerable\",\"hasOwnProperty\",\"toLocaleString\"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u<t;u++)e[u]=arguments[u+r];switch(r){case 0:return n.call(this,e);case 1:return n.call(this,arguments[0],e);case 2:return n.call(this,arguments[0],arguments[1],e)}var o=Array(r+1);for(u=0;u<r;u++)o[u]=arguments[u];return o[r]=e,n.apply(this,o)}}function _(n){var r=typeof n;return\"function\"===r||\"object\"===r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||\"[object Boolean]\"===a.call(n)}function x(n){var r=\"[object \"+n+\"]\";return function(n){return a.call(n)===r}}var S=x(\"String\"),O=x(\"Number\"),M=x(\"Date\"),E=x(\"RegExp\"),B=x(\"Error\"),N=x(\"Symbol\"),I=x(\"ArrayBuffer\"),T=x(\"Function\"),k=r.document&&r.document.childNodes;\"function\"!=typeof/./&&\"object\"!=typeof Int8Array&&\"function\"!=typeof k&&(T=function(n){return\"function\"==typeof n||!1});var D=T,R=x(\"Object\"),F=l&&R(new DataView(new ArrayBuffer(8))),V=\"undefined\"!=typeof Map&&R(new Map),P=x(\"DataView\");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=s||x(\"Array\");function W(n,r){return null!=n&&f.call(n,r)}var z=x(\"Arguments\");!function(){z(arguments)||(z=function(n){return W(n,\"callee\")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(n){return function(r){var t=n(r);return\"number\"==typeof t&&t>=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J(\"byteLength\"),H=K(G),Q=/\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J(\"length\");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]]=!0;return{contains:function(n){return r[n]},push:function(t){return r[t]=!0,n.push(t)}}}(r);var t=b.length,u=n.constructor,o=D(u)&&u.prototype||e,i=\"constructor\";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==o[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in n)W(n,t)&&r.push(t);return g&&Z(n,r),r}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.value=function(){return this._wrapped},tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value,tn.prototype.toString=function(){return String(this._wrapped)};var un=\"[object DataView]\";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var o=typeof n;return(\"function\"===o||\"object\"===o||\"object\"==typeof r)&&function n(r,t,e,o){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=a.call(r);if(i!==a.call(t))return!1;if(F&&\"[object Object]\"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case\"[object RegExp]\":case\"[object String]\":return\"\"+r==\"\"+t;case\"[object Number]\":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case\"[object Date]\":case\"[object Boolean]\":return+r==+t;case\"[object Symbol]\":return u.valueOf.call(r)===u.valueOf.call(t);case\"[object ArrayBuffer]\":case un:return n(en(r),en(t),e,o)}var f=\"[object Array]\"===i;if(!f&&X(r)){if(G(r)!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;f=!0}if(!f){if(\"object\"!=typeof r||\"object\"!=typeof t)return!1;var c=r.constructor,l=t.constructor;if(c!==l&&!(D(c)&&c instanceof c&&D(l)&&l instanceof l)&&\"constructor\"in r&&\"constructor\"in t)return!1}o=o||[];var s=(e=e||[]).length;for(;s--;)if(e[s]===r)return o[s]===t;if(e.push(r),o.push(t),f){if((s=r.length)!==t.length)return!1;for(;s--;)if(!on(r[s],t[s],e,o))return!1}else{var p,v=nn(r);if(s=v.length,nn(t).length!==s)return!1;for(;s--;)if(p=v[s],!W(t,p)||!on(r[p],t[p],e,o))return!1}return e.pop(),o.pop(),!0}(n,r,t,e)}function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);return g&&Z(n,r),r}function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=an(t);if(Y(e))return!1;for(var u=0;u<r;u++)if(!D(t[n[u]]))return!1;return n!==hn||!D(t[cn])}}var cn=\"forEach\",ln=\"has\",sn=[\"clear\",\"delete\"],pn=[\"get\",ln,\"set\"],vn=sn.concat(cn,pn),hn=sn.concat(pn),yn=[\"add\"].concat(sn,cn,ln),dn=V?fn(vn):x(\"Map\"),gn=V?fn(hn):x(\"WeakMap\"),bn=V?fn(yn):x(\"Set\"),mn=x(\"WeakSet\");function jn(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e}function _n(n){for(var r={},t=nn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r}function wn(n){var r=[];for(var t in n)D(n[t])&&r.push(t);return r.sort()}function An(n,r){return function(t){var e=arguments.length;if(r&&(t=Object(t)),e<2||null==t)return t;for(var u=1;u<e;u++)for(var o=arguments[u],i=n(o),a=i.length,f=0;f<a;f++){var c=i[f];r&&void 0!==t[c]||(t[c]=o[c])}return t}}var xn=An(an),Sn=An(nn),On=An(an,!0);function Mn(n){if(!_(n))return{};if(v)return v(n);var r=function(){};r.prototype=n;var t=new r;return r.prototype=null,t}function En(n){return _(n)?U(n)?n.slice():xn({},n):n}function Bn(n){return U(n)?n:[n]}function Nn(n){return tn.toPath(n)}function In(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0}function Tn(n,r,t){var e=In(n,Nn(r));return w(e)?t:e}function kn(n){return n}function Dn(n){return n=Sn({},n),function(r){return rn(r,n)}}function Rn(n){return n=Nn(n),function(r){return In(r,n)}}function Fn(n,r,t){if(void 0===r)return n;switch(null==t?3:t){case 1:return function(t){return n.call(r,t)};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return function(){return n.apply(r,arguments)}}function Vn(n,r,t){return null==n?kn:D(n)?Fn(n,r,t):_(n)&&!U(n)?Dn(n):Rn(n)}function Pn(n,r){return Vn(n,r,1/0)}function qn(n,r,t){return tn.iteratee!==Pn?tn.iteratee(n,r):Vn(n,r,t)}function Un(){}function Wn(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))}tn.toPath=Bn,tn.iteratee=Pn;var zn=Date.now||function(){return(new Date).getTime()};function Ln(n){var r=function(r){return n[r]},t=\"(?:\"+nn(n).join(\"|\")+\")\",e=RegExp(t),u=RegExp(t,\"g\");return function(n){return n=null==n?\"\":\"\"+n,e.test(n)?n.replace(u,r):n}}var $n={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#x27;\",\"`\":\"&#x60;\"},Cn=Ln($n),Kn=Ln(_n($n)),Jn=tn.templateSettings={evaluate:/<%([\\s\\S]+?)%>/g,interpolate:/<%=([\\s\\S]+?)%>/g,escape:/<%-([\\s\\S]+?)%>/g},Gn=/(.)^/,Hn={\"'\":\"'\",\"\\\\\":\"\\\\\",\"\\r\":\"r\",\"\\n\":\"n\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Qn=/\\\\|'|\\r|\\n|\\u2028|\\u2029/g;function Xn(n){return\"\\\\\"+Hn[n]}var Yn=/^\\s*(\\w|\\$)+\\s*$/;var Zn=0;function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var rr=j((function(n,r){var t=rr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a<o;a++)i[a]=r[a]===t?arguments[u++]:r[a];for(;u<arguments.length;)i.push(arguments[u++]);return nr(n,e,this,this,i)};return e}));rr.placeholder=tn;var tr=j((function(n,r,t){if(!D(n))throw new TypeError(\"Bind must be called on a function\");var e=j((function(u){return nr(n,e,r,this,t.concat(u))}));return e})),er=K(Y);function ur(n,r,t,e){if(e=e||[],r||0===r){if(r<=0)return e.concat(n)}else r=1/0;for(var u=e.length,o=0,i=Y(n);o<i;o++){var a=n[o];if(er(a)&&(U(a)||L(a)))if(r>1)ur(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f<c;)e[u++]=a[f++];else t||(e[u++]=a)}return e}var or=j((function(n,r){var t=(r=ur(r,!1,!1)).length;if(t<1)throw new Error(\"bindAll must be passed function names\");for(;t--;){var e=r[t];n[e]=tr(n[e],n)}return n}));var ir=j((function(n,r,t){return setTimeout((function(){return n.apply(null,t)}),r)})),ar=rr(ir,tn,1);function fr(n){return function(){return!n.apply(this,arguments)}}function cr(n,r){var t;return function(){return--n>0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var lr=rr(cr,2);function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o<i;o++)if(r(n[e=u[o]],e,n))return e}function pr(n){return function(r,t,e){t=qn(t,e);for(var u=Y(r),o=n>0?0:u-1;o>=0&&o<u;o+=n)if(t(r[o],o,r))return o;return-1}}var vr=pr(1),hr=pr(-1);function yr(n,r,t,e){for(var u=(t=qn(t,e,1))(r),o=0,i=Y(n);o<i;){var a=Math.floor((o+i)/2);t(n[a])<u?o=a+1:i=a}return o}function dr(n,r,t){return function(e,u,o){var a=0,f=Y(e);if(\"number\"==typeof o)n>0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o<f;o+=n)if(e[o]===u)return o;return-1}}var gr=dr(1,vr,yr),br=dr(-1,hr);function mr(n,r,t){var e=(er(n)?vr:sr)(n,r,t);if(void 0!==e&&-1!==e)return n[e]}function jr(n,r,t){var e,u;if(r=Fn(r,t),er(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var o=nn(n);for(e=0,u=o.length;e<u;e++)r(n[o[e]],o[e],n)}return n}function _r(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=Array(u),i=0;i<u;i++){var a=e?e[i]:i;o[i]=r(n[a],a,n)}return o}function wr(n){var r=function(r,t,e,u){var o=!er(r)&&nn(r),i=(o||r).length,a=n>0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a<i;a+=n){var f=o?o[a]:a;e=t(e,r[f],f,r)}return e};return function(n,t,e,u){var o=arguments.length>=3;return r(n,Fn(t,u,4),e,o)}}var Ar=wr(1),xr=wr(-1);function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(!r(n[i],i,n))return!1}return!0}function Mr(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(r(n[i],i,n))return!0}return!1}function Er(n,r,t,e){return er(n)||(n=jn(n)),(\"number\"!=typeof t||e)&&(t=0),gr(n,r,t)>=0}var Br=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),_r(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Nr(n,r){return _r(n,Rn(r))}function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||\"number\"==typeof r&&\"object\"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e>o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1)];var e=er(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i<r;i++){var a=Wn(i,o),f=e[i];e[i]=e[a],e[a]=f}return e.slice(0,r)}function kr(n,r){return function(t,e,u){var o=r?[[],[]]:{};return e=qn(e,u),jr(t,(function(r,u){var i=e(r,u,t);n(o,r,i)})),o}}var Dr=kr((function(n,r,t){W(n,t)?n[t].push(r):n[t]=[r]})),Rr=kr((function(n,r,t){n[t]=r})),Fr=kr((function(n,r,t){W(n,t)?n[t]++:n[t]=1})),Vr=kr((function(n,r,t){n[t?0:1].push(r)}),!0),Pr=/[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;function qr(n,r,t){return r in t}var Ur=j((function(n,r){var t={},e=r[0];if(null==n)return t;D(e)?(r.length>1&&(e=Fn(e,r[1])),r=an(n)):(e=qr,r=ur(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u<o;u++){var i=r[u],a=n[i];e(a,i,n)&&(t[i]=a)}return t})),Wr=j((function(n,r){var t,e=r[0];return D(e)?(e=fr(e),r.length>1&&(t=r[1])):(r=_r(ur(r,!1,!1),String),e=function(n,t){return!Er(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=ur(r,!0,!0),Sr(n,(function(n){return!Er(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);i<a;i++){var f=n[i],c=t?t(f,i,n):f;r&&!t?(i&&o===c||u.push(f),o=c):t?Er(o,c)||(o.push(c),u.push(f)):Er(u,f)||u.push(f)}return u}var Gr=j((function(n){return Jr(ur(n,!0,!0))}));function Hr(n){for(var r=n&&Ir(n,Y).length||0,t=Array(r),e=0;e<r;e++)t[e]=Nr(n,e);return t}var Qr=j(Hr);function Xr(n,r){return n._chain?tn(r).chain():r}function Yr(n){return jr(wn(n),(function(r){var t=tn[r]=n[r];tn.prototype[r]=function(){var n=[this._wrapped];return o.apply(n,arguments),Xr(this,t.apply(tn,n))}})),tn}jr([\"pop\",\"push\",\"reverse\",\"shift\",\"sort\",\"splice\",\"unshift\"],(function(n){var r=t[n];tn.prototype[n]=function(){var t=this._wrapped;return null!=t&&(r.apply(t,arguments),\"shift\"!==n&&\"splice\"!==n||0!==t.length||delete t[0]),Xr(this,t)}})),jr([\"concat\",\"join\",\"slice\"],(function(n){var r=t[n];tn.prototype[n]=function(){var n=this._wrapped;return null!=n&&(n=r.apply(n,arguments)),Xr(this,n)}}));var Zr=Yr({__proto__:null,VERSION:n,restArguments:j,isObject:_,isNull:function(n){return null===n},isUndefined:w,isBoolean:A,isElement:function(n){return!(!n||1!==n.nodeType)},isString:S,isNumber:O,isDate:M,isRegExp:E,isError:B,isSymbol:N,isArrayBuffer:I,isDataView:q,isArray:U,isFunction:D,isArguments:L,isFinite:function(n){return!N(n)&&d(n)&&!isNaN(parseFloat(n))},isNaN:$,isTypedArray:X,isEmpty:function(n){if(null==n)return!0;var r=Y(n);return\"number\"==typeof r&&(U(n)||S(n)||L(n))?0===r:0===Y(nn(n))},isMatch:rn,isEqual:function(n,r){return on(n,r)},isMap:dn,isWeakMap:gn,isSet:bn,isWeakSet:mn,keys:nn,allKeys:an,values:jn,pairs:function(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},invert:_n,functions:wn,methods:wn,extend:xn,extendOwn:Sn,assign:Sn,defaults:On,create:function(n,r){var t=Mn(n);return r&&Sn(t,r),t},clone:En,tap:function(n,r){return r(n),n},get:Tn,has:function(n,r){for(var t=(r=Nn(r)).length,e=0;e<t;e++){var u=r[e];if(!W(n,u))return!1;n=n[u]}return!!t},mapObject:function(n,r,t){r=qn(r,t);for(var e=nn(n),u=e.length,o={},i=0;i<u;i++){var a=e[i];o[a]=r(n[a],a,n)}return o},identity:kn,constant:C,noop:Un,toPath:Bn,property:Rn,propertyOf:function(n){return null==n?Un:function(r){return Tn(n,r)}},matcher:Dn,matches:Dn,times:function(n,r,t){var e=Array(Math.max(0,n));r=Fn(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},random:Wn,now:zn,escape:Cn,unescape:Kn,templateSettings:Jn,template:function(n,r,t){!r&&t&&(r=t),r=On({},r,tn.templateSettings);var e=RegExp([(r.escape||Gn).source,(r.interpolate||Gn).source,(r.evaluate||Gn).source].join(\"|\")+\"|$\",\"g\"),u=0,o=\"__p+='\";n.replace(e,(function(r,t,e,i,a){return o+=n.slice(u,a).replace(Qn,Xn),u=a+r.length,t?o+=\"'+\\n((__t=(\"+t+\"))==null?'':_.escape(__t))+\\n'\":e?o+=\"'+\\n((__t=(\"+e+\"))==null?'':__t)+\\n'\":i&&(o+=\"';\\n\"+i+\"\\n__p+='\"),r})),o+=\"';\\n\";var i,a=r.variable;if(a){if(!Yn.test(a))throw new Error(\"variable is not a bare identifier: \"+a)}else o=\"with(obj||{}){\\n\"+o+\"}\\n\",a=\"obj\";o=\"var __t,__p='',__j=Array.prototype.join,\"+\"print=function(){__p+=__j.call(arguments,'');};\\n\"+o+\"return __p;\\n\";try{i=new Function(a,\"_\",o)}catch(n){throw n.source=o,n}var f=function(n){return i.call(this,n,tn)};return f.source=\"function(\"+a+\"){\\n\"+o+\"}\",f},result:function(n,r,t){var e=(r=Nn(r)).length;if(!e)return D(t)?t.call(n):t;for(var u=0;u<e;u++){var o=null==n?void 0:n[r[u]];void 0===o&&(o=t,u=e),n=D(o)?o.call(n):o}return n},uniqueId:function(n){var r=++Zn+\"\";return n?n+r:r},chain:function(n){var r=tn(n);return r._chain=!0,r},iteratee:Pn,partial:rr,bind:tr,bindAll:or,memoize:function(n,r){var t=function(e){var u=t.cache,o=\"\"+(r?r.apply(this,arguments):e);return W(u,o)||(u[o]=n.apply(this,arguments)),u[o]};return t.cache={},t},delay:ir,defer:ar,throttle:function(n,r,t){var e,u,o,i,a=0;t||(t={});var f=function(){a=!1===t.leading?0:zn(),e=null,i=n.apply(u,o),e||(u=o=null)},c=function(){var c=zn();a||!1!==t.leading||(a=c);var l=r-(c-a);return u=this,o=arguments,l<=0||l>r?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=zn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=zn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return rr(r,n)},negate:fr,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:cr,once:lr,findKey:sr,findIndex:vr,findLastIndex:hr,sortedIndex:yr,indexOf:gr,lastIndexOf:br,find:mr,detect:mr,findWhere:function(n,r){return mr(n,Dn(r))},each:jr,forEach:jr,map:_r,collect:_r,reduce:Ar,foldl:Ar,inject:Ar,reduceRight:xr,foldr:xr,filter:Sr,select:Sr,reject:function(n,r,t){return Sr(n,fr(qn(r)),t)},every:Or,all:Or,some:Mr,any:Mr,contains:Er,includes:Er,include:Er,invoke:Br,pluck:Nr,where:function(n,r){return Sr(n,Dn(r))},max:Ir,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||\"number\"==typeof r&&\"object\"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e<o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))<i||u===1/0&&o===1/0)&&(o=n,i=u)}));return o},shuffle:function(n){return Tr(n,1/0)},sample:Tr,sortBy:function(n,r,t){var e=0;return r=qn(r,t),Nr(_r(n,(function(n,t,u){return{value:n,index:e++,criteria:r(n,t,u)}})).sort((function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(t>e||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index})),\"value\")},groupBy:Dr,indexBy:Rr,countBy:Fr,partition:Vr,toArray:function(n){return n?U(n)?i.call(n):S(n)?n.match(Pr):er(n)?_r(n,kn):jn(n):[]},size:function(n){return null==n?0:er(n)?n.length:nn(n).length},pick:Ur,omit:Wr,first:Lr,head:Lr,take:Lr,initial:zr,last:function(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[n.length-1]:$r(n,Math.max(0,n.length-r))},rest:$r,tail:$r,drop:$r,compact:function(n){return Sr(n,Boolean)},flatten:function(n,r){return ur(n,r,!1)},without:Kr,uniq:Jr,unique:Jr,union:Gr,intersection:function(n){for(var r=[],t=arguments.length,e=0,u=Y(n);e<u;e++){var o=n[e];if(!Er(r,o)){var i;for(i=1;i<t&&Er(arguments[i],o);i++);i===t&&r.push(o)}}return r},difference:Cr,unzip:Hr,transpose:Hr,zip:Qr,object:function(n,r){for(var t={},e=0,u=Y(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t},range:function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),o=0;o<e;o++,n+=t)u[o]=n;return u},chunk:function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(i.call(n,e,e+=r));return t},mixin:Yr,default:tn});return Zr._=Zr,Zr}));","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n  if (isConstructor(argument)) return argument;\n  throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n  if (typeof argument == 'object' || isCallable(argument)) return argument;\n  throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? charAt(S, index).length : 1);\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n  if (isPrototypeOf(Prototype, it)) return it;\n  throw TypeError('Incorrect invocation');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw TypeError(String(argument) + ' is not an object');\n};\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n  if (typeof ArrayBuffer == 'function') {\n    var buffer = new ArrayBuffer(8);\n    // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n    if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n  }\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n  throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n      delete TypedArrayConstructor.prototype[KEY];\n    } catch (error) {\n      // old WebKit bug - some methods are non-configurable\n      try {\n        TypedArrayConstructor.prototype[KEY] = property;\n      } catch (error2) { /* empty */ }\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    redefine(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n        delete TypedArrayConstructor[KEY];\n      } catch (error) { /* empty */ }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      redefine(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n  else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow -- safe\n  TypedArray = function TypedArray() {\n    throw TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQUIRED = true;\n  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  } });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n  return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n  return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n  return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n  return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n  defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n  var intIndex = toIndex(index);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = arraySlice(bytes, start, start + count);\n  return isLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n  var intIndex = toIndex(index);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = conversion(+value);\n  for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n  $ArrayBuffer = function ArrayBuffer(length) {\n    anInstance(this, ArrayBufferPrototype);\n    var byteLength = toIndex(length);\n    setInternalState(this, {\n      bytes: fill(Array(byteLength), 0),\n      byteLength: byteLength\n    });\n    if (!DESCRIPTORS) this.byteLength = byteLength;\n  };\n\n  ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n  $DataView = function DataView(buffer, byteOffset, byteLength) {\n    anInstance(this, DataViewPrototype);\n    anInstance(buffer, ArrayBufferPrototype);\n    var bufferLength = getInternalState(buffer).byteLength;\n    var offset = toIntegerOrInfinity(byteOffset);\n    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n    setInternalState(this, {\n      buffer: buffer,\n      byteLength: byteLength,\n      byteOffset: offset\n    });\n    if (!DESCRIPTORS) {\n      this.buffer = buffer;\n      this.byteLength = byteLength;\n      this.byteOffset = offset;\n    }\n  };\n\n  DataViewPrototype = $DataView[PROTOTYPE];\n\n  if (DESCRIPTORS) {\n    addGetter($ArrayBuffer, 'byteLength');\n    addGetter($DataView, 'buffer');\n    addGetter($DataView, 'byteLength');\n    addGetter($DataView, 'byteOffset');\n  }\n\n  redefineAll(DataViewPrototype, {\n    getInt8: function getInt8(byteOffset) {\n      return get(this, 1, byteOffset)[0] << 24 >> 24;\n    },\n    getUint8: function getUint8(byteOffset) {\n      return get(this, 1, byteOffset)[0];\n    },\n    getInt16: function getInt16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n    },\n    getUint16: function getUint16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return bytes[1] << 8 | bytes[0];\n    },\n    getInt32: function getInt32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n    },\n    getUint32: function getUint32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n    },\n    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n    },\n    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n    },\n    setInt8: function setInt8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n      set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n    }\n  });\n} else {\n  var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n  /* eslint-disable no-new -- required for testing */\n  if (!fails(function () {\n    NativeArrayBuffer(1);\n  }) || !fails(function () {\n    new NativeArrayBuffer(-1);\n  }) || fails(function () {\n    new NativeArrayBuffer();\n    new NativeArrayBuffer(1.5);\n    new NativeArrayBuffer(NaN);\n    return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n  })) {\n  /* eslint-enable no-new -- required for testing */\n    $ArrayBuffer = function ArrayBuffer(length) {\n      anInstance(this, ArrayBufferPrototype);\n      return new NativeArrayBuffer(toIndex(length));\n    };\n\n    $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n    for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n      if (!((key = keys[j++]) in $ArrayBuffer)) {\n        createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n      }\n    }\n\n    ArrayBufferPrototype.constructor = $ArrayBuffer;\n  } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n    createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n  }\n\n  // WebKit bug - the same parent prototype for typed arrays and data view\n  if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n    setPrototypeOf(DataViewPrototype, ObjectPrototype);\n  }\n\n  // iOS Safari 7.x bug\n  var testView = new $DataView(new $ArrayBuffer(2));\n  var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n  testView.setInt8(0, 2147483648);\n  testView.setInt8(1, 2147483649);\n  if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll(DataViewPrototype, {\n    setInt8: function setInt8(byteOffset, value) {\n      $setInt8(this, byteOffset, value << 24 >> 24);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      $setInt8(this, byteOffset, value << 24 >> 24);\n    }\n  }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n  ArrayBuffer: $ArrayBuffer,\n  DataView: $DataView\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n  var O = toObject(this);\n  var len = lengthOfArrayLike(O);\n  var to = toAbsoluteIndex(target, len);\n  var from = toAbsoluteIndex(start, len);\n  var end = arguments.length > 2 ? arguments[2] : undefined;\n  var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n  var inc = 1;\n  if (from < to && to < from + count) {\n    inc = -1;\n    from += count - 1;\n    to += count - 1;\n  }\n  while (count-- > 0) {\n    if (from in O) O[to] = O[from];\n    else delete O[to];\n    to += inc;\n    from += inc;\n  } return O;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n  var O = toObject(this);\n  var length = lengthOfArrayLike(O);\n  var argumentsLength = arguments.length;\n  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n  var end = argumentsLength > 2 ? arguments[2] : undefined;\n  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n  while (endPos > index) O[index++] = value;\n  return O;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n  var index = 0;\n  var length = lengthOfArrayLike(list);\n  var result = new Constructor(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var IS_CONSTRUCTOR = isConstructor(this);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = getIterator(O, iteratorMethod);\n    next = iterator.next;\n    result = IS_CONSTRUCTOR ? new this() : [];\n    for (;!(step = call(next, iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = lengthOfArrayLike(O);\n    result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var IS_FILTER_REJECT = TYPE == 7;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that);\n    var length = lengthOfArrayLike(self);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push(target, value);      // filter\n        } else switch (TYPE) {\n          case 4: return false;             // every\n          case 7: push(target, value);      // filterReject\n        }\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.es/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.es/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.es/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.es/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.es/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.es/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6),\n  // `Array.prototype.filterReject` method\n  // https://github.com/tc39/proposal-array-filtering\n  filterReject: createMethod(7)\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n  // convert -0 to +0\n  if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n  var O = toIndexedObject(this);\n  var length = lengthOfArrayLike(O);\n  var index = length - 1;\n  if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n  if (index < 0) index = length + index;\n  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n  return -1;\n} : $lastIndexOf;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n  var method = [][METHOD_NAME];\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n    method.call(null, argument || function () { throw 1; }, 1);\n  });\n};\n","var global = require('../internals/global');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar TypeError = global.TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n  return function (that, callbackfn, argumentsLength, memo) {\n    aCallable(callbackfn);\n    var O = toObject(that);\n    var self = IndexedObject(O);\n    var length = lengthOfArrayLike(O);\n    var index = IS_RIGHT ? length - 1 : 0;\n    var i = IS_RIGHT ? -1 : 1;\n    if (argumentsLength < 2) while (true) {\n      if (index in self) {\n        memo = self[index];\n        index += i;\n        break;\n      }\n      index += i;\n      if (IS_RIGHT ? index < 0 : length <= index) {\n        throw TypeError('Reduce of empty array with no initial value');\n      }\n    }\n    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n      memo = callbackfn(memo, self[index], index, O);\n    }\n    return memo;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.reduce` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduce\n  left: createMethod(false),\n  // `Array.prototype.reduceRight` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n  right: createMethod(true)\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n  var length = lengthOfArrayLike(O);\n  var k = toAbsoluteIndex(start, length);\n  var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n  var result = Array(max(fin - k, 0));\n  for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n  result.length = n;\n  return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n  var length = array.length;\n  var middle = floor(length / 2);\n  return length < 8 ? insertionSort(array, comparefn) : merge(\n    array,\n    mergeSort(arraySlice(array, 0, middle), comparefn),\n    mergeSort(arraySlice(array, middle), comparefn),\n    comparefn\n  );\n};\n\nvar insertionSort = function (array, comparefn) {\n  var length = array.length;\n  var i = 1;\n  var element, j;\n\n  while (i < length) {\n    j = i;\n    element = array[i];\n    while (j && comparefn(array[j - 1], element) > 0) {\n      array[j] = array[--j];\n    }\n    if (j !== i++) array[j] = element;\n  } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n  var llength = left.length;\n  var rlength = right.length;\n  var lindex = 0;\n  var rindex = 0;\n\n  while (lindex < llength || rindex < rlength) {\n    array[lindex + rindex] = (lindex < llength && rindex < rlength)\n      ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n      : lindex < llength ? left[lindex++] : right[rindex++];\n  } return array;\n};\n\nmodule.exports = mergeSort;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var itoc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar ctoi = {};\n\nfor (var index = 0; index < 66; index++) ctoi[itoc.charAt(index)] = index;\n\nmodule.exports = {\n  itoc: itoc,\n  ctoi: ctoi\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (error) {\n    iteratorClose(iterator, 'throw', error);\n  }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n  if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string') {\n    while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n  } return stack;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var Constructor = wrapper(function (that, iterable) {\n      anInstance(that, Prototype);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        index: create(null),\n        first: undefined,\n        last: undefined,\n        size: 0\n      });\n      if (!DESCRIPTORS) that.size = 0;\n      if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n    });\n\n    var Prototype = Constructor.prototype;\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var entry = getEntry(that, key);\n      var previous, index;\n      // change existing entry\n      if (entry) {\n        entry.value = value;\n      // create new entry\n      } else {\n        state.last = entry = {\n          index: index = fastKey(key, true),\n          key: key,\n          value: value,\n          previous: previous = state.last,\n          next: undefined,\n          removed: false\n        };\n        if (!state.first) state.first = entry;\n        if (previous) previous.next = entry;\n        if (DESCRIPTORS) state.size++;\n        else that.size++;\n        // add to index\n        if (index !== 'F') state.index[index] = entry;\n      } return that;\n    };\n\n    var getEntry = function (that, key) {\n      var state = getInternalState(that);\n      // fast case\n      var index = fastKey(key);\n      var entry;\n      if (index !== 'F') return state.index[index];\n      // frozen object case\n      for (entry = state.first; entry; entry = entry.next) {\n        if (entry.key == key) return entry;\n      }\n    };\n\n    redefineAll(Prototype, {\n      // `{ Map, Set }.prototype.clear()` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.clear\n      // https://tc39.es/ecma262/#sec-set.prototype.clear\n      clear: function clear() {\n        var that = this;\n        var state = getInternalState(that);\n        var data = state.index;\n        var entry = state.first;\n        while (entry) {\n          entry.removed = true;\n          if (entry.previous) entry.previous = entry.previous.next = undefined;\n          delete data[entry.index];\n          entry = entry.next;\n        }\n        state.first = state.last = undefined;\n        if (DESCRIPTORS) state.size = 0;\n        else that.size = 0;\n      },\n      // `{ Map, Set }.prototype.delete(key)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.delete\n      // https://tc39.es/ecma262/#sec-set.prototype.delete\n      'delete': function (key) {\n        var that = this;\n        var state = getInternalState(that);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.next;\n          var prev = entry.previous;\n          delete state.index[entry.index];\n          entry.removed = true;\n          if (prev) prev.next = next;\n          if (next) next.previous = prev;\n          if (state.first == entry) state.first = next;\n          if (state.last == entry) state.last = prev;\n          if (DESCRIPTORS) state.size--;\n          else that.size--;\n        } return !!entry;\n      },\n      // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.foreach\n      // https://tc39.es/ecma262/#sec-set.prototype.foreach\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        var state = getInternalState(this);\n        var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n        var entry;\n        while (entry = entry ? entry.next : state.first) {\n          boundFunction(entry.value, entry.key, this);\n          // revert to the last existing entry\n          while (entry && entry.removed) entry = entry.previous;\n        }\n      },\n      // `{ Map, Set}.prototype.has(key)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.has\n      // https://tc39.es/ecma262/#sec-set.prototype.has\n      has: function has(key) {\n        return !!getEntry(this, key);\n      }\n    });\n\n    redefineAll(Prototype, IS_MAP ? {\n      // `Map.prototype.get(key)` method\n      // https://tc39.es/ecma262/#sec-map.prototype.get\n      get: function get(key) {\n        var entry = getEntry(this, key);\n        return entry && entry.value;\n      },\n      // `Map.prototype.set(key, value)` method\n      // https://tc39.es/ecma262/#sec-map.prototype.set\n      set: function set(key, value) {\n        return define(this, key === 0 ? 0 : key, value);\n      }\n    } : {\n      // `Set.prototype.add(value)` method\n      // https://tc39.es/ecma262/#sec-set.prototype.add\n      add: function add(value) {\n        return define(this, value = value === 0 ? 0 : value, value);\n      }\n    });\n    if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n      get: function () {\n        return getInternalState(this).size;\n      }\n    });\n    return Constructor;\n  },\n  setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n    var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n    var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n    var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n    // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n    // https://tc39.es/ecma262/#sec-map.prototype.entries\n    // https://tc39.es/ecma262/#sec-map.prototype.keys\n    // https://tc39.es/ecma262/#sec-map.prototype.values\n    // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n    // https://tc39.es/ecma262/#sec-set.prototype.entries\n    // https://tc39.es/ecma262/#sec-set.prototype.keys\n    // https://tc39.es/ecma262/#sec-set.prototype.values\n    // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n    defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n      setInternalState(this, {\n        type: ITERATOR_NAME,\n        target: iterated,\n        state: getInternalCollectionState(iterated),\n        kind: kind,\n        last: undefined\n      });\n    }, function () {\n      var state = getInternalIteratorState(this);\n      var kind = state.kind;\n      var entry = state.last;\n      // revert to the last existing entry\n      while (entry && entry.removed) entry = entry.previous;\n      // get next entry\n      if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n        // or finish the iteration\n        state.target = undefined;\n        return { value: undefined, done: true };\n      }\n      // return step by kind\n      if (kind == 'keys') return { value: entry.key, done: false };\n      if (kind == 'values') return { value: entry.value, done: false };\n      return { value: [entry.key, entry.value], done: false };\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // `{ Map, Set }.prototype[@@species]` accessors\n    // https://tc39.es/ecma262/#sec-get-map-@@species\n    // https://tc39.es/ecma262/#sec-get-set-@@species\n    setSpecies(CONSTRUCTOR_NAME);\n  }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n  return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n  this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n  return find(store.entries, function (it) {\n    return it[0] === key;\n  });\n};\n\nUncaughtFrozenStore.prototype = {\n  get: function (key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function (key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function (key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;\n    else this.entries.push([key, value]);\n  },\n  'delete': function (key) {\n    var index = findIndex(this.entries, function (it) {\n      return it[0] === key;\n    });\n    if (~index) splice(this.entries, index, 1);\n    return !!~index;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var Constructor = wrapper(function (that, iterable) {\n      anInstance(that, Prototype);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        id: id++,\n        frozen: undefined\n      });\n      if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n    });\n\n    var Prototype = Constructor.prototype;\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var data = getWeakData(anObject(key), true);\n      if (data === true) uncaughtFrozenStore(state).set(key, value);\n      else data[state.id] = value;\n      return that;\n    };\n\n    redefineAll(Prototype, {\n      // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n      // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n      'delete': function (key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n        return data && hasOwn(data, state.id) && delete data[state.id];\n      },\n      // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n      // https://tc39.es/ecma262/#sec-weakset.prototype.has\n      has: function has(key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state).has(key);\n        return data && hasOwn(data, state.id);\n      }\n    });\n\n    redefineAll(Prototype, IS_MAP ? {\n      // `WeakMap.prototype.get(key)` method\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n      get: function get(key) {\n        var state = getInternalState(this);\n        if (isObject(key)) {\n          var data = getWeakData(key);\n          if (data === true) return uncaughtFrozenStore(state).get(key);\n          return data ? data[state.id] : undefined;\n        }\n      },\n      // `WeakMap.prototype.set(key, value)` method\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n      set: function set(key, value) {\n        return define(this, key, value);\n      }\n    } : {\n      // `WeakSet.prototype.add(value)` method\n      // https://tc39.es/ecma262/#sec-weakset.prototype.add\n      add: function add(value) {\n        return define(this, value, true);\n      }\n    });\n\n    return Constructor;\n  }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var NativeConstructor = global[CONSTRUCTOR_NAME];\n  var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n  var Constructor = NativeConstructor;\n  var exported = {};\n\n  var fixMethod = function (KEY) {\n    var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n    redefine(NativePrototype, KEY,\n      KEY == 'add' ? function add(value) {\n        uncurriedNativeMethod(this, value === 0 ? 0 : value);\n        return this;\n      } : KEY == 'delete' ? function (key) {\n        return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : KEY == 'get' ? function get(key) {\n        return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : KEY == 'has' ? function has(key) {\n        return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : function set(key, value) {\n        uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n        return this;\n      }\n    );\n  };\n\n  var REPLACE = isForced(\n    CONSTRUCTOR_NAME,\n    !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n      new NativeConstructor().entries().next();\n    }))\n  );\n\n  if (REPLACE) {\n    // create collection constructor\n    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n    InternalMetadataModule.enable();\n  } else if (isForced(CONSTRUCTOR_NAME, true)) {\n    var instance = new Constructor();\n    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    // eslint-disable-next-line no-new -- required for testing\n    var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new NativeConstructor();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n\n    if (!ACCEPT_ITERABLES) {\n      Constructor = wrapper(function (dummy, iterable) {\n        anInstance(dummy, NativePrototype);\n        var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n        if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n        return that;\n      });\n      Constructor.prototype = NativePrototype;\n      NativePrototype.constructor = Constructor;\n    }\n\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n    // weak collections should not contains .clear method\n    if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n  }\n\n  exported[CONSTRUCTOR_NAME] = Constructor;\n  $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n  setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n  return Constructor;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n  var regexp = /./;\n  try {\n    '/./'[METHOD_NAME](regexp);\n  } catch (error1) {\n    try {\n      regexp[MATCH] = false;\n      return '/./'[METHOD_NAME](regexp);\n    } catch (error2) { /* empty */ }\n  } return false;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n  var S = toString(requireObjectCoercible(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPropertyKey(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar RangeError = global.RangeError;\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar n$DateToISOString = DatePrototype.toISOString;\nvar getTime = uncurryThis(DatePrototype.getTime);\nvar getUTCDate = uncurryThis(DatePrototype.getUTCDate);\nvar getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear);\nvar getUTCHours = uncurryThis(DatePrototype.getUTCHours);\nvar getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds);\nvar getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes);\nvar getUTCMonth = uncurryThis(DatePrototype.getUTCMonth);\nvar getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds);\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n  return n$DateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n  n$DateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n  if (!isFinite(getTime(this))) throw RangeError('Invalid time value');\n  var date = this;\n  var year = getUTCFullYear(date);\n  var milliseconds = getUTCMilliseconds(date);\n  var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n  return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n    '-' + padStart(getUTCMonth(date) + 1, 2, 0) +\n    '-' + padStart(getUTCDate(date), 2, 0) +\n    'T' + padStart(getUTCHours(date), 2, 0) +\n    ':' + padStart(getUTCMinutes(date), 2, 0) +\n    ':' + padStart(getUTCSeconds(date), 2, 0) +\n    '.' + padStart(milliseconds, 3, 0) +\n    'Z';\n} : n$DateToISOString;\n","'use strict';\nvar global = require('../internals/global');\nvar anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar TypeError = global.TypeError;\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n  anObject(this);\n  if (hint === 'string' || hint === 'default') hint = 'string';\n  else if (hint !== 'number') throw TypeError('Incorrect hint');\n  return ordinaryToPrimitive(this, hint);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n          redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n  if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n      createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n    } else {\n      INCORRECT_VALUES_NAME = true;\n      defaultIterator = function values() { return call(nativeIterator, this); };\n    }\n  }\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n  }\n  Iterators[NAME] = defaultIterator;\n\n  return methods;\n};\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","module.exports = {\n  IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n  DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n  HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n  WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n  InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n  NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n  NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n  NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n  NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n  InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n  InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n  SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n  InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n  NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n  InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n  ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n  TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n  SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n  NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n  AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n  URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n  QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n  TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n  InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n  DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","module.exports = typeof window == 'object';\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n  var error = Error('a');\n  if (!('stack' in error)) return true;\n  // eslint-disable-next-line es/no-object-defineproperty -- safe\n  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n  return error.stack !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n  if (DESCRIPTORS) {\n    // Chrome 32- incorrectly call accessor\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    var object = create(Object.defineProperty({}, 'name', { get: function () {\n      return this === object;\n    } }));\n    if (nativeErrorToString.call(object) !== 'true') return true;\n  }\n  // FF10- does not properly handle non-strings\n  return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n    // IE8 does not properly handle defaults\n    || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n  var O = anObject(this);\n  var name = normalizeStringArgument(O.name, 'Error');\n  var message = normalizeStringArgument(O.message);\n  return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n  options.name        - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n  var SYMBOL = wellKnownSymbol(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n\n    if (KEY === 'split') {\n      // We can't use real regex here since it causes deoptimization\n      // and serious performance degradation in V8\n      // https://github.com/zloirock/core-js/issues/306\n      re = {};\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n      re.flags = '';\n      re[SYMBOL] = /./[SYMBOL];\n    }\n\n    re.exec = function () { execCalled = true; return null; };\n\n    re[SYMBOL]('');\n    return !execCalled;\n  });\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    FORCED\n  ) {\n    var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n      var uncurriedNativeMethod = uncurryThis(nativeMethod);\n      var $exec = regexp.exec;\n      if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n          // The native String method already delegates to @@method (this\n          // polyfilled function), leasing to infinite recursion.\n          // We avoid it by directly calling the native @@method method.\n          return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n        }\n        return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n      }\n      return { done: false };\n    });\n\n    redefine(String.prototype, KEY, methods[0]);\n    redefine(RegExpPrototype, SYMBOL, methods[1]);\n  }\n\n  if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\n\nvar TypeError = global.TypeError;\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n  var targetIndex = start;\n  var sourceIndex = 0;\n  var mapFn = mapper ? bind(mapper, thisArg) : false;\n  var element, elementLen;\n\n  while (sourceIndex < sourceLen) {\n    if (sourceIndex in source) {\n      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n      if (depth > 0 && isArray(element)) {\n        elementLen = lengthOfArrayLike(element);\n        targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n      } else {\n        if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n        target[targetIndex] = element;\n      }\n\n      targetIndex++;\n    }\n    sourceIndex++;\n  }\n  return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n  return Object.isExtensible(Object.preventExtensions({}));\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n  aCallable(fn);\n  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  var test = (function () { /* empty */ }).bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar Function = global.Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n  if (!hasOwn(factories, argsLength)) {\n    for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n    factories[argsLength] = Function('C,a', 'return new C(' + join(list, ',') + ')');\n  } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? Function.bind : function bind(that /* , ...args */) {\n  var F = aCallable(this);\n  var Prototype = F.prototype;\n  var partArgs = arraySlice(arguments, 1);\n  var boundFunction = function bound(/* args... */) {\n    var args = concat(partArgs, arraySlice(arguments));\n    return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n  };\n  if (isObject(Prototype)) boundFunction.prototype = Prototype;\n  return boundFunction;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n  return fn && uncurryThis(fn);\n} : function (fn) {\n  return fn && function () {\n    return call.apply(fn, arguments);\n  };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return getMethod(it, ITERATOR)\n    || getMethod(it, '@@iterator')\n    || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n  var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n  if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n  throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return func == null ? undefined : aCallable(func);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n  var tailPos = position + matched.length;\n  var m = captures.length;\n  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n  if (namedCaptures !== undefined) {\n    namedCaptures = toObject(namedCaptures);\n    symbols = SUBSTITUTION_SYMBOLS;\n  }\n  return replace(replacement, symbols, function (match, ch) {\n    var capture;\n    switch (charAt(ch, 0)) {\n      case '$': return '$';\n      case '&': return matched;\n      case '`': return stringSlice(str, 0, position);\n      case \"'\": return stringSlice(str, tailPos);\n      case '<':\n        capture = namedCaptures[stringSlice(ch, 1, -1)];\n        break;\n      default: // \\d\\d?\n        var n = +ch;\n        if (n === 0) return match;\n        if (n > m) {\n          var f = floor(n / 10);\n          if (f === 0) return match;\n          if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n          return match;\n        }\n        capture = captures[n - 1];\n    }\n    return capture === undefined ? '' : capture;\n  });\n};\n","var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n  var console = global.console;\n  if (console && console.error) {\n    arguments.length == 1 ? console.error(a) : console.error(a, b);\n  }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar global = require('../internals/global');\n\nvar Array = global.Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n  var buffer = Array(bytes);\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n  var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n  var index = 0;\n  var exponent, mantissa, c;\n  number = abs(number);\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (number != number || number === Infinity) {\n    // eslint-disable-next-line no-self-compare -- NaN check\n    mantissa = number != number ? 1 : 0;\n    exponent = eMax;\n  } else {\n    exponent = floor(log(number) / LN2);\n    c = pow(2, -exponent);\n    if (number * c < 1) {\n      exponent--;\n      c *= 2;\n    }\n    if (exponent + eBias >= 1) {\n      number += rt / c;\n    } else {\n      number += rt * pow(2, 1 - eBias);\n    }\n    if (number * c >= 2) {\n      exponent++;\n      c /= 2;\n    }\n    if (exponent + eBias >= eMax) {\n      mantissa = 0;\n      exponent = eMax;\n    } else if (exponent + eBias >= 1) {\n      mantissa = (number * c - 1) * pow(2, mantissaLength);\n      exponent = exponent + eBias;\n    } else {\n      mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n      exponent = 0;\n    }\n  }\n  while (mantissaLength >= 8) {\n    buffer[index++] = mantissa & 255;\n    mantissa /= 256;\n    mantissaLength -= 8;\n  }\n  exponent = exponent << mantissaLength | mantissa;\n  exponentLength += mantissaLength;\n  while (exponentLength > 0) {\n    buffer[index++] = exponent & 255;\n    exponent /= 256;\n    exponentLength -= 8;\n  }\n  buffer[--index] |= sign * 128;\n  return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n  var bytes = buffer.length;\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var nBits = exponentLength - 7;\n  var index = bytes - 1;\n  var sign = buffer[index--];\n  var exponent = sign & 127;\n  var mantissa;\n  sign >>= 7;\n  while (nBits > 0) {\n    exponent = exponent * 256 + buffer[index--];\n    nBits -= 8;\n  }\n  mantissa = exponent & (1 << -nBits) - 1;\n  exponent >>= -nBits;\n  nBits += mantissaLength;\n  while (nBits > 0) {\n    mantissa = mantissa * 256 + buffer[index--];\n    nBits -= 8;\n  }\n  if (exponent === 0) {\n    exponent = 1 - eBias;\n  } else if (exponent === eMax) {\n    return mantissa ? NaN : sign ? -Infinity : Infinity;\n  } else {\n    mantissa = mantissa + pow(2, mantissaLength);\n    exponent = exponent - eBias;\n  } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n  pack: pack,\n  unpack: unpack\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    isCallable(NewTarget = dummy.constructor) &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n  if (isObject(options) && 'cause' in options) {\n    createNonEnumerableProperty(O, 'cause', options.cause);\n  }\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n  defineProperty(it, METADATA, { value: {\n    objectID: 'O' + id++, // object ID\n    weakData: {}          // weak collections IDs\n  } });\n};\n\nvar fastKey = function (it, create) {\n  // return a primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!hasOwn(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMetadata(it);\n  // return object ID\n  } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n  if (!hasOwn(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMetadata(it);\n  // return the store of weak collections IDs\n  } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n  return it;\n};\n\nvar enable = function () {\n  meta.enable = function () { /* empty */ };\n  REQUIRED = true;\n  var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n  var splice = uncurryThis([].splice);\n  var test = {};\n  test[METADATA] = 1;\n\n  // prevent exposing of metadata key\n  if (getOwnPropertyNames(test).length) {\n    getOwnPropertyNamesModule.f = function (it) {\n      var result = getOwnPropertyNames(it);\n      for (var i = 0, length = result.length; i < length; i++) {\n        if (result[i] === METADATA) {\n          splice(result, i, 1);\n          break;\n        }\n      } return result;\n    };\n\n    $({ target: 'Object', stat: true, forced: true }, {\n      getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n    });\n  }\n};\n\nvar meta = module.exports = {\n  enable: enable,\n  fastKey: fastKey,\n  getWeakData: getWeakData,\n  onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  var wmget = uncurryThis(store.get);\n  var wmhas = uncurryThis(store.has);\n  var wmset = uncurryThis(store.set);\n  set = function (it, metadata) {\n    if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    wmset(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n  return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n  return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  try {\n    construct(noop, empty, argument);\n    return true;\n  } catch (error) {\n    return false;\n  }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  switch (classof(argument)) {\n    case 'AsyncFunction':\n    case 'GeneratorFunction':\n    case 'AsyncGeneratorFunction': return false;\n  }\n  try {\n    // we can't check .prototype since constructors produced by .bind haven't it\n    // `Function#toString` throws on some built-it function in some legacy engines\n    // (for example, `DOMQuad` and similar in FF41-)\n    return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n  } catch (error) {\n    return true;\n  }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n  var called;\n  return isConstructorModern(isConstructorModern.call)\n    || !isConstructorModern(Object)\n    || !isConstructorModern(function () { called = true; })\n    || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n  return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n  var that = options && options.that;\n  var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n  var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n  var INTERRUPTED = !!(options && options.INTERRUPTED);\n  var fn = bind(unboundFunction, that);\n  var iterator, iterFn, index, length, result, next, step;\n\n  var stop = function (condition) {\n    if (iterator) iteratorClose(iterator, 'normal', condition);\n    return new Result(true, condition);\n  };\n\n  var callFn = function (value) {\n    if (AS_ENTRIES) {\n      anObject(value);\n      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n    } return INTERRUPTED ? fn(value, stop) : fn(value);\n  };\n\n  if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n        result = callFn(iterable[index]);\n        if (result && isPrototypeOf(ResultPrototype, result)) return result;\n      } return new Result(false);\n    }\n    iterator = getIterator(iterable, iterFn);\n  }\n\n  next = iterator.next;\n  while (!(step = call(next, iterator)).done) {\n    try {\n      result = callFn(step.value);\n    } catch (error) {\n      iteratorClose(iterator, 'throw', error);\n    }\n    if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n  } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n  var innerResult, innerError;\n  anObject(iterator);\n  try {\n    innerResult = getMethod(iterator, 'return');\n    if (!innerResult) {\n      if (kind === 'throw') throw value;\n      return value;\n    }\n    innerResult = call(innerResult, iterator);\n  } catch (error) {\n    innerError = true;\n    innerResult = error;\n  }\n  if (kind === 'throw') throw value;\n  if (innerError) throw innerResult;\n  anObject(innerResult);\n  return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n  redefine(IteratorPrototype, ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n","// eslint-disable-next-line es/no-math-expm1 -- safe\nvar $expm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.es/ecma262/#sec-math.expm1\nmodule.exports = (!$expm1\n  // Old FF bug\n  || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n  // Tor Browser bug\n  || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;\n} : $expm1;\n","var sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n  return n + 1 / EPSILON - 1 / EPSILON;\n};\n\n// `Math.fround` method implementation\n// https://tc39.es/ecma262/#sec-math.fround\n// eslint-disable-next-line es/no-math-fround -- safe\nmodule.exports = Math.fround || function fround(x) {\n  var $abs = abs(x);\n  var $sign = sign(x);\n  var a, result;\n  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n  a = (1 + EPSILON32 / EPSILON) * $abs;\n  result = a - (a - $abs);\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (result > MAX32 || result != result) return $sign * Infinity;\n  return $sign * result;\n};\n","var log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// eslint-disable-next-line es/no-math-log10 -- safe\nmodule.exports = Math.log10 || function log10(x) {\n  return log(x) * LOG10E;\n};\n","var log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.es/ecma262/#sec-math.log1p\n// eslint-disable-next-line es/no-math-log1p -- safe\nmodule.exports = Math.log1p || function log1p(x) {\n  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);\n};\n","// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n  flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (error) {\n        if (head) notify();\n        else last = undefined;\n        throw error;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n  if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true });\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    // workaround of WebKit ~ iOS Safari 10.1 bug\n    promise.constructor = Promise;\n    then = bind(promise.then, promise);\n    notify = function () {\n      then(flush);\n    };\n  // Node.js without promises\n  } else if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    // strange IE + webpack dev server bug - use .bind(global)\n    macrotask = bind(macrotask, global);\n    notify = function () {\n      macrotask(flush);\n    };\n  }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n  var task = { fn: fn, next: undefined };\n  if (last) last.next = task;\n  if (!head) {\n    head = task;\n    notify();\n  } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol();\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n  var url = new URL('b?a=1&b=2&c=3', 'http://a');\n  var searchParams = url.searchParams;\n  var result = '';\n  url.pathname = 'c%20d';\n  searchParams.forEach(function (value, key) {\n    searchParams['delete']('b');\n    result += key + value;\n  });\n  return (IS_PURE && !url.toJSON)\n    || !searchParams.sort\n    || url.href !== 'http://a/c%20d?a=1&c=3'\n    || searchParams.get('c') !== '3'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !searchParams[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('http://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('http://a#б').hash !== '#%D0%B1'\n    // fails in Chrome 66-\n    || result !== 'a1c3'\n    // throws in Safari\n    || new URL('http://x', undefined).host !== 'x';\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aCallable(resolve);\n  this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n  if (isRegExp(it)) {\n    throw TypeError(\"The method doesn't accept regular expressions\");\n  } return it;\n};\n","var global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n  return typeof it == 'number' && globalIsFinite(it);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar n$ParseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity\n  // MS Edge 18- broken with boxed symbols\n  || (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n  var trimmedString = trim(toString(string));\n  var result = n$ParseFloat(trimmedString);\n  return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : n$ParseFloat;\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n  // MS Edge 18- broken with boxed symbols\n  || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n  var S = trim(toString(string));\n  return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line es/no-symbol -- safe\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n    }\n  } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return $getOwnPropertyNames(it);\n  } catch (error) {\n    return arraySlice(windowNames);\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && classof(it) == 'Window'\n    ? getWindowNames(it)\n    : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  var object = toObject(O);\n  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n  var constructor = object.constructor;\n  if (isCallable(constructor) && object instanceof constructor) {\n    return constructor.prototype;\n  } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n  if (!isObject(it)) return false;\n  if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n  return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n  // This feature detection crashes old WebKit\n  // https://github.com/zloirock/core-js/issues/232\n  if (WEBKIT && WEBKIT < 535) return;\n  var key = Math.random();\n  // In FF throws only define methods\n  // eslint-disable-next-line no-undef, no-useless-call -- required for testing\n  __defineSetter__.call(null, key, function () { /* empty */ });\n  delete global[key];\n});\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n    setter(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n  return function (it) {\n    var O = toIndexedObject(it);\n    var keys = objectKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n    while (length > i) {\n      key = keys[i++];\n      if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n        push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n      }\n    }\n    return result;\n  };\n};\n\nmodule.exports = {\n  // `Object.entries` method\n  // https://tc39.es/ecma262/#sec-object.entries\n  entries: createMethod(true),\n  // `Object.values` method\n  // https://tc39.es/ecma262/#sec-object.values\n  values: createMethod(false)\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n","var Queue = function () {\n  this.head = null;\n  this.tail = null;\n};\n\nQueue.prototype = {\n  add: function (item) {\n    var entry = { item: item, next: null };\n    if (this.head) this.tail.next = entry;\n    else this.head = entry;\n    this.tail = entry;\n  },\n  get: function () {\n    var entry = this.head;\n    if (entry) {\n      this.head = entry.next;\n      if (this.tail === entry) this.tail = null;\n      return entry.item;\n    }\n  }\n};\n\nmodule.exports = Queue;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  var name = options && options.name !== undefined ? options.name : key;\n  var state;\n  if (isCallable(value)) {\n    if (String(name).slice(0, 7) === 'Symbol(') {\n      name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n    }\n    if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n      createNonEnumerableProperty(value, 'name', name);\n    }\n    state = enforceInternalState(value);\n    if (!state.source) {\n      state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n    }\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (isCallable(exec)) {\n    var result = call(exec, R, S);\n    if (result !== null) anObject(result);\n    return result;\n  }\n  if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n  throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/;\n  var re2 = /b*/g;\n  call(nativeExec, re1, 'a');\n  call(nativeExec, re2, 'a');\n  return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n  patchedExec = function exec(string) {\n    var re = this;\n    var state = getInternalState(re);\n    var str = toString(string);\n    var raw = state.raw;\n    var result, reCopy, lastIndex, match, i, object, group;\n\n    if (raw) {\n      raw.lastIndex = re.lastIndex;\n      result = call(patchedExec, raw, str);\n      re.lastIndex = raw.lastIndex;\n      return result;\n    }\n\n    var groups = state.groups;\n    var sticky = UNSUPPORTED_Y && re.sticky;\n    var flags = call(regexpFlags, re);\n    var source = re.source;\n    var charsAdded = 0;\n    var strCopy = str;\n\n    if (sticky) {\n      flags = replace(flags, 'y', '');\n      if (indexOf(flags, 'g') === -1) {\n        flags += 'g';\n      }\n\n      strCopy = stringSlice(str, re.lastIndex);\n      // Support anchored sticky behavior.\n      if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n        source = '(?: ' + source + ')';\n        strCopy = ' ' + strCopy;\n        charsAdded++;\n      }\n      // ^(? + rx + ) is needed, in combination with some str slicing, to\n      // simulate the 'y' flag.\n      reCopy = new RegExp('^(?:' + source + ')', flags);\n    }\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n    match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n    if (sticky) {\n      if (match) {\n        match.input = stringSlice(match.input, charsAdded);\n        match[0] = stringSlice(match[0], charsAdded);\n        match.index = re.lastIndex;\n        re.lastIndex += match[0].length;\n      } else re.lastIndex = 0;\n    } else if (UPDATES_LAST_INDEX_WRONG && match) {\n      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      call(nativeReplace, match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    if (match && groups) {\n      match.groups = object = create(null);\n      for (i = 0; i < groups.length; i++) {\n        group = groups[i];\n        object[group[0]] = match[group[1]];\n      }\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n  var re = $RegExp('a', 'y');\n  re.lastIndex = 2;\n  return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n  return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n  var re = $RegExp('^r', 'gy');\n  re.lastIndex = 2;\n  return re.exec('str') != null;\n});\n\nmodule.exports = {\n  BROKEN_CARET: BROKEN_CARET,\n  MISSED_STICKY: MISSED_STICKY,\n  UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n  var re = $RegExp('.', 's');\n  return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n  var re = $RegExp('(?<a>b)', 'g');\n  return re.exec('b').groups.a !== 'b' ||\n    'b'.replace(re, '$<a>c') !== 'bc';\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(global, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n  if (target && !STATIC) target = target.prototype;\n  if (target && !hasOwn(target, TO_STRING_TAG)) {\n    defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.21.0',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n  license: 'https://github.com/zloirock/core-js/blob/v3.21.0/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    var test = ''[METHOD_NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = toString(requireObjectCoercible($this));\n    var position = toIntegerOrInfinity(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = charCodeAt(S, position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING\n          ? charAt(S, position)\n          : first\n        : CONVERT_TO_STRING\n          ? stringSlice(S, position, position + 2)\n          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n  return function ($this, maxLength, fillString) {\n    var S = toString(requireObjectCoercible($this));\n    var intMaxLength = toLength(maxLength);\n    var stringLength = S.length;\n    var fillStr = fillString === undefined ? ' ' : toString(fillString);\n    var fillLen, stringFiller;\n    if (intMaxLength <= stringLength || fillStr == '') return S;\n    fillLen = intMaxLength - stringLength;\n    stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n    if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n    return IS_END ? S + stringFiller : stringFiller + S;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.padStart` method\n  // https://tc39.es/ecma262/#sec-string.prototype.padstart\n  start: createMethod(false),\n  // `String.prototype.padEnd` method\n  // https://tc39.es/ecma262/#sec-string.prototype.padend\n  end: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar RangeError = global.RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n  var output = [];\n  var counter = 0;\n  var length = string.length;\n  while (counter < length) {\n    var value = charCodeAt(string, counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // It's a high surrogate, and there is a next character.\n      var extra = charCodeAt(string, counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n        push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // It's an unmatched surrogate; only append this code unit, in case the\n        // next code unit is the high surrogate of a surrogate pair.\n        push(output, value);\n        counter--;\n      }\n    } else {\n      push(output, value);\n    }\n  }\n  return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  while (delta > baseMinusTMin * tMax >> 1) {\n    delta = floor(delta / baseMinusTMin);\n    k += base;\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n  var output = [];\n\n  // Convert the input in UCS-2 to an array of Unicode code points.\n  input = ucs2decode(input);\n\n  // Cache the length.\n  var inputLength = input.length;\n\n  // Initialize the state.\n  var n = initialN;\n  var delta = 0;\n  var bias = initialBias;\n  var i, currentValue;\n\n  // Handle the basic code points.\n  for (i = 0; i < input.length; i++) {\n    currentValue = input[i];\n    if (currentValue < 0x80) {\n      push(output, fromCharCode(currentValue));\n    }\n  }\n\n  var basicLength = output.length; // number of basic code points.\n  var handledCPCount = basicLength; // number of code points that have been handled;\n\n  // Finish the basic string with a delimiter unless it's empty.\n  if (basicLength) {\n    push(output, delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next larger one:\n    var m = maxInt;\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n    var handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      throw RangeError(OVERFLOW_ERROR);\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue < n && ++delta > maxInt) {\n        throw RangeError(OVERFLOW_ERROR);\n      }\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer.\n        var q = delta;\n        var k = base;\n        while (true) {\n          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n          if (q < t) break;\n          var qMinusT = q - t;\n          var baseMinusT = base - t;\n          push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n          q = floor(qMinusT / baseMinusT);\n          k += base;\n        }\n\n        push(output, fromCharCode(digitToBasic(q)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        handledCPCount++;\n      }\n    }\n\n    delta++;\n    n++;\n  }\n  return join(output, '');\n};\n\nmodule.exports = function (input) {\n  var encoded = [];\n  var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n  var i, label;\n  for (i = 0; i < labels.length; i++) {\n    label = labels[i];\n    push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n  }\n  return join(encoded, '.');\n};\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n  var str = toString(requireObjectCoercible(this));\n  var result = '';\n  var n = toIntegerOrInfinity(count);\n  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n  return result;\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    return !!whitespaces[METHOD_NAME]()\n      || non[METHOD_NAME]() !== non\n      || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n  });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = toString(requireObjectCoercible($this));\n    if (TYPE & 1) string = replace(string, ltrim, '');\n    if (TYPE & 2) string = replace(string, rtrim, '');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.es/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n  // Deno throws a ReferenceError on `location` access without `--location` flag\n  location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n  if (hasOwn(queue, id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar listener = function (event) {\n  run(event.data);\n};\n\nvar post = function (id) {\n  // old engines have not location.origin\n  global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(handler) {\n    validateArgumentsLength(arguments.length, 1);\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var args = arraySlice(arguments, 1);\n    queue[++counter] = function () {\n      apply(fn, undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (IS_NODE) {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = bind(port.postMessage, port);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    global.addEventListener &&\n    isCallable(global.postMessage) &&\n    !global.importScripts &&\n    location && location.protocol !== 'file:' &&\n    !fails(post)\n  ) {\n    defer = post;\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar RangeError = global.RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toIntegerOrInfinity(it);\n  var length = toLength(number);\n  if (number !== length) throw RangeError('Wrong length or index');\n  return length;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- safe\n  return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it, BYTES) {\n  var offset = toPositiveInteger(it);\n  if (offset % BYTES) throw RangeError('Wrong offset');\n  return offset;\n};\n","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it) {\n  var result = toIntegerOrInfinity(it);\n  if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n  return result;\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n  return String(argument);\n};\n","var IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n  try {\n    // eslint-disable-next-line no-new-func -- safe\n    if (IS_NODE) return Function('return require(\"' + name + '\")')();\n  } catch (error) { /* empty */ }\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n  try {\n    return String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n  aTypedArrayConstructor(C);\n  var index = 0;\n  var length = list.length;\n  var result = new C(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n\nvar addGetter = function (it, key) {\n  nativeDefineProperty(it, key, { get: function () {\n    return getInternalState(this)[key];\n  } });\n};\n\nvar isArrayBuffer = function (it) {\n  var klass;\n  return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n  return isTypedArray(target)\n    && !isSymbol(key)\n    && key in target\n    && isIntegralNumber(+key)\n    && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n  key = toPropertyKey(key);\n  return isTypedArrayIndex(target, key)\n    ? createPropertyDescriptor(2, target[key])\n    : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n  key = toPropertyKey(key);\n  if (isTypedArrayIndex(target, key)\n    && isObject(descriptor)\n    && hasOwn(descriptor, 'value')\n    && !hasOwn(descriptor, 'get')\n    && !hasOwn(descriptor, 'set')\n    // TODO: add validation descriptor w/o calling accessors\n    && !descriptor.configurable\n    && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n    && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n  ) {\n    target[key] = descriptor.value;\n    return target;\n  } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n  if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n    getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n    definePropertyModule.f = wrappedDefineProperty;\n    addGetter(TypedArrayPrototype, 'buffer');\n    addGetter(TypedArrayPrototype, 'byteOffset');\n    addGetter(TypedArrayPrototype, 'byteLength');\n    addGetter(TypedArrayPrototype, 'length');\n  }\n\n  $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n    getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n    defineProperty: wrappedDefineProperty\n  });\n\n  module.exports = function (TYPE, wrapper, CLAMPED) {\n    var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n    var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n    var GETTER = 'get' + TYPE;\n    var SETTER = 'set' + TYPE;\n    var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n    var TypedArrayConstructor = NativeTypedArrayConstructor;\n    var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n    var exported = {};\n\n    var getter = function (that, index) {\n      var data = getInternalState(that);\n      return data.view[GETTER](index * BYTES + data.byteOffset, true);\n    };\n\n    var setter = function (that, index, value) {\n      var data = getInternalState(that);\n      if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n      data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n    };\n\n    var addElement = function (that, index) {\n      nativeDefineProperty(that, index, {\n        get: function () {\n          return getter(this, index);\n        },\n        set: function (value) {\n          return setter(this, index, value);\n        },\n        enumerable: true\n      });\n    };\n\n    if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n      TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n        anInstance(that, TypedArrayConstructorPrototype);\n        var index = 0;\n        var byteOffset = 0;\n        var buffer, byteLength, length;\n        if (!isObject(data)) {\n          length = toIndex(data);\n          byteLength = length * BYTES;\n          buffer = new ArrayBuffer(byteLength);\n        } else if (isArrayBuffer(data)) {\n          buffer = data;\n          byteOffset = toOffset(offset, BYTES);\n          var $len = data.byteLength;\n          if ($length === undefined) {\n            if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n            byteLength = $len - byteOffset;\n            if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n          } else {\n            byteLength = toLength($length) * BYTES;\n            if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n          }\n          length = byteLength / BYTES;\n        } else if (isTypedArray(data)) {\n          return fromList(TypedArrayConstructor, data);\n        } else {\n          return call(typedArrayFrom, TypedArrayConstructor, data);\n        }\n        setInternalState(that, {\n          buffer: buffer,\n          byteOffset: byteOffset,\n          byteLength: byteLength,\n          length: length,\n          view: new DataView(buffer)\n        });\n        while (index < length) addElement(that, index++);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n    } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n      TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n        anInstance(dummy, TypedArrayConstructorPrototype);\n        return inheritIfRequired(function () {\n          if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n          if (isArrayBuffer(data)) return $length !== undefined\n            ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n            : typedArrayOffset !== undefined\n              ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n              : new NativeTypedArrayConstructor(data);\n          if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n          return call(typedArrayFrom, TypedArrayConstructor, data);\n        }(), dummy, TypedArrayConstructor);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n        if (!(key in TypedArrayConstructor)) {\n          createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n        }\n      });\n      TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n    }\n\n    if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n    }\n\n    createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);\n\n    if (TYPED_ARRAY_TAG) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n    }\n\n    exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n    $({\n      global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n    }, exported);\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n      createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    setSpecies(CONSTRUCTOR_NAME);\n  };\n} else module.exports = function () { /* empty */ };\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n  Int8Array(1);\n}) || !fails(function () {\n  new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n  new Int8Array();\n  new Int8Array(null);\n  new Int8Array(1.5);\n  new Int8Array(iterable);\n}, true) || fails(function () {\n  // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n  return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n  return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n  var C = aConstructor(this);\n  var O = toObject(source);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var i, length, result, step, iterator, next;\n  if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n    iterator = getIterator(O, iteratorMethod);\n    next = iterator.next;\n    O = [];\n    while (!(step = call(next, iterator)).done) {\n      O.push(step.value);\n    }\n  }\n  if (mapping && argumentsLength > 2) {\n    mapfn = bind(mapfn, arguments[2]);\n  }\n  length = lengthOfArrayLike(O);\n  result = new (aTypedArrayConstructor(C))(length);\n  for (i = 0; length > i; i++) {\n    result[i] = mapping ? mapfn(O[i], i) : O[i];\n  }\n  return result;\n};\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n  return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype != 42;\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (passed, required) {\n  if (passed < required) throw TypeError('Not enough arguments');\n  return passed;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n    var description = 'Symbol.' + name;\n    if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n      WellKnownSymbolsStore[name] = Symbol[name];\n    } else if (USE_SYMBOL_AS_UID && symbolFor) {\n      WellKnownSymbolsStore[name] = symbolFor(description);\n    } else {\n      WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n    }\n  } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n  '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n  var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n  var path = FULL_NAME.split('.');\n  var ERROR_NAME = path[path.length - 1];\n  var OriginalError = getBuiltIn.apply(null, path);\n\n  if (!OriginalError) return;\n\n  var OriginalErrorPrototype = OriginalError.prototype;\n\n  // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n  if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n  if (!FORCED) return OriginalError;\n\n  var BaseError = getBuiltIn('Error');\n\n  var WrappedError = wrapper(function (a, b) {\n    var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n    var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n    if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n    if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(result, 'stack', clearErrorStack(result.stack, 2));\n    if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n    if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n    return result;\n  });\n\n  WrappedError.prototype = OriginalErrorPrototype;\n\n  if (ERROR_NAME !== 'Error') {\n    if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n    else copyConstructorProperties(WrappedError, BaseError, { name: true });\n  }\n\n  copyConstructorProperties(WrappedError, OriginalError);\n\n  if (!IS_PURE) try {\n    // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n    if (OriginalErrorPrototype.name !== ERROR_NAME) {\n      createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n    }\n    OriginalErrorPrototype.constructor = WrappedError;\n  } catch (error) { /* empty */ }\n\n  return WrappedError;\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar AGGREGATE_ERROR = 'AggregateError';\nvar $AggregateError = getBuiltIn(AGGREGATE_ERROR);\nvar FORCED = !fails(function () {\n  return $AggregateError([1]).errors[0] !== 1;\n}) && fails(function () {\n  return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7;\n});\n\n// https://github.com/tc39/proposal-error-cause\n$({ global: true, forced: FORCED }, {\n  AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) {\n    // eslint-disable-next-line no-unused-vars -- required for functions `.length`\n    return function AggregateError(errors, message) { return apply(init, this, arguments); };\n  }, FORCED, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Error = global.Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n  var options = arguments.length > 2 ? arguments[2] : undefined;\n  var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n  var that;\n  if (setPrototypeOf) {\n    that = setPrototypeOf(new Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n  } else {\n    that = isInstance ? this : create(AggregateErrorPrototype);\n    createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n  }\n  if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n  if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n  installErrorCause(that, options);\n  var errorsArray = [];\n  iterate(errors, push, { that: errorsArray });\n  createNonEnumerableProperty(that, 'errors', errorsArray);\n  return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, Error);\nelse copyConstructorProperties($AggregateError, Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {\n  constructor: createPropertyDescriptor(1, $AggregateError),\n  message: createPropertyDescriptor(1, ''),\n  name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n  AggregateError: $AggregateError\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n  ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","var $ = require('../internals/export');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n\n// `ArrayBuffer.isView` method\n// https://tc39.es/ecma262/#sec-arraybuffer.isview\n$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n  isView: ArrayBufferViewCore.isView\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar DataViewPrototype = DataView.prototype;\nvar un$ArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);\nvar getUint8 = uncurryThis(DataViewPrototype.getUint8);\nvar setUint8 = uncurryThis(DataViewPrototype.setUint8);\n\nvar INCORRECT_SLICE = fails(function () {\n  return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n  slice: function slice(start, end) {\n    if (un$ArrayBufferSlice && end === undefined) {\n      return un$ArrayBufferSlice(anObject(this), start); // FF fix\n    }\n    var length = anObject(this).byteLength;\n    var first = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n    var viewSource = new DataView(this);\n    var viewTarget = new DataView(result);\n    var index = 0;\n    while (first < fin) {\n      setUint8(viewTarget, index++, getUint8(viewSource, first++));\n    } return result;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'Array', proto: true }, {\n  at: function at(index) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : O[k];\n  }\n});\n\naddToUnscopables('at');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  concat: function concat(arg) {\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = lengthOfArrayLike(E);\n        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n  copyWithin: copyWithin\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n  every: function every(callbackfn /* , thisArg */) {\n    return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n  fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n    return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n  find: function find(callbackfn /* , that = undefined */) {\n    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n  flatMap: function flatMap(callbackfn /* , thisArg */) {\n    var O = toObject(this);\n    var sourceLen = lengthOfArrayLike(O);\n    var A;\n    aCallable(callbackfn);\n    A = arraySpeciesCreate(O, 0);\n    A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return A;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n  flat: function flat(/* depthArg = 1 */) {\n    var depthArg = arguments.length ? arguments[0] : undefined;\n    var O = toObject(this);\n    var sourceLen = lengthOfArrayLike(O);\n    var A = arraySpeciesCreate(O, 0);\n    A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n    return A;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n  forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n  // eslint-disable-next-line es/no-array-from -- required for testing\n  Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n  from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar $IndexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$IndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? un$IndexOf(this, searchElement, fromIndex) || 0\n      : $IndexOf(this, searchElement, fromIndex);\n  }\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n  isArray: isArray\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n  defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n  join: function join(separator) {\n    return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n  }\n});\n","var $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\n// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n  lastIndexOf: lastIndexOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isConstructor = require('../internals/is-constructor');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\n\nvar ISNT_GENERIC = fails(function () {\n  function F() { /* empty */ }\n  return !(Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.es/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n  of: function of(/* ...args */) {\n    var index = 0;\n    var argumentsLength = arguments.length;\n    var result = new (isConstructor(this) ? this : Array)(argumentsLength);\n    while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n    result.length = argumentsLength;\n    return result;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduceRight');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n  reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n    return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    var length = arguments.length;\n    return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar un$Reverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n  reverse: function reverse() {\n    // eslint-disable-next-line no-self-assign -- dirty hack\n    if (isArray(this)) this.length = this.length;\n    return un$Reverse(this);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  slice: function slice(start, end) {\n    var O = toIndexedObject(this);\n    var length = lengthOfArrayLike(O);\n    var k = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n    var Constructor, result, n;\n    if (isArray(O)) {\n      Constructor = O.constructor;\n      // cross-realm fallback\n      if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n        Constructor = undefined;\n      } else if (isObject(Constructor)) {\n        Constructor = Constructor[SPECIES];\n        if (Constructor === null) Constructor = undefined;\n      }\n      if (Constructor === Array || Constructor === undefined) {\n        return un$Slice(O, k, fin);\n      }\n    }\n    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n    result.length = n;\n    return result;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n  some: function some(callbackfn /* , thisArg */) {\n    return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n  test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n  test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n  // feature detection can be too slow, so check engines versions\n  if (V8) return V8 < 70;\n  if (FF && FF > 3) return;\n  if (IE_OR_EDGE) return true;\n  if (WEBKIT) return WEBKIT < 603;\n\n  var result = '';\n  var code, chr, value, index;\n\n  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n  for (code = 65; code < 76; code++) {\n    chr = String.fromCharCode(code);\n\n    switch (code) {\n      case 66: case 69: case 70: case 72: value = 3; break;\n      case 68: case 71: value = 4; break;\n      default: value = 2;\n    }\n\n    for (index = 0; index < 47; index++) {\n      test.push({ k: chr + index, v: value });\n    }\n  }\n\n  test.sort(function (a, b) { return b.v - a.v; });\n\n  for (index = 0; index < test.length; index++) {\n    chr = test[index].k.charAt(0);\n    if (result.charAt(result.length - 1) !== chr) result += chr;\n  }\n\n  return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n  return function (x, y) {\n    if (y === undefined) return -1;\n    if (x === undefined) return 1;\n    if (comparefn !== undefined) return +comparefn(x, y) || 0;\n    return toString(x) > toString(y) ? 1 : -1;\n  };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  sort: function sort(comparefn) {\n    if (comparefn !== undefined) aCallable(comparefn);\n\n    var array = toObject(this);\n\n    if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n    var items = [];\n    var arrayLength = lengthOfArrayLike(array);\n    var itemsLength, index;\n\n    for (index = 0; index < arrayLength; index++) {\n      if (index in array) push(items, array[index]);\n    }\n\n    internalSort(items, getSortCompare(comparefn));\n\n    itemsLength = items.length;\n    index = 0;\n\n    while (index < itemsLength) array[index] = items[index++];\n    while (index < arrayLength) delete array[index++];\n\n    return array;\n  }\n});\n","var setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.es/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  splice: function splice(start, deleteCount /* , ...items */) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var actualStart = toAbsoluteIndex(start, len);\n    var argumentsLength = arguments.length;\n    var insertCount, actualDeleteCount, A, k, from, to;\n    if (argumentsLength === 0) {\n      insertCount = actualDeleteCount = 0;\n    } else if (argumentsLength === 1) {\n      insertCount = 0;\n      actualDeleteCount = len - actualStart;\n    } else {\n      insertCount = argumentsLength - 2;\n      actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n    }\n    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n    }\n    A = arraySpeciesCreate(O, actualDeleteCount);\n    for (k = 0; k < actualDeleteCount; k++) {\n      from = actualStart + k;\n      if (from in O) createProperty(A, k, O[from]);\n    }\n    A.length = actualDeleteCount;\n    if (insertCount < actualDeleteCount) {\n      for (k = actualStart; k < len - actualDeleteCount; k++) {\n        from = k + actualDeleteCount;\n        to = k + insertCount;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n    } else if (insertCount > actualDeleteCount) {\n      for (k = len - actualDeleteCount; k > actualStart; k--) {\n        from = k + actualDeleteCount - 1;\n        to = k + insertCount - 1;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n    }\n    for (k = 0; k < insertCount; k++) {\n      O[k + actualStart] = arguments[k + 2];\n    }\n    O.length = len - actualDeleteCount + insertCount;\n    return A;\n  }\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","var $ = require('../internals/export');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\n\n// `DataView` constructor\n// https://tc39.es/ecma262/#sec-dataview-constructor\n$({ global: true, forced: !NATIVE_ARRAY_BUFFER }, {\n  DataView: ArrayBufferModule.DataView\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar FORCED = fails(function () {\n  return new Date(16e11).getYear() !== 120;\n});\n\nvar getFullYear = uncurryThis(Date.prototype.getFullYear);\n\n// `Date.prototype.getYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.getyear\n$({ target: 'Date', proto: true, forced: FORCED }, {\n  getYear: function getYear() {\n    return getFullYear(this) - 1900;\n  }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Date = global.Date;\nvar getTime = uncurryThis(Date.prototype.getTime);\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n  now: function now() {\n    return getTime(new Date());\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar DatePrototype = Date.prototype;\nvar getTime = uncurryThis(DatePrototype.getTime);\nvar setFullYear = uncurryThis(DatePrototype.setFullYear);\n\n// `Date.prototype.setYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.setyear\n$({ target: 'Date', proto: true }, {\n  setYear: function setYear(year) {\n    // validate\n    getTime(this);\n    var yi = toIntegerOrInfinity(year);\n    var yyyy = 0 <= yi && yi <= 99 ? yi + 1900 : yi;\n    return setFullYear(this, yyyy);\n  }\n});\n","var $ = require('../internals/export');\n\n// `Date.prototype.toGMTString` method\n// https://tc39.es/ecma262/#sec-date.prototype.togmtstring\n$({ target: 'Date', proto: true }, {\n  toGMTString: Date.prototype.toUTCString\n});\n","var $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n  toISOString: toISOString\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n  return new Date(NaN).toJSON() !== null\n    || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.es/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  toJSON: function toJSON(key) {\n    var O = toObject(this);\n    var pv = toPrimitive(O, 'number');\n    return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n  }\n});\n","var hasOwn = require('../internals/has-own-property');\nvar redefine = require('../internals/redefine');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nif (!hasOwn(DatePrototype, TO_PRIMITIVE)) {\n  redefine(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar un$DateToString = uncurryThis(DatePrototype[TO_STRING]);\nvar getTime = uncurryThis(DatePrototype.getTime);\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) != INVALID_DATE) {\n  redefine(DatePrototype, TO_STRING, function toString() {\n    var value = getTime(this);\n    // eslint-disable-next-line no-self-compare -- NaN check\n    return value === value ? un$DateToString(this) : INVALID_DATE;\n  });\n}\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  var O = {};\n  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n  $({ global: true, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  if (WebAssembly && WebAssembly[ERROR_NAME]) {\n    var O = {};\n    O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n    $({ target: WEB_ASSEMBLY, stat: true, forced: FORCED }, O);\n  }\n};\n\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n  return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n  return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n  return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n  return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n  return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n  return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n  return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n  return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n  return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n  return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","var redefine = require('../internals/redefine');\nvar errorToString = require('../internals/error-to-string');\n\nvar ErrorPrototype = Error.prototype;\n\n// `Error.prototype.toString` method fix\n// https://tc39.es/ecma262/#sec-error.prototype.tostring\nif (ErrorPrototype.toString !== errorToString) {\n  redefine(ErrorPrototype, 'toString', errorToString);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar exec = uncurryThis(/./.exec);\nvar numberToString = uncurryThis(1.0.toString);\nvar toUpperCase = uncurryThis(''.toUpperCase);\n\nvar raw = /[\\w*+\\-./@]/;\n\nvar hex = function (code, length) {\n  var result = numberToString(code, 16);\n  while (result.length < length) result = '0' + result;\n  return result;\n};\n\n// `escape` method\n// https://tc39.es/ecma262/#sec-escape-string\n$({ global: true }, {\n  escape: function escape(string) {\n    var str = toString(string);\n    var result = '';\n    var length = str.length;\n    var index = 0;\n    var chr, code;\n    while (index < length) {\n      chr = charAt(str, index++);\n      if (exec(raw, chr)) {\n        result += chr;\n      } else {\n        code = charCodeAt(chr, 0);\n        if (code < 256) {\n          result += '%' + hex(code, 2);\n        } else {\n          result += '%u' + toUpperCase(hex(code, 4));\n        }\n      }\n    } return result;\n  }\n});\n","var $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n$({ target: 'Function', proto: true, forced: Function.bind !== bind }, {\n  bind: bind\n});\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n  definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {\n    if (!isCallable(this) || !isObject(O)) return false;\n    var P = this.prototype;\n    if (!isObject(P)) return O instanceof this;\n    // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n    while (O = getPrototypeOf(O)) if (P === O) return true;\n    return false;\n  } });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n  defineProperty(FunctionPrototype, NAME, {\n    configurable: true,\n    get: function () {\n      try {\n        return regExpExec(nameRE, functionToString(this))[1];\n      } catch (error) {\n        return '';\n      }\n    }\n  });\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n  globalThis: global\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar Array = global.Array;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar fix = function (match, offset, string) {\n  var prev = charAt(string, offset - 1);\n  var next = charAt(string, offset + 1);\n  if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n    return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n  } return match;\n};\n\nvar FORCED = fails(function () {\n  return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n    || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nif ($stringify) {\n  // `JSON.stringify` method\n  // https://tc39.es/ecma262/#sec-json.stringify\n  // https://github.com/tc39/proposal-well-formed-stringify\n  $({ target: 'JSON', stat: true, forced: FORCED }, {\n    // eslint-disable-next-line no-unused-vars -- required for `.length`\n    stringify: function stringify(it, replacer, space) {\n      for (var i = 0, l = arguments.length, args = Array(l); i < l; i++) args[i] = arguments[i];\n      var result = apply($stringify, null, args);\n      return typeof result == 'string' ? replace(result, tester, fix) : result;\n    }\n  });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// eslint-disable-next-line es/no-math-acosh -- required for testing\nvar $acosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !$acosh\n  // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n  || Math.floor($acosh(Number.MAX_VALUE)) != 710\n  // Tor Browser bug: Math.acosh(Infinity) -> NaN\n  || $acosh(Infinity) != Infinity;\n\n// `Math.acosh` method\n// https://tc39.es/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  acosh: function acosh(x) {\n    return (x = +x) < 1 ? NaN : x > 94906265.62425156\n      ? log(x) + LN2\n      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n  }\n});\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-asinh -- required for testing\nvar $asinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));\n}\n\n// `Math.asinh` method\n// https://tc39.es/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: !($asinh && 1 / $asinh(0) > 0) }, {\n  asinh: asinh\n});\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-atanh -- required for testing\nvar $atanh = Math.atanh;\nvar log = Math.log;\n\n// `Math.atanh` method\n// https://tc39.es/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: !($atanh && 1 / $atanh(-0) < 0) }, {\n  atanh: function atanh(x) {\n    return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;\n  }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.es/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n  cbrt: function cbrt(x) {\n    return sign(x = +x) * pow(abs(x), 1 / 3);\n  }\n});\n","var $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.es/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n  clz32: function clz32(x) {\n    return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;\n  }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// eslint-disable-next-line es/no-math-cosh -- required for testing\nvar $cosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\n// `Math.cosh` method\n// https://tc39.es/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: !$cosh || $cosh(710) === Infinity }, {\n  cosh: function cosh(x) {\n    var t = expm1(abs(x) - 1) + 1;\n    return (t + 1 / (t * E * E)) * (E / 2);\n  }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.es/ecma262/#sec-math.expm1\n// eslint-disable-next-line es/no-math-expm1 -- required for testing\n$({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 });\n","var $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.es/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  hypot: function hypot(value1, value2) {\n    var sum = 0;\n    var i = 0;\n    var aLen = arguments.length;\n    var larg = 0;\n    var arg, div;\n    while (i < aLen) {\n      arg = abs(arguments[i++]);\n      if (larg < arg) {\n        div = larg / arg;\n        sum = sum * div * div + 1;\n        larg = arg;\n      } else if (arg > 0) {\n        div = arg / larg;\n        sum += div * div;\n      } else sum += arg;\n    }\n    return larg === Infinity ? Infinity : larg * sqrt(sum);\n  }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-math-imul -- required for testing\nvar $imul = Math.imul;\n\nvar FORCED = fails(function () {\n  return $imul(0xFFFFFFFF, 5) != -5 || $imul.length != 2;\n});\n\n// `Math.imul` method\n// https://tc39.es/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  imul: function imul(x, y) {\n    var UINT16 = 0xFFFF;\n    var xn = +x;\n    var yn = +y;\n    var xl = UINT16 & xn;\n    var yl = UINT16 & yn;\n    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n  }\n});\n","var $ = require('../internals/export');\nvar log10 = require('../internals/math-log10');\n\n// `Math.log10` method\n// https://tc39.es/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n  log10: log10\n});\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.es/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n  log2: function log2(x) {\n    return log(x) / LN2;\n  }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n  sign: sign\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line es/no-math-sinh -- required for testing\n  return Math.sinh(-2e-17) != -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.es/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  sinh: function sinh(x) {\n    return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);\n  }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.es/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n  tanh: function tanh(x) {\n    var a = expm1(x = +x);\n    var b = expm1(-x);\n    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n  }\n});\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n  trunc: function trunc(it) {\n    return (it > 0 ? floor : ceil)(it);\n  }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n  var primValue = toPrimitive(value, 'number');\n  return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, 'number');\n  var first, third, radix, maxCode, digits, length, index, code;\n  if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n  if (typeof it == 'string' && it.length > 2) {\n    it = trim(it);\n    first = charCodeAt(it, 0);\n    if (first === 43 || first === 45) {\n      third = charCodeAt(it, 2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (charCodeAt(it, 1)) {\n        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n        default: return +it;\n      }\n      digits = arraySlice(it, 2);\n      length = digits.length;\n      for (index = 0; index < length; index++) {\n        code = charCodeAt(digits, index);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n  var NumberWrapper = function Number(value) {\n    var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n    var dummy = this;\n    // check on 1..constructor(foo) case\n    return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n      ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n  };\n  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES2015 (in case, if modules with ES2015 Number statics required before):\n    'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n    // ESNext\n    'fromString,range'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n    }\n  }\n  NumberWrapper.prototype = NumberPrototype;\n  NumberPrototype.constructor = NumberWrapper;\n  redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.es/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true }, {\n  EPSILON: Math.pow(2, -52)\n});\n","var $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","var $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n  isInteger: isIntegralNumber\n});\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n  isNaN: function isNaN(number) {\n    // eslint-disable-next-line no-self-compare -- NaN check\n    return number != number;\n  }\n});\n","var $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.es/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n  isSafeInteger: function isSafeInteger(number) {\n    return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n  }\n});\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n  MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true }, {\n  MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.es/ecma262/#sec-number.parseFloat\n// eslint-disable-next-line es/no-number-parsefloat -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {\n  parseFloat: parseFloat\n});\n","var $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n  parseInt: parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar log10 = require('../internals/math-log10');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar isFinite = global.isFinite;\nvar abs = Math.abs;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar round = Math.round;\nvar un$ToExponential = uncurryThis(1.0.toExponential);\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\n\n// Edge 17-\nvar ROUNDS_PROPERLY = un$ToExponential(-6.9e-11, 4) === '-6.9000e-11'\n  // IE11- && Edge 14-\n  && un$ToExponential(1.255, 2) === '1.25e+0'\n  // FF86-, V8 ~ Chrome 49-50\n  && un$ToExponential(12345, 3) === '1.235e+4'\n  // FF86-, V8 ~ Chrome 49-50\n  && un$ToExponential(25, 0) === '3e+1';\n\n// IE8-\nvar THROWS_ON_INFINITY_FRACTION = fails(function () {\n  un$ToExponential(1, Infinity);\n}) && fails(function () {\n  un$ToExponential(1, -Infinity);\n});\n\n// Safari <11 && FF <50\nvar PROPER_NON_FINITE_THIS_CHECK = !fails(function () {\n  un$ToExponential(Infinity, Infinity);\n}) && !fails(function () {\n  un$ToExponential(NaN, Infinity);\n});\n\nvar FORCED = !ROUNDS_PROPERLY || !THROWS_ON_INFINITY_FRACTION || !PROPER_NON_FINITE_THIS_CHECK;\n\n// `Number.prototype.toExponential` method\n// https://tc39.es/ecma262/#sec-number.prototype.toexponential\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toExponential: function toExponential(fractionDigits) {\n    var x = thisNumberValue(this);\n    if (fractionDigits === undefined) return un$ToExponential(x);\n    var f = toIntegerOrInfinity(fractionDigits);\n    if (!isFinite(x)) return String(x);\n    // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n    if (f < 0 || f > 20) throw RangeError('Incorrect fraction digits');\n    if (ROUNDS_PROPERLY) return un$ToExponential(x, f);\n    var s = '';\n    var m = '';\n    var e = 0;\n    var c = '';\n    var d = '';\n    if (x < 0) {\n      s = '-';\n      x = -x;\n    }\n    if (x === 0) {\n      e = 0;\n      m = repeat('0', f + 1);\n    } else {\n      // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08\n      // TODO: improve accuracy with big fraction digits\n      var l = log10(x);\n      e = floor(l);\n      var n = 0;\n      var w = pow(10, e - f);\n      n = round(x / w);\n      if (2 * x >= (2 * n + 1) * w) {\n        n += 1;\n      }\n      if (n >= pow(10, f + 1)) {\n        n /= 10;\n        e += 1;\n      }\n      m = String(n);\n    }\n    if (f !== 0) {\n      m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1);\n    }\n    if (e === 0) {\n      c = '+';\n      d = '0';\n    } else {\n      c = e > 0 ? '+' : '-';\n      d = String(abs(e));\n    }\n    m += 'e' + c + d;\n    return s + m;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n  var n = 0;\n  var x2 = x;\n  while (x2 >= 4096) {\n    n += 12;\n    x2 /= 4096;\n  }\n  while (x2 >= 2) {\n    n += 1;\n    x2 /= 2;\n  } return n;\n};\n\nvar multiply = function (data, n, c) {\n  var index = -1;\n  var c2 = c;\n  while (++index < 6) {\n    c2 += n * data[index];\n    data[index] = c2 % 1e7;\n    c2 = floor(c2 / 1e7);\n  }\n};\n\nvar divide = function (data, n) {\n  var index = 6;\n  var c = 0;\n  while (--index >= 0) {\n    c += data[index];\n    data[index] = floor(c / n);\n    c = (c % n) * 1e7;\n  }\n};\n\nvar dataToString = function (data) {\n  var index = 6;\n  var s = '';\n  while (--index >= 0) {\n    if (s !== '' || index === 0 || data[index] !== 0) {\n      var t = String(data[index]);\n      s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n    }\n  } return s;\n};\n\nvar FORCED = fails(function () {\n  return un$ToFixed(0.00008, 3) !== '0.000' ||\n    un$ToFixed(0.9, 0) !== '1' ||\n    un$ToFixed(1.255, 2) !== '1.25' ||\n    un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n  // V8 ~ Android 4.3-\n  un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toFixed: function toFixed(fractionDigits) {\n    var number = thisNumberValue(this);\n    var fractDigits = toIntegerOrInfinity(fractionDigits);\n    var data = [0, 0, 0, 0, 0, 0];\n    var sign = '';\n    var result = '0';\n    var e, z, j, k;\n\n    // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n    if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (number != number) return 'NaN';\n    if (number <= -1e21 || number >= 1e21) return String(number);\n    if (number < 0) {\n      sign = '-';\n      number = -number;\n    }\n    if (number > 1e-21) {\n      e = log(number * pow(2, 69, 1)) - 69;\n      z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n      z *= 0x10000000000000;\n      e = 52 - e;\n      if (e > 0) {\n        multiply(data, 0, z);\n        j = fractDigits;\n        while (j >= 7) {\n          multiply(data, 1e7, 0);\n          j -= 7;\n        }\n        multiply(data, pow(10, j, 1), 0);\n        j = e - 1;\n        while (j >= 23) {\n          divide(data, 1 << 23);\n          j -= 23;\n        }\n        divide(data, 1 << j);\n        multiply(data, 1, 1);\n        divide(data, 2);\n        result = dataToString(data);\n      } else {\n        multiply(data, 0, z);\n        multiply(data, 1 << -e, 0);\n        result = dataToString(data) + repeat('0', fractDigits);\n      }\n    }\n    if (fractDigits > 0) {\n      k = result.length;\n      result = sign + (k <= fractDigits\n        ? '0.' + repeat('0', fractDigits - k) + result\n        : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n    } else {\n      result = sign + result;\n    } return result;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar un$ToPrecision = uncurryThis(1.0.toPrecision);\n\nvar FORCED = fails(function () {\n  // IE7-\n  return un$ToPrecision(1, undefined) !== '1';\n}) || !fails(function () {\n  // V8 ~ Android 4.3-\n  un$ToPrecision({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.es/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toPrecision: function toPrecision(precision) {\n    return precision === undefined\n      ? un$ToPrecision(thisNumberValue(this))\n      : un$ToPrecision(thisNumberValue(this), precision);\n  }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n  assign: assign\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n  create: create\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __defineGetter__: function __defineGetter__(P, getter) {\n      definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true });\n    }\n  });\n}\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties').f;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {\n  defineProperties: defineProperties\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n  defineProperty: defineProperty\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __defineSetter__: function __defineSetter__(P, setter) {\n      definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true });\n    }\n  });\n}\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n  entries: function entries(O) {\n    return $entries(O);\n  }\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  freeze: function freeze(it) {\n    return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n  }\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n  fromEntries: function fromEntries(iterable) {\n    var obj = {};\n    iterate(iterable, function (k, v) {\n      createProperty(obj, k, v);\n    }, { AS_ENTRIES: true });\n    return obj;\n  }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n    return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n  }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n    var O = toIndexedObject(object);\n    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n    var keys = ownKeys(O);\n    var result = {};\n    var index = 0;\n    var key, descriptor;\n    while (keys.length > index) {\n      descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n      if (descriptor !== undefined) createProperty(result, key, descriptor);\n    }\n    return result;\n  }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  getOwnPropertyNames: getOwnPropertyNames\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(it) {\n    return nativeGetPrototypeOf(toObject(it));\n  }\n});\n\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\n\n// `Object.hasOwn` method\n// https://github.com/tc39/proposal-accessible-object-hasownproperty\n$({ target: 'Object', stat: true }, {\n  hasOwn: hasOwn\n});\n","var $ = require('../internals/export');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\n// eslint-disable-next-line es/no-object-isextensible -- safe\n$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, {\n  isExtensible: $isExtensible\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar $isFrozen = Object.isFrozen;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.es/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE }, {\n  isFrozen: function isFrozen(it) {\n    if (!isObject(it)) return true;\n    if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return true;\n    return $isFrozen ? $isFrozen(it) : false;\n  }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar $isSealed = Object.isSealed;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.es/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE }, {\n  isSealed: function isSealed(it) {\n    if (!isObject(it)) return true;\n    if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return true;\n    return $isSealed ? $isSealed(it) : false;\n  }\n});\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n  is: is\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  keys: function keys(it) {\n    return nativeKeys(toObject(it));\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __lookupGetter__: function __lookupGetter__(P) {\n      var O = toObject(this);\n      var key = toPropertyKey(P);\n      var desc;\n      do {\n        if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n      } while (O = getPrototypeOf(O));\n    }\n  });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __lookupSetter__: function __lookupSetter__(P) {\n      var O = toObject(this);\n      var key = toPropertyKey(P);\n      var desc;\n      do {\n        if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n      } while (O = getPrototypeOf(O));\n    }\n  });\n}\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-preventextensions -- safe\nvar $preventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.es/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  preventExtensions: function preventExtensions(it) {\n    return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it;\n  }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-seal -- safe\nvar $seal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { $seal(1); });\n\n// `Object.seal` method\n// https://tc39.es/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  seal: function seal(it) {\n    return $seal && isObject(it) ? $seal(onFreeze(it)) : it;\n  }\n});\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n  setPrototypeOf: setPrototypeOf\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n  values: function values(O) {\n    return $values(O);\n  }\n});\n","var $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != $parseFloat }, {\n  parseFloat: $parseFloat\n});\n","var $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != $parseInt }, {\n  parseInt: $parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n  allSettled: function allSettled(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'fulfilled', value: value };\n          --remaining || resolve(values);\n        }, function (error) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'rejected', reason: error };\n          --remaining || resolve(values);\n        });\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n  any: function any(iterable) {\n    var C = this;\n    var AggregateError = getBuiltIn('AggregateError');\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(C.resolve);\n      var errors = [];\n      var counter = 0;\n      var remaining = 1;\n      var alreadyResolved = false;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyRejected = false;\n        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyResolved = true;\n          resolve(value);\n        }, function (error) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyRejected = true;\n          errors[index] = error;\n          --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n        });\n      });\n      --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n  // eslint-disable-next-line unicorn/no-thenable -- required for testing\n  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = isCallable(onFinally);\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromise)) {\n  var method = getBuiltIn('Promise').prototype['finally'];\n  if (NativePromise.prototype['finally'] !== method) {\n    redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n  }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\n\nvar getInternalState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n  var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n  var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\n  // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n  // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n  // We can't detect it synchronously, so just check versions\n  if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n  // We need Promise#finally in the pure version for preventing prototype pollution\n  if (IS_PURE && !PromisePrototype['finally']) return true;\n  // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n  // Detect correctness of subclassing with @@species support\n  var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n  var FakePromise = function (exec) {\n    exec(function () { /* empty */ }, function () { /* empty */ });\n  };\n  var constructor = promise.constructor = {};\n  constructor[SPECIES] = FakePromise;\n  SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n  if (!SUBCLASSING) return true;\n  // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n  return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n  var value = state.value;\n  var ok = state.state == FULFILLED;\n  var handler = ok ? reaction.ok : reaction.fail;\n  var resolve = reaction.resolve;\n  var reject = reaction.reject;\n  var domain = reaction.domain;\n  var result, then, exited;\n  try {\n    if (handler) {\n      if (!ok) {\n        if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n        state.rejection = HANDLED;\n      }\n      if (handler === true) result = value;\n      else {\n        if (domain) domain.enter();\n        result = handler(value); // can throw\n        if (domain) {\n          domain.exit();\n          exited = true;\n        }\n      }\n      if (result === reaction.promise) {\n        reject(TypeError('Promise-chain cycle'));\n      } else if (then = isThenable(result)) {\n        call(then, result, resolve, reject);\n      } else resolve(result);\n    } else reject(value);\n  } catch (error) {\n    if (domain && !exited) domain.exit();\n    reject(error);\n  }\n};\n\nvar notify = function (state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  microtask(function () {\n    var reactions = state.reactions;\n    var reaction;\n    while (reaction = reactions.get()) {\n      callReaction(reaction, state);\n    }\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n  call(task, global, function () {\n    var promise = state.facade;\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n  call(task, global, function () {\n    var promise = state.facade;\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, state, unwrap) {\n  return function (value) {\n    fn(state, value, unwrap);\n  };\n};\n\nvar internalReject = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  try {\n    if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n    if (then) {\n      microtask(function () {\n        var wrapper = { done: false };\n        try {\n          call(then, value,\n            bind(internalResolve, wrapper, state),\n            bind(internalReject, wrapper, state)\n          );\n        } catch (error) {\n          internalReject(wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(state, false);\n    }\n  } catch (error) {\n    internalReject({ done: false }, error, state);\n  }\n};\n\n// constructor polyfill\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromisePrototype);\n    aCallable(executor);\n    call(Internal, this);\n    var state = getInternalState(this);\n    try {\n      executor(bind(internalResolve, state), bind(internalReject, state));\n    } catch (error) {\n      internalReject(state, error);\n    }\n  };\n  PromisePrototype = PromiseConstructor.prototype;\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: new Queue(),\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n  Internal.prototype = redefineAll(PromisePrototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.es/ecma262/#sec-promise.prototype.then\n    // eslint-disable-next-line unicorn/no-thenable -- safe\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      state.parent = true;\n      reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n      reaction.fail = isCallable(onRejected) && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      if (state.state == PENDING) state.reactions.add(reaction);\n      else microtask(function () {\n        callReaction(reaction, state);\n      });\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.es/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, state);\n    this.reject = bind(internalReject, state);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {\n    nativeThen = NativePromisePrototype.then;\n\n    if (!SUBCLASSING) {\n      // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n      redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n        var that = this;\n        return new PromiseConstructor(function (resolve, reject) {\n          call(nativeThen, that, resolve, reject);\n        }).then(onFulfilled, onRejected);\n      // https://github.com/zloirock/core-js/issues/640\n      }, { unsafe: true });\n\n      // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n      redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true });\n    }\n\n    // make `.constructor === Promise` work for native promise-based APIs\n    try {\n      delete NativePromisePrototype.constructor;\n    } catch (error) { /* empty */ }\n\n    // make `instanceof Promise` work for native promise-based APIs\n    if (setPrototypeOf) {\n      setPrototypeOf(NativePromisePrototype, PromisePrototype);\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n  Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n  // `Promise.reject` method\n  // https://tc39.es/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    call(capability.reject, undefined, r);\n    return capability.promise;\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n  // `Promise.resolve` method\n  // https://tc39.es/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n  // `Promise.all` method\n  // https://tc39.es/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aCallable(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        remaining++;\n        call($promiseResolve, C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.es/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aCallable(C.resolve);\n      iterate(iterable, function (promise) {\n        call($promiseResolve, C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","var $ = require('../internals/export');\nvar functionApply = require('../internals/function-apply');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n  // eslint-disable-next-line es/no-reflect -- required for testing\n  Reflect.apply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.es/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n  apply: function apply(target, thisArgument, argumentsList) {\n    return functionApply(aCallable(target), thisArgument, anObject(argumentsList));\n  }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n  function F() { /* empty */ }\n  return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n  nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n  construct: function construct(Target, args /* , newTarget */) {\n    aConstructor(Target);\n    anObject(args);\n    var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n    if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n    if (Target == newTarget) {\n      // w/o altered newTarget, optimization for 0-4 arguments\n      switch (args.length) {\n        case 0: return new Target();\n        case 1: return new Target(args[0]);\n        case 2: return new Target(args[0], args[1]);\n        case 3: return new Target(args[0], args[1], args[2]);\n        case 4: return new Target(args[0], args[1], args[2], args[3]);\n      }\n      // w/o altered newTarget, lot of arguments case\n      var $args = [null];\n      apply(push, $args, args);\n      return new (apply(bind, Target, $args))();\n    }\n    // with altered newTarget, not support built-in constructors\n    var proto = newTarget.prototype;\n    var instance = create(isObject(proto) ? proto : ObjectPrototype);\n    var result = apply(Target, instance, args);\n    return isObject(result) ? result : instance;\n  }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n  // eslint-disable-next-line es/no-reflect -- required for testing\n  Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.es/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n  defineProperty: function defineProperty(target, propertyKey, attributes) {\n    anObject(target);\n    var key = toPropertyKey(propertyKey);\n    anObject(attributes);\n    try {\n      definePropertyModule.f(target, key, attributes);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.es/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n  deleteProperty: function deleteProperty(target, propertyKey) {\n    var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n    return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n  }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n    return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n  }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(target) {\n    return objectGetPrototypeOf(anObject(target));\n  }\n});\n","var $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n  var receiver = arguments.length < 3 ? target : arguments[2];\n  var descriptor, prototype;\n  if (anObject(target) === receiver) return target[propertyKey];\n  descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n  if (descriptor) return isDataDescriptor(descriptor)\n    ? descriptor.value\n    : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n  if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n  get: get\n});\n","var $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.es/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n  has: function has(target, propertyKey) {\n    return propertyKey in target;\n  }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Reflect.isExtensible` method\n// https://tc39.es/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n  isExtensible: function isExtensible(target) {\n    anObject(target);\n    return $isExtensible(target);\n  }\n});\n","var $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n  ownKeys: ownKeys\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.es/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n  preventExtensions: function preventExtensions(target) {\n    anObject(target);\n    try {\n      var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n      if (objectPreventExtensions) objectPreventExtensions(target);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n  setPrototypeOf: function setPrototypeOf(target, proto) {\n    anObject(target);\n    aPossiblePrototype(proto);\n    try {\n      objectSetPrototypeOf(target, proto);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n","var $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.es/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n  var receiver = arguments.length < 4 ? target : arguments[3];\n  var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n  var existingDescriptor, prototype, setter;\n  if (!ownDescriptor) {\n    if (isObject(prototype = getPrototypeOf(target))) {\n      return set(prototype, propertyKey, V, receiver);\n    }\n    ownDescriptor = createPropertyDescriptor(0);\n  }\n  if (isDataDescriptor(ownDescriptor)) {\n    if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n    if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n      if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n      existingDescriptor.value = V;\n      definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n    } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n  } else {\n    setter = ownDescriptor.set;\n    if (setter === undefined) return false;\n    call(setter, receiver, V);\n  } return true;\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n  var Constructor = function () { /* empty */ };\n  var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });\n  // eslint-disable-next-line es/no-reflect -- required for testing\n  return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n  set: set\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n  (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n    re2[MATCH] = false;\n    // RegExp constructor can alter flags and IsRegExp works correct with @@match\n    return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n  }));\n\nvar handleDotAll = function (string) {\n  var length = string.length;\n  var index = 0;\n  var result = '';\n  var brackets = false;\n  var chr;\n  for (; index <= length; index++) {\n    chr = charAt(string, index);\n    if (chr === '\\\\') {\n      result += chr + charAt(string, ++index);\n      continue;\n    }\n    if (!brackets && chr === '.') {\n      result += '[\\\\s\\\\S]';\n    } else {\n      if (chr === '[') {\n        brackets = true;\n      } else if (chr === ']') {\n        brackets = false;\n      } result += chr;\n    }\n  } return result;\n};\n\nvar handleNCG = function (string) {\n  var length = string.length;\n  var index = 0;\n  var result = '';\n  var named = [];\n  var names = {};\n  var brackets = false;\n  var ncg = false;\n  var groupid = 0;\n  var groupname = '';\n  var chr;\n  for (; index <= length; index++) {\n    chr = charAt(string, index);\n    if (chr === '\\\\') {\n      chr = chr + charAt(string, ++index);\n    } else if (chr === ']') {\n      brackets = false;\n    } else if (!brackets) switch (true) {\n      case chr === '[':\n        brackets = true;\n        break;\n      case chr === '(':\n        if (exec(IS_NCG, stringSlice(string, index + 1))) {\n          index += 2;\n          ncg = true;\n        }\n        result += chr;\n        groupid++;\n        continue;\n      case chr === '>' && ncg:\n        if (groupname === '' || hasOwn(names, groupname)) {\n          throw new SyntaxError('Invalid capture group name');\n        }\n        names[groupname] = true;\n        named[named.length] = [groupname, groupid];\n        ncg = false;\n        groupname = '';\n        continue;\n    }\n    if (ncg) groupname += chr;\n    else result += chr;\n  } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n  var RegExpWrapper = function RegExp(pattern, flags) {\n    var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n    var patternIsRegExp = isRegExp(pattern);\n    var flagsAreUndefined = flags === undefined;\n    var groups = [];\n    var rawPattern = pattern;\n    var rawFlags, dotAll, sticky, handled, result, state;\n\n    if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n      return pattern;\n    }\n\n    if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n      pattern = pattern.source;\n      if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n    }\n\n    pattern = pattern === undefined ? '' : toString(pattern);\n    flags = flags === undefined ? '' : toString(flags);\n    rawPattern = pattern;\n\n    if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n      dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n      if (dotAll) flags = replace(flags, /s/g, '');\n    }\n\n    rawFlags = flags;\n\n    if (MISSED_STICKY && 'sticky' in re1) {\n      sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n      if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n    }\n\n    if (UNSUPPORTED_NCG) {\n      handled = handleNCG(pattern);\n      pattern = handled[0];\n      groups = handled[1];\n    }\n\n    result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n    if (dotAll || sticky || groups.length) {\n      state = enforceInternalState(result);\n      if (dotAll) {\n        state.dotAll = true;\n        state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n      }\n      if (sticky) state.sticky = true;\n      if (groups.length) state.groups = groups;\n    }\n\n    if (pattern !== rawPattern) try {\n      // fails in old engines, but we have no alternatives for unsupported regex syntax\n      createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n    } catch (error) { /* empty */ }\n\n    return result;\n  };\n\n  var proxy = function (key) {\n    key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n      configurable: true,\n      get: function () { return NativeRegExp[key]; },\n      set: function (it) { NativeRegExp[key] = it; }\n    });\n  };\n\n  for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n    proxy(keys[index++]);\n  }\n\n  RegExpPrototype.constructor = RegExpWrapper;\n  RegExpWrapper.prototype = RegExpPrototype;\n  redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n  defineProperty(RegExpPrototype, 'dotAll', {\n    configurable: true,\n    get: function () {\n      if (this === RegExpPrototype) return undefined;\n      // We can't use InternalStateModule.getterFor because\n      // we don't add metadata for regexps created by a literal.\n      if (classof(this) === 'RegExp') {\n        return !!getInternalState(this).dotAll;\n      }\n      throw TypeError('Incompatible receiver, RegExp required');\n    }\n  });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n  exec: exec\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n  return Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call({ dotAll: true, sticky: true }) !== 'sy';\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) objectDefinePropertyModule.f(RegExpPrototype, 'flags', {\n  configurable: true,\n  get: regExpFlags\n});\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n  defineProperty(RegExpPrototype, 'sticky', {\n    configurable: true,\n    get: function () {\n      if (this === RegExpPrototype) return undefined;\n      // We can't use InternalStateModule.getterFor because\n      // we don't add metadata for regexps created by a literal.\n      if (classof(this) === 'RegExp') {\n        return !!getInternalState(this).sticky;\n      }\n      throw TypeError('Incompatible receiver, RegExp required');\n    }\n  });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n  var execCalled = false;\n  var re = /[ac]/;\n  re.exec = function () {\n    execCalled = true;\n    return /./.exec.apply(this, arguments);\n  };\n  return re.test('abc') === true && execCalled;\n}();\n\nvar Error = global.Error;\nvar un$Test = uncurryThis(/./.test);\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n  test: function (str) {\n    var exec = this.exec;\n    if (!isCallable(exec)) return un$Test(this, str);\n    var result = call(exec, this, str);\n    if (result !== null && !isObject(result)) {\n      throw new Error('RegExp exec method returned something other than an Object or null');\n    }\n    return !!result;\n  }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n  redefine(RegExp.prototype, TO_STRING, function toString() {\n    var R = anObject(this);\n    var p = $toString(R.source);\n    var rf = R.flags;\n    var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n    return '/' + p + '/' + f;\n  }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n  return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n  anchor: function anchor(name) {\n    return createHTML(this, 'a', 'name', name);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n  return '𠮷'.at(-2) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'String', proto: true, forced: FORCED }, {\n  at: function at(index) {\n    var S = toString(requireObjectCoercible(this));\n    var len = S.length;\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : charAt(S, k);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.es/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n  big: function big() {\n    return createHTML(this, 'big', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.es/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n  blink: function blink() {\n    return createHTML(this, 'blink', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.es/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n  bold: function bold() {\n    return createHTML(this, 'b', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n  codePointAt: function codePointAt(pos) {\n    return codeAt(this, pos);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar un$EndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\n    var that = toString(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = that.length;\n    var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n    var search = toString(searchString);\n    return un$EndsWith\n      ? un$EndsWith(that, search, end)\n      : slice(that, end - search.length, end) === search;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n  fixed: function fixed() {\n    return createHTML(this, 'tt', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n  fontcolor: function fontcolor(color) {\n    return createHTML(this, 'font', 'color', color);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n  fontsize: function fontsize(size) {\n    return createHTML(this, 'font', 'size', size);\n  }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar RangeError = global.RangeError;\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\nvar join = uncurryThis([].join);\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  fromCodePoint: function fromCodePoint(x) {\n    var elements = [];\n    var length = arguments.length;\n    var i = 0;\n    var code;\n    while (length > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n      elements[i] = code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);\n    } return join(elements, '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~stringIndexOf(\n      toString(requireObjectCoercible(this)),\n      toString(notARegExp(searchString)),\n      arguments.length > 1 ? arguments[1] : undefined\n    );\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.es/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n  italics: function italics() {\n    return createHTML(this, 'i', '', '');\n  }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: toString(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n  link: function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  }\n});\n","'use strict';\n/* eslint-disable es/no-string-prototype-matchall -- safe */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof-raw');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar regExpFlags = require('../internals/regexp-flags');\nvar getMethod = require('../internals/get-method');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\nvar getFlags = uncurryThis(regExpFlags);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar un$MatchAll = uncurryThis(''.matchAll);\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!un$MatchAll && !fails(function () {\n  un$MatchAll('a', /./);\n});\n\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {\n  setInternalState(this, {\n    type: REGEXP_STRING_ITERATOR,\n    regexp: regexp,\n    string: string,\n    global: $global,\n    unicode: fullUnicode,\n    done: false\n  });\n}, REGEXP_STRING, function next() {\n  var state = getInternalState(this);\n  if (state.done) return { value: undefined, done: true };\n  var R = state.regexp;\n  var S = state.string;\n  var match = regExpExec(R, S);\n  if (match === null) return { value: undefined, done: state.done = true };\n  if (state.global) {\n    if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n    return { value: match, done: false };\n  }\n  state.done = true;\n  return { value: match, done: false };\n});\n\nvar $matchAll = function (string) {\n  var R = anObject(this);\n  var S = toString(string);\n  var C, flagsValue, flags, matcher, $global, fullUnicode;\n  C = speciesConstructor(R, RegExp);\n  flagsValue = R.flags;\n  if (flagsValue === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype)) {\n    flagsValue = getFlags(R);\n  }\n  flags = flagsValue === undefined ? '' : toString(flagsValue);\n  matcher = new C(C === RegExp ? R.source : R, flags);\n  $global = !!~stringIndexOf(flags, 'g');\n  fullUnicode = !!~stringIndexOf(flags, 'u');\n  matcher.lastIndex = toLength(R.lastIndex);\n  return new $RegExpStringIterator(matcher, S, $global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n  matchAll: function matchAll(regexp) {\n    var O = requireObjectCoercible(this);\n    var flags, S, matcher, rx;\n    if (regexp != null) {\n      if (isRegExp(regexp)) {\n        flags = toString(requireObjectCoercible('flags' in RegExpPrototype\n          ? regexp.flags\n          : getFlags(regexp)\n        ));\n        if (!~stringIndexOf(flags, 'g')) throw TypeError('`.matchAll` does not allow non-global regexes');\n      }\n      if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);\n      matcher = getMethod(regexp, MATCH_ALL);\n      if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;\n      if (matcher) return call(matcher, regexp, O);\n    } else if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);\n    S = toString(O);\n    rx = new RegExp(regexp, 'g');\n    return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);\n  }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || redefine(RegExpPrototype, MATCH_ALL, $matchAll);\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.es/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = requireObjectCoercible(this);\n      var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);\n      return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n    function (string) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(nativeMatch, rx, S);\n\n      if (res.done) return res.value;\n\n      if (!rx.global) return regExpExec(rx, S);\n\n      var fullUnicode = rx.unicode;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = toString(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n    return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padStart: function padStart(maxLength /* , fillString = ' ' */) {\n    return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toObject = require('../internals/to-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.raw` method\n// https://tc39.es/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n  raw: function raw(template) {\n    var rawTemplate = toIndexedObject(toObject(template).raw);\n    var literalSegments = lengthOfArrayLike(rawTemplate);\n    var argumentsLength = arguments.length;\n    var elements = [];\n    var i = 0;\n    while (literalSegments > i) {\n      push(elements, toString(rawTemplate[i++]));\n      if (i === literalSegments) return join(elements, '');\n      if (i < argumentsLength) push(elements, toString(arguments[i]));\n    }\n  }\n});\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n  repeat: repeat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpFlags = require('../internals/regexp-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\nvar getFlags = uncurryThis(regExpFlags);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n  if (fromIndex > string.length) return -1;\n  if (searchValue === '') return fromIndex;\n  return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n  replaceAll: function replaceAll(searchValue, replaceValue) {\n    var O = requireObjectCoercible(this);\n    var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n    var position = 0;\n    var endOfLastMatch = 0;\n    var result = '';\n    if (searchValue != null) {\n      IS_REG_EXP = isRegExp(searchValue);\n      if (IS_REG_EXP) {\n        flags = toString(requireObjectCoercible('flags' in RegExpPrototype\n          ? searchValue.flags\n          : getFlags(searchValue)\n        ));\n        if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');\n      }\n      replacer = getMethod(searchValue, REPLACE);\n      if (replacer) {\n        return call(replacer, searchValue, O, replaceValue);\n      } else if (IS_PURE && IS_REG_EXP) {\n        return replace(toString(O), searchValue, replaceValue);\n      }\n    }\n    string = toString(O);\n    searchString = toString(searchValue);\n    functionalReplace = isCallable(replaceValue);\n    if (!functionalReplace) replaceValue = toString(replaceValue);\n    searchLength = searchString.length;\n    advanceBy = max(1, searchLength);\n    position = stringIndexOf(string, searchString, 0);\n    while (position !== -1) {\n      replacement = functionalReplace\n        ? toString(replaceValue(searchString, position, string))\n        : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n      result += stringSlice(string, endOfLastMatch, position) + replacement;\n      endOfLastMatch = position + searchLength;\n      position = stringIndexOf(string, searchString, position + advanceBy);\n    }\n    if (endOfLastMatch < string.length) {\n      result += stringSlice(string, endOfLastMatch);\n    }\n    return result;\n  }\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n  // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n  return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n  if (/./[REPLACE]) {\n    return /./[REPLACE]('a', '$0') === '';\n  }\n  return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n  return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.es/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = requireObjectCoercible(this);\n      var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n      return replacer\n        ? call(replacer, searchValue, O, replaceValue)\n        : call(nativeReplace, toString(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n    function (string, replaceValue) {\n      var rx = anObject(this);\n      var S = toString(string);\n\n      if (\n        typeof replaceValue == 'string' &&\n        stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n        stringIndexOf(replaceValue, '$<') === -1\n      ) {\n        var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n        if (res.done) return res.value;\n      }\n\n      var functionalReplace = isCallable(replaceValue);\n      if (!functionalReplace) replaceValue = toString(replaceValue);\n\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n\n        push(results, result);\n        if (!global) break;\n\n        var matchStr = toString(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n\n        var matched = toString(result[0]);\n        var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = concat([matched], captures, position, S);\n          if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n          var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + stringSlice(S, nextSourcePosition);\n    }\n  ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n  return [\n    // `String.prototype.search` method\n    // https://tc39.es/ecma262/#sec-string.prototype.search\n    function search(regexp) {\n      var O = requireObjectCoercible(this);\n      var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n      return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n    },\n    // `RegExp.prototype[@@search]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n    function (string) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(nativeSearch, rx, S);\n\n      if (res.done) return res.value;\n\n      var previousLastIndex = rx.lastIndex;\n      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n      var result = regExpExec(rx, S);\n      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n      return result === null ? -1 : result.index;\n    }\n  ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n  small: function small() {\n    return createHTML(this, 'small', '', '');\n  }\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n  // eslint-disable-next-line regexp/no-empty-group -- required for testing\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n  var internalSplit;\n  if (\n    'abbc'.split(/(b)*/)[1] == 'c' ||\n    // eslint-disable-next-line regexp/no-empty-group -- required for testing\n    'test'.split(/(?:)/, -1).length != 4 ||\n    'ab'.split(/(?:ab)*/).length != 2 ||\n    '.'.split(/(.?)(.?)/).length != 4 ||\n    // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n    '.'.split(/()()/).length > 1 ||\n    ''.split(/.?/).length\n  ) {\n    // based on es5-shim implementation, need to rework it\n    internalSplit = function (separator, limit) {\n      var string = toString(requireObjectCoercible(this));\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (separator === undefined) return [string];\n      // If `separator` is not a regex, use native split\n      if (!isRegExp(separator)) {\n        return call(nativeSplit, string, separator, lim);\n      }\n      var output = [];\n      var flags = (separator.ignoreCase ? 'i' : '') +\n                  (separator.multiline ? 'm' : '') +\n                  (separator.unicode ? 'u' : '') +\n                  (separator.sticky ? 'y' : '');\n      var lastLastIndex = 0;\n      // Make `global` and avoid `lastIndex` issues by working with a copy\n      var separatorCopy = new RegExp(separator.source, flags + 'g');\n      var match, lastIndex, lastLength;\n      while (match = call(regexpExec, separatorCopy, string)) {\n        lastIndex = separatorCopy.lastIndex;\n        if (lastIndex > lastLastIndex) {\n          push(output, stringSlice(string, lastLastIndex, match.index));\n          if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n          lastLength = match[0].length;\n          lastLastIndex = lastIndex;\n          if (output.length >= lim) break;\n        }\n        if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n      }\n      if (lastLastIndex === string.length) {\n        if (lastLength || !exec(separatorCopy, '')) push(output, '');\n      } else push(output, stringSlice(string, lastLastIndex));\n      return output.length > lim ? arraySlice(output, 0, lim) : output;\n    };\n  // Chakra, V8\n  } else if ('0'.split(undefined, 0).length) {\n    internalSplit = function (separator, limit) {\n      return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n    };\n  } else internalSplit = nativeSplit;\n\n  return [\n    // `String.prototype.split` method\n    // https://tc39.es/ecma262/#sec-string.prototype.split\n    function split(separator, limit) {\n      var O = requireObjectCoercible(this);\n      var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n      return splitter\n        ? call(splitter, separator, O, limit)\n        : call(internalSplit, toString(O), separator, limit);\n    },\n    // `RegExp.prototype[@@split]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n    //\n    // NOTE: This cannot be properly polyfilled in engines that don't support\n    // the 'y' flag.\n    function (string, limit) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n      if (res.done) return res.value;\n\n      var C = speciesConstructor(rx, RegExp);\n\n      var unicodeMatching = rx.unicode;\n      var flags = (rx.ignoreCase ? 'i' : '') +\n                  (rx.multiline ? 'm' : '') +\n                  (rx.unicode ? 'u' : '') +\n                  (UNSUPPORTED_Y ? 'g' : 'y');\n\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n      var p = 0;\n      var q = 0;\n      var A = [];\n      while (q < S.length) {\n        splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n        var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n        var e;\n        if (\n          z === null ||\n          (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n        ) {\n          q = advanceStringIndex(S, q, unicodeMatching);\n        } else {\n          push(A, stringSlice(S, p, q));\n          if (A.length === lim) return A;\n          for (var i = 1; i <= z.length - 1; i++) {\n            push(A, z[i]);\n            if (A.length === lim) return A;\n          }\n          q = p = e;\n        }\n      }\n      push(A, stringSlice(S, p));\n      return A;\n    }\n  ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = toString(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = toString(searchString);\n    return un$StartsWith\n      ? un$StartsWith(that, search, index)\n      : stringSlice(that, index, index + search.length) === search;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.es/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n  strike: function strike() {\n    return createHTML(this, 'strike', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n  sub: function sub() {\n    return createHTML(this, 'sub', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\nvar min = Math.min;\n\n// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing\nvar FORCED = !''.substr || 'ab'.substr(-1) !== 'b';\n\n// `String.prototype.substr` method\n// https://tc39.es/ecma262/#sec-string.prototype.substr\n$({ target: 'String', proto: true, forced: FORCED }, {\n  substr: function substr(start, length) {\n    var that = toString(requireObjectCoercible(this));\n    var size = that.length;\n    var intStart = toIntegerOrInfinity(start);\n    var intLength, intEnd;\n    if (intStart === Infinity) intStart = 0;\n    if (intStart < 0) intStart = max(size + intStart, 0);\n    intLength = length === undefined ? size : toIntegerOrInfinity(length);\n    if (intLength <= 0 || intLength === Infinity) return '';\n    intEnd = min(intStart + intLength, size);\n    return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.es/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n  sup: function sup() {\n    return createHTML(this, 'sup', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimEnd');\n\nvar trimEnd = FORCED ? function trimEnd() {\n  return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n\n// `String.prototype.{ trimEnd, trimRight }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\n$({ target: 'String', proto: true, name: 'trimEnd', forced: FORCED }, {\n  trimEnd: trimEnd,\n  trimRight: trimEnd\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n  return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\n$({ target: 'String', proto: true, name: 'trimStart', forced: FORCED }, {\n  trimStart: trimStart,\n  trimLeft: trimStart\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n  trim: function trim() {\n    return $trim(this);\n  }\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n  // Safari 12 bug\n  NativeSymbol().description !== undefined\n)) {\n  var EmptyStringDescriptionStore = {};\n  // wrap Symbol constructor for correct work with undefined description\n  var SymbolWrapper = function Symbol() {\n    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n    var result = isPrototypeOf(SymbolPrototype, this)\n      ? new NativeSymbol(description)\n      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n    if (description === '') EmptyStringDescriptionStore[result] = true;\n    return result;\n  };\n\n  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n  SymbolWrapper.prototype = SymbolPrototype;\n  SymbolPrototype.constructor = SymbolWrapper;\n\n  var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n  var symbolToString = uncurryThis(SymbolPrototype.toString);\n  var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n  var replace = uncurryThis(''.replace);\n  var stringSlice = uncurryThis(''.slice);\n\n  defineProperty(SymbolPrototype, 'description', {\n    configurable: true,\n    get: function description() {\n      var symbol = symbolValueOf(this);\n      var string = symbolToString(symbol);\n      if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n      var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n      return desc === '' ? undefined : desc;\n    }\n  });\n\n  $({ global: true, forced: true }, {\n    Symbol: SymbolWrapper\n  });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n  return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (O, P, Attributes) {\n  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n  nativeDefineProperty(O, P, Attributes);\n  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n  }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n  var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n  setInternalState(symbol, {\n    type: SYMBOL,\n    tag: tag,\n    description: description\n  });\n  if (!DESCRIPTORS) symbol.description = description;\n  return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n  anObject(O);\n  var key = toPropertyKey(P);\n  anObject(Attributes);\n  if (hasOwn(AllSymbols, key)) {\n    if (!Attributes.enumerable) {\n      if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n      O[HIDDEN][key] = true;\n    } else {\n      if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n    } return setSymbolDescriptor(O, key, Attributes);\n  } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n  anObject(O);\n  var properties = toIndexedObject(Properties);\n  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n  $forEach(keys, function (key) {\n    if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n  });\n  return O;\n};\n\nvar $create = function create(O, Properties) {\n  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n  var P = toPropertyKey(V);\n  var enumerable = call(nativePropertyIsEnumerable, this, P);\n  if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n  return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n    ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n  var it = toIndexedObject(O);\n  var key = toPropertyKey(P);\n  if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n  var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n  if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n    descriptor.enumerable = true;\n  }\n  return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n  var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n  });\n  return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n      push(result, AllSymbols[key]);\n    }\n  });\n  return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n  $Symbol = function Symbol() {\n    if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n    var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n    var tag = uid(description);\n    var setter = function (value) {\n      if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n      if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n    };\n    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n    return wrap(tag, description);\n  };\n\n  SymbolPrototype = $Symbol[PROTOTYPE];\n\n  redefine(SymbolPrototype, 'toString', function toString() {\n    return getInternalState(this).tag;\n  });\n\n  redefine($Symbol, 'withoutSetter', function (description) {\n    return wrap(uid(description), description);\n  });\n\n  propertyIsEnumerableModule.f = $propertyIsEnumerable;\n  definePropertyModule.f = $defineProperty;\n  definePropertiesModule.f = $defineProperties;\n  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n  wrappedWellKnownSymbolModule.f = function (name) {\n    return wrap(wellKnownSymbol(name), name);\n  };\n\n  if (DESCRIPTORS) {\n    // https://github.com/tc39/proposal-Symbol-description\n    nativeDefineProperty(SymbolPrototype, 'description', {\n      configurable: true,\n      get: function description() {\n        return getInternalState(this).description;\n      }\n    });\n    if (!IS_PURE) {\n      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n  Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n  defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Symbol.for` method\n  // https://tc39.es/ecma262/#sec-symbol.for\n  'for': function (key) {\n    var string = $toString(key);\n    if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n    var symbol = $Symbol(string);\n    StringToSymbolRegistry[string] = symbol;\n    SymbolToStringRegistry[symbol] = string;\n    return symbol;\n  },\n  // `Symbol.keyFor` method\n  // https://tc39.es/ecma262/#sec-symbol.keyfor\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n    if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n  },\n  useSetter: function () { USE_SETTER = true; },\n  useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n  // `Object.create` method\n  // https://tc39.es/ecma262/#sec-object.create\n  create: $create,\n  // `Object.defineProperty` method\n  // https://tc39.es/ecma262/#sec-object.defineproperty\n  defineProperty: $defineProperty,\n  // `Object.defineProperties` method\n  // https://tc39.es/ecma262/#sec-object.defineproperties\n  defineProperties: $defineProperties,\n  // `Object.getOwnPropertyDescriptor` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Object.getOwnPropertyNames` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertynames\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // `Object.getOwnPropertySymbols` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return getOwnPropertySymbolsModule.f(toObject(it));\n  }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n    var symbol = $Symbol();\n    // MS Edge converts symbol values to JSON as {}\n    return $stringify([symbol]) != '[null]'\n      // WebKit converts symbol values to JSON as null\n      || $stringify({ a: symbol }) != '{}'\n      // V8 throws on boxed symbols\n      || $stringify(Object(symbol)) != '{}';\n  });\n\n  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n    // eslint-disable-next-line no-unused-vars -- required for `.length`\n    stringify: function stringify(it, replacer, space) {\n      var args = arraySlice(arguments);\n      var $replacer = replacer;\n      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n      if (!isArray(replacer)) replacer = function (key, value) {\n        if (isCallable($replacer)) value = call($replacer, this, key, value);\n        if (!isSymbol(value)) return value;\n      };\n      args[1] = replacer;\n      return apply($stringify, null, args);\n    }\n  });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n  var valueOf = SymbolPrototype.valueOf;\n  // eslint-disable-next-line no-unused-vars -- required for .length\n  redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n    // TODO: improve hint logic\n    return call(valueOf, this);\n  });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n  var O = aTypedArray(this);\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n  return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n  return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n  return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar call = require('../internals/function-call');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n  var length = arguments.length;\n  return call(\n    $fill,\n    aTypedArray(this),\n    value,\n    length > 1 ? arguments[1] : undefined,\n    length > 2 ? arguments[2] : undefined\n  );\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n  var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  return fromSpeciesAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n  return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n  return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n  return function Float32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n  return function Float64Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n  $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n  return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n  return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n  return function Int16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n  return function Int32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n  return function Int8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n  TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n  && TypedArrayPrototype.values\n  && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n  && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n  return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n  return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n  return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n  return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n  var length = arguments.length;\n  return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n  return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n    return new (typedArraySpeciesConstructor(O))(length);\n  });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.es/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n  var index = 0;\n  var length = arguments.length;\n  var result = new (aTypedArrayConstructor(this))(length);\n  while (length > index) result[index] = arguments[index++];\n  return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n  var length = arguments.length;\n  return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n  var length = arguments.length;\n  return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n  var that = this;\n  var length = aTypedArray(that).length;\n  var middle = floor(length / 2);\n  var index = 0;\n  var value;\n  while (index < middle) {\n    value = that[index];\n    that[index++] = that[--length];\n    that[length] = value;\n  } return that;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n  // eslint-disable-next-line es/no-typed-arrays -- required for testing\n  var array = new Uint8ClampedArray(2);\n  call($set, array, { length: 1, 0: 3 }, 1);\n  return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n  var array = new Int8Array(2);\n  array.set(1);\n  array.set('2', 1);\n  return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var src = toIndexedObject(arrayLike);\n  if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n  var length = this.length;\n  var len = lengthOfArrayLike(src);\n  var index = 0;\n  if (len + offset > length) throw RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line es/no-typed-arrays -- required for testing\n  new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n  var list = arraySlice(aTypedArray(this), start, end);\n  var C = typedArraySpeciesConstructor(this);\n  var index = 0;\n  var length = list.length;\n  var result = new C(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n  return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar Array = global.Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {\n  un$Sort(new Uint16Array(2), null);\n}) && fails(function () {\n  un$Sort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!un$Sort && !fails(function () {\n  // feature detection can be too slow, so check engines versions\n  if (V8) return V8 < 74;\n  if (FF) return FF < 67;\n  if (IE_OR_EDGE) return true;\n  if (WEBKIT) return WEBKIT < 602;\n\n  var array = new Uint16Array(516);\n  var expected = Array(516);\n  var index, mod;\n\n  for (index = 0; index < 516; index++) {\n    mod = index % 4;\n    array[index] = 515 - index;\n    expected[index] = index - 2 * mod + 3;\n  }\n\n  un$Sort(array, function (a, b) {\n    return (a / 4 | 0) - (b / 4 | 0);\n  });\n\n  for (index = 0; index < 516; index++) {\n    if (array[index] !== expected[index]) return true;\n  }\n});\n\nvar getSortCompare = function (comparefn) {\n  return function (x, y) {\n    if (comparefn !== undefined) return +comparefn(x, y) || 0;\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (y !== y) return -1;\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (x !== x) return 1;\n    if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n    return x > y;\n  };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n  if (comparefn !== undefined) aCallable(comparefn);\n  if (STABLE_SORT) return un$Sort(this, comparefn);\n\n  return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n  var O = aTypedArray(this);\n  var length = O.length;\n  var beginIndex = toAbsoluteIndex(begin, length);\n  var C = typedArraySpeciesConstructor(O);\n  return new C(\n    O.buffer,\n    O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n    toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n  );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n  $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n  return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n  Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n  return apply(\n    $toLocaleString,\n    TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n    arraySlice(arguments)\n  );\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n  arrayToString = function toString() {\n    return join(this);\n  };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n  return function Uint16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n  return function Uint32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n  return function Uint8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n  return function Uint8ClampedArray(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n}, true);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar stringSlice = uncurryThis(''.slice);\n\nvar hex2 = /^[\\da-f]{2}$/i;\nvar hex4 = /^[\\da-f]{4}$/i;\n\n// `unescape` method\n// https://tc39.es/ecma262/#sec-unescape-string\n$({ global: true }, {\n  unescape: function unescape(string) {\n    var str = toString(string);\n    var result = '';\n    var length = str.length;\n    var index = 0;\n    var chr, part;\n    while (index < length) {\n      chr = charAt(str, index++);\n      if (chr === '%') {\n        if (charAt(str, index) === 'u') {\n          part = stringSlice(str, index + 1, index + 5);\n          if (exec(hex4, part)) {\n            result += fromCharCode(parseInt(part, 16));\n            index += 5;\n            continue;\n          }\n        } else {\n          part = stringSlice(str, index, index + 2);\n          if (exec(hex2, part)) {\n            result += fromCharCode(parseInt(part, 16));\n            index += 2;\n            continue;\n          }\n        }\n      }\n      result += chr;\n    } return result;\n  }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar isExtensible = require('../internals/object-is-extensible');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n  return function WeakMap() {\n    return init(this, arguments.length ? arguments[0] : undefined);\n  };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n  InternalMetadataModule.enable();\n  var WeakMapPrototype = $WeakMap.prototype;\n  var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n  var nativeHas = uncurryThis(WeakMapPrototype.has);\n  var nativeGet = uncurryThis(WeakMapPrototype.get);\n  var nativeSet = uncurryThis(WeakMapPrototype.set);\n  redefineAll(WeakMapPrototype, {\n    'delete': function (key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeDelete(this, key) || state.frozen['delete'](key);\n      } return nativeDelete(this, key);\n    },\n    has: function has(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas(this, key) || state.frozen.has(key);\n      } return nativeHas(this, key);\n    },\n    get: function get(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n      } return nativeGet(this, key);\n    },\n    set: function set(key, value) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n      } else nativeSet(this, key, value);\n      return this;\n    }\n  });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n  return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar hasOwn = require('../internals/has-own-property');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar ctoi = require('../internals/base64-map').ctoi;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]+$/;\n\nvar $atob = getBuiltIn('atob');\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar exec = uncurryThis(disallowed.exec);\n\nvar NO_SPACES_IGNORE = fails(function () {\n  return atob(' ') !== '';\n});\n\nvar NO_ARG_RECEIVING_CHECK = !NO_SPACES_IGNORE && !fails(function () {\n  $atob();\n});\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, enumerable: true, forced: NO_SPACES_IGNORE || NO_ARG_RECEIVING_CHECK }, {\n  atob: function atob(data) {\n    validateArgumentsLength(arguments.length, 1);\n    if (NO_ARG_RECEIVING_CHECK) return $atob(data);\n    var string = replace(toString(data), whitespaces, '');\n    var output = '';\n    var position = 0;\n    var bc = 0;\n    var chr, bs;\n    if (string.length % 4 == 0) {\n      string = replace(string, finalEq, '');\n    }\n    if (string.length % 4 == 1 || exec(disallowed, string)) {\n      throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n    }\n    while (chr = charAt(string, position++)) {\n      if (hasOwn(ctoi, chr)) {\n        bs = bc % 4 ? bs * 64 + ctoi[chr] : ctoi[chr];\n        if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));\n      }\n    } return output;\n  }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar itoc = require('../internals/base64-map').itoc;\n\nvar $btoa = getBuiltIn('btoa');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\nvar NO_ARG_RECEIVING_CHECK = !!$btoa && !fails(function () {\n  $btoa();\n});\n\n// `btoa` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa\n$({ global: true, enumerable: true, forced: NO_ARG_RECEIVING_CHECK }, {\n  btoa: function btoa(data) {\n    validateArgumentsLength(arguments.length, 1);\n    if (NO_ARG_RECEIVING_CHECK) return $btoa(data);\n    var string = toString(data);\n    var output = '';\n    var position = 0;\n    var map = itoc;\n    var block, charCode;\n    while (charAt(string, position) || (map = '=', position % 1)) {\n      charCode = charCodeAt(string, position += 3 / 4);\n      if (charCode > 0xFF) {\n        throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError');\n      }\n      block = block << 8 | charCode;\n      output += charAt(map, 63 & block >> 8 - position % 1 * 8);\n    } return output;\n  }\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n  // some Chrome versions have non-configurable methods on DOMTokenList\n  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n  } catch (error) {\n    CollectionPrototype.forEach = forEach;\n  }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  if (DOMIterables[COLLECTION_NAME]) {\n    handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n  }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    if (!CollectionPrototype[TO_STRING_TAG]) {\n      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n    }\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar $ = require('../internals/export');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n  try {\n    // NodeJS < 15.0 does not expose `MessageChannel` to global\n    var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel;\n    // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n    new MessageChannel().port1.postMessage(new WeakMap());\n  } catch (error) {\n    if (error.name == DATA_CLONE_ERR && error.code == 25) return error.constructor;\n  }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n  return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n  anInstance(this, DOMExceptionPrototype);\n  var argumentsLength = arguments.length;\n  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n  var code = codeFor(name);\n  setInternalState(this, {\n    type: DOM_EXCEPTION,\n    name: name,\n    message: message,\n    code: code\n  });\n  if (!DESCRIPTORS) {\n    this.name = name;\n    this.message = message;\n    this.code = code;\n  }\n  if (HAS_STACK) {\n    var error = Error(message);\n    error.name = DOM_EXCEPTION;\n    defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n  }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n  return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n  return createGetterDescriptor(function () {\n    return getInternalState(this)[key];\n  });\n};\n\nif (DESCRIPTORS) defineProperties(DOMExceptionPrototype, {\n  name: getterFor('name'),\n  message: getterFor('message'),\n  code: getterFor('code')\n});\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n  return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n  return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n  return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n  || NativeDOMException[DATA_CLONE_ERR] !== 25\n  || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, forced: FORCED_CONSTRUCTOR }, {\n  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n  redefine(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n  defineProperty(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n    return codeFor(anObject(this).name);\n  }));\n}\n\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n  var constant = DOMExceptionConstants[key];\n  var constantName = constant.s;\n  var descriptor = createPropertyDescriptor(6, constant.c);\n  if (!hasOwn(PolyfilledDOMException, constantName)) {\n    defineProperty(PolyfilledDOMException, constantName, descriptor);\n  }\n  if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n    defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n  }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n  anInstance(this, DOMExceptionPrototype);\n  var argumentsLength = arguments.length;\n  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n  var that = new NativeDOMException(message, name);\n  var error = Error(message);\n  error.name = DOM_EXCEPTION;\n  defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n  inheritIfRequired(that, this, $DOMException);\n  return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n  if (!IS_PURE) {\n    defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n  }\n\n  for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n    var constant = DOMExceptionConstants[key];\n    var constantName = constant.s;\n    if (!hasOwn(PolyfilledDOMException, constantName)) {\n      defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n    }\n  }\n}\n","var getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar task = require('../internals/task');\n\nvar FORCED = !global.setImmediate || !global.clearImmediate;\n\n// http://w3c.github.io/setImmediate/\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n  // `setImmediate` method\n  // http://w3c.github.io/setImmediate/#si-setImmediate\n  setImmediate: task.set,\n  // `clearImmediate` method\n  // http://w3c.github.io/setImmediate/#si-clearImmediate\n  clearImmediate: task.clear\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar microtask = require('../internals/microtask');\nvar aCallable = require('../internals/a-callable');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar process = global.process;\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, noTargetGet: true }, {\n  queueMicrotask: function queueMicrotask(fn) {\n    validateArgumentsLength(arguments.length, 1);\n    aCallable(fn);\n    var domain = IS_NODE && process.domain;\n    microtask(domain ? domain.bind(fn) : fn);\n  }\n});\n","var IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltin = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar regExpFlags = require('../internals/regexp-flags');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar Object = global.Object;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Set = getBuiltin('Set');\nvar Map = getBuiltin('Map');\nvar MapPrototype = Map.prototype;\nvar mapHas = uncurryThis(MapPrototype.has);\nvar mapGet = uncurryThis(MapPrototype.get);\nvar mapSet = uncurryThis(MapPrototype.set);\nvar setAdd = uncurryThis(Set.prototype.add);\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar booleanValueOf = uncurryThis(true.valueOf);\nvar numberValueOf = uncurryThis(1.0.valueOf);\nvar stringValueOf = uncurryThis(''.valueOf);\nvar getFlags = uncurryThis(regExpFlags);\nvar getTime = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n  return !fails(function () {\n    var set1 = new global.Set([7]);\n    var set2 = structuredCloneImplementation(set1);\n    var number = structuredCloneImplementation(Object(7));\n    return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n  }) && structuredCloneImplementation;\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsSemantic = function (structuredCloneImplementation) {\n  return !fails(function () {\n    var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n    return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n  }) && structuredCloneImplementation;\n};\n\n// FF94+, Safari TP134+, Chrome Canary 98+, NodeJS 17.0+, Deno 1.13+\n// current FF and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// no one of current implementations supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = global.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE || !checkNewErrorsSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// current Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor, structured cloning implementation\n//   from `performance.mark` is too naive and can't clone, for example, `RegExp` or some boxed primitives\n//   https://github.com/nodejs/node/issues/40840\n// no one of current implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n  return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n  throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, kind) {\n  throw new DOMException((kind || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar structuredCloneInternal = function (value, map) {\n  if (isSymbol(value)) throwUncloneable('Symbol');\n  if (!isObject(value)) return value;\n  // effectively preserves circular references\n  if (map) {\n    if (mapHas(map, value)) return mapGet(map, value);\n  } else map = new Map();\n\n  var type = classof(value);\n  var deep = false;\n  var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n\n  switch (type) {\n    case 'Array':\n      cloned = [];\n      deep = true;\n      break;\n    case 'Object':\n      cloned = {};\n      deep = true;\n      break;\n    case 'Map':\n      cloned = new Map();\n      deep = true;\n      break;\n    case 'Set':\n      cloned = new Set();\n      deep = true;\n      break;\n    case 'RegExp':\n      // in this block because of a Safari 14.1 bug\n      // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n      cloned = new RegExp(value.source, 'flags' in value ? value.flags : getFlags(value));\n      break;\n    case 'Error':\n      name = value.name;\n      switch (name) {\n        case 'AggregateError':\n          cloned = getBuiltin('AggregateError')([]);\n          break;\n        case 'EvalError':\n          cloned = EvalError();\n          break;\n        case 'RangeError':\n          cloned = RangeError();\n          break;\n        case 'ReferenceError':\n          cloned = ReferenceError();\n          break;\n        case 'SyntaxError':\n          cloned = SyntaxError();\n          break;\n        case 'TypeError':\n          cloned = TypeError();\n          break;\n        case 'URIError':\n          cloned = URIError();\n          break;\n        case 'CompileError':\n          cloned = CompileError();\n          break;\n        case 'LinkError':\n          cloned = LinkError();\n          break;\n        case 'RuntimeError':\n          cloned = RuntimeError();\n          break;\n        default:\n          cloned = Error();\n      }\n      deep = true;\n      break;\n    case 'DOMException':\n      cloned = new DOMException(value.message, value.name);\n      deep = true;\n      break;\n    case 'DataView':\n    case 'Int8Array':\n    case 'Uint8Array':\n    case 'Uint8ClampedArray':\n    case 'Int16Array':\n    case 'Uint16Array':\n    case 'Int32Array':\n    case 'Uint32Array':\n    case 'Float32Array':\n    case 'Float64Array':\n    case 'BigInt64Array':\n    case 'BigUint64Array':\n      C = global[type];\n      // in some old engines like Safari 9, typeof C is 'object'\n      // on Uint8ClampedArray or some other constructors\n      if (!isObject(C)) throwUnpolyfillable(type);\n      cloned = new C(\n        // this is safe, since arraybuffer cannot have circular references\n        structuredCloneInternal(value.buffer, map),\n        value.byteOffset,\n        type === 'DataView' ? value.byteLength : value.length\n      );\n      break;\n    case 'DOMQuad':\n      try {\n        cloned = new DOMQuad(\n          structuredCloneInternal(value.p1, map),\n          structuredCloneInternal(value.p2, map),\n          structuredCloneInternal(value.p3, map),\n          structuredCloneInternal(value.p4, map)\n        );\n      } catch (error) {\n        if (nativeRestrictedStructuredClone) {\n          cloned = nativeRestrictedStructuredClone(value);\n        } else throwUnpolyfillable(type);\n      }\n      break;\n    case 'FileList':\n      C = global.DataTransfer;\n      if (isConstructor(C)) {\n        dataTransfer = new C();\n        for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n          dataTransfer.items.add(structuredCloneInternal(value[i], map));\n        }\n        cloned = dataTransfer.files;\n      } else if (nativeRestrictedStructuredClone) {\n        cloned = nativeRestrictedStructuredClone(value);\n      } else throwUnpolyfillable(type);\n      break;\n    case 'ImageData':\n      // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n      try {\n        cloned = new ImageData(\n          structuredCloneInternal(value.data, map),\n          value.width,\n          value.height,\n          { colorSpace: value.colorSpace }\n        );\n      } catch (error) {\n        if (nativeRestrictedStructuredClone) {\n          cloned = nativeRestrictedStructuredClone(value);\n        } else throwUnpolyfillable(type);\n      } break;\n    default:\n      if (nativeRestrictedStructuredClone) {\n        cloned = nativeRestrictedStructuredClone(value);\n      } else switch (type) {\n        case 'BigInt':\n          // can be a 3rd party polyfill\n          cloned = Object(value.valueOf());\n          break;\n        case 'Boolean':\n          cloned = Object(booleanValueOf(value));\n          break;\n        case 'Number':\n          cloned = Object(numberValueOf(value));\n          break;\n        case 'String':\n          cloned = Object(stringValueOf(value));\n          break;\n        case 'Date':\n          cloned = new Date(getTime(value));\n          break;\n        case 'ArrayBuffer':\n          C = global.DataView;\n          // `ArrayBuffer#slice` is not available in IE10\n          // `ArrayBuffer#slice` and `DataView` are not available in old FF\n          if (!C && typeof value.slice != 'function') throwUnpolyfillable(type);\n          // detached buffers throws in `DataView` and `.slice`\n          try {\n            if (typeof value.slice == 'function') {\n              cloned = value.slice(0);\n            } else {\n              length = value.byteLength;\n              cloned = new ArrayBuffer(length);\n              source = new C(value);\n              target = new C(cloned);\n              for (i = 0; i < length; i++) {\n                target.setUint8(i, source.getUint8(i));\n              }\n            }\n          } catch (error) {\n            throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n          } break;\n        case 'SharedArrayBuffer':\n          // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n          cloned = value;\n          break;\n        case 'Blob':\n          try {\n            cloned = value.slice(0, value.size, value.type);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMPoint':\n        case 'DOMPointReadOnly':\n          C = global[type];\n          try {\n            cloned = C.fromPoint\n              ? C.fromPoint(value)\n              : new C(value.x, value.y, value.z, value.w);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMRect':\n        case 'DOMRectReadOnly':\n          C = global[type];\n          try {\n            cloned = C.fromRect\n              ? C.fromRect(value)\n              : new C(value.x, value.y, value.width, value.height);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMMatrix':\n        case 'DOMMatrixReadOnly':\n          C = global[type];\n          try {\n            cloned = C.fromMatrix\n              ? C.fromMatrix(value)\n              : new C(value);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'AudioData':\n        case 'VideoFrame':\n          if (!isCallable(value.clone)) throwUnpolyfillable(type);\n          try {\n            cloned = value.clone();\n          } catch (error) {\n            throwUncloneable(type);\n          } break;\n        case 'File':\n          try {\n            cloned = new File([value], value.name, value);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'CryptoKey':\n        case 'GPUCompilationMessage':\n        case 'GPUCompilationInfo':\n        case 'ImageBitmap':\n        case 'RTCCertificate':\n        case 'WebAssembly.Module':\n          throwUnpolyfillable(type);\n          // break omitted\n        default:\n          throwUncloneable(type);\n      }\n  }\n\n  mapSet(map, value, cloned);\n\n  if (deep) switch (type) {\n    case 'Array':\n    case 'Object':\n      keys = objectKeys(value);\n      for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n        key = keys[i];\n        createProperty(cloned, key, structuredCloneInternal(value[key], map));\n      } break;\n    case 'Map':\n      value.forEach(function (v, k) {\n        mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n      });\n      break;\n    case 'Set':\n      value.forEach(function (v) {\n        setAdd(cloned, structuredCloneInternal(v, map));\n      });\n      break;\n    case 'Error':\n      createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n      if (hasOwn(value, 'cause')) {\n        createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n      }\n      if (name == 'AggregateError') {\n        cloned.errors = structuredCloneInternal(value.errors, map);\n      } // break omitted\n    case 'DOMException':\n      if (ERROR_STACK_INSTALLABLE) {\n        createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n      }\n  }\n\n  return cloned;\n};\n\nvar PROPER_TRANSFER = nativeStructuredClone && !fails(function () {\n  var buffer = new ArrayBuffer(8);\n  var clone = nativeStructuredClone(buffer, { transfer: [buffer] });\n  return buffer.byteLength != 0 || clone.byteLength != 8;\n});\n\nvar tryToTransfer = function (rawTransfer, map) {\n  if (!isObject(rawTransfer)) throw TypeError('Transfer option cannot be converted to a sequence');\n\n  var transfer = [];\n\n  iterate(rawTransfer, function (value) {\n    push(transfer, anObject(value));\n  });\n\n  var i = 0;\n  var length = lengthOfArrayLike(transfer);\n  var value, type, C, transferredArray, transferred, canvas, context;\n\n  if (PROPER_TRANSFER) {\n    transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n    while (i < length) mapSet(map, transfer[i], transferredArray[i++]);\n  } else while (i < length) {\n    value = transfer[i++];\n    if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n\n    type = classof(value);\n\n    switch (type) {\n      case 'ImageBitmap':\n        C = global.OffscreenCanvas;\n        if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n        try {\n          canvas = new C(value.width, value.height);\n          context = canvas.getContext('bitmaprenderer');\n          context.transferFromImageBitmap(value);\n          transferred = canvas.transferToImageBitmap();\n        } catch (error) { /* empty */ }\n        break;\n      case 'AudioData':\n      case 'VideoFrame':\n        if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n        try {\n          transferred = value.clone();\n          value.close();\n        } catch (error) { /* empty */ }\n        break;\n      case 'ArrayBuffer':\n      case 'MessagePort':\n      case 'OffscreenCanvas':\n      case 'ReadableStream':\n      case 'TransformStream':\n      case 'WritableStream':\n        throwUnpolyfillable(type, TRANSFERRING);\n    }\n\n    if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n    mapSet(map, value, transferred);\n  }\n};\n\n$({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {\n  structuredClone: function structuredClone(value /* , { transfer } */) {\n    var options = validateArgumentsLength(arguments.length, 1) > 1 ? anObject(arguments[1]) : undefined;\n    var transfer = options ? options.transfer : undefined;\n    var map;\n\n    if (transfer !== undefined) {\n      map = new Map();\n      tryToTransfer(transfer, map);\n    }\n\n    return structuredCloneInternal(value, map);\n  }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar userAgent = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar Function = global.Function;\n\nvar wrap = function (scheduler) {\n  return function (handler, timeout /* , ...arguments */) {\n    var boundArgs = validateArgumentsLength(arguments.length, 1) > 2;\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var args = boundArgs ? arraySlice(arguments, 2) : undefined;\n    return scheduler(boundArgs ? function () {\n      apply(fn, this, args);\n    } : fn, timeout);\n  };\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n$({ global: true, bind: true, forced: MSIE }, {\n  // `setTimeout` method\n  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n  setTimeout: wrap(global.setTimeout),\n  // `setInterval` method\n  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n  setInterval: wrap(global.setInterval)\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar n$Fetch = getBuiltIn('fetch');\nvar N$Request = getBuiltIn('Request');\nvar Headers = getBuiltIn('Headers');\nvar RequestPrototype = N$Request && N$Request.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n  try {\n    return decodeURIComponent(sequence);\n  } catch (error) {\n    return sequence;\n  }\n};\n\nvar deserialize = function (it) {\n  var result = replace(it, plus, ' ');\n  var bytes = 4;\n  try {\n    return decodeURIComponent(result);\n  } catch (error) {\n    while (bytes) {\n      result = replace(result, percentSequence(bytes--), percentDecode);\n    }\n    return result;\n  }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+'\n};\n\nvar replacer = function (match) {\n  return replacements[match];\n};\n\nvar serialize = function (it) {\n  return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n  setInternalState(this, {\n    type: URL_SEARCH_PARAMS_ITERATOR,\n    iterator: getIterator(getInternalParamsState(params).entries),\n    kind: kind\n  });\n}, 'Iterator', function next() {\n  var state = getInternalIteratorState(this);\n  var kind = state.kind;\n  var step = state.iterator.next();\n  var entry = step.value;\n  if (!step.done) {\n    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n  } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n  this.entries = [];\n  this.url = null;\n\n  if (init !== undefined) {\n    if (isObject(init)) this.parseObject(init);\n    else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n  }\n};\n\nURLSearchParamsState.prototype = {\n  type: URL_SEARCH_PARAMS,\n  bindURL: function (url) {\n    this.url = url;\n    this.update();\n  },\n  parseObject: function (object) {\n    var iteratorMethod = getIteratorMethod(object);\n    var iterator, next, step, entryIterator, entryNext, first, second;\n\n    if (iteratorMethod) {\n      iterator = getIterator(object, iteratorMethod);\n      next = iterator.next;\n      while (!(step = call(next, iterator)).done) {\n        entryIterator = getIterator(anObject(step.value));\n        entryNext = entryIterator.next;\n        if (\n          (first = call(entryNext, entryIterator)).done ||\n          (second = call(entryNext, entryIterator)).done ||\n          !call(entryNext, entryIterator).done\n        ) throw TypeError('Expected sequence with length 2');\n        push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n      }\n    } else for (var key in object) if (hasOwn(object, key)) {\n      push(this.entries, { key: key, value: $toString(object[key]) });\n    }\n  },\n  parseQuery: function (query) {\n    if (query) {\n      var attributes = split(query, '&');\n      var index = 0;\n      var attribute, entry;\n      while (index < attributes.length) {\n        attribute = attributes[index++];\n        if (attribute.length) {\n          entry = split(attribute, '=');\n          push(this.entries, {\n            key: deserialize(shift(entry)),\n            value: deserialize(join(entry, '='))\n          });\n        }\n      }\n    }\n  },\n  serialize: function () {\n    var entries = this.entries;\n    var result = [];\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      push(result, serialize(entry.key) + '=' + serialize(entry.value));\n    } return join(result, '&');\n  },\n  update: function () {\n    this.entries.length = 0;\n    this.parseQuery(this.url.query);\n  },\n  updateURL: function () {\n    if (this.url) this.url.update();\n  }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n  anInstance(this, URLSearchParamsPrototype);\n  var init = arguments.length > 0 ? arguments[0] : undefined;\n  setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n  // `URLSearchParams.prototype.append` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n  append: function append(name, value) {\n    validateArgumentsLength(arguments.length, 2);\n    var state = getInternalParamsState(this);\n    push(state.entries, { key: $toString(name), value: $toString(value) });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.delete` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n  'delete': function (name) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var key = $toString(name);\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index].key === key) splice(entries, index, 1);\n      else index++;\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.get` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n  get: function get(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = $toString(name);\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) return entries[index].value;\n    }\n    return null;\n  },\n  // `URLSearchParams.prototype.getAll` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n  getAll: function getAll(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = $toString(name);\n    var result = [];\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) push(result, entries[index].value);\n    }\n    return result;\n  },\n  // `URLSearchParams.prototype.has` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n  has: function has(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = $toString(name);\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index++].key === key) return true;\n    }\n    return false;\n  },\n  // `URLSearchParams.prototype.set` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n  set: function set(name, value) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var found = false;\n    var key = $toString(name);\n    var val = $toString(value);\n    var index = 0;\n    var entry;\n    for (; index < entries.length; index++) {\n      entry = entries[index];\n      if (entry.key === key) {\n        if (found) splice(entries, index--, 1);\n        else {\n          found = true;\n          entry.value = val;\n        }\n      }\n    }\n    if (!found) push(entries, { key: key, value: val });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.sort` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n  sort: function sort() {\n    var state = getInternalParamsState(this);\n    arraySort(state.entries, function (a, b) {\n      return a.key > b.key ? 1 : -1;\n    });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.forEach` method\n  forEach: function forEach(callback /* , thisArg */) {\n    var entries = getInternalParamsState(this).entries;\n    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      boundFunction(entry.value, entry.key, this);\n    }\n  },\n  // `URLSearchParams.prototype.keys` method\n  keys: function keys() {\n    return new URLSearchParamsIterator(this, 'keys');\n  },\n  // `URLSearchParams.prototype.values` method\n  values: function values() {\n    return new URLSearchParamsIterator(this, 'values');\n  },\n  // `URLSearchParams.prototype.entries` method\n  entries: function entries() {\n    return new URLSearchParamsIterator(this, 'entries');\n  }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n  return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n  URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n  var headersHas = uncurryThis(HeadersPrototype.has);\n  var headersSet = uncurryThis(HeadersPrototype.set);\n\n  var wrapRequestOptions = function (init) {\n    if (isObject(init)) {\n      var body = init.body;\n      var headers;\n      if (classof(body) === URL_SEARCH_PARAMS) {\n        headers = init.headers ? new Headers(init.headers) : new Headers();\n        if (!headersHas(headers, 'content-type')) {\n          headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n        }\n        return create(init, {\n          body: createPropertyDescriptor(0, $toString(body)),\n          headers: createPropertyDescriptor(0, headers)\n        });\n      }\n    } return init;\n  };\n\n  if (isCallable(n$Fetch)) {\n    $({ global: true, enumerable: true, forced: true }, {\n      fetch: function fetch(input /* , init */) {\n        return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n      }\n    });\n  }\n\n  if (isCallable(N$Request)) {\n    var RequestConstructor = function Request(input /* , init */) {\n      anInstance(this, RequestPrototype);\n      return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n    };\n\n    RequestPrototype.constructor = RequestConstructor;\n    RequestConstructor.prototype = RequestPrototype;\n\n    $({ global: true, forced: true }, {\n      Request: RequestConstructor\n    });\n  }\n}\n\nmodule.exports = {\n  URLSearchParams: URLSearchParamsConstructor,\n  getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n  var parts = split(input, '.');\n  var partsLength, numbers, index, part, radix, number, ipv4;\n  if (parts.length && parts[parts.length - 1] == '') {\n    parts.length--;\n  }\n  partsLength = parts.length;\n  if (partsLength > 4) return input;\n  numbers = [];\n  for (index = 0; index < partsLength; index++) {\n    part = parts[index];\n    if (part == '') return input;\n    radix = 10;\n    if (part.length > 1 && charAt(part, 0) == '0') {\n      radix = exec(HEX_START, part) ? 16 : 8;\n      part = stringSlice(part, radix == 8 ? 1 : 2);\n    }\n    if (part === '') {\n      number = 0;\n    } else {\n      if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n      number = parseInt(part, radix);\n    }\n    push(numbers, number);\n  }\n  for (index = 0; index < partsLength; index++) {\n    number = numbers[index];\n    if (index == partsLength - 1) {\n      if (number >= pow(256, 5 - partsLength)) return null;\n    } else if (number > 255) return null;\n  }\n  ipv4 = pop(numbers);\n  for (index = 0; index < numbers.length; index++) {\n    ipv4 += numbers[index] * pow(256, 3 - index);\n  }\n  return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n  var address = [0, 0, 0, 0, 0, 0, 0, 0];\n  var pieceIndex = 0;\n  var compress = null;\n  var pointer = 0;\n  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n  var chr = function () {\n    return charAt(input, pointer);\n  };\n\n  if (chr() == ':') {\n    if (charAt(input, 1) != ':') return;\n    pointer += 2;\n    pieceIndex++;\n    compress = pieceIndex;\n  }\n  while (chr()) {\n    if (pieceIndex == 8) return;\n    if (chr() == ':') {\n      if (compress !== null) return;\n      pointer++;\n      pieceIndex++;\n      compress = pieceIndex;\n      continue;\n    }\n    value = length = 0;\n    while (length < 4 && exec(HEX, chr())) {\n      value = value * 16 + parseInt(chr(), 16);\n      pointer++;\n      length++;\n    }\n    if (chr() == '.') {\n      if (length == 0) return;\n      pointer -= length;\n      if (pieceIndex > 6) return;\n      numbersSeen = 0;\n      while (chr()) {\n        ipv4Piece = null;\n        if (numbersSeen > 0) {\n          if (chr() == '.' && numbersSeen < 4) pointer++;\n          else return;\n        }\n        if (!exec(DIGIT, chr())) return;\n        while (exec(DIGIT, chr())) {\n          number = parseInt(chr(), 10);\n          if (ipv4Piece === null) ipv4Piece = number;\n          else if (ipv4Piece == 0) return;\n          else ipv4Piece = ipv4Piece * 10 + number;\n          if (ipv4Piece > 255) return;\n          pointer++;\n        }\n        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n        numbersSeen++;\n        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n      }\n      if (numbersSeen != 4) return;\n      break;\n    } else if (chr() == ':') {\n      pointer++;\n      if (!chr()) return;\n    } else if (chr()) return;\n    address[pieceIndex++] = value;\n  }\n  if (compress !== null) {\n    swaps = pieceIndex - compress;\n    pieceIndex = 7;\n    while (pieceIndex != 0 && swaps > 0) {\n      swap = address[pieceIndex];\n      address[pieceIndex--] = address[compress + swaps - 1];\n      address[compress + --swaps] = swap;\n    }\n  } else if (pieceIndex != 8) return;\n  return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n  var maxIndex = null;\n  var maxLength = 1;\n  var currStart = null;\n  var currLength = 0;\n  var index = 0;\n  for (; index < 8; index++) {\n    if (ipv6[index] !== 0) {\n      if (currLength > maxLength) {\n        maxIndex = currStart;\n        maxLength = currLength;\n      }\n      currStart = null;\n      currLength = 0;\n    } else {\n      if (currStart === null) currStart = index;\n      ++currLength;\n    }\n  }\n  if (currLength > maxLength) {\n    maxIndex = currStart;\n    maxLength = currLength;\n  }\n  return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n  var result, index, compress, ignore0;\n  // ipv4\n  if (typeof host == 'number') {\n    result = [];\n    for (index = 0; index < 4; index++) {\n      unshift(result, host % 256);\n      host = floor(host / 256);\n    } return join(result, '.');\n  // ipv6\n  } else if (typeof host == 'object') {\n    result = '';\n    compress = findLongestZeroSequence(host);\n    for (index = 0; index < 8; index++) {\n      if (ignore0 && host[index] === 0) continue;\n      if (ignore0) ignore0 = false;\n      if (compress === index) {\n        result += index ? ':' : '::';\n        ignore0 = true;\n      } else {\n        result += numberToString(host[index], 16);\n        if (index < 7) result += ':';\n      }\n    }\n    return '[' + result + ']';\n  } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n  '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n  var code = codeAt(chr, 0);\n  return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n  ftp: 21,\n  file: null,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n  var second;\n  return string.length == 2 && exec(ALPHA, charAt(string, 0))\n    && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n  var third;\n  return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n    string.length == 2 ||\n    ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n  );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n  return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n  segment = toLowerCase(segment);\n  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n  var urlString = $toString(url);\n  var baseState, failure, searchParams;\n  if (isBase) {\n    failure = this.parse(urlString);\n    if (failure) throw TypeError(failure);\n    this.searchParams = null;\n  } else {\n    if (base !== undefined) baseState = new URLState(base, true);\n    failure = this.parse(urlString, null, baseState);\n    if (failure) throw TypeError(failure);\n    searchParams = getInternalSearchParamsState(new URLSearchParams());\n    searchParams.bindURL(this);\n    this.searchParams = searchParams;\n  }\n};\n\nURLState.prototype = {\n  type: 'URL',\n  // https://url.spec.whatwg.org/#url-parsing\n  // eslint-disable-next-line max-statements -- TODO\n  parse: function (input, stateOverride, base) {\n    var url = this;\n    var state = stateOverride || SCHEME_START;\n    var pointer = 0;\n    var buffer = '';\n    var seenAt = false;\n    var seenBracket = false;\n    var seenPasswordToken = false;\n    var codePoints, chr, bufferCodePoints, failure;\n\n    input = $toString(input);\n\n    if (!stateOverride) {\n      url.scheme = '';\n      url.username = '';\n      url.password = '';\n      url.host = null;\n      url.port = null;\n      url.path = [];\n      url.query = null;\n      url.fragment = null;\n      url.cannotBeABaseURL = false;\n      input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n    }\n\n    input = replace(input, TAB_AND_NEW_LINE, '');\n\n    codePoints = arrayFrom(input);\n\n    while (pointer <= codePoints.length) {\n      chr = codePoints[pointer];\n      switch (state) {\n        case SCHEME_START:\n          if (chr && exec(ALPHA, chr)) {\n            buffer += toLowerCase(chr);\n            state = SCHEME;\n          } else if (!stateOverride) {\n            state = NO_SCHEME;\n            continue;\n          } else return INVALID_SCHEME;\n          break;\n\n        case SCHEME:\n          if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n            buffer += toLowerCase(chr);\n          } else if (chr == ':') {\n            if (stateOverride && (\n              (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n              (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n              (url.scheme == 'file' && !url.host)\n            )) return;\n            url.scheme = buffer;\n            if (stateOverride) {\n              if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n              return;\n            }\n            buffer = '';\n            if (url.scheme == 'file') {\n              state = FILE;\n            } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n              state = SPECIAL_RELATIVE_OR_AUTHORITY;\n            } else if (url.isSpecial()) {\n              state = SPECIAL_AUTHORITY_SLASHES;\n            } else if (codePoints[pointer + 1] == '/') {\n              state = PATH_OR_AUTHORITY;\n              pointer++;\n            } else {\n              url.cannotBeABaseURL = true;\n              push(url.path, '');\n              state = CANNOT_BE_A_BASE_URL_PATH;\n            }\n          } else if (!stateOverride) {\n            buffer = '';\n            state = NO_SCHEME;\n            pointer = 0;\n            continue;\n          } else return INVALID_SCHEME;\n          break;\n\n        case NO_SCHEME:\n          if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n          if (base.cannotBeABaseURL && chr == '#') {\n            url.scheme = base.scheme;\n            url.path = arraySlice(base.path);\n            url.query = base.query;\n            url.fragment = '';\n            url.cannotBeABaseURL = true;\n            state = FRAGMENT;\n            break;\n          }\n          state = base.scheme == 'file' ? FILE : RELATIVE;\n          continue;\n\n        case SPECIAL_RELATIVE_OR_AUTHORITY:\n          if (chr == '/' && codePoints[pointer + 1] == '/') {\n            state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n            pointer++;\n          } else {\n            state = RELATIVE;\n            continue;\n          } break;\n\n        case PATH_OR_AUTHORITY:\n          if (chr == '/') {\n            state = AUTHORITY;\n            break;\n          } else {\n            state = PATH;\n            continue;\n          }\n\n        case RELATIVE:\n          url.scheme = base.scheme;\n          if (chr == EOF) {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.query = base.query;\n          } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n            state = RELATIVE_SLASH;\n          } else if (chr == '?') {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.query = '';\n            state = QUERY;\n          } else if (chr == '#') {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.query = base.query;\n            url.fragment = '';\n            state = FRAGMENT;\n          } else {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.path.length--;\n            state = PATH;\n            continue;\n          } break;\n\n        case RELATIVE_SLASH:\n          if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n            state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          } else if (chr == '/') {\n            state = AUTHORITY;\n          } else {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            state = PATH;\n            continue;\n          } break;\n\n        case SPECIAL_AUTHORITY_SLASHES:\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n          pointer++;\n          break;\n\n        case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n          if (chr != '/' && chr != '\\\\') {\n            state = AUTHORITY;\n            continue;\n          } break;\n\n        case AUTHORITY:\n          if (chr == '@') {\n            if (seenAt) buffer = '%40' + buffer;\n            seenAt = true;\n            bufferCodePoints = arrayFrom(buffer);\n            for (var i = 0; i < bufferCodePoints.length; i++) {\n              var codePoint = bufferCodePoints[i];\n              if (codePoint == ':' && !seenPasswordToken) {\n                seenPasswordToken = true;\n                continue;\n              }\n              var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n              if (seenPasswordToken) url.password += encodedCodePoints;\n              else url.username += encodedCodePoints;\n            }\n            buffer = '';\n          } else if (\n            chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n            (chr == '\\\\' && url.isSpecial())\n          ) {\n            if (seenAt && buffer == '') return INVALID_AUTHORITY;\n            pointer -= arrayFrom(buffer).length + 1;\n            buffer = '';\n            state = HOST;\n          } else buffer += chr;\n          break;\n\n        case HOST:\n        case HOSTNAME:\n          if (stateOverride && url.scheme == 'file') {\n            state = FILE_HOST;\n            continue;\n          } else if (chr == ':' && !seenBracket) {\n            if (buffer == '') return INVALID_HOST;\n            failure = url.parseHost(buffer);\n            if (failure) return failure;\n            buffer = '';\n            state = PORT;\n            if (stateOverride == HOSTNAME) return;\n          } else if (\n            chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n            (chr == '\\\\' && url.isSpecial())\n          ) {\n            if (url.isSpecial() && buffer == '') return INVALID_HOST;\n            if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n            failure = url.parseHost(buffer);\n            if (failure) return failure;\n            buffer = '';\n            state = PATH_START;\n            if (stateOverride) return;\n            continue;\n          } else {\n            if (chr == '[') seenBracket = true;\n            else if (chr == ']') seenBracket = false;\n            buffer += chr;\n          } break;\n\n        case PORT:\n          if (exec(DIGIT, chr)) {\n            buffer += chr;\n          } else if (\n            chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n            (chr == '\\\\' && url.isSpecial()) ||\n            stateOverride\n          ) {\n            if (buffer != '') {\n              var port = parseInt(buffer, 10);\n              if (port > 0xFFFF) return INVALID_PORT;\n              url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n              buffer = '';\n            }\n            if (stateOverride) return;\n            state = PATH_START;\n            continue;\n          } else return INVALID_PORT;\n          break;\n\n        case FILE:\n          url.scheme = 'file';\n          if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n          else if (base && base.scheme == 'file') {\n            if (chr == EOF) {\n              url.host = base.host;\n              url.path = arraySlice(base.path);\n              url.query = base.query;\n            } else if (chr == '?') {\n              url.host = base.host;\n              url.path = arraySlice(base.path);\n              url.query = '';\n              state = QUERY;\n            } else if (chr == '#') {\n              url.host = base.host;\n              url.path = arraySlice(base.path);\n              url.query = base.query;\n              url.fragment = '';\n              state = FRAGMENT;\n            } else {\n              if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n                url.host = base.host;\n                url.path = arraySlice(base.path);\n                url.shortenPath();\n              }\n              state = PATH;\n              continue;\n            }\n          } else {\n            state = PATH;\n            continue;\n          } break;\n\n        case FILE_SLASH:\n          if (chr == '/' || chr == '\\\\') {\n            state = FILE_HOST;\n            break;\n          }\n          if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n            if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n            else url.host = base.host;\n          }\n          state = PATH;\n          continue;\n\n        case FILE_HOST:\n          if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n            if (!stateOverride && isWindowsDriveLetter(buffer)) {\n              state = PATH;\n            } else if (buffer == '') {\n              url.host = '';\n              if (stateOverride) return;\n              state = PATH_START;\n            } else {\n              failure = url.parseHost(buffer);\n              if (failure) return failure;\n              if (url.host == 'localhost') url.host = '';\n              if (stateOverride) return;\n              buffer = '';\n              state = PATH_START;\n            } continue;\n          } else buffer += chr;\n          break;\n\n        case PATH_START:\n          if (url.isSpecial()) {\n            state = PATH;\n            if (chr != '/' && chr != '\\\\') continue;\n          } else if (!stateOverride && chr == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (!stateOverride && chr == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          } else if (chr != EOF) {\n            state = PATH;\n            if (chr != '/') continue;\n          } break;\n\n        case PATH:\n          if (\n            chr == EOF || chr == '/' ||\n            (chr == '\\\\' && url.isSpecial()) ||\n            (!stateOverride && (chr == '?' || chr == '#'))\n          ) {\n            if (isDoubleDot(buffer)) {\n              url.shortenPath();\n              if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n                push(url.path, '');\n              }\n            } else if (isSingleDot(buffer)) {\n              if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n                push(url.path, '');\n              }\n            } else {\n              if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n                if (url.host) url.host = '';\n                buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n              }\n              push(url.path, buffer);\n            }\n            buffer = '';\n            if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n              while (url.path.length > 1 && url.path[0] === '') {\n                shift(url.path);\n              }\n            }\n            if (chr == '?') {\n              url.query = '';\n              state = QUERY;\n            } else if (chr == '#') {\n              url.fragment = '';\n              state = FRAGMENT;\n            }\n          } else {\n            buffer += percentEncode(chr, pathPercentEncodeSet);\n          } break;\n\n        case CANNOT_BE_A_BASE_URL_PATH:\n          if (chr == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (chr == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          } else if (chr != EOF) {\n            url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n          } break;\n\n        case QUERY:\n          if (!stateOverride && chr == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          } else if (chr != EOF) {\n            if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n            else if (chr == '#') url.query += '%23';\n            else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n          } break;\n\n        case FRAGMENT:\n          if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n          break;\n      }\n\n      pointer++;\n    }\n  },\n  // https://url.spec.whatwg.org/#host-parsing\n  parseHost: function (input) {\n    var result, codePoints, index;\n    if (charAt(input, 0) == '[') {\n      if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n      result = parseIPv6(stringSlice(input, 1, -1));\n      if (!result) return INVALID_HOST;\n      this.host = result;\n    // opaque host\n    } else if (!this.isSpecial()) {\n      if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n      result = '';\n      codePoints = arrayFrom(input);\n      for (index = 0; index < codePoints.length; index++) {\n        result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n      }\n      this.host = result;\n    } else {\n      input = toASCII(input);\n      if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n      result = parseIPv4(input);\n      if (result === null) return INVALID_HOST;\n      this.host = result;\n    }\n  },\n  // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n  cannotHaveUsernamePasswordPort: function () {\n    return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n  },\n  // https://url.spec.whatwg.org/#include-credentials\n  includesCredentials: function () {\n    return this.username != '' || this.password != '';\n  },\n  // https://url.spec.whatwg.org/#is-special\n  isSpecial: function () {\n    return hasOwn(specialSchemes, this.scheme);\n  },\n  // https://url.spec.whatwg.org/#shorten-a-urls-path\n  shortenPath: function () {\n    var path = this.path;\n    var pathSize = path.length;\n    if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n      path.length--;\n    }\n  },\n  // https://url.spec.whatwg.org/#concept-url-serializer\n  serialize: function () {\n    var url = this;\n    var scheme = url.scheme;\n    var username = url.username;\n    var password = url.password;\n    var host = url.host;\n    var port = url.port;\n    var path = url.path;\n    var query = url.query;\n    var fragment = url.fragment;\n    var output = scheme + ':';\n    if (host !== null) {\n      output += '//';\n      if (url.includesCredentials()) {\n        output += username + (password ? ':' + password : '') + '@';\n      }\n      output += serializeHost(host);\n      if (port !== null) output += ':' + port;\n    } else if (scheme == 'file') output += '//';\n    output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n    if (query !== null) output += '?' + query;\n    if (fragment !== null) output += '#' + fragment;\n    return output;\n  },\n  // https://url.spec.whatwg.org/#dom-url-href\n  setHref: function (href) {\n    var failure = this.parse(href);\n    if (failure) throw TypeError(failure);\n    this.searchParams.update();\n  },\n  // https://url.spec.whatwg.org/#dom-url-origin\n  getOrigin: function () {\n    var scheme = this.scheme;\n    var port = this.port;\n    if (scheme == 'blob') try {\n      return new URLConstructor(scheme.path[0]).origin;\n    } catch (error) {\n      return 'null';\n    }\n    if (scheme == 'file' || !this.isSpecial()) return 'null';\n    return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n  },\n  // https://url.spec.whatwg.org/#dom-url-protocol\n  getProtocol: function () {\n    return this.scheme + ':';\n  },\n  setProtocol: function (protocol) {\n    this.parse($toString(protocol) + ':', SCHEME_START);\n  },\n  // https://url.spec.whatwg.org/#dom-url-username\n  getUsername: function () {\n    return this.username;\n  },\n  setUsername: function (username) {\n    var codePoints = arrayFrom($toString(username));\n    if (this.cannotHaveUsernamePasswordPort()) return;\n    this.username = '';\n    for (var i = 0; i < codePoints.length; i++) {\n      this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n    }\n  },\n  // https://url.spec.whatwg.org/#dom-url-password\n  getPassword: function () {\n    return this.password;\n  },\n  setPassword: function (password) {\n    var codePoints = arrayFrom($toString(password));\n    if (this.cannotHaveUsernamePasswordPort()) return;\n    this.password = '';\n    for (var i = 0; i < codePoints.length; i++) {\n      this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n    }\n  },\n  // https://url.spec.whatwg.org/#dom-url-host\n  getHost: function () {\n    var host = this.host;\n    var port = this.port;\n    return host === null ? ''\n      : port === null ? serializeHost(host)\n      : serializeHost(host) + ':' + port;\n  },\n  setHost: function (host) {\n    if (this.cannotBeABaseURL) return;\n    this.parse(host, HOST);\n  },\n  // https://url.spec.whatwg.org/#dom-url-hostname\n  getHostname: function () {\n    var host = this.host;\n    return host === null ? '' : serializeHost(host);\n  },\n  setHostname: function (hostname) {\n    if (this.cannotBeABaseURL) return;\n    this.parse(hostname, HOSTNAME);\n  },\n  // https://url.spec.whatwg.org/#dom-url-port\n  getPort: function () {\n    var port = this.port;\n    return port === null ? '' : $toString(port);\n  },\n  setPort: function (port) {\n    if (this.cannotHaveUsernamePasswordPort()) return;\n    port = $toString(port);\n    if (port == '') this.port = null;\n    else this.parse(port, PORT);\n  },\n  // https://url.spec.whatwg.org/#dom-url-pathname\n  getPathname: function () {\n    var path = this.path;\n    return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n  },\n  setPathname: function (pathname) {\n    if (this.cannotBeABaseURL) return;\n    this.path = [];\n    this.parse(pathname, PATH_START);\n  },\n  // https://url.spec.whatwg.org/#dom-url-search\n  getSearch: function () {\n    var query = this.query;\n    return query ? '?' + query : '';\n  },\n  setSearch: function (search) {\n    search = $toString(search);\n    if (search == '') {\n      this.query = null;\n    } else {\n      if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n      this.query = '';\n      this.parse(search, QUERY);\n    }\n    this.searchParams.update();\n  },\n  // https://url.spec.whatwg.org/#dom-url-searchparams\n  getSearchParams: function () {\n    return this.searchParams.facade;\n  },\n  // https://url.spec.whatwg.org/#dom-url-hash\n  getHash: function () {\n    var fragment = this.fragment;\n    return fragment ? '#' + fragment : '';\n  },\n  setHash: function (hash) {\n    hash = $toString(hash);\n    if (hash == '') {\n      this.fragment = null;\n      return;\n    }\n    if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n    this.fragment = '';\n    this.parse(hash, FRAGMENT);\n  },\n  update: function () {\n    this.query = this.searchParams.serialize() || null;\n  }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n  var that = anInstance(this, URLPrototype);\n  var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n  var state = setInternalState(that, new URLState(url, false, base));\n  if (!DESCRIPTORS) {\n    that.href = state.serialize();\n    that.origin = state.getOrigin();\n    that.protocol = state.getProtocol();\n    that.username = state.getUsername();\n    that.password = state.getPassword();\n    that.host = state.getHost();\n    that.hostname = state.getHostname();\n    that.port = state.getPort();\n    that.pathname = state.getPathname();\n    that.search = state.getSearch();\n    that.searchParams = state.getSearchParams();\n    that.hash = state.getHash();\n  }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n  return {\n    get: function () {\n      return getInternalURLState(this)[getter]();\n    },\n    set: setter && function (value) {\n      return getInternalURLState(this)[setter](value);\n    },\n    configurable: true,\n    enumerable: true\n  };\n};\n\nif (DESCRIPTORS) {\n  defineProperties(URLPrototype, {\n    // `URL.prototype.href` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-href\n    href: accessorDescriptor('serialize', 'setHref'),\n    // `URL.prototype.origin` getter\n    // https://url.spec.whatwg.org/#dom-url-origin\n    origin: accessorDescriptor('getOrigin'),\n    // `URL.prototype.protocol` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-protocol\n    protocol: accessorDescriptor('getProtocol', 'setProtocol'),\n    // `URL.prototype.username` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-username\n    username: accessorDescriptor('getUsername', 'setUsername'),\n    // `URL.prototype.password` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-password\n    password: accessorDescriptor('getPassword', 'setPassword'),\n    // `URL.prototype.host` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-host\n    host: accessorDescriptor('getHost', 'setHost'),\n    // `URL.prototype.hostname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hostname\n    hostname: accessorDescriptor('getHostname', 'setHostname'),\n    // `URL.prototype.port` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-port\n    port: accessorDescriptor('getPort', 'setPort'),\n    // `URL.prototype.pathname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-pathname\n    pathname: accessorDescriptor('getPathname', 'setPathname'),\n    // `URL.prototype.search` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-search\n    search: accessorDescriptor('getSearch', 'setSearch'),\n    // `URL.prototype.searchParams` getter\n    // https://url.spec.whatwg.org/#dom-url-searchparams\n    searchParams: accessorDescriptor('getSearchParams'),\n    // `URL.prototype.hash` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hash\n    hash: accessorDescriptor('getHash', 'setHash')\n  });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n  return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n  return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n  var nativeCreateObjectURL = NativeURL.createObjectURL;\n  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n  // `URL.createObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n  // `URL.revokeObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n  URL: URLConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n  toJSON: function toJSON() {\n    return call(URL.prototype.toString, this);\n  }\n});\n","require('../modules/es.symbol');\nrequire('../modules/es.symbol.description');\nrequire('../modules/es.symbol.async-iterator');\nrequire('../modules/es.symbol.has-instance');\nrequire('../modules/es.symbol.is-concat-spreadable');\nrequire('../modules/es.symbol.iterator');\nrequire('../modules/es.symbol.match');\nrequire('../modules/es.symbol.match-all');\nrequire('../modules/es.symbol.replace');\nrequire('../modules/es.symbol.search');\nrequire('../modules/es.symbol.species');\nrequire('../modules/es.symbol.split');\nrequire('../modules/es.symbol.to-primitive');\nrequire('../modules/es.symbol.to-string-tag');\nrequire('../modules/es.symbol.unscopables');\nrequire('../modules/es.error.cause');\nrequire('../modules/es.error.to-string');\nrequire('../modules/es.aggregate-error');\nrequire('../modules/es.aggregate-error.cause');\nrequire('../modules/es.array.at');\nrequire('../modules/es.array.concat');\nrequire('../modules/es.array.copy-within');\nrequire('../modules/es.array.every');\nrequire('../modules/es.array.fill');\nrequire('../modules/es.array.filter');\nrequire('../modules/es.array.find');\nrequire('../modules/es.array.find-index');\nrequire('../modules/es.array.flat');\nrequire('../modules/es.array.flat-map');\nrequire('../modules/es.array.for-each');\nrequire('../modules/es.array.from');\nrequire('../modules/es.array.includes');\nrequire('../modules/es.array.index-of');\nrequire('../modules/es.array.is-array');\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.array.join');\nrequire('../modules/es.array.last-index-of');\nrequire('../modules/es.array.map');\nrequire('../modules/es.array.of');\nrequire('../modules/es.array.reduce');\nrequire('../modules/es.array.reduce-right');\nrequire('../modules/es.array.reverse');\nrequire('../modules/es.array.slice');\nrequire('../modules/es.array.some');\nrequire('../modules/es.array.sort');\nrequire('../modules/es.array.species');\nrequire('../modules/es.array.splice');\nrequire('../modules/es.array.unscopables.flat');\nrequire('../modules/es.array.unscopables.flat-map');\nrequire('../modules/es.array-buffer.constructor');\nrequire('../modules/es.array-buffer.is-view');\nrequire('../modules/es.array-buffer.slice');\nrequire('../modules/es.data-view');\nrequire('../modules/es.date.get-year');\nrequire('../modules/es.date.now');\nrequire('../modules/es.date.set-year');\nrequire('../modules/es.date.to-gmt-string');\nrequire('../modules/es.date.to-iso-string');\nrequire('../modules/es.date.to-json');\nrequire('../modules/es.date.to-primitive');\nrequire('../modules/es.date.to-string');\nrequire('../modules/es.escape');\nrequire('../modules/es.function.bind');\nrequire('../modules/es.function.has-instance');\nrequire('../modules/es.function.name');\nrequire('../modules/es.global-this');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.json.to-string-tag');\nrequire('../modules/es.map');\nrequire('../modules/es.math.acosh');\nrequire('../modules/es.math.asinh');\nrequire('../modules/es.math.atanh');\nrequire('../modules/es.math.cbrt');\nrequire('../modules/es.math.clz32');\nrequire('../modules/es.math.cosh');\nrequire('../modules/es.math.expm1');\nrequire('../modules/es.math.fround');\nrequire('../modules/es.math.hypot');\nrequire('../modules/es.math.imul');\nrequire('../modules/es.math.log10');\nrequire('../modules/es.math.log1p');\nrequire('../modules/es.math.log2');\nrequire('../modules/es.math.sign');\nrequire('../modules/es.math.sinh');\nrequire('../modules/es.math.tanh');\nrequire('../modules/es.math.to-string-tag');\nrequire('../modules/es.math.trunc');\nrequire('../modules/es.number.constructor');\nrequire('../modules/es.number.epsilon');\nrequire('../modules/es.number.is-finite');\nrequire('../modules/es.number.is-integer');\nrequire('../modules/es.number.is-nan');\nrequire('../modules/es.number.is-safe-integer');\nrequire('../modules/es.number.max-safe-integer');\nrequire('../modules/es.number.min-safe-integer');\nrequire('../modules/es.number.parse-float');\nrequire('../modules/es.number.parse-int');\nrequire('../modules/es.number.to-exponential');\nrequire('../modules/es.number.to-fixed');\nrequire('../modules/es.number.to-precision');\nrequire('../modules/es.object.assign');\nrequire('../modules/es.object.create');\nrequire('../modules/es.object.define-getter');\nrequire('../modules/es.object.define-properties');\nrequire('../modules/es.object.define-property');\nrequire('../modules/es.object.define-setter');\nrequire('../modules/es.object.entries');\nrequire('../modules/es.object.freeze');\nrequire('../modules/es.object.from-entries');\nrequire('../modules/es.object.get-own-property-descriptor');\nrequire('../modules/es.object.get-own-property-descriptors');\nrequire('../modules/es.object.get-own-property-names');\nrequire('../modules/es.object.get-prototype-of');\nrequire('../modules/es.object.has-own');\nrequire('../modules/es.object.is');\nrequire('../modules/es.object.is-extensible');\nrequire('../modules/es.object.is-frozen');\nrequire('../modules/es.object.is-sealed');\nrequire('../modules/es.object.keys');\nrequire('../modules/es.object.lookup-getter');\nrequire('../modules/es.object.lookup-setter');\nrequire('../modules/es.object.prevent-extensions');\nrequire('../modules/es.object.seal');\nrequire('../modules/es.object.set-prototype-of');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.object.values');\nrequire('../modules/es.parse-float');\nrequire('../modules/es.parse-int');\nrequire('../modules/es.promise');\nrequire('../modules/es.promise.all-settled');\nrequire('../modules/es.promise.any');\nrequire('../modules/es.promise.finally');\nrequire('../modules/es.reflect.apply');\nrequire('../modules/es.reflect.construct');\nrequire('../modules/es.reflect.define-property');\nrequire('../modules/es.reflect.delete-property');\nrequire('../modules/es.reflect.get');\nrequire('../modules/es.reflect.get-own-property-descriptor');\nrequire('../modules/es.reflect.get-prototype-of');\nrequire('../modules/es.reflect.has');\nrequire('../modules/es.reflect.is-extensible');\nrequire('../modules/es.reflect.own-keys');\nrequire('../modules/es.reflect.prevent-extensions');\nrequire('../modules/es.reflect.set');\nrequire('../modules/es.reflect.set-prototype-of');\nrequire('../modules/es.reflect.to-string-tag');\nrequire('../modules/es.regexp.constructor');\nrequire('../modules/es.regexp.dot-all');\nrequire('../modules/es.regexp.exec');\nrequire('../modules/es.regexp.flags');\nrequire('../modules/es.regexp.sticky');\nrequire('../modules/es.regexp.test');\nrequire('../modules/es.regexp.to-string');\nrequire('../modules/es.set');\nrequire('../modules/es.string.at-alternative');\nrequire('../modules/es.string.code-point-at');\nrequire('../modules/es.string.ends-with');\nrequire('../modules/es.string.from-code-point');\nrequire('../modules/es.string.includes');\nrequire('../modules/es.string.iterator');\nrequire('../modules/es.string.match');\nrequire('../modules/es.string.match-all');\nrequire('../modules/es.string.pad-end');\nrequire('../modules/es.string.pad-start');\nrequire('../modules/es.string.raw');\nrequire('../modules/es.string.repeat');\nrequire('../modules/es.string.replace');\nrequire('../modules/es.string.replace-all');\nrequire('../modules/es.string.search');\nrequire('../modules/es.string.split');\nrequire('../modules/es.string.starts-with');\nrequire('../modules/es.string.substr');\nrequire('../modules/es.string.trim');\nrequire('../modules/es.string.trim-end');\nrequire('../modules/es.string.trim-start');\nrequire('../modules/es.string.anchor');\nrequire('../modules/es.string.big');\nrequire('../modules/es.string.blink');\nrequire('../modules/es.string.bold');\nrequire('../modules/es.string.fixed');\nrequire('../modules/es.string.fontcolor');\nrequire('../modules/es.string.fontsize');\nrequire('../modules/es.string.italics');\nrequire('../modules/es.string.link');\nrequire('../modules/es.string.small');\nrequire('../modules/es.string.strike');\nrequire('../modules/es.string.sub');\nrequire('../modules/es.string.sup');\nrequire('../modules/es.typed-array.float32-array');\nrequire('../modules/es.typed-array.float64-array');\nrequire('../modules/es.typed-array.int8-array');\nrequire('../modules/es.typed-array.int16-array');\nrequire('../modules/es.typed-array.int32-array');\nrequire('../modules/es.typed-array.uint8-array');\nrequire('../modules/es.typed-array.uint8-clamped-array');\nrequire('../modules/es.typed-array.uint16-array');\nrequire('../modules/es.typed-array.uint32-array');\nrequire('../modules/es.typed-array.at');\nrequire('../modules/es.typed-array.copy-within');\nrequire('../modules/es.typed-array.every');\nrequire('../modules/es.typed-array.fill');\nrequire('../modules/es.typed-array.filter');\nrequire('../modules/es.typed-array.find');\nrequire('../modules/es.typed-array.find-index');\nrequire('../modules/es.typed-array.for-each');\nrequire('../modules/es.typed-array.from');\nrequire('../modules/es.typed-array.includes');\nrequire('../modules/es.typed-array.index-of');\nrequire('../modules/es.typed-array.iterator');\nrequire('../modules/es.typed-array.join');\nrequire('../modules/es.typed-array.last-index-of');\nrequire('../modules/es.typed-array.map');\nrequire('../modules/es.typed-array.of');\nrequire('../modules/es.typed-array.reduce');\nrequire('../modules/es.typed-array.reduce-right');\nrequire('../modules/es.typed-array.reverse');\nrequire('../modules/es.typed-array.set');\nrequire('../modules/es.typed-array.slice');\nrequire('../modules/es.typed-array.some');\nrequire('../modules/es.typed-array.sort');\nrequire('../modules/es.typed-array.subarray');\nrequire('../modules/es.typed-array.to-locale-string');\nrequire('../modules/es.typed-array.to-string');\nrequire('../modules/es.unescape');\nrequire('../modules/es.weak-map');\nrequire('../modules/es.weak-set');\nrequire('../modules/web.atob');\nrequire('../modules/web.btoa');\nrequire('../modules/web.dom-collections.for-each');\nrequire('../modules/web.dom-collections.iterator');\nrequire('../modules/web.dom-exception.constructor');\nrequire('../modules/web.dom-exception.stack');\nrequire('../modules/web.dom-exception.to-string-tag');\nrequire('../modules/web.immediate');\nrequire('../modules/web.queue-microtask');\nrequire('../modules/web.structured-clone');\nrequire('../modules/web.timers');\nrequire('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\n\nmodule.exports = require('../internals/path');\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../assets/images/ic-player-frame-jump.ttf?rxg7gj\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../assets/fonts/fontello.ttf?13010392\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../assets/fonts/seek-icons.ttf?13010392\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";@keyframes op-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@-webkit-keyframes op-slideOutDown{from{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}to{visibility:hidden;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@keyframes op-slideOutDown{from{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}to{visibility:hidden;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@-webkit-keyframes op-slideInUp{from{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);opacity:1}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes op-slideInUp{from{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);opacity:1}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@font-face{font-family:\\\"frameIcon\\\";src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format('truetype');font-weight:normal;font-style:normal}@font-face{font-family:'op-icons';src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format('truetype');font-weight:normal;font-style:normal}@font-face{font-family:'op-seek-icons';src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format('truetype');font-weight:normal;font-style:normal}:root{--op-accent-color:#50e3c2}.op-wrapper.ovenplayer{position:relative;max-height:100%;overflow:hidden;zoom:1 !important;width:100%;display:block;font-family:Helvetica,Arial,sans-serif;background-color:#000;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;font-size:14px;font-weight:100;outline:0;-webkit-touch-callout:none;user-select:none}.op-wrapper.ovenplayer *{box-sizing:inherit}.op-wrapper.ovenplayer object{width:100%;height:100%;position:absolute}.op-wrapper.ovenplayer:before,.op-wrapper.ovenplayer:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-wrapper.ovenplayer *,.op-wrapper.ovenplayer *:before,.op-wrapper.ovenplayer *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-wrapper.ovenplayer.op-fullscreen{width:100% !important;height:100% !important;top:0;right:0;bottom:0;left:0;z-index:9999;margin:0;position:fixed}.op-wrapper.ovenplayer.op-fullscreen .op-watermark-container,.op-wrapper.ovenplayer.op-fullscreen .op-thumbnail-container{width:100vw;max-width:calc(100vh * 16 / 9);height:calc(100vw * 9 / 16);max-height:100vh;top:50%;left:50%;transform:translate(-50%, -50%)}.op-wrapper.ovenplayer.op-autohide{cursor:none}.op-wrapper.ovenplayer.op-autohide .op-bottom-panel{-webkit-animation-name:op-slideOutDown;animation-name:op-slideOutDown;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.op-wrapper.ovenplayer.op-autohide .op-progressbar-container,.op-wrapper.ovenplayer.op-autohide .op-controls .op-button{cursor:none}.op-wrapper.ovenplayer.op-autohide .op-caption-text-container{bottom:25px}.op-wrapper.ovenplayer.op-no-controls .op-controls-container{display:none !important}.op-wrapper.ovenplayer .op-ratio{padding-bottom:56.25%}.op-wrapper.ovenplayer ::-webkit-scrollbar{width:5px;height:8px}.op-wrapper.ovenplayer ::-webkit-scrollbar-button:start:decrement,.op-wrapper.ovenplayer ::-webkit-scrollbar-button:end:increment{display:block;height:3px;background:#2f2f3e}.op-wrapper.ovenplayer ::-webkit-scrollbar-track{background:#2f2f3e;-webkit-border-radius:10px;border-radius:10px}.op-wrapper.ovenplayer ::-webkit-scrollbar-thumb{height:50px;width:50px;background:#606071;-webkit-border-radius:8px;border-radius:8px}.op-wrapper.ovenplayer .op-clear{color:inherit;background-color:transparent;padding:0;margin:0;float:none;font-family:Helvetica,Arial,sans-serif;font-size:1em;line-height:1em;list-style:none;text-transform:none;vertical-align:baseline;border:0;font-variant:inherit;font-stretch:inherit;-webkit-tap-highlight-color:rgba(255,255,255,0)}.op-player{position:absolute;top:0;height:100%;width:100%}.op-player .op-core-ui-wrapper{position:relative;height:100%}.op-player .op-media-element-container{position:absolute;left:0px;top:0px;width:100%;height:100%}.op-player .op-media-element-container video{position:absolute;left:0;top:0;width:100%;height:100%}.op-player .op-media-element-container object{width:100%;height:100%}.op-ads{position:absolute;height:100%;width:100%;padding-bottom:34px;top:0}.op-ads>div{position:absolute !important;width:100% !important;height:100% !important}.op-ads>div iframe{pointer-events:auto}.op-ads video.op-ads-vast-video{background-color:#000;position:absolute;width:100%;height:100%;left:0;top:0;z-index:1}.op-ads .op-ads-button{bottom:36px;cursor:default;margin-right:4px;pointer-events:auto;position:absolute;right:0;z-index:1;width:auto !important;height:auto !important;border-radius:4px;background-color:rgba(18,18,28,0.7);min-width:155px;display:none}.op-ads .op-ads-button .op-ads-textview{color:#e6e6e6;font-weight:normal;font-size:11px;padding:6px 12px;text-align:center;display:inline-block;width:100%;vertical-align:middle}.op-ads .op-ads-button .videoAdUiAction{padding:8px 24px;cursor:pointer;direction:ltr;font-weight:normal;font-size:20px;border:1px solid rgba(255,255,255,0.5)}.op-ads .op-ads-button .videoAdUiAction:hover{border-radius:4px;border:1px solid #fff}.op-ads .op-ads-button .videoAdUiAction i{display:inline-block;width:auto}.op-button{display:inline-block;border:none;background:transparent;padding:0;color:inherit;text-align:inherit;overflow:hidden;font-weight:100;text-indent:0 !important}.op-button:focus,.op-button{outline:0}i.op-con{font-family:\\\"op-icons\\\",\\\"op-seek-icons\\\";font-style:normal;font-weight:normal;speak:none;font-size:inherit;width:auto;font-size:30px;line-height:30px;display:block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:pointer}i.op-con.disable{color:#4f4f4f}i.op-con.op-close-icon::before{content:\\\"\\\\e900\\\"}i.op-con.op-pause-big::before{content:\\\"\\\\e911\\\"}i.op-con.op-fullscreen-compress::before{content:\\\"\\\\e901\\\"}i.op-con.op-fullscreen-expand::before{content:\\\"\\\\e902\\\"}i.op-con.op-arrow-left::before{content:\\\"\\\\e903\\\"}i.op-con.op-arrow-right::before{content:\\\"\\\\e909\\\"}i.op-con.op-empty-video::before{content:\\\"\\\\e904\\\"}i.op-con.op-play::before{content:\\\"\\\\e906\\\"}i.op-con.op-replay::before{content:\\\"\\\\e908\\\"}i.op-con.op-seek-back::before{content:\\\"\\\\e920\\\"}i.op-con.op-seek-forward::before{content:\\\"\\\\e921\\\"}i.op-con.op-playlist-icon::before{content:\\\"\\\\e907\\\"}i.op-con.op-replay-big::before{content:\\\"\\\\e908\\\"}i.op-con.op-setting::before{content:\\\"\\\\e90A\\\"}i.op-con.op-pause::before{content:\\\"\\\\e90C\\\"}i.op-con.op-volume-small{display:none;margin-top:-1px}i.op-con.op-volume-small::before{content:\\\"\\\\e90D\\\"}i.op-con.op-volume-mute{display:none}i.op-con.op-volume-mute::before{content:\\\"\\\\e90E\\\"}i.op-con.op-volume-max::before{content:\\\"\\\\e90F\\\"}i.op-con.op-play-big::before{content:\\\"\\\\e910\\\"}i.op-con.op-warning::before{content:\\\"\\\\e912\\\"}.op-badge{display:inline-block;padding:.75em .714em .714em .68em;font-size:1em;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.286em;background-color:#12121c}.op-playlist{position:absolute;width:100%;height:100%;left:0;top:0;padding:2.857em;background:#000;z-index:6}.op-playlist .op-badge{position:absolute;top:.857em;right:.857em;opacity:.7}.op-playlist .btn-left{float:left;font-size:2.857em}.op-playlist .btn-right{float:right;font-size:2.857em}.op-playlist .op-playlist-header{font-size:2.857em;font-weight:bold}.op-playlist .op-playlist-header:after{display:block;content:'';clear:both}.op-playlist .op-playlist-header .op-con.op-close-icon{float:right}.op-playlist .op-playlist-body{height:100%;overflow:hidden;position:relative}.op-playlist .op-playlist-body .op-playlist-body-arrows{margin-top:-15px;position:absolute;top:50%;height:30px;-ms-transform:translateY(-50%);transform:translateY(-50%);width:100%;left:0}.op-playlist .op-playlist-body .op-playlist-body-container{width:100%;height:100%;position:relative;margin-right:auto;margin-left:auto;max-width:992px}.op-playlist .op-playlist-body .op-playlist-body-container .op-playlist-body-center{margin:0;position:absolute;top:50%;padding-right:3em;padding-left:3em;-ms-transform:translateY(-50%);transform:translateY(-50%);width:100%}.op-playlist .op-playlist-body .op-playlist-body-row{margin-right:-15px;margin-left:-15px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card{padding-right:15px;padding-left:15px;margin:15px 0;-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%;cursor:pointer}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card.active{color:#50e3c2;color:var(--op-accent-color)}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card.active .op-playlist-card-thumbnail{border-color:#50e3c2;border-color:var(--op-accent-color)}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail{position:relative;display:block;width:100%;padding:0;overflow:hidden;border:.214em solid transparent;background-color:#000}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail img{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail.empty{background-color:#bababa}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail.empty>i{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff !important;font-size:1.6em !important}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail::before{padding-top:56.25%;display:block;content:\\\"\\\"}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-title{margin-top:.857em;font-size:1.429em;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.op-message-box{position:absolute;top:0;left:0;width:100%;height:100%;z-index:4}.op-message-box .op-message-container{position:absolute;top:45%;margin-top:-35px;width:100%;padding:0 12px;text-align:center}.op-message-box .op-message-container .op-message-text{display:inline-block;background-color:rgba(18,18,28,0.3);padding:.8em 1.2em;word-wrap:break-word;max-width:80%;border-radius:4px;cursor:pointer}.op-message-box .op-message-container .op-message-text .op-message-description{font-size:12px;margin-top:12px;color:#999}.op-message-box .op-message-container .op-message-icon{display:inline-block;margin-top:12px;width:100%}.op-message-box .op-message-container .op-message-icon i.op-con{cursor:pointer;font-size:80px;width:80px;height:80px;line-height:80px;display:inline-block;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-message-box.op-message-box-default-cursor .op-message-container .op-message-text{cursor:default}.op-message-box.op-message-box-default-cursor .op-message-container .op-message-icon i.op-con{cursor:default}.op-bigbutton-container{cursor:pointer;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center;z-index:5}.op-bigbutton-container .op-bigbutton{width:80px;height:80px;display:block;font-size:80px;line-height:80px;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-thumbnail-container{position:absolute;width:100%;height:100%;top:0;left:0;z-index:2;pointer-events:none}.op-thumbnail-container .op-thumbnail-wrapper{position:absolute;left:0;top:0;width:100%;height:100%}.op-thumbnail-container .op-thumbnail-wrapper img{width:100%;height:100%}.op-thumbnail-container .op-thumbnail-wrapper .op-thumbnail-header{position:absolute;left:1rem;top:1rem;padding:0 .5rem;font-size:2.857em;font-weight:bold;line-height:1.4;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-thumbnail-container .op-thumbnail-wrapper .op-thumbnail-header:after{display:block;content:'';clear:both}.op-watermark-container{position:absolute;width:100%;height:100%;top:0;left:0;z-index:3}.op-watermark-container .op-watermark{position:absolute;display:inline-block}.op-watermark-container .op-watermark img{width:100%;height:100%}.op-watermark-container .op-watermark .op-watermark-text{font-size:14px}.op-setting-panel{position:absolute;bottom:55px;right:12px;overflow-y:auto;max-height:100%;width:260px;user-select:none;background-color:rgba(28,28,28,0.9);text-shadow:0 0 2px rgba(0,0,0,0.5);z-index:8}.op-setting-panel.background{display:none}.op-setting-panel .op-setting-title,.op-setting-panel .op-setting-item{width:100%;height:38px;line-height:38px;cursor:pointer;outline:none;text-align:left}.op-setting-panel .op-setting-title-container .op-setting-title .op-setting-title-title{padding-left:12px;font-weight:bold}.op-setting-panel .op-setting-title-container .op-setting-title .op-setting-title-previcon{padding:0 0 0 12px;margin-right:-6px}.op-setting-panel .op-setting-item-container .op-setting-item:hover{background-color:rgba(255,255,255,0.1)}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-title{padding-left:12px}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-nexticon{float:right;padding-right:12px;margin-left:-6px}.op-setting-panel .op-setting-item-container .op-setting-item span.op-setting-item-value{float:right;padding-right:12px}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-checked{padding-left:12px;visibility:hidden}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-checked.op-show{visibility:visible}.op-controls-container{display:none}.op-controls-container .op-bottom-panel{position:absolute;left:0px;bottom:0px;width:100%;z-index:5;-webkit-animation-name:op-slideInUp;animation-name:op-slideInUp;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.op-controls-container .op-bottom-panel .op-gradient-bottom{position:absolute;width:100%;height:100%;background-color:rgba(18,18,18,0.5);pointer-events:none}.op-controls-container .op-bottom-panel .op-progressbar-container{display:block;position:relative;width:100%;height:4px;bottom:50px}.op-controls-container .op-bottom-panel .op-progressbar-container.op-progressbar-container-disabled{cursor:default}.op-controls-container .op-bottom-panel .op-progressbar-container .op-progressbar-padding{position:absolute;width:100%;height:15px;bottom:-5px;cursor:pointer}.op-controls-container .op-bottom-panel .op-controls{position:relative;width:100%;height:50px;text-align:left;overflow:hidden}.op-controls-container .op-bottom-panel .op-controls:after{content:'';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-setting-button{position:relative;margin-right:12px}.op-controls-container .op-bottom-panel .op-controls .op-playlist-button{position:relative;margin-right:12px}.op-controls-container .op-bottom-panel .op-controls .op-navigators{float:left;height:30px;line-height:30px}.op-controls-container .op-bottom-panel .op-controls .op-left-controls{position:absolute;top:0;left:0;padding:14px 0 10px 0}.op-controls-container .op-bottom-panel .op-controls .op-left-controls:after{content:'';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-right-controls{position:absolute;top:0;right:0;padding:14px 0 10px 0}.op-controls-container .op-bottom-panel .op-controls .op-right-controls:after{content:'';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons{position:relative;display:inline-block;margin-left:14px;overflow:hidden;font-weight:100;height:30px}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button{margin-right:6px;position:relative;text-align:center;color:#fff}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon{position:relative}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon.reverse:after{content:'\\\\e900'}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon:after{font-family:'frameIcon' !important;speak:none;content:'\\\\e901';font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;font-size:2.4em;left:0;line-height:30px;height:30px}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon .btn-text{font-weight:bold;font-size:.8em;line-height:30px;height:30px}.op-progressbar{position:absolute;bottom:0;left:0;width:100%;height:100%;outline:none;margin-top:10px}.op-progressbar .op-play-background-color{background-color:#50e3c2;background-color:var(--op-accent-color)}.op-progressbar .op-progress-list{cursor:pointer;position:relative;height:100%;background:rgba(255,255,255,0.2)}.op-progressbar .op-progress-list .op-load-progress,.op-progressbar .op-progress-list .op-play-progress,.op-progressbar .op-progress-list .op-hover-progress{position:absolute;left:0;bottom:0;width:100%;height:100%}.op-progressbar .op-progress-list .op-play-progress{width:0}.op-progressbar .op-progress-list .op-load-progress{width:0;background-color:rgba(255,255,255,0.5)}.op-progressbar .op-progress-list .op-hover-progress{left:0;width:0;background-color:rgba(255,255,255,0.6)}.op-progressbar .op-progressbar-knob-container{position:absolute;top:-5px;left:0}.op-progressbar .op-progressbar-knob-container .op-progressbar-knob{width:14px;height:14px;border-radius:7px}.op-progressbar .op-progressbar-time{display:none;position:absolute;bottom:15px;left:auto;width:auto;background-color:rgba(28,28,28,0.9);border-radius:2px;padding:5px 9px;font-size:.8em;line-height:15px;user-select:none;white-space:nowrap;opacity:.7}.op-progressbar-hover .op-progressbar-time{display:inline-block}.op-on-error .op-progressbar-time{display:none}.op-progressbar-section-start,.op-progressbar-section-end{display:none;position:absolute;width:3px;height:14px;bottom:-5px;background-color:#50e3c2;background-color:var(--op-accent-color)}.op-progressbar-preview{position:absolute;display:none;bottom:50px;border:2px solid #fff;border-radius:2px;background-color:#000;z-index:9}.op-play-controller{margin-left:15px}.op-seek-button{position:relative;top:0px}.op-seek-button.op-seek-button-back{margin-left:12px}.op-seek-button.op-seek-button-forward{margin-left:6px}.op-seek-button i{padding-top:1px;font-size:26px}.op-seek-button span{position:absolute;top:10.5px;left:0;right:0;text-align:center;font-size:10px;line-height:10px;cursor:pointer}.op-volume-controller{display:inline-block;position:relative;margin-left:12px}.op-volume-controller:after{content:'';clear:both}.op-volume-controller .op-volume-button{float:left}@-webkit-keyframes slide{100%{left:0}}@keyframes slide{100%{left:0}}.op-volume-controller .op-volume-slider-container{float:left;opacity:0;position:relative;width:0px;margin-right:0;line-height:30px;height:30px;cursor:pointer;user-select:none;outline:none}.op-volume-controller .op-volume-slider-container.active{width:70px;opacity:1;margin-left:8px;-moz-transition:opacity .4s cubic-bezier(0, 0, .2, 1);-webkit-transition:opacity .4s cubic-bezier(0, 0, .2, 1);transition:opacity .4s cubic-bezier(0, 0, .2, 1)}.op-volume-controller .op-volume-slider-container .op-volume-silder{height:100%;position:relative}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-bg,.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-value{position:absolute;display:block;left:0;top:50%;height:4px;margin-top:-2px;border-radius:10px}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-bg{width:100%;background:#fff}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-value{width:100%;background:#50e3c2;background:var(--op-accent-color);border-radius:10px 0 0 10px}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-handle{position:absolute;top:50%;left:30px;width:12px;height:12px;border-radius:10px;margin-top:-6px;background:#fff}.op-time-display{float:left;position:relative;margin-left:14px;height:30px;line-height:30px;white-space:nowrap;vertical-align:top;font-size:14px;user-select:none}.op-time-display .op-live-badge{opacity:1;width:auto;display:inline-block}.op-time-display .op-live-badge:before{background:#ff0000;display:inline-block;position:relative;top:-2px;width:6px;height:6px;margin-right:5px;content:'';border-radius:6px}.op-time-display .op-live-badge.op-live-badge-delayed:before{background:#fff}.op-time-display .op-live-badge .op-live-badge-lowlatency{display:inline-block;margin-right:5px}.op-time-display .op-live-badge .op-live-text{cursor:pointer}.op-context-panel{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute;overflow:hidden;width:200px;padding:6px 0;z-index:8;background:rgba(28,28,28,0.9);text-shadow:0 0 2px rgba(0,0,0,0.5);font-weight:lighter;user-select:none}.op-context-panel:before,.op-context-panel:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-context-panel *,.op-context-panel *:before,.op-context-panel *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-context-panel .op-context-item{width:100%;height:38px;padding-left:12px;line-height:38px;cursor:pointer;outline:none;font-size:.8em;font-weight:lighter;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.op-context-panel .op-context-item:hover{background-color:rgba(255,255,255,0.1)}.op-fullscreen-button{position:relative;margin-right:15px}.op-fullscreen-button .op-fullscreen-compress{display:none}.op-spinner-container{position:absolute;top:50%;width:64px;left:50%;margin-left:-32px;margin-top:-32px;z-index:7;display:none}.op-spinner-container .op-spinner{display:inline-block;position:relative;width:64px;height:64px;border:4px solid transparent;border-top:4px solid #50e3c2;border-top:4px solid var(--op-accent-color);border-radius:50%;animation:spin 1.2s cubic-bezier(.5, 0, .5, 1) infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.op-caption-viewer .op-caption-text-container{position:absolute;bottom:60px;width:100%;padding:0 12px;text-align:center;-moz-transition:bottom .25s cubic-bezier(0, 0, .2, 1);-webkit-transition:bottom .25s cubic-bezier(0, 0, .2, 1);transition:bottom .25s cubic-bezier(0, 0, .2, 1)}.op-caption-viewer .op-caption-text-container .op-caption-text{color:#fff;font-size:1em;line-height:1.2em;text-shadow:2px 2px 2px gray;padding:.1em .3em;user-select:none;word-break:break-word;white-space:pre-line;border:none;background:none}.op-caption-button{width:36px}.op-caption-button>i{font-size:18px;-moz-transition:color .25s cubic-bezier(0, 0, .2, 1);-webkit-transition:color .25s cubic-bezier(0, 0, .2, 1);transition:color .25s cubic-bezier(0, 0, .2, 1)}.op-caption-active .op-caption-button>i{color:#F36446}.op-wrapper.ovenplayer.large{font-size:14px}.op-wrapper.ovenplayer.large .op-caption-text{font-size:2em;line-height:2em}.op-wrapper.ovenplayer.medium{font-size:12px}.op-wrapper.ovenplayer.medium .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.small{font-size:10px}.op-wrapper.ovenplayer.small .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.small .op-playlist{padding:1rem}.op-wrapper.ovenplayer.small .op-playlist .op-playlist-card{margin:5px 0}.op-wrapper.ovenplayer.xsmall{font-size:10px}.op-wrapper.ovenplayer.xsmall .op-bigbutton-container .op-bigbutton{width:60px;height:60px;font-size:60px;line-height:60px}.op-wrapper.ovenplayer.xsmall .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.xsmall .op-playlist{padding:1rem}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-header{font-size:2em}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-card{margin:5px 0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;padding:0 6em}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-card .op-playlist-card-title{margin-top:0}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container{top:50%;font-weight:bold}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container .op-message-icon{margin-top:0}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container .op-message-icon .op-con{font-size:40px;width:40px;height:40px;line-height:40px}.op-wrapper.ovenplayer.xsmall .op-ads-button{bottom:22px}.op-wrapper.ovenplayer.xsmall .op-ads-button .videoAdUiAction{padding:4px;font-size:14px}.op-wrapper.ovenplayer.xxsmall .op-left-controls{max-width:240px;overflow:hidden}.op-wrapper.ovenplayer.xxsmall .op-live-badge-lowlatency{max-width:75px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel{height:34px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls{top:4px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls .op-left-controls{height:30px;padding:0}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls .op-right-controls{height:30px;padding:0}.op-wrapper.ovenplayer.linear-ad .op-ads{top:0;bottom:0}.op-wrapper.ovenplayer.linear-ad .op-button i.op-con{width:24px;height:24px;font-size:24px}.op-wrapper.ovenplayer.linear-ad .op-controls-container .op-bottom-panel .op-progressbar-container{bottom:50px}@keyframes fade{from{opacity:.3}55%{opacity:1}75%{opacity:1}to{opacity:.3}}@-webkit-keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:scale3d(.5, .5, .5);transform:scale3d(.5, .5, .5)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(.97, .97, .97);transform:scale3d(.97, .97, .97)}to{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(.97, .97, .97);transform:scale3d(.97, .97, .97)}to{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.op-player .bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.op-player .fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}.op-player .animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media (prefers-reduced-motion){.op-player .animated{-webkit-animation:unset !important;animation:unset !important;-webkit-transition:none !important;transition:none !important}}@media only screen and (max-width:399px){.op-seek-button{display:none !important}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/stylesheet/ovenplayer.less\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n\\n/**\\n * @brief   Animation\\n * */\\n\\n@keyframes op-spinner {\\n  0% {\\n    transform: rotate(0deg);\\n  }\\n\\n  100% {\\n    transform: rotate(360deg);\\n  }\\n}\\n\\n@-webkit-keyframes op-slideOutDown {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n  }\\n}\\n\\n@keyframes op-slideOutDown {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n  }\\n}\\n\\n@-webkit-keyframes op-slideInUp {\\n  from {\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n\\n@keyframes op-slideInUp {\\n  from {\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n\\n@font-face {\\n  font-family: \\\"frameIcon\\\";\\n  src: url(\\\"../assets/images/ic-player-frame-jump.ttf?rxg7gj\\\") format('truetype');\\n  font-weight: normal;\\n  font-style: normal;\\n}\\n\\n@font-face {\\n  font-family: 'op-icons';\\n  src: url('../assets/fonts/fontello.ttf?13010392') format('truetype');\\n  font-weight: normal;\\n  font-style: normal;\\n}\\n\\n@font-face {\\n  font-family: 'op-seek-icons';\\n  src: url('../assets/fonts/seek-icons.ttf?13010392') format('truetype');\\n  font-weight: normal;\\n  font-style: normal;\\n}\\n\\n/**\\n * @brief   common style\\n * */\\n\\n:root {\\n  --op-accent-color: #50e3c2;\\n}\\n\\n.op-wrapper.ovenplayer {\\n  position: relative;\\n  max-height: 100%;\\n\\n  overflow: hidden;\\n  zoom: 1 !important;\\n  width: 100%;\\n  display: block;\\n  font-family: Helvetica, Arial, sans-serif;\\n  background-color: #000;\\n  -moz-box-sizing: border-box;\\n  -webkit-box-sizing: border-box;\\n  box-sizing: border-box;\\n  color: #fff;\\n  font-size: 14px;\\n  font-weight: 100;\\n  outline: 0;\\n\\n  -webkit-touch-callout: none;\\n  user-select: none;\\n\\n  * {\\n    box-sizing: inherit;\\n  }\\n\\n  object {\\n    width: 100%;\\n    height: 100%;\\n    position: absolute;\\n  }\\n\\n  &:before,\\n  &:after {\\n    -moz-box-sizing: border-box;\\n    -webkit-box-sizing: border-box;\\n    box-sizing: border-box;\\n  }\\n\\n  & *,\\n  & *:before,\\n  & *:after {\\n    -moz-box-sizing: border-box;\\n    -webkit-box-sizing: border-box;\\n    box-sizing: border-box;\\n  }\\n\\n  &.op-fullscreen {\\n    width: 100% !important;\\n    height: 100% !important;\\n    top: 0;\\n    right: 0;\\n    bottom: 0;\\n    left: 0;\\n    z-index: 9999;\\n    margin: 0;\\n    position: fixed;\\n\\n    .op-watermark-container,\\n    .op-thumbnail-container {\\n      width: 100vw;\\n      max-width: calc(100vh * 16 / 9);\\n      height: calc(100vw * 9 / 16);\\n      max-height: 100vh;\\n      top: 50%;\\n      left: 50%;\\n      transform: translate(-50%, -50%);\\n    }\\n\\n  }\\n\\n  &.op-autohide {\\n    cursor: none;\\n\\n    .op-bottom-panel {\\n\\n      -webkit-animation-name: op-slideOutDown;\\n      animation-name: op-slideOutDown;\\n\\n      -webkit-animation-duration: 0.2s;\\n      animation-duration: 0.2s;\\n      -webkit-animation-fill-mode: both;\\n      animation-fill-mode: both;\\n    }\\n\\n    .op-progressbar-container,\\n    .op-controls .op-button {\\n      cursor: none;\\n    }\\n\\n    .op-caption-text-container {\\n      bottom: 25px;\\n    }\\n  }\\n\\n  &.op-no-controls {\\n\\n    .op-controls-container {\\n      display: none !important;\\n    }\\n  }\\n\\n  .op-ratio {\\n    padding-bottom: 56.25%;\\n    /*16:9*/\\n  }\\n\\n  & ::-webkit-scrollbar {\\n    width: 5px;\\n    height: 8px;\\n  }\\n\\n  & ::-webkit-scrollbar-button:start:decrement,\\n  ::-webkit-scrollbar-button:end:increment {\\n    display: block;\\n    height: 3px;\\n    background: #2f2f3e;\\n  }\\n\\n  & ::-webkit-scrollbar-track {\\n    background: #2f2f3e;\\n    -webkit-border-radius: 10px;\\n    border-radius: 10px;\\n  }\\n\\n  & ::-webkit-scrollbar-thumb {\\n    height: 50px;\\n    width: 50px;\\n    background: #606071;\\n    -webkit-border-radius: 8px;\\n    border-radius: 8px;\\n  }\\n\\n  .op-clear {\\n    color: inherit;\\n    background-color: transparent;\\n    padding: 0;\\n    margin: 0;\\n    float: none;\\n    font-family: Helvetica, Arial, sans-serif;\\n    font-size: 1em;\\n    line-height: 1em;\\n    list-style: none;\\n    text-transform: none;\\n    vertical-align: baseline;\\n    border: 0;\\n    font-variant: inherit;\\n    font-stretch: inherit;\\n    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\\n  }\\n}\\n\\n.op-player {\\n  position: absolute;\\n  top: 0;\\n  height: 100%;\\n  width: 100%;\\n\\n\\n\\n  .op-core-ui-wrapper {\\n    position: relative;\\n    height: 100%;\\n  }\\n\\n  .op-media-element-container {\\n    /* display: block;\\n    height: 100%;\\n    width: auto;\\n    position : relative;*/\\n\\n\\n    position: absolute;\\n    left: 0px;\\n    top: 0px;\\n    width: 100%;\\n    height: 100%;\\n\\n    video {\\n      position: absolute;\\n      left: 0;\\n      top: 0;\\n      width: 100%;\\n      height: 100%;\\n    }\\n\\n    object {\\n      width: 100%;\\n      height: 100%;\\n    }\\n  }\\n\\n  .op-ui {\\n\\n    /*position : absolute;\\n    bottom : 0px;\\n    left : 0px;\\n    width: 100%;\\n    height: 100%;*/\\n    .op-controls-container {}\\n\\n    .op-helpers-container {}\\n  }\\n}\\n\\n.op-ads {\\n  position: absolute;\\n  height: 100%;\\n  width: 100%;\\n  padding-bottom: 34px;\\n  //pointer-events: none;\\n  top: 0;\\n\\n  &>div {\\n    position: absolute !important;\\n    width: 100% !important;\\n    height: 100% !important;\\n\\n    iframe {\\n      pointer-events: auto;\\n    }\\n  }\\n\\n  video.op-ads-vast-video {\\n    background-color: rgb(0, 0, 0);\\n    position: absolute;\\n    width: 100%;\\n    height: 100%;\\n    left: 0;\\n    top: 0;\\n    z-index: 1;\\n  }\\n\\n  .op-ads-button {\\n    bottom: 36px;\\n    cursor: default;\\n    margin-right: 4px;\\n    pointer-events: auto;\\n    position: absolute;\\n    right: 0;\\n    z-index: 1;\\n    width: auto !important;\\n    height: auto !important;\\n    border-radius: 4px;\\n    background-color: rgba(18, 18, 28, 0.7);\\n    min-width: 155px;\\n    display: none;\\n\\n    .op-ads-textview {\\n      color: #e6e6e6;\\n      //font-family: arial,sans-serif;\\n      font-weight: normal;\\n      font-size: 11px;\\n      padding: 6px 12px;\\n      text-align: center;\\n      display: inline-block;\\n      width: 100%;\\n      vertical-align: middle;\\n    }\\n\\n    .videoAdUiAction {\\n      padding: 8px 24px;\\n      cursor: pointer;\\n      direction: ltr;\\n      font-weight: normal;\\n      font-size: 20px;\\n      border: 1px solid rgba(255, 255, 255, 0.5);\\n\\n      &:hover {\\n        border-radius: 4px;\\n        border: 1px solid rgba(255, 255, 255, 1);\\n      }\\n\\n      i {\\n        display: inline-block;\\n        width: auto;\\n      }\\n    }\\n  }\\n\\n}\\n\\n/**\\n * @brief   common components\\n * */\\n\\n.op-button {\\n  display: inline-block;\\n  border: none;\\n  background: transparent;\\n  padding: 0;\\n  color: inherit;\\n  text-align: inherit;\\n  overflow: hidden;\\n  font-weight: 100;\\n  text-indent: 0 !important;\\n\\n  &:focus,\\n  & {\\n    outline: 0;\\n  }\\n}\\n\\ni.op-con {\\n  font-family: \\\"op-icons\\\", \\\"op-seek-icons\\\";\\n  font-style: normal;\\n  font-weight: normal;\\n  speak: none;\\n\\n  font-size: inherit;\\n  width: auto;\\n  font-size: 30px;\\n  line-height: 30px;\\n\\n  display: block;\\n  text-decoration: inherit;\\n  text-align: center;\\n\\n  /* For safety - reset parent styles, that can break glyph codes*/\\n  font-variant: normal;\\n  text-transform: none;\\n\\n  /* Font smoothing. That was taken from TWBS */\\n  -webkit-font-smoothing: antialiased;\\n  -moz-osx-font-smoothing: grayscale;\\n\\n  cursor: pointer;\\n\\n  &.disable {\\n    color: #4f4f4f;\\n  }\\n\\n  &.op-close-icon {\\n    &::before {\\n      content: \\\"\\\\e900\\\";\\n    }\\n  }\\n\\n  &.op-pause-big {\\n    &::before {\\n      content: \\\"\\\\e911\\\";\\n    }\\n  }\\n\\n  &.op-fullscreen-compress {\\n    &::before {\\n      content: \\\"\\\\e901\\\";\\n    }\\n  }\\n\\n  &.op-fullscreen-expand {\\n    &::before {\\n      content: \\\"\\\\e902\\\";\\n    }\\n  }\\n\\n  &.op-arrow-left {\\n    &::before {\\n      content: \\\"\\\\e903\\\";\\n    }\\n  }\\n\\n  &.op-arrow-right {\\n    &::before {\\n      content: \\\"\\\\e909\\\";\\n    }\\n  }\\n\\n  &.op-empty-video {\\n    &::before {\\n      content: \\\"\\\\e904\\\";\\n    }\\n  }\\n\\n  &.op-play {\\n    &::before {\\n      content: \\\"\\\\e906\\\";\\n    }\\n  }\\n\\n  &.op-replay {\\n    &::before {\\n      content: \\\"\\\\e908\\\";\\n    }\\n  }\\n\\n  &.op-seek-back {\\n    &::before {\\n      content: \\\"\\\\e920\\\";\\n    }\\n  }\\n\\n  &.op-seek-forward {\\n    &::before {\\n      content: \\\"\\\\e921\\\";\\n    }\\n  }\\n\\n  &.op-playlist-icon {\\n    &::before {\\n      content: \\\"\\\\e907\\\";\\n    }\\n  }\\n\\n  &.op-replay-big {\\n    &::before {\\n      content: \\\"\\\\e908\\\";\\n    }\\n  }\\n\\n  &.op-setting {\\n    &::before {\\n      content: \\\"\\\\e90A\\\";\\n    }\\n  }\\n\\n  &.op-pause {\\n    &::before {\\n      content: \\\"\\\\e90C\\\";\\n    }\\n  }\\n\\n  &.op-volume-small {\\n    display: none;\\n    margin-top: -1px;\\n\\n    &::before {\\n      content: \\\"\\\\e90D\\\";\\n    }\\n  }\\n\\n  &.op-volume-mute {\\n    display: none;\\n\\n    &::before {\\n      content: \\\"\\\\e90E\\\";\\n    }\\n  }\\n\\n  &.op-volume-max {\\n    &::before {\\n      content: \\\"\\\\e90F\\\";\\n    }\\n  }\\n\\n  &.op-play-big {\\n    &::before {\\n      content: \\\"\\\\e910\\\";\\n    }\\n  }\\n\\n  &.op-warning {\\n    &::before {\\n      content: \\\"\\\\e912\\\";\\n    }\\n  }\\n}\\n\\n.op-badge {\\n  display: inline-block;\\n  padding: .75em .714em .714em .680em;\\n  font-size: 1em;\\n  line-height: 1;\\n  text-align: center;\\n  white-space: nowrap;\\n  vertical-align: baseline;\\n  border-radius: 0.286em;\\n  background-color: #12121c;\\n}\\n\\n.op-playlist {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n  left: 0;\\n  top: 0;\\n  padding: 2.857em;\\n  background: #000;\\n  z-index: 6;\\n\\n  .op-badge {\\n    position: absolute;\\n    top: 0.857em;\\n    right: 0.857em;\\n    opacity: 0.7;\\n  }\\n\\n  .btn-left {\\n    float: left;\\n    font-size: 2.857em;\\n  }\\n\\n  .btn-right {\\n    float: right;\\n    font-size: 2.857em;\\n  }\\n\\n  .op-playlist-header {\\n    font-size: 2.857em;\\n    font-weight: bold;\\n\\n    &:after {\\n      display: block;\\n      content: '';\\n      clear: both;\\n    }\\n\\n    .op-con.op-close-icon {\\n      float: right;\\n    }\\n  }\\n\\n  .op-playlist-body {\\n    height: 100%;\\n    overflow: hidden;\\n    position: relative;\\n\\n    .op-playlist-body-arrows {\\n      margin-top: -15px;\\n      position: absolute;\\n      top: 50%;\\n      height: 30px;\\n      -ms-transform: translateY(-50%);\\n      transform: translateY(-50%);\\n      width: 100%;\\n      left: 0;\\n    }\\n\\n    .op-playlist-body-container {\\n      width: 100%;\\n      height: 100%;\\n      position: relative;\\n      margin-right: auto;\\n      margin-left: auto;\\n      max-width: 992px;\\n\\n      .op-playlist-body-center {\\n        margin: 0;\\n        position: absolute;\\n        top: 50%;\\n        padding-right: 3em;\\n        padding-left: 3em;\\n        -ms-transform: translateY(-50%);\\n        transform: translateY(-50%);\\n        width: 100%;\\n      }\\n    }\\n\\n    .op-playlist-body-row {\\n      margin-right: -15px;\\n      margin-left: -15px;\\n      display: -ms-flexbox;\\n      display: flex;\\n      -ms-flex-wrap: wrap;\\n      flex-wrap: wrap;\\n\\n\\n      .op-playlist-card {\\n        padding-right: 15px;\\n        padding-left: 15px;\\n        margin: 15px 0;\\n        -ms-flex-preferred-size: 0;\\n        flex-basis: 0;\\n        -ms-flex-positive: 1;\\n        flex-grow: 1;\\n        -ms-flex: 0 0 33.333333%;\\n        flex: 0 0 33.333333%;\\n        max-width: 33.333333%;\\n        cursor: pointer;\\n\\n        &.active {\\n          color: #50e3c2;\\n          color: var(--op-accent-color);\\n\\n          .op-playlist-card-thumbnail {\\n            border-color: #50e3c2;\\n            border-color: var(--op-accent-color);\\n          }\\n        }\\n\\n        .op-playlist-card-thumbnail {\\n          position: relative;\\n          display: block;\\n          width: 100%;\\n          padding: 0;\\n          overflow: hidden;\\n          border: 0.214em solid transparent;\\n          background-color: #000;\\n\\n          img {\\n            position: absolute;\\n            top: 0;\\n            bottom: 0;\\n            left: 0;\\n            width: 100%;\\n            height: 100%;\\n            border: 0;\\n          }\\n\\n          &.empty {\\n            background-color: #bababa;\\n\\n            &>i {\\n              margin: 0;\\n              position: absolute;\\n              top: 50%;\\n              left: 50%;\\n              transform: translate(-50%, -50%);\\n              color: #fff !important;\\n              font-size: 1.6em !important;\\n            }\\n          }\\n\\n          &::before {\\n            padding-top: 56.25%;\\n            display: block;\\n            content: \\\"\\\";\\n          }\\n        }\\n\\n        .op-playlist-card-title {\\n          margin-top: 0.857em;\\n          font-size: 1.429em;\\n          padding: 2px 0;\\n          white-space: nowrap;\\n          overflow: hidden;\\n          text-overflow: ellipsis;\\n        }\\n\\n      }\\n    }\\n\\n  }\\n}\\n\\n\\n/**\\n * @brief   Message Box\\n * */\\n\\n.op-message-box {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  width: 100%;\\n  height: 100%;\\n  z-index: 4;\\n\\n  .op-message-container {\\n    position: absolute;\\n    top: 45%;\\n    margin-top: -35px;\\n    width: 100%;\\n    padding: 0 12px;\\n    text-align: center;\\n\\n    .op-message-text {\\n      display: inline-block;\\n      background-color: rgba(18, 18, 28, .3);\\n      padding: 0.8em 1.2em;\\n      word-wrap: break-word;\\n      max-width: 80%;\\n      border-radius: 4px;\\n      cursor: pointer;\\n\\n      .op-message-description {\\n        font-size: 12px;\\n        margin-top: 12px;\\n        color: #999;\\n      }\\n    }\\n\\n\\n    .op-message-icon {\\n      display: inline-block;\\n      margin-top: 12px;\\n      width: 100%;\\n\\n      i.op-con {\\n        cursor: pointer;\\n        font-size: 80px;\\n        width: 80px;\\n        height: 80px;\\n        line-height: 80px;\\n        display: inline-block;\\n        text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\\n      }\\n    }\\n\\n    /*.op-message-button{\\n      display: inline-block;\\n      padding : 1em;\\n      margin-left : 0.4em;\\n      background-color: rgba(28,28,28,.4);\\n      cursor : pointer;\\n    }*/\\n  }\\n}\\n\\n.op-message-box.op-message-box-default-cursor .op-message-container .op-message-text {\\n  cursor: default;\\n}\\n\\n.op-message-box.op-message-box-default-cursor .op-message-container .op-message-icon i.op-con {\\n  cursor: default;\\n}\\n\\n/**\\n * @brief   Big button\\n * */\\n\\n.op-bigbutton-container {\\n  cursor: pointer;\\n  position: absolute;\\n  top: 50%;\\n  left: 50%;\\n  transform: translate(-50%, -50%);\\n  text-align: center;\\n  z-index: 5;\\n\\n  .op-bigbutton {\\n    width: 80px;\\n    height: 80px;\\n    display: block;\\n    font-size: 80px;\\n    line-height: 80px;\\n    text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\\n  }\\n}\\n\\n/**\\n * @brief   Thumbnail\\n * */\\n\\n.op-thumbnail-container {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n  //padding-bottom: 56.25%;\\n  top: 0;\\n  left: 0;\\n  //transform: translate(-50%, -50%);\\n  z-index: 2;\\n  pointer-events: none;\\n\\n  .op-thumbnail-wrapper {\\n    position: absolute;\\n    left: 0;\\n    top: 0;\\n    width: 100%;\\n    height: 100%;\\n\\n    img {\\n      width: 100%;\\n      height: 100%;\\n    }\\n\\n    .op-thumbnail-header {\\n      position: absolute;\\n      left: 1rem;\\n      top: 1rem;\\n      padding: 0 0.5rem;\\n      font-size: 2.857em;\\n      font-weight: bold;\\n      line-height: 1.4;\\n      text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\\n\\n      &:after {\\n        display: block;\\n        content: '';\\n        clear: both;\\n      }\\n    }\\n  }\\n}\\n\\n/**\\n * @brief   WaterMark\\n * */\\n\\n.op-watermark-container {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n  //padding-bottom: 56.25%;\\n  top: 0;\\n  left: 0;\\n  //transform: translate(-50%, -50%);\\n  z-index: 3;\\n\\n  .op-watermark {\\n    position: absolute;\\n    display: inline-block;\\n\\n    img {\\n      width: 100%;\\n      height: 100%;\\n    }\\n\\n    .op-watermark-text {\\n      font-size: 14px;\\n    }\\n  }\\n}\\n\\n/**\\n * @brief   Setting panel\\n * */\\n\\n.op-setting-panel {\\n  position: absolute;\\n  bottom: 55px;\\n  right: 12px;\\n  overflow-y: auto;\\n  max-height: 100%;\\n  width: 260px;\\n  //font-size: 0.8em;\\n  user-select: none;\\n  background-color: rgba(28, 28, 28, .9);\\n  text-shadow: 0 0 2px rgba(0, 0, 0, .5);\\n  z-index: 8;\\n\\n  &.background {\\n    //opacity: 0;\\n    //background-color: rgba(28,28,28,.0);\\n    display: none;\\n  }\\n\\n  .op-setting-title,\\n  .op-setting-item {\\n    width: 100%;\\n    height: 38px;\\n    line-height: 38px;\\n    cursor: pointer;\\n    outline: none;\\n    text-align: left;\\n  }\\n\\n  .op-setting-title-container {\\n    .op-setting-title {\\n      .op-setting-title-title {\\n        padding-left: 12px;\\n        font-weight: bold;\\n        //font-size: 0.9rem;\\n      }\\n\\n      .op-setting-title-previcon {\\n        padding: 0 0 0 12px;\\n        margin-right: -6px;\\n      }\\n\\n    }\\n  }\\n\\n  .op-setting-item-container {\\n    .op-setting-item {\\n      &:hover {\\n        background-color: rgba(255, 255, 255, .1);\\n      }\\n\\n      .op-setting-item-title {\\n        padding-left: 12px;\\n      }\\n\\n      .op-setting-item-nexticon {\\n        float: right;\\n        padding-right: 12px;\\n        margin-left: -6px;\\n      }\\n\\n      span.op-setting-item-value {\\n        float: right;\\n        padding-right: 12px;\\n      }\\n\\n      .op-setting-item-checked {\\n        padding-left: 12px;\\n        visibility: hidden;\\n      }\\n\\n      .op-setting-item-checked.op-show {\\n        visibility: visible;\\n      }\\n    }\\n  }\\n}\\n\\n\\n\\n/**\\n * @brief   Controls (container)\\n * */\\n\\n.op-controls-container {\\n  display: none;\\n\\n  .op-bottom-panel {\\n    position: absolute;\\n    left: 0px;\\n    bottom: 0px;\\n    width: 100%;\\n    z-index: 5;\\n\\n    .op-gradient-bottom {\\n      position: absolute;\\n      width: 100%;\\n      height: 100%;\\n      background-color: rgba(18, 18, 18, 0.5);\\n      pointer-events: none;\\n      /*-moz-transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);\\n      -webkit-transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);\\n      transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);*/\\n    }\\n\\n    -webkit-animation-name: op-slideInUp;\\n    animation-name: op-slideInUp;\\n\\n    -webkit-animation-duration: 0.5s;\\n    animation-duration: 0.5s;\\n    -webkit-animation-fill-mode: both;\\n    animation-fill-mode: both;\\n\\n    .op-progressbar-container {\\n      display: block;\\n      position: relative;\\n      width: 100%;\\n      height: 4px;\\n      bottom: 50px;\\n\\n      &.op-progressbar-container-disabled {\\n        cursor: default;\\n      }\\n\\n      .op-progressbar-padding {\\n        position: absolute;\\n        width: 100%;\\n        height: 15px;\\n        bottom: -5px;\\n        cursor: pointer;\\n      }\\n    }\\n\\n\\n    /*contols container*/\\n    .op-controls {\\n      position: relative;\\n      width: 100%;\\n      height: 50px;\\n      text-align: left;\\n      overflow: hidden;\\n\\n      &:after {\\n        content: '';\\n        clear: both;\\n      }\\n\\n      .op-setting-button {\\n        position: relative;\\n        margin-right: 12px;\\n      }\\n\\n      .op-playlist-button {\\n        position: relative;\\n        margin-right: 12px;\\n      }\\n\\n      .op-navigators {\\n        float: left;\\n        height: 30px;\\n        line-height: 30px;\\n      }\\n\\n      .op-left-controls {\\n        position: absolute;\\n        top: 0;\\n        left: 0;\\n        padding: 14px 0 10px 0;\\n\\n        &:after {\\n          content: '';\\n          clear: both;\\n        }\\n      }\\n\\n      .op-right-controls {\\n        position: absolute;\\n        top: 0;\\n        right: 0;\\n        padding: 14px 0 10px 0;\\n\\n        &:after {\\n          content: '';\\n          clear: both;\\n        }\\n      }\\n\\n      /*maybe not use*/\\n      .op-frame-buttons {\\n        position: relative;\\n        display: inline-block;\\n        margin-left: 14px;\\n        overflow: hidden;\\n        font-weight: 100;\\n        height: 30px;\\n\\n        .op-frame-button {\\n          margin-right: 6px;\\n          position: relative;\\n          text-align: center;\\n          color: #fff;\\n\\n          .frame-icon {\\n            position: relative;\\n\\n            &.reverse {\\n              &:after {\\n                content: '\\\\e900';\\n              }\\n            }\\n\\n            &:after {\\n              font-family: 'frameIcon' !important;\\n              speak: none;\\n              content: '\\\\e901';\\n              font-style: normal;\\n              font-weight: normal;\\n              font-variant: normal;\\n              text-transform: none;\\n\\n              /* Better Font Rendering =========== */\\n              -webkit-font-smoothing: antialiased;\\n              -moz-osx-font-smoothing: grayscale;\\n              position: absolute;\\n              font-size: 2.4em;\\n              left: 0;\\n              line-height: 30px;\\n              height: 30px;\\n            }\\n\\n            .btn-text {\\n              font-weight: bold;\\n              font-size: 0.8em;\\n              line-height: 30px;\\n              height: 30px;\\n            }\\n\\n          }\\n\\n        }\\n\\n      }\\n    }\\n  }\\n\\n}\\n\\n\\n/**\\n * @brief   Progressbar\\n * */\\n\\n.op-progressbar {\\n  position: absolute;\\n  bottom: 0;\\n  left: 0;\\n  width: 100%;\\n  height: 100%;\\n  outline: none;\\n  margin-top: 10px;\\n\\n  .op-play-background-color {\\n    background-color: #50e3c2; // for ie 11\\n    background-color: var(--op-accent-color);\\n  }\\n\\n  .op-progress-list {\\n    cursor: pointer;\\n    position: relative;\\n    height: 100%;\\n    background: rgba(255, 255, 255, 0.2);\\n\\n    .op-load-progress,\\n    .op-play-progress,\\n    .op-hover-progress {\\n      position: absolute;\\n      left: 0;\\n      bottom: 0;\\n      width: 100%;\\n      height: 100%;\\n    }\\n\\n    .op-play-progress {\\n      width: 0;\\n    }\\n\\n    .op-load-progress {\\n      width: 0;\\n      background-color: rgba(255, 255, 255, .5);\\n    }\\n\\n    .op-hover-progress {\\n      left: 0;\\n      width: 0;\\n      background-color: rgba(255, 255, 255, .6);\\n    }\\n\\n  }\\n\\n  .op-progressbar-knob-container {\\n    position: absolute;\\n    top: -5px;\\n    left: 0;\\n\\n    .op-progressbar-knob {\\n      width: 14px;\\n      height: 14px;\\n      border-radius: 7px;\\n    }\\n  }\\n\\n  .op-progressbar-time {\\n    display: none;\\n    position: absolute;\\n    bottom: 15px;\\n    left: auto;\\n    width: auto;\\n    background-color: rgba(28, 28, 28, 0.9);\\n    border-radius: 2px;\\n    padding: 5px 9px;\\n    font-size: 0.8em;\\n    line-height: 15px;\\n    user-select: none;\\n    white-space: nowrap;\\n    opacity: 0.7;\\n  }\\n\\n\\n}\\n\\n.op-progressbar-hover .op-progressbar-time {\\n  display: inline-block;\\n}\\n\\n.op-on-error .op-progressbar-time {\\n  display: none;\\n}\\n\\n.op-progressbar-section-start,\\n.op-progressbar-section-end {\\n  display: none;\\n  position: absolute;\\n  width: 3px;\\n  height: 14px;\\n  bottom: -5px;\\n  background-color: #50e3c2;\\n  background-color: var(--op-accent-color);\\n}\\n\\n.op-progressbar-preview {\\n  position: absolute;\\n  display: none;\\n  bottom: 50px;\\n  border: 2px solid #fff;\\n  border-radius: 2px;\\n  background-color: #000;\\n  z-index: 9;\\n}\\n\\n.op-play-controller {\\n  margin-left: 15px;\\n}\\n\\n/**\\n * @brief   Seek button\\n * */\\n\\n.op-seek-button {\\n  //display: none;\\n  position: relative;\\n  top: 0px;\\n\\n  &.op-seek-button-back {\\n    margin-left: 12px;\\n  }\\n\\n  &.op-seek-button-forward {\\n    margin-left: 6px;\\n  }\\n\\n  i {\\n    padding-top: 1px;\\n    font-size: 26px;\\n  }\\n\\n  span {\\n    position: absolute;\\n    top: 10.5px;\\n    left: 0;\\n    right: 0;\\n    text-align: center;\\n    font-size: 10px;\\n    line-height: 10px;\\n    cursor: pointer;\\n  }\\n}\\n\\n\\n/**\\n * @brief   Volume button\\n * */\\n.op-volume-controller {\\n  display: inline-block;\\n  position: relative;\\n  margin-left: 12px;\\n\\n  &:after {\\n    content: '';\\n    clear: both;\\n  }\\n\\n  .op-volume-button {\\n    float: left;\\n  }\\n\\n  @-webkit-keyframes slide {\\n    100% {\\n      left: 0;\\n    }\\n  }\\n\\n  @keyframes slide {\\n    100% {\\n      left: 0;\\n    }\\n  }\\n\\n  .op-volume-slider-container {\\n    /*display: inline-block;*/\\n    float: left;\\n    opacity: 0;\\n    position: relative;\\n    width: 0px;\\n    margin-right: 0;\\n    line-height: 30px;\\n    height: 30px;\\n    cursor: pointer;\\n    user-select: none;\\n    outline: none;\\n\\n    &.active {\\n      width: 70px;\\n      opacity: 1;\\n      margin-left: 8px;\\n      -moz-transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\\n      -webkit-transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\\n      transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\\n    }\\n\\n    .op-volume-silder {\\n      height: 100%;\\n      position: relative;\\n\\n      .op-volume-slider-bg,\\n      .op-volume-slider-value {\\n        position: absolute;\\n        display: block;\\n        left: 0;\\n        top: 50%;\\n        height: 4px;\\n        margin-top: -2px;\\n        border-radius: 10px;\\n      }\\n\\n      .op-volume-slider-bg {\\n        width: 100%;\\n        background: #fff;\\n      }\\n\\n      .op-volume-slider-value {\\n        width: 100%;\\n        background: #50e3c2;\\n        background: var(--op-accent-color);\\n        border-radius: 10px 0 0 10px;\\n        //-moz-transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\\n        //-webkit-transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\\n        //transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\\n      }\\n\\n      .op-volume-slider-handle {\\n        position: absolute;\\n        top: 50%;\\n        left: 30px;\\n        width: 12px;\\n        height: 12px;\\n        border-radius: 10px;\\n        margin-top: -6px;\\n        background: #fff;\\n        //-moz-transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\\n        //-webkit-transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\\n        //transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\\n      }\\n    }\\n  }\\n}\\n\\n\\n/**\\n * @brief   Time Display\\n * */\\n\\n.op-time-display {\\n  float: left;\\n  position: relative;\\n  margin-left: 14px;\\n  height: 30px;\\n  line-height: 30px;\\n  white-space: nowrap;\\n  vertical-align: top;\\n  font-size: 14px;\\n  user-select: none;\\n  /*흠 이부분 어떻게 처리하지*/\\n\\n  .op-time-current,\\n  .op-time-separator,\\n  .op-time-duration {}\\n\\n  .op-live-badge {\\n    opacity: 1;\\n    width: auto;\\n    display: inline-block;\\n\\n    &:before {\\n      background: #ff0000;\\n      display: inline-block;\\n      position: relative;\\n      top: -2px;\\n      width: 6px;\\n      height: 6px;\\n      margin-right: 5px;\\n      content: '';\\n      border-radius: 6px;\\n    }\\n\\n    &.op-live-badge-delayed:before {\\n      background: #fff;\\n    }\\n\\n    .op-live-badge-lowlatency {\\n      display: inline-block;\\n      margin-right: 5px;\\n    }\\n\\n    .op-live-text {\\n      cursor: pointer;\\n    }\\n  }\\n\\n}\\n\\n\\n/**\\n * @brief   Context Panel\\n * */\\n\\n.op-context-panel {\\n  -moz-box-sizing: border-box;\\n  -webkit-box-sizing: border-box;\\n  box-sizing: border-box;\\n  display: block;\\n  position: absolute;\\n  overflow: hidden;\\n  width: 200px;\\n  padding: 6px 0;\\n  z-index: 8;\\n  background: rgba(28, 28, 28, 0.9);\\n  text-shadow: 0 0 2px rgba(0, 0, 0, .5);\\n  font-weight: lighter;\\n  user-select: none;\\n\\n  &:before,\\n  &:after {\\n    -moz-box-sizing: border-box;\\n    -webkit-box-sizing: border-box;\\n    box-sizing: border-box;\\n  }\\n\\n  & *,\\n  & *:before,\\n  & *:after {\\n    -moz-box-sizing: border-box;\\n    -webkit-box-sizing: border-box;\\n    box-sizing: border-box;\\n  }\\n\\n  .op-context-item {\\n    width: 100%;\\n    height: 38px;\\n    padding-left: 12px;\\n    line-height: 38px;\\n    cursor: pointer;\\n    outline: none;\\n    font-size: 0.8em;\\n    font-weight: lighter;\\n    text-overflow: ellipsis;\\n    white-space: nowrap;\\n    overflow: hidden;\\n\\n    &:hover {\\n      background-color: rgba(255, 255, 255, .1);\\n    }\\n  }\\n\\n}\\n\\n\\n\\n\\n\\n\\n/**\\n * @brief   FullScreen button\\n * */\\n\\n.op-fullscreen-button {\\n  position: relative;\\n  margin-right: 15px;\\n\\n  .op-fullscreen-compress {\\n    display: none;\\n  }\\n}\\n\\n/**\\n * @brief   spinner\\n * */\\n\\n.op-spinner-container {\\n  position: absolute;\\n  top: 50%;\\n  width: 64px;\\n  left: 50%;\\n  margin-left: -32px;\\n  margin-top: -32px;\\n  z-index: 7;\\n  display: none;\\n\\n\\n  .op-spinner {\\n    display: inline-block;\\n    position: relative;\\n    width: 64px;\\n    height: 64px;\\n\\n    border: 4px solid transparent;\\n    border-top: 4px solid #50e3c2;\\n    border-top: 4px solid var(--op-accent-color);\\n    border-radius: 50%;\\n\\n    animation: spin 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\\n\\n    @keyframes spin {\\n      0% {\\n        transform: rotate(0deg);\\n      }\\n\\n      100% {\\n        transform: rotate(360deg);\\n      }\\n    }\\n  }\\n\\n}\\n\\n\\n/**\\n * @brief   caption.\\n * */\\n\\n.op-caption-viewer {\\n\\n  .op-caption-text-container {\\n    position: absolute;\\n    bottom: 60px;\\n    width: 100%;\\n    padding: 0 12px;\\n    text-align: center;\\n    -moz-transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n    -webkit-transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n    transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n\\n    .op-caption-text {\\n      color: #fff;\\n      font-size: 1em;\\n      line-height: 1.2em;\\n      text-shadow: 2px 2px 2px gray;\\n      padding: .1em .3em;\\n      user-select: none;\\n      word-break: break-word;\\n      white-space: pre-line;\\n      border: none;\\n      background: none;\\n    }\\n  }\\n}\\n\\n.op-caption-button {\\n  width: 36px;\\n}\\n\\n.op-caption-button>i {\\n  font-size: 18px;\\n  -moz-transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n  -webkit-transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n  transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n}\\n\\n.op-caption-active .op-caption-button>i {\\n  color: #F36446;\\n}\\n\\n\\n\\n/*Responsive  */\\n\\n.op-wrapper.ovenplayer.large {\\n  font-size: 14px;\\n\\n  .op-caption-text {\\n    font-size: 2em;\\n    line-height: 2em;\\n  }\\n\\n}\\n\\n.op-wrapper.ovenplayer.medium {\\n  font-size: 12px;\\n\\n  .op-caption-text {\\n    font-size: 1.4em;\\n    line-height: 1.4em;\\n  }\\n}\\n\\n.op-wrapper.ovenplayer.small {\\n  font-size: 10px;\\n\\n  .op-caption-text {\\n    font-size: 1.4em;\\n    line-height: 1.4em;\\n  }\\n\\n  .op-playlist {\\n    padding: 1rem;\\n\\n    .op-playlist-card {\\n      margin: 5px 0;\\n    }\\n  }\\n\\n}\\n\\n.op-wrapper.ovenplayer.xsmall {\\n  font-size: 10px;\\n\\n  .op-bigbutton-container {\\n\\n    .op-bigbutton {\\n      width: 60px;\\n      height: 60px;\\n      font-size: 60px;\\n      line-height: 60px;\\n    }\\n  }\\n\\n  .op-caption-text {\\n    font-size: 1.4em;\\n    line-height: 1.4em;\\n  }\\n\\n  .op-playlist {\\n    padding: 1rem;\\n\\n    .op-playlist-header {\\n      font-size: 2em;\\n    }\\n\\n    .op-playlist-card {\\n      margin: 5px 0;\\n      -ms-flex: 0 0 100%;\\n      flex: 0 0 100%;\\n      max-width: 100%;\\n      padding: 0 6em;\\n\\n      .op-playlist-card-title {\\n        margin-top: 0;\\n      }\\n    }\\n  }\\n\\n  .op-message-box {\\n    .op-message-container {\\n      top: 50%;\\n      font-weight: bold;\\n\\n      .op-message-icon {\\n        margin-top: 0;\\n\\n        .op-con {\\n          font-size: 40px;\\n          width: 40px;\\n          height: 40px;\\n          line-height: 40px;\\n        }\\n      }\\n    }\\n  }\\n\\n  .op-ads-button {\\n    bottom: 22px;\\n\\n    .videoAdUiAction {\\n      padding: 4px;\\n      font-size: 14px;\\n    }\\n  }\\n}\\n\\n.op-wrapper.ovenplayer.xxsmall {\\n\\n  .op-left-controls {\\n    max-width: 240px; // for small layout\\n    overflow: hidden; // for small layout\\n  }\\n\\n  .op-live-badge-lowlatency {\\n    max-width: 75px;\\n  }\\n}\\n\\n/*AD MODE*/\\n.op-wrapper.ovenplayer.linear-ad {\\n\\n  .op-bottom-panel {\\n    height: 34px;\\n\\n    .op-controls {\\n\\n      top: 4px;\\n\\n      .op-left-controls {\\n        height: 30px;\\n        padding: 0;\\n      }\\n\\n      .op-right-controls {\\n        height: 30px;\\n        padding: 0;\\n      }\\n    }\\n  }\\n\\n  .op-ads {\\n    top: 0;\\n    bottom: 0;\\n  }\\n\\n  .op-button {\\n    i.op-con {\\n      width: 24px;\\n      height: 24px;\\n      font-size: 24px;\\n    }\\n  }\\n\\n  .op-right-controls {\\n    .op-button {\\n      //margin-top: -2px;\\n    }\\n  }\\n\\n  .op-controls-container .op-bottom-panel .op-progressbar-container {\\n    bottom: 50px;\\n  }\\n}\\n\\n/**\\n * @brief   Animation\\n * */\\n\\n.op-player {\\n  @keyframes fade {\\n    from {\\n      opacity: 0.3;\\n    }\\n\\n    /*5% { opacity: 0.3; }*/\\n    /*40% { opacity: 1; }*/\\n    /*50% { opacity: 1; }*/\\n    55% {\\n      opacity: 1;\\n    }\\n\\n    75% {\\n      opacity: 1;\\n    }\\n\\n    to {\\n      opacity: 0.3;\\n    }\\n  }\\n\\n  @-webkit-keyframes bounceIn {\\n\\n    from,\\n    20%,\\n    40%,\\n    60%,\\n    80%,\\n    to {\\n      -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n      animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    }\\n\\n    0% {\\n      opacity: 0;\\n      -webkit-transform: scale3d(0.5, 0.5, 0.5);\\n      transform: scale3d(0.5, 0.5, 0.5);\\n    }\\n\\n    20% {\\n      -webkit-transform: scale3d(1.1, 1.1, 1.1);\\n      transform: scale3d(1.1, 1.1, 1.1);\\n    }\\n\\n    40% {\\n      -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n      transform: scale3d(0.9, 0.9, 0.9);\\n    }\\n\\n    60% {\\n      opacity: 1;\\n      -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n      transform: scale3d(1.03, 1.03, 1.03);\\n    }\\n\\n    80% {\\n      -webkit-transform: scale3d(0.97, 0.97, 0.97);\\n      transform: scale3d(0.97, 0.97, 0.97);\\n    }\\n\\n    to {\\n      opacity: 1;\\n      -webkit-transform: scale3d(1, 1, 1);\\n      transform: scale3d(1, 1, 1);\\n    }\\n  }\\n\\n  @keyframes bounceIn {\\n\\n    from,\\n    20%,\\n    40%,\\n    60%,\\n    80%,\\n    to {\\n      -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n      animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    }\\n\\n    0% {\\n      opacity: 0;\\n      -webkit-transform: scale3d(0.3, 0.3, 0.3);\\n      transform: scale3d(0.3, 0.3, 0.3);\\n    }\\n\\n    20% {\\n      -webkit-transform: scale3d(1.1, 1.1, 1.1);\\n      transform: scale3d(1.1, 1.1, 1.1);\\n    }\\n\\n    40% {\\n      -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n      transform: scale3d(0.9, 0.9, 0.9);\\n    }\\n\\n    60% {\\n      opacity: 1;\\n      -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n      transform: scale3d(1.03, 1.03, 1.03);\\n    }\\n\\n    80% {\\n      -webkit-transform: scale3d(0.97, 0.97, 0.97);\\n      transform: scale3d(0.97, 0.97, 0.97);\\n    }\\n\\n    to {\\n      opacity: 1;\\n      -webkit-transform: scale3d(1, 1, 1);\\n      transform: scale3d(1, 1, 1);\\n    }\\n  }\\n\\n  .bounceIn {\\n    -webkit-animation-duration: 0.75s;\\n    animation-duration: 0.75s;\\n    -webkit-animation-name: bounceIn;\\n    animation-name: bounceIn;\\n  }\\n\\n  @-webkit-keyframes fadeIn {\\n    from {\\n      opacity: 0;\\n    }\\n\\n    to {\\n      opacity: 1;\\n    }\\n  }\\n\\n  @keyframes fadeIn {\\n    from {\\n      opacity: 0;\\n    }\\n\\n    to {\\n      opacity: 1;\\n    }\\n  }\\n\\n  .fadeIn {\\n    -webkit-animation-name: fadeIn;\\n    animation-name: fadeIn;\\n  }\\n\\n  .animated {\\n    -webkit-animation-duration: 1s;\\n    animation-duration: 1s;\\n    -webkit-animation-fill-mode: both;\\n    animation-fill-mode: both;\\n  }\\n\\n  @media (prefers-reduced-motion) {\\n    .animated {\\n      -webkit-animation: unset !important;\\n      animation: unset !important;\\n      -webkit-transition: none !important;\\n      transition: none !important;\\n    }\\n  }\\n\\n\\n  /* Pulse Shrink */\\n  /*.op-button {\\n    //display: inline-block;\\n    //vertical-align: middle;\\n    transform: translateZ(0);\\n    box-shadow: 0 0 1px rgba(0, 0, 0, 0);\\n    backface-visibility: hidden;\\n    -moz-osx-font-smoothing: grayscale;\\n    transition-duration: 0.3s;\\n    transition-property: transform;\\n  }\\n  .op-button:hover,\\n  .op-button:focus,\\n  .op-button:active {\\n    transform: scale(1.1);\\n  }*/\\n}\\n\\n\\n@media only screen and (max-width: 399px) {\\n  .op-seek-button {\\n    display: none !important;\\n  }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = \"\";\n      var needLayer = typeof item[5] !== \"undefined\";\n\n      if (item[4]) {\n        content += \"@supports (\".concat(item[4], \") {\");\n      }\n\n      if (item[2]) {\n        content += \"@media \".concat(item[2], \" {\");\n      }\n\n      if (needLayer) {\n        content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n      }\n\n      content += cssWithMappingToString(item);\n\n      if (needLayer) {\n        content += \"}\";\n      }\n\n      if (item[2]) {\n        content += \"}\";\n      }\n\n      if (item[4]) {\n        content += \"}\";\n      }\n\n      return content;\n    }).join(\"\");\n  }; // import a list of modules into the list\n\n\n  list.i = function i(modules, media, dedupe, supports, layer) {\n    if (typeof modules === \"string\") {\n      modules = [[null, modules, undefined]];\n    }\n\n    var alreadyImportedModules = {};\n\n    if (dedupe) {\n      for (var k = 0; k < this.length; k++) {\n        var id = this[k][0];\n\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n\n    for (var _k = 0; _k < modules.length; _k++) {\n      var item = [].concat(modules[_k]);\n\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        continue;\n      }\n\n      if (typeof layer !== \"undefined\") {\n        if (typeof item[5] === \"undefined\") {\n          item[5] = layer;\n        } else {\n          item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n          item[5] = layer;\n        }\n      }\n\n      if (media) {\n        if (!item[2]) {\n          item[2] = media;\n        } else {\n          item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n          item[2] = media;\n        }\n      }\n\n      if (supports) {\n        if (!item[4]) {\n          item[4] = \"\".concat(supports);\n        } else {\n          item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n          item[4] = supports;\n        }\n      }\n\n      list.push(item);\n    }\n  };\n\n  return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n  if (!options) {\n    options = {};\n  }\n\n  if (!url) {\n    return url;\n  }\n\n  url = String(url.__esModule ? url.default : url); // If url is already wrapped in quotes, remove them\n\n  if (/^['\"].*['\"]$/.test(url)) {\n    url = url.slice(1, -1);\n  }\n\n  if (options.hash) {\n    url += options.hash;\n  } // Should url be wrapped?\n  // See https://drafts.csswg.org/css-values-3/#urls\n\n\n  if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n    return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n  }\n\n  return url;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n  var content = item[1];\n  var cssMapping = item[3];\n\n  if (!cssMapping) {\n    return content;\n  }\n\n  if (typeof btoa === \"function\") {\n    var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n    var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n    var sourceMapping = \"/*# \".concat(data, \" */\");\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n  }\n\n  return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n  var result = -1;\n\n  for (var i = 0; i < stylesInDOM.length; i++) {\n    if (stylesInDOM[i].identifier === identifier) {\n      result = i;\n      break;\n    }\n  }\n\n  return result;\n}\n\nfunction modulesToDom(list, options) {\n  var idCountMap = {};\n  var identifiers = [];\n\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i];\n    var id = options.base ? item[0] + options.base : item[0];\n    var count = idCountMap[id] || 0;\n    var identifier = \"\".concat(id, \" \").concat(count);\n    idCountMap[id] = count + 1;\n    var indexByIdentifier = getIndexByIdentifier(identifier);\n    var obj = {\n      css: item[1],\n      media: item[2],\n      sourceMap: item[3],\n      supports: item[4],\n      layer: item[5]\n    };\n\n    if (indexByIdentifier !== -1) {\n      stylesInDOM[indexByIdentifier].references++;\n      stylesInDOM[indexByIdentifier].updater(obj);\n    } else {\n      var updater = addElementStyle(obj, options);\n      options.byIndex = i;\n      stylesInDOM.splice(i, 0, {\n        identifier: identifier,\n        updater: updater,\n        references: 1\n      });\n    }\n\n    identifiers.push(identifier);\n  }\n\n  return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n  var api = options.domAPI(options);\n  api.update(obj);\n\n  var updater = function updater(newObj) {\n    if (newObj) {\n      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n        return;\n      }\n\n      api.update(obj = newObj);\n    } else {\n      api.remove();\n    }\n  };\n\n  return updater;\n}\n\nmodule.exports = function (list, options) {\n  options = options || {};\n  list = list || [];\n  var lastIdentifiers = modulesToDom(list, options);\n  return function update(newList) {\n    newList = newList || [];\n\n    for (var i = 0; i < lastIdentifiers.length; i++) {\n      var identifier = lastIdentifiers[i];\n      var index = getIndexByIdentifier(identifier);\n      stylesInDOM[index].references--;\n    }\n\n    var newLastIdentifiers = modulesToDom(newList, options);\n\n    for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n      var _identifier = lastIdentifiers[_i];\n\n      var _index = getIndexByIdentifier(_identifier);\n\n      if (stylesInDOM[_index].references === 0) {\n        stylesInDOM[_index].updater();\n\n        stylesInDOM.splice(_index, 1);\n      }\n    }\n\n    lastIdentifiers = newLastIdentifiers;\n  };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next  */\n\nfunction getTarget(target) {\n  if (typeof memo[target] === \"undefined\") {\n    var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n      try {\n        // This will throw an exception if access to iframe is blocked\n        // due to cross-origin restrictions\n        styleTarget = styleTarget.contentDocument.head;\n      } catch (e) {\n        // istanbul ignore next\n        styleTarget = null;\n      }\n    }\n\n    memo[target] = styleTarget;\n  }\n\n  return memo[target];\n}\n/* istanbul ignore next  */\n\n\nfunction insertBySelector(insert, style) {\n  var target = getTarget(insert);\n\n  if (!target) {\n    throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n  }\n\n  target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction insertStyleElement(options) {\n  var element = document.createElement(\"style\");\n  options.setAttributes(element, options.attributes);\n  options.insert(element, options.options);\n  return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction setAttributesWithoutAttributes(styleElement) {\n  var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n  if (nonce) {\n    styleElement.setAttribute(\"nonce\", nonce);\n  }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction apply(styleElement, options, obj) {\n  var css = \"\";\n\n  if (obj.supports) {\n    css += \"@supports (\".concat(obj.supports, \") {\");\n  }\n\n  if (obj.media) {\n    css += \"@media \".concat(obj.media, \" {\");\n  }\n\n  var needLayer = typeof obj.layer !== \"undefined\";\n\n  if (needLayer) {\n    css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n  }\n\n  css += obj.css;\n\n  if (needLayer) {\n    css += \"}\";\n  }\n\n  if (obj.media) {\n    css += \"}\";\n  }\n\n  if (obj.supports) {\n    css += \"}\";\n  }\n\n  var sourceMap = obj.sourceMap;\n\n  if (sourceMap && typeof btoa !== \"undefined\") {\n    css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n  } // For old IE\n\n  /* istanbul ignore if  */\n\n\n  options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n  // istanbul ignore if\n  if (styleElement.parentNode === null) {\n    return false;\n  }\n\n  styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next  */\n\n\nfunction domAPI(options) {\n  var styleElement = options.insertStyleElement(options);\n  return {\n    update: function update(obj) {\n      apply(styleElement, options, obj);\n    },\n    remove: function remove() {\n      removeStyleElement(styleElement);\n    }\n  };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction styleTagTransform(css, styleElement) {\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css;\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild);\n    }\n\n    styleElement.appendChild(document.createTextNode(css));\n  }\n}\n\nmodule.exports = styleTagTransform;","var global =\n  (typeof globalThis !== 'undefined' && globalThis) ||\n  (typeof self !== 'undefined' && self) ||\n  (typeof global !== 'undefined' && global)\n\nvar support = {\n  searchParams: 'URLSearchParams' in global,\n  iterable: 'Symbol' in global && 'iterator' in Symbol,\n  blob:\n    'FileReader' in global &&\n    'Blob' in global &&\n    (function() {\n      try {\n        new Blob()\n        return true\n      } catch (e) {\n        return false\n      }\n    })(),\n  formData: 'FormData' in global,\n  arrayBuffer: 'ArrayBuffer' in global\n}\n\nfunction isDataView(obj) {\n  return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n  var viewClasses = [\n    '[object Int8Array]',\n    '[object Uint8Array]',\n    '[object Uint8ClampedArray]',\n    '[object Int16Array]',\n    '[object Uint16Array]',\n    '[object Int32Array]',\n    '[object Uint32Array]',\n    '[object Float32Array]',\n    '[object Float64Array]'\n  ]\n\n  var isArrayBufferView =\n    ArrayBuffer.isView ||\n    function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n}\n\nfunction normalizeName(name) {\n  if (typeof name !== 'string') {\n    name = String(name)\n  }\n  if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n    throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n  }\n  return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n  if (typeof value !== 'string') {\n    value = String(value)\n  }\n  return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n  var iterator = {\n    next: function() {\n      var value = items.shift()\n      return {done: value === undefined, value: value}\n    }\n  }\n\n  if (support.iterable) {\n    iterator[Symbol.iterator] = function() {\n      return iterator\n    }\n  }\n\n  return iterator\n}\n\nexport function Headers(headers) {\n  this.map = {}\n\n  if (headers instanceof Headers) {\n    headers.forEach(function(value, name) {\n      this.append(name, value)\n    }, this)\n  } else if (Array.isArray(headers)) {\n    headers.forEach(function(header) {\n      this.append(header[0], header[1])\n    }, this)\n  } else if (headers) {\n    Object.getOwnPropertyNames(headers).forEach(function(name) {\n      this.append(name, headers[name])\n    }, this)\n  }\n}\n\nHeaders.prototype.append = function(name, value) {\n  name = normalizeName(name)\n  value = normalizeValue(value)\n  var oldValue = this.map[name]\n  this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n  delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n  name = normalizeName(name)\n  return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n  return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n  this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n  for (var name in this.map) {\n    if (this.map.hasOwnProperty(name)) {\n      callback.call(thisArg, this.map[name], name, this)\n    }\n  }\n}\n\nHeaders.prototype.keys = function() {\n  var items = []\n  this.forEach(function(value, name) {\n    items.push(name)\n  })\n  return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n  var items = []\n  this.forEach(function(value) {\n    items.push(value)\n  })\n  return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n  var items = []\n  this.forEach(function(value, name) {\n    items.push([name, value])\n  })\n  return iteratorFor(items)\n}\n\nif (support.iterable) {\n  Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n  if (body.bodyUsed) {\n    return Promise.reject(new TypeError('Already read'))\n  }\n  body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n  return new Promise(function(resolve, reject) {\n    reader.onload = function() {\n      resolve(reader.result)\n    }\n    reader.onerror = function() {\n      reject(reader.error)\n    }\n  })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n  var reader = new FileReader()\n  var promise = fileReaderReady(reader)\n  reader.readAsArrayBuffer(blob)\n  return promise\n}\n\nfunction readBlobAsText(blob) {\n  var reader = new FileReader()\n  var promise = fileReaderReady(reader)\n  reader.readAsText(blob)\n  return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n  var view = new Uint8Array(buf)\n  var chars = new Array(view.length)\n\n  for (var i = 0; i < view.length; i++) {\n    chars[i] = String.fromCharCode(view[i])\n  }\n  return chars.join('')\n}\n\nfunction bufferClone(buf) {\n  if (buf.slice) {\n    return buf.slice(0)\n  } else {\n    var view = new Uint8Array(buf.byteLength)\n    view.set(new Uint8Array(buf))\n    return view.buffer\n  }\n}\n\nfunction Body() {\n  this.bodyUsed = false\n\n  this._initBody = function(body) {\n    /*\n      fetch-mock wraps the Response object in an ES6 Proxy to\n      provide useful test harness features such as flush. However, on\n      ES5 browsers without fetch or Proxy support pollyfills must be used;\n      the proxy-pollyfill is unable to proxy an attribute unless it exists\n      on the object before the Proxy is created. This change ensures\n      Response.bodyUsed exists on the instance, while maintaining the\n      semantic of setting Request.bodyUsed in the constructor before\n      _initBody is called.\n    */\n    this.bodyUsed = this.bodyUsed\n    this._bodyInit = body\n    if (!body) {\n      this._bodyText = ''\n    } else if (typeof body === 'string') {\n      this._bodyText = body\n    } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n      this._bodyBlob = body\n    } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n      this._bodyFormData = body\n    } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n      this._bodyText = body.toString()\n    } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n      this._bodyArrayBuffer = bufferClone(body.buffer)\n      // IE 10-11 can't handle a DataView body.\n      this._bodyInit = new Blob([this._bodyArrayBuffer])\n    } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n      this._bodyArrayBuffer = bufferClone(body)\n    } else {\n      this._bodyText = body = Object.prototype.toString.call(body)\n    }\n\n    if (!this.headers.get('content-type')) {\n      if (typeof body === 'string') {\n        this.headers.set('content-type', 'text/plain;charset=UTF-8')\n      } else if (this._bodyBlob && this._bodyBlob.type) {\n        this.headers.set('content-type', this._bodyBlob.type)\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n      }\n    }\n  }\n\n  if (support.blob) {\n    this.blob = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return Promise.resolve(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as blob')\n      } else {\n        return Promise.resolve(new Blob([this._bodyText]))\n      }\n    }\n\n    this.arrayBuffer = function() {\n      if (this._bodyArrayBuffer) {\n        var isConsumed = consumed(this)\n        if (isConsumed) {\n          return isConsumed\n        }\n        if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n          return Promise.resolve(\n            this._bodyArrayBuffer.buffer.slice(\n              this._bodyArrayBuffer.byteOffset,\n              this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n            )\n          )\n        } else {\n          return Promise.resolve(this._bodyArrayBuffer)\n        }\n      } else {\n        return this.blob().then(readBlobAsArrayBuffer)\n      }\n    }\n  }\n\n  this.text = function() {\n    var rejected = consumed(this)\n    if (rejected) {\n      return rejected\n    }\n\n    if (this._bodyBlob) {\n      return readBlobAsText(this._bodyBlob)\n    } else if (this._bodyArrayBuffer) {\n      return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n    } else if (this._bodyFormData) {\n      throw new Error('could not read FormData body as text')\n    } else {\n      return Promise.resolve(this._bodyText)\n    }\n  }\n\n  if (support.formData) {\n    this.formData = function() {\n      return this.text().then(decode)\n    }\n  }\n\n  this.json = function() {\n    return this.text().then(JSON.parse)\n  }\n\n  return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n  var upcased = method.toUpperCase()\n  return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n  if (!(this instanceof Request)) {\n    throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n  }\n\n  options = options || {}\n  var body = options.body\n\n  if (input instanceof Request) {\n    if (input.bodyUsed) {\n      throw new TypeError('Already read')\n    }\n    this.url = input.url\n    this.credentials = input.credentials\n    if (!options.headers) {\n      this.headers = new Headers(input.headers)\n    }\n    this.method = input.method\n    this.mode = input.mode\n    this.signal = input.signal\n    if (!body && input._bodyInit != null) {\n      body = input._bodyInit\n      input.bodyUsed = true\n    }\n  } else {\n    this.url = String(input)\n  }\n\n  this.credentials = options.credentials || this.credentials || 'same-origin'\n  if (options.headers || !this.headers) {\n    this.headers = new Headers(options.headers)\n  }\n  this.method = normalizeMethod(options.method || this.method || 'GET')\n  this.mode = options.mode || this.mode || null\n  this.signal = options.signal || this.signal\n  this.referrer = null\n\n  if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n    throw new TypeError('Body not allowed for GET or HEAD requests')\n  }\n  this._initBody(body)\n\n  if (this.method === 'GET' || this.method === 'HEAD') {\n    if (options.cache === 'no-store' || options.cache === 'no-cache') {\n      // Search for a '_' parameter in the query string\n      var reParamSearch = /([?&])_=[^&]*/\n      if (reParamSearch.test(this.url)) {\n        // If it already exists then set the value with the current time\n        this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n      } else {\n        // Otherwise add a new '_' parameter to the end with the current time\n        var reQueryString = /\\?/\n        this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n      }\n    }\n  }\n}\n\nRequest.prototype.clone = function() {\n  return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n  var form = new FormData()\n  body\n    .trim()\n    .split('&')\n    .forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n  return form\n}\n\nfunction parseHeaders(rawHeaders) {\n  var headers = new Headers()\n  // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n  // https://tools.ietf.org/html/rfc7230#section-3.2\n  var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n  // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n  // https://github.com/github/fetch/issues/748\n  // https://github.com/zloirock/core-js/issues/751\n  preProcessedHeaders\n    .split('\\r')\n    .map(function(header) {\n      return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n    })\n    .forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n  return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n  if (!(this instanceof Response)) {\n    throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n  }\n  if (!options) {\n    options = {}\n  }\n\n  this.type = 'default'\n  this.status = options.status === undefined ? 200 : options.status\n  this.ok = this.status >= 200 && this.status < 300\n  this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n  this.headers = new Headers(options.headers)\n  this.url = options.url || ''\n  this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n  return new Response(this._bodyInit, {\n    status: this.status,\n    statusText: this.statusText,\n    headers: new Headers(this.headers),\n    url: this.url\n  })\n}\n\nResponse.error = function() {\n  var response = new Response(null, {status: 0, statusText: ''})\n  response.type = 'error'\n  return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n  if (redirectStatuses.indexOf(status) === -1) {\n    throw new RangeError('Invalid status code')\n  }\n\n  return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n  new DOMException()\n} catch (err) {\n  DOMException = function(message, name) {\n    this.message = message\n    this.name = name\n    var error = Error(message)\n    this.stack = error.stack\n  }\n  DOMException.prototype = Object.create(Error.prototype)\n  DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n  return new Promise(function(resolve, reject) {\n    var request = new Request(input, init)\n\n    if (request.signal && request.signal.aborted) {\n      return reject(new DOMException('Aborted', 'AbortError'))\n    }\n\n    var xhr = new XMLHttpRequest()\n\n    function abortXhr() {\n      xhr.abort()\n    }\n\n    xhr.onload = function() {\n      var options = {\n        status: xhr.status,\n        statusText: xhr.statusText,\n        headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n      }\n      options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n      var body = 'response' in xhr ? xhr.response : xhr.responseText\n      setTimeout(function() {\n        resolve(new Response(body, options))\n      }, 0)\n    }\n\n    xhr.onerror = function() {\n      setTimeout(function() {\n        reject(new TypeError('Network request failed'))\n      }, 0)\n    }\n\n    xhr.ontimeout = function() {\n      setTimeout(function() {\n        reject(new TypeError('Network request failed'))\n      }, 0)\n    }\n\n    xhr.onabort = function() {\n      setTimeout(function() {\n        reject(new DOMException('Aborted', 'AbortError'))\n      }, 0)\n    }\n\n    function fixUrl(url) {\n      try {\n        return url === '' && global.location.href ? global.location.href : url\n      } catch (e) {\n        return url\n      }\n    }\n\n    xhr.open(request.method, fixUrl(request.url), true)\n\n    if (request.credentials === 'include') {\n      xhr.withCredentials = true\n    } else if (request.credentials === 'omit') {\n      xhr.withCredentials = false\n    }\n\n    if ('responseType' in xhr) {\n      if (support.blob) {\n        xhr.responseType = 'blob'\n      } else if (\n        support.arrayBuffer &&\n        request.headers.get('Content-Type') &&\n        request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n      ) {\n        xhr.responseType = 'arraybuffer'\n      }\n    }\n\n    if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n      Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n        xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n      })\n    } else {\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n    }\n\n    if (request.signal) {\n      request.signal.addEventListener('abort', abortXhr)\n\n      xhr.onreadystatechange = function() {\n        // DONE (success or failure)\n        if (xhr.readyState === 4) {\n          request.signal.removeEventListener('abort', abortXhr)\n        }\n      }\n    }\n\n    xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n  })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n  global.fetch = fetch\n  global.Headers = Headers\n  global.Request = Request\n  global.Response = Response\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t983: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","// startup\n// Load entry module and return exports\n// This entry module used 'module' so it can't be inlined\n__webpack_require__(8594);\n__webpack_require__(7147);\nvar __webpack_exports__ = __webpack_require__(8445);\n"],"names":["root","factory","exports","module","define","amd","self","version","__VERSION__","trim","string","replace","extractExtension","path","substr","azuredFormat","extension","test","getAzureFileFormat","split","lastIndexOf","length","toLowerCase","naturalHms","second","secNum","parseInt","hours","Math","floor","minutes","seconds","hmsToSecond","str","frameRate","_","arr","arrLength","sec","slice","parseFloat","secIndex","_entry","data","entry","array","idx","indexOf","line","index","start","end","text","join","VTTCue","window","directionSetting","alignSetting","findAlignSetting","value","extend","obj","i","arguments","cobj","p","startTime","endTime","cue","this","isIE8","navigator","userAgent","baseObj","document","createElement","enumerable","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","Object","defineProperty","get","set","TypeError","setting","findDirectionSetting","SyntaxError","Error","displayState","undefined","prototype","getCueAsHTML","WebVTT","convertCueToDOMTree","scrollSetting","isValidPercentValue","_width","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","defineProperties","findScrollSetting","makeColorSet","color","opacity","substring","fontScale","observe","subject","topic","fontColor","Services","prefs","getCharPref","fontOpacity","getIntPref","WebVTTSet","fontSet","backgroundColor","backgroundOpacity","backgroundSet","edgeType","edgeColor","edgeSet","forEach","pref","addObserver","_objCreate","create","F","o","ParsingError","errorData","message","name","code","parseTimeStamp","input","computeSeconds","h","m","s","f","match","Settings","values","parseOptions","callback","keyValueDelim","groupDelim","groups","kv","parseCue","regionList","oInput","consumeTimeStamp","ts","Errors","BadTimeStamp","skipWhitespace","settings","k","v","id","region","alt","vals","vals0","integer","percent","consumeCueSettings","constructor","BadSignature","dflt","defaultKey","has","a","n","ESCAPE","TAG_NAME","c","b","u","ruby","rt","lang","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","result","unescape1","e","unescape","shouldAdd","current","element","localName","type","annotation","tagName","t","rootDiv","tagStack","appendChild","createTextNode","pop","parentNode","node","createProcessingInstruction","className","push","strongRTLChars","StyleBox","CueStyleBox","styleOptions","textShadow","call","cueDiv","styles","position","left","right","top","bottom","display","writingMode","vertical","unicodeBidi","applyStyles","div","textAlign","align","font","whiteSpace","direction","charCode","nodeStack","childNodes","pushNodes","nextTextNode","textContent","innerText","charCodeAt","j","determineBidi","stylesunicodeBidi","textPos","positionAlign","size","formatStyle","width","height","move","box","BoxPosition","lh","offsetHeight","offsetWidth","offsetTop","rects","getClientRects","getBoundingClientRect","max","lineHeight","moveBoxToLinePosition","styleBox","containerBox","boxPositions","boxPosition","linePos","snapToLines","track","textTrackList","mediaElement","trackList","count","mode","computeLinePos","axis","step","round","maxPosition","initialAxis","abs","ceil","reverse","calculatedPercentage","lineAlign","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","findBestPosition","toCSSCompatValues","prop","hasOwnProperty","style","val","unit","toMove","overlaps","b2","boxes","container","min","reference","getSimpleBoxPosition","StringDecoder","decode","decodeURIComponent","encodeURIComponent","cuetext","processCues","cues","overlay","firstChild","removeChild","paddedOverlay","margin","shouldCompute","fontSize","Parser","decoder","state","buffer","TextDecoder","reportOrThrowError","onparsingerror","parse","flushing","collectNextLine","pos","stream","alreadyCollectedLine","xy","anchor","VTTRegion","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","scroll","onregion","parseRegion","hasSubstring","oncue","flush","onflush","analUserAgent","screenSize","screen","nameOffset","verOffset","ix","nVer","appVersion","nAgt","browser","appName","majorVersion","toUpperCase","isNaN","mobile","cookieEnabled","cookie","os","clientStrings","r","cs","osVersion","exec","browserVersion","browserMajorVersion","ua","cookies","reCloseSync","reLineEnding","reBrokenTag","reStartTime","reBr","strip_tags","allowed","$0","$1","_sort","langItem","sort","res","that","convertToVTTCues","map","load","language","successCallback","errorCallback","fetch","file","then","response","ok","body","vttCues","OvenPlayerConsole","log","parser","parsedData","sami","options","definedLangs","duration","errors","getLanguage","key","makeEndTime","_ref","fixedLang","error","item","lineNum","nextStartTagIdx","ret","startTagIdx","tempRet","_ref1","_ref2","context","search","contents","nav","browserLanguagePropertyKeys","Array","isArray","languages","getBrowserLanguage","convertedLanguageNames","keys","filter","concat","reClassName","splice","KRCC","RegExp","KOCC","KR","ENCC","EGCC","EN","JPCC","SmiParser","captions","list","SrtParser","catch","status","STATE_IDLE","STATE_COMPLETE","STATE_PAUSED","STATE_PLAYING","STATE_ERROR","STATE_LOADING","STATE_STALLED","STATE_AD_LOADED","STATE_AD_PLAYING","STATE_AD_PAUSED","STATE_AD_COMPLETE","STATE_AD_ERROR","PROVIDER_HTML5","PROVIDER_WEBRTC","PROVIDER_DASH","PROVIDER_HLS","PROVIDER_RTMP","READY","DESTROY","PLAYLIST_CHANGED","ALL_PLAYLIST_ENDED","NETWORK_UNSTABLED","ERROR","PLAYER_STATE","PLAYER_PAUSE","PLAYER_PLAY","PLAYER_CLICKED","PLAYER_RESIZED","PLAYER_FULLSCREEN_CHANGED","PLAYER_WARNING","AD_CHANGED","AD_TIME","CONTENT_BUFFER","CONTENT_TIME","CONTENT_VOLUME","CONTENT_MUTE","CONTENT_META","CONTENT_SOURCE_CHANGED","CONTENT_LEVEL_CHANGED","CONTENT_CAPTION_CUE_CHANGED","CONTENT_CAPTION_CHANGED","CONTENT_TIME_MODE_CHANGED","OME_P2P_MODE","AUDIO_TRACK_CHANGED","ERRORS","codes","SYSTEM_TEXT","isSupport","kind","object","_events","triggerEvents","events","args","event","listener","apply","on","trigger","allEvents","all","off","names","l","retain","_listener","once","onceCallback","La$","selectorOrElement","$element","returnNode","selector","nodeList","querySelectorAll","show","hide","addClass","classList","add","after","htmlString","insertAdjacentHTML","append","before","children","contains","elChild","empty","innerHTML","find","css","removeClass","remove","removeAttribute","attrName","html","hasClass","is","$targetElement","offset","rect","scrollTop","scrollLeft","clientWidth","clientHeight","attr","getAttribute","replaceWith","parentElement","hasChildNodes","closest","selectorString","el","matches","nodeType","closestElement","isRtmp","isWebRTC","isHls","isDash","checkAndGetContainerElement","containerElement","getElementById","userAgentObject","supportList","checkSupport","source","video","canPlayType","mimeType","aac","mp4","f4v","m4v","mov","mp3","mpeg","ogv","ogg","oga","vorbis","webm","f4a","m3u8","m3u","hls","MediaSource","WebKitMediaSource","mediaSource","sourceBuffer","isTypeSupported","sourceBufferValidAPI","getMediaSource","SourceBuffer","WebKitSourceBuffer","appendBuffer","support","ActiveXObject","mimeTypes","testFlash","findProviderNameBySource","soruce_","findProviderNamesByPlaylist","playlistItem","supportNames","sources","supported","TEMP_VIDEO_URL","errorTrigger","provider","setState","pause","pickCurrentSource","playerConfig","sourceIndex","getSourceIndex","default","elVideo","adTagUrl","adContainer","ADMANGER_LOADING_ERROR","ADS_MANAGER_LOADED","AD_ERROR","adsManagerLoaded","adsErrorOccurred","spec","started","active","isVideoEnded","OnManagerLoaded","OnAdError","adDisplayContainer","adsLoader","adsManager","adsRequest","autoplayAllowed","autoplayRequiresMuted","getBrowser","isMobile","google","ima","AdsManagerLoadedEvent","Type","AdErrorEvent","setLocale","setDisableCustomPlaybackForIOS10Plus","adErrorEvent","console","getError","getVastErrorCode","getMessage","innerError","getInnerError","getErrorCode","play","adsManagerLoadedEvent","adsRenderingSettings","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","destroy","getAdsManager","adsSpec","lowLevelEvents","intervalTimer","AD_BUFFERING","AdEvent","CONTENT_PAUSE_REQUESTED","CONTENT_RESUME_REQUESTED","ALL_ADS_COMPLETED","CLICK","SKIPPED","COMPLETE","FIRST_QUARTILE","LOADED","MIDPOINT","PAUSED","RESUMED","STARTED","USER_CLOSE","THIRD_QUARTILE","isAllAdCompelete","currentAd","adEvent","getPosition","remainingTime","getRemainingTime","ad","getAd","remaining","isLinear","adObject","getDuration","skipTimeOffset","getSkipTimeOffset","setInterval","skippable","getAdSkippableState","clearInterval","eventName","removeEventListener","addEventListener","setAdCompleteCallback","_adCompleteCallback","isAllAdComplete","isLinearAd","AdsEventsListener","adConatinerElment","setAttribute","getContainer","AdDisplayContainer","AdsLoader","mute","setVolume","volume","setAutoPlayToAdsRequest","setAdWillAutoPlay","setAdWillPlayMuted","timer","iconClass","onClickCallback","setMute","isActive","Promise","resolve","reject","resume","initialize","retryCount","checkAdsManagerIsReady","init","ViewMode","NORMAL","setTimeout","temporarySupportCheckVideo","src","getName","clearAndReport","_autoplayAllowed","_autoplayRequiresMuted","playPromise","checkAutoplaySupport","isAutoStart","AdsRequest","forceNonLinearFullSlot","requestAds","videoEndedCallback","completeContentCallback","contentComplete","$ads","LA$","Ad","sequence","system","title","description","advertiser","pricing","survey","errorURLTemplates","impressionURLTemplates","creatives","extensions","AdExtension","attributes","AdExtensionChild","CompanionAd","staticResource","htmlResource","iframeResource","altText","companionClickThroughURLTemplate","companionClickTrackingURLTemplates","trackingEvents","Creative","adId","apiFramework","CreativeCompanion","variations","resolveURLTemplates","ASSETURI","encodeURIComponentRFC3986","CONTENTPLAYHEAD","ERRORCODE","CACHEBUSTING","leftpad","random","toString","TIMESTAMP","Date","toISOString","RANDOM","range","util","Image","isNumeric","isFinite","flatten","reduce","parserUtils","nodeName","location","protocol","videoClickTrackingURLTemplates","videoCustomClickURLTemplates","videoClickThroughURLTemplate","parseCreativeCompanion","companionClickTrackingURLTemplate","CreativeLinear","skipDelay","mediaFiles","adParameters","icons","Icon","program","xPosition","yPosition","iconClickThroughURLTemplate","iconClickTrackingURLTemplates","iconViewTrackingURLTemplate","MediaFile","fileURL","deliveryType","codec","bitrate","minBitrate","maxBitrate","scalable","maintainAspectRatio","parseCreativeLinear","charAt","parseXPosition","parseYPosition","domain","CreativeNonLinear","NonLinearAd","expandedWidth","expandedHeight","minSuggestedDuration","nonlinearClickThroughURLTemplate","nonlinearClickTrackingURLTemplates","parseCreativeNonLinear","parseAd","parseWrapper","parseInLine","parseCreativeAdIdAttribute","parseExtensions","model","currency","nextWrapperURL","nodeValue","EventHandlers","EventEmitter","$getMaxListeners","_maxListeners","defaultMaxListeners","emitNone","arrayClone","emitOne","emitTwo","emitThree","emitMany","_addListener","newListener","emit","_eventsCount","unshift","warned","emitter","warn","emitWarning","_onceWrap","removeListener","listenerCount","usingDomains","Domain","getPrototypeOf","setMaxListeners","getMaxListeners","domainEmitter","domainThrown","addListener","prependListener","prependOnceListener","spliceOne","removeAllListeners","listeners","unwrapListeners","eventNames","Reflect","ownKeys","flashURLHandler","async","request","open","timeout","withCredentials","send","onprogress","onload","loadXML","responseText","XDomainRequest","nodeURLHandler","xhr","XMLHttpRequest","OvenPlayerSDK","playerList","XHRURLHandler","overrideMimeType","onreadystatechange","readyState","responseXML","statusText","urlHandler","VASTResponse","ads","DEFAULT_EVENT_DATA","VASTParser","remainingAds","parentURLs","rootErrorURLTemplates","maxWrapperDepth","URLTemplateFilters","fetchingOptions","assign","url","wrapperDepth","originalUrl","rootURL","wrapperLimit","urlhandler","shift","resolveAds","buildVASTResponse","initParsingStatus","fetchVAST","isRootVAST","getErrorURLTemplates","completeWrapperResolving","resolveAll","wrapperSequence","documentElement","trackVastError","resolveWrappers","errorCode","errorMessage","ERRORMESSAGE","storage","DEFAULT_STORAGE","getItem","setItem","removeItem","clear","Storage","initStorage","localStorage","sessionStorage","isStorageDisabled","VASTClient","cappingFreeLunch","cappingMinimumTimeInterval","defaultOptions","vastParser","lastSuccessfulAd","totalCalls","totalCallsTimeout","getRemainingAds","now","getAndParseVAST","VASTTracker","creative","variation","muted","impressed","_alreadyTriggeredQuartiles","emitAlwaysEvents","_initLinearTracking","_initVariationTracking","linear","setDuration","clickThroughURLTemplate","clickTrackingURLTemplates","assetDuration","quartiles","firstQuartile","midpoint","thirdQuartile","isQuartileReached","progress","paused","fullscreen","expanded","trackURLs","progressFormatted","close","elAdVideo","textView","adButton","vastClient","vastTracker","checkMainContentLoaded","metaLoaded","$textView","$adButton","$elAdVideo","processEndOfAd","skipButtonClicked","skip","errorWithCode","canplay","ended","complete","click","setPaused","timeupdate","setProgress","target","currentTime","volumechange","setMuted","loadedmetadata","getState","trackImpression","videoURL","onExtendedLoad","getAdClient","Vast","Ima","stalled","setCanSeek","durationchange","loadeddata","getSources","getCurrentSource","metadata","isLive","Infinity","setMetaLoaded","loadstart","getConfig","showBigPlayButton","autoStart","playing","timeRanges","buffered","num","setBuffer","bufferPercent","sectionStart","seek","sectionEnd","stop","isSeeking","toFixed","compareStalledTime","seeking","setSeeking","seeked","waiting","convertedErroCode","EventsListener","playbackRate","defaultPlaybackRate","getPlaybackRate","_load","lastPlayPosition","currentSource","framerate","getVolume","setTimecodeMode","previousSource","getMse","mse","getMediaElement","canSeek","isLoaded","newState","prevState","newstate","prevstate","newBuffer","getBuffer","getDvrWindow","dvrWindow","isMute","getMute","preload","promise","setPlaybackRate","label","gridThumbnail","lowLatency","setCurrentSource","needProviderChange","setSourceIndex","getQualityLevels","qualityLevels","getCurrentQuality","currentQuality","setCurrentQuality","qualityIndex","getAudioTracks","audioTracks","getCurrentAudioTrack","currentAudioTrack","setCurrentAudioTrack","audioTrackIndex","isAutoQuality","setAutoQuality","isAuto","getFramerate","setFramerate","seekFrame","frameCount","fps","newPosition","super","method","Provider","superDestroy_func","webSocketUrl","loadCallback","connectedCallback","internalErrorCallback","defaultConnectionConfig","ws","wsConnected","mainStream","mainPeerConnectionInfo","clientPeerConnections","wsClosedByPlayer","recoverPacketLoss","playlistFromOme","autoQuality","webrtcConfig","generatePublicCandidate","existingHandler","currentBrowser","getPeerConnectionById","peerConnection","extractLossPacketsOnNetworkStatus","peerConnectionInfo","statisticsTimer","clearTimeout","lostPacketsArr","slotLength","prevPacketsLost","avg8Losses","avgMoreThanThresholdCount","threshold","getStats","stats","autoFallback","isRemote","actualPacketLost","packetsLost","memo","closePeer","createMainPeerConnection","peerId","sdp","candidates","iceServers","peerConnectionConfig","iceTransportPolicy","iceServer","regIceServer","urls","hasWebsocketUrl","socketUrl","generateDomainFromUrl","cloneIceServer","ip","findIp","username","user_name","credential","RTCPeerConnection","tempError","setRemoteDescription","RTCSessionDescription","createAnswer","desc","opusFormatNumber","getOpusFormatNumber","stereo","checkOpusIsStereo","mungeSdpForceStereoOpus","sendMessage","peer_id","command","setLocalDescription","addIceCandidate","onicecandidate","candidate","onconnectionstatechange","connectionState","onicecandidateerror","onicegatheringstatechange","oniceconnectionstatechange","iceConnectionState","ontrack","streams","playoutDelayHint","hint","receivers","getReceivers","receiver","jitterBufferDelayHint","createClientPeerConnection","hostId","clientId","addStream","createOffer","sessionDescription","copyCandidate","basicCandidate","cloneCandidate","newDomain","RTCIceCandidate","cloneCandidatePromise","initWebSocket","WebSocket","onopen","onmessage","JSON","ice_servers","renditions","rendition","video_track","auto","rendition_name","onclose","onerror","clientPeerConnection","stringify","onbeforeunload","connect","webrtcLoader","superPlay_func","sourceFile","audioCtx","connectionTimeout","timeoutMaxRetry","connectionCheckTimer","connected","loadWebRTCLoader","performance","WebRTCLoader","srcObject","AudioContext","webkitAudioContext","currentDevice","called","unlockAudio","createMediaStreamSource","destroyWebRtcLoader","config","bytes","si","postpix","thresh","units","dash","seekPosition_sec","sourceOfFile","dashjs","Version","coveredSetAutoSwitchQualityFor","updateSettings","streaming","abr","autoSwitchBitrate","coveredGetAutoSwitchQualityFor","getSettings","MediaPlayer","op_dash","lowLatencyEnabled","lowLatencyMpdLiveDelay","liveDelay","debug","logLevel","Debug","LOG_LEVEL_NONE","dashConfigFromPlayerConfig","dashConfig","attachSource","QUALITY_CHANGE_REQUESTED","mediaType","QUALITY_CHANGE_RENDERED","newQuality","PLAYBACK_METADATA_LOADED","getQualityFor","getBitrateInfoListFor","subQualityList","sizeHumanizer","isDynamic","mutedPlay","setQualityFor","reset","superStop_func","loadRetryer","firstLoaded","hlsConfig","hlsConfigFromPlayerConfig","Hls","op_hls","attachMedia","loadSource","Events","MANIFEST_LOADED","levels","qualityLevel","firstLevel","audioTrack","LEVEL_LOADED","details","live","LEVEL_SWITCHED","level","autoLevelEnabled","AUDIO_TRACK_SWITCHED","LEVEL_UPDATED","totalduration","networkDetails","stopLoad","fatal","errorType","currentLevel","playlistManager","playlist","currentIndex","supportChecker","SupportChecker","makePrettySource","source_","host","application","mimetypeRegEx","initPlaylist","prettiedPlaylist","tracks","prettySource","defaultSource","isCurrentProtocolOnly","highPriorityType","extractOnlyOneProtocol","getPlaylist","getCurrentPlayList","getCurrentPlaylistIndex","setCurrentPlaylist","getCurrentSources","getCurrentAdTag","PlaylistManager","providerController","supportChacker","Providers","registeProvider","ProviderLoader","html5","HTML5","webrtc","WebRTC","Dash","loadProviders","supportedProviderNames","providerName","findByName","getProviderBySource","supportedProviderName","isSameProvider","newSource","ProviderController","mediaManager","browserInfo","$container","videoElement","createMedia","isLoop","createAdContainer","MediaManager","currentProvider","captionManager","runNextPlaylist","nextPlaylistIndex","hasNextPlaylist","initProvider","api","playlistIndex","captionList","currentCaptionIndex","captionLoader","CaptionLoader","isFisrtLoad","bindTrack","tracksCount","trackId","prefix","defaulttrack","changeCurrentCaption","meta","currentCues","flushCaptionList","lastCaptionIndex","getCaptionList","getCurrentCaption","setCurrentCaption","_index","addCaption","removeCaption","CaptionManager","currentSourceIndex","externalCallbackCreep","triggerEventFromExternal","ApiRtmpExpansion","mediaContainer","lowercaseVal","Number","serialize","deserialize","playbackRates","loop","controls","timecode","hidePlaylistIcon","rtmpBufferTime","rtmpBufferTimeMax","adClient","currentProtocolOnly","systemText","loadingRetryCount","expandFullScreenUI","fullscreenOption","userCustumSystemText","currentSystemText","rate","configPlaylist","feedData","composeSourceOptions","qualityLabel","newLabel","Configurator","getSystemText","getProviderName","getProvider","getMseInstance","isShow","isTimecodeMode","setPlaylist","getCurrentPlaylist","getVersion","playerInstance","API","getPlayerList","getPlayerByContainerId","containerId","getContainerId","getPlayerByIndex","removePlayer","generateWebrtcUrls","isDebugMode","uiText","elements","isRoot","settingItemTemplate","useCheck","panelType","isCheck","hasNext","playlistItemTemplate","image","TextViewTemplate","ViewTemplate","HelpersTemplate","BigButtonTemplate","playerState","ThumbnailTemplate","WaterMarkTemplate","waterMark","MessageBoxTemplate","dontClose","SpinnerTemplate","ContextPanelTemplate","CaptionViewerTemplate","ControlsTemplate","hasPlaylist","VolumeButtonTemplate","ProgressBarTemplate","PlayButtonTemplate","SettingButtonTemplate","FrameButtonsTemplate","TimeDisplayTemplate","isP2P","low_latency_p2p","low_latency_live","FullScreenButtonTemplate","PanelsTemplate","SpeedPanelTemplate","SourcePanelTemplate","QualityPanelTemplate","AudioTrackPanelTemplate","CaptionPanelTemplate","TimeDisplayPanelTemplate","PlaylistPanelTemplate","templateName","onRendered","onDestroyed","$template","viewEvents","createAndSelectElement","newElement","ui","Templates","eventString","explodedText","$target","wrappedFunc","eventOption","passive","nodeLength","withTimer","clickCallback","autoDestroyTimer","$current","template","stopPropagation","preventDefault","OvenTemplate","thumbnail","firstRun","bigButton","messageBox","spinner","mutedMessage","hasThumbnail","hasWaterMark","dont_show_message","qualityLevelChanging","newQualityLevel","createBigButton","currentState","currentPlaylistIndex","BigButton","createThumbnail","poster","Thumbnail","$spinner","Spinner","getContainerElement","isDisable","deleteTimer","hideGap","CaptionViewer","textElem","waterMarkOption","y","x","WaterMark","MessageBox","UI_ICONS","createMessage","settingPanelList","refreshFront","setFront","settingPanel","removeLastItem","settingPanelObject","PANEL_TITLE","$root","panelManager","PanelManager","extractSubPanelData","panel","getTime","playBackRates","currentPlaybackRate","speedUnit","displayModes","isFront","currentTarget","SpeedPanel","SourcePanel","$panel","QualityPanel","AudioTrackPanel","CaptionPanel","TimeDisplayPanel","newQualityObject","initialDuration","volumeButton","playButton","settingButton","progressBar","timeDisplay","fullScreenButton","uiInited","webrtc_is_p2p_mode","isAndroid","isIOS","lastContentMeta","setMouseDown","$playlistPanel","totalCount","pageSize","page","pagedList","pagenate","totalPageCount","originalItemIndex","findCurrentPage","evt","gtarget","PlaylistPanel","initProgressBar","isAd","disableSeekUI","currentPlayingPosition","mouseDown","lastGridThumbnail","durationForCalc","$progressBar","$progressLoad","$progressPlay","$progressHover","$knobContainer","$knob","knobWidth","$time","$preview","hlsLive","positionElements","progressBarWidth","knobPostion","drawHoverProgress","hoverPosition","calculatePercentage","progressBarOffsetX","pointerOffsetX","pageX","touches","clientX","drawTimeIndicator","timeElemWidth","positionOfPixel","calculateMagnetic","elementWidth","magneticPosition","interval","thumbnailInterval","originalThumbnailWidth","originalThumbnailHeight","columnCount","rowCount","scale","resizeScale","thumbnailNumber","imageNumber","rowNumber","columnNumber","previewMagneticPosition","time","loadPosition","ProgressBar","initSettingButton","$parent","panelData","currentCaption","speed","quality","caption","generateMainData","Panels","SettingButton","initFullscreenButton","$iconExpand","$iconCompress","isFullScreen","isIos","fullscreenChagedEventName","isForceMode","fullScreenEventTypes","onfullscreenchange","onmozfullscreenchange","onwebkitfullscreenchange","MSFullscreenChange","checkFullScreen","fullScreen","fullScreenElement","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","resetFullscreenButtonState","afterFullScreenChangedCallback","forcedFakeFullscreenToggle","toggleFullScreen","rootElement","videoElements","adVideoElement","videoTitle","webkitEnterFullScreen","requestFullscreen","fullScreenOption","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen","requestFullScreen","exitFullscreen","webkitExitFullscreen","webkitExitFullScreen","mozCancelFullScreen","msExitFullscreen","FullScreenButton","makeControlUI","$position","$duration","$liveBadge","convertHumanizeTime","MAX_SAFE_INTEGER","isTimecode","TimeDisplay","initTimeDisplay","resetControlUI","$iconPlay","$iconPause","$iconReplay","$buttonBack","$buttonForward","$textBack","$textForward","seekInterval","seekControlInterval","showSeekControl","PlayButton","$sliderContainer","$slider","$sliderHandle","$sliderValue","$volumeIconBig","$volumeIconSmall","$volumeIconMute","maxRange","setVolumeUI","setVolumeIcon","handlePosition","sliderWidth","VolumeButton","metadata_for_when_after_playing","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","OvenPlayer","$playerRoot","viewTemplate","helper","contextPanel","autoHideTimer","isShiftPressed","currentPlayerSize","setHide","autoHide","togglePlayPause","isRewind","currentPosition","isUp","newVolume","currentVolumn","calcPlayerWidth","playerWidth","frameMode","keyCode","pageY","panelWidth","panelHeight","ContextPanel","ResizeSensor","getMediaElementContainer","setApi","Controls","showControlBar","Helpers","aspectRatio","ratio","showControls","player","View","global","selectors","_qsa","styleSheet","cssText","scrollBy","querySelector","getElementsByClassName","classNames","String","Node","DOMException","useCapture","_timeStamp","_currentTarget","attachEvent","detachEvent","Element","Event","CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","srcElement","eventPhase","bubbles","cancelable","timeStamp","cancelBubble","returnValue","defaultPrevented","Window","HTMLDocument","CustomEvent","params","detail","createEvent","initCustomEvent","addEvent","fn","removeEvent","DOMTokenListShim","removeTokenFromString","token","tokens","some","underlying_string","token_list","toggle","force","addToElementPrototype","getClassList","elem","getRelList","relList","DOMTokenList","previousSibling","ELEMENT_NODE","nextSibling","msMatchesSelector","oMatchesSelector","mozMatchesSelector","webkitMatchesSelector","ownerDocument","ParentNode","prepend","nodes","convertNodesIntoANode","insertBefore","mixin","Document","DocumentFragment","ChildNode","parent","viablePreviousSibling","viableNextSibling","replaceChild","DocumentType","CharacterData","ps","getOwnPropertyDescriptor","ex","createDocumentFragment","returnExportsGlobal","q","resizedAttached","resizeSensor","g","currentStyle","getComputedStyle","getPropertyValue","d","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","_isCollectionTyped","jQuery","Elements","_element","detach","Function","Symbol","ArrayBuffer","DataView","isView","propertyIsEnumerable","pow","w","A","S","O","M","E","B","N","I","T","Int8Array","D","R","V","Map","P","getInt8","U","W","z","L","$","C","K","J","G","H","Q","X","Y","Z","nn","rn","tn","_wrapped","en","Uint8Array","byteOffset","VERSION","valueOf","toJSON","un","an","hn","cn","sn","pn","vn","yn","dn","gn","bn","mn","jn","_n","wn","An","xn","Sn","On","Mn","En","Bn","Nn","toPath","In","Tn","kn","Dn","Rn","Fn","Vn","Pn","qn","iteratee","Un","Wn","zn","Ln","$n","Cn","Kn","Jn","templateSettings","evaluate","interpolate","escape","Gn","Hn","Qn","Xn","Yn","Zn","nr","rr","placeholder","tr","er","ur","or","ir","ar","fr","cr","lr","sr","pr","vr","hr","yr","dr","gr","br","mr","jr","_r","wr","Ar","xr","Sr","Or","Mr","Er","Br","Nr","Ir","Tr","kr","Dr","Rr","Fr","Vr","Pr","qr","Ur","Wr","zr","Lr","$r","Cr","Kr","Jr","Gr","Hr","Qr","Xr","_chain","chain","Yr","Zr","__proto__","restArguments","isObject","isNull","isUndefined","isBoolean","isElement","isString","isNumber","isDate","isRegExp","isError","isSymbol","isArrayBuffer","isDataView","isFunction","isArguments","isTypedArray","isEmpty","isMatch","isEqual","isMap","isWeakMap","isSet","isWeakSet","allKeys","pairs","invert","functions","methods","extendOwn","defaults","clone","tap","mapObject","identity","constant","noop","property","propertyOf","matcher","times","variable","uniqueId","partial","bind","bindAll","memoize","cache","delay","defer","throttle","leading","trailing","cancel","debounce","wrap","negate","compose","findKey","findIndex","findLastIndex","sortedIndex","detect","findWhere","each","collect","foldl","inject","reduceRight","foldr","select","every","any","includes","include","invoke","pluck","where","shuffle","sample","sortBy","criteria","groupBy","indexBy","countBy","partition","toArray","pick","omit","first","head","take","initial","last","rest","tail","drop","compact","Boolean","without","uniq","unique","union","intersection","difference","unzip","transpose","zip","chunk","isCallable","tryToString","argument","isConstructor","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","configurable","unicode","isPrototypeOf","it","Prototype","fails","isExtensible","NAME","Constructor","NATIVE_ARRAY_BUFFER","DESCRIPTORS","hasOwn","classof","createNonEnumerableProperty","redefine","setPrototypeOf","uid","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","klass","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","KEY","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","uncurryThis","FunctionName","redefineAll","anInstance","toIntegerOrInfinity","toLength","toIndex","IEEE754","getOwnPropertyNames","arrayFill","arraySlice","setToStringTag","InternalStateModule","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","getInternalState","setInternalState","ARRAY_BUFFER","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","RangeError","fill","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","isLittleEndian","intIndex","store","byteLength","conversion","INCORRECT_ARRAY_BUFFER_NAME","NaN","testView","$setInt8","setInt8","setUint8","unsafe","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toObject","toAbsoluteIndex","lengthOfArrayLike","copyWithin","len","to","from","inc","argumentsLength","endPos","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","getIteratorMethod","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","iterator","next","iteratorMethod","done","toIndexedObject","createMethod","IS_INCLUDES","$this","fromIndex","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","boundFunction","filterReject","$lastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","V8_VERSION","SPECIES","METHOD_NAME","foo","aCallable","IS_RIGHT","fin","mergeSort","comparefn","middle","insertionSort","merge","llength","rlength","lindex","rindex","originalArray","arraySpeciesConstructor","itoc","ctoi","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","TEST","stack","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","iterate","defineIterator","setSpecies","fastKey","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","ADDER","iterable","AS_ENTRIES","previous","getEntry","removed","prev","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","getWeakData","ArrayIterationModule","uncaughtFrozenStore","frozen","UncaughtFrozenStore","entries","findUncaughtFrozen","isForced","InternalMetadataModule","checkCorrectnessOfIteration","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","getOwnPropertyDescriptorModule","exceptions","MATCH","regexp","error1","requireObjectCoercible","quot","attribute","p1","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","ENUMERABLE_NEXT","bitmap","writable","toPropertyKey","propertyKey","padStart","DatePrototype","n$DateToISOString","getUTCDate","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","date","year","milliseconds","sign","ordinaryToPrimitive","IS_PURE","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","proto","wrappedWellKnownSymbolModule","EXISTS","IndexSizeError","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","DOMTokenListPrototype","firefox","UA","Pebble","process","getBuiltIn","Deno","versions","v8","webkit","normalizeStringArgument","nativeErrorToString","INCORRECT_TO_STRING","setGlobal","copyConstructorProperties","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","regexpExec","RegExpPrototype","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","$exec","flattenIntoArray","original","sourceLen","depth","mapper","thisArg","elementLen","targetIndex","mapFn","preventExtensions","NATIVE_BIND","FunctionPrototype","factories","construct","argsLength","partArgs","getDescriptor","aFunction","namespace","getMethod","usingIterator","func","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","symbols","ch","capture","check","globalThis","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","nBits","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","cause","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","onFreeze","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","WeakMap","wmget","wmhas","wmset","facade","STATE","enforce","constructorRegExp","isConstructorModern","isConstructorLegacy","feature","detection","normalize","POLYFILL","NATIVE","isInteger","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","unboundFunction","iterFn","IS_ITERATOR","INTERRUPTED","condition","callFn","innerResult","PrototypeOfArrayIteratorPrototype","arrayIterator","$expm1","expm1","exp","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","LOG10E","log10","log1p","notify","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","enter","nextTick","characterData","task","getOwnPropertySymbols","symbol","URL","searchParams","pathname","href","URLSearchParams","hash","PromiseCapability","$$resolve","$$reject","$default","globalIsFinite","whitespaces","n$ParseFloat","trimmedString","$parseInt","hex","radix","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","alphabet","chr","activeXDocument","definePropertiesModule","enumBugKeys","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObject","iframeDocument","iframe","contentWindow","Properties","V8_PROTOTYPE_DEFINE_BUG","props","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","Attributes","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","$propertyIsEnumerable","NASHORN_BUG","WEBKIT","__defineSetter__","aPossiblePrototype","setter","CORRECT_SETTER","TO_ENTRIES","newPromiseCapability","promiseCapability","Queue","enforceInternalState","TEMPLATE","simple","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","sticky","charsAdded","strCopy","multiline","ignoreCase","dotAll","$RegExp","MISSED_STICKY","TAG","SHARED","copyright","license","aConstructor","defaultConstructor","CONVERT_TO_STRING","codeAt","$repeat","repeat","IS_END","maxLength","fillString","fillLen","stringFiller","intMaxLength","stringLength","fillStr","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","fromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","base","encode","output","counter","extra","ucs2decode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","encoded","labels","whitespace","ltrim","rtrim","channel","port","validateArgumentsLength","setImmediate","clearImmediate","Dispatch","MessageChannel","queue","run","runner","post","postMessage","handler","port2","port1","importScripts","toPositiveInteger","BYTES","TO_PRIMITIVE","exoticToPrim","toPrimitive","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","isIntegralNumber","toOffset","typedArrayFrom","nativeDefineProperty","nativeGetOwnPropertyDescriptor","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","getter","typedArrayOffset","$length","$len","arrayFromConstructorAndList","typedArraySpeciesConstructor","speciesConstructor","postfix","NATIVE_SYMBOL","passed","required","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","installErrorCause","clearErrorStack","ERROR_STACK_INSTALLABLE","FULL_NAME","IS_AGGREGATE_ERROR","OPTIONS_POSITION","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","wrapErrorConstructorWithCause","AGGREGATE_ERROR","$AggregateError","AggregateError","isInstance","AggregateErrorPrototype","errorsArray","arrayBufferModule","un$ArrayBufferSlice","viewSource","viewTarget","addToUnscopables","at","relativeIndex","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arg","$every","$filter","$findIndex","FIND_INDEX","SKIPS_HOLES","$find","FIND","flatMap","flat","depthArg","$includes","$IndexOf","un$IndexOf","ARRAY_ITERATOR","Arguments","un$Join","ES3_STRINGS","separator","$map","of","$reduceRight","CHROME_VERSION","$reduce","un$Reverse","un$Slice","HAS_SPECIES_SUPPORT","$some","internalSort","FF","IE_OR_EDGE","V8","un$Sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","itemsLength","items","arrayLength","getSortCompare","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","getYear","getFullYear","setFullYear","setYear","yi","toGMTString","toUTCString","pv","dateToPrimitive","INVALID_DATE","un$DateToString","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","WEB_ASSEMBLY","errorToString","ErrorPrototype","numberToString","HAS_INSTANCE","FUNCTION_NAME_EXISTS","nameRE","regExpExec","$stringify","tester","low","hi","fix","replacer","space","collection","$acosh","acosh","sqrt","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","LOG2E","clz32","$cosh","cosh","$hypot","hypot","value1","value2","sum","aLen","larg","$imul","imul","UINT16","xl","yl","log2","sinh","tanh","trunc","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","toNumber","third","maxCode","digits","NumberWrapper","isSafeInteger","MIN_SAFE_INTEGER","un$ToExponential","toExponential","ROUNDS_PROPERLY","THROWS_ON_INFINITY_FRACTION","PROPER_NON_FINITE_THIS_CHECK","fractionDigits","un$ToFixed","acc","multiply","c2","divide","dataToString","fractDigits","x2","un$ToPrecision","toPrecision","precision","__defineGetter__","$entries","$freeze","freeze","fromEntries","getOwnPropertyDescriptors","nativeGetPrototypeOf","$isFrozen","isFrozen","$isSealed","isSealed","nativeKeys","__lookupGetter__","__lookupSetter__","$preventExtensions","$seal","seal","$values","$parseFloat","newPromiseCapabilityModule","perform","allSettled","capability","promiseResolve","alreadyCalled","reason","PROMISE_ANY_ERROR","alreadyResolved","alreadyRejected","NativePromise","real","onFinally","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","microtask","hostReportErrors","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","initEvent","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","$promiseResolve","race","functionApply","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","deleteProperty","objectGetPrototypeOf","isDataDescriptor","objectPreventExtensions","objectSetPrototypeOf","existingDescriptor","ownDescriptor","regExpFlags","NativeRegExp","getFlags","stringIndexOf","IS_NCG","CORRECT_NEW","RegExpWrapper","pattern","rawFlags","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","named","brackets","ncg","groupid","groupname","handleNCG","handleDotAll","proxy","objectDefinePropertyModule","un$Test","$toString","TO_STRING","n$ToString","NOT_GENERIC","INCORRECT_NAME","rf","createHTML","forcedStringHTMLMethod","big","blink","bold","codePointAt","notARegExp","correctIsRegExpLogic","un$EndsWith","endsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","fixed","fontcolor","fontsize","$fromCodePoint","fromCodePoint","italics","STRING_ITERATOR","point","link","advanceStringIndex","MATCH_ALL","REGEXP_STRING_ITERATOR","REGEXP_STRING","un$MatchAll","matchAll","WORKS_WITH_NON_GLOBAL_REGEX","$RegExpStringIterator","$global","fullUnicode","$matchAll","flagsValue","rx","fixRegExpWellKnownSymbolLogic","nativeMatch","maybeCallNative","matchStr","$padEnd","padEnd","$padStart","rawTemplate","literalSegments","getSubstitution","REPLACE","searchValue","replaceAll","replaceValue","IS_REG_EXP","functionalReplace","searchLength","advanceBy","endOfLastMatch","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","UNSAFE_SUBSTITUTE","results","accumulatedResult","nextSourcePosition","replacerArgs","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","small","callRegExpExec","MAX_UINT32","$push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","lastLastIndex","separatorCopy","splitter","unicodeMatching","un$StartsWith","startsWith","strike","sub","intLength","intEnd","intStart","sup","$trimEnd","forcedStringTrimMethod","trimEnd","trimRight","$trimStart","trimStart","trimLeft","$trim","defineWellKnownSymbol","NativeSymbol","SymbolPrototype","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","nativeObjectCreate","getOwnPropertyNamesExternal","HIDDEN","QObject","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","properties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","$replacer","u$ArrayCopyWithin","$fill","fromSpeciesAndList","predicate","createTypedArrayConstructor","$indexOf","ArrayIterators","arrayValues","arrayKeys","arrayEntries","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","$join","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","ACCEPT_INCORRECT_ARGUMENTS","mod","expected","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","hex2","hex4","part","InternalWeakMap","collectionWeak","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","disallowed","finalEq","$atob","NO_SPACES_IGNORE","atob","NO_ARG_RECEIVING_CHECK","bs","bc","$btoa","btoa","block","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","tryNodeRequire","DOMExceptionConstants","DOM_EXCEPTION","NativeDOMException","NativeDOMExceptionPrototype","HAS_STACK","codeFor","$DOMException","DOMExceptionPrototype","createGetterDescriptor","INCORRECT_CONSTRUCTOR","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constantName","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","structuredCloneImplementation","getBuiltin","EvalError","ReferenceError","URIError","PerformanceMark","CompileError","LinkError","RuntimeError","Set","MapPrototype","mapHas","mapGet","mapSet","setAdd","booleanValueOf","numberValueOf","stringValueOf","PERFORMANCE_MARK","DATA_CLONE_ERROR","TRANSFERRING","checkBasicSemantic","set1","set2","nativeStructuredClone","structuredClone","FORCED_REPLACEMENT","structuredCloneFromMark","nativeRestrictedStructuredClone","throwUncloneable","throwUnpolyfillable","structuredCloneInternal","cloned","dataTransfer","deep","DOMQuad","p2","p3","p4","DataTransfer","files","ImageData","colorSpace","fromPoint","fromRect","fromMatrix","File","PROPER_TRANSFER","transfer","tryToTransfer","rawTransfer","transferredArray","transferred","canvas","OffscreenCanvas","getContext","transferFromImageBitmap","transferToImageBitmap","MSIE","scheduler","boundArgs","USE_NATIVE_URL","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","n$Fetch","N$Request","Headers","RequestPrototype","HeadersPrototype","plus","sequences","percentSequence","percentDecode","replacements","URLSearchParamsIterator","URLSearchParamsState","parseObject","parseQuery","bindURL","update","entryIterator","entryNext","query","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","getAll","found","headersHas","headersSet","wrapRequestOptions","headers","RequestConstructor","Request","EOF","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","maxIndex","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","http","https","wss","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","urlString","stateOverride","codePoints","bufferCodePoints","pointer","seenAt","seenBracket","seenPasswordToken","scheme","password","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","parseIPv6","partsLength","numbers","ipv4","parts","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","origin","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","cssWithMappingToString","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","_k","__esModule","needQuotes","cssMapping","base64","sourceMapping","sourceURLs","sourceRoot","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","indexByIdentifier","sourceMap","references","updater","addElementStyle","byIndex","newObj","lastIdentifiers","newList","newLastIdentifiers","_i","styleTarget","HTMLIFrameElement","contentDocument","getTarget","styleElement","nonce","removeStyleElement","Blob","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","header","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","buf","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","_bodyArrayBuffer","rejected","arrayBuffer","readAsText","chars","readArrayBufferAsText","formData","json","oldValue","upcased","credentials","signal","referrer","reParamSearch","form","Response","bodyInit","redirectStatuses","redirect","err","aborted","abortXhr","abort","rawHeaders","getAllResponseHeaders","responseURL","ontimeout","onabort","fixUrl","responseType","setRequestHeader","polyfill","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","baseURI","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"ovenplayer.js","mappings":"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AAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,IAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChE,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAChE,MAAQ,MAAQ,MAAQ,MAAQ,MAAS,MAAS,MAAS,MAC3D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAC/D,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,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R,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MAC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","sources":["webpack://OvenPlayer/webpack/universalModuleDefinition","webpack://OvenPlayer/./src/js/version.js","webpack://OvenPlayer/./src/js/utils/strings.js","webpack://OvenPlayer/./src/js/api/caption/parser/SrtParser.js","webpack://OvenPlayer/./src/js/utils/captions/vttCue.js","webpack://OvenPlayer/./src/js/utils/captions/vttRegion.js","webpack://OvenPlayer/./src/js/api/caption/parser/VttParser.js","webpack://OvenPlayer/./src/js/utils/browser.js","webpack://OvenPlayer/./src/js/api/caption/parser/SmiParser.js","webpack://OvenPlayer/./src/js/api/caption/Loader.js","webpack://OvenPlayer/./src/js/api/constants.js","webpack://OvenPlayer/./src/js/api/caption/Manager.js","webpack://OvenPlayer/./src/js/api/EventEmitter.js","webpack://OvenPlayer/./src/js/utils/likeA$.js","webpack://OvenPlayer/./src/js/utils/validator.js","webpack://OvenPlayer/./src/js/api/SupportChecker.js","webpack://OvenPlayer/./src/js/api/ads/utils.js","webpack://OvenPlayer/./src/js/api/provider/utils.js","webpack://OvenPlayer/./src/js/api/ads/ima/Ad.js","webpack://OvenPlayer/./src/js/api/ads/ima/Listener.js","webpack://OvenPlayer/./src/js/utils/vast-client.js","webpack://OvenPlayer/./src/js/ovenplayer.sdk.js","webpack://OvenPlayer/./src/js/api/ads/vast/Ad.js","webpack://OvenPlayer/./src/js/api/ads/vast/Listener.js","webpack://OvenPlayer/./src/js/api/provider/html5/Provider.js","webpack://OvenPlayer/./src/js/api/provider/html5/Listener.js","webpack://OvenPlayer/./src/js/api/provider/html5/providers/Html5.js","webpack://OvenPlayer/./src/js/api/provider/html5/providers/WebRTCLoader.js","webpack://OvenPlayer/./src/js/api/provider/html5/providers/WebRTC.js","webpack://OvenPlayer/./src/js/utils/sizeHumanizer.js","webpack://OvenPlayer/./src/js/api/provider/html5/providers/Dash.js","webpack://OvenPlayer/./src/js/api/provider/html5/providers/Hls.js","webpack://OvenPlayer/./src/js/api/Api.js","webpack://OvenPlayer/./src/js/api/playlist/Manager.js","webpack://OvenPlayer/./src/js/api/provider/Controller.js","webpack://OvenPlayer/./src/js/api/media/Manager.js","webpack://OvenPlayer/./src/js/api/ApiExpansions.js","webpack://OvenPlayer/./src/js/api/Configurator.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/mainTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/playlistPanelTemplate.js","webpack://OvenPlayer/./src/js/view/engine/Templates.js","webpack://OvenPlayer/./src/js/view/example/textviewTemplate.js","webpack://OvenPlayer/./src/js/view/viewTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/mainTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/bigButtonTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/thumbnailTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/waterMarkTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/messageBoxTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/spinnerTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/contextPanelTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/captionViewerTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/mainTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/volumeButtonTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/progressBarTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/playButtonTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/settingButtonTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/frameButtonsTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/timeDisplayTemplate.js","webpack://OvenPlayer/./src/js/view/components/controls/fullScreenButtonTemplate.js","webpack://OvenPlayer/./src/js/view/engine/OvenTemplate.js","webpack://OvenPlayer/./src/js/view/components/helpers/messageBox.js","webpack://OvenPlayer/./src/js/view/components/helpers/main.js","webpack://OvenPlayer/./src/js/view/components/helpers/bigButton.js","webpack://OvenPlayer/./src/js/view/components/helpers/thumbnail.js","webpack://OvenPlayer/./src/js/view/components/helpers/spinner.js","webpack://OvenPlayer/./src/js/view/components/helpers/captionViewer.js","webpack://OvenPlayer/./src/js/view/components/helpers/waterMark.js","webpack://OvenPlayer/./src/js/view/global/PanelManager.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/main.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/speedPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/sourcePanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/qualityPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/audioTrackPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/captionPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingPanel/timeDisplayPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/settingButton.js","webpack://OvenPlayer/./src/js/view/components/controls/main.js","webpack://OvenPlayer/./src/js/view/components/controls/playlistPanel.js","webpack://OvenPlayer/./src/js/view/components/controls/progressBar.js","webpack://OvenPlayer/./src/js/view/components/controls/fullScreenButton.js","webpack://OvenPlayer/./src/js/view/components/controls/timeDisplay.js","webpack://OvenPlayer/./src/js/view/components/controls/playButton.js","webpack://OvenPlayer/./src/js/view/components/controls/volumeButton.js","webpack://OvenPlayer/./src/stylesheet/ovenplayer.less?0fb6","webpack://OvenPlayer/./src/js/ovenplayer.js","webpack://OvenPlayer/./src/js/view/view.js","webpack://OvenPlayer/./src/js/view/components/helpers/contextPanel.js","webpack://OvenPlayer/./src/js/utils/polyfills/dom.js","webpack://OvenPlayer/./src/js/utils/resize-sensor.js","webpack://OvenPlayer/./src/js/utils/underscore.js","webpack://OvenPlayer/./node_modules/core-js/internals/a-callable.js","webpack://OvenPlayer/./node_modules/core-js/internals/a-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/a-possible-prototype.js","webpack://OvenPlayer/./node_modules/core-js/internals/add-to-unscopables.js","webpack://OvenPlayer/./node_modules/core-js/internals/advance-string-index.js","webpack://OvenPlayer/./node_modules/core-js/internals/an-instance.js","webpack://OvenPlayer/./node_modules/core-js/internals/an-object.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-buffer-native.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-buffer.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-copy-within.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-fill.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-for-each.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-from.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-includes.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-iteration.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-last-index-of.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-method-is-strict.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-reduce.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-slice-simple.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-slice.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-sort.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-species-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/array-species-create.js","webpack://OvenPlayer/./node_modules/core-js/internals/base64-map.js","webpack://OvenPlayer/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://OvenPlayer/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://OvenPlayer/./node_modules/core-js/internals/classof-raw.js","webpack://OvenPlayer/./node_modules/core-js/internals/classof.js","webpack://OvenPlayer/./node_modules/core-js/internals/clear-error-stack.js","webpack://OvenPlayer/./node_modules/core-js/internals/collection-strong.js","webpack://OvenPlayer/./node_modules/core-js/internals/collection-weak.js","webpack://OvenPlayer/./node_modules/core-js/internals/collection.js","webpack://OvenPlayer/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://OvenPlayer/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://OvenPlayer/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://OvenPlayer/./node_modules/core-js/internals/create-html.js","webpack://OvenPlayer/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://OvenPlayer/./node_modules/core-js/internals/create-property-descriptor.js","webpack://OvenPlayer/./node_modules/core-js/internals/create-property.js","webpack://OvenPlayer/./node_modules/core-js/internals/date-to-iso-string.js","webpack://OvenPlayer/./node_modules/core-js/internals/date-to-primitive.js","webpack://OvenPlayer/./node_modules/core-js/internals/define-iterator.js","webpack://OvenPlayer/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://OvenPlayer/./node_modules/core-js/internals/descriptors.js","webpack://OvenPlayer/./node_modules/core-js/internals/document-create-element.js","webpack://OvenPlayer/./node_modules/core-js/internals/dom-exception-constants.js","webpack://OvenPlayer/./node_modules/core-js/internals/dom-iterables.js","webpack://OvenPlayer/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-ff-version.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-browser.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-ios.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-node.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-user-agent.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-v8-version.js","webpack://OvenPlayer/./node_modules/core-js/internals/engine-webkit-version.js","webpack://OvenPlayer/./node_modules/core-js/internals/enum-bug-keys.js","webpack://OvenPlayer/./node_modules/core-js/internals/error-stack-installable.js","webpack://OvenPlayer/./node_modules/core-js/internals/error-to-string.js","webpack://OvenPlayer/./node_modules/core-js/internals/export.js","webpack://OvenPlayer/./node_modules/core-js/internals/fails.js","webpack://OvenPlayer/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://OvenPlayer/./node_modules/core-js/internals/flatten-into-array.js","webpack://OvenPlayer/./node_modules/core-js/internals/freezing.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-apply.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-bind-context.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-bind-native.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-bind.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-call.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-name.js","webpack://OvenPlayer/./node_modules/core-js/internals/function-uncurry-this.js","webpack://OvenPlayer/./node_modules/core-js/internals/get-built-in.js","webpack://OvenPlayer/./node_modules/core-js/internals/get-iterator-method.js","webpack://OvenPlayer/./node_modules/core-js/internals/get-iterator.js","webpack://OvenPlayer/./node_modules/core-js/internals/get-method.js","webpack://OvenPlayer/./node_modules/core-js/internals/get-substitution.js","webpack://OvenPlayer/./node_modules/core-js/internals/global.js","webpack://OvenPlayer/./node_modules/core-js/internals/has-own-property.js","webpack://OvenPlayer/./node_modules/core-js/internals/hidden-keys.js","webpack://OvenPlayer/./node_modules/core-js/internals/host-report-errors.js","webpack://OvenPlayer/./node_modules/core-js/internals/html.js","webpack://OvenPlayer/./node_modules/core-js/internals/ie8-dom-define.js","webpack://OvenPlayer/./node_modules/core-js/internals/ieee754.js","webpack://OvenPlayer/./node_modules/core-js/internals/indexed-object.js","webpack://OvenPlayer/./node_modules/core-js/internals/inherit-if-required.js","webpack://OvenPlayer/./node_modules/core-js/internals/inspect-source.js","webpack://OvenPlayer/./node_modules/core-js/internals/install-error-cause.js","webpack://OvenPlayer/./node_modules/core-js/internals/internal-metadata.js","webpack://OvenPlayer/./node_modules/core-js/internals/internal-state.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-array.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-callable.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-data-descriptor.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-forced.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-integral-number.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-object.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-pure.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-regexp.js","webpack://OvenPlayer/./node_modules/core-js/internals/is-symbol.js","webpack://OvenPlayer/./node_modules/core-js/internals/iterate.js","webpack://OvenPlayer/./node_modules/core-js/internals/iterator-close.js","webpack://OvenPlayer/./node_modules/core-js/internals/iterators-core.js","webpack://OvenPlayer/./node_modules/core-js/internals/iterators.js","webpack://OvenPlayer/./node_modules/core-js/internals/length-of-array-like.js","webpack://OvenPlayer/./node_modules/core-js/internals/math-expm1.js","webpack://OvenPlayer/./node_modules/core-js/internals/math-fround.js","webpack://OvenPlayer/./node_modules/core-js/internals/math-log10.js","webpack://OvenPlayer/./node_modules/core-js/internals/math-log1p.js","webpack://OvenPlayer/./node_modules/core-js/internals/math-sign.js","webpack://OvenPlayer/./node_modules/core-js/internals/microtask.js","webpack://OvenPlayer/./node_modules/core-js/internals/native-promise-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/native-symbol.js","webpack://OvenPlayer/./node_modules/core-js/internals/native-url.js","webpack://OvenPlayer/./node_modules/core-js/internals/native-weak-map.js","webpack://OvenPlayer/./node_modules/core-js/internals/new-promise-capability.js","webpack://OvenPlayer/./node_modules/core-js/internals/normalize-string-argument.js","webpack://OvenPlayer/./node_modules/core-js/internals/not-a-regexp.js","webpack://OvenPlayer/./node_modules/core-js/internals/number-is-finite.js","webpack://OvenPlayer/./node_modules/core-js/internals/number-parse-float.js","webpack://OvenPlayer/./node_modules/core-js/internals/number-parse-int.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-assign.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-create.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-define-properties.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-define-property.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-is-extensible.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-keys-internal.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-keys.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-prototype-accessors-forced.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-to-array.js","webpack://OvenPlayer/./node_modules/core-js/internals/object-to-string.js","webpack://OvenPlayer/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://OvenPlayer/./node_modules/core-js/internals/own-keys.js","webpack://OvenPlayer/./node_modules/core-js/internals/path.js","webpack://OvenPlayer/./node_modules/core-js/internals/perform.js","webpack://OvenPlayer/./node_modules/core-js/internals/promise-resolve.js","webpack://OvenPlayer/./node_modules/core-js/internals/queue.js","webpack://OvenPlayer/./node_modules/core-js/internals/redefine-all.js","webpack://OvenPlayer/./node_modules/core-js/internals/redefine.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-exec.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-flags.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://OvenPlayer/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://OvenPlayer/./node_modules/core-js/internals/require-object-coercible.js","webpack://OvenPlayer/./node_modules/core-js/internals/same-value.js","webpack://OvenPlayer/./node_modules/core-js/internals/set-global.js","webpack://OvenPlayer/./node_modules/core-js/internals/set-species.js","webpack://OvenPlayer/./node_modules/core-js/internals/set-to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/internals/shared-key.js","webpack://OvenPlayer/./node_modules/core-js/internals/shared-store.js","webpack://OvenPlayer/./node_modules/core-js/internals/shared.js","webpack://OvenPlayer/./node_modules/core-js/internals/species-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-html-forced.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-multibyte.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-pad.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-repeat.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-trim-forced.js","webpack://OvenPlayer/./node_modules/core-js/internals/string-trim.js","webpack://OvenPlayer/./node_modules/core-js/internals/task.js","webpack://OvenPlayer/./node_modules/core-js/internals/this-number-value.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-absolute-index.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-index.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-indexed-object.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-length.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-object.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-offset.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-positive-integer.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-primitive.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-property-key.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-string-tag-support.js","webpack://OvenPlayer/./node_modules/core-js/internals/to-string.js","webpack://OvenPlayer/./node_modules/core-js/internals/try-node-require.js","webpack://OvenPlayer/./node_modules/core-js/internals/try-to-string.js","webpack://OvenPlayer/./node_modules/core-js/internals/typed-array-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack://OvenPlayer/./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack://OvenPlayer/./node_modules/core-js/internals/typed-array-from.js","webpack://OvenPlayer/./node_modules/core-js/internals/typed-array-species-constructor.js","webpack://OvenPlayer/./node_modules/core-js/internals/uid.js","webpack://OvenPlayer/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://OvenPlayer/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://OvenPlayer/./node_modules/core-js/internals/validate-arguments-length.js","webpack://OvenPlayer/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://OvenPlayer/./node_modules/core-js/internals/well-known-symbol.js","webpack://OvenPlayer/./node_modules/core-js/internals/whitespaces.js","webpack://OvenPlayer/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.aggregate-error.cause.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.aggregate-error.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array-buffer.is-view.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array-buffer.slice.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.at.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.concat.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.copy-within.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.every.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.fill.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.filter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.find-index.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.find.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.flat-map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.flat.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.for-each.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.from.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.includes.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.index-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.is-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.join.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.last-index-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.reduce-right.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.reduce.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.reverse.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.slice.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.some.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.sort.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.species.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.splice.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.data-view.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.get-year.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.now.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.set-year.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.to-gmt-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.to-iso-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.to-json.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.to-primitive.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.date.to-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.error.cause.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.error.to-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.escape.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.function.bind.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.function.has-instance.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.function.name.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.global-this.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.json.stringify.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.json.to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.acosh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.asinh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.atanh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.cbrt.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.clz32.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.cosh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.expm1.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.fround.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.hypot.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.imul.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.log10.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.log1p.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.log2.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.sign.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.sinh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.tanh.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.math.trunc.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.constructor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.epsilon.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.is-finite.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.is-integer.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.is-nan.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.is-safe-integer.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.min-safe-integer.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.parse-float.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.parse-int.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.to-exponential.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.number.to-precision.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.assign.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.create.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.define-getter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.define-properties.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.define-property.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.define-setter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.entries.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.freeze.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.from-entries.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.get-own-property-names.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.has-own.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.is-extensible.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.is-frozen.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.is-sealed.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.is.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.keys.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.lookup-getter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.lookup-setter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.prevent-extensions.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.seal.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.to-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.object.values.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.parse-float.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.parse-int.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.promise.any.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.promise.finally.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.promise.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.apply.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.construct.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.define-property.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.delete-property.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.get.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.has.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.is-extensible.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.own-keys.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.prevent-extensions.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.set-prototype-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.set.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.dot-all.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.exec.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.flags.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.sticky.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.test.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.set.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.anchor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.at-alternative.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.big.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.blink.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.bold.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.code-point-at.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.ends-with.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.fixed.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.fontcolor.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.fontsize.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.from-code-point.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.includes.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.italics.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.link.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.match-all.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.match.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.pad-end.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.pad-start.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.raw.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.repeat.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.replace-all.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.replace.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.search.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.small.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.split.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.starts-with.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.strike.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.sub.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.substr.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.sup.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.trim-end.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.trim-start.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.string.trim.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.description.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.has-instance.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.match-all.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.match.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.replace.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.search.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.species.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.split.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.to-primitive.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.symbol.unscopables.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.at.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.every.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.fill.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.filter.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.find-index.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.find.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.float64-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.for-each.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.from.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.includes.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.index-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.int16-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.int32-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.int8-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.join.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.of.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.reduce.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.reverse.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.set.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.slice.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.some.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.sort.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.subarray.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.to-string.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.unescape.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.weak-map.js","webpack://OvenPlayer/./node_modules/core-js/modules/es.weak-set.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.atob.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.btoa.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.dom-exception.constructor.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.immediate.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.queue-microtask.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.structured-clone.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.timers.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.url-search-params.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.url.js","webpack://OvenPlayer/./node_modules/core-js/modules/web.url.to-json.js","webpack://OvenPlayer/./node_modules/core-js/stable/index.js","webpack://OvenPlayer/./src/stylesheet/ovenplayer.less","webpack://OvenPlayer/./node_modules/css-loader/dist/runtime/api.js","webpack://OvenPlayer/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://OvenPlayer/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://OvenPlayer/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://OvenPlayer/./node_modules/whatwg-fetch/fetch.js","webpack://OvenPlayer/webpack/bootstrap","webpack://OvenPlayer/webpack/runtime/compat get default export","webpack://OvenPlayer/webpack/runtime/define property getters","webpack://OvenPlayer/webpack/runtime/global","webpack://OvenPlayer/webpack/runtime/hasOwnProperty shorthand","webpack://OvenPlayer/webpack/runtime/jsonp chunk loading","webpack://OvenPlayer/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"OvenPlayer\"] = factory();\n\telse\n\t\troot[\"OvenPlayer\"] = factory();\n})(self, function() {\nreturn ","/**\r\n * Created by hoho on 2018. 6. 29..\r\n */\r\nexport const version = __VERSION__;\r\n","import _ from 'utils/underscore';\r\n\r\nexport function trim(string) {\r\n    return string ? string.replace(/^\\s+|\\s+$/g, '') : \"\";\r\n}\r\n\r\n/**\r\n * extractExtension\r\n *\r\n * @param      {string} path for url\r\n * @return     {string}  Extension\r\n */\r\nexport const extractExtension = function(path) {\r\n    if(!path || path.substr(0,4)=='rtmp') {\r\n        return \"\";\r\n    }\r\n    function getAzureFileFormat(path) {\r\n        let extension = \"\";\r\n        if ((/[(,]format=mpd-/i).test(path)) {\r\n            extension = 'mpd';\r\n        }else if ((/[(,]format=m3u8-/i).test(path)) {\r\n            extension = 'm3u8';\r\n        }\r\n        return extension;\r\n    }\r\n\r\n    let azuredFormat = getAzureFileFormat(path);\r\n    if(azuredFormat) {\r\n        return azuredFormat;\r\n    }\r\n    path = path.split('?')[0].split('#')[0];\r\n    if(path.lastIndexOf('.') > -1) {\r\n        return path.substr(path.lastIndexOf('.') + 1, path.length).toLowerCase();\r\n    }else{\r\n        return \"\";\r\n    }\r\n};\r\n\r\n\r\n/**\r\n * naturalHms\r\n *\r\n * @param      {number | string}  second  The second\r\n * @return     {string}  formatted String\r\n */\r\nexport function naturalHms(second) {\r\n    let secNum = parseInt(second, 10);\r\n    if(!second){\r\n        return \"00:00\";\r\n    }\r\n    let hours   = Math.floor(secNum / 3600);\r\n    let minutes = Math.floor((secNum - (hours * 3600)) / 60);\r\n    let seconds = secNum - (hours * 3600) - (minutes * 60);\r\n\r\n    //if (hours > 0) {minutes = \"0\"+minutes;}\r\n    if (minutes < 10) {minutes = \"0\"+minutes;}\r\n    if (seconds < 10) {seconds = \"0\"+seconds;}\r\n\r\n    if (hours > 0) {\r\n        return hours+':'+minutes+':'+seconds;\r\n    } else {\r\n        return minutes+':'+seconds;\r\n    }\r\n}\r\n\r\n\r\nexport function hmsToSecond(str, frameRate) {\r\n    if(!str) {\r\n        return 0;\r\n    }\r\n    if(_.isNumber(str) && !_.isNaN(str)){\r\n        return str;\r\n    }\r\n    str = str.replace(',', '.');\r\n    let arr = str.split(':');\r\n    let arrLength = arr.length;\r\n    let sec = 0;\r\n    if (str.slice(-1) === 's'){\r\n        sec = parseFloat(str);\r\n    }else if (str.slice(-1) === 'm'){\r\n        sec = parseFloat(str) * 60;\r\n    }else if (str.slice(-1) === 'h'){\r\n        sec = parseFloat(str) * 3600;\r\n    }else if (arrLength > 1) {\r\n        var secIndex = arrLength - 1;\r\n        if (arrLength === 4) {\r\n            if (frameRate) {\r\n                sec = parseFloat(arr[secIndex]) / frameRate;\r\n            }\r\n            secIndex -= 1;\r\n        }\r\n        sec += parseFloat(arr[secIndex]);\r\n        sec += parseFloat(arr[secIndex - 1]) * 60;\r\n        if (arrLength >= 3) {\r\n            sec += parseFloat(arr[secIndex - 2]) * 3600;\r\n        }\r\n    } else {\r\n        sec = parseFloat(str);\r\n    }\r\n    if (_.isNaN(sec)) {\r\n        return 0;\r\n    }\r\n    return sec;\r\n}","/**\r\n * Created by hoho on 2018. 5. 29..\r\n */\r\nimport { hmsToSecond, trim } from \"utils/strings\"\r\n\r\nfunction _entry(data) {\r\n    var entry = {};\r\n    var array = data.split('\\r\\n');\r\n    if (array.length === 1) {\r\n        array = data.split('\\n');\r\n    }\r\n    var idx = 1;\r\n    if (array[0].indexOf(' --> ') > 0) {\r\n        idx = 0;\r\n    }\r\n    if (array.length > idx + 1 && array[idx + 1]) {\r\n        // This line contains the start and end.\r\n        var line = array[idx];\r\n        var index = line.indexOf(' --> ');\r\n        if (index > 0) {\r\n            entry.start = hmsToSecond(line.substr(0, index));\r\n            entry.end = hmsToSecond(line.substr(index + 5));\r\n            entry.text = array.slice(idx + 1).join('\\r\\n');\r\n        }\r\n    }\r\n    return entry;\r\n\r\n}\r\n\r\nconst SrtParser = function(data) {\r\n    var captions = [];\r\n\r\n    data = trim(data);\r\n\r\n    var list = data.split('\\r\\n\\r\\n');\r\n    if (list.length === 1) {\r\n        list = data.split('\\n\\n');\r\n    }\r\n\r\n\r\n\r\n    for (var i = 0; i < list.length; i++) {\r\n        if (list[i] === 'WEBVTT') {\r\n            continue;\r\n        }\r\n        var entry = _entry(list[i]);\r\n        if (entry.text) {\r\n            captions.push(entry);\r\n        }\r\n    }\r\n\r\n    return captions;\r\n}\r\n\r\n\r\n\r\nexport default SrtParser;","/**\r\n * Copyright 2013 vtt.js Contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nlet VTTCue = window.VTTCue;\r\n\r\nvar autoKeyword = \"auto\";\r\nvar directionSetting = {\r\n    \"\": true,\r\n    \"lr\": true,\r\n    \"rl\": true\r\n};\r\nvar alignSetting = {\r\n    \"start\": true,\r\n    \"middle\": true,\r\n    \"end\": true,\r\n    \"left\": true,\r\n    \"right\": true\r\n};\r\n\r\nfunction findDirectionSetting(value) {\r\n    if (typeof value !== \"string\") {\r\n        return false;\r\n    }\r\n    var dir = directionSetting[value.toLowerCase()];\r\n    return dir ? value.toLowerCase() : false;\r\n}\r\n\r\nfunction findAlignSetting(value) {\r\n    if (typeof value !== \"string\") {\r\n        return false;\r\n    }\r\n    var align = alignSetting[value.toLowerCase()];\r\n    return align ? value.toLowerCase() : false;\r\n}\r\n\r\nfunction extend(obj) {\r\n    var i = 1;\r\n    for (; i < arguments.length; i++) {\r\n        var cobj = arguments[i];\r\n        for (var p in cobj) {\r\n            obj[p] = cobj[p];\r\n        }\r\n    }\r\n\r\n    return obj;\r\n}\r\nif(!VTTCue){\r\n    VTTCue = function (startTime, endTime, text) {\r\n        var cue = this;\r\n        var isIE8 = (/MSIE\\s8\\.0/).test(navigator.userAgent);\r\n        var baseObj = {};\r\n\r\n        if (isIE8) {\r\n            cue = document.createElement('custom');\r\n        } else {\r\n            baseObj.enumerable = true;\r\n        }\r\n\r\n        /**\r\n         * Shim implementation specific properties. These properties are not in\r\n         * the spec.\r\n         */\r\n\r\n            // Lets us know when the VTTCue's data has changed in such a way that we need\r\n            // to recompute its display state. This lets us compute its display state\r\n            // lazily.\r\n        cue.hasBeenReset = false;\r\n\r\n        /**\r\n         * VTTCue and TextTrackCue properties\r\n         * http://dev.w3.org/html5/webvtt/#vttcue-interface\r\n         */\r\n\r\n        var _id = \"\";\r\n        var _pauseOnExit = false;\r\n        var _startTime = startTime;\r\n        var _endTime = endTime;\r\n        var _text = text;\r\n        var _region = null;\r\n        var _vertical = \"\";\r\n        var _snapToLines = true;\r\n        var _line = \"auto\";\r\n        var _lineAlign = \"start\";\r\n        var _position = 50;\r\n        var _positionAlign = \"middle\";\r\n        var _size = 50;\r\n        var _align = \"middle\";\r\n\r\n        Object.defineProperty(cue,\r\n            \"id\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _id;\r\n                },\r\n                set: function(value) {\r\n                    _id = \"\" + value;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"pauseOnExit\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _pauseOnExit;\r\n                },\r\n                set: function(value) {\r\n                    _pauseOnExit = !!value;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"startTime\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _startTime;\r\n                },\r\n                set: function(value) {\r\n                    if (typeof value !== \"number\") {\r\n                        throw new TypeError(\"Start time must be set to a number.\");\r\n                    }\r\n                    _startTime = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"endTime\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _endTime;\r\n                },\r\n                set: function(value) {\r\n                    if (typeof value !== \"number\") {\r\n                        throw new TypeError(\"End time must be set to a number.\");\r\n                    }\r\n                    _endTime = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"text\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _text;\r\n                },\r\n                set: function(value) {\r\n                    _text = \"\" + value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"region\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _region;\r\n                },\r\n                set: function(value) {\r\n                    _region = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"vertical\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _vertical;\r\n                },\r\n                set: function(value) {\r\n                    var setting = findDirectionSetting(value);\r\n                    // Have to check for false because the setting an be an empty string.\r\n                    if (setting === false) {\r\n                        throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n                    }\r\n                    _vertical = setting;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"snapToLines\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _snapToLines;\r\n                },\r\n                set: function(value) {\r\n                    _snapToLines = !!value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"line\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _line;\r\n                },\r\n                set: function(value) {\r\n                    if (typeof value !== \"number\" && value !== autoKeyword) {\r\n                        throw new SyntaxError(\"An invalid number or illegal string was specified.\");\r\n                    }\r\n                    _line = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"lineAlign\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _lineAlign;\r\n                },\r\n                set: function(value) {\r\n                    var setting = findAlignSetting(value);\r\n                    if (!setting) {\r\n                        throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n                    }\r\n                    _lineAlign = setting;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"position\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _position;\r\n                },\r\n                set: function(value) {\r\n                    if (value < 0 || value > 100) {\r\n                        throw new Error(\"Position must be between 0 and 100.\");\r\n                    }\r\n                    _position = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"positionAlign\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _positionAlign;\r\n                },\r\n                set: function(value) {\r\n                    var setting = findAlignSetting(value);\r\n                    if (!setting) {\r\n                        throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n                    }\r\n                    _positionAlign = setting;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"size\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _size;\r\n                },\r\n                set: function(value) {\r\n                    if (value < 0 || value > 100) {\r\n                        throw new Error(\"Size must be between 0 and 100.\");\r\n                    }\r\n                    _size = value;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        Object.defineProperty(cue,\r\n            \"align\", extend({}, baseObj, {\r\n                get: function() {\r\n                    return _align;\r\n                },\r\n                set: function(value) {\r\n                    var setting = findAlignSetting(value);\r\n                    if (!setting) {\r\n                        throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n                    }\r\n                    _align = setting;\r\n                    this.hasBeenReset = true;\r\n                }\r\n            }));\r\n\r\n        /**\r\n         * Other <track> spec defined properties\r\n         */\r\n\r\n            // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\r\n        cue.displayState = undefined;\r\n\r\n        if (isIE8) {\r\n            return cue;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * VTTCue methods\r\n     */\r\n\r\n    VTTCue.prototype.getCueAsHTML = function() {\r\n        // Assume WebVTT.convertCueToDOMTree is on the global.\r\n        return WebVTT.convertCueToDOMTree(window, this.text);\r\n    };\r\n\r\n};\r\n\r\nexport default VTTCue;","/**\r\n * Copyright 2013 vtt.js Contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nlet VTTRegion = \"\";\r\n\r\nvar scrollSetting = {\r\n    \"\": true,\r\n    \"up\": true\r\n};\r\n\r\nfunction findScrollSetting(value) {\r\n    if (typeof value !== \"string\") {\r\n        return false;\r\n    }\r\n    var scroll = scrollSetting[value.toLowerCase()];\r\n    return scroll ? value.toLowerCase() : false;\r\n}\r\n\r\nfunction isValidPercentValue(value) {\r\n    return typeof value === \"number\" && (value >= 0 && value <= 100);\r\n}\r\n\r\n// VTTRegion shim http://dev.w3.org/html5/webvtt/#vttregion-interface\r\nVTTRegion = function() {\r\n    var _width = 100;\r\n    var _lines = 3;\r\n    var _regionAnchorX = 0;\r\n    var _regionAnchorY = 100;\r\n    var _viewportAnchorX = 0;\r\n    var _viewportAnchorY = 100;\r\n    var _scroll = \"\";\r\n\r\n    Object.defineProperties(this, {\r\n        \"width\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _width;\r\n            },\r\n            set: function(value) {\r\n                if (!isValidPercentValue(value)) {\r\n                    throw new Error(\"Width must be between 0 and 100.\");\r\n                }\r\n                _width = value;\r\n            }\r\n        },\r\n        \"lines\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _lines;\r\n            },\r\n            set: function(value) {\r\n                if (typeof value !== \"number\") {\r\n                    throw new TypeError(\"Lines must be set to a number.\");\r\n                }\r\n                _lines = value;\r\n            }\r\n        },\r\n        \"regionAnchorY\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _regionAnchorY;\r\n            },\r\n            set: function(value) {\r\n                if (!isValidPercentValue(value)) {\r\n                    throw new Error(\"RegionAnchorX must be between 0 and 100.\");\r\n                }\r\n                _regionAnchorY = value;\r\n            }\r\n        },\r\n        \"regionAnchorX\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _regionAnchorX;\r\n            },\r\n            set: function(value) {\r\n                if(!isValidPercentValue(value)) {\r\n                    throw new Error(\"RegionAnchorY must be between 0 and 100.\");\r\n                }\r\n                _regionAnchorX = value;\r\n            }\r\n        },\r\n        \"viewportAnchorY\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _viewportAnchorY;\r\n            },\r\n            set: function(value) {\r\n                if (!isValidPercentValue(value)) {\r\n                    throw new Error(\"ViewportAnchorY must be between 0 and 100.\");\r\n                }\r\n                _viewportAnchorY = value;\r\n            }\r\n        },\r\n        \"viewportAnchorX\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _viewportAnchorX;\r\n            },\r\n            set: function(value) {\r\n                if (!isValidPercentValue(value)) {\r\n                    throw new Error(\"ViewportAnchorX must be between 0 and 100.\");\r\n                }\r\n                _viewportAnchorX = value;\r\n            }\r\n        },\r\n        \"scroll\": {\r\n            enumerable: true,\r\n            get: function() {\r\n                return _scroll;\r\n            },\r\n            set: function(value) {\r\n                var setting = findScrollSetting(value);\r\n                // Have to check for false as an empty string is a legal value.\r\n                if (setting === false) {\r\n                    throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n                }\r\n                _scroll = setting;\r\n            }\r\n        }\r\n    });\r\n}\r\n\r\nexport default VTTRegion;","/* vtt.js - v0.12.1 (https://github.com/mozilla/vtt.js) built on 03-12-2015 */\r\nimport VTTCue from 'utils/captions/vttCue';\r\nimport VTTRegion from 'utils/captions/vttRegion';\r\n\r\n/**\r\n * Copyright 2013 vtt.js Contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\r\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\r\n\r\nlet WebVTT = function(){};\r\nfunction makeColorSet(color, opacity) {\r\n    if(opacity === undefined) {\r\n        opacity = 1;\r\n    }\r\n    return \"rgba(\" + [parseInt(color.substring(0, 2), 16),\r\n            parseInt(color.substring(2, 4), 16),\r\n            parseInt(color.substring(4, 6), 16),\r\n            opacity].join(\",\") + \")\";\r\n}\r\n\r\nvar WebVTTPrefs = ['webvtt.font.color', 'webvtt.font.opacity', 'webvtt.font.scale',\r\n    'webvtt.bg.color', 'webvtt.bg.opacity',\r\n    'webvtt.edge.color', 'webvtt.edge.type'];\r\n\r\nvar fontScale = 1;\r\n\r\nfunction observe(subject, topic, data) {\r\n    switch (data) {\r\n        case \"webvtt.font.color\":\r\n        case \"webvtt.font.opacity\":\r\n            var fontColor = Services.prefs.getCharPref(\"webvtt.font.color\");\r\n            var fontOpacity = Services.prefs.getIntPref(\"webvtt.font.opacity\") / 100;\r\n            WebVTTSet.fontSet = makeColorSet(fontColor, fontOpacity);\r\n            break;\r\n        case \"webvtt.font.scale\":\r\n            fontScale = Services.prefs.getIntPref(\"webvtt.font.scale\") / 100;\r\n            break;\r\n        case \"webvtt.bg.color\":\r\n        case \"webvtt.bg.opacity\":\r\n            var backgroundColor = Services.prefs.getCharPref(\"webvtt.bg.color\");\r\n            var backgroundOpacity = Services.prefs.getIntPref(\"webvtt.bg.opacity\") / 100;\r\n            WebVTTSet.backgroundSet = makeColorSet(backgroundColor, backgroundOpacity);\r\n            break;\r\n        case \"webvtt.edge.color\":\r\n        case \"webvtt.edge.type\":\r\n            var edgeTypeList = [\"\", \"0px 0px \", \"4px 4px 4px \", \"-2px -2px \", \"2px 2px \"];\r\n            var edgeType = Services.prefs.getIntPref(\"webvtt.edge.type\");\r\n            var edgeColor = Services.prefs.getCharPref(\"webvtt.edge.color\");\r\n            WebVTTSet.edgeSet = edgeTypeList[edgeType] + makeColorSet(edgeColor);\r\n            break;\r\n    }\r\n}\r\n\r\nif(typeof Services !== \"undefined\") {\r\n    var WebVTTSet = {};\r\n    WebVTTPrefs.forEach(function (pref) {\r\n        observe(undefined, undefined, pref);\r\n        Services.prefs.addObserver(pref, observe, false);\r\n    });\r\n}\r\n\r\nvar _objCreate = Object.create || (function() {\r\n        function F() {}\r\n        return function(o) {\r\n            if (arguments.length !== 1) {\r\n                throw new Error('Object.create shim only accepts one parameter.');\r\n            }\r\n            F.prototype = o;\r\n            return new F();\r\n        };\r\n    })();\r\n\r\n// Creates a new ParserError object from an errorData object. The errorData\r\n// object should have default code and message properties. The default message\r\n// property can be overriden by passing in a message parameter.\r\n// See ParsingError.Errors below for acceptable errors.\r\nfunction ParsingError(errorData, message) {\r\n    this.name = \"ParsingError\";\r\n    this.code = errorData.code;\r\n    this.message = message || errorData.message;\r\n}\r\nParsingError.prototype = _objCreate(Error.prototype);\r\nParsingError.prototype.constructor = ParsingError;\r\n\r\n// ParsingError metadata for acceptable ParsingErrors.\r\nParsingError.Errors = {\r\n    BadSignature: {\r\n        code: 0,\r\n        message: \"Malformed WebVTT signature.\"\r\n    },\r\n    BadTimeStamp: {\r\n        code: 1,\r\n        message: \"Malformed time stamp.\"\r\n    }\r\n};\r\n\r\n// Try to parse input as a time stamp.\r\nfunction parseTimeStamp(input) {\r\n\r\n    function computeSeconds(h, m, s, f) {\r\n        return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;\r\n    }\r\n\r\n    var m = input.match(/^(\\d+):(\\d{2})(:\\d{2})?\\.(\\d{3})/);\r\n    if (!m) {\r\n        return null;\r\n    }\r\n\r\n    if (m[3]) {\r\n        // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]\r\n        return computeSeconds(m[1], m[2], m[3].replace(\":\", \"\"), m[4]);\r\n    } else if (m[1] > 59) {\r\n        // Timestamp takes the form of [hours]:[minutes].[milliseconds]\r\n        // First position is hours as it's over 59.\r\n        return computeSeconds(m[1], m[2], 0,  m[4]);\r\n    } else {\r\n        // Timestamp takes the form of [minutes]:[seconds].[milliseconds]\r\n        return computeSeconds(0, m[1], m[2], m[4]);\r\n    }\r\n}\r\n\r\n// A settings object holds key/value pairs and will ignore anything but the first\r\n// assignment to a specific key.\r\nfunction Settings() {\r\n    this.values = _objCreate(null);\r\n}\r\n\r\nSettings.prototype = {\r\n    // Only accept the first assignment to any key.\r\n    set: function(k, v) {\r\n        if (!this.get(k) && v !== \"\") {\r\n            this.values[k] = v;\r\n        }\r\n    },\r\n    // Return the value for a key, or a default value.\r\n    // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\r\n    // a number of possible default values as properties where 'defaultKey' is\r\n    // the key of the property that will be chosen; otherwise it's assumed to be\r\n    // a single value.\r\n    get: function(k, dflt, defaultKey) {\r\n        if (defaultKey) {\r\n            return this.has(k) ? this.values[k] : dflt[defaultKey];\r\n        }\r\n        return this.has(k) ? this.values[k] : dflt;\r\n    },\r\n    // Check whether we have a value for a key.\r\n    has: function(k) {\r\n        return k in this.values;\r\n    },\r\n    // Accept a setting if its one of the given alternatives.\r\n    alt: function(k, v, a) {\r\n        for (var n = 0; n < a.length; ++n) {\r\n            if (v === a[n]) {\r\n                this.set(k, v);\r\n                break;\r\n            }\r\n        }\r\n    },\r\n    // Accept a setting if its a valid (signed) integer.\r\n    integer: function(k, v) {\r\n        if (/^-?\\d+$/.test(v)) { // integer\r\n            this.set(k, parseInt(v, 10));\r\n        }\r\n    },\r\n    // Accept a setting if its a valid percentage.\r\n    percent: function(k, v) {\r\n        var m;\r\n        if ((m = v.match(/^([\\d]{1,3})(\\.[\\d]*)?%$/))) {\r\n            v = parseFloat(v);\r\n            if (v >= 0 && v <= 100) {\r\n                this.set(k, v);\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n};\r\n\r\n// Helper function to parse input into groups separated by 'groupDelim', and\r\n// interprete each group as a key/value pair separated by 'keyValueDelim'.\r\nfunction parseOptions(input, callback, keyValueDelim, groupDelim) {\r\n    var groups = groupDelim ? input.split(groupDelim) : [input];\r\n    for (var i in groups) {\r\n        if (typeof groups[i] !== \"string\") {\r\n            continue;\r\n        }\r\n        var kv = groups[i].split(keyValueDelim);\r\n        if (kv.length !== 2) {\r\n            continue;\r\n        }\r\n        var k = kv[0];\r\n        var v = kv[1];\r\n        callback(k, v);\r\n    }\r\n}\r\n\r\nfunction parseCue(input, cue, regionList) {\r\n    // Remember the original input if we need to throw an error.\r\n    var oInput = input;\r\n    // 4.1 WebVTT timestamp\r\n    function consumeTimeStamp() {\r\n        var ts = parseTimeStamp(input);\r\n        if (ts === null) {\r\n            throw new ParsingError(ParsingError.Errors.BadTimeStamp,\r\n                \"Malformed timestamp: \" + oInput);\r\n        }\r\n        // Remove time stamp from input.\r\n        input = input.replace(/^[^\\sa-zA-Z-]+/, \"\");\r\n        return ts;\r\n    }\r\n\r\n    // 4.4.2 WebVTT cue settings\r\n    function consumeCueSettings(input, cue) {\r\n        var settings = new Settings();\r\n\r\n        parseOptions(input, function (k, v) {\r\n            switch (k) {\r\n                case \"region\":\r\n                    // Find the last region we parsed with the same region id.\r\n                    for (var i = regionList.length - 1; i >= 0; i--) {\r\n                        if (regionList[i].id === v) {\r\n                            settings.set(k, regionList[i].region);\r\n                            break;\r\n                        }\r\n                    }\r\n                    break;\r\n                case \"vertical\":\r\n                    settings.alt(k, v, [\"rl\", \"lr\"]);\r\n                    break;\r\n                case \"line\":\r\n                    var vals = v.split(\",\"),\r\n                        vals0 = vals[0];\r\n                    settings.integer(k, vals0);\r\n                    settings.percent(k, vals0) ? settings.set(\"snapToLines\", false) : null;\r\n                    settings.alt(k, vals0, [\"auto\"]);\r\n                    if (vals.length === 2) {\r\n                        settings.alt(\"lineAlign\", vals[1], [\"start\", \"middle\", \"end\"]);\r\n                    }\r\n                    break;\r\n                case \"position\":\r\n                    vals = v.split(\",\");\r\n                    settings.percent(k, vals[0]);\r\n                    if (vals.length === 2) {\r\n                        settings.alt(\"positionAlign\", vals[1], [\"start\", \"middle\", \"end\"]);\r\n                    }\r\n                    break;\r\n                case \"size\":\r\n                    settings.percent(k, v);\r\n                    break;\r\n                case \"align\":\r\n                    settings.alt(k, v, [\"start\", \"middle\", \"end\", \"left\", \"right\"]);\r\n                    break;\r\n            }\r\n        }, /:/, /\\s/);\r\n\r\n        //hslee remove these fields.\r\n        //Because safari dies here always. And Player doen't use style fields.\r\n        // Apply default values for any missing fields.\r\n        /*cue.region = settings.get(\"region\", null);\r\n        cue.vertical = settings.get(\"vertical\", \"\");\r\n        cue.line = settings.get(\"line\", \"auto\");\r\n        cue.lineAlign = settings.get(\"lineAlign\", \"start\");\r\n        cue.snapToLines = settings.get(\"snapToLines\", true);\r\n        cue.size = settings.get(\"size\", 100);\r\n        //cue.align = settings.get(\"align\", \"middle\");\r\n        cue.position = settings.get(\"position\", \"auto\");\r\n        cue.positionAlign = settings.get(\"positionAlign\", {\r\n            start: \"start\",\r\n            left: \"start\",\r\n            middle: \"middle\",\r\n            end: \"end\",\r\n            right: \"end\"\r\n        }, cue.align\r\n        );*/\r\n    }\r\n\r\n    function skipWhitespace() {\r\n        input = input.replace(/^\\s+/, \"\");\r\n    }\r\n\r\n    // 4.1 WebVTT cue timings.\r\n    skipWhitespace();\r\n    cue.startTime = consumeTimeStamp();   // (1) collect cue start time\r\n    skipWhitespace();\r\n    if (input.substr(0, 3) !== \"-->\") {     // (3) next characters must match \"-->\"\r\n        throw new ParsingError(ParsingError.Errors.BadTimeStamp,\r\n            \"Malformed time stamp (time stamps must be separated by '-->'): \" +\r\n            oInput);\r\n    }\r\n    input = input.substr(3);\r\n    skipWhitespace();\r\n    cue.endTime = consumeTimeStamp();     // (5) collect cue end time\r\n\r\n    // 4.1 WebVTT cue settings list.\r\n    skipWhitespace();\r\n    consumeCueSettings(input, cue);\r\n}\r\n\r\nvar ESCAPE = {\r\n    \"&amp;\": \"&\",\r\n    \"&lt;\": \"<\",\r\n    \"&gt;\": \">\",\r\n    \"&lrm;\": \"\\u200e\",\r\n    \"&rlm;\": \"\\u200f\",\r\n    \"&nbsp;\": \"\\u00a0\"\r\n};\r\n\r\nvar TAG_NAME = {\r\n    c: \"span\",\r\n    i: \"i\",\r\n    b: \"b\",\r\n    u: \"u\",\r\n    ruby: \"ruby\",\r\n    rt: \"rt\",\r\n    v: \"span\",\r\n    lang: \"span\"\r\n};\r\n\r\nvar TAG_ANNOTATION = {\r\n    v: \"title\",\r\n    lang: \"lang\"\r\n};\r\n\r\nvar NEEDS_PARENT = {\r\n    rt: \"ruby\"\r\n};\r\n\r\n// Parse content into a document fragment.\r\nfunction parseContent(window, input) {\r\n    function nextToken() {\r\n        // Check for end-of-string.\r\n        if (!input) {\r\n            return null;\r\n        }\r\n\r\n        // Consume 'n' characters from the input.\r\n        function consume(result) {\r\n            input = input.substr(result.length);\r\n            return result;\r\n        }\r\n\r\n        var m = input.match(/^([^<]*)(<[^>]+>?)?/);\r\n        // If there is some text before the next tag, return it, otherwise return\r\n        // the tag.\r\n        return consume(m[1] ? m[1] : m[2]);\r\n    }\r\n\r\n    // Unescape a string 's'.\r\n    function unescape1(e) {\r\n        return ESCAPE[e];\r\n    }\r\n    function unescape(s) {\r\n        while ((m = s.match(/&(amp|lt|gt|lrm|rlm|nbsp);/))) {\r\n            s = s.replace(m[0], unescape1);\r\n        }\r\n        return s;\r\n    }\r\n\r\n    function shouldAdd(current, element) {\r\n        return !NEEDS_PARENT[element.localName] ||\r\n            NEEDS_PARENT[element.localName] === current.localName;\r\n    }\r\n\r\n    // Create an element for this tag.\r\n    function createElement(type, annotation) {\r\n        var tagName = TAG_NAME[type];\r\n        if (!tagName) {\r\n            return null;\r\n        }\r\n        var element = window.document.createElement(tagName);\r\n        element.localName = tagName;\r\n        var name = TAG_ANNOTATION[type];\r\n        if (name && annotation) {\r\n            element[name] = annotation.trim();\r\n        }\r\n        return element;\r\n    }\r\n\r\n    var rootDiv = window.document.createElement(\"div\"),\r\n        current = rootDiv,\r\n        t,\r\n        tagStack = [];\r\n\r\n    while ((t = nextToken()) !== null) {\r\n        if (t[0] === '<') {\r\n            if (t[1] === \"/\") {\r\n                // If the closing tag matches, move back up to the parent node.\r\n                if (tagStack.length &&\r\n                    tagStack[tagStack.length - 1] === t.substr(2).replace(\">\", \"\")) {\r\n                    tagStack.pop();\r\n                    current = current.parentNode;\r\n                }\r\n                // Otherwise just ignore the end tag.\r\n                continue;\r\n            }\r\n            var ts = parseTimeStamp(t.substr(1, t.length - 2));\r\n            var node;\r\n            if (ts) {\r\n                // Timestamps are lead nodes as well.\r\n                node = window.document.createProcessingInstruction(\"timestamp\", ts);\r\n                current.appendChild(node);\r\n                continue;\r\n            }\r\n            var m = t.match(/^<([^.\\s/0-9>]+)(\\.[^\\s\\\\>]+)?([^>\\\\]+)?(\\\\?)>?$/);\r\n            // If we can't parse the tag, skip to the next tag.\r\n            if (!m) {\r\n                continue;\r\n            }\r\n            // Try to construct an element, and ignore the tag if we couldn't.\r\n            node = createElement(m[1], m[3]);\r\n            if (!node) {\r\n                continue;\r\n            }\r\n            // Determine if the tag should be added based on the context of where it\r\n            // is placed in the cuetext.\r\n            if (!shouldAdd(current, node)) {\r\n                continue;\r\n            }\r\n            // Set the class list (as a list of classes, separated by space).\r\n            if (m[2]) {\r\n                node.className = m[2].substr(1).replace('.', ' ');\r\n            }\r\n            // Append the node to the current node, and enter the scope of the new\r\n            // node.\r\n            tagStack.push(m[1]);\r\n            current.appendChild(node);\r\n            current = node;\r\n            continue;\r\n        }\r\n\r\n        // Text nodes are leaf nodes.\r\n        current.appendChild(window.document.createTextNode(unescape(t)));\r\n    }\r\n\r\n    return rootDiv;\r\n}\r\n\r\n// This is a list of all the Unicode characters that have a strong\r\n// right-to-left category. What this means is that these characters are\r\n// written right-to-left for sure. It was generated by pulling all the strong\r\n// right-to-left characters out of the Unicode data table. That table can\r\n// found at: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\r\nvar strongRTLChars = [0x05BE, 0x05C0, 0x05C3, 0x05C6, 0x05D0, 0x05D1,\r\n    0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA,\r\n    0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, 0x05E0, 0x05E1, 0x05E2, 0x05E3,\r\n    0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x05F0, 0x05F1,\r\n    0x05F2, 0x05F3, 0x05F4, 0x0608, 0x060B, 0x060D, 0x061B, 0x061E, 0x061F,\r\n    0x0620, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628,\r\n    0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631,\r\n    0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063A,\r\n    0x063B, 0x063C, 0x063D, 0x063E, 0x063F, 0x0640, 0x0641, 0x0642, 0x0643,\r\n    0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, 0x066D, 0x066E,\r\n    0x066F, 0x0671, 0x0672, 0x0673, 0x0674, 0x0675, 0x0676, 0x0677, 0x0678,\r\n    0x0679, 0x067A, 0x067B, 0x067C, 0x067D, 0x067E, 0x067F, 0x0680, 0x0681,\r\n    0x0682, 0x0683, 0x0684, 0x0685, 0x0686, 0x0687, 0x0688, 0x0689, 0x068A,\r\n    0x068B, 0x068C, 0x068D, 0x068E, 0x068F, 0x0690, 0x0691, 0x0692, 0x0693,\r\n    0x0694, 0x0695, 0x0696, 0x0697, 0x0698, 0x0699, 0x069A, 0x069B, 0x069C,\r\n    0x069D, 0x069E, 0x069F, 0x06A0, 0x06A1, 0x06A2, 0x06A3, 0x06A4, 0x06A5,\r\n    0x06A6, 0x06A7, 0x06A8, 0x06A9, 0x06AA, 0x06AB, 0x06AC, 0x06AD, 0x06AE,\r\n    0x06AF, 0x06B0, 0x06B1, 0x06B2, 0x06B3, 0x06B4, 0x06B5, 0x06B6, 0x06B7,\r\n    0x06B8, 0x06B9, 0x06BA, 0x06BB, 0x06BC, 0x06BD, 0x06BE, 0x06BF, 0x06C0,\r\n    0x06C1, 0x06C2, 0x06C3, 0x06C4, 0x06C5, 0x06C6, 0x06C7, 0x06C8, 0x06C9,\r\n    0x06CA, 0x06CB, 0x06CC, 0x06CD, 0x06CE, 0x06CF, 0x06D0, 0x06D1, 0x06D2,\r\n    0x06D3, 0x06D4, 0x06D5, 0x06E5, 0x06E6, 0x06EE, 0x06EF, 0x06FA, 0x06FB,\r\n    0x06FC, 0x06FD, 0x06FE, 0x06FF, 0x0700, 0x0701, 0x0702, 0x0703, 0x0704,\r\n    0x0705, 0x0706, 0x0707, 0x0708, 0x0709, 0x070A, 0x070B, 0x070C, 0x070D,\r\n    0x070F, 0x0710, 0x0712, 0x0713, 0x0714, 0x0715, 0x0716, 0x0717, 0x0718,\r\n    0x0719, 0x071A, 0x071B, 0x071C, 0x071D, 0x071E, 0x071F, 0x0720, 0x0721,\r\n    0x0722, 0x0723, 0x0724, 0x0725, 0x0726, 0x0727, 0x0728, 0x0729, 0x072A,\r\n    0x072B, 0x072C, 0x072D, 0x072E, 0x072F, 0x074D, 0x074E, 0x074F, 0x0750,\r\n    0x0751, 0x0752, 0x0753, 0x0754, 0x0755, 0x0756, 0x0757, 0x0758, 0x0759,\r\n    0x075A, 0x075B, 0x075C, 0x075D, 0x075E, 0x075F, 0x0760, 0x0761, 0x0762,\r\n    0x0763, 0x0764, 0x0765, 0x0766, 0x0767, 0x0768, 0x0769, 0x076A, 0x076B,\r\n    0x076C, 0x076D, 0x076E, 0x076F, 0x0770, 0x0771, 0x0772, 0x0773, 0x0774,\r\n    0x0775, 0x0776, 0x0777, 0x0778, 0x0779, 0x077A, 0x077B, 0x077C, 0x077D,\r\n    0x077E, 0x077F, 0x0780, 0x0781, 0x0782, 0x0783, 0x0784, 0x0785, 0x0786,\r\n    0x0787, 0x0788, 0x0789, 0x078A, 0x078B, 0x078C, 0x078D, 0x078E, 0x078F,\r\n    0x0790, 0x0791, 0x0792, 0x0793, 0x0794, 0x0795, 0x0796, 0x0797, 0x0798,\r\n    0x0799, 0x079A, 0x079B, 0x079C, 0x079D, 0x079E, 0x079F, 0x07A0, 0x07A1,\r\n    0x07A2, 0x07A3, 0x07A4, 0x07A5, 0x07B1, 0x07C0, 0x07C1, 0x07C2, 0x07C3,\r\n    0x07C4, 0x07C5, 0x07C6, 0x07C7, 0x07C8, 0x07C9, 0x07CA, 0x07CB, 0x07CC,\r\n    0x07CD, 0x07CE, 0x07CF, 0x07D0, 0x07D1, 0x07D2, 0x07D3, 0x07D4, 0x07D5,\r\n    0x07D6, 0x07D7, 0x07D8, 0x07D9, 0x07DA, 0x07DB, 0x07DC, 0x07DD, 0x07DE,\r\n    0x07DF, 0x07E0, 0x07E1, 0x07E2, 0x07E3, 0x07E4, 0x07E5, 0x07E6, 0x07E7,\r\n    0x07E8, 0x07E9, 0x07EA, 0x07F4, 0x07F5, 0x07FA, 0x0800, 0x0801, 0x0802,\r\n    0x0803, 0x0804, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 0x080A, 0x080B,\r\n    0x080C, 0x080D, 0x080E, 0x080F, 0x0810, 0x0811, 0x0812, 0x0813, 0x0814,\r\n    0x0815, 0x081A, 0x0824, 0x0828, 0x0830, 0x0831, 0x0832, 0x0833, 0x0834,\r\n    0x0835, 0x0836, 0x0837, 0x0838, 0x0839, 0x083A, 0x083B, 0x083C, 0x083D,\r\n    0x083E, 0x0840, 0x0841, 0x0842, 0x0843, 0x0844, 0x0845, 0x0846, 0x0847,\r\n    0x0848, 0x0849, 0x084A, 0x084B, 0x084C, 0x084D, 0x084E, 0x084F, 0x0850,\r\n    0x0851, 0x0852, 0x0853, 0x0854, 0x0855, 0x0856, 0x0857, 0x0858, 0x085E,\r\n    0x08A0, 0x08A2, 0x08A3, 0x08A4, 0x08A5, 0x08A6, 0x08A7, 0x08A8, 0x08A9,\r\n    0x08AA, 0x08AB, 0x08AC, 0x200F, 0xFB1D, 0xFB1F, 0xFB20, 0xFB21, 0xFB22,\r\n    0xFB23, 0xFB24, 0xFB25, 0xFB26, 0xFB27, 0xFB28, 0xFB2A, 0xFB2B, 0xFB2C,\r\n    0xFB2D, 0xFB2E, 0xFB2F, 0xFB30, 0xFB31, 0xFB32, 0xFB33, 0xFB34, 0xFB35,\r\n    0xFB36, 0xFB38, 0xFB39, 0xFB3A, 0xFB3B, 0xFB3C, 0xFB3E, 0xFB40, 0xFB41,\r\n    0xFB43, 0xFB44, 0xFB46, 0xFB47, 0xFB48, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4C,\r\n    0xFB4D, 0xFB4E, 0xFB4F, 0xFB50, 0xFB51, 0xFB52, 0xFB53, 0xFB54, 0xFB55,\r\n    0xFB56, 0xFB57, 0xFB58, 0xFB59, 0xFB5A, 0xFB5B, 0xFB5C, 0xFB5D, 0xFB5E,\r\n    0xFB5F, 0xFB60, 0xFB61, 0xFB62, 0xFB63, 0xFB64, 0xFB65, 0xFB66, 0xFB67,\r\n    0xFB68, 0xFB69, 0xFB6A, 0xFB6B, 0xFB6C, 0xFB6D, 0xFB6E, 0xFB6F, 0xFB70,\r\n    0xFB71, 0xFB72, 0xFB73, 0xFB74, 0xFB75, 0xFB76, 0xFB77, 0xFB78, 0xFB79,\r\n    0xFB7A, 0xFB7B, 0xFB7C, 0xFB7D, 0xFB7E, 0xFB7F, 0xFB80, 0xFB81, 0xFB82,\r\n    0xFB83, 0xFB84, 0xFB85, 0xFB86, 0xFB87, 0xFB88, 0xFB89, 0xFB8A, 0xFB8B,\r\n    0xFB8C, 0xFB8D, 0xFB8E, 0xFB8F, 0xFB90, 0xFB91, 0xFB92, 0xFB93, 0xFB94,\r\n    0xFB95, 0xFB96, 0xFB97, 0xFB98, 0xFB99, 0xFB9A, 0xFB9B, 0xFB9C, 0xFB9D,\r\n    0xFB9E, 0xFB9F, 0xFBA0, 0xFBA1, 0xFBA2, 0xFBA3, 0xFBA4, 0xFBA5, 0xFBA6,\r\n    0xFBA7, 0xFBA8, 0xFBA9, 0xFBAA, 0xFBAB, 0xFBAC, 0xFBAD, 0xFBAE, 0xFBAF,\r\n    0xFBB0, 0xFBB1, 0xFBB2, 0xFBB3, 0xFBB4, 0xFBB5, 0xFBB6, 0xFBB7, 0xFBB8,\r\n    0xFBB9, 0xFBBA, 0xFBBB, 0xFBBC, 0xFBBD, 0xFBBE, 0xFBBF, 0xFBC0, 0xFBC1,\r\n    0xFBD3, 0xFBD4, 0xFBD5, 0xFBD6, 0xFBD7, 0xFBD8, 0xFBD9, 0xFBDA, 0xFBDB,\r\n    0xFBDC, 0xFBDD, 0xFBDE, 0xFBDF, 0xFBE0, 0xFBE1, 0xFBE2, 0xFBE3, 0xFBE4,\r\n    0xFBE5, 0xFBE6, 0xFBE7, 0xFBE8, 0xFBE9, 0xFBEA, 0xFBEB, 0xFBEC, 0xFBED,\r\n    0xFBEE, 0xFBEF, 0xFBF0, 0xFBF1, 0xFBF2, 0xFBF3, 0xFBF4, 0xFBF5, 0xFBF6,\r\n    0xFBF7, 0xFBF8, 0xFBF9, 0xFBFA, 0xFBFB, 0xFBFC, 0xFBFD, 0xFBFE, 0xFBFF,\r\n    0xFC00, 0xFC01, 0xFC02, 0xFC03, 0xFC04, 0xFC05, 0xFC06, 0xFC07, 0xFC08,\r\n    0xFC09, 0xFC0A, 0xFC0B, 0xFC0C, 0xFC0D, 0xFC0E, 0xFC0F, 0xFC10, 0xFC11,\r\n    0xFC12, 0xFC13, 0xFC14, 0xFC15, 0xFC16, 0xFC17, 0xFC18, 0xFC19, 0xFC1A,\r\n    0xFC1B, 0xFC1C, 0xFC1D, 0xFC1E, 0xFC1F, 0xFC20, 0xFC21, 0xFC22, 0xFC23,\r\n    0xFC24, 0xFC25, 0xFC26, 0xFC27, 0xFC28, 0xFC29, 0xFC2A, 0xFC2B, 0xFC2C,\r\n    0xFC2D, 0xFC2E, 0xFC2F, 0xFC30, 0xFC31, 0xFC32, 0xFC33, 0xFC34, 0xFC35,\r\n    0xFC36, 0xFC37, 0xFC38, 0xFC39, 0xFC3A, 0xFC3B, 0xFC3C, 0xFC3D, 0xFC3E,\r\n    0xFC3F, 0xFC40, 0xFC41, 0xFC42, 0xFC43, 0xFC44, 0xFC45, 0xFC46, 0xFC47,\r\n    0xFC48, 0xFC49, 0xFC4A, 0xFC4B, 0xFC4C, 0xFC4D, 0xFC4E, 0xFC4F, 0xFC50,\r\n    0xFC51, 0xFC52, 0xFC53, 0xFC54, 0xFC55, 0xFC56, 0xFC57, 0xFC58, 0xFC59,\r\n    0xFC5A, 0xFC5B, 0xFC5C, 0xFC5D, 0xFC5E, 0xFC5F, 0xFC60, 0xFC61, 0xFC62,\r\n    0xFC63, 0xFC64, 0xFC65, 0xFC66, 0xFC67, 0xFC68, 0xFC69, 0xFC6A, 0xFC6B,\r\n    0xFC6C, 0xFC6D, 0xFC6E, 0xFC6F, 0xFC70, 0xFC71, 0xFC72, 0xFC73, 0xFC74,\r\n    0xFC75, 0xFC76, 0xFC77, 0xFC78, 0xFC79, 0xFC7A, 0xFC7B, 0xFC7C, 0xFC7D,\r\n    0xFC7E, 0xFC7F, 0xFC80, 0xFC81, 0xFC82, 0xFC83, 0xFC84, 0xFC85, 0xFC86,\r\n    0xFC87, 0xFC88, 0xFC89, 0xFC8A, 0xFC8B, 0xFC8C, 0xFC8D, 0xFC8E, 0xFC8F,\r\n    0xFC90, 0xFC91, 0xFC92, 0xFC93, 0xFC94, 0xFC95, 0xFC96, 0xFC97, 0xFC98,\r\n    0xFC99, 0xFC9A, 0xFC9B, 0xFC9C, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1,\r\n    0xFCA2, 0xFCA3, 0xFCA4, 0xFCA5, 0xFCA6, 0xFCA7, 0xFCA8, 0xFCA9, 0xFCAA,\r\n    0xFCAB, 0xFCAC, 0xFCAD, 0xFCAE, 0xFCAF, 0xFCB0, 0xFCB1, 0xFCB2, 0xFCB3,\r\n    0xFCB4, 0xFCB5, 0xFCB6, 0xFCB7, 0xFCB8, 0xFCB9, 0xFCBA, 0xFCBB, 0xFCBC,\r\n    0xFCBD, 0xFCBE, 0xFCBF, 0xFCC0, 0xFCC1, 0xFCC2, 0xFCC3, 0xFCC4, 0xFCC5,\r\n    0xFCC6, 0xFCC7, 0xFCC8, 0xFCC9, 0xFCCA, 0xFCCB, 0xFCCC, 0xFCCD, 0xFCCE,\r\n    0xFCCF, 0xFCD0, 0xFCD1, 0xFCD2, 0xFCD3, 0xFCD4, 0xFCD5, 0xFCD6, 0xFCD7,\r\n    0xFCD8, 0xFCD9, 0xFCDA, 0xFCDB, 0xFCDC, 0xFCDD, 0xFCDE, 0xFCDF, 0xFCE0,\r\n    0xFCE1, 0xFCE2, 0xFCE3, 0xFCE4, 0xFCE5, 0xFCE6, 0xFCE7, 0xFCE8, 0xFCE9,\r\n    0xFCEA, 0xFCEB, 0xFCEC, 0xFCED, 0xFCEE, 0xFCEF, 0xFCF0, 0xFCF1, 0xFCF2,\r\n    0xFCF3, 0xFCF4, 0xFCF5, 0xFCF6, 0xFCF7, 0xFCF8, 0xFCF9, 0xFCFA, 0xFCFB,\r\n    0xFCFC, 0xFCFD, 0xFCFE, 0xFCFF, 0xFD00, 0xFD01, 0xFD02, 0xFD03, 0xFD04,\r\n    0xFD05, 0xFD06, 0xFD07, 0xFD08, 0xFD09, 0xFD0A, 0xFD0B, 0xFD0C, 0xFD0D,\r\n    0xFD0E, 0xFD0F, 0xFD10, 0xFD11, 0xFD12, 0xFD13, 0xFD14, 0xFD15, 0xFD16,\r\n    0xFD17, 0xFD18, 0xFD19, 0xFD1A, 0xFD1B, 0xFD1C, 0xFD1D, 0xFD1E, 0xFD1F,\r\n    0xFD20, 0xFD21, 0xFD22, 0xFD23, 0xFD24, 0xFD25, 0xFD26, 0xFD27, 0xFD28,\r\n    0xFD29, 0xFD2A, 0xFD2B, 0xFD2C, 0xFD2D, 0xFD2E, 0xFD2F, 0xFD30, 0xFD31,\r\n    0xFD32, 0xFD33, 0xFD34, 0xFD35, 0xFD36, 0xFD37, 0xFD38, 0xFD39, 0xFD3A,\r\n    0xFD3B, 0xFD3C, 0xFD3D, 0xFD50, 0xFD51, 0xFD52, 0xFD53, 0xFD54, 0xFD55,\r\n    0xFD56, 0xFD57, 0xFD58, 0xFD59, 0xFD5A, 0xFD5B, 0xFD5C, 0xFD5D, 0xFD5E,\r\n    0xFD5F, 0xFD60, 0xFD61, 0xFD62, 0xFD63, 0xFD64, 0xFD65, 0xFD66, 0xFD67,\r\n    0xFD68, 0xFD69, 0xFD6A, 0xFD6B, 0xFD6C, 0xFD6D, 0xFD6E, 0xFD6F, 0xFD70,\r\n    0xFD71, 0xFD72, 0xFD73, 0xFD74, 0xFD75, 0xFD76, 0xFD77, 0xFD78, 0xFD79,\r\n    0xFD7A, 0xFD7B, 0xFD7C, 0xFD7D, 0xFD7E, 0xFD7F, 0xFD80, 0xFD81, 0xFD82,\r\n    0xFD83, 0xFD84, 0xFD85, 0xFD86, 0xFD87, 0xFD88, 0xFD89, 0xFD8A, 0xFD8B,\r\n    0xFD8C, 0xFD8D, 0xFD8E, 0xFD8F, 0xFD92, 0xFD93, 0xFD94, 0xFD95, 0xFD96,\r\n    0xFD97, 0xFD98, 0xFD99, 0xFD9A, 0xFD9B, 0xFD9C, 0xFD9D, 0xFD9E, 0xFD9F,\r\n    0xFDA0, 0xFDA1, 0xFDA2, 0xFDA3, 0xFDA4, 0xFDA5, 0xFDA6, 0xFDA7, 0xFDA8,\r\n    0xFDA9, 0xFDAA, 0xFDAB, 0xFDAC, 0xFDAD, 0xFDAE, 0xFDAF, 0xFDB0, 0xFDB1,\r\n    0xFDB2, 0xFDB3, 0xFDB4, 0xFDB5, 0xFDB6, 0xFDB7, 0xFDB8, 0xFDB9, 0xFDBA,\r\n    0xFDBB, 0xFDBC, 0xFDBD, 0xFDBE, 0xFDBF, 0xFDC0, 0xFDC1, 0xFDC2, 0xFDC3,\r\n    0xFDC4, 0xFDC5, 0xFDC6, 0xFDC7, 0xFDF0, 0xFDF1, 0xFDF2, 0xFDF3, 0xFDF4,\r\n    0xFDF5, 0xFDF6, 0xFDF7, 0xFDF8, 0xFDF9, 0xFDFA, 0xFDFB, 0xFDFC, 0xFE70,\r\n    0xFE71, 0xFE72, 0xFE73, 0xFE74, 0xFE76, 0xFE77, 0xFE78, 0xFE79, 0xFE7A,\r\n    0xFE7B, 0xFE7C, 0xFE7D, 0xFE7E, 0xFE7F, 0xFE80, 0xFE81, 0xFE82, 0xFE83,\r\n    0xFE84, 0xFE85, 0xFE86, 0xFE87, 0xFE88, 0xFE89, 0xFE8A, 0xFE8B, 0xFE8C,\r\n    0xFE8D, 0xFE8E, 0xFE8F, 0xFE90, 0xFE91, 0xFE92, 0xFE93, 0xFE94, 0xFE95,\r\n    0xFE96, 0xFE97, 0xFE98, 0xFE99, 0xFE9A, 0xFE9B, 0xFE9C, 0xFE9D, 0xFE9E,\r\n    0xFE9F, 0xFEA0, 0xFEA1, 0xFEA2, 0xFEA3, 0xFEA4, 0xFEA5, 0xFEA6, 0xFEA7,\r\n    0xFEA8, 0xFEA9, 0xFEAA, 0xFEAB, 0xFEAC, 0xFEAD, 0xFEAE, 0xFEAF, 0xFEB0,\r\n    0xFEB1, 0xFEB2, 0xFEB3, 0xFEB4, 0xFEB5, 0xFEB6, 0xFEB7, 0xFEB8, 0xFEB9,\r\n    0xFEBA, 0xFEBB, 0xFEBC, 0xFEBD, 0xFEBE, 0xFEBF, 0xFEC0, 0xFEC1, 0xFEC2,\r\n    0xFEC3, 0xFEC4, 0xFEC5, 0xFEC6, 0xFEC7, 0xFEC8, 0xFEC9, 0xFECA, 0xFECB,\r\n    0xFECC, 0xFECD, 0xFECE, 0xFECF, 0xFED0, 0xFED1, 0xFED2, 0xFED3, 0xFED4,\r\n    0xFED5, 0xFED6, 0xFED7, 0xFED8, 0xFED9, 0xFEDA, 0xFEDB, 0xFEDC, 0xFEDD,\r\n    0xFEDE, 0xFEDF, 0xFEE0, 0xFEE1, 0xFEE2, 0xFEE3, 0xFEE4, 0xFEE5, 0xFEE6,\r\n    0xFEE7, 0xFEE8, 0xFEE9, 0xFEEA, 0xFEEB, 0xFEEC, 0xFEED, 0xFEEE, 0xFEEF,\r\n    0xFEF0, 0xFEF1, 0xFEF2, 0xFEF3, 0xFEF4, 0xFEF5, 0xFEF6, 0xFEF7, 0xFEF8,\r\n    0xFEF9, 0xFEFA, 0xFEFB, 0xFEFC, 0x10800, 0x10801, 0x10802, 0x10803,\r\n    0x10804, 0x10805, 0x10808, 0x1080A, 0x1080B, 0x1080C, 0x1080D, 0x1080E,\r\n    0x1080F, 0x10810, 0x10811, 0x10812, 0x10813, 0x10814, 0x10815, 0x10816,\r\n    0x10817, 0x10818, 0x10819, 0x1081A, 0x1081B, 0x1081C, 0x1081D, 0x1081E,\r\n    0x1081F, 0x10820, 0x10821, 0x10822, 0x10823, 0x10824, 0x10825, 0x10826,\r\n    0x10827, 0x10828, 0x10829, 0x1082A, 0x1082B, 0x1082C, 0x1082D, 0x1082E,\r\n    0x1082F, 0x10830, 0x10831, 0x10832, 0x10833, 0x10834, 0x10835, 0x10837,\r\n    0x10838, 0x1083C, 0x1083F, 0x10840, 0x10841, 0x10842, 0x10843, 0x10844,\r\n    0x10845, 0x10846, 0x10847, 0x10848, 0x10849, 0x1084A, 0x1084B, 0x1084C,\r\n    0x1084D, 0x1084E, 0x1084F, 0x10850, 0x10851, 0x10852, 0x10853, 0x10854,\r\n    0x10855, 0x10857, 0x10858, 0x10859, 0x1085A, 0x1085B, 0x1085C, 0x1085D,\r\n    0x1085E, 0x1085F, 0x10900, 0x10901, 0x10902, 0x10903, 0x10904, 0x10905,\r\n    0x10906, 0x10907, 0x10908, 0x10909, 0x1090A, 0x1090B, 0x1090C, 0x1090D,\r\n    0x1090E, 0x1090F, 0x10910, 0x10911, 0x10912, 0x10913, 0x10914, 0x10915,\r\n    0x10916, 0x10917, 0x10918, 0x10919, 0x1091A, 0x1091B, 0x10920, 0x10921,\r\n    0x10922, 0x10923, 0x10924, 0x10925, 0x10926, 0x10927, 0x10928, 0x10929,\r\n    0x1092A, 0x1092B, 0x1092C, 0x1092D, 0x1092E, 0x1092F, 0x10930, 0x10931,\r\n    0x10932, 0x10933, 0x10934, 0x10935, 0x10936, 0x10937, 0x10938, 0x10939,\r\n    0x1093F, 0x10980, 0x10981, 0x10982, 0x10983, 0x10984, 0x10985, 0x10986,\r\n    0x10987, 0x10988, 0x10989, 0x1098A, 0x1098B, 0x1098C, 0x1098D, 0x1098E,\r\n    0x1098F, 0x10990, 0x10991, 0x10992, 0x10993, 0x10994, 0x10995, 0x10996,\r\n    0x10997, 0x10998, 0x10999, 0x1099A, 0x1099B, 0x1099C, 0x1099D, 0x1099E,\r\n    0x1099F, 0x109A0, 0x109A1, 0x109A2, 0x109A3, 0x109A4, 0x109A5, 0x109A6,\r\n    0x109A7, 0x109A8, 0x109A9, 0x109AA, 0x109AB, 0x109AC, 0x109AD, 0x109AE,\r\n    0x109AF, 0x109B0, 0x109B1, 0x109B2, 0x109B3, 0x109B4, 0x109B5, 0x109B6,\r\n    0x109B7, 0x109BE, 0x109BF, 0x10A00, 0x10A10, 0x10A11, 0x10A12, 0x10A13,\r\n    0x10A15, 0x10A16, 0x10A17, 0x10A19, 0x10A1A, 0x10A1B, 0x10A1C, 0x10A1D,\r\n    0x10A1E, 0x10A1F, 0x10A20, 0x10A21, 0x10A22, 0x10A23, 0x10A24, 0x10A25,\r\n    0x10A26, 0x10A27, 0x10A28, 0x10A29, 0x10A2A, 0x10A2B, 0x10A2C, 0x10A2D,\r\n    0x10A2E, 0x10A2F, 0x10A30, 0x10A31, 0x10A32, 0x10A33, 0x10A40, 0x10A41,\r\n    0x10A42, 0x10A43, 0x10A44, 0x10A45, 0x10A46, 0x10A47, 0x10A50, 0x10A51,\r\n    0x10A52, 0x10A53, 0x10A54, 0x10A55, 0x10A56, 0x10A57, 0x10A58, 0x10A60,\r\n    0x10A61, 0x10A62, 0x10A63, 0x10A64, 0x10A65, 0x10A66, 0x10A67, 0x10A68,\r\n    0x10A69, 0x10A6A, 0x10A6B, 0x10A6C, 0x10A6D, 0x10A6E, 0x10A6F, 0x10A70,\r\n    0x10A71, 0x10A72, 0x10A73, 0x10A74, 0x10A75, 0x10A76, 0x10A77, 0x10A78,\r\n    0x10A79, 0x10A7A, 0x10A7B, 0x10A7C, 0x10A7D, 0x10A7E, 0x10A7F, 0x10B00,\r\n    0x10B01, 0x10B02, 0x10B03, 0x10B04, 0x10B05, 0x10B06, 0x10B07, 0x10B08,\r\n    0x10B09, 0x10B0A, 0x10B0B, 0x10B0C, 0x10B0D, 0x10B0E, 0x10B0F, 0x10B10,\r\n    0x10B11, 0x10B12, 0x10B13, 0x10B14, 0x10B15, 0x10B16, 0x10B17, 0x10B18,\r\n    0x10B19, 0x10B1A, 0x10B1B, 0x10B1C, 0x10B1D, 0x10B1E, 0x10B1F, 0x10B20,\r\n    0x10B21, 0x10B22, 0x10B23, 0x10B24, 0x10B25, 0x10B26, 0x10B27, 0x10B28,\r\n    0x10B29, 0x10B2A, 0x10B2B, 0x10B2C, 0x10B2D, 0x10B2E, 0x10B2F, 0x10B30,\r\n    0x10B31, 0x10B32, 0x10B33, 0x10B34, 0x10B35, 0x10B40, 0x10B41, 0x10B42,\r\n    0x10B43, 0x10B44, 0x10B45, 0x10B46, 0x10B47, 0x10B48, 0x10B49, 0x10B4A,\r\n    0x10B4B, 0x10B4C, 0x10B4D, 0x10B4E, 0x10B4F, 0x10B50, 0x10B51, 0x10B52,\r\n    0x10B53, 0x10B54, 0x10B55, 0x10B58, 0x10B59, 0x10B5A, 0x10B5B, 0x10B5C,\r\n    0x10B5D, 0x10B5E, 0x10B5F, 0x10B60, 0x10B61, 0x10B62, 0x10B63, 0x10B64,\r\n    0x10B65, 0x10B66, 0x10B67, 0x10B68, 0x10B69, 0x10B6A, 0x10B6B, 0x10B6C,\r\n    0x10B6D, 0x10B6E, 0x10B6F, 0x10B70, 0x10B71, 0x10B72, 0x10B78, 0x10B79,\r\n    0x10B7A, 0x10B7B, 0x10B7C, 0x10B7D, 0x10B7E, 0x10B7F, 0x10C00, 0x10C01,\r\n    0x10C02, 0x10C03, 0x10C04, 0x10C05, 0x10C06, 0x10C07, 0x10C08, 0x10C09,\r\n    0x10C0A, 0x10C0B, 0x10C0C, 0x10C0D, 0x10C0E, 0x10C0F, 0x10C10, 0x10C11,\r\n    0x10C12, 0x10C13, 0x10C14, 0x10C15, 0x10C16, 0x10C17, 0x10C18, 0x10C19,\r\n    0x10C1A, 0x10C1B, 0x10C1C, 0x10C1D, 0x10C1E, 0x10C1F, 0x10C20, 0x10C21,\r\n    0x10C22, 0x10C23, 0x10C24, 0x10C25, 0x10C26, 0x10C27, 0x10C28, 0x10C29,\r\n    0x10C2A, 0x10C2B, 0x10C2C, 0x10C2D, 0x10C2E, 0x10C2F, 0x10C30, 0x10C31,\r\n    0x10C32, 0x10C33, 0x10C34, 0x10C35, 0x10C36, 0x10C37, 0x10C38, 0x10C39,\r\n    0x10C3A, 0x10C3B, 0x10C3C, 0x10C3D, 0x10C3E, 0x10C3F, 0x10C40, 0x10C41,\r\n    0x10C42, 0x10C43, 0x10C44, 0x10C45, 0x10C46, 0x10C47, 0x10C48, 0x1EE00,\r\n    0x1EE01, 0x1EE02, 0x1EE03, 0x1EE05, 0x1EE06, 0x1EE07, 0x1EE08, 0x1EE09,\r\n    0x1EE0A, 0x1EE0B, 0x1EE0C, 0x1EE0D, 0x1EE0E, 0x1EE0F, 0x1EE10, 0x1EE11,\r\n    0x1EE12, 0x1EE13, 0x1EE14, 0x1EE15, 0x1EE16, 0x1EE17, 0x1EE18, 0x1EE19,\r\n    0x1EE1A, 0x1EE1B, 0x1EE1C, 0x1EE1D, 0x1EE1E, 0x1EE1F, 0x1EE21, 0x1EE22,\r\n    0x1EE24, 0x1EE27, 0x1EE29, 0x1EE2A, 0x1EE2B, 0x1EE2C, 0x1EE2D, 0x1EE2E,\r\n    0x1EE2F, 0x1EE30, 0x1EE31, 0x1EE32, 0x1EE34, 0x1EE35, 0x1EE36, 0x1EE37,\r\n    0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE4D, 0x1EE4E,\r\n    0x1EE4F, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D,\r\n    0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE67, 0x1EE68, 0x1EE69, 0x1EE6A,\r\n    0x1EE6C, 0x1EE6D, 0x1EE6E, 0x1EE6F, 0x1EE70, 0x1EE71, 0x1EE72, 0x1EE74,\r\n    0x1EE75, 0x1EE76, 0x1EE77, 0x1EE79, 0x1EE7A, 0x1EE7B, 0x1EE7C, 0x1EE7E,\r\n    0x1EE80, 0x1EE81, 0x1EE82, 0x1EE83, 0x1EE84, 0x1EE85, 0x1EE86, 0x1EE87,\r\n    0x1EE88, 0x1EE89, 0x1EE8B, 0x1EE8C, 0x1EE8D, 0x1EE8E, 0x1EE8F, 0x1EE90,\r\n    0x1EE91, 0x1EE92, 0x1EE93, 0x1EE94, 0x1EE95, 0x1EE96, 0x1EE97, 0x1EE98,\r\n    0x1EE99, 0x1EE9A, 0x1EE9B, 0x1EEA1, 0x1EEA2, 0x1EEA3, 0x1EEA5, 0x1EEA6,\r\n    0x1EEA7, 0x1EEA8, 0x1EEA9, 0x1EEAB, 0x1EEAC, 0x1EEAD, 0x1EEAE, 0x1EEAF,\r\n    0x1EEB0, 0x1EEB1, 0x1EEB2, 0x1EEB3, 0x1EEB4, 0x1EEB5, 0x1EEB6, 0x1EEB7,\r\n    0x1EEB8, 0x1EEB9, 0x1EEBA, 0x1EEBB, 0x10FFFD];\r\n\r\nfunction determineBidi(cueDiv) {\r\n    var nodeStack = [],\r\n        text = \"\",\r\n        charCode;\r\n\r\n    if (!cueDiv || !cueDiv.childNodes) {\r\n        return \"ltr\";\r\n    }\r\n\r\n    function pushNodes(nodeStack, node) {\r\n        for (var i = node.childNodes.length - 1; i >= 0; i--) {\r\n            nodeStack.push(node.childNodes[i]);\r\n        }\r\n    }\r\n\r\n    function nextTextNode(nodeStack) {\r\n        if (!nodeStack || !nodeStack.length) {\r\n            return null;\r\n        }\r\n\r\n        var node = nodeStack.pop(),\r\n            text = node.textContent || node.innerText;\r\n        if (text) {\r\n            // TODO: This should match all unicode type B characters (paragraph\r\n            // separator characters). See issue #115.\r\n            var m = text.match(/^.*(\\n|\\r)/);\r\n            if (m) {\r\n                nodeStack.length = 0;\r\n                return m[0];\r\n            }\r\n            return text;\r\n        }\r\n        if (node.tagName === \"ruby\") {\r\n            return nextTextNode(nodeStack);\r\n        }\r\n        if (node.childNodes) {\r\n            pushNodes(nodeStack, node);\r\n            return nextTextNode(nodeStack);\r\n        }\r\n    }\r\n\r\n    pushNodes(nodeStack, cueDiv);\r\n    while ((text = nextTextNode(nodeStack))) {\r\n        for (var i = 0; i < text.length; i++) {\r\n            charCode = text.charCodeAt(i);\r\n            for (var j = 0; j < strongRTLChars.length; j++) {\r\n                if (strongRTLChars[j] === charCode) {\r\n                    return \"rtl\";\r\n                }\r\n            }\r\n        }\r\n    }\r\n    return \"ltr\";\r\n}\r\n\r\nfunction computeLinePos(cue) {\r\n    if (typeof cue.line === \"number\" &&\r\n        (cue.snapToLines || (cue.line >= 0 && cue.line <= 100))) {\r\n        return cue.line;\r\n    }\r\n    if (!cue.track || !cue.track.textTrackList ||\r\n        !cue.track.textTrackList.mediaElement) {\r\n        return -1;\r\n    }\r\n    var track = cue.track,\r\n        trackList = track.textTrackList,\r\n        count = 0;\r\n    for (var i = 0; i < trackList.length && trackList[i] !== track; i++) {\r\n        if (trackList[i].mode === \"showing\") {\r\n            count++;\r\n        }\r\n    }\r\n    return ++count * -1;\r\n}\r\n\r\nfunction StyleBox() {\r\n}\r\n\r\n// Apply styles to a div. If there is no div passed then it defaults to the\r\n// div on 'this'.\r\nStyleBox.prototype.applyStyles = function(styles, div) {\r\n    div = div || this.div;\r\n    for (var prop in styles) {\r\n        if (styles.hasOwnProperty(prop)) {\r\n            div.style[prop] = styles[prop];\r\n        }\r\n    }\r\n};\r\n\r\nStyleBox.prototype.formatStyle = function(val, unit) {\r\n    return val === 0 ? 0 : val + unit;\r\n};\r\n\r\n// Constructs the computed display state of the cue (a div). Places the div\r\n// into the overlay which should be a block level element (usually a div).\r\nfunction CueStyleBox(window, cue, styleOptions) {\r\n    var isIE8 = (typeof navigator !== \"undefined\") &&\r\n        (/MSIE\\s8\\.0/).test(navigator.userAgent);\r\n    var color = \"rgba(255, 255, 255, 1)\";\r\n    var backgroundColor = \"rgba(0, 0, 0, 0.8)\";\r\n    var textShadow = \"\";\r\n\r\n    if(typeof WebVTTSet !== \"undefined\") {\r\n        color = WebVTTSet.fontSet;\r\n        backgroundColor = WebVTTSet.backgroundSet;\r\n        textShadow = WebVTTSet.edgeSet;\r\n    }\r\n\r\n    if (isIE8) {\r\n        color = \"rgb(255, 255, 255)\";\r\n        backgroundColor = \"rgb(0, 0, 0)\";\r\n    }\r\n\r\n    StyleBox.call(this);\r\n    this.cue = cue;\r\n\r\n    // Parse our cue's text into a DOM tree rooted at 'cueDiv'. This div will\r\n    // have inline positioning and will function as the cue background box.\r\n    this.cueDiv = parseContent(window, cue.text);\r\n    var styles = {\r\n        color: color,\r\n        backgroundColor: backgroundColor,\r\n        textShadow: textShadow,\r\n        position: \"relative\",\r\n        left: 0,\r\n        right: 0,\r\n        top: 0,\r\n        bottom: 0,\r\n        display: \"inline\"\r\n    };\r\n\r\n    if (!isIE8) {\r\n        styles.writingMode = cue.vertical === \"\" ? \"horizontal-tb\"\r\n            : cue.vertical === \"lr\" ? \"vertical-lr\"\r\n            : \"vertical-rl\";\r\n        styles.unicodeBidi = \"plaintext\";\r\n    }\r\n    this.applyStyles(styles, this.cueDiv);\r\n\r\n    // Create an absolutely positioned div that will be used to position the cue\r\n    // div. Note, all WebVTT cue-setting alignments are equivalent to the CSS\r\n    // mirrors of them except \"middle\" which is \"center\" in CSS.\r\n    this.div = window.document.createElement(\"div\");\r\n    styles = {\r\n        textAlign: cue.align === \"middle\" ? \"center\" : cue.align,\r\n        font: styleOptions.font,\r\n        whiteSpace: \"pre-line\",\r\n        position: \"absolute\"\r\n    };\r\n\r\n    if (!isIE8) {\r\n        styles.direction = determineBidi(this.cueDiv);\r\n        styles.writingMode = cue.vertical === \"\" ? \"horizontal-tb\"\r\n            : cue.vertical === \"lr\" ? \"vertical-lr\"\r\n            : \"vertical-rl\".\r\n            stylesunicodeBidi =  \"plaintext\";\r\n    }\r\n\r\n    this.applyStyles(styles);\r\n\r\n    this.div.appendChild(this.cueDiv);\r\n\r\n    // Calculate the distance from the reference edge of the viewport to the text\r\n    // position of the cue box. The reference edge will be resolved later when\r\n    // the box orientation styles are applied.\r\n    var textPos = 0;\r\n    switch (cue.positionAlign) {\r\n        case \"start\":\r\n            textPos = cue.position;\r\n            break;\r\n        case \"middle\":\r\n            textPos = cue.position - (cue.size / 2);\r\n            break;\r\n        case \"end\":\r\n            textPos = cue.position - cue.size;\r\n            break;\r\n    }\r\n\r\n    // Horizontal box orientation; textPos is the distance from the left edge of the\r\n    // area to the left edge of the box and cue.size is the distance extending to\r\n    // the right from there.\r\n    if (cue.vertical === \"\") {\r\n        this.applyStyles({\r\n            left:  this.formatStyle(textPos, \"%\"),\r\n            width: this.formatStyle(cue.size, \"%\")\r\n        });\r\n        // Vertical box orientation; textPos is the distance from the top edge of the\r\n        // area to the top edge of the box and cue.size is the height extending\r\n        // downwards from there.\r\n    } else {\r\n        this.applyStyles({\r\n            top: this.formatStyle(textPos, \"%\"),\r\n            height: this.formatStyle(cue.size, \"%\")\r\n        });\r\n    }\r\n\r\n    this.move = function(box) {\r\n        this.applyStyles({\r\n            top: this.formatStyle(box.top, \"px\"),\r\n            bottom: this.formatStyle(box.bottom, \"px\"),\r\n            left: this.formatStyle(box.left, \"px\"),\r\n            right: this.formatStyle(box.right, \"px\"),\r\n            height: this.formatStyle(box.height, \"px\"),\r\n            width: this.formatStyle(box.width, \"px\")\r\n        });\r\n    };\r\n}\r\nCueStyleBox.prototype = _objCreate(StyleBox.prototype);\r\nCueStyleBox.prototype.constructor = CueStyleBox;\r\n\r\n// Represents the co-ordinates of an Element in a way that we can easily\r\n// compute things with such as if it overlaps or intersects with another Element.\r\n// Can initialize it with either a StyleBox or another BoxPosition.\r\nfunction BoxPosition(obj) {\r\n    var isIE8 = (typeof navigator !== \"undefined\") &&\r\n        (/MSIE\\s8\\.0/).test(navigator.userAgent);\r\n\r\n    // Either a BoxPosition was passed in and we need to copy it, or a StyleBox\r\n    // was passed in and we need to copy the results of 'getBoundingClientRect'\r\n    // as the object returned is readonly. All co-ordinate values are in reference\r\n    // to the viewport origin (top left).\r\n    var lh, height, width, top;\r\n    if (obj.div) {\r\n        height = obj.div.offsetHeight;\r\n        width = obj.div.offsetWidth;\r\n        top = obj.div.offsetTop;\r\n\r\n        var rects = (rects = obj.div.childNodes) && (rects = rects[0]) &&\r\n            rects.getClientRects && rects.getClientRects();\r\n        obj = obj.div.getBoundingClientRect();\r\n        // In certain cases the outter div will be slightly larger then the sum of\r\n        // the inner div's lines. This could be due to bold text, etc, on some platforms.\r\n        // In this case we should get the average line height and use that. This will\r\n        // result in the desired behaviour.\r\n        lh = rects ? Math.max((rects[0] && rects[0].height) || 0, obj.height / rects.length)\r\n            : 0;\r\n\r\n    }\r\n    this.left = obj.left;\r\n    this.right = obj.right;\r\n    this.top = obj.top || top;\r\n    this.height = obj.height || height;\r\n    this.bottom = obj.bottom || (top + (obj.height || height));\r\n    this.width = obj.width || width;\r\n    this.lineHeight = lh !== undefined ? lh : obj.lineHeight;\r\n\r\n    if (isIE8 && !this.lineHeight) {\r\n        this.lineHeight = 13;\r\n    }\r\n}\r\n\r\n// Move the box along a particular axis. Optionally pass in an amount to move\r\n// the box. If no amount is passed then the default is the line height of the\r\n// box.\r\nBoxPosition.prototype.move = function(axis, toMove) {\r\n    toMove = toMove !== undefined ? toMove : this.lineHeight;\r\n    switch (axis) {\r\n        case \"+x\":\r\n            this.left += toMove;\r\n            this.right += toMove;\r\n            break;\r\n        case \"-x\":\r\n            this.left -= toMove;\r\n            this.right -= toMove;\r\n            break;\r\n        case \"+y\":\r\n            this.top += toMove;\r\n            this.bottom += toMove;\r\n            break;\r\n        case \"-y\":\r\n            this.top -= toMove;\r\n            this.bottom -= toMove;\r\n            break;\r\n    }\r\n};\r\n\r\n// Check if this box overlaps another box, b2.\r\nBoxPosition.prototype.overlaps = function(b2) {\r\n    return this.left < b2.right &&\r\n        this.right > b2.left &&\r\n        this.top < b2.bottom &&\r\n        this.bottom > b2.top;\r\n};\r\n\r\n// Check if this box overlaps any other boxes in boxes.\r\nBoxPosition.prototype.overlapsAny = function(boxes) {\r\n    for (var i = 0; i < boxes.length; i++) {\r\n        if (this.overlaps(boxes[i])) {\r\n            return true;\r\n        }\r\n    }\r\n    return false;\r\n};\r\n\r\n// Check if this box is within another box.\r\nBoxPosition.prototype.within = function(container) {\r\n    return this.top >= container.top &&\r\n        this.bottom <= container.bottom &&\r\n        this.left >= container.left &&\r\n        this.right <= container.right;\r\n};\r\n\r\n// Check if this box is entirely within the container or it is overlapping\r\n// on the edge opposite of the axis direction passed. For example, if \"+x\" is\r\n// passed and the box is overlapping on the left edge of the container, then\r\n// return true.\r\nBoxPosition.prototype.overlapsOppositeAxis = function(container, axis) {\r\n    switch (axis) {\r\n        case \"+x\":\r\n            return this.left < container.left;\r\n        case \"-x\":\r\n            return this.right > container.right;\r\n        case \"+y\":\r\n            return this.top < container.top;\r\n        case \"-y\":\r\n            return this.bottom > container.bottom;\r\n    }\r\n};\r\n\r\n// Find the percentage of the area that this box is overlapping with another\r\n// box.\r\nBoxPosition.prototype.intersectPercentage = function(b2) {\r\n    var x = Math.max(0, Math.min(this.right, b2.right) - Math.max(this.left, b2.left)),\r\n        y = Math.max(0, Math.min(this.bottom, b2.bottom) - Math.max(this.top, b2.top)),\r\n        intersectArea = x * y;\r\n    return intersectArea / (this.height * this.width);\r\n};\r\n\r\n// Convert the positions from this box to CSS compatible positions using\r\n// the reference container's positions. This has to be done because this\r\n// box's positions are in reference to the viewport origin, whereas, CSS\r\n// values are in referecne to their respective edges.\r\nBoxPosition.prototype.toCSSCompatValues = function(reference) {\r\n    return {\r\n        top: this.top - reference.top,\r\n        bottom: reference.bottom - this.bottom,\r\n        left: this.left - reference.left,\r\n        right: reference.right - this.right,\r\n        height: this.height,\r\n        width: this.width\r\n    };\r\n};\r\n\r\n// Get an object that represents the box's position without anything extra.\r\n// Can pass a StyleBox, HTMLElement, or another BoxPositon.\r\nBoxPosition.getSimpleBoxPosition = function(obj) {\r\n    var height = obj.div ? obj.div.offsetHeight : obj.tagName ? obj.offsetHeight : 0;\r\n    var width = obj.div ? obj.div.offsetWidth : obj.tagName ? obj.offsetWidth : 0;\r\n    var top = obj.div ? obj.div.offsetTop : obj.tagName ? obj.offsetTop : 0;\r\n\r\n    obj = obj.div ? obj.div.getBoundingClientRect() :\r\n        obj.tagName ? obj.getBoundingClientRect() : obj;\r\n    var ret = {\r\n        left: obj.left,\r\n        right: obj.right,\r\n        top: obj.top || top,\r\n        height: obj.height || height,\r\n        bottom: obj.bottom || (top + (obj.height || height)),\r\n        width: obj.width || width\r\n    };\r\n    return ret;\r\n};\r\n\r\n// Move a StyleBox to its specified, or next best, position. The containerBox\r\n// is the box that contains the StyleBox, such as a div. boxPositions are\r\n// a list of other boxes that the styleBox can't overlap with.\r\nfunction moveBoxToLinePosition(window, styleBox, containerBox, boxPositions) {\r\n\r\n    // Find the best position for a cue box, b, on the video. The axis parameter\r\n    // is a list of axis, the order of which, it will move the box along. For example:\r\n    // Passing [\"+x\", \"-x\"] will move the box first along the x axis in the positive\r\n    // direction. If it doesn't find a good position for it there it will then move\r\n    // it along the x axis in the negative direction.\r\n    function findBestPosition(b, axis) {\r\n        var bestPosition,\r\n            specifiedPosition = new BoxPosition(b),\r\n            percentage = 1; // Highest possible so the first thing we get is better.\r\n\r\n        for (var i = 0; i < axis.length; i++) {\r\n            while (b.overlapsOppositeAxis(containerBox, axis[i]) ||\r\n            (b.within(containerBox) && b.overlapsAny(boxPositions))) {\r\n                b.move(axis[i]);\r\n            }\r\n            // We found a spot where we aren't overlapping anything. This is our\r\n            // best position.\r\n            if (b.within(containerBox)) {\r\n                return b;\r\n            }\r\n            var p = b.intersectPercentage(containerBox);\r\n            // If we're outside the container box less then we were on our last try\r\n            // then remember this position as the best position.\r\n            if (percentage > p) {\r\n                bestPosition = new BoxPosition(b);\r\n                percentage = p;\r\n            }\r\n            // Reset the box position to the specified position.\r\n            b = new BoxPosition(specifiedPosition);\r\n        }\r\n        return bestPosition || specifiedPosition;\r\n    }\r\n\r\n    var boxPosition = new BoxPosition(styleBox),\r\n        cue = styleBox.cue,\r\n        linePos = computeLinePos(cue),\r\n        axis = [];\r\n\r\n    // If we have a line number to align the cue to.\r\n    if (cue.snapToLines) {\r\n        var size;\r\n        switch (cue.vertical) {\r\n            case \"\":\r\n                axis = [ \"+y\", \"-y\" ];\r\n                size = \"height\";\r\n                break;\r\n            case \"rl\":\r\n                axis = [ \"+x\", \"-x\" ];\r\n                size = \"width\";\r\n                break;\r\n            case \"lr\":\r\n                axis = [ \"-x\", \"+x\" ];\r\n                size = \"width\";\r\n                break;\r\n        }\r\n\r\n        var step = boxPosition.lineHeight,\r\n            position = step * Math.round(linePos),\r\n            maxPosition = containerBox[size] + step,\r\n            initialAxis = axis[0];\r\n\r\n        // If the specified intial position is greater then the max position then\r\n        // clamp the box to the amount of steps it would take for the box to\r\n        // reach the max position.\r\n        if (Math.abs(position) > maxPosition) {\r\n            position = position < 0 ? -1 : 1;\r\n            position *= Math.ceil(maxPosition / step) * step;\r\n        }\r\n\r\n        // If computed line position returns negative then line numbers are\r\n        // relative to the bottom of the video instead of the top. Therefore, we\r\n        // need to increase our initial position by the length or width of the\r\n        // video, depending on the writing direction, and reverse our axis directions.\r\n        if (linePos < 0) {\r\n            position += cue.vertical === \"\" ? containerBox.height : containerBox.width;\r\n            axis = axis.reverse();\r\n        }\r\n\r\n        // Move the box to the specified position. This may not be its best\r\n        // position.\r\n        boxPosition.move(initialAxis, position);\r\n\r\n    } else {\r\n        // If we have a percentage line value for the cue.\r\n        var calculatedPercentage = (boxPosition.lineHeight / containerBox.height) * 100;\r\n\r\n        switch (cue.lineAlign) {\r\n            case \"middle\":\r\n                linePos -= (calculatedPercentage / 2);\r\n                break;\r\n            case \"end\":\r\n                linePos -= calculatedPercentage;\r\n                break;\r\n        }\r\n\r\n        // Apply initial line position to the cue box.\r\n        switch (cue.vertical) {\r\n            case \"\":\r\n                styleBox.applyStyles({\r\n                    top: styleBox.formatStyle(linePos, \"%\")\r\n                });\r\n                break;\r\n            case \"rl\":\r\n                styleBox.applyStyles({\r\n                    left: styleBox.formatStyle(linePos, \"%\")\r\n                });\r\n                break;\r\n            case \"lr\":\r\n                styleBox.applyStyles({\r\n                    right: styleBox.formatStyle(linePos, \"%\")\r\n                });\r\n                break;\r\n        }\r\n\r\n        axis = [ \"+y\", \"-x\", \"+x\", \"-y\" ];\r\n\r\n        // Get the box position again after we've applied the specified positioning\r\n        // to it.\r\n        boxPosition = new BoxPosition(styleBox);\r\n    }\r\n\r\n    var bestPosition = findBestPosition(boxPosition, axis);\r\n    styleBox.move(bestPosition.toCSSCompatValues(containerBox));\r\n}\r\n\r\n/*function WebVTT() {\r\n // Nothing\r\n }*/\r\n\r\n// Helper to allow strings to be decoded instead of the default binary utf8 data.\r\nWebVTT.StringDecoder = function() {\r\n    return {\r\n        decode: function(data) {\r\n            if (!data) {\r\n                return \"\";\r\n            }\r\n            if (typeof data !== \"string\") {\r\n                throw new Error(\"Error - expected string data.\");\r\n            }\r\n            return decodeURIComponent(encodeURIComponent(data));\r\n        }\r\n    };\r\n};\r\n\r\nWebVTT.convertCueToDOMTree = function(window, cuetext) {\r\n    if (!window || !cuetext) {\r\n        return null;\r\n    }\r\n    return parseContent(window, cuetext);\r\n};\r\n\r\nvar FONT_SIZE_PERCENT = 0.05;\r\nvar FONT_STYLE = \"sans-serif\";\r\nvar CUE_BACKGROUND_PADDING = \"1.5%\";\r\n\r\n// Runs the processing model over the cues and regions passed to it.\r\n// @param overlay A block level element (usually a div) that the computed cues\r\n//                and regions will be placed into.\r\nWebVTT.processCues = function(window, cues, overlay) {\r\n    if (!window || !cues || !overlay) {\r\n        return null;\r\n    }\r\n\r\n    // Remove all previous children.\r\n    while (overlay.firstChild) {\r\n        overlay.removeChild(overlay.firstChild);\r\n    }\r\n\r\n    var paddedOverlay = window.document.createElement(\"div\");\r\n    paddedOverlay.style.position = \"absolute\";\r\n    paddedOverlay.style.left = \"0\";\r\n    paddedOverlay.style.right = \"0\";\r\n    paddedOverlay.style.top = \"0\";\r\n    paddedOverlay.style.bottom = \"0\";\r\n    paddedOverlay.style.margin = CUE_BACKGROUND_PADDING;\r\n    overlay.appendChild(paddedOverlay);\r\n\r\n    // Determine if we need to compute the display states of the cues. This could\r\n    // be the case if a cue's state has been changed since the last computation or\r\n    // if it has not been computed yet.\r\n    function shouldCompute(cues) {\r\n        for (var i = 0; i < cues.length; i++) {\r\n            if (cues[i].hasBeenReset || !cues[i].displayState) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    // We don't need to recompute the cues' display states. Just reuse them.\r\n    if (!shouldCompute(cues)) {\r\n        for (var i = 0; i < cues.length; i++) {\r\n            paddedOverlay.appendChild(cues[i].displayState);\r\n        }\r\n        return;\r\n    }\r\n\r\n    var boxPositions = [],\r\n        containerBox = BoxPosition.getSimpleBoxPosition(paddedOverlay),\r\n        fontSize = Math.round(containerBox.height * FONT_SIZE_PERCENT * 100) / 100;\r\n    var styleOptions = {\r\n        font: (fontSize * fontScale) + \"px \" + FONT_STYLE\r\n    };\r\n\r\n    (function() {\r\n        var styleBox, cue;\r\n\r\n        for (var i = 0; i < cues.length; i++) {\r\n            cue = cues[i];\r\n\r\n            // Compute the intial position and styles of the cue div.\r\n            styleBox = new CueStyleBox(window, cue, styleOptions);\r\n            paddedOverlay.appendChild(styleBox.div);\r\n\r\n            // Move the cue div to it's correct line position.\r\n            moveBoxToLinePosition(window, styleBox, containerBox, boxPositions);\r\n\r\n            // Remember the computed div so that we don't have to recompute it later\r\n            // if we don't have too.\r\n            cue.displayState = styleBox.div;\r\n\r\n            boxPositions.push(BoxPosition.getSimpleBoxPosition(styleBox));\r\n        }\r\n    })();\r\n};\r\n\r\nWebVTT.Parser = function(window, decoder) {\r\n    this.window = window;\r\n    this.state = \"INITIAL\";\r\n    this.buffer = \"\";\r\n    this.decoder = decoder || new TextDecoder(\"utf8\");\r\n    this.regionList = [];\r\n};\r\n\r\nWebVTT.Parser.prototype = {\r\n    // If the error is a ParsingError then report it to the consumer if\r\n    // possible. If it's not a ParsingError then throw it like normal.\r\n    reportOrThrowError: function(e) {\r\n        if (e instanceof ParsingError) {\r\n            this.onparsingerror && this.onparsingerror(e);\r\n        } else {\r\n            throw e;\r\n        }\r\n    },\r\n    parse: function (data, flushing) {\r\n        var self = this;\r\n        // If there is no data then we won't decode it, but will just try to parse\r\n        // whatever is in buffer already. This may occur in circumstances, for\r\n        // example when flush() is called.\r\n        if (data) {\r\n            // Try to decode the data that we received.\r\n            self.buffer += self.decoder.decode(data, {stream: true});\r\n        }\r\n        function collectNextLine() {\r\n            var buffer = self.buffer;\r\n            var pos = 0;\r\n            while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\r\n                ++pos;\r\n            }\r\n            var line = buffer.substr(0, pos);\r\n            // Advance the buffer early in case we fail below.\r\n            if (buffer[pos] === '\\r') {\r\n                ++pos;\r\n            }\r\n            if (buffer[pos] === '\\n') {\r\n                ++pos;\r\n            }\r\n            self.buffer = buffer.substr(pos);\r\n            return line;\r\n        }\r\n\r\n        // 3.4 WebVTT region and WebVTT region settings syntax\r\n        function parseRegion(input) {\r\n            var settings = new Settings();\r\n\r\n            parseOptions(input, function (k, v) {\r\n                switch (k) {\r\n                    case \"id\":\r\n                        settings.set(k, v);\r\n                        break;\r\n                    case \"width\":\r\n                        settings.percent(k, v);\r\n                        break;\r\n                    case \"lines\":\r\n                        settings.integer(k, v);\r\n                        break;\r\n                    case \"regionanchor\":\r\n                    case \"viewportanchor\":\r\n                        var xy = v.split(',');\r\n                        if (xy.length !== 2) {\r\n                            break;\r\n                        }\r\n                        // We have to make sure both x and y parse, so use a temporary\r\n                        // settings object here.\r\n                        var anchor = new Settings();\r\n                        anchor.percent(\"x\", xy[0]);\r\n                        anchor.percent(\"y\", xy[1]);\r\n                        if (!anchor.has(\"x\") || !anchor.has(\"y\")) {\r\n                            break;\r\n                        }\r\n                        settings.set(k + \"X\", anchor.get(\"x\"));\r\n                        settings.set(k + \"Y\", anchor.get(\"y\"));\r\n                        break;\r\n                    case \"scroll\":\r\n                        settings.alt(k, v, [\"up\"]);\r\n                        break;\r\n                }\r\n            }, /=/, /\\s/);\r\n\r\n            // Create the region, using default values for any values that were not\r\n            // specified.\r\n            if (settings.has(\"id\")) {\r\n                var region = new VTTRegion();\r\n                region.width = settings.get(\"width\", 100);\r\n                region.lines = settings.get(\"lines\", 3);\r\n                region.regionAnchorX = settings.get(\"regionanchorX\", 0);\r\n                region.regionAnchorY = settings.get(\"regionanchorY\", 100);\r\n                region.viewportAnchorX = settings.get(\"viewportanchorX\", 0);\r\n                region.viewportAnchorY = settings.get(\"viewportanchorY\", 100);\r\n                region.scroll = settings.get(\"scroll\", \"\");\r\n                // Register the region.\r\n                self.onregion && self.onregion(region);\r\n                // Remember the VTTRegion for later in case we parse any VTTCues that\r\n                // reference it.\r\n                self.regionList.push({\r\n                    id: settings.get(\"id\"),\r\n                    region: region\r\n                });\r\n            }\r\n        }\r\n\r\n        // 3.2 WebVTT metadata header syntax\r\n        function parseHeader(input) {\r\n            parseOptions(input, function (k, v) {\r\n                switch (k) {\r\n                    case \"Region\":\r\n                        // 3.3 WebVTT region metadata header syntax\r\n                        parseRegion(v);\r\n                        break;\r\n                }\r\n            }, /:/);\r\n        }\r\n\r\n        // 5.1 WebVTT file parsing.\r\n        try {\r\n            var line;\r\n            if (self.state === \"INITIAL\") {\r\n                // We can't start parsing until we have the first line.\r\n                if (!/\\r\\n|\\n/.test(self.buffer)) {\r\n                    return this;\r\n                }\r\n\r\n                line = collectNextLine();\r\n\r\n                var m = line.match(/^WEBVTT([ \\t].*)?$/);\r\n                if (!m || !m[0]) {\r\n                    throw new ParsingError(ParsingError.Errors.BadSignature);\r\n                }\r\n\r\n                self.state = \"HEADER\";\r\n            }\r\n\r\n            var alreadyCollectedLine = false;\r\n            while (self.buffer) {\r\n                // We can't parse a line until we have the full line.\r\n                if (!/\\r\\n|\\n/.test(self.buffer)) {\r\n                    return this;\r\n                }\r\n\r\n                if (!alreadyCollectedLine) {\r\n                    line = collectNextLine();\r\n                } else {\r\n                    alreadyCollectedLine = false;\r\n                }\r\n                switch (self.state) {\r\n                    case \"HEADER\":\r\n                        // 13-18 - Allow a header (metadata) under the WEBVTT line.\r\n                        if (/:/.test(line)) {\r\n                            parseHeader(line);\r\n                        } else if (!line) {\r\n                            // An empty line terminates the header and starts the body (cues).\r\n                            self.state = \"ID\";\r\n                        }\r\n                        continue;\r\n                    case \"NOTE\":\r\n                        // Ignore NOTE blocks.\r\n                        if (!line) {\r\n                            self.state = \"ID\";\r\n                        }\r\n                        continue;\r\n                    case \"ID\":\r\n                        // Check for the start of NOTE blocks.\r\n                        if (/^NOTE($|[ \\t])/.test(line)) {\r\n                            self.state = \"NOTE\";\r\n                            break;\r\n                        }\r\n                        // 19-29 - Allow any number of line terminators, then initialize new cue values.\r\n                        if (!line) {\r\n                            continue;\r\n                        }\r\n                        self.cue = new VTTCue(0, 0, \"\");\r\n                        self.state = \"CUE\";\r\n                        // 30-39 - Check if self line contains an optional identifier or timing data.\r\n                        if (line.indexOf(\"-->\") === -1) {\r\n                            self.cue.id = line;\r\n                            continue;\r\n                        }\r\n                    // Process line as start of a cue.\r\n                    /*falls through*/\r\n                    case \"CUE\":\r\n                        // 40 - Collect cue timings and settings.\r\n                        try {\r\n                            parseCue(line, self.cue, self.regionList);\r\n                        } catch (e) {\r\n                            self.reportOrThrowError(e);\r\n                            // In case of an error ignore rest of the cue.\r\n                            self.cue = null;\r\n                            self.state = \"BADCUE\";\r\n                            continue;\r\n                        }\r\n                        self.state = \"CUETEXT\";\r\n                        continue;\r\n                    case \"CUETEXT\":\r\n                        var hasSubstring = line.indexOf(\"-->\") !== -1;\r\n                        // 34 - If we have an empty line then report the cue.\r\n                        // 35 - If we have the special substring '-->' then report the cue,\r\n                        // but do not collect the line as we need to process the current\r\n                        // one as a new cue.\r\n                        if (!line || hasSubstring && (alreadyCollectedLine = true)) {\r\n                            // We are done parsing self cue.\r\n                            self.oncue && self.oncue(self.cue);\r\n                            self.cue = null;\r\n                            self.state = \"ID\";\r\n                            continue;\r\n                        }\r\n                        if (self.cue.text) {\r\n                            self.cue.text += \"\\n\";\r\n                        }\r\n                        self.cue.text += line;\r\n                        continue;\r\n                    case \"BADCUE\": // BADCUE\r\n                        // 54-62 - Collect and discard the remaining cue.\r\n                        if (!line) {\r\n                            self.state = \"ID\";\r\n                        }\r\n                        continue;\r\n                }\r\n            }\r\n\r\n\r\n            if (!flushing) {\r\n                //때때로 (한긇 vtt로 추정) cue가 남아 있는채로 self.flush()를 호출해서 cue가 있기 때문에 다시 self.parse()를 타는 경우가 생김.\r\n                //왜 이렇게 짜여 있는지 모르겠고 일단 아래와 같은 코드로 위기를 극복한다.\r\n                if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\r\n                    self.oncue(self.cue);\r\n                }\r\n                self.flush();\r\n                return this;\r\n            }\r\n        } catch (e) {\r\n            self.reportOrThrowError(e);\r\n            // If we are currently parsing a cue, report what we have.\r\n            if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\r\n                self.oncue(self.cue);\r\n            }\r\n            self.cue = null;\r\n            // Enter BADWEBVTT state if header was not parsed correctly otherwise\r\n            // another exception occurred so enter BADCUE state.\r\n            self.state = self.state === \"INITIAL\" ? \"BADWEBVTT\" : \"BADCUE\";\r\n        }\r\n        return this;\r\n    },\r\n    flush: function () {\r\n        var self = this;\r\n\r\n        try {\r\n            // Finish decoding the stream.\r\n            self.buffer += self.decoder.decode();\r\n            // Synthesize the end of the current cue or region.\r\n            if (self.cue || self.state === \"HEADER\") {\r\n                self.buffer += \"\\n\\n\";\r\n                self.parse(null, true);\r\n            }\r\n            // If we've flushed, parsed, and we're still on the INITIAL state then\r\n            // that means we don't have enough of the stream to parse the first\r\n            // line.\r\n            if (self.state === \"INITIAL\") {\r\n                throw new ParsingError(ParsingError.Errors.BadSignature);\r\n            }\r\n        } catch(e) {\r\n            self.reportOrThrowError(e);\r\n        }\r\n        self.onflush && self.onflush();\r\n        return this;\r\n    }\r\n};\r\n\r\n\r\n\r\n\r\nexport default WebVTT;","/**\r\n * Created by hoho on 2018. 8. 24..\r\n */\r\n\r\nexport const getBrowserLanguage = function(){\r\n    let nav = window.navigator,\r\n        browserLanguagePropertyKeys = ['language', 'browserLanguage', 'systemLanguage', 'userLanguage'],\r\n        i,\r\n        language;\r\n\r\n    // support for HTML 5.1 \"navigator.languages\"\r\n    if (Array.isArray(nav.languages)) {\r\n        for (i = 0; i < nav.languages.length; i++) {\r\n            language = nav.languages[i];\r\n            if (language && language.length) {\r\n                return language;\r\n            }\r\n        }\r\n    }\r\n\r\n    // support for other well known properties in browsers\r\n    for (i = 0; i < browserLanguagePropertyKeys.length; i++) {\r\n        language = nav[browserLanguagePropertyKeys[i]];\r\n        if (language && language.length) {\r\n            return language;\r\n        }\r\n    }\r\n\r\n    return null;\r\n};\r\nexport const analUserAgent = function(){\r\n    let unknown = '-';\r\n\r\n    // screen\r\n    let screenSize = '';\r\n    if (screen.width) {\r\n        let width = (screen.width) ? screen.width : '';\r\n        let height = (screen.height) ? screen.height : '';\r\n        screenSize += '' + width + \" x \" + height;\r\n    }\r\n\r\n    // browser\r\n    let nVer = navigator.appVersion;\r\n    let nAgt = navigator.userAgent;\r\n    let browser = navigator.appName;\r\n    let version = '' + parseFloat(navigator.appVersion);\r\n    let majorVersion = parseInt(navigator.appVersion, 10);\r\n    let isWebview = false;\r\n    let nameOffset, verOffset, ix;\r\n\r\n    // Opera\r\n    if ((verOffset = nAgt.indexOf('Opera')) != -1) {\r\n        browser = 'Opera';\r\n        version = nAgt.substring(verOffset + 6);\r\n        if ((verOffset = nAgt.indexOf('Version')) != -1) {\r\n            version = nAgt.substring(verOffset + 8);\r\n        }\r\n    }\r\n    // Opera Next\r\n    if ((verOffset = nAgt.indexOf('OPR')) != -1) {\r\n        browser = 'Opera';\r\n        version = nAgt.substring(verOffset + 4);\r\n    }\r\n    //삼성 브라우저\r\n    else if ((verOffset = nAgt.indexOf('SamsungBrowser')) != -1) {\r\n        browser = 'SamsungBrowser';\r\n        version = nAgt.substring(verOffset + 15);\r\n    }\r\n    // Edge\r\n    else if ((verOffset = nAgt.indexOf('Edge')) != -1) {\r\n        browser = 'Microsoft Edge';\r\n        version = nAgt.substring(verOffset + 5);\r\n    }\r\n    // MSIE\r\n    else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {\r\n        browser = 'Microsoft Internet Explorer';\r\n        version = nAgt.substring(verOffset + 5);\r\n\r\n\r\n        //win7 IE11 userAgent is ugly....\r\n        if( (nAgt.indexOf('Trident/') !== -1) && (nAgt.indexOf('rv:') !== -1)  ){\r\n            version = nAgt.substring(nAgt.indexOf('rv:') + 3);\r\n        }\r\n    }\r\n    // Chrome\r\n    else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {\r\n        browser = 'Chrome';\r\n        version = nAgt.substring(verOffset + 7);\r\n    }\r\n    else if ((verOffset = nAgt.indexOf('CriOS')) != -1) {   //iphone - chrome\r\n        browser = 'Chrome';\r\n        version = nAgt.substring(verOffset + 6);\r\n    }\r\n    // Firefox\r\n    else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {\r\n        browser = 'Firefox';\r\n        version = nAgt.substring(verOffset + 8);\r\n    }\r\n    else if ((verOffset = nAgt.indexOf('FxiOS')) != -1) {\r\n        browser = 'Firefox';\r\n        version = nAgt.substring(verOffset + 6);\r\n    }\r\n    // Safari\r\n    else if ((verOffset = nAgt.indexOf('Safari')) != -1) {\r\n        browser = 'Safari';\r\n        version = nAgt.substring(verOffset + 7);\r\n        if ((verOffset = nAgt.indexOf('Version')) != -1) {\r\n            version = nAgt.substring(verOffset + 8);\r\n        }\r\n    }\r\n\r\n\r\n    // MSIE 11+\r\n    else if (nAgt.indexOf('Trident/') !== -1) {\r\n        browser = 'Microsoft Internet Explorer';\r\n        version = nAgt.substring(nAgt.indexOf('rv:') + 3);\r\n    }\r\n    // Other browsers\r\n    else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {\r\n        browser = nAgt.substring(nameOffset, verOffset);\r\n        version = nAgt.substring(verOffset + 1);\r\n        if (browser.toLowerCase() == browser.toUpperCase()) {\r\n            browser = navigator.appName;\r\n        }\r\n    }\r\n    if(nAgt.indexOf(' wv') > 0){\r\n        isWebview = true;\r\n    }\r\n    // trim the version string\r\n    if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix);\r\n    if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix);\r\n    if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix);\r\n\r\n    majorVersion = parseInt('' + version, 10);\r\n    if (isNaN(majorVersion)) {\r\n        version = '' + parseFloat(navigator.appVersion);\r\n        majorVersion = parseInt(navigator.appVersion, 10);\r\n    }\r\n\r\n    // mobile version\r\n    var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);\r\n\r\n    // cookie\r\n    var cookieEnabled = (navigator.cookieEnabled) ? true : false;\r\n\r\n    if (typeof navigator.cookieEnabled == 'undefined' && !cookieEnabled) {\r\n        document.cookie = 'testcookie';\r\n        cookieEnabled = (document.cookie.indexOf('testcookie') != -1) ? true : false;\r\n    }\r\n\r\n    // system\r\n    var os = unknown;\r\n    var clientStrings = [\r\n        {s:'Windows 10', r:/(Windows 10.0|Windows NT 10.0)/},\r\n        {s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/},\r\n        {s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/},\r\n        {s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/},\r\n        {s:'Windows Vista', r:/Windows NT 6.0/},\r\n        {s:'Windows Server 2003', r:/Windows NT 5.2/},\r\n        {s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/},\r\n        {s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/},\r\n        {s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/},\r\n        {s:'Windows 98', r:/(Windows 98|Win98)/},\r\n        {s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/},\r\n        {s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},\r\n        {s:'Windows CE', r:/Windows CE/},\r\n        {s:'Windows 3.11', r:/Win16/},\r\n        {s:'Android', r:/Android/},\r\n        {s:'Open BSD', r:/OpenBSD/},\r\n        {s:'Sun OS', r:/SunOS/},\r\n        {s:'Linux', r:/(Linux|X11)/},\r\n        {s:'iOS', r:/(iPhone|iPad|iPod)/},\r\n        {s:'Mac OS XI', r:/Mac OS X 11/},\r\n        {s:'Mac OS X', r:/Mac OS X 10/},\r\n        {s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},\r\n        {s:'QNX', r:/QNX/},\r\n        {s:'UNIX', r:/UNIX/},\r\n        {s:'BeOS', r:/BeOS/},\r\n        {s:'OS/2', r:/OS\\/2/},\r\n        {s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\\/Teoma|ia_archiver)/}\r\n    ];\r\n    for (var id in clientStrings) {\r\n        var cs = clientStrings[id];\r\n        if (cs.r.test(nAgt)) {\r\n            os = cs.s;\r\n            break;\r\n        }\r\n    }\r\n\r\n    var osVersion = unknown;\r\n\r\n    if (/Windows/.test(os)) {\r\n        osVersion = /Windows (.*)/.exec(os)[1];\r\n        os = 'Windows';\r\n    }\r\n\r\n    switch (os) {\r\n        case 'Mac OS XI':\r\n            osVersion = /Mac OS X (11[\\.\\_\\d]+)/.exec(nAgt)[1];\r\n            break;\r\n\r\n        case 'Mac OS X':\r\n            osVersion = /Mac OS X (10[\\.\\_\\d]+)/.exec(nAgt)[1];\r\n            break;\r\n\r\n        case 'Android':\r\n            osVersion = /Android ([\\.\\_\\d]+)/.exec(nAgt)[1];\r\n            break;\r\n\r\n        case 'iOS':\r\n            osVersion = /OS (\\d+)_(\\d+)_?(\\d+)?/.exec(nVer);\r\n            if (osVersion) {\r\n                osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0);\r\n            } else {\r\n                osVersion = '';\r\n            }\r\n\r\n            break;\r\n    }\r\n\r\n    return {\r\n        screen: screenSize,\r\n        browser: browser,\r\n        browserVersion: version,\r\n        browserMajorVersion: majorVersion,\r\n        mobile: mobile,\r\n        ua : nAgt,\r\n        os: os,\r\n        osVersion: osVersion,\r\n        cookies: cookieEnabled\r\n    };\r\n};\r\n","import {getBrowserLanguage} from \"utils/browser\";\r\n/*\r\n *  sami-parser\r\n *  The MIT License (MIT)\r\n *\r\n *  Copyright (c) 2013 Constantine Kim <elegantcoder@gmail.com>\r\n *  https://github.com/elegantcoder/sami-parser\r\n *\r\n */\r\n\r\nconst langCodes = [\"ab\",\"aa\",\"af\", \"ak\", \"sq\", \"am\", \"ar\", \"an\", \"hy\", \"as\", \"av\", \"ae\", \"ay\", \"az\", \"bm\", \"ba\", \"eu\", \"be\", \"bn\", \"bh\", \"bi\", \"nb\",\"bs\",\"br\",\"bg\",\"my\",\"es\",\"ca\",\"km\",\"ch\",\"ce\",\"ny\",\"ny\",\"zh\",\"za\",\"cu\",\"cu\",\"cv\",\"kw\",\r\n    \"co\",\"cr\",\"hr\",\"cs\",\"da\",\"dv\",\"dv\",\"nl\",\"dz\",\"en\",\"eo\",\"et\",\"ee\",\"fo\",\"fj\",\"fi\",\"nl\",\"fr\",\"ff\",\"gd\",\"gl\",\"lg\",\"ka\",\"de\",\"ki\",\"el\",\"kl\",\"gn\",\"gu\",\"ht\",\"ht\",\"ha\",\"he\",\"hz\",\"hi\",\"ho\",\"hu\",\"is\",\"io\",\"ig\",\"id\",\"ia\",\"ie\",\"iu\",\"ik\",\"ga\",\r\n    \"it\",\"ja\",\"jv\",\"kl\",\"kn\",\"kr\",\"ks\",\"kk\",\"ki\",\"rw\",\"ky\",\"kv\",\"kg\",\"ko\",\"kj\",\"ku\",\"kj\",\"ky\",\"lo\",\"la\",\"lv\",\"lb\",\"li\",\"li\",\"li\",\"ln\",\"lt\",\"lu\",\"lb\",\"mk\",\"mg\",\"ms\",\"ml\",\"dv\",\"mt\",\"gv\",\"mi\",\"mr\",\"mh\",\"ro\",\"ro\",\"mn\",\"na\",\"nv\",\"nv\",\"nd\",\r\n    \"nr\",\"ng\",\"ne\",\"nd\",\"se\",\"no\",\"nb\",\"nn\",\"ii\",\"ny\",\"nn\",\"ie\",\"oc\",\"oj\",\"cu\",\"cu\",\"cu\",\"or\",\"om\",\"os\",\"os\",\"pi\",\"pa\",\"ps\",\"fa\",\"pl\",\"pt\",\"pa\",\"ps\",\"qu\",\"ro\",\"rm\",\"rn\",\"ru\",\"sm\",\"sg\",\"sa\",\"sc\",\"gd\",\"sr\",\"sn\",\"ii\",\"sd\",\"si\",\"si\",\"sk\",\r\n    \"sl\",\"so\",\"st\",\"nr\",\"es\",\"su\",\"sw\",\"ss\",\"sv\",\"tl\",\"ty\",\"tg\",\"ta\",\"tt\",\"te\",\"th\",\"bo\",\"ti\",\"to\",\"ts\",\"tn\",\"tr\",\"tk\",\"tw\",\"ug\",\"uk\",\"ur\",\"ug\",\"uz\",\"ca\",\"ve\",\"vi\",\"vo\",\"wa\",\"cy\",\"fy\",\"wo\",\"xh\",\"yi\",\"yo\",\"za\",\"zu\"];\r\n\r\nconst reOpenSync = /<sync/i;\r\n\r\nconst reCloseSync = /<sync|<\\/body|<\\/sami/i;\r\n\r\nconst reLineEnding = /\\r\\n?|\\n/g;\r\n\r\nconst reBrokenTag = /<[a-z]*[^>]*<[a-z]*/g;\r\n\r\nconst reStartTime = /<sync[^>]+?start[^=]*=[^0-9]*([0-9]*)[\"^0-9\"]*/i;\r\n\r\nconst reBr = /<br[^>]*>/ig;\r\n\r\nconst reStyle = /<style[^>]*>([\\s\\S]*?)<\\/style[^>]*>/i;\r\n\r\nconst reComment = /(<!--|-->)/g;\r\n\r\nconst clone = function(obj) {\r\n    var flags, key, newInstance;\r\n    if ((obj == null) || typeof obj !== 'object') {\r\n        return obj;\r\n    }\r\n    if (obj instanceof Date) {\r\n        return new Date(obj.getTime());\r\n    }\r\n    if (obj instanceof RegExp) {\r\n        flags = '';\r\n        if (obj.global != null) {\r\n            flags += 'g';\r\n        }\r\n        if (obj.ignoreCase != null) {\r\n            flags += 'i';\r\n        }\r\n        if (obj.multiline != null) {\r\n            flags += 'm';\r\n        }\r\n        if (obj.sticky != null) {\r\n            flags += 'y';\r\n        }\r\n        return new RegExp(obj.source, flags);\r\n    }\r\n    newInstance = new obj.constructor();\r\n    for (key in obj) {\r\n        newInstance[key] = clone(obj[key]);\r\n    }\r\n    return newInstance;\r\n};\r\n\r\nconst strip_tags = function (input, allowed) {\r\n    // http://kevin.vanzonneveld.net\r\n    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +   improved by: Luke Godfrey\r\n    // +      input by: Pul\r\n    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +   bugfixed by: Onno Marsman\r\n    // +      input by: Alex\r\n    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +      input by: Marc Palau\r\n    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +      input by: Brett Zamir (http://brett-zamir.me)\r\n    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +   bugfixed by: Eric Nagel\r\n    // +      input by: Bobby Drake\r\n    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\r\n    // +   bugfixed by: Tomasz Wesolowski\r\n    // +      input by: Evertjan Garretsen\r\n    // +    revised by: Rafał Kukawski (http://blog.kukawski.pl/)\r\n    // *     example 1: strip_tags('<p>Kevin</p> <br /><b>van</b> <i>Zonneveld</i>', '<i><b>');\r\n    // *     returns 1: 'Kevin <b>van</b> <i>Zonneveld</i>'\r\n    // *     example 2: strip_tags('<p>Kevin <img src=\"someimage.png\" onmouseover=\"someFunction()\">van <i>Zonneveld</i></p>', '<p>');\r\n    // *     returns 2: '<p>Kevin van Zonneveld</p>'\r\n    // *     example 3: strip_tags(\"<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>\", \"<a>\");\r\n    // *     returns 3: '<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>'\r\n    // *     example 4: strip_tags('1 < 5 5 > 1');\r\n    // *     returns 4: '1 < 5 5 > 1'\r\n    // *     example 5: strip_tags('1 <br/> 1');\r\n    // *     returns 5: '1  1'\r\n    // *     example 6: strip_tags('1 <br/> 1', '<br>');\r\n    // *     returns 6: '1  1'\r\n    // *     example 7: strip_tags('1 <br/> 1', '<br><br/>');\r\n    // *     returns 7: '1 <br/> 1'\r\n    allowed = (((allowed || \"\") + \"\").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)\r\n    var tags = /<\\/?([a-z][a-z0-9]*)\\b[^>]*>/gi,\r\n        commentsAndPhpTags = /<!--[\\s\\S]*?-->|<\\?(?:php)?[\\s\\S]*?\\?>/gi;\r\n    return input.replace(commentsAndPhpTags, '').replace(tags, function($0, $1) {\r\n        return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';\r\n    });\r\n};\r\n\r\nconst _sort = function(langItem) {\r\n    return langItem.sort(function(a, b) {\r\n        var res;\r\n        if ((res = a.start - b.start) === 0) {\r\n            return a.end - b.end;\r\n        } else {\r\n            return res;\r\n        }\r\n    });\r\n};\r\n\r\nconst _mergeMultiLanguages = function(arr) {\r\n    var content, dict, i, idx, key, lang, ret, val, _i, _len, _ref;\r\n    dict = {};\r\n    i = arr.length;\r\n    ret = [];\r\n    for (i = _i = 0, _len = arr.length; _i < _len; i = ++_i) {\r\n        val = arr[i];\r\n        key = val.startTime + ',' + val.endTime;\r\n        if ((idx = dict[key]) !== void 0) {\r\n            _ref = val.languages;\r\n            for (lang in _ref) {\r\n                content = _ref[lang];\r\n                ret[idx].languages[lang] = content;\r\n            }\r\n        } else {\r\n            ret.push(val);\r\n            dict[key] = ret.length - 1;\r\n        }\r\n    }\r\n    return ret;\r\n};\r\n\r\nconst SmiParser = function(sami, options) {\r\n    var definedLangs, duration, errors, getDefinedLangs, getLanguage, key, makeEndTime, parse, result, value, _ref, fixedLang;\r\n    parse = function() {\r\n        var element, error, innerText, isBroken, item, lang, langItem, lineNum, nextStartTagIdx, ret, startTagIdx, startTime, str, tempRet, _ref, _ref1, _ref2;\r\n        error = function(error) {\r\n            var e;\r\n            e = new Error(error);\r\n            e.line = lineNum;\r\n            e.context = element;\r\n            return errors.push(e);\r\n        };\r\n        lineNum = 1;\r\n        ret = [];\r\n        tempRet = {};\r\n        str = sami;\r\n        while (true) {\r\n            startTagIdx = str.search();\r\n            if (nextStartTagIdx <= 0 || startTagIdx < 0) {\r\n                break;\r\n            }\r\n            nextStartTagIdx = str.slice(startTagIdx + 1).search(reCloseSync) + 1;\r\n            if (nextStartTagIdx > 0) {\r\n                element = str.slice(startTagIdx, startTagIdx + nextStartTagIdx);\r\n            } else {\r\n                element = str.slice(startTagIdx);\r\n            }\r\n            lineNum += ((_ref = str.slice(0, startTagIdx).match(reLineEnding)) != null ? _ref.length : void 0) || 0;\r\n            if (isBroken = reBrokenTag.test(element)) {\r\n                error('ERROR_BROKEN_TAGS');\r\n            }\r\n            str = str.slice(startTagIdx + nextStartTagIdx);\r\n            startTime = +((_ref1 = element.match(reStartTime)) != null ? parseFloat(_ref1[1]/1000) : void 0);  //HSLEE ms -> s 로 변경\r\n            if (startTime === null || startTime < 0) {\r\n                error('ERROR_INVALID_TIME');\r\n            }\r\n\r\n            // We don't need complex language. cus SMI doens't obey the rules...\r\n            lang = getLanguage(element);\r\n            //lang = \"ko\";\r\n            if (!lang) {\r\n               // continue;\r\n                error('ERROR_INVALID_LANGUAGE');\r\n            }\r\n            lineNum += ((_ref2 = element.match(reLineEnding)) != null ? _ref2.length : void 0) || 0;\r\n            element = element.replace(reLineEnding, '');\r\n            element = element.replace(reBr, \"\\n\");\r\n            innerText = strip_tags(element).trim();\r\n\r\n            //HSLEE : 20180530 - 우린 랭기지 구분이 필요 없다. 있는거 그대로 보여줄뿐\r\n            item = {\r\n                start: startTime,\r\n                //languages: {},\r\n                text: \"\",\r\n                contents: innerText\r\n            };\r\n            if (lang) {\r\n                //item.languages[lang] = innerText;\r\n                item.text = innerText;\r\n            }\r\n            tempRet[lang] || (tempRet[lang] = []);\r\n            //tempRet[lang].push(item);\r\n            if(item.start){\r\n                tempRet[lang].push(item);\r\n            }\r\n\r\n        }\r\n\r\n        //fixed by hslee 190130\r\n        //SMI was designed for multi language. But global standard (my guess) SRT, VTT doesn't support multi language.\r\n        //This update is handling if SMI has multiple languages.\r\n        fixedLang = fixedLang || getBrowserLanguage();\r\n        let convertedLanguageNames = Object.keys(tempRet);\r\n\r\n        if(convertedLanguageNames && convertedLanguageNames.length > 0){\r\n            if(convertedLanguageNames.indexOf(fixedLang) > -1){\r\n                langItem = tempRet[fixedLang];\r\n            }else{\r\n                langItem = tempRet[convertedLanguageNames.filter(function(name){return name !== \"undefined\"})[0]];\r\n            }\r\n            langItem = _sort(langItem);\r\n            langItem = makeEndTime(langItem);\r\n            ret = ret.concat(langItem);\r\n        }\r\n\r\n        //ret = _mergeMultiLanguages(ret);\r\n        ret = _sort(ret);\r\n        return ret;\r\n    };\r\n    getLanguage = function(element) {\r\n        var className, lang;\r\n        if(!element){return ;}\r\n        for (className in definedLangs) {\r\n            lang = definedLangs[className];\r\n            if (lang.reClassName.test(element)) {\r\n                return lang.lang;\r\n            }\r\n        }\r\n    };\r\n    getDefinedLangs = function() {\r\n        var className, declaration, e, error, lang, matched, parsed, rule, selector, _i, _len, _ref, _ref1, _results;\r\n        try {\r\n            matched = ((_ref = sami.match(reStyle)) != null ? _ref[1] : void 0) || '';\r\n            matched = matched.replace(reComment, '');\r\n            parsed = cssParse(matched);\r\n            _ref1 = parsed.stylesheet.rules;\r\n            _results = [];\r\n            for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\r\n                rule = _ref1[_i];\r\n                selector = rule.selectors[0];\r\n                if ((selector != null ? selector[0] : void 0) === '.') {\r\n                    _results.push((function() {\r\n                        var _j, _len1, _ref2, _results1;\r\n                        _ref2 = rule.declarations;\r\n                        _results1 = [];\r\n                        for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {\r\n                            declaration = _ref2[_j];\r\n                            if (declaration.property.toLowerCase() === 'lang') {\r\n                                className = selector.slice(1);\r\n                                lang = declaration.value.slice(0, 2);\r\n                                if (~langCodes.indexOf(lang)) {\r\n                                    _results1.push(definedLangs[className] = {\r\n                                        lang: lang,\r\n                                        reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(\" + className + \")['\\\"\\S]?\", 'i')\r\n                                    });\r\n                                } else {\r\n                                    throw Error();\r\n                                }\r\n                            } else {\r\n                                _results1.push(void 0);\r\n                            }\r\n                        }\r\n                        return _results1;\r\n                    })());\r\n                } else {\r\n                    _results.push(void 0);\r\n                }\r\n            }\r\n            return _results;\r\n        } catch (_error) {\r\n            e = _error;\r\n            errors.push(error = new Error('ERROR_INVALID_LANGUAGE_DEFINITION'));\r\n        }\r\n    };\r\n    makeEndTime = function(langItem) {\r\n        var i, item, _ref;\r\n        i = langItem.length;\r\n        while (i--) {\r\n            item = langItem[i];\r\n            if ((_ref = langItem[i - 1]) != null) {\r\n                //HSLEE : 이왕이면 SRT 파서와 포맷을 맞추자\r\n                _ref.end = item.start;\r\n            }\r\n            if (!item.contents || item.contents === '&nbsp;') {\r\n                langItem.splice(i, 1);\r\n            } else {\r\n                delete langItem[i].contents;\r\n                if (!item.end) {\r\n                    item.end = item.start + duration;\r\n                }\r\n            }\r\n        }\r\n        return langItem;\r\n    };\r\n    errors = [];\r\n    definedLangs = {\r\n        KRCC: {\r\n            lang: 'ko',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(KRCC)['\\\"\\S]?\", 'i')\r\n        },\r\n        KOCC: {\r\n            lang: 'ko',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(KOCC)['\\\"\\S]?\", 'i')\r\n        },\r\n        KR: {\r\n            lang: 'ko',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(KR)['\\\"\\S]?\", 'i')\r\n        },\r\n        ENCC: {\r\n            lang: 'en',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(ENCC)['\\\"\\S]?\", 'i')\r\n        },\r\n        EGCC: {\r\n            lang: 'en',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(EGCC)['\\\"\\S]?\", 'i')\r\n        },\r\n        EN: {\r\n            lang: 'en',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(EN)['\\\"\\S]?\", 'i')\r\n        },\r\n        JPCC: {\r\n            lang: 'ja',\r\n            reClassName: new RegExp(\"class[^=]*?=[\\\"'\\S]*(JPCC)['\\\"\\S]?\", 'i')\r\n        }\r\n    };\r\n    if (options != null ? options.definedLangs : void 0) {\r\n        _ref = options.definedLangs;\r\n        for (key in _ref) {\r\n            value = _ref[key];\r\n            definedLangs[key] = value;\r\n        }\r\n    }\r\n    duration = (options != null ? options.duration : void 0) || 10; //HSLEE ms -> s 로 변경\r\n    fixedLang = options.fixedLang;\r\n    sami = sami.trim();\r\n    //getDefinedLangs();\r\n    result = parse();\r\n    return {\r\n        result: result,\r\n        errors: errors\r\n    };\r\n};\r\n\r\n\r\nexport default SmiParser;","/**\r\n * Created by hoho on 2018. 7. 4..\r\n */\r\nimport SrtParser from \"api/caption/parser/SrtParser\";\r\nimport WebVTT from 'api/caption/parser/VttParser'\r\nimport VTTCue from 'utils/captions/vttCue'\r\nimport SmiParser from 'api/caption/parser/SmiParser'\r\n\r\nconst Loader = function () {\r\n    const that = {};\r\n\r\n    const convertToVTTCues = function (cues) {\r\n        return cues.map(cue => new VTTCue(cue.start, cue.end, cue.text));\r\n    };\r\n\r\n    that.load = (track, language, successCallback, errorCallback) => {\r\n\r\n        fetch(track.file).then(function (response) {\r\n            if (response.ok) {\r\n\r\n                response.text().then(function (body) {\r\n                    let cues = [];\r\n                    let vttCues = [];\r\n\r\n                    if (body.indexOf('WEBVTT') >= 0) {\r\n                        OvenPlayerConsole.log(\"WEBVTT LOADED\");\r\n                        let parser = new WebVTT.Parser(window, WebVTT.StringDecoder());\r\n                        vttCues = [];\r\n                        parser.oncue = function (cue) {\r\n                            vttCues.push(cue);\r\n                        };\r\n                        parser.onflush = function () {\r\n                            //delete track.xhr;\r\n                            successCallback(vttCues);\r\n                        };\r\n                        // Parse calls onflush internally\r\n                        parser.parse(body);\r\n                    } else if (body.indexOf('SAMI') >= 0) {\r\n                        OvenPlayerConsole.log(\"SAMI LOADED\");\r\n                        let parsedData = SmiParser(body, {fixedLang: language});\r\n                        vttCues = convertToVTTCues(parsedData.result);\r\n                        successCallback(vttCues);\r\n\r\n                    } else {\r\n                        OvenPlayerConsole.log(\"SRT LOADED\");\r\n                        cues = SrtParser(body);\r\n                        vttCues = convertToVTTCues(cues);\r\n                        successCallback(vttCues);\r\n                    }\r\n                }).catch(function (e) {\r\n                    errorCallback(e);\r\n                });\r\n\r\n            } else {\r\n                errorCallback(response.status);\r\n            }\r\n        }).catch(function (e) {\r\n            errorCallback(e);\r\n        });\r\n\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default Loader;\r\n","// STATE\r\nexport const STATE_BUFFERING = \"buffering\";\r\nexport const STATE_IDLE = \"idle\";\r\nexport const STATE_COMPLETE = \"complete\";\r\nexport const STATE_PAUSED = \"paused\";\r\nexport const STATE_PLAYING = \"playing\";\r\nexport const STATE_ERROR = \"error\";\r\nexport const STATE_LOADING = \"loading\";\r\nexport const STATE_STALLED = \"stalled\";\r\n\r\nexport const STATE_AD_LOADING = \"adLoading\";\r\nexport const STATE_AD_LOADED = \"adLoaded\";\r\nexport const STATE_AD_PLAYING = \"adPlaying\";\r\nexport const STATE_AD_PAUSED = \"adPaused\";\r\nexport const STATE_AD_COMPLETE = \"adComplete\";\r\nexport const STATE_AD_ERROR = \"adError\";\r\nexport const PLAYER_AD_CLICK = \"adclick\";\r\n\r\n// PROVIDER\r\nexport const PROVIDER_HTML5 = \"html5\";\r\nexport const PROVIDER_WEBRTC = \"webrtc\";\r\nexport const PROVIDER_DASH = \"dash\";\r\nexport const PROVIDER_HLS = \"hls\";\r\nexport const PROVIDER_RTMP = \"rtmp\";\r\n\r\n// EVENTS\r\nexport const CONTENT_COMPLETE = STATE_COMPLETE;\r\nexport const READY = \"ready\";\r\nexport const DESTROY = \"destroy\";\r\nexport const CONTENT_SEEK = \"seek\";\r\nexport const CONTENT_BUFFER_FULL = \"bufferFull\";\r\nexport const DISPLAY_CLICK = \"displayClick\";\r\nexport const CONTENT_LOADED = \"loaded\";\r\nexport const PLAYLIST_CHANGED = \"playlistChanged\";\r\nexport const CONTENT_SEEKED = \"seeked\";\r\nexport const ALL_PLAYLIST_ENDED = \"allPlaylistEnded\";\r\nexport const NETWORK_UNSTABLED = \"unstableNetwork\";\r\nexport const HLS_PREPARED = \"hlsPrepared\";\r\nexport const HLS_DESTROYED = \"hlsDestroyed\";\r\nexport const DASH_PREPARED = \"dashPrepared\";\r\nexport const DASH_DESTROYED = \"dashDestroyed\";\r\nexport const PEER_CONNECTION_PREPARED = \"peerConnectionPrepared\";\r\nexport const PEER_CONNECTION_DESTROYED = \"peerConnectionDestroyed\";\r\n\r\n\r\n\r\nexport const ERROR = \"error\";\r\n\r\n// STATE OF PLAYER\r\nexport const PLAYER_STATE = \"stateChanged\";\r\nexport const PLAYER_COMPLETE = STATE_COMPLETE;\r\nexport const PLAYER_PAUSE = \"pause\";\r\nexport const PLAYER_PLAY = \"play\";\r\n\r\nexport const PLAYER_CLICKED = \"clicked\";\r\nexport const PLAYER_RESIZED = \"resized\";\r\nexport const PLAYER_LOADING = \"loading\";\r\nexport const PLAYER_FULLSCREEN_REQUEST = \"fullscreenRequested\";\r\nexport const PLAYER_FULLSCREEN_CHANGED = \"fullscreenChanged\";\r\nexport const PLAYER_WARNING = \"warning\";\r\n\r\nexport const AD_CHANGED = \"adChanged\";\r\nexport const AD_TIME = \"adTime\";\r\nexport const CONTENT_BUFFER = \"bufferChanged\";\r\nexport const CONTENT_TIME = \"time\";\r\nexport const CONTENT_RATE_CHANGE = \"ratechange\";\r\nexport const CONTENT_VOLUME = \"volumeChanged\";\r\nexport const CONTENT_MUTE = \"mute\";\r\nexport const CONTENT_META = \"metaChanged\";\r\nexport const CONTENT_SOURCE_CHANGED = \"sourceChanged\";\r\nexport const CONTENT_LEVEL_CHANGED = \"qualityLevelChanged\";\r\nexport const CONTENT_DURATION_CHANGED = \"durationChanged\";\r\nexport const PLAYBACK_RATE_CHANGED = \"playbackRateChanged\";\r\nexport const CONTENT_CAPTION_CUE_CHANGED = \"cueChanged\";\r\nexport const CONTENT_CAPTION_CHANGED = \"captionChanged\";\r\nexport const CONTENT_TIME_MODE_CHANGED = \"timeDisplayModeChanged\";\r\nexport const OME_P2P_MODE = \"p2pMode\";\r\nexport const AUDIO_TRACK_CHANGED = \"audioTrackChanged\";\r\n\r\n\r\nexport const AD_CLIENT_GOOGLEIMA = \"googleima\";\r\nexport const AD_CLIENT_VAST = \"vast\";\r\n\r\n\r\nexport const INIT_UNKNWON_ERROR = 100;\r\nexport const INIT_UNSUPPORT_ERROR = 101;\r\nexport const INIT_RTMP_SETUP_ERROR = 102;\r\nexport const INIT_DASH_UNSUPPORT = 103;\r\nexport const INIT_ADS_ERROR = 104;\r\nexport const INIT_DASH_FAIL = 105;\r\nexport const INIT_HLSJS_FAIL = 106;\r\nexport const PLAYER_UNKNWON_ERROR = 300;\r\nexport const PLAYER_UNKNWON_OPERATION_ERROR = 301;\r\nexport const PLAYER_UNKNWON_NETWORK_ERROR = 302;\r\nexport const PLAYER_UNKNWON_DECODE_ERROR = 303;\r\nexport const PLAYER_FILE_ERROR = 304;\r\nexport const PLAYER_CAPTION_ERROR = 305;\r\nexport const PLAYER_BAD_REQUEST_ERROR = 306;\r\nexport const PLAYER_AUTH_FAILED_ERROR = 307;\r\nexport const PLAYER_NOT_ACCEPTABLE_ERROR = 308;\r\nexport const PLAYER_WEBRTC_WS_ERROR = 501;\r\nexport const PLAYER_WEBRTC_ADD_ICECANDIDATE_ERROR = 502;\r\nexport const PLAYER_WEBRTC_SET_REMOTE_DESC_ERROR = 503;\r\nexport const PLAYER_WEBRTC_CREATE_ANSWER_ERROR = 504;\r\nexport const PLAYER_WEBRTC_SET_LOCAL_DESC_ERROR = 505;\r\nexport const PLAYER_WEBRTC_INTERNAL_ERROR = 506;\r\nexport const PLAYER_WEBRTC_NETWORK_SLOW = 510;\r\nexport const PLAYER_WEBRTC_UNEXPECTED_DISCONNECT = 511;\r\nexport const PLAYER_WEBRTC_TIMEOUT = 512;\r\n\r\nexport const WARN_MSG_MUTEDPLAY = \"Please touch here to turn on the sound.\";\r\n\r\n\r\nexport const UI_ICONS = {\r\n    volume_mute : \"volume-mute\",\r\n    op_warning : \"op-warning\"\r\n};\r\n\r\n\r\nexport const ERRORS = {codes : \"\"};\r\n\r\n\r\nexport const SYSTEM_TEXT = [\r\n    {\r\n        \"lang\" : \"en\",\r\n        \"ui\" : {\r\n            \"context\" : \"About OvenPlayer\",\r\n            \"controls\" : {\r\n                \"live\" : \"Live Streaming\",\r\n                \"low_latency_live\" : \"Sub-Second Latency Streaming\",\r\n                \"low_latency_p2p\" : \"Sub-Second Latency P2P\",\r\n            },\r\n            \"playlist\" : \"Playlist\",\r\n            \"setting\" : {\r\n                \"title\" : \"Settings\",\r\n                \"speed\" : \"Speed\",\r\n                \"speedUnit\" : \"x\",\r\n                \"source\" : \"Source\",\r\n                \"quality\" : \"Quality\",\r\n                \"audioTrack\" : \"Audio\",\r\n                \"caption\" : \"Caption\",\r\n                \"display\" : \"Display\"\r\n            }\r\n        },\r\n        \"api\" : {\r\n            \"message\" : {\r\n                \"muted_play\" : \"Please touch here to turn on the sound.\"\r\n            },\r\n            \"error\": {\r\n                100: {\r\n                    \"code\": 100,\r\n                    \"message\": \"Can not load due to unknown reasons.\",\r\n                    \"reason\": \"Can not load due to unknown reasons.\"\r\n                },\r\n                101: {\r\n                    \"code\": 101,\r\n                    \"message\": \"Can not load due to playable media not found.\",\r\n                    \"reason\": \"Can not load due to playable media not found.\"\r\n                },\r\n                102: {\r\n                    \"code\": 102,\r\n                    \"message\": \"Flash fetching process aborted. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>\",\r\n                    \"reason\": \"It looks like not found swf or your environment is localhost.\"\r\n                },\r\n                103: {\r\n                    \"code\": 103,\r\n                    \"message\": \"Can not load due to dash.js. Please use the latest dash.js.\",\r\n                    \"reason\": \"dash.js version is old.\"\r\n                },\r\n                104: {\r\n                    \"code\": 104,\r\n                    \"message\": \"Can not load due to google ima for Ads. \",\r\n                    \"reason\": \"Please check the google ima library.\"\r\n                },\r\n                105: {\r\n                    \"code\": 105,\r\n                    \"message\": \"Error initializing DASH.\",\r\n                    \"reason\": \"Error initializing DASH.\"\r\n                },\r\n                106: {\r\n                    \"code\": 106,\r\n                    \"message\": \"Error initializing HLS.\",\r\n                    \"reason\": \"Error initializing HLS.\"\r\n                },\r\n                300: {\r\n                    \"code\": 300,\r\n                    \"message\": \"Can not play due to unknown reasons.\",\r\n                    \"reason\": \"Can not play due to unknown reasons.\"\r\n                },\r\n                301: {\r\n                    \"code\": 301,\r\n                    \"message\": \"Fetching process aborted by user.\",\r\n                    \"reason\": \"Fetching process aborted by user.\"\r\n                },\r\n                302: {\r\n                    \"code\": 302,\r\n                    \"message\": \"Some of the media could not be downloaded due to a network error.\",\r\n                    \"reason\": \"Error occurred when downloading.\"\r\n                },\r\n                303: {\r\n                    \"code\": 303,\r\n                    \"message\": \"Unable to load media. This may be due to a server or network error, or due to an unsupported format.\",\r\n                    \"reason\": \"Error occurred when decoding.\"\r\n                },\r\n                304: {\r\n                    \"code\": 304,\r\n                    \"message\": \"Media playback has been canceled. It looks like your media is corrupted or your browser does not support the features your media uses.\",\r\n                    \"reason\": \"Media playback not supported.\"\r\n                },\r\n                305: {\r\n                    \"code\": 305,\r\n                    \"message\": \"Can not load captions due to unknown reasons.\",\r\n                    \"reason\": \"Can not load captions due to unknown reasons.\"\r\n                },\r\n                306: {\r\n                    \"code\": 306,\r\n                    \"message\": \"Unable to load media. This may be due to a server or network error, or due to an unsupported format.\",\r\n                    \"reason\": \"The server cannot or will not process the request.\"\r\n                },\r\n                307: {\r\n                    \"code\": 307,\r\n                    \"message\": \"Unable to load media. This may be due to a server or network error, or due to an unsupported format.\",\r\n                    \"reason\": \"The server refused the request.\"\r\n                },\r\n                308: {\r\n                    \"code\": 308,\r\n                    \"message\": \"Unable to load media. This may be due to a server or network error, or due to an unsupported format.\",\r\n                    \"reason\": \"The server do not accept the request.\"\r\n                },\r\n                501: {\r\n                    \"code\": 501,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebSocket connection failed.\"\r\n                },\r\n                502: {\r\n                    \"code\": 502,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebRTC addIceCandidate failed.\"\r\n                },\r\n                503: {\r\n                    \"code\": 503,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebRTC setRemoteDescription failed.\"\r\n                },\r\n                504: {\r\n                    \"code\": 504,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebRTC peer createOffer failed.\"\r\n                },\r\n                505: {\r\n                    \"code\": 505,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebRTC setLocalDescription failed.\"\r\n                },\r\n                506: {\r\n                    \"code\": 506,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"WebRTC internal error.\"\r\n                },\r\n                510: {\r\n                    \"code\": 510,\r\n                    \"message\": \"Network connection is unstable. Check the network connection.\",\r\n                    \"reason\": \"Network is slow.\"\r\n                },\r\n                511: {\r\n                    \"code\": 511,\r\n                    \"message\": \"Connection with low-latency(OME) terminated unexpectedly.\",\r\n                    \"reason\": \"Unexpected end of connection.\"\r\n                },\r\n                512: {\r\n                    \"code\": 512,\r\n                    \"message\": \"Connection with low-latency(OME) server failed.\",\r\n                    \"reason\": \"Connection timeout.\"\r\n                }\r\n            }\r\n        }\r\n    },\r\n    {\r\n        \"lang\" : \"ko\",\r\n        \"ui\" : {\r\n            \"context\" : \"오븐플레이어에 관하여\",\r\n            \"controls\" : {\r\n                \"live\" : \"라이브\",\r\n                \"low_latency_live\" : \"초저지연 라이브\",\r\n                \"low_latency_p2p\" : \"초저지연 P2P\",\r\n            },\r\n            \"playlist\" : \"플레이리스트\",\r\n            \"setting\" : {\r\n                \"title\" : \"설정\",\r\n                \"speed\" : \"재생 속도\",\r\n                \"speedUnit\" : \"x\",\r\n                \"source\" : \"소스\",\r\n                \"quality\" : \"품질\",\r\n                \"audioTrack\" : \"오디오\",\r\n                \"caption\" : \"자막\",\r\n                \"display\" : \"표시\"\r\n            }\r\n        },\r\n        \"api\" : {\r\n            \"message\" : {\r\n                \"muted_play\" : \"눌러서 소리 켜기\"\r\n            },\r\n            \"error\": {\r\n                100: {\r\n                    \"code\": 100,\r\n                    \"message\": \"알 수 없는 이유로 로드 할 수 없습니다.\",\r\n                    \"reason\": \"알 수 없는 이유로 로드 할 수 없습니다.\"\r\n                },\r\n                101: {\r\n                    \"code\": 101,\r\n                    \"message\": \"지원되는 미디어를 찾지 못해 로드 할 수 없습니다.\",\r\n                    \"reason\": \"Can not load due to playable media not found.\"\r\n                },\r\n                102: {\r\n                    \"code\": 102,\r\n                    \"message\": \"플레시 로드가 중단 되었습니다. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>\",\r\n                    \"reason\": \"It looks like not found swf or your environment is localhost.\"\r\n                },\r\n                103: {\r\n                    \"code\": 103,\r\n                    \"message\": \"DashJS로 인해 로드 할 수 없습니다. 최신 dash.js를 사용해 주세요.\",\r\n                    \"reason\": \"dash.js version is old.\"\r\n                },\r\n                104: {\r\n                    \"code\": 104,\r\n                    \"message\": \"Google IMA 라이브러리가 없어 로드 할 수 없습니다.\",\r\n                    \"reason\": \"Please check the google ima library.\"\r\n                },\r\n                105: {\r\n                    \"code\": 105,\r\n                    \"message\": \"DASH 초기화 중 오류가 발생했습니다.\",\r\n                    \"reason\": \"Error initializing DASH.\"\r\n                },\r\n                106: {\r\n                    \"code\": 106,\r\n                    \"message\": \"HLS 초기화 중 오류가 발생했습니다.\",\r\n                    \"reason\": \"Error initializing HLS.\"\r\n                },\r\n                300: {\r\n                    \"code\": 300,\r\n                    \"message\": \"알 수 없는 이유로 재생할 수 없습니다.\",\r\n                    \"reason\": \"Can not play due to unknown reasons.\"\r\n                },\r\n                301: {\r\n                    \"code\": 301,\r\n                    \"message\": \"사용자에 의한 프로세스 중단.\",\r\n                    \"reason\": \"Fetching process aborted by user.\"\r\n                },\r\n                302: {\r\n                    \"code\": 302,\r\n                    \"message\": \"네트워크 오류로 인해 일부 미디어를 다운로드 할 수 없습니다.\",\r\n                    \"reason\": \"Error occurred when downloading.\"\r\n                },\r\n                303: {\r\n                    \"code\": 303,\r\n                    \"message\": \"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.\",\r\n                    \"reason\": \"Error occurred when decoding.\"\r\n                },\r\n                304: {\r\n                    \"code\": 304,\r\n                    \"message\": \"미디어 재생이 취소되었습니다. 미디어가 손상되었거나 브라우저가 미디어에서 사용하는 기능을 지원하지 않는 것 같습니다.\",\r\n                    \"reason\": \"Media playback not supported.\"\r\n                },\r\n                305: {\r\n                    \"code\": 305,\r\n                    \"message\": \"알 수 없는 이유로 자막을 로드 할 수 없습니다.\",\r\n                    \"reason\": \"Can not load captions due to unknown reasons.\"\r\n                },\r\n                306: {\r\n                    \"code\": 306,\r\n                    \"message\": \"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.\",\r\n                    \"reason\": \"The server cannot or will not process the request.\"\r\n                },\r\n                307: {\r\n                    \"code\": 307,\r\n                    \"message\": \"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.\",\r\n                    \"reason\": \"The server refused the request.\"\r\n                },\r\n                308: {\r\n                    \"code\": 308,\r\n                    \"message\": \"미디어를 로드 할 수 없습니다. 서버 또는 네트워크 오류 또는 지원되지 않는 형식으로 인해 발생할 수 있습니다.\",\r\n                    \"reason\": \"The server do not accept the request.\"\r\n                },\r\n                501: {\r\n                    \"code\": 501,\r\n                    \"message\": \"웹소켓 연결 실패\",\r\n                    \"reason\": \"WebSocket connection failed.\"\r\n                },\r\n                502: {\r\n                    \"code\": 502,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"WebRTC addIceCandidate failed.\"\r\n                },\r\n                503: {\r\n                    \"code\": 503,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"WebRTC setRemoteDescription failed.\"\r\n                },\r\n                504: {\r\n                    \"code\": 504,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"WebRTC peer createOffer failed.\"\r\n                },\r\n                505: {\r\n                    \"code\": 505,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"WebRTC setLocalDescription failed.\"\r\n                },\r\n                506: {\r\n                    \"code\": 506,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"WebRTC internal error.\"\r\n                },\r\n                510: {\r\n                    \"code\": 510,\r\n                    \"message\": \"네트워크 연결이 불안정합니다. 네트워크 연결을 확인하십시오.\",\r\n                    \"reason\": \"Network is slow.\"\r\n                },\r\n                511: {\r\n                    \"code\": 511,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"Unexpected end of connection.\"\r\n                },\r\n                512: {\r\n                    \"code\": 512,\r\n                    \"message\": \"저지연(OME) 서버와 연결에 실패했습니다.\",\r\n                    \"reason\": \"Connection timeout.\"\r\n                }\r\n            }\r\n        }\r\n    },\r\n    {\r\n        \"lang\" : \"pl\",\r\n        \"ui\" : {\r\n            \"context\" : \"O OvenPlayer\",\r\n            \"controls\" : {\r\n                \"live\" : \"Transmisja na żywo\",\r\n                \"low_latency_live\" : \"Transmisja z niskim opóźnieniem\",\r\n                \"low_latency_p2p\" : \"Transmisja z niskim opóźnieniem P2P\",\r\n            },\r\n            \"playlist\" : \"Playlista\",\r\n            \"setting\" : {\r\n                \"title\" : \"Ustawienia\",\r\n                \"speed\" : \"Prędkość\",\r\n                \"speedUnit\" : \"x\",\r\n                \"source\" : \"Źrodło\",\r\n                \"quality\" : \"Jakość\",\r\n                \"audioTrack\" : \"Audio\",\r\n                \"caption\" : \"Podtytuł\",\r\n                \"display\" : \"Wyświetlacz\"\r\n            }\r\n        },\r\n        \"api\" : {\r\n            \"message\" : {\r\n                \"muted_play\" : \"Naciśnij tutaj, aby aktywować dźwięk\"\r\n            },\r\n            \"error\": {\r\n                100: {\r\n                    \"code\": 100,\r\n                    \"message\": \"Nie można załadować z nieznanego powodu.\",\r\n                    \"reason\": \"Can not load due to unknown reasons.\"\r\n                },\r\n                101: {\r\n                    \"code\": 101,\r\n                    \"message\": \"Nie można załadować, ponieważ nie znaleziono multimediów, który można odtworzyć.\",\r\n                    \"reason\": \"Can not load due to playable media not found.\"\r\n                },\r\n                102: {\r\n                    \"code\": 102,\r\n                    \"message\": \"Flash fetching process aborted. </br><a href='http://www.adobe.com/go/getflashplayer' target='_self'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player'></a>\",\r\n                    \"reason\": \"It looks like not found swf or your environment is localhost.\"\r\n                },\r\n                103: {\r\n                    \"code\": 103,\r\n                    \"message\": \"Nie można załadować, ponieważ wersja dash.js jest za stara.\",\r\n                    \"reason\": \"dash.js version is old.\"\r\n                },\r\n                104: {\r\n                    \"code\": 104,\r\n                    \"message\": \"Can not load due to google ima for Ads. \",\r\n                    \"reason\": \"Please check the google ima library.\"\r\n                },\r\n                105: {\r\n                    \"code\": 105,\r\n                    \"message\": \"Nie można załadować, nie znaleziono DASH.\",\r\n                    \"reason\": \"Error initializing DASH.\"\r\n                },\r\n                106: {\r\n                    \"code\": 106,\r\n                    \"message\": \"Nie można załadować, nie znaleziono hlsjs.\",\r\n                    \"reason\": \"Error initializing HLS\"\r\n                },\r\n                300: {\r\n                    \"code\": 300,\r\n                    \"message\": \"Nie można odtworzyć z nieznanego powodu.\",\r\n                    \"reason\": \"Can not play due to unknown reasons.\"\r\n                },\r\n                301: {\r\n                    \"code\": 301,\r\n                    \"message\": \"Proces pobierania przerwany przez użytkownika.\",\r\n                    \"reason\": \"Fetching process aborted by user.\"\r\n                },\r\n                302: {\r\n                    \"code\": 302,\r\n                    \"message\": \"Nie udało się pobrać niektórych multimediów z powodu błędu sieci.\",\r\n                    \"reason\": \"Error occurred when downloading.\"\r\n                },\r\n                303: {\r\n                    \"code\": 303,\r\n                    \"message\": \"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.\",\r\n                    \"reason\": \"Error occurred when decoding.\"\r\n                },\r\n                304: {\r\n                    \"code\": 304,\r\n                    \"message\": \"Odtwarzanie zostało anulowane. Wygląda na to, że plik jest uszkodzony lub Twoja przeglądarka nie obsługuje tego pliku.\",\r\n                    \"reason\": \"Media playback not supported.\"\r\n                },\r\n                305: {\r\n                    \"code\": 305,\r\n                    \"message\": \"Nie można wczytać napisów z nieznanego powodu.\",\r\n                    \"reason\": \"Can not load captions due to unknown reasons.\"\r\n                },\r\n                306: {\r\n                    \"code\": 306,\r\n                    \"message\": \"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.\",\r\n                    \"reason\": \"The server cannot or will not process the request.\"\r\n                },\r\n                307: {\r\n                    \"code\": 307,\r\n                    \"message\": \"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.\",\r\n                    \"reason\": \"The server refused the request.\"\r\n                },\r\n                308: {\r\n                    \"code\": 308,\r\n                    \"message\": \"Nie udało się załadować niektórych multimediów. Może być to spowodowane problemem z serwerem, siecią lub niewspieranym formatem.\",\r\n                    \"reason\": \"The server do not accept the request.\"\r\n                },\r\n                501: {\r\n                    \"code\": 501,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebSocket connection failed.\"\r\n                },\r\n                502: {\r\n                    \"code\": 502,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebRTC addIceCandidate failed.\"\r\n                },\r\n                503: {\r\n                    \"code\": 503,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebRTC setRemoteDescription failed.\"\r\n                },\r\n                504: {\r\n                    \"code\": 504,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebRTC peer createOffer failed.\"\r\n                },\r\n                505: {\r\n                    \"code\": 505,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebRTC setLocalDescription failed.\"\r\n                },\r\n                506: {\r\n                    \"code\": 506,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"WebRTC internal error.\"\r\n                },\r\n                510: {\r\n                    \"code\": 510,\r\n                    \"message\": \"Połączenie sieciowe jest niestabilne. Sprawdź swoją sieć.\",\r\n                    \"reason\": \"Network is slow.\"\r\n                },\r\n                511: {\r\n                    \"code\": 511,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nieoczekiwanie zakończone.\",\r\n                    \"reason\": \"Unexpected end of connection.\"\r\n                },\r\n                512: {\r\n                    \"code\": 512,\r\n                    \"message\": \"Połączenie z serwerem niskiego opóźnienia (OME) nie powiodło się.\",\r\n                    \"reason\": \"Connection timeout.\"\r\n                }\r\n            }\r\n        }\r\n    }\r\n];\r\n","/**\r\n * Created by hoho on 2018. 5. 17..\r\n */\r\nimport CaptionLoader from 'api/caption/Loader';\r\nimport {READY, ERRORS, ERROR, PLAYER_CAPTION_ERROR, CONTENT_META, CONTENT_TIME, CONTENT_CAPTION_CUE_CHANGED, CONTENT_CAPTION_CHANGED} from \"api/constants\";\r\nimport _ from \"utils/underscore\";\r\n\r\nconst isSupport = function(kind){\r\n    return kind === 'subtitles' || kind === 'captions';\r\n};\r\n\r\nconst Manager = function(api, playlistIndex){\r\n\r\n    const that = {};\r\n    let captionList = [];\r\n    let currentCaptionIndex = -1;\r\n\r\n    let captionLoader = CaptionLoader();\r\n    let isFisrtLoad = true;\r\n    let isShowing = false;\r\n\r\n    OvenPlayerConsole.log(\"Caption Manager >> \", playlistIndex);\r\n\r\n\r\n    let bindTrack = function(track, vttCues){\r\n        track.data = vttCues || [];\r\n        track.name = track.label || track.name || track.language;\r\n        track.id = (function(track, tracksCount) {\r\n            var trackId;\r\n            var prefix = track.kind || 'cc';\r\n            if (track.default || track.defaulttrack) {\r\n                trackId = 'default';\r\n\r\n            } else {\r\n                trackId = track.id || (prefix + tracksCount);\r\n            }\r\n            if(isFisrtLoad){\r\n                //This execute only on. and then use flushCaptionList(lastCaptionIndex);\r\n                changeCurrentCaption(captionList.length||0);\r\n                isFisrtLoad = false;\r\n\r\n            }\r\n            return trackId;\r\n        })(track, captionList.length);\r\n\r\n        captionList.push(track);\r\n        return track.id;\r\n    };\r\n    let changeCurrentCaption = function(index){\r\n        currentCaptionIndex = index;\r\n        api.trigger(CONTENT_CAPTION_CHANGED, currentCaptionIndex);\r\n    };\r\n    if(api.getConfig().playlist && api.getConfig().playlist.length > 0){\r\n        let playlist = api.getConfig().playlist[playlistIndex];\r\n\r\n        if(playlist && playlist.tracks && playlist.tracks.length > 0){\r\n            for(let i = 0; i < playlist.tracks.length; i ++){\r\n                const track = playlist.tracks[i];\r\n\r\n                if(isSupport(track.kind) && ! _.findWhere(track, {file : track.file})){\r\n                    //that.flushCaptionList(currentCaptionIndex);\r\n\r\n                    captionLoader.load(track, track.lang, function(vttCues){\r\n                        if(vttCues && vttCues.length > 0){\r\n                            let captionId = bindTrack(track, vttCues);\r\n                        }\r\n                    }, function(error){\r\n                        let tempError = ERRORS.codes[PLAYER_CAPTION_ERROR];\r\n                        tempError.error = error;\r\n                        api.trigger(ERROR, tempError);\r\n                    });\r\n                }\r\n            }\r\n\r\n        }\r\n    }\r\n\r\n    api.on(CONTENT_TIME, function(meta){\r\n        let position = meta.position;\r\n        if(currentCaptionIndex > -1 && captionList[currentCaptionIndex]){\r\n            let currentCues = _.filter(captionList[currentCaptionIndex].data, function (cue) {\r\n                return position >= (cue.startTime) && ( (!cue.endTime || position) <= cue.endTime);\r\n            });\r\n            if(currentCues && currentCues.length > 0){\r\n                api.trigger(CONTENT_CAPTION_CUE_CHANGED, currentCues[0]);\r\n            }\r\n        }\r\n\r\n    });\r\n    that.flushCaptionList = (lastCaptionIndex) =>{\r\n        captionList = [];\r\n        changeCurrentCaption(lastCaptionIndex);\r\n        //currentCaptionIndex = lastCaptionIndex;\r\n    };\r\n    that.getCaptionList = () =>{\r\n        return captionList||[];\r\n    };\r\n    that.getCurrentCaption = () =>{\r\n        return currentCaptionIndex;\r\n    };\r\n    that.setCurrentCaption = (_index) =>{\r\n        if(_index > -2 && _index < captionList.length){\r\n            changeCurrentCaption(_index);\r\n        }else{\r\n            return null;\r\n        }\r\n    };\r\n    that.addCaption = (track) =>{\r\n        if(isSupport(track.kind) && ! _.findWhere(captionLoader, {file : track.file})){\r\n            captionLoader.load(track, function(vttCues){\r\n                if(vttCues && vttCues.length > 0){\r\n                    bindTrack(track, vttCues);\r\n                }\r\n            }, function(error){\r\n                let tempError = errors[PLAYER_CAPTION_ERROR];\r\n                tempError.error = error;\r\n                api.trigger(ERROR, tempError);\r\n            });\r\n        }\r\n    };\r\n    that.removeCaption = (index) => {\r\n        if(index > -1 && index < captionList.length){\r\n            captionList.splice(index, 1);\r\n            return captionList;\r\n        }else{\r\n            return null;\r\n        }\r\n    };\r\n    that.destroy = () => {\r\n        captionList = [];\r\n        captionLoader = null;\r\n        api.off(CONTENT_TIME, null, that);\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\n\r\n\r\n\r\nexport default Manager;\r\n","/**\r\n * Created by hoho on 2018. 7. 3..\r\n */\r\n\r\n/**\r\n * @brief   This module provide custom events.\r\n * @param   object    An object that requires custom events.\r\n *\r\n * */\r\n\r\nconst EventEmitter = function(object){\r\n    let that = object;\r\n    let _events =[];\r\n\r\n    const triggerEvents = function(events, args, context){\r\n        let i = 0;\r\n        let length = events.length;\r\n        for(i = 0; i < length; i ++){\r\n            let event = events[i];\r\n            event.listener.apply( ( event.context || context ), args);\r\n        }\r\n    };\r\n\r\n    that.on = function(name, listener, context){\r\n        (_events[name] || (_events[name]=[]) ).push({ listener: listener  , context : context});\r\n        return that;\r\n    };\r\n    that.trigger = function(name){\r\n        if(!_events){\r\n            return false;\r\n        }\r\n        const args = [].slice.call(arguments, 1);\r\n        const events = _events[name];\r\n        const allEvents = _events.all;\r\n\r\n        if(events){\r\n            triggerEvents(events, args, that);\r\n        }\r\n        if(allEvents){\r\n            triggerEvents(allEvents, arguments, that);\r\n        }\r\n    };\r\n    that.off = function(name, listener, context){\r\n        if(!_events){\r\n            return false;\r\n        }\r\n\r\n        if (!name && !listener && !context)  {\r\n            _events = [];\r\n            return that;\r\n        }\r\n\r\n        const names = name ? [name] : Object.keys(_events);\r\n\r\n        for (let i = 0, l = names.length; i < l; i++) {\r\n            name = names[i];\r\n            const events = _events[name];\r\n            if (events) {\r\n                const retain = _events[name] = [];\r\n                if (listener  || context) {\r\n                    for (let j = 0, k = events.length; j < k; j++) {\r\n                        const event = events[j];\r\n                        if ((listener && listener !== event.listener && listener !== event.listener.listener  && listener !== event.listener._listener)\r\n                            ||(context && context !== event.context)\r\n                        ) {\r\n                            retain.push(event);\r\n                        }\r\n                    }\r\n                }\r\n                if (!retain.length) {\r\n                    delete _events[name];\r\n                }\r\n            }\r\n        }\r\n        return that;\r\n    };\r\n    that.once = function(name, listener, context){\r\n        let count = 0;\r\n        const onceCallback = function() {\r\n            if (count++) {\r\n                return;\r\n            }\r\n            that.off(name, onceCallback);\r\n            listener.apply(that, arguments);\r\n        };\r\n        onceCallback._listener = listener;\r\n        return that.on(name, onceCallback, context);\r\n    };\r\n\r\n    return that;\r\n}\r\n\r\nexport default EventEmitter;\r\n","/**\r\n * Created by hoho on 2018. 7. 23..\r\n */\r\nimport _ from \"utils/underscore\";\r\nimport dom from 'utils/polyfills/dom.js';\r\n\r\n/**\r\n * @brief   It was replace jquery's selector. It Often used by OvenTemplate. (/view/engine/OvenTemplate.js)\r\n * @param   selectorOrElement  string or element\r\n *\r\n * */\r\n\r\n\r\nconst La$ = function(selectorOrElement){\r\n    const that = {};\r\n\r\n    let $element = null;\r\n\r\n    const returnNode = function($element , selector){\r\n        let nodeList =  $element.querySelectorAll(selector);\r\n        if(nodeList.length > 1){\r\n            return nodeList;\r\n        }else{\r\n            return nodeList[0];\r\n        }\r\n\r\n    };\r\n\r\n    if( _.isElement(selectorOrElement) || _.every(selectorOrElement, function(item){return _.isElement(item)})){\r\n        $element = selectorOrElement;\r\n    }else if(selectorOrElement === \"document\"){\r\n        $element = document;\r\n    }else if(selectorOrElement === \"window\"){\r\n        $element = window;\r\n    }else{\r\n        $element = returnNode(document, selectorOrElement);\r\n    }\r\n\r\n\r\n    if(!$element){\r\n        return null;\r\n    }\r\n\r\n    /*EFFECTS*/\r\n\r\n    that.show = () =>{\r\n        $element.style.display = 'block';\r\n    };\r\n\r\n    that.hide = () =>{\r\n        $element.style.display = 'none';\r\n    };\r\n\r\n    /*ELEMENTS*/\r\n\r\n    that.addClass = (name) =>{\r\n        if($element.classList){\r\n            $element.classList.add(name);\r\n        }else{\r\n            let classNames = $element.className.split(\" \");\r\n            if(classNames.indexOf(name) === -1){\r\n                $element.className += \" \" + name;\r\n            }\r\n        }\r\n    };\r\n\r\n    that.after = (htmlString) => {\r\n        $element.insertAdjacentHTML('afterend', htmlString);\r\n    };\r\n\r\n    that.append = (htmlString) => {\r\n        $element.appendChild(htmlString);\r\n    };\r\n\r\n    that.before = (htmlString) => {\r\n        $element.insertAdjacentHTML('beforebegin', htmlString);\r\n    };\r\n\r\n    that.children = () => {\r\n        return $element.children || [];\r\n    };\r\n\r\n    //The contains() method returns a Boolean value indicating whether a node is a descendant of a specified node.\r\n    //A descendant can be a child, grandchild, great-grandchild, and so on.\r\n    that.contains = (elChild) => {\r\n        return $element !== elChild && $element.contains(elChild);\r\n    };\r\n\r\n    that.empty = () => {\r\n        $element.innerHTML = \"\";\r\n    };\r\n\r\n\r\n    that.find = (selector) =>{\r\n        return La$(returnNode($element, selector));\r\n    };\r\n\r\n    that.css = (name, value) => {\r\n        if(value){\r\n            if($element.length > 0){\r\n                $element.forEach(function(element){\r\n                    element.style[name] = value;\r\n                })\r\n            }else{\r\n                $element.style[name] = value;\r\n            }\r\n        }else{\r\n            return $element.style[name];\r\n        }\r\n\r\n    };\r\n\r\n\r\n\r\n    that.removeClass = (name) =>{\r\n        if ($element.classList){\r\n            $element.classList.remove(name);\r\n        }else{\r\n            $element.className = $element.className.replace(new RegExp('(^|\\\\b)' + name.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\r\n\r\n        }\r\n    };\r\n\r\n    that.removeAttribute = (attrName) => {\r\n        $element.removeAttribute(attrName);\r\n    };\r\n\r\n\r\n\r\n    /*that.append = (htmlCode) =>{\r\n        $element.innerHTML += htmlCode;\r\n    };*/\r\n\r\n    that.text = (text) => { //IE8+\r\n        if(text === undefined){\r\n            return $element.textContent;\r\n        }else{\r\n            $element.textContent = text;\r\n        }\r\n    };\r\n    that.html = (htmlString) => {\r\n        $element.innerHTML = htmlString;\r\n    };\r\n    that.hasClass = (name) => { //IE8+\r\n        if($element.classList){\r\n            return $element.classList.contains(name);\r\n        }else{\r\n            return new RegExp('(^| )' + name + '( |$)', 'gi').test($element.name);\r\n        }\r\n    };\r\n\r\n    that.is = ($targetElement) => {\r\n        /*var matches = function(el, selector) {\r\n            return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector);\r\n        };\r\n\r\n        matches(el, '.my-class');*/\r\n        return $element === $targetElement;\r\n    };\r\n\r\n    that.offset = () =>{    //IE8+\r\n        const rect = $element.getBoundingClientRect();\r\n\r\n        return {\r\n            top: rect.top + document.body.scrollTop,\r\n            left: rect.left + document.body.scrollLeft\r\n        }\r\n    };\r\n\r\n    that.width = () => {    //IE8+\r\n        return $element.clientWidth;\r\n    };\r\n\r\n    that.height = () => {   //IE8+\r\n        return $element.clientHeight;\r\n    };\r\n\r\n    that.attr = (attr) => {\r\n        return $element.getAttribute(attr);\r\n    };\r\n\r\n    that.replace = (html) => {\r\n        $element.replaceWith(html);\r\n    };\r\n\r\n\r\n    that.remove = () => {\r\n        if($element.length > 1){\r\n            $element.parentElement.removeChild($element);\r\n        }else{\r\n            $element.remove();\r\n        }\r\n\r\n    };\r\n\r\n    that.removeChild = (element) => {\r\n        if(element){\r\n            $element.removeChild(element);\r\n        }else{\r\n            while ($element.hasChildNodes()) {\r\n                $element.removeChild($element.firstChild);\r\n            }\r\n        }\r\n\r\n    };\r\n\r\n    that.get = () => {\r\n        return $element;\r\n    };\r\n\r\n    that.closest = (selectorString) => {\r\n\r\n        $element.closest = function (s) {\r\n\r\n            let el = $element;\r\n\r\n            do {\r\n\r\n                if (el.matches(s)) {\r\n                    return el;\r\n                }\r\n\r\n                el = el.parentElement || el.parentNode;\r\n\r\n            } while (el !== null && el.nodeType === 1);\r\n\r\n            return null;\r\n        };\r\n\r\n        let closestElement = $element.closest(selectorString);\r\n\r\n        if(closestElement){\r\n            return La$(closestElement);\r\n        }else{\r\n            return null;\r\n        }\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default La$;\r\n","import {extractExtension} from \"utils/strings\";\r\n\r\nexport const isRtmp = function (file, type) {\r\n    if (file) {\r\n        return (file.indexOf('rtmp:') == 0 || type == 'rtmp');\r\n    }\r\n};\r\nexport const isWebRTC = function (file, type) {\r\n    if (file) {\r\n        return (file.indexOf('ws:') === 0 || file.indexOf('wss:') === 0 || type === 'webrtc');\r\n    }\r\n    return false;\r\n};\r\nexport const isHls = function (file, type) {\r\n    if (file) {\r\n        return (type === 'hls' || type === 'm3u8' || type === 'application/vnd.apple.mpegurl' || extractExtension(file) == 'm3u8');\r\n\r\n    }\r\n};\r\nexport const isDash = function (file, type) {\r\n    if (file) {\r\n        return (type === 'mpd' || type === 'dash' || type === 'application/dash+xml' || extractExtension(file) == 'mpd');\r\n\r\n    }\r\n};\r\n\r\nexport const checkAndGetContainerElement = function (container) {\r\n    if (!container) {\r\n\r\n        return null;\r\n    }\r\n\r\n    let containerElement = null;\r\n\r\n    if (typeof container === 'string') {\r\n\r\n        containerElement = document.getElementById(container);\r\n    } else if (container.nodeType) {\r\n\r\n        containerElement = container;\r\n    } else {\r\n\r\n        return null;\r\n    }\r\n\r\n    return containerElement;\r\n};","import {isRtmp, isWebRTC, isDash, isHls} from \"utils/validator\";\r\nimport {analUserAgent} from \"utils/browser\";\r\n/**\r\n * @brief   This finds the provider that matches the input source.\r\n * @param\r\n * */\r\n\r\nconst SupportChecker = function(){\r\n    const that = {};\r\n    OvenPlayerConsole.log(\"SupportChecker loaded.\");\r\n    let userAgentObject = analUserAgent();\r\n\r\n    const supportList = [\r\n        {\r\n            name: 'html5',\r\n            checkSupport: function (source) {\r\n                const MimeTypes = {\r\n                    aac: 'audio/mp4',\r\n                    mp4: 'video/mp4',\r\n                    f4v: 'video/mp4',\r\n                    m4v: 'video/mp4',\r\n                    mov: 'video/mp4',\r\n                    mp3: 'audio/mpeg',\r\n                    mpeg: 'audio/mpeg',\r\n                    ogv: 'video/ogg',\r\n                    ogg: 'video/ogg',\r\n                    oga: 'video/ogg',\r\n                    vorbis: 'video/ogg',\r\n                    webm: 'video/webm',\r\n                    f4a: 'video/aac',\r\n                    m3u8: 'application/vnd.apple.mpegurl',\r\n                    m3u: 'application/vnd.apple.mpegurl',\r\n                    hls: 'application/vnd.apple.mpegurl'\r\n                };\r\n\r\n                const video = function(){\r\n                    return document.createElement('video')\r\n                }();\r\n                if (!video.canPlayType) {\r\n                    return false;\r\n                }\r\n\r\n\r\n                const file = source.file;\r\n                const type = source.type;\r\n\r\n                if(!type){return false;}\r\n                const mimeType = source.mimeType || MimeTypes[type];\r\n\r\n                // Latest Edge browser returns \"Chrome\" from userAgentObject.browser\r\n                // Make sure to use hls.js Android devices\r\n                if(isHls(file, type) && (userAgentObject.browser === \"Microsoft Edge\" || userAgentObject.os === \"Android\")) {\r\n\r\n                    return false;\r\n                }\r\n\r\n                if (isRtmp(file, type)) {\r\n                    return false;\r\n                }\r\n\r\n                if(isWebRTC(file, type)){\r\n                    return false;\r\n                }\r\n\r\n                if (!mimeType) {\r\n                    return false;\r\n                }\r\n\r\n                return !!video.canPlayType(mimeType);\r\n            }\r\n        },\r\n        {\r\n            name: 'webrtc',\r\n            checkSupport: function (source) {\r\n                const video = function(){\r\n                    return document.createElement('video')\r\n                }();\r\n                if (!video.canPlayType) {\r\n                    return false;\r\n                }\r\n                if (isRtmp(file, type)) {\r\n                    return false;\r\n                }\r\n\r\n                const file = source.file;\r\n                const type = source.type;\r\n\r\n                if(isWebRTC(file, type)){\r\n                    return true;\r\n                }else{\r\n                    return false;\r\n                }\r\n            }\r\n        },\r\n        {\r\n            name: 'dash',\r\n            checkSupport: function (source) {\r\n                const file = source.file;\r\n\r\n                const type = source.type;\r\n                if (isRtmp(file, type)) {\r\n                    return false;\r\n                }\r\n\r\n                if (typeof ( window.MediaSource || window.WebKitMediaSource ) === \"function\" && isDash(file, type)) {\r\n                    return true;\r\n                }else{\r\n                    return false;\r\n                }\r\n            }\r\n        },\r\n        {\r\n            name: 'hls',\r\n            checkSupport: function (source) {\r\n                const video = function(){\r\n                    return document.createElement('video')\r\n                }();\r\n                const file = source.file;\r\n                const type = source.type;\r\n                if (isRtmp(file, type)) {\r\n                    return false;\r\n                }\r\n\r\n                //this method from hls.js\r\n                const isHlsSupport = () =>{\r\n                     function getMediaSource() {\r\n                        if (typeof window !== 'undefined') {\r\n                            return window.MediaSource || window.WebKitMediaSource;\r\n                        }\r\n                    }\r\n                    var mediaSource = getMediaSource();\r\n                    var sourceBuffer = window.SourceBuffer || window.WebKitSourceBuffer;\r\n                    var isTypeSupported = mediaSource && typeof mediaSource.isTypeSupported === 'function' && mediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"');\r\n\r\n                    // if SourceBuffer is exposed ensure its API is valid\r\n                    // safari and old version of Chrome doe not expose SourceBuffer globally so checking SourceBuffer.prototype is impossible\r\n                    var sourceBufferValidAPI = !sourceBuffer || sourceBuffer.prototype && typeof sourceBuffer.prototype.appendBuffer === 'function' && typeof sourceBuffer.prototype.remove === 'function';\r\n                    return !!isTypeSupported && !!sourceBufferValidAPI;\r\n                };\r\n                //Remove this '!!video.canPlayType('application/vnd.apple.mpegurl')' if you want to use hlsjs.\r\n                //Yes I need hlsjs. 2019-06-12 && !!video.canPlayType('application/vnd.apple.mpegurl');\r\n                return isHlsSupport();\r\n            }\r\n        },\r\n        {\r\n            name: 'rtmp',\r\n            checkSupport: function (source) {\r\n                const file = source.file;\r\n                const type = source.type;\r\n                function testFlash() {\r\n\r\n                    var support = false;\r\n\r\n                    //IE only\r\n                    if(\"ActiveXObject\" in window) {\r\n\r\n                        try{\r\n                            support = !!(new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash\"));\r\n                        }catch(e){\r\n                            support = false;\r\n                        }\r\n\r\n                        //W3C, better support in legacy browser\r\n                    } else {\r\n\r\n                        support = !!navigator.mimeTypes['application/x-shockwave-flash'];\r\n\r\n                    }\r\n\r\n                    return support;\r\n\r\n                }\r\n                function checkSupport(){\r\n                    if(userAgentObject.browser === \"Microsoft Edge\" || userAgentObject.os === \"Android\" || userAgentObject.os === \"iOS\"  || userAgentObject.browser === \"Safari\"){\r\n                        return false;\r\n                    }else{\r\n                        return true;\r\n                    }\r\n                }\r\n                if (isRtmp(file, type) && testFlash() && checkSupport()) {\r\n                    return true;\r\n                }else{\r\n                    return false;\r\n                }\r\n            }\r\n        }\r\n    ];\r\n\r\n    that.findProviderNameBySource = (soruce_) => {\r\n        OvenPlayerConsole.log(\"SupportChecker : findProviderNameBySource()\", soruce_);\r\n        const source = (soruce_ === Object(soruce_)) ? soruce_ : {};\r\n        for(var i = 0; i < supportList.length; i ++){\r\n            if(supportList[i].checkSupport(source)){\r\n                return supportList[i].name;\r\n            }\r\n        }\r\n    };\r\n    that.findProviderNamesByPlaylist = (playlistItem) => {\r\n        OvenPlayerConsole.log(\"SupportChecker : findProviderNamesByPlaylist()\", playlistItem);\r\n        let supportNames = [];\r\n        /*for (let i = playlist_.length; i--;) {\r\n\r\n\r\n        }*/\r\n        const item = playlistItem;\r\n\r\n        if(item && item.sources){\r\n            for(let j = 0; j < item.sources.length; j ++){\r\n                let source = item.sources[j];\r\n                if (source) {\r\n                    const supported = that.findProviderNameBySource(source);\r\n                    if (supported) {\r\n                        supportNames.push(supported);\r\n                    }\r\n                }\r\n            }\r\n\r\n            return supportNames;\r\n        }\r\n        return null;\r\n\r\n    };\r\n    return that;\r\n};\r\n\r\nexport default SupportChecker;\r\n","/**\r\n * Created by hoho on 27/06/2019.\r\n */\r\nexport const TEMP_VIDEO_URL = \"data:video/mp4;base64, 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\";\r\n","/**\r\n * Created by hoho on 2018. 11. 12..\r\n */\r\nimport {ERROR, STATE_ERROR} from \"api/constants\";\r\nimport _ from \"utils/underscore\";\r\n\r\nexport const extractVideoElement = function(elementOrMse) {\r\n    if(_.isElement(elementOrMse)){\r\n        return elementOrMse;\r\n    }\r\n    if(elementOrMse.getVideoElement){\r\n        return elementOrMse.getVideoElement();\r\n    }else if(elementOrMse.media){\r\n        return elementOrMse.media;\r\n    }\r\n    return null;\r\n};\r\n\r\nexport const separateLive = function(mse) {\r\n    //ToDo : You consider hlsjs. But not now because we don't support hlsjs.\r\n\r\n    if(mse && mse.isDynamic){\r\n        return mse.isDynamic();\r\n    }else{\r\n        return false;\r\n    }\r\n};\r\n\r\nexport const errorTrigger = function(error, provider){\r\n    if(provider){\r\n        provider.setState(STATE_ERROR);\r\n        provider.pause();\r\n        provider.trigger(ERROR, error );\r\n    }\r\n\r\n};\r\n\r\nexport const pickCurrentSource = (sources, playerConfig) => {\r\n\r\n    let sourceIndex = 0;\r\n\r\n    if (sources) {\r\n\r\n        if (playerConfig.getSourceIndex() === -1) {\r\n\r\n            for (var i = 0; i < sources.length; i++) {\r\n                if (sources[i].default) {\r\n                    sourceIndex = i;\r\n                    break;\r\n                }\r\n            }\r\n        } else {\r\n\r\n            sourceIndex = playerConfig.getSourceIndex();\r\n        }\r\n\r\n    }\r\n\r\n    return sourceIndex;\r\n}","/**\r\n * Created by hoho on 08/04/2019.\r\n */\r\nimport AdsEventsListener from \"api/ads/ima/Listener\";\r\nimport {TEMP_VIDEO_URL} from \"api/ads/utils\";\r\nimport LA$ from \"utils/likeA$.js\";\r\nimport {errorTrigger} from \"api/provider/utils\";\r\nimport {\r\n    ERROR,\r\n    CONTENT_VOLUME,\r\n    STATE_LOADING,\r\n    INIT_ADS_ERROR,\r\n    STATE_AD_ERROR,\r\n    PLAYER_WARNING,\r\n    CONTENT_META,\r\n    WARN_MSG_MUTEDPLAY,\r\n    STATE_AD_LOADING,\r\n    PROVIDER_DASH,\r\n    UI_ICONS\r\n} from \"api/constants\";\r\n\r\nconst Ad = function(elVideo, provider, playerConfig, adTagUrl, errorCallback){\r\n    //Todo : move createAdContainer to MediaManager\r\n    const AUTOPLAY_NOT_ALLOWED = \"autoplayNotAllowed\";\r\n    const ADMANGER_LOADING_ERROR = \"admanagerLoadingTimeout\";\r\n    let ADS_MANAGER_LOADED = \"\";\r\n    let AD_ERROR = \"\";\r\n\r\n    let that = {};\r\n    let adsManagerLoaded = false;\r\n    let adsErrorOccurred = false;\r\n    let spec = {\r\n        started: false, //player started\r\n        active : false, //on Ad\r\n        isVideoEnded : false\r\n    };\r\n    let OnManagerLoaded = null;\r\n    let OnAdError = null;\r\n\r\n    let adDisplayContainer = null;\r\n    let adsLoader = null;\r\n    let adsManager = null;\r\n    let listener = null;\r\n    let adsRequest = null;\r\n    let autoplayAllowed = false, autoplayRequiresMuted = false;\r\n    let browser = playerConfig.getBrowser();\r\n    let isMobile = browser.os === \"Android\" || browser.os === \"iOS\";\r\n\r\n    let adDisplayContainerInitialized = false;\r\n\r\n    // google.ima.settings.setAutoPlayAdBreaks(false);\r\n    //google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED);\r\n\r\n    //google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED);\r\n    //google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true);\r\n    const sendWarningMessageForMutedPlay = function(){\r\n        provider.trigger(PLAYER_WARNING, {\r\n            message : WARN_MSG_MUTEDPLAY,\r\n            timer : 10 * 1000,\r\n            iconClass : UI_ICONS.volume_mute,\r\n            onClickCallback : function(){\r\n                provider.setMute(false);\r\n            }\r\n        });\r\n    };\r\n    OvenPlayerConsole.log(\"IMA : started \", \"isMobile : \", isMobile, adTagUrl);\r\n\r\n    try{\r\n        ADS_MANAGER_LOADED = google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED;\r\n        AD_ERROR = google.ima.AdErrorEvent.Type.AD_ERROR;\r\n        google.ima.settings.setLocale(playerConfig.getLanguage());\r\n        google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true);\r\n\r\n        const createAdContainer = () => {\r\n            let adContainer = document.createElement('div');\r\n            adContainer.setAttribute('class', 'op-ads');\r\n            adContainer.setAttribute('id', 'op-ads');\r\n            playerConfig.getContainer().append(adContainer);\r\n\r\n            return adContainer;\r\n        };\r\n        OnAdError = function(adErrorEvent){\r\n            //note : adErrorEvent.getError().getInnerError().getErrorCode() === 1205 & adErrorEvent.getError().getVastErrorCode() === 400 is Browser User Interactive error.\r\n\r\n            //Do not triggering ERROR. becuase It just AD!\r\n\r\n            console.log(adErrorEvent.getError().getVastErrorCode(), adErrorEvent.getError().getMessage());\r\n            adsErrorOccurred = true;\r\n            let innerError = adErrorEvent.getError().getInnerError();\r\n            if(innerError){\r\n                console.log(innerError.getErrorCode(), innerError.getMessage());\r\n            }\r\n            /*if (adsManager) {\r\n                adsManager.destroy();\r\n            }*/\r\n            provider.trigger(STATE_AD_ERROR, {code : adErrorEvent.getError().getVastErrorCode() , message : adErrorEvent.getError().getMessage()});\r\n            spec.active = false;\r\n            spec.started = true;\r\n            provider.play();\r\n\r\n            /*if(innerError && innerError.getErrorCode() === 1205){\r\n             }else{\r\n\r\n             }*/\r\n\r\n\r\n        };\r\n        OnManagerLoaded = function(adsManagerLoadedEvent){\r\n\r\n            OvenPlayerConsole.log(\"IMA : OnManagerLoaded \");\r\n            let adsRenderingSettings = new google.ima.AdsRenderingSettings();\r\n            adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true;\r\n            //adsRenderingSettings.useStyledNonLinearAds = true;\r\n            if(adsManager){\r\n                OvenPlayerConsole.log(\"IMA : destroy adsManager----\");\r\n                listener.destroy();\r\n                listener = null;\r\n                adsManager.destroy();\r\n                adsManager = null;\r\n            }\r\n            adsManager = adsManagerLoadedEvent.getAdsManager(elVideo, adsRenderingSettings);\r\n\r\n            listener = AdsEventsListener(adsManager, provider, spec, OnAdError);\r\n\r\n            OvenPlayerConsole.log(\"IMA : created admanager and listner \");\r\n\r\n            adsManagerLoaded = true;\r\n        };\r\n        let adConatinerElment = createAdContainer();\r\n        adDisplayContainer = new google.ima.AdDisplayContainer(adConatinerElment, elVideo);\r\n        adsLoader = new google.ima.AdsLoader(adDisplayContainer);\r\n\r\n        adsLoader.addEventListener(ADS_MANAGER_LOADED, OnManagerLoaded, false);\r\n        adsLoader.addEventListener(AD_ERROR, OnAdError, false);\r\n\r\n        OvenPlayerConsole.log(\"IMA : adDisplayContainer initialized\");\r\n        provider.on(CONTENT_VOLUME, function(data) {\r\n            if(adsManager){\r\n                if(data.mute){\r\n                    adsManager.setVolume(0);\r\n                }else{\r\n                    adsManager.setVolume(data.volume/100);\r\n                }\r\n            }\r\n        }, that);\r\n\r\n        const setAutoPlayToAdsRequest = function (){\r\n            if(adsRequest){\r\n                OvenPlayerConsole.log(\"IMA : setADWillAutoPlay \", \"autoplayAllowed\",autoplayAllowed, \"autoplayRequiresMuted\",autoplayRequiresMuted);\r\n\r\n                adsRequest.setAdWillAutoPlay(autoplayAllowed);\r\n                adsRequest.setAdWillPlayMuted(autoplayRequiresMuted);\r\n                if(autoplayRequiresMuted){\r\n                    sendWarningMessageForMutedPlay();\r\n                }\r\n            }\r\n        };\r\n\r\n        const initRequest = function(){\r\n            adsManagerLoaded = false;\r\n            OvenPlayerConsole.log(\"IMA : initRequest() AutoPlay Support : \", \"autoplayAllowed\",autoplayAllowed, \"autoplayRequiresMuted\",autoplayRequiresMuted);\r\n            /*if(adsRequest){\r\n             return false;\r\n             }*/\r\n            adsRequest = new google.ima.AdsRequest();\r\n\r\n            adsRequest.forceNonLinearFullSlot = false;\r\n            /*if(playerConfig.getBrowser().browser === \"Safari\" && playerConfig.getBrowser().os === \"iOS\" ){\r\n             autoplayAllowed = false;\r\n             autoplayRequiresMuted = false;\r\n             }*/\r\n\r\n            setAutoPlayToAdsRequest();\r\n            adsRequest.adTagUrl = adTagUrl;\r\n\r\n            adsLoader.requestAds(adsRequest);\r\n            OvenPlayerConsole.log(\"IMA : requestAds Complete\");\r\n            //two way what ad starts.\r\n            //adsLoader.requestAds(adsRequest); or  adsManager.start();\r\n            //what? why?? wth??\r\n        };\r\n\r\n\r\n        const checkAutoplaySupport = function () {\r\n            OvenPlayerConsole.log(\"IMA : checkAutoplaySupport() \");\r\n\r\n            let temporarySupportCheckVideo = document.createElement('video');\r\n            temporarySupportCheckVideo.setAttribute('playsinline', 'true');\r\n            temporarySupportCheckVideo.src = TEMP_VIDEO_URL;\r\n            temporarySupportCheckVideo.load();\r\n\r\n            //Dash has already loaded when triggered provider.play() always.\r\n            if(isMobile && provider.getName() !== PROVIDER_DASH ){\r\n                //Main video sets user gesture when temporarySupportCheckVideo triggered checking.\r\n                elVideo.load();\r\n            }\r\n            /* Different browser-specific ways to delivery UI to other elements.  My Guess. 2019-06-19\r\n            *   (temporarySupportCheckVideo's User Interaction delivery to elVideo.)\r\n            *   Mobile Chrome WebView :\r\n            *   You have to run elVideo.load() when temporarySupportCheckVideo issues within 5 seconds of user interaction.\r\n            *\r\n            *   Mobile ios safari :\r\n            *   You have to run elVideo.load() before temporarySupportCheckVideo run play().\r\n            * */\r\n\r\n            const clearAndReport = function(_autoplayAllowed, _autoplayRequiresMuted){\r\n                autoplayAllowed = _autoplayAllowed;\r\n                autoplayRequiresMuted = _autoplayRequiresMuted;\r\n                temporarySupportCheckVideo.pause();\r\n                temporarySupportCheckVideo.remove();\r\n\r\n                setAutoPlayToAdsRequest();\r\n            };\r\n\r\n            return new Promise(function(resolve, reject){\r\n                if(!temporarySupportCheckVideo.play){\r\n                    //I can't remember this case...\r\n                    OvenPlayerConsole.log(\"IMA : !temporarySupportCheckVideo.play\");\r\n                    clearAndReport(true, false);\r\n                    resolve();\r\n                }else{\r\n                    let playPromise = temporarySupportCheckVideo.play();\r\n                    if (playPromise !== undefined) {\r\n                        playPromise.then(function(){\r\n                            OvenPlayerConsole.log(\"IMA : auto play allowed.\");\r\n                            // If we make it here, unmuted autoplay works.\r\n                            clearAndReport(true, false);\r\n                            resolve();\r\n\r\n                        }).catch(function(error){\r\n\r\n                            OvenPlayerConsole.log(\"IMA : auto play failed\", error.message);\r\n                            clearAndReport(false, false);\r\n                            resolve();\r\n\r\n\r\n                            //Disable Muted Play\r\n                            /*temporarySupportCheckVideo.muted = true;\r\n                            temporarySupportCheckVideo.volume = 0;\r\n                            playPromise = temporarySupportCheckVideo.play();\r\n\r\n                            playPromise.then(function () {\r\n                                // If we make it here, muted autoplay works but unmuted autoplay does not.\r\n\r\n                                OvenPlayerConsole.log(\"ADS : muted auto play success.\");\r\n                                provider.setMute(true);\r\n                                clearAndReport(true, true);\r\n                                resolve();\r\n\r\n                            }).catch(function (error) {\r\n                                OvenPlayerConsole.log(\"ADS : muted auto play failed\", error.message);\r\n                                clearAndReport(false, false);\r\n                                resolve();\r\n                            });*/\r\n                        });\r\n                    }else{\r\n                        OvenPlayerConsole.log(\"IMA : promise not support\");\r\n                        //Maybe this is IE11....\r\n                        clearAndReport(true, false);\r\n                        resolve();\r\n                    }\r\n                }\r\n            });\r\n        }\r\n\r\n        that.isActive = () => {\r\n            return spec.active;\r\n        };\r\n        that.started = () => {\r\n            return spec.started;\r\n        };\r\n        that.play = () => {\r\n            if(spec.started){\r\n                return new Promise(function (resolve, reject) {\r\n                    try{\r\n                        adsManager.resume();\r\n                        resolve();\r\n                    } catch (error){\r\n                        reject(error);\r\n                    }\r\n                });\r\n            }else{\r\n                adDisplayContainer.initialize();\r\n\r\n                return new Promise(function (resolve, reject) {\r\n                    let retryCount = 0;\r\n                    const checkAdsManagerIsReady = function(){\r\n                        retryCount ++;\r\n                        if(adsManagerLoaded){\r\n                            OvenPlayerConsole.log(\"IMA : ad start!\");\r\n                            adsManager.init(\"100%\", \"100%\", google.ima.ViewMode.NORMAL);\r\n                            adsManager.start();\r\n                            spec.started = true;\r\n\r\n                            resolve();\r\n                        }else{\r\n                            if(adsErrorOccurred){\r\n                                reject(new Error(ADMANGER_LOADING_ERROR));\r\n                            }else{\r\n                                if(retryCount < 150){\r\n                                    setTimeout(checkAdsManagerIsReady, 100);\r\n                                }else{\r\n                                    reject(new Error(ADMANGER_LOADING_ERROR));\r\n                                }\r\n                            }\r\n\r\n                        }\r\n\r\n                    };\r\n                    checkAutoplaySupport().then(function () {\r\n                        if( (playerConfig.isAutoStart() && !autoplayAllowed) ){\r\n                            OvenPlayerConsole.log(\"IMA : autoplayAllowed : false\");\r\n                            spec.started = false;\r\n                            reject(new Error(AUTOPLAY_NOT_ALLOWED));\r\n                        }else{\r\n                            initRequest();\r\n                            checkAdsManagerIsReady();\r\n                        }\r\n                    });\r\n                });\r\n\r\n\r\n            }\r\n        };\r\n        that.pause = () => {\r\n            adsManager.pause();\r\n        };\r\n        that.videoEndedCallback = (completeContentCallback) => {\r\n            //listener.isLinearAd : get current ad's status whether linear ad or not.\r\n            if(listener && (listener.isAllAdComplete() || !listener.isLinearAd())){\r\n                completeContentCallback();\r\n            }else if(adsErrorOccurred){\r\n                completeContentCallback();\r\n            }else{\r\n                //If you need play the post-roll, you have to call to adsLoader when contents was completed.\r\n                spec.isVideoEnded = true;\r\n                adsLoader.contentComplete();\r\n            }\r\n        };\r\n\r\n        that.destroy = () => {\r\n\r\n            if(adsLoader){\r\n                adsLoader.removeEventListener(ADS_MANAGER_LOADED, OnManagerLoaded);\r\n                adsLoader.removeEventListener(AD_ERROR, OnAdError);\r\n            }\r\n\r\n            if(adsManager){\r\n                adsManager.destroy();\r\n            }\r\n\r\n            if(adDisplayContainer){\r\n                adDisplayContainer.destroy();\r\n            }\r\n\r\n            if(listener){\r\n                listener.destroy();\r\n            }\r\n\r\n            let $ads = LA$(playerConfig.getContainer()).find(\".op-ads\");\r\n            if($ads){\r\n                $ads.remove();\r\n            }\r\n\r\n            provider.off(CONTENT_VOLUME, null, that);\r\n        };\r\n\r\n        return that;\r\n    }catch (error){\r\n        //let tempError = ERRORS[INIT_ADS_ERROR];\r\n        //tempError.error = error;\r\n        //errorCallback(tempError);\r\n        return null;\r\n    }\r\n\r\n\r\n};\r\n\r\n\r\nexport default Ad;\r\n\r\n","/**\r\n * Created by hoho on 10/04/2019.\r\n */\r\n\r\nimport {\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n    AD_CHANGED,\r\n    AD_TIME,\r\n    STATE_PAUSED,\r\n    STATE_ERROR,\r\n    CONTENT_COMPLETE,\r\n    CONTENT_SEEK,\r\n    CONTENT_BUFFER_FULL,\r\n    CONTENT_SEEKED,\r\n    CONTENT_BUFFER,\r\n    CONTENT_TIME,\r\n    CONTENT_VOLUME,\r\n    CONTENT_META,\r\n    PLAYER_UNKNWON_ERROR,\r\n    PLAYER_UNKNWON_OPERATION_ERROR,\r\n    PLAYER_UNKNWON_NETWORK_ERROR,\r\n    PLAYER_UNKNWON_DECODE_ERROR,\r\n    PLAYER_FILE_ERROR,\r\n    PLAYER_STATE,\r\n    PLAYER_CLICKED,\r\n    PLAYER_AD_CLICK,\r\n    PROVIDER_HTML5,\r\n    PROVIDER_WEBRTC,\r\n    PROVIDER_DASH,\r\n    PROVIDER_HLS\r\n} from \"api/constants\";\r\n\r\nconst Listener = function(adsManager, provider, adsSpec, OnAdError){\r\n    let that = {};\r\n    let lowLevelEvents = {};\r\n\r\n    let intervalTimer = null;\r\n\r\n    const AD_BUFFERING = google.ima.AdEvent.Type.AD_BUFFERING;\r\n    const CONTENT_PAUSE_REQUESTED = google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED;\r\n    const CONTENT_RESUME_REQUESTED = google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED;\r\n    const AD_ERROR = google.ima.AdErrorEvent.Type.AD_ERROR;\r\n    const ALL_ADS_COMPLETED = google.ima.AdEvent.Type.ALL_ADS_COMPLETED;\r\n    const CLICK = google.ima.AdEvent.Type.CLICK;\r\n    const SKIPPED = google.ima.AdEvent.Type.SKIPPED;\r\n    const COMPLETE = google.ima.AdEvent.Type.COMPLETE;\r\n    const FIRST_QUARTILE= google.ima.AdEvent.Type.FIRST_QUARTILE;\r\n    const LOADED = google.ima.AdEvent.Type.LOADED;\r\n    const MIDPOINT= google.ima.AdEvent.Type.MIDPOINT;\r\n    const PAUSED = google.ima.AdEvent.Type.PAUSED;\r\n    const RESUMED = google.ima.AdEvent.Type.RESUMED;\r\n    const STARTED = google.ima.AdEvent.Type.STARTED;\r\n    const USER_CLOSE = google.ima.AdEvent.Type.USER_CLOSE;\r\n    const THIRD_QUARTILE = google.ima.AdEvent.Type.THIRD_QUARTILE;\r\n\r\n    let isAllAdCompelete = false;   //Post roll을 위해\r\n    let adCompleteCallback = null;\r\n    let currentAd = null;\r\n    OvenPlayerConsole.log(\"IMA : Listener Created\");\r\n     lowLevelEvents[CONTENT_PAUSE_REQUESTED] = (adEvent) => {\r\n         OvenPlayerConsole.log(\"IMA LISTENER : \", adEvent.type);\r\n\r\n         //This callls when player is playing contents for ad.\r\n         if(adsSpec.started){\r\n             adsSpec.active = true;\r\n             provider.pause();\r\n         }\r\n\r\n    };\r\n\r\n    lowLevelEvents[CONTENT_RESUME_REQUESTED] = (adEvent) => {\r\n        OvenPlayerConsole.log(\"IMA LISTENER : \", adEvent.type);\r\n        //This calls when one ad ended.\r\n        //And this is signal what play the contents.\r\n        adsSpec.active = false;\r\n\r\n        if(adsSpec.started && (provider.getPosition() === 0 || !adsSpec.isVideoEnded)  ){\r\n            provider.play();\r\n        }\r\n\r\n    };\r\n    lowLevelEvents[AD_ERROR] = (adEvent) => {\r\n        isAllAdCompelete = true;\r\n        OnAdError(adEvent);\r\n    } ;\r\n\r\n    lowLevelEvents[ALL_ADS_COMPLETED] = (adEvent) => {\r\n        OvenPlayerConsole.log(\"IMA LISTENER : \", adEvent.type);\r\n\r\n        isAllAdCompelete = true;\r\n        if(adsSpec.isVideoEnded){\r\n            provider.setState(STATE_COMPLETE);\r\n        }\r\n    };\r\n    lowLevelEvents[CLICK] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        provider.trigger(PLAYER_CLICKED, {type : PLAYER_AD_CLICK});\r\n    };\r\n    lowLevelEvents[FIRST_QUARTILE] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n    };\r\n    //\r\n    lowLevelEvents[AD_BUFFERING] = (adEvent) => {\r\n        OvenPlayerConsole.log(\"AD_BUFFERING\",adEvent.type);\r\n    };\r\n    lowLevelEvents[LOADED] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        let remainingTime = adsManager.getRemainingTime();\r\n        let ad = adEvent.getAd();\r\n        provider.trigger(STATE_AD_LOADED, {remaining : remainingTime, isLinear : ad.isLinear() });\r\n\r\n    };\r\n    lowLevelEvents[MIDPOINT] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n    };\r\n    lowLevelEvents[PAUSED] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        provider.setState(STATE_AD_PAUSED);\r\n    };\r\n    lowLevelEvents[RESUMED] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        provider.setState(STATE_AD_PLAYING);\r\n    };\r\n\r\n\r\n    lowLevelEvents[STARTED] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        let ad = adEvent.getAd();\r\n        currentAd = ad;\r\n\r\n        let adObject = {\r\n            isLinear : ad.isLinear() ,\r\n            duration : ad.getDuration(),\r\n            skipTimeOffset : ad.getSkipTimeOffset()     //The number of seconds of playback before the ad becomes skippable.\r\n        };\r\n        provider.trigger(AD_CHANGED, adObject);\r\n\r\n\r\n        if (ad.isLinear()) {\r\n\r\n            provider.setState(STATE_AD_PLAYING);\r\n            adsSpec.started = true;\r\n            // For a linear ad, a timer can be started to poll for\r\n            // the remaining time.\r\n            intervalTimer = setInterval(\r\n                function() {\r\n                    let remainingTime = adsManager.getRemainingTime();\r\n                    let duration = ad.getDuration();\r\n\r\n                    provider.trigger(AD_TIME, {\r\n                        duration : duration,\r\n                        skipTimeOffset : ad.getSkipTimeOffset(),\r\n                        remaining : remainingTime,\r\n                        position : duration - remainingTime,\r\n                        skippable : adsManager.getAdSkippableState()\r\n                    });\r\n                },\r\n                300); // every 300ms\r\n        }else{\r\n            provider.play();\r\n        }\r\n    };\r\n    lowLevelEvents[COMPLETE] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        let ad = adEvent.getAd();\r\n        if (ad.isLinear()) {\r\n            clearInterval(intervalTimer);\r\n        }\r\n        provider.trigger(STATE_AD_COMPLETE);\r\n    };\r\n    //User skipped ad. same process on complete.\r\n    lowLevelEvents[SKIPPED] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n\r\n        let ad = adEvent.getAd();\r\n        if (ad.isLinear()) {\r\n            clearInterval(intervalTimer);\r\n        }\r\n        provider.trigger(STATE_AD_COMPLETE);\r\n    };\r\n    lowLevelEvents[USER_CLOSE] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n        let ad = adEvent.getAd();\r\n        if (ad.isLinear()) {\r\n            clearInterval(intervalTimer);\r\n        }\r\n        provider.trigger(STATE_AD_COMPLETE);\r\n    };\r\n    lowLevelEvents[THIRD_QUARTILE] = (adEvent) => {\r\n        OvenPlayerConsole.log(adEvent.type);\r\n    };\r\n\r\n\r\n    Object.keys(lowLevelEvents).forEach(eventName => {\r\n        adsManager.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        adsManager.addEventListener(eventName, lowLevelEvents[eventName]);\r\n    });\r\n    that.setAdCompleteCallback = (_adCompleteCallback) => {\r\n        adCompleteCallback = _adCompleteCallback;\r\n    };\r\n    that.isAllAdComplete = () => {\r\n        return isAllAdCompelete;\r\n    };\r\n    that.isLinearAd = () => {\r\n        return currentAd  ? currentAd.isLinear() : true;\r\n    };\r\n    that.destroy = () =>{\r\n        OvenPlayerConsole.log(\"IMAEventListener : destroy()\");\r\n        //provider.trigger(STATE_AD_COMPLETE);\r\n        Object.keys(lowLevelEvents).forEach(eventName => {\r\n            adsManager.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        });\r\n    };\r\n    return that;\r\n\r\n};\r\n\r\nexport default Listener;","/*Copyright (c) 2013 Olivier Poitrey <rs@dailymotion.com>\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is furnished\r\n to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all\r\n copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n THE SOFTWARE.*/\r\nclass Ad{constructor(){this.id=null,this.sequence=null,this.system=null,this.title=null,this.description=null,this.advertiser=null,this.pricing=null,this.survey=null,this.errorURLTemplates=[],this.impressionURLTemplates=[],this.creatives=[],this.extensions=[]}}class AdExtension{constructor(){this.attributes={},this.children=[]}}class AdExtensionChild{constructor(){this.name=null,this.value=null,this.attributes={}}}class CompanionAd{constructor(){this.id=null,this.width=0,this.height=0,this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.altText=null,this.companionClickThroughURLTemplate=null,this.companionClickTrackingURLTemplates=[],this.trackingEvents={}}}class Creative{constructor(e={}){this.id=e.id||null,this.adId=e.adId||null,this.sequence=e.sequence||null,this.apiFramework=e.apiFramework||null,this.trackingEvents={}}}class CreativeCompanion extends Creative{constructor(e={}){super(e),this.type=\"companion\",this.variations=[]}}function track(e,t){resolveURLTemplates(e,t).forEach(e=>{if(\"undefined\"!=typeof window&&null!==window){(new Image).src=e}})}function resolveURLTemplates(e,t={}){const r=[];t.ASSETURI&&(t.ASSETURI=encodeURIComponentRFC3986(t.ASSETURI)),t.CONTENTPLAYHEAD&&(t.CONTENTPLAYHEAD=encodeURIComponentRFC3986(t.CONTENTPLAYHEAD)),t.ERRORCODE&&!/^[0-9]{3}$/.test(t.ERRORCODE)&&(t.ERRORCODE=900),t.CACHEBUSTING=leftpad(Math.round(1e8*Math.random()).toString()),t.TIMESTAMP=encodeURIComponentRFC3986((new Date).toISOString()),t.RANDOM=t.random=t.CACHEBUSTING;for(let i in e){let s=e[i];if(\"string\"==typeof s){for(let e in t){const r=t[e],i=`[${e}]`,n=`%%${e}%%`;s=(s=s.replace(i,r)).replace(n,r)}r.push(s)}}return r}function encodeURIComponentRFC3986(e){return encodeURIComponent(e).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16)}`)}function leftpad(e){return e.length<8?range(0,8-e.length,!1).map(e=>\"0\").join(\"\")+e:e}function range(e,t,r){let i=[],s=e<t,n=r?s?t+1:t-1:t;for(let t=e;s?t<n:t>n;s?t++:t--)i.push(t);return i}function isNumeric(e){return!isNaN(parseFloat(e))&&isFinite(e)}function flatten(e){return e.reduce((e,t)=>e.concat(Array.isArray(t)?flatten(t):t),[])}const util={track:track,resolveURLTemplates:resolveURLTemplates,encodeURIComponentRFC3986:encodeURIComponentRFC3986,leftpad:leftpad,range:range,isNumeric:isNumeric,flatten:flatten};function childByName(e,t){const r=e.childNodes;for(let e in r){const i=r[e];if(i.nodeName===t)return i}}function childrenByName(e,t){const r=[],i=e.childNodes;for(let e in i){const s=i[e];s.nodeName===t&&r.push(s)}return r}function resolveVastAdTagURI(e,t){if(!t)return e;if(0===e.indexOf(\"//\")){const{protocol:t}=location;return`${t}${e}`}if(-1===e.indexOf(\"://\")){return`${t.slice(0,t.lastIndexOf(\"/\"))}/${e}`}return e}function parseBoolean(e){return-1!==[\"true\",\"TRUE\",\"1\"].indexOf(e)}function parseNodeText(e){return e&&(e.textContent||e.text||\"\").trim()}function copyNodeAttribute(e,t,r){const i=t.getAttribute(e);i&&r.setAttribute(e,i)}function parseDuration(e){if(null==e)return-1;if(util.isNumeric(e))return parseInt(e);const t=e.split(\":\");if(3!==t.length)return-1;const r=t[2].split(\".\");let i=parseInt(r[0]);2===r.length&&(i+=parseFloat(`0.${r[1]}`));const s=parseInt(60*t[1]),n=parseInt(60*t[0]*60);return isNaN(n)||isNaN(s)||isNaN(i)||s>3600||i>60?-1:n+s+i}function splitVAST(e){const t=[];let r=null;return e.forEach((i,s)=>{if(i.sequence&&(i.sequence=parseInt(i.sequence,10)),i.sequence>1){const t=e[s-1];if(t&&t.sequence===i.sequence-1)return void(r&&r.push(i));delete i.sequence}r=[i],t.push(r)}),t}function mergeWrapperAdData(e,t){e.errorURLTemplates=t.errorURLTemplates.concat(e.errorURLTemplates),e.impressionURLTemplates=t.impressionURLTemplates.concat(e.impressionURLTemplates),e.extensions=t.extensions.concat(e.extensions),e.creatives.forEach(e=>{if(t.trackingEvents&&t.trackingEvents[e.type])for(let r in t.trackingEvents[e.type]){const i=t.trackingEvents[e.type][r];e.trackingEvents[r]||(e.trackingEvents[r]=[]),e.trackingEvents[r]=e.trackingEvents[r].concat(i)}}),t.videoClickTrackingURLTemplates&&t.videoClickTrackingURLTemplates.length&&e.creatives.forEach(e=>{\"linear\"===e.type&&(e.videoClickTrackingURLTemplates=e.videoClickTrackingURLTemplates.concat(t.videoClickTrackingURLTemplates))}),t.videoCustomClickURLTemplates&&t.videoCustomClickURLTemplates.length&&e.creatives.forEach(e=>{\"linear\"===e.type&&(e.videoCustomClickURLTemplates=e.videoCustomClickURLTemplates.concat(t.videoCustomClickURLTemplates))}),t.videoClickThroughURLTemplate&&e.creatives.forEach(e=>{\"linear\"===e.type&&null==e.videoClickThroughURLTemplate&&(e.videoClickThroughURLTemplate=t.videoClickThroughURLTemplate)})}const parserUtils={childByName:childByName,childrenByName:childrenByName,resolveVastAdTagURI:resolveVastAdTagURI,parseBoolean:parseBoolean,parseNodeText:parseNodeText,copyNodeAttribute:copyNodeAttribute,parseDuration:parseDuration,splitVAST:splitVAST,mergeWrapperAdData:mergeWrapperAdData};function parseCreativeCompanion(e,t){const r=new CreativeCompanion(t);return parserUtils.childrenByName(e,\"Companion\").forEach(e=>{const t=new CompanionAd;t.id=e.getAttribute(\"id\")||null,t.width=e.getAttribute(\"width\"),t.height=e.getAttribute(\"height\"),t.companionClickTrackingURLTemplates=[],parserUtils.childrenByName(e,\"HTMLResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"IFrameResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"StaticResource\").forEach(r=>{t.type=r.getAttribute(\"creativeType\")||0,parserUtils.childrenByName(e,\"AltText\").forEach(e=>{t.altText=parserUtils.parseNodeText(e)}),t.staticResource=parserUtils.parseNodeText(r)}),parserUtils.childrenByName(e,\"TrackingEvents\").forEach(e=>{parserUtils.childrenByName(e,\"Tracking\").forEach(e=>{const r=e.getAttribute(\"event\"),i=parserUtils.parseNodeText(e);r&&i&&(null==t.trackingEvents[r]&&(t.trackingEvents[r]=[]),t.trackingEvents[r].push(i))})}),parserUtils.childrenByName(e,\"CompanionClickTracking\").forEach(e=>{t.companionClickTrackingURLTemplates.push(parserUtils.parseNodeText(e))}),t.companionClickThroughURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(e,\"CompanionClickThrough\")),t.companionClickTrackingURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(e,\"CompanionClickTracking\")),r.variations.push(t)}),r}class CreativeLinear extends Creative{constructor(e={}){super(e),this.type=\"linear\",this.duration=0,this.skipDelay=null,this.mediaFiles=[],this.videoClickThroughURLTemplate=null,this.videoClickTrackingURLTemplates=[],this.videoCustomClickURLTemplates=[],this.adParameters=null,this.icons=[]}}class Icon{constructor(){this.program=null,this.height=0,this.width=0,this.xPosition=0,this.yPosition=0,this.apiFramework=null,this.offset=null,this.duration=0,this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.iconClickThroughURLTemplate=null,this.iconClickTrackingURLTemplates=[],this.iconViewTrackingURLTemplate=null}}class MediaFile{constructor(){this.id=null,this.fileURL=null,this.deliveryType=\"progressive\",this.mimeType=null,this.codec=null,this.bitrate=0,this.minBitrate=0,this.maxBitrate=0,this.width=0,this.height=0,this.apiFramework=null,this.scalable=null,this.maintainAspectRatio=null}}function parseCreativeLinear(e,t){let r;const i=new CreativeLinear(t);i.duration=parserUtils.parseDuration(parserUtils.parseNodeText(parserUtils.childByName(e,\"Duration\")));const s=e.getAttribute(\"skipoffset\");if(null==s)i.skipDelay=null;else if(\"%\"===s.charAt(s.length-1)&&-1!==i.duration){const e=parseInt(s,10);i.skipDelay=i.duration*(e/100)}else i.skipDelay=parserUtils.parseDuration(s);const n=parserUtils.childByName(e,\"VideoClicks\");n&&(i.videoClickThroughURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(n,\"ClickThrough\")),parserUtils.childrenByName(n,\"ClickTracking\").forEach(e=>{i.videoClickTrackingURLTemplates.push(parserUtils.parseNodeText(e))}),parserUtils.childrenByName(n,\"CustomClick\").forEach(e=>{i.videoCustomClickURLTemplates.push(parserUtils.parseNodeText(e))}));const a=parserUtils.childByName(e,\"AdParameters\");a&&(i.adParameters=parserUtils.parseNodeText(a)),parserUtils.childrenByName(e,\"TrackingEvents\").forEach(e=>{parserUtils.childrenByName(e,\"Tracking\").forEach(e=>{let t=e.getAttribute(\"event\");const s=parserUtils.parseNodeText(e);if(t&&s){if(\"progress\"===t){if(!(r=e.getAttribute(\"offset\")))return;t=\"%\"===r.charAt(r.length-1)?`progress-${r}`:`progress-${Math.round(parserUtils.parseDuration(r))}`}null==i.trackingEvents[t]&&(i.trackingEvents[t]=[]),i.trackingEvents[t].push(s)}})}),parserUtils.childrenByName(e,\"MediaFiles\").forEach(e=>{parserUtils.childrenByName(e,\"MediaFile\").forEach(e=>{const t=new MediaFile;t.id=e.getAttribute(\"id\"),t.fileURL=parserUtils.parseNodeText(e),t.deliveryType=e.getAttribute(\"delivery\"),t.codec=e.getAttribute(\"codec\"),t.mimeType=e.getAttribute(\"type\"),t.apiFramework=e.getAttribute(\"apiFramework\"),t.bitrate=parseInt(e.getAttribute(\"bitrate\")||0),t.minBitrate=parseInt(e.getAttribute(\"minBitrate\")||0),t.maxBitrate=parseInt(e.getAttribute(\"maxBitrate\")||0),t.width=parseInt(e.getAttribute(\"width\")||0),t.height=parseInt(e.getAttribute(\"height\")||0);let r=e.getAttribute(\"scalable\");r&&\"string\"==typeof r&&(\"true\"===(r=r.toLowerCase())?t.scalable=!0:\"false\"===r&&(t.scalable=!1));let s=e.getAttribute(\"maintainAspectRatio\");s&&\"string\"==typeof s&&(\"true\"===(s=s.toLowerCase())?t.maintainAspectRatio=!0:\"false\"===s&&(t.maintainAspectRatio=!1)),i.mediaFiles.push(t)})});const o=parserUtils.childByName(e,\"Icons\");return o&&parserUtils.childrenByName(o,\"Icon\").forEach(e=>{const t=new Icon;t.program=e.getAttribute(\"program\"),t.height=parseInt(e.getAttribute(\"height\")||0),t.width=parseInt(e.getAttribute(\"width\")||0),t.xPosition=parseXPosition(e.getAttribute(\"xPosition\")),t.yPosition=parseYPosition(e.getAttribute(\"yPosition\")),t.apiFramework=e.getAttribute(\"apiFramework\"),t.offset=parserUtils.parseDuration(e.getAttribute(\"offset\")),t.duration=parserUtils.parseDuration(e.getAttribute(\"duration\")),parserUtils.childrenByName(e,\"HTMLResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"IFrameResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"StaticResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||0,t.staticResource=parserUtils.parseNodeText(e)});const r=parserUtils.childByName(e,\"IconClicks\");r&&(t.iconClickThroughURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(r,\"IconClickThrough\")),parserUtils.childrenByName(r,\"IconClickTracking\").forEach(e=>{t.iconClickTrackingURLTemplates.push(parserUtils.parseNodeText(e))})),t.iconViewTrackingURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(e,\"IconViewTracking\")),i.icons.push(t)}),i}function parseXPosition(e){return-1!==[\"left\",\"right\"].indexOf(e)?e:parseInt(e||0)}function parseYPosition(e){return-1!==[\"top\",\"bottom\"].indexOf(e)?e:parseInt(e||0)}class CreativeNonLinear extends Creative{constructor(e={}){super(e),this.type=\"nonlinear\",this.variations=[]}}class NonLinearAd{constructor(){this.id=null,this.width=0,this.height=0,this.expandedWidth=0,this.expandedHeight=0,this.scalable=!0,this.maintainAspectRatio=!0,this.minSuggestedDuration=0,this.apiFramework=\"static\",this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.nonlinearClickThroughURLTemplate=null,this.nonlinearClickTrackingURLTemplates=[],this.adParameters=null}}function parseCreativeNonLinear(e,t){const r=new CreativeNonLinear(t);return parserUtils.childrenByName(e,\"TrackingEvents\").forEach(e=>{let t,i;parserUtils.childrenByName(e,\"Tracking\").forEach(e=>{t=e.getAttribute(\"event\"),i=parserUtils.parseNodeText(e),t&&i&&(null==r.trackingEvents[t]&&(r.trackingEvents[t]=[]),r.trackingEvents[t].push(i))})}),parserUtils.childrenByName(e,\"NonLinear\").forEach(e=>{const t=new NonLinearAd;t.id=e.getAttribute(\"id\")||null,t.width=e.getAttribute(\"width\"),t.height=e.getAttribute(\"height\"),t.expandedWidth=e.getAttribute(\"expandedWidth\"),t.expandedHeight=e.getAttribute(\"expandedHeight\"),t.scalable=parserUtils.parseBoolean(e.getAttribute(\"scalable\")),t.maintainAspectRatio=parserUtils.parseBoolean(e.getAttribute(\"maintainAspectRatio\")),t.minSuggestedDuration=parserUtils.parseDuration(e.getAttribute(\"minSuggestedDuration\")),t.apiFramework=e.getAttribute(\"apiFramework\"),parserUtils.childrenByName(e,\"HTMLResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||\"text/html\",t.htmlResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"IFrameResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||0,t.iframeResource=parserUtils.parseNodeText(e)}),parserUtils.childrenByName(e,\"StaticResource\").forEach(e=>{t.type=e.getAttribute(\"creativeType\")||0,t.staticResource=parserUtils.parseNodeText(e)});const i=parserUtils.childByName(e,\"AdParameters\");i&&(t.adParameters=parserUtils.parseNodeText(i)),t.nonlinearClickThroughURLTemplate=parserUtils.parseNodeText(parserUtils.childByName(e,\"NonLinearClickThrough\")),parserUtils.childrenByName(e,\"NonLinearClickTracking\").forEach(e=>{t.nonlinearClickTrackingURLTemplates.push(parserUtils.parseNodeText(e))}),r.variations.push(t)}),r}function parseAd(e){const t=e.childNodes;for(let r in t){const i=t[r];if(-1!==[\"Wrapper\",\"InLine\"].indexOf(i.nodeName)){if(parserUtils.copyNodeAttribute(\"id\",e,i),parserUtils.copyNodeAttribute(\"sequence\",e,i),\"Wrapper\"===i.nodeName)return parseWrapper(i);if(\"InLine\"===i.nodeName)return parseInLine(i)}}}function parseInLine(e){const t=e.childNodes,r=new Ad;r.id=e.getAttribute(\"id\")||null,r.sequence=e.getAttribute(\"sequence\")||null;for(let e in t){const i=t[e];switch(i.nodeName){case\"Error\":r.errorURLTemplates.push(parserUtils.parseNodeText(i));break;case\"Impression\":r.impressionURLTemplates.push(parserUtils.parseNodeText(i));break;case\"Creatives\":parserUtils.childrenByName(i,\"Creative\").forEach(e=>{const t={id:e.getAttribute(\"id\")||null,adId:parseCreativeAdIdAttribute(e),sequence:e.getAttribute(\"sequence\")||null,apiFramework:e.getAttribute(\"apiFramework\")||null};for(let i in e.childNodes){const s=e.childNodes[i];switch(s.nodeName){case\"Linear\":let e=parseCreativeLinear(s,t);e&&r.creatives.push(e);break;case\"NonLinearAds\":let i=parseCreativeNonLinear(s,t);i&&r.creatives.push(i);break;case\"CompanionAds\":let n=parseCreativeCompanion(s,t);n&&r.creatives.push(n)}}});break;case\"Extensions\":parseExtensions(r.extensions,parserUtils.childrenByName(i,\"Extension\"));break;case\"AdSystem\":r.system={value:parserUtils.parseNodeText(i),version:i.getAttribute(\"version\")||null};break;case\"AdTitle\":r.title=parserUtils.parseNodeText(i);break;case\"Description\":r.description=parserUtils.parseNodeText(i);break;case\"Advertiser\":r.advertiser=parserUtils.parseNodeText(i);break;case\"Pricing\":r.pricing={value:parserUtils.parseNodeText(i),model:i.getAttribute(\"model\")||null,currency:i.getAttribute(\"currency\")||null};break;case\"Survey\":r.survey=parserUtils.parseNodeText(i)}}return r}function parseWrapper(e){const t=parseInLine(e);let r=parserUtils.childByName(e,\"VASTAdTagURI\");if(r?t.nextWrapperURL=parserUtils.parseNodeText(r):(r=parserUtils.childByName(e,\"VASTAdTagURL\"))&&(t.nextWrapperURL=parserUtils.parseNodeText(parserUtils.childByName(r,\"URL\"))),t.creatives.forEach(e=>{if(-1!==[\"linear\",\"nonlinear\"].indexOf(e.type)){if(e.trackingEvents){t.trackingEvents||(t.trackingEvents={}),t.trackingEvents[e.type]||(t.trackingEvents[e.type]={});for(let r in e.trackingEvents){const i=e.trackingEvents[r];t.trackingEvents[e.type][r]||(t.trackingEvents[e.type][r]=[]),i.forEach(i=>{t.trackingEvents[e.type][r].push(i)})}}e.videoClickTrackingURLTemplates&&(t.videoClickTrackingURLTemplates||(t.videoClickTrackingURLTemplates=[]),e.videoClickTrackingURLTemplates.forEach(e=>{t.videoClickTrackingURLTemplates.push(e)})),e.videoClickThroughURLTemplate&&(t.videoClickThroughURLTemplate=e.videoClickThroughURLTemplate),e.videoCustomClickURLTemplates&&(t.videoCustomClickURLTemplates||(t.videoCustomClickURLTemplates=[]),e.videoCustomClickURLTemplates.forEach(e=>{t.videoCustomClickURLTemplates.push(e)}))}}),t.nextWrapperURL)return t}function parseExtensions(e,t){t.forEach(t=>{const r=new AdExtension,i=t.attributes,s=t.childNodes;if(t.attributes)for(let e in i){const t=i[e];t.nodeName&&t.nodeValue&&(r.attributes[t.nodeName]=t.nodeValue)}for(let e in s){const t=s[e],i=parserUtils.parseNodeText(t);if(\"#comment\"!==t.nodeName&&\"\"!==i){const e=new AdExtensionChild;if(e.name=t.nodeName,e.value=i,t.attributes){const r=t.attributes;for(let t in r){const i=r[t];e.attributes[i.nodeName]=i.nodeValue}}r.children.push(e)}}e.push(r)})}function parseCreativeAdIdAttribute(e){return e.getAttribute(\"AdID\")||e.getAttribute(\"adID\")||e.getAttribute(\"adId\")||null}var domain;function EventHandlers(){}function EventEmitter(){EventEmitter.init.call(this)}function $getMaxListeners(e){return void 0===e._maxListeners?EventEmitter.defaultMaxListeners:e._maxListeners}function emitNone(e,t,r){if(t)e.call(r);else for(var i=e.length,s=arrayClone(e,i),n=0;n<i;++n)s[n].call(r)}function emitOne(e,t,r,i){if(t)e.call(r,i);else for(var s=e.length,n=arrayClone(e,s),a=0;a<s;++a)n[a].call(r,i)}function emitTwo(e,t,r,i,s){if(t)e.call(r,i,s);else for(var n=e.length,a=arrayClone(e,n),o=0;o<n;++o)a[o].call(r,i,s)}function emitThree(e,t,r,i,s,n){if(t)e.call(r,i,s,n);else for(var a=e.length,o=arrayClone(e,a),l=0;l<a;++l)o[l].call(r,i,s,n)}function emitMany(e,t,r,i){if(t)e.apply(r,i);else for(var s=e.length,n=arrayClone(e,s),a=0;a<s;++a)n[a].apply(r,i)}function _addListener(e,t,r,i){var s,n,a;if(\"function\"!=typeof r)throw new TypeError('\"listener\" argument must be a function');if((n=e._events)?(n.newListener&&(e.emit(\"newListener\",t,r.listener?r.listener:r),n=e._events),a=n[t]):(n=e._events=new EventHandlers,e._eventsCount=0),a){if(\"function\"==typeof a?a=n[t]=i?[r,a]:[a,r]:i?a.unshift(r):a.push(r),!a.warned&&(s=$getMaxListeners(e))&&s>0&&a.length>s){a.warned=!0;var o=new Error(\"Possible EventEmitter memory leak detected. \"+a.length+\" \"+t+\" listeners added. Use emitter.setMaxListeners() to increase limit\");o.name=\"MaxListenersExceededWarning\",o.emitter=e,o.type=t,o.count=a.length,emitWarning(o)}}else a=n[t]=r,++e._eventsCount;return e}function emitWarning(e){\"function\"==typeof console.warn?console.warn(e):console.log(e)}function _onceWrap(e,t,r){var i=!1;function s(){e.removeListener(t,s),i||(i=!0,r.apply(e,arguments))}return s.listener=r,s}function listenerCount(e){var t=this._events;if(t){var r=t[e];if(\"function\"==typeof r)return 1;if(r)return r.length}return 0}function spliceOne(e,t){for(var r=t,i=r+1,s=e.length;i<s;r+=1,i+=1)e[r]=e[i];e.pop()}function arrayClone(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}function unwrapListeners(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function xdr(){let e;return window.XDomainRequest&&(e=new XDomainRequest),e}function supported(){return!!xdr()}function get(e,t,r){let i=\"function\"==typeof window.ActiveXObject?new window.ActiveXObject(\"Microsoft.XMLDOM\"):void 0;if(!i)return r(new Error(\"FlashURLHandler: Microsoft.XMLDOM format not supported\"));i.async=!1,request.open(\"GET\",e),request.timeout=t.timeout||0,request.withCredentials=t.withCredentials||!1,request.send(),request.onprogress=function(){},request.onload=function(){i.loadXML(request.responseText),r(null,i)}}EventHandlers.prototype=Object.create(null),EventEmitter.EventEmitter=EventEmitter,EventEmitter.usingDomains=!1,EventEmitter.prototype.domain=void 0,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.init=function(){this.domain=null,EventEmitter.usingDomains&&(!domain.active||this instanceof domain.Domain||(this.domain=domain.active)),this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new EventHandlers,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},EventEmitter.prototype.setMaxListeners=function(e){if(\"number\"!=typeof e||e<0||isNaN(e))throw new TypeError('\"n\" argument must be a positive number');return this._maxListeners=e,this},EventEmitter.prototype.getMaxListeners=function(){return $getMaxListeners(this)},EventEmitter.prototype.emit=function(e){var t,r,i,s,n,a,o,l=\"error\"===e;if(a=this._events)l=l&&null==a.error;else if(!l)return!1;if(o=this.domain,l){if(t=arguments[1],!o){if(t instanceof Error)throw t;var c=new Error('Uncaught, unspecified \"error\" event. ('+t+\")\");throw c.context=t,c}return t||(t=new Error('Uncaught, unspecified \"error\" event')),t.domainEmitter=this,t.domain=o,t.domainThrown=!1,o.emit(\"error\",t),!1}if(!(r=a[e]))return!1;var p=\"function\"==typeof r;switch(i=arguments.length){case 1:emitNone(r,p,this);break;case 2:emitOne(r,p,this,arguments[1]);break;case 3:emitTwo(r,p,this,arguments[1],arguments[2]);break;case 4:emitThree(r,p,this,arguments[1],arguments[2],arguments[3]);break;default:for(s=new Array(i-1),n=1;n<i;n++)s[n-1]=arguments[n];emitMany(r,p,this,s)}return!0},EventEmitter.prototype.addListener=function(e,t){return _addListener(this,e,t,!1)},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.prependListener=function(e,t){return _addListener(this,e,t,!0)},EventEmitter.prototype.once=function(e,t){if(\"function\"!=typeof t)throw new TypeError('\"listener\" argument must be a function');return this.on(e,_onceWrap(this,e,t)),this},EventEmitter.prototype.prependOnceListener=function(e,t){if(\"function\"!=typeof t)throw new TypeError('\"listener\" argument must be a function');return this.prependListener(e,_onceWrap(this,e,t)),this},EventEmitter.prototype.removeListener=function(e,t){var r,i,s,n,a;if(\"function\"!=typeof t)throw new TypeError('\"listener\" argument must be a function');if(!(i=this._events))return this;if(!(r=i[e]))return this;if(r===t||r.listener&&r.listener===t)0==--this._eventsCount?this._events=new EventHandlers:(delete i[e],i.removeListener&&this.emit(\"removeListener\",e,r.listener||t));else if(\"function\"!=typeof r){for(s=-1,n=r.length;n-- >0;)if(r[n]===t||r[n].listener&&r[n].listener===t){a=r[n].listener,s=n;break}if(s<0)return this;if(1===r.length){if(r[0]=void 0,0==--this._eventsCount)return this._events=new EventHandlers,this;delete i[e]}else spliceOne(r,s);i.removeListener&&this.emit(\"removeListener\",e,a||t)}return this},EventEmitter.prototype.removeAllListeners=function(e){var t,r;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=new EventHandlers,this._eventsCount=0):r[e]&&(0==--this._eventsCount?this._events=new EventHandlers:delete r[e]),this;if(0===arguments.length){for(var i,s=Object.keys(r),n=0;n<s.length;++n)\"removeListener\"!==(i=s[n])&&this.removeAllListeners(i);return this.removeAllListeners(\"removeListener\"),this._events=new EventHandlers,this._eventsCount=0,this}if(\"function\"==typeof(t=r[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},EventEmitter.prototype.listeners=function(e){var t,r=this._events;return r&&(t=r[e])?\"function\"==typeof t?[t.listener||t]:unwrapListeners(t):[]},EventEmitter.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):listenerCount.call(e,t)},EventEmitter.prototype.listenerCount=listenerCount,EventEmitter.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};const flashURLHandler={get:get,supported:supported};function get$1(e,t,r){r(new Error(\"Please bundle the library for node to use the node urlHandler\"))}const nodeURLHandler={get:get$1};function xhr(){try{const e=new window.XMLHttpRequest;return\"withCredentials\"in e?e:null}catch(e){return console.log(\"Error in XHRURLHandler support check:\",e),null}}function supported$1(){return!!xhr()}function get$2(e,t,r){if(\"https:\"===window.location.protocol&&0===e.indexOf(\"http://\"))return r(new Error(\"XHRURLHandler: Cannot go from HTTPS to HTTP.\"));try{const i=xhr();i.open(\"GET\",e),i.timeout=t.timeout||0,i.withCredentials=t.withCredentials||!1,i.overrideMimeType&&i.overrideMimeType(\"text/xml\"),i.onreadystatechange=function(){4===i.readyState&&(200===i.status?r(null,i.responseXML):r(new Error(`XHRURLHandler: ${i.statusText}`)))},i.send()}catch(e){r(new Error(\"XHRURLHandler: Unexpected error\"))}}const XHRURLHandler={get:get$2,supported:supported$1};function get$3(e,t,r){return r||(\"function\"==typeof t&&(r=t),t={}),\"undefined\"==typeof window||null===window?nodeURLHandler.get(e,t,r):XHRURLHandler.supported()?XHRURLHandler.get(e,t,r):flashURLHandler.supported()?flashURLHandler.get(e,t,r):r(new Error(\"Current context is not supported by any of the default URLHandlers. Please provide a custom URLHandler\"))}const urlHandler={get:get$3};class VASTResponse{constructor(){this.ads=[],this.errorURLTemplates=[]}}const DEFAULT_MAX_WRAPPER_DEPTH=10,DEFAULT_EVENT_DATA={ERRORCODE:900,extensions:[]};class VASTParser extends EventEmitter{constructor(){super(),this.remainingAds=[],this.parentURLs=[],this.errorURLTemplates=[],this.rootErrorURLTemplates=[],this.maxWrapperDepth=null,this.URLTemplateFilters=[],this.fetchingOptions={}}addURLTemplateFilter(e){\"function\"==typeof e&&this.URLTemplateFilters.push(e)}removeURLTemplateFilter(){this.URLTemplateFilters.pop()}countURLTemplateFilters(){return this.URLTemplateFilters.length}clearURLTemplateFilters(){this.URLTemplateFilters=[]}trackVastError(e,t,...r){this.emit(\"VAST-error\",Object.assign(DEFAULT_EVENT_DATA,t,...r)),util.track(e,t)}getErrorURLTemplates(){return this.rootErrorURLTemplates.concat(this.errorURLTemplates)}fetchVAST(e,t,r){return new Promise((i,s)=>{this.URLTemplateFilters.forEach(t=>{e=t(e)}),this.parentURLs.push(e),this.emit(\"VAST-resolving\",{url:e,wrapperDepth:t,originalUrl:r}),this.urlHandler.get(e,this.fetchingOptions,(t,r)=>{this.emit(\"VAST-resolved\",{url:e,error:t}),t?s(t):i(r)})})}initParsingStatus(e={}){this.rootURL=\"\",this.remainingAds=[],this.parentURLs=[],this.errorURLTemplates=[],this.rootErrorURLTemplates=[],this.maxWrapperDepth=e.wrapperLimit||DEFAULT_MAX_WRAPPER_DEPTH,this.fetchingOptions={timeout:e.timeout,withCredentials:e.withCredentials},this.urlHandler=e.urlhandler||urlHandler}getRemainingAds(e){if(0===this.remainingAds.length)return Promise.reject(new Error(\"No more ads are available for the given VAST\"));const t=e?util.flatten(this.remainingAds):this.remainingAds.shift();return this.errorURLTemplates=[],this.parentURLs=[],this.resolveAds(t,{wrapperDepth:0,originalUrl:this.rootURL}).then(e=>this.buildVASTResponse(e))}getAndParseVAST(e,t={}){return this.initParsingStatus(t),this.rootURL=e,this.fetchVAST(e).then(r=>(t.originalUrl=e,t.isRootVAST=!0,this.parse(r,t).then(e=>this.buildVASTResponse(e))))}parseVAST(e,t={}){return this.initParsingStatus(t),t.isRootVAST=!0,this.parse(e,t).then(e=>this.buildVASTResponse(e))}buildVASTResponse(e){const t=new VASTResponse;return t.ads=e,t.errorURLTemplates=this.getErrorURLTemplates(),this.completeWrapperResolving(t),t}parse(e,{resolveAll:t=!0,wrapperSequence:r=null,originalUrl:i=null,wrapperDepth:s=0,isRootVAST:n=!1}){if(!e||!e.documentElement||\"VAST\"!==e.documentElement.nodeName)return Promise.reject(new Error(\"Invalid VAST XMLDocument\"));let a=[];const o=e.documentElement.childNodes;for(let e in o){const t=o[e];if(\"Error\"===t.nodeName){const e=parserUtils.parseNodeText(t);n?this.rootErrorURLTemplates.push(e):this.errorURLTemplates.push(e)}if(\"Ad\"===t.nodeName){const e=parseAd(t);e?a.push(e):this.trackVastError(this.getErrorURLTemplates(),{ERRORCODE:101})}}const l=a.length,c=a[l-1];return 1===l&&void 0!==r&&null!==r&&c&&!c.sequence&&(c.sequence=r),!1===t&&(this.remainingAds=parserUtils.splitVAST(a),a=this.remainingAds.shift()),this.resolveAds(a,{wrapperDepth:s,originalUrl:i})}resolveAds(e=[],{wrapperDepth:t,originalUrl:r}){const i=[];return e.forEach(e=>{const s=this.resolveWrappers(e,t,r);i.push(s)}),Promise.all(i).then(e=>{const i=util.flatten(e);if(!i&&this.remainingAds.length>0){const e=this.remainingAds.shift();return this.resolveAds(e,{wrapperDepth:t,originalUrl:r})}return i})}resolveWrappers(e,t,r){return new Promise((i,s)=>{if(t++,!e.nextWrapperURL)return delete e.nextWrapperURL,i(e);if(t>=this.maxWrapperDepth||-1!==this.parentURLs.indexOf(e.nextWrapperURL))return e.errorCode=302,delete e.nextWrapperURL,i(e);e.nextWrapperURL=parserUtils.resolveVastAdTagURI(e.nextWrapperURL,r);const n=e.sequence;r=e.nextWrapperURL,this.fetchVAST(e.nextWrapperURL,t,r).then(s=>this.parse(s,{originalUrl:r,wrapperSequence:n,wrapperDepth:t}).then(t=>{if(delete e.nextWrapperURL,0===t.length)return e.creatives=[],i(e);t.forEach(t=>{t&&parserUtils.mergeWrapperAdData(t,e)}),i(t)})).catch(t=>{e.errorCode=301,e.errorMessage=t.message,i(e)})})}completeWrapperResolving(e){if(0===e.ads.length)this.trackVastError(e.errorURLTemplates,{ERRORCODE:303});else for(let t=e.ads.length-1;t>=0;t--){let r=e.ads[t];(r.errorCode||0===r.creatives.length)&&(this.trackVastError(r.errorURLTemplates.concat(e.errorURLTemplates),{ERRORCODE:r.errorCode||303},{ERRORMESSAGE:r.errorMessage||\"\"},{extensions:r.extensions},{system:r.system}),e.ads.splice(t,1))}}}let storage=null;const DEFAULT_STORAGE={data:{},length:0,getItem(e){return this.data[e]},setItem(e,t){this.data[e]=t,this.length=Object.keys(this.data).length},removeItem(e){delete data[e],this.length=Object.keys(this.data).length},clear(){this.data={},this.length=0}};class Storage{constructor(){this.storage=this.initStorage()}initStorage(){if(storage)return storage;try{storage=\"undefined\"!=typeof window&&null!==window?window.localStorage||window.sessionStorage:null}catch(e){storage=null}return storage&&!this.isStorageDisabled(storage)||(storage=DEFAULT_STORAGE).clear(),storage}isStorageDisabled(e){const t=\"__VASTStorage__\";try{if(e.setItem(t,t),e.getItem(t)!==t)return e.removeItem(t),!0}catch(e){return!0}return e.removeItem(t),!1}getItem(e){return this.storage.getItem(e)}setItem(e,t){return this.storage.setItem(e,t)}removeItem(e){return this.storage.removeItem(e)}clear(){return this.storage.clear()}}class VASTClient{constructor(e,t,r){this.cappingFreeLunch=e||0,this.cappingMinimumTimeInterval=t||0,this.defaultOptions={withCredentials:!1,timeout:0},this.vastParser=new VASTParser,this.storage=r||new Storage,void 0===this.lastSuccessfulAd&&(this.lastSuccessfulAd=0),void 0===this.totalCalls&&(this.totalCalls=0),void 0===this.totalCallsTimeout&&(this.totalCallsTimeout=0)}getParser(){return this.vastParser}get lastSuccessfulAd(){return this.storage.getItem(\"vast-client-last-successful-ad\")}set lastSuccessfulAd(e){this.storage.setItem(\"vast-client-last-successful-ad\",e)}get totalCalls(){return this.storage.getItem(\"vast-client-total-calls\")}set totalCalls(e){this.storage.setItem(\"vast-client-total-calls\",e)}get totalCallsTimeout(){return this.storage.getItem(\"vast-client-total-calls-timeout\")}set totalCallsTimeout(e){this.storage.setItem(\"vast-client-total-calls-timeout\",e)}hasRemainingAds(){return this.vastParser.remainingAds.length>0}getNextAds(e){return this.vastParser.getRemainingAds(e)}get(e,t={}){const r=Date.now();return(t=Object.assign(this.defaultOptions,t)).hasOwnProperty(\"resolveAll\")||(t.resolveAll=!1),this.totalCallsTimeout<r?(this.totalCalls=1,this.totalCallsTimeout=r+36e5):this.totalCalls++,new Promise((i,s)=>{if(this.cappingFreeLunch>=this.totalCalls)return s(new Error(`VAST call canceled – FreeLunch capping not reached yet ${this.totalCalls}/${this.cappingFreeLunch}`));const n=r-this.lastSuccessfulAd;if(n<0)this.lastSuccessfulAd=0;else if(n<this.cappingMinimumTimeInterval)return s(new Error(`VAST call canceled – (${this.cappingMinimumTimeInterval})ms minimum interval reached`));this.vastParser.getAndParseVAST(e,t).then(e=>i(e)).catch(e=>s(e))})}}const DEFAULT_SKIP_DELAY=-1;class VASTTracker extends EventEmitter{constructor(e,t,r,i=null){super(),this.ad=t,this.creative=r,this.variation=i,this.muted=!1,this.impressed=!1,this.skippable=!1,this.trackingEvents={},this._alreadyTriggeredQuartiles={},this.emitAlwaysEvents=[\"creativeView\",\"start\",\"firstQuartile\",\"midpoint\",\"thirdQuartile\",\"complete\",\"resume\",\"pause\",\"rewind\",\"skip\",\"closeLinear\",\"close\"];for(let e in this.creative.trackingEvents){const t=this.creative.trackingEvents[e];this.trackingEvents[e]=t.slice(0)}this.creative instanceof CreativeLinear?this._initLinearTracking():this._initVariationTracking(),e&&this.on(\"start\",()=>{e.lastSuccessfulAd=Date.now()})}_initLinearTracking(){this.linear=!0,this.skipDelay=this.creative.skipDelay,this.setDuration(this.creative.duration),this.clickThroughURLTemplate=this.creative.videoClickThroughURLTemplate,this.clickTrackingURLTemplates=this.creative.videoClickTrackingURLTemplates}_initVariationTracking(){if(this.linear=!1,this.skipDelay=DEFAULT_SKIP_DELAY,this.variation){for(let e in this.variation.trackingEvents){const t=this.variation.trackingEvents[e];this.trackingEvents[e]?this.trackingEvents[e]=this.trackingEvents[e].concat(t.slice(0)):this.trackingEvents[e]=t.slice(0)}this.variation instanceof NonLinearAd?(this.clickThroughURLTemplate=this.variation.nonlinearClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.nonlinearClickTrackingURLTemplates,this.setDuration(this.variation.minSuggestedDuration)):this.variation instanceof CompanionAd&&(this.clickThroughURLTemplate=this.variation.companionClickThroughURLTemplate,this.clickTrackingURLTemplates=this.variation.companionClickTrackingURLTemplates)}}setDuration(e){this.assetDuration=e,this.quartiles={firstQuartile:Math.round(25*this.assetDuration)/100,midpoint:Math.round(50*this.assetDuration)/100,thirdQuartile:Math.round(75*this.assetDuration)/100}}setProgress(e){const t=this.skipDelay||DEFAULT_SKIP_DELAY;if(-1===t||this.skippable||(t>e?this.emit(\"skip-countdown\",t-e):(this.skippable=!0,this.emit(\"skip-countdown\",0))),this.assetDuration>0){const t=[];if(e>0){const r=Math.round(e/this.assetDuration*100);t.push(\"start\"),t.push(`progress-${r}%`),t.push(`progress-${Math.round(e)}`);for(let r in this.quartiles)this.isQuartileReached(r,this.quartiles[r],e)&&(t.push(r),this._alreadyTriggeredQuartiles[r]=!0)}t.forEach(e=>{this.track(e,!0)}),e<this.progress&&this.track(\"rewind\")}this.progress=e}isQuartileReached(e,t,r){let i=!1;return t<=r&&!this._alreadyTriggeredQuartiles[e]&&(i=!0),i}setMuted(e){this.muted!==e&&this.track(e?\"mute\":\"unmute\"),this.muted=e}setPaused(e){this.paused!==e&&this.track(e?\"pause\":\"resume\"),this.paused=e}setFullscreen(e){this.fullscreen!==e&&this.track(e?\"fullscreen\":\"exitFullscreen\"),this.fullscreen=e}setExpand(e){this.expanded!==e&&this.track(e?\"expand\":\"collapse\"),this.expanded=e}setSkipDelay(e){\"number\"==typeof e&&(this.skipDelay=e)}trackImpression(){this.impressed||(this.impressed=!0,this.trackURLs(this.ad.impressionURLTemplates),this.track(\"creativeView\"))}errorWithCode(e){this.trackURLs(this.ad.errorURLTemplates,{ERRORCODE:e})}complete(){this.track(\"complete\")}close(){this.track(this.linear?\"closeLinear\":\"close\")}skip(){this.track(\"skip\"),this.trackingEvents=[]}click(e=null){this.clickTrackingURLTemplates&&this.clickTrackingURLTemplates.length&&this.trackURLs(this.clickTrackingURLTemplates);const t=this.clickThroughURLTemplate||e;if(t){const e=this.linear?{CONTENTPLAYHEAD:this.progressFormatted()}:{},r=util.resolveURLTemplates([t],e)[0];this.emit(\"clickthrough\",r)}}track(e,t=!1){\"closeLinear\"===e&&!this.trackingEvents[e]&&this.trackingEvents.close&&(e=\"close\");const r=this.trackingEvents[e],i=this.emitAlwaysEvents.indexOf(e)>-1;r?(this.emit(e,\"\"),this.trackURLs(r)):i&&this.emit(e,\"\"),t&&(delete this.trackingEvents[e],i&&this.emitAlwaysEvents.splice(this.emitAlwaysEvents.indexOf(e),1))}trackURLs(e,t={}){this.linear&&(this.creative&&this.creative.mediaFiles&&this.creative.mediaFiles[0]&&this.creative.mediaFiles[0].fileURL&&(t.ASSETURI=this.creative.mediaFiles[0].fileURL),t.CONTENTPLAYHEAD=this.progressFormatted()),util.track(e,t)}progressFormatted(){const e=parseInt(this.progress);let t=e/3600;t.length<2&&(t=`0${t}`);let r=e/60%60;r.length<2&&(r=`0${r}`);let i=e%60;return i.length<2&&(i=`0${r}`),`${t}:${r}:${i}.${parseInt(100*(this.progress-e))}`}}export{VASTClient,VASTParser,VASTTracker};","import API from 'api/Api';\r\nimport {isWebRTC, checkAndGetContainerElement} from 'utils/validator';\r\nimport _ from \"utils/underscore\";\r\n\r\n/**\r\n * Main OvenPlayerSDK object\r\n */\r\nfunction ovenPlayerFactory() {\r\n\r\n    const OvenPlayerSDK = {};\r\n\r\n    const playerList = OvenPlayerSDK.playerList = [];\r\n\r\n    /**\r\n     * Create player instance and return it.\r\n     *\r\n     * @param      {string | dom element} container  Id of container element or container element\r\n     * @param      {object} options  The options\r\n     */\r\n    OvenPlayerSDK.create = function (container, options) {\r\n\r\n        if (!window.OvenPlayerConsole || Object.keys(window.OvenPlayerConsole).length === 0) {\r\n            window.OvenPlayerConsole = {};\r\n            OvenPlayerConsole['log'] = function () {\r\n            };\r\n        }\r\n\r\n        let containerElement = checkAndGetContainerElement(container);\r\n\r\n        const playerInstance = API(containerElement);\r\n        playerInstance.init(options);\r\n\r\n        playerList.push(playerInstance);\r\n\r\n        return playerInstance;\r\n    };\r\n\r\n    /**\r\n     * Gets the player instance list.\r\n     *\r\n     * @return     {array}  The player list.\r\n     */\r\n    OvenPlayerSDK.getPlayerList = function () {\r\n\r\n        return playerList;\r\n    };\r\n\r\n    /**\r\n     * Gets the player instance by container id.\r\n     *\r\n     * @param      {string}  containerId  The container identifier\r\n     * @return     {obeject | null}  The player instance.\r\n     */\r\n    OvenPlayerSDK.getPlayerByContainerId = function (containerId) {\r\n\r\n        for (let i = 0; i < playerList.length; i++) {\r\n\r\n            if (playerList[i].getContainerId() === containerId) {\r\n\r\n                return playerList[i];\r\n            }\r\n        }\r\n\r\n        return null;\r\n    };\r\n\r\n    /**\r\n     * Gets the player instance by index.\r\n     *\r\n     * @param      {number}  index   The index\r\n     * @return     {object | null}  The player instance.\r\n     */\r\n    OvenPlayerSDK.getPlayerByIndex = function (index) {\r\n\r\n        const playerInstance = playerList[index];\r\n\r\n        if (playerInstance) {\r\n\r\n            return playerInstance;\r\n        } else {\r\n\r\n            return null;\r\n        }\r\n    };\r\n\r\n    /**\r\n     * Remove the player instance by playerInstance.\r\n     *\r\n     * @param      {playerInstance}  playerInstance\r\n     * @return     {null}\r\n     */\r\n    OvenPlayerSDK.removePlayer = function (playerInstance) {\r\n\r\n        for (let i = 0; i < playerList.length; i++) {\r\n\r\n            if (playerList[i] === playerInstance) {\r\n                playerList.splice(i, 1);\r\n            }\r\n        }\r\n    };\r\n\r\n    /**\r\n     * Generate webrtc source for player source type.\r\n     *\r\n     * @param      {Object | Array}  source   webrtc source\r\n     * @return     {Array}  Player source Object.\r\n     */\r\n    OvenPlayerSDK.generateWebrtcUrls = function (sources) {\r\n        return (_.isArray(sources) ? sources : [sources]).map(function (source, index) {\r\n            if (source.host && isWebRTC(source.host) && source.application && source.stream) {\r\n                return {\r\n                    file: source.host + \"/\" + source.application + \"/\" + source.stream,\r\n                    type: \"webrtc\",\r\n                    label: source.label ? source.label : \"webrtc-\" + (index + 1)\r\n                };\r\n            }\r\n        });\r\n    };\r\n\r\n    /**\r\n     * Whether show the player core log or not.\r\n     *\r\n     * @param      {boolean}  boolean   run debug mode or not.\r\n     * @return     {boolean}  run debug mode or not.\r\n     */\r\n    OvenPlayerSDK.debug = function (isDebugMode) {\r\n\r\n        if (isDebugMode) {\r\n            window.OvenPlayerConsole = {log: window['console']['log']};\r\n        } else {\r\n            window.OvenPlayerConsole = {\r\n                log: function () {\r\n                }\r\n            };\r\n        }\r\n        return isDebugMode;\r\n    };\r\n\r\n    return OvenPlayerSDK;\r\n}\r\n\r\n\r\nexport default ovenPlayerFactory();\r\n","/**\r\n * Created by hoho on 25/06/2019.\r\n */\r\n\r\nimport { VASTClient, VASTTracker } from 'utils/vast-client';\r\nimport AdsEventsListener from \"api/ads/vast/Listener\";\r\nimport {TEMP_VIDEO_URL} from \"api/ads/utils\";\r\nimport {\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n    STATE_AD_ERROR,\r\n    CONTENT_META,\r\n    PROVIDER_DASH\r\n} from \"api/constants\";\r\n\r\nconst Ad = function(elVideo, provider, playerConfig, adTagUrl){\r\n    const AUTOPLAY_NOT_ALLOWED = \"autoplayNotAllowed\";\r\n\r\n    let that = {};\r\n    let spec = {\r\n        started: false, //player started\r\n        active : false, //on Ad\r\n        isVideoEnded : false,\r\n        lang : playerConfig.getLanguage()\r\n    };\r\n    let adsErrorOccurred = false;\r\n    let listener = null;\r\n\r\n    let container = \"\";\r\n    let elAdVideo = null;\r\n    let textView = \"\";\r\n    let adButton = \"\";\r\n\r\n    let autoplayAllowed = false, autoplayRequiresMuted = false;\r\n    let browser = playerConfig.getBrowser();\r\n    let isMobile = browser.os === \"Android\" || browser.os === \"iOS\";\r\n\r\n    const createAdContainer = () => {\r\n        let adContainer = document.createElement('div');\r\n        adContainer.setAttribute('class', 'op-ads');\r\n        adContainer.setAttribute('id', 'op-ads');\r\n        playerConfig.getContainer().append(adContainer);\r\n\r\n        elAdVideo = document.createElement('video');\r\n        elAdVideo.setAttribute('playsinline', 'true');\r\n        elAdVideo.setAttribute('title', 'Advertisement');\r\n        elAdVideo.setAttribute('class', 'op-ads-vast-video');\r\n\r\n        adButton = document.createElement('div');\r\n        adButton.setAttribute('class', 'op-ads-button');\r\n\r\n        textView = document.createElement('div');\r\n        textView.setAttribute('class', 'op-ads-textview');\r\n\r\n        adButton.append(textView);\r\n        adContainer.append(elAdVideo);\r\n        adContainer.append(adButton);\r\n\r\n        return adContainer;\r\n    };\r\n\r\n    container = createAdContainer();\r\n\r\n    let vastClient = new VASTClient();\r\n    let vastTracker = null;\r\n    let ad = null;\r\n\r\n\r\n    const OnAdError = function(error){\r\n        console.log(error);\r\n        adsErrorOccurred = true;\r\n        elAdVideo.style.display = \"none\";\r\n        provider.trigger(STATE_AD_ERROR, {code : error.code, message : error.message});\r\n        spec.active = false;\r\n        spec.started = true;\r\n        provider.play();\r\n    };\r\n\r\n    const initRequest = function () {\r\n        vastClient.get(adTagUrl) .then(res => {\r\n            // Do something with the parsed VAST response\r\n            OvenPlayerConsole.log(\"VAST : initRequest()\");\r\n            ad = res.ads[0];\r\n            if(!ad){\r\n                throw {code : 401, message : \"File not found. Unable to find Linear/MediaFile from URI.\"};\r\n            }\r\n            vastTracker = new VASTTracker(vastClient, ad, ad.creatives[0]);\r\n\r\n            OvenPlayerConsole.log(\"VAST : created ad tracker.\");\r\n\r\n            listener = AdsEventsListener(elAdVideo, vastTracker, provider, spec, adButton, textView, OnAdError);\r\n\r\n            let videoURL =  \"\";\r\n            if(ad.creatives && ad.creatives.length > 0 && ad.creatives[0].mediaFiles && ad.creatives[0].mediaFiles.length > 0 && ad.creatives[0].mediaFiles[0].fileURL){\r\n                videoURL = ad.creatives[0].mediaFiles[0].fileURL;\r\n                OvenPlayerConsole.log(\"VAST : media url : \", videoURL);\r\n            }\r\n            elAdVideo.src = videoURL;\r\n\r\n            //keep volume even if playlist item changes.\r\n            elAdVideo.volume = elVideo.volume;\r\n            elAdVideo.muted = elVideo.muted;\r\n\r\n        }).catch(function(error){\r\n            OnAdError(error);\r\n        });\r\n\r\n    };\r\n\r\n\r\n\r\n    const checkAutoplaySupport = function () {\r\n        OvenPlayerConsole.log(\"VAST : checkAutoplaySupport() \");\r\n\r\n        let temporarySupportCheckVideo = document.createElement('video');\r\n        temporarySupportCheckVideo.setAttribute('playsinline', 'true');\r\n        temporarySupportCheckVideo.src = TEMP_VIDEO_URL;\r\n        temporarySupportCheckVideo.load();\r\n\r\n\r\n        elAdVideo.load();   //for ios User Interaction problem\r\n        //Dash has already loaded when triggered provider.play() always.\r\n        if(isMobile && provider.getName() !== PROVIDER_DASH ){\r\n            //Main video sets user gesture when temporarySupportCheckVideo triggered checking.\r\n            elVideo.load();\r\n        }\r\n        const clearAndReport = function(_autoplayAllowed, _autoplayRequiresMuted){\r\n            autoplayAllowed = _autoplayAllowed;\r\n            autoplayRequiresMuted = _autoplayRequiresMuted;\r\n            temporarySupportCheckVideo.pause();\r\n            temporarySupportCheckVideo.remove();\r\n        };\r\n\r\n        return new Promise(function(resolve, reject){\r\n            if(!temporarySupportCheckVideo.play){\r\n                //I can't remember this case...\r\n                OvenPlayerConsole.log(\"VAST : !temporarySupportCheckVideo.play\");\r\n                clearAndReport(true, false);\r\n                resolve();\r\n            }else{\r\n                let playPromise = temporarySupportCheckVideo.play();\r\n                if (playPromise !== undefined) {\r\n                    playPromise.then(function(){\r\n                        OvenPlayerConsole.log(\"VAST : auto play allowed.\");\r\n                        // If we make it here, unmuted autoplay works.\r\n                        clearAndReport(true, false);\r\n                        resolve();\r\n                    }).catch(function(error){\r\n                        OvenPlayerConsole.log(\"VAST : auto play failed\", error.message);\r\n                        clearAndReport(false, false);\r\n                        resolve();\r\n                    });\r\n                }else{\r\n                    OvenPlayerConsole.log(\"VAST : promise not support\");\r\n                    //Maybe this is IE11....\r\n                    clearAndReport(true, false);\r\n                    resolve();\r\n                }\r\n            }\r\n        });\r\n    }\r\n    that.isActive = () => {\r\n        return spec.active;\r\n    };\r\n    that.started = () => {\r\n        return spec.started;\r\n    };\r\n    that.play = () => {\r\n        if(spec.started){\r\n            return elAdVideo.play();\r\n        }else{\r\n            return new Promise(function (resolve, reject) {\r\n\r\n                const checkMainContentLoaded = function(){\r\n\r\n                    //wait for main contents meta loaded.\r\n                    //have to trigger CONTENT_META first. next trigger AD_CHANGED.\r\n                    //initControlUI first ->  init ad UI\r\n                    //Maybe google ima waits content loaded internal.\r\n                    if(provider.metaLoaded()){\r\n                        OvenPlayerConsole.log(\"VAST : main contents meta loaded.\");\r\n                        checkAutoplaySupport().then(function(){\r\n                            if( (playerConfig.isAutoStart() && !autoplayAllowed) ){\r\n                                OvenPlayerConsole.log(\"VAST : autoplayAllowed : false\");\r\n                                spec.started = false;\r\n                                reject(new Error(AUTOPLAY_NOT_ALLOWED));\r\n                            }else{\r\n                                initRequest();\r\n\r\n                                resolve();\r\n                            }\r\n                        });\r\n\r\n                    }else{\r\n                        setTimeout(checkMainContentLoaded, 100);\r\n                    }\r\n\r\n                };\r\n                checkMainContentLoaded();\r\n\r\n            });\r\n        }\r\n    };\r\n    that.pause = () => {\r\n        elAdVideo.pause();\r\n    };\r\n\r\n    //End Of Main Contents.\r\n    that.videoEndedCallback = (completeContentCallback) => {\r\n\r\n        completeContentCallback();\r\n        //check true when main contents ended.\r\n        spec.isVideoEnded = true;\r\n    };\r\n    that.destroy = () => {\r\n        if(listener){\r\n            listener.destroy();\r\n            listener = null;\r\n        }\r\n        vastTracker = null;\r\n        vastClient = null;\r\n\r\n        container.remove();\r\n\r\n    };\r\n    return that;\r\n};\r\n\r\nexport default Ad;","/**\r\n * Created by hoho on 26/06/2019.\r\n */\r\nimport {\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n    AD_CHANGED,\r\n    AD_TIME,\r\n    STATE_PAUSED,\r\n    STATE_ERROR,\r\n    CONTENT_COMPLETE,\r\n    CONTENT_SEEK,\r\n    CONTENT_BUFFER_FULL,\r\n    CONTENT_SEEKED,\r\n    CONTENT_BUFFER,\r\n    CONTENT_TIME,\r\n    CONTENT_VOLUME,\r\n    CONTENT_META,\r\n    PLAYER_UNKNWON_ERROR,\r\n    PLAYER_UNKNWON_OPERATION_ERROR,\r\n    PLAYER_UNKNWON_NETWORK_ERROR,\r\n    PLAYER_UNKNWON_DECODE_ERROR,\r\n    PLAYER_FILE_ERROR,\r\n    PLAYER_STATE,\r\n    PLAYER_CLICKED,\r\n    PLAYER_AD_CLICK,\r\n    PROVIDER_HTML5,\r\n    PROVIDER_WEBRTC,\r\n    PROVIDER_DASH,\r\n    PROVIDER_HLS\r\n} from \"api/constants\";\r\nimport LA$ from \"utils/likeA$.js\";\r\n\r\nconst Listener = function(elAdVideo, vastTracker, provider, adsSpec, adButton, textView, OnAdError){\r\n    const lowLevelEvents = {};\r\n    let that = {};\r\n    const MEDIAFILE_PLAYBACK_ERROR = '405';\r\n\r\n    let $textView = LA$(textView);\r\n    let $adButton = LA$(adButton);\r\n    let $elAdVideo = LA$(elAdVideo);\r\n\r\n    provider.on(CONTENT_VOLUME, function(data) {\r\n        if(data.mute){\r\n            elAdVideo.muted = true;\r\n        }else{\r\n            elAdVideo.muted = false;\r\n            elAdVideo.volume = data.volume/100;\r\n        }\r\n    }, that);\r\n\r\n    //Like a CONTENT_RESUME_REQUESTED\r\n    const processEndOfAd = function(){\r\n        adsSpec.active = false;\r\n\r\n        $adButton.hide();\r\n\r\n        if(adsSpec.started && (provider.getPosition() === 0 || !adsSpec.isVideoEnded)  ){\r\n            $elAdVideo.hide();\r\n            provider.play();\r\n        }\r\n        provider.trigger(STATE_AD_COMPLETE);\r\n    };\r\n    //Like a CONTENT_PAUSE_REQUESTED\r\n    const processStartOfAd = function(){\r\n\r\n        $elAdVideo.show();\r\n        $adButton.show();\r\n\r\n    };\r\n    const skipButtonClicked = function(event){\r\n        if($textView.hasClass(\"videoAdUiAction\")){\r\n            vastTracker.skip();\r\n            elAdVideo.pause();\r\n            processEndOfAd();\r\n        }\r\n    };\r\n\r\n    textView.addEventListener(\"click\", skipButtonClicked, false);\r\n\r\n\r\n    lowLevelEvents.error = function(){\r\n        OvenPlayerConsole.log(\"VAST : listener : error.\", elAdVideo.error);\r\n        console.log(\"VAST : listener : error.\", elAdVideo.error);\r\n        let error = {};\r\n        const code = (elAdVideo.error && elAdVideo.error.code) || 0;\r\n\r\n        if(code === 2) {\r\n            error.code = 402;\r\n            error.message = \"Timeout of MediaFile URI.\";\r\n        }else if(code === 3){\r\n            error.code = 405;\r\n            error.message = \"Problem displaying MediaFile. Video player found a MediaFile with supported type but couldn’t display it. MediaFile may include: unsupported codecs, different MIME type than MediaFile@type, unsupported delivery method, etc.\";\r\n        }else if(code === 4){\r\n            error.code = 403;\r\n            error.message = \"Couldn’t find MediaFile that is supported by this video player, based on the attributes of the MediaFile element.\";\r\n        }else{\r\n            error.code = 400;\r\n            error.message = \"General Linear error. Video player is unable to display the Linear Ad.\";\r\n        }\r\n        vastTracker.errorWithCode(error.code);\r\n        OnAdError(MEDIAFILE_PLAYBACK_ERROR);\r\n    };\r\n\r\n    lowLevelEvents.canplay = function(){\r\n\r\n    };\r\n    lowLevelEvents.ended = function(){\r\n        vastTracker.complete();\r\n\r\n        processEndOfAd();\r\n    };\r\n    lowLevelEvents.click = function(event){\r\n        vastTracker.click();\r\n    };\r\n    lowLevelEvents.play = function(){\r\n        vastTracker.setPaused(false);\r\n    };\r\n    lowLevelEvents.pause = function(){\r\n        vastTracker.setPaused(true);\r\n    };\r\n    lowLevelEvents.timeupdate = function(event){\r\n        vastTracker.setProgress(event.target.currentTime);\r\n        provider.trigger(AD_TIME, {\r\n            duration : elAdVideo.duration,\r\n            position : elAdVideo.currentTime\r\n        });\r\n    };\r\n    lowLevelEvents.volumechange = function(event){\r\n        OvenPlayerConsole.log(\"VAST : listener : Ad Video Volumechange.\");\r\n        vastTracker.setMuted(event.target.muted);\r\n    };\r\n    lowLevelEvents.loadedmetadata = function(){\r\n        OvenPlayerConsole.log(\"VAST : listener : Ad CONTENT LOADED .\");\r\n\r\n        //Flash play is very fast...\r\n        if(STATE_PLAYING === provider.getState()){\r\n            provider.pause();\r\n        }\r\n\r\n        vastTracker.trackImpression();\r\n\r\n        provider.trigger(STATE_AD_LOADED, {remaining : elAdVideo.duration, isLinear : true});\r\n        elAdVideo.play();\r\n    };\r\n\r\n    vastTracker.on('skip', () => {\r\n        // skip tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : skipped\");\r\n    });\r\n\r\n    vastTracker.on('mute', () => {\r\n        // mute tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : muted\");\r\n    });\r\n\r\n    vastTracker.on('unmute', () => {\r\n        // unmute tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : unmuted\");\r\n    });\r\n\r\n    vastTracker.on('resume', () => {\r\n        // resume tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : vastTracker resumed.\");\r\n\r\n        //prevent to set STATE_AD_PLAYING when first play.\r\n        if(adsSpec.started){\r\n            provider.setState(STATE_AD_PLAYING);\r\n        }\r\n\r\n    });\r\n    vastTracker.on('pause', () => {\r\n        // pause tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : vastTracker paused.\");\r\n        provider.setState(STATE_AD_PAUSED);\r\n    });\r\n\r\n    vastTracker.on('clickthrough', url => {\r\n        // Open the resolved clickThrough url\r\n        OvenPlayerConsole.log(\"VAST : listener : clickthrough :\", url);\r\n        //document.location.href = url;\r\n        window.open(url, '_blank');\r\n\r\n    });\r\n\r\n    vastTracker.on('skip-countdown', (data) => {\r\n        if(data === 0){\r\n            if(adsSpec.lang === \"ko\"){\r\n                $textView.html(\"광고 건너뛰기<i class='op-con op-arrow-right btn-right'></i>\");\r\n            }else{\r\n                $textView.html(\"Ad Skip<i class='op-con op-arrow-right btn-right'></i>\");\r\n            }\r\n            $textView.addClass(\"videoAdUiAction\");\r\n        }else{\r\n            if(adsSpec.lang === \"ko\"){\r\n                $textView.html((parseInt(data)+1)+\"초 후에 이 광고를 건너뛸 수 있습니다.\");\r\n            }else{\r\n                $textView.html(\"You can skip this ad in \"+(parseInt(data)+1));\r\n\r\n            }\r\n        }\r\n    });\r\n    vastTracker.on('rewind', () => {\r\n        OvenPlayerConsole.log(\"VAST : listener : rewind\");\r\n    });\r\n\r\n    vastTracker.on('start', () => {\r\n        OvenPlayerConsole.log(\"VAST : listener : started\");\r\n\r\n        adsSpec.started = true;\r\n        adsSpec.active = true;\r\n        processStartOfAd();\r\n\r\n        provider.trigger(AD_CHANGED, {isLinear : true});\r\n        provider.setState(STATE_AD_PLAYING);\r\n    });\r\n    vastTracker.on('firstQuartile', () => {\r\n        // firstQuartile tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : firstQuartile\");\r\n    });\r\n    vastTracker.on('midpoint', () => {\r\n        OvenPlayerConsole.log(\"VAST : listener : midpoint\");\r\n    });\r\n    vastTracker.on('thirdQuartile', () => {\r\n        OvenPlayerConsole.log(\"VAST : listener : thirdQuartile\");\r\n    });\r\n\r\n    vastTracker.on('creativeView', () => {\r\n        // impression tracking URLs have been called\r\n        OvenPlayerConsole.log(\"VAST : listener : creativeView\");\r\n\r\n    });\r\n\r\n    Object.keys(lowLevelEvents).forEach(eventName => {\r\n        elAdVideo.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        elAdVideo.addEventListener(eventName, lowLevelEvents[eventName]);\r\n    });\r\n\r\n    that.destroy = () =>{\r\n        OvenPlayerConsole.log(\"EventListener : destroy()\");\r\n        textView.removeEventListener(\"click\", skipButtonClicked, false);\r\n        Object.keys(lowLevelEvents).forEach(eventName => {\r\n            elAdVideo.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        });\r\n    };\r\n    return that;\r\n};\r\n\r\nexport default Listener;","/**\r\n * Created by hoho on 2018. 6. 27..\r\n */\r\nimport Ima from \"api/ads/ima/Ad\";\r\nimport Vast from \"api/ads/vast/Ad\";\r\nimport EventEmitter from \"api/EventEmitter\";\r\nimport EventsListener from \"api/provider/html5/Listener\";\r\nimport { pickCurrentSource } from \"api/provider/utils\";\r\nimport {\r\n    WARN_MSG_MUTEDPLAY,\r\n    UI_ICONS, PLAYER_WARNING,\r\n    STATE_IDLE, STATE_PLAYING, STATE_PAUSED, STATE_COMPLETE, STATE_ERROR,\r\n    PLAYER_STATE, PLAYER_COMPLETE, PLAYER_PAUSE, PLAYER_PLAY, STATE_AD_PLAYING, STATE_AD_PAUSED,\r\n    CONTENT_META, CONTENT_TIME, CONTENT_CAPTION_CUE_CHANGED, CONTENT_SOURCE_CHANGED,\r\n    AD_CLIENT_GOOGLEIMA, AD_CLIENT_VAST,\r\n    PLAYBACK_RATE_CHANGED, CONTENT_MUTE, PROVIDER_HTML5, PROVIDER_WEBRTC, PROVIDER_DASH, PROVIDER_HLS\r\n} from \"api/constants\";\r\n\r\n/**\r\n * @brief   Core For Html5 Video.\r\n * @param   spec member value\r\n * @param   playerConfig  player config\r\n * @param   onExtendedLoad on load handler\r\n * */\r\nconst Provider = function (spec, playerConfig, onExtendedLoad) {\r\n    OvenPlayerConsole.log(\"[Provider] loaded. \");\r\n\r\n    let that = {};\r\n    EventEmitter(that);\r\n\r\n    let dashAttachedView = false;\r\n\r\n    let elVideo = spec.element;\r\n    let ads = null, listener = null, videoEndedCallback = null;\r\n\r\n    let isPlayingProcessing = false;\r\n\r\n    if (spec.adTagUrl) {\r\n        OvenPlayerConsole.log(\"[Provider] Ad Client - \", playerConfig.getAdClient());\r\n        if (playerConfig.getAdClient() === AD_CLIENT_VAST) {\r\n            ads = Vast(elVideo, that, playerConfig, spec.adTagUrl);\r\n        } else {\r\n            ads = Ima(elVideo, that, playerConfig, spec.adTagUrl);\r\n        }\r\n\r\n        if (!ads) {\r\n            console.log(\"Can not load due to google ima for Ads.\");\r\n        }\r\n    }\r\n\r\n    listener = EventsListener(elVideo, that, ads ? ads.videoEndedCallback : null, playerConfig);\r\n    elVideo.playbackRate = elVideo.defaultPlaybackRate = playerConfig.getPlaybackRate();\r\n\r\n    const _load = (lastPlayPosition) => {\r\n\r\n        const source = spec.sources[spec.currentSource];\r\n        spec.framerate = source.framerate;\r\n\r\n        that.setVolume(playerConfig.getVolume());\r\n\r\n        if (!spec.framerate) {\r\n            //init timecode mode\r\n            playerConfig.setTimecodeMode(true);\r\n        }\r\n        if (onExtendedLoad) {\r\n            onExtendedLoad(source, lastPlayPosition);\r\n\r\n        } else {\r\n\r\n            OvenPlayerConsole.log(\"source loaded : \", source, \"lastPlayPosition : \" + lastPlayPosition);\r\n\r\n            let previousSource = elVideo.src;\r\n\r\n            // const sourceElement = document.createElement('source');\r\n            // sourceElement.src = source.file;\r\n\r\n            const sourceChanged = (source.file !== previousSource);\r\n\r\n            if (sourceChanged) {\r\n\r\n                elVideo.src = source.file;\r\n\r\n                //Don't use this. https://stackoverflow.com/questions/30637784/detect-an-error-on-html5-video\r\n                //elVideo.append(sourceElement);\r\n\r\n                // Do not call load if src was not set. load() will cancel any active play promise.\r\n                if (previousSource || previousSource === '') {\r\n\r\n                    elVideo.load();\r\n                }\r\n\r\n            }\r\n\r\n            that.on(CONTENT_META, function () {\r\n                if (lastPlayPosition > 0) {\r\n                    that.seek(lastPlayPosition);\r\n                }\r\n            });\r\n        }\r\n\r\n    };\r\n\r\n    that.getName = () => {\r\n        return spec.name;\r\n    };\r\n    that.getMse = () => {\r\n        return spec.mse;\r\n    };\r\n    that.getMediaElement = () => {\r\n        return spec.element;\r\n    };\r\n    that.canSeek = () => {\r\n        return spec.canSeek;\r\n    };\r\n    that.setCanSeek = (canSeek) => {\r\n        spec.canSeek = canSeek;\r\n    };\r\n    that.isSeeking = () => {\r\n        return spec.seeking;\r\n    };\r\n    that.setSeeking = (seeking) => {\r\n        spec.seeking = seeking;\r\n    };\r\n    that.setMetaLoaded = () => {\r\n        spec.isLoaded = true;\r\n    };\r\n    that.metaLoaded = () => {\r\n        return spec.isLoaded;\r\n    };\r\n\r\n    that.setState = (newState) => {\r\n        if (spec.state !== newState) {\r\n            let prevState = spec.state;\r\n\r\n            OvenPlayerConsole.log(\"Provider : setState()\", newState);\r\n\r\n            //ToDo : This is temporary code. If main video occur error, player avoid error message on ad playing.\r\n            if (prevState === STATE_AD_PLAYING && (newState === STATE_ERROR || newState === STATE_IDLE)) {\r\n                return false;\r\n            }\r\n\r\n            /*\r\n             * 2019-06-13\r\n             * No more necessary this codes.\r\n             * Checking the autoPlay support was using main video element. elVideo.play() -> yes or no??\r\n             * And then that causes triggering play and pause event.\r\n             * And that checking waits for elVideo loaded. Dash load completion time is unknown.\r\n             * Then I changed check method. I make temporary video tag and insert empty video.\r\n             * */\r\n            //if ((prevState === STATE_AD_PLAYING || prevState === STATE_AD_PAUSED ) && (newState === STATE_PAUSED || newState === STATE_PLAYING)) {\r\n            //    return false;\r\n            //Ads checks checkAutoplaySupport(). It calls real play() and pause() to video element.\r\n            //And then that triggers \"playing\" and \"pause\".\r\n            //I prevent these process.\r\n            //}\r\n\r\n            OvenPlayerConsole.log(\"Provider : triggerSatatus\", newState);\r\n            switch (newState) {\r\n                case STATE_COMPLETE:\r\n                    that.trigger(PLAYER_COMPLETE);\r\n                    break;\r\n                case STATE_PAUSED:\r\n                    that.trigger(PLAYER_PAUSE, {\r\n                        prevState: spec.state,\r\n                        newstate: STATE_PAUSED\r\n                    });\r\n                    break;\r\n                case STATE_AD_PAUSED:\r\n                    that.trigger(PLAYER_PAUSE, {\r\n                        prevState: spec.state,\r\n                        newstate: STATE_AD_PAUSED\r\n                    });\r\n                    break;\r\n                case STATE_PLAYING:\r\n                    that.trigger(PLAYER_PLAY, {\r\n                        prevState: spec.state,\r\n                        newstate: STATE_PLAYING\r\n                    });\r\n                    break;\r\n                case STATE_AD_PLAYING:\r\n                    that.trigger(PLAYER_PLAY, {\r\n                        prevState: spec.state,\r\n                        newstate: STATE_AD_PLAYING\r\n                    });\r\n                    break;\r\n            }\r\n            spec.state = newState;\r\n            that.trigger(PLAYER_STATE, {\r\n                prevstate: prevState,\r\n                newstate: spec.state\r\n            });\r\n\r\n\r\n        }\r\n    };\r\n    that.getState = () => {\r\n        return spec.state;\r\n    };\r\n    that.setBuffer = (newBuffer) => {\r\n        spec.buffer = newBuffer;\r\n    };\r\n    that.getBuffer = () => {\r\n        return spec.buffer;\r\n    };\r\n    that.isLive = () => {\r\n        return spec.isLive ? true : (elVideo.duration === Infinity);\r\n    };\r\n    that.getDuration = () => {\r\n        return that.isLive() ? Infinity : elVideo.duration;\r\n    };\r\n    that.getDvrWindow = () => {\r\n        return spec.dvrWindow;\r\n    };\r\n    that.getPosition = () => {\r\n        if (!elVideo) {\r\n            return 0;\r\n        }\r\n        return elVideo.currentTime;\r\n    };\r\n    that.setVolume = (volume) => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        elVideo.volume = volume / 100;\r\n        playerConfig.setVolume(volume);\r\n    };\r\n    that.getVolume = () => {\r\n\r\n        return playerConfig.getVolume();\r\n    };\r\n    that.setMute = (state) => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        if (typeof state === 'undefined') {\r\n\r\n            const muted = playerConfig.isMute();\r\n\r\n            elVideo.muted = !muted;\r\n            playerConfig.setMute(!muted);\r\n\r\n            that.trigger(CONTENT_MUTE, {\r\n                mute: playerConfig.isMute()\r\n            });\r\n\r\n        } else {\r\n\r\n            elVideo.muted = state;\r\n            playerConfig.setMute(state);\r\n\r\n            that.trigger(CONTENT_MUTE, {\r\n                mute: playerConfig.isMute()\r\n            });\r\n        }\r\n        return elVideo.muted;\r\n    };\r\n    that.getMute = () => {\r\n\r\n        return playerConfig.isMute();\r\n    };\r\n\r\n    that.preload = (sources, lastPlayPosition) => {\r\n\r\n        spec.sources = sources;\r\n\r\n        spec.currentSource = pickCurrentSource(sources, playerConfig);\r\n        _load(lastPlayPosition || 0);\r\n\r\n        return new Promise(function (resolve, reject) {\r\n\r\n            if (playerConfig.isMute()) {\r\n                that.setMute(true);\r\n            }\r\n            if (playerConfig.getVolume()) {\r\n                that.setVolume(playerConfig.getVolume());\r\n            }\r\n\r\n            resolve();\r\n        });\r\n\r\n    };\r\n    that.load = (sources) => {\r\n\r\n        spec.sources = sources;\r\n        spec.currentSource = pickCurrentSource(sources, playerConfig);\r\n        _load(0);\r\n    };\r\n\r\n    that.play = () => {\r\n\r\n        OvenPlayerConsole.log(\"Provider : play()\");\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n\r\n        //Test it thoroughly and remove isPlayingProcessing. Most of the hazards have been removed. a lot of nonblocking play() way -> blocking play()\r\n        // if(isPlayingProcessing){\r\n        //     return false;\r\n        // }\r\n\r\n        isPlayingProcessing = true;\r\n        if (that.getState() !== STATE_PLAYING) {\r\n            if ((ads && ads.isActive()) || (ads && !ads.started())) {\r\n                ads.play().then(_ => {\r\n                    //ads play success\r\n                    isPlayingProcessing = false;\r\n                    OvenPlayerConsole.log(\"Provider : ads play success\");\r\n\r\n                }).catch(error => {\r\n                    //ads play fail maybe cause user interactive less\r\n                    isPlayingProcessing = false;\r\n                    OvenPlayerConsole.log(\"Provider : ads play fail\", error);\r\n                });\r\n\r\n            } else {\r\n                let promise = elVideo.play();\r\n                if (promise !== undefined) {\r\n                    promise.then(function () {\r\n                        isPlayingProcessing = false;\r\n                        OvenPlayerConsole.log(\"Provider : video play success\");\r\n                        /*\r\n                        if(mutedPlay){\r\n                            that.trigger(PLAYER_WARNING, {\r\n                                message : WARN_MSG_MUTEDPLAY,\r\n                                timer : 10 * 1000,\r\n                                iconClass : UI_ICONS.volume_mute,\r\n                                onClickCallback : function(){\r\n                                    that.setMute(false);\r\n                                }\r\n                            });\r\n                        }*/\r\n                    }).catch(error => {\r\n                        OvenPlayerConsole.log(\"Provider : video play error\", error.message);\r\n\r\n                        isPlayingProcessing = false;\r\n                        /*\r\n                        if(!mutedPlay){\r\n                            that.setMute(true);\r\n                            that.play(true);\r\n                        }\r\n                        */\r\n                    });\r\n                } else {\r\n                    //IE promise is undefinded.\r\n                    OvenPlayerConsole.log(\"Provider : video play success (ie)\");\r\n                    isPlayingProcessing = false;\r\n                }\r\n            }\r\n        }\r\n\r\n    };\r\n    that.pause = () => {\r\n\r\n        OvenPlayerConsole.log(\"Provider : pause()\");\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n\r\n        if (that.getState() === STATE_PLAYING) {\r\n            elVideo.pause();\r\n        } else if (that.getState() === STATE_AD_PLAYING) {\r\n            ads.pause();\r\n        }\r\n    };\r\n    that.seek = (position) => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        elVideo.currentTime = position;\r\n    };\r\n    that.setPlaybackRate = (playbackRate) => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        that.trigger(PLAYBACK_RATE_CHANGED, { playbackRate: playbackRate });\r\n        return elVideo.playbackRate = elVideo.defaultPlaybackRate = playbackRate;\r\n    };\r\n    that.getPlaybackRate = () => {\r\n        if (!elVideo) {\r\n            return 0;\r\n        }\r\n        return elVideo.playbackRate;\r\n    };\r\n\r\n    that.getSources = () => {\r\n        if (!elVideo) {\r\n            return [];\r\n        }\r\n\r\n        return spec.sources.map(function (source, index) {\r\n\r\n            var obj = {\r\n                file: source.file,\r\n                type: source.type,\r\n                label: source.label,\r\n                index: index,\r\n                sectionStart: source.sectionStart,\r\n                sectionEnd: source.sectionEnd,\r\n                gridThumbnail: source.gridThumbnail,\r\n            };\r\n\r\n            if (source.lowLatency) {\r\n                obj.lowLatency = source.lowLatency;\r\n            }\r\n\r\n            return obj;\r\n        });\r\n    };\r\n    that.getCurrentSource = () => {\r\n        return spec.currentSource;\r\n    };\r\n    that.setCurrentSource = (sourceIndex, needProviderChange) => {\r\n\r\n        if (sourceIndex > -1) {\r\n            if (spec.sources && spec.sources.length > sourceIndex) {\r\n                //that.pause();\r\n                //that.setState(STATE_IDLE);\r\n                OvenPlayerConsole.log(\"source changed : \" + sourceIndex);\r\n                spec.currentSource = sourceIndex;\r\n\r\n                that.trigger(CONTENT_SOURCE_CHANGED, {\r\n                    currentSource: sourceIndex\r\n                });\r\n                playerConfig.setSourceIndex(sourceIndex);\r\n                //playerConfig.setSourceLabel(spec.sources[sourceIndex].label);\r\n                //spec.currentQuality = sourceIndex;\r\n                //that.pause();\r\n                that.setState(STATE_IDLE);\r\n                if (needProviderChange) {\r\n                    _load(elVideo.currentTime || 0);\r\n                }\r\n                //\r\n                return spec.currentSource;\r\n            }\r\n        }\r\n    };\r\n\r\n\r\n    that.getQualityLevels = () => {\r\n        if (!elVideo) {\r\n            return [];\r\n        }\r\n        return spec.qualityLevels;\r\n    };\r\n    that.getCurrentQuality = () => {\r\n        if (!elVideo) {\r\n            return null;\r\n        }\r\n        return spec.currentQuality;\r\n    };\r\n    that.setCurrentQuality = (qualityIndex) => {\r\n        //Do nothing\r\n    };\r\n\r\n    that.getAudioTracks = () => {\r\n        if (!elVideo) {\r\n            return [];\r\n        }\r\n        return spec.audioTracks;\r\n    };\r\n\r\n    that.getCurrentAudioTrack = () => {\r\n        if (!elVideo) {\r\n            return [];\r\n        }\r\n        return spec.currentAudioTrack;\r\n    };\r\n\r\n    that.setCurrentAudioTrack = (audioTrackIndex) => {\r\n        //Do nothing\r\n    };\r\n\r\n    that.isAutoQuality = () => {\r\n        //Do nothing\r\n    };\r\n    that.setAutoQuality = (isAuto) => {\r\n        //Do nothing\r\n    };\r\n\r\n    that.getFramerate = () => {\r\n        return spec.framerate;\r\n    };\r\n    that.setFramerate = (framerate) => {\r\n        return spec.framerate = framerate;\r\n    };\r\n    that.seekFrame = (frameCount) => {\r\n        let fps = spec.framerate;\r\n        let currentFrames = elVideo.currentTime * fps;\r\n        let newPosition = (currentFrames + frameCount) / fps;\r\n        newPosition = newPosition + 0.00001; // FIXES A SAFARI SEEK ISSUE. myVdieo.currentTime = 0.04 would give SMPTE 00:00:00:00 wheras it should give 00:00:00:01\r\n\r\n        that.pause();\r\n        that.seek(newPosition);\r\n    };\r\n\r\n    that.stop = () => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        OvenPlayerConsole.log(\"CORE : stop() \");\r\n\r\n        elVideo.removeAttribute('preload');\r\n        elVideo.removeAttribute('src');\r\n        while (elVideo.firstChild) {\r\n            elVideo.removeChild(elVideo.firstChild);\r\n        }\r\n\r\n        that.pause();\r\n        that.setState(STATE_IDLE);\r\n        isPlayingProcessing = false;\r\n    };\r\n\r\n    that.destroy = () => {\r\n        if (!elVideo) {\r\n            return false;\r\n        }\r\n        that.stop();\r\n        listener.destroy();\r\n        //elVideo.remove();\r\n\r\n        if (ads) {\r\n            ads.destroy();\r\n            ads = null;\r\n        }\r\n        that.off();\r\n        OvenPlayerConsole.log(\"CORE : destroy() player stop, listener, event destroied\");\r\n    };\r\n\r\n    //XXX : I hope using es6 classes. but I think to occur problem from Old IE. Then I choice function inherit. Finally using super function is so difficult.\r\n    // use : let super_destroy  = that.super('destroy'); ... super_destroy();\r\n    that.super = (name) => {\r\n        const method = that[name];\r\n        return function () {\r\n            return method.apply(that, arguments);\r\n        };\r\n    };\r\n    return that;\r\n\r\n};\r\n\r\nexport default Provider;\r\n","import {\r\n    ERRORS,\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_AD_PLAYING,\r\n    STATE_PAUSED,\r\n    STATE_ERROR,\r\n    CONTENT_COMPLETE,\r\n    CONTENT_SEEK,\r\n    CONTENT_BUFFER_FULL,\r\n    CONTENT_SEEKED,\r\n    CONTENT_BUFFER,\r\n    CONTENT_TIME,\r\n    CONTENT_VOLUME,\r\n    CONTENT_META,\r\n    CONTENT_DURATION_CHANGED,\r\n    PLAYER_UNKNWON_ERROR,\r\n    PLAYER_UNKNWON_OPERATION_ERROR,\r\n    PLAYER_UNKNWON_NETWORK_ERROR,\r\n    PLAYER_UNKNWON_DECODE_ERROR,\r\n    PLAYER_FILE_ERROR,\r\n    PROVIDER_HTML5,\r\n    PROVIDER_WEBRTC,\r\n    PROVIDER_DASH,\r\n    PROVIDER_HLS\r\n} from \"api/constants\";\r\nimport {extractVideoElement, errorTrigger} from \"api/provider/utils\";\r\n\r\n/**\r\n * @brief   Trigger on various video events.\r\n * @param   extendedElement extended media object by mse.\r\n * @param   Provider provider  html5Provider\r\n * */\r\n\r\n\r\nconst Listener = function(element, provider, videoEndedCallback, playerConfig){\r\n    const lowLevelEvents = {};\r\n\r\n    OvenPlayerConsole.log(\"EventListener loaded.\",element ,provider );\r\n    const that = {};\r\n\r\n    let stalled = -1;\r\n    let elVideo =  element;\r\n    const between = function (num, min, max) {\r\n        return Math.max(Math.min(num, max), min);\r\n    };\r\n    const compareStalledTime = function(stalled, position){\r\n        //Original Code is stalled !== position\r\n        //Because Dashjs is very meticulous. Then always diffrence stalled and position.\r\n        //That is why when I use toFixed(2).\r\n        return stalled.toFixed(2) === position.toFixed(2);\r\n    };\r\n\r\n    lowLevelEvents.canplay = () => {\r\n        //Fires when the browser can start playing the audio/video\r\n        provider.setCanSeek(true);\r\n        provider.trigger(CONTENT_BUFFER_FULL);\r\n        OvenPlayerConsole.log(\"EventListener : on canplay\");\r\n    };\r\n\r\n    lowLevelEvents.durationchange = () => {\r\n        //Fires when the duration of the audio/video is changed\r\n        lowLevelEvents.progress();\r\n        OvenPlayerConsole.log(\"EventListener : on durationchange\");\r\n\r\n        provider.trigger(CONTENT_DURATION_CHANGED);\r\n    };\r\n\r\n    lowLevelEvents.ended = () => {\r\n        //Fires when the current playlist is ended\r\n        OvenPlayerConsole.log(\"EventListener : on ended\");\r\n\r\n        // IE doesn't set paused property to true. So force set it.\r\n        elVideo.pause();\r\n\r\n        if(provider.getState() !== STATE_IDLE && provider.getState() !== STATE_COMPLETE && provider.getState() !== STATE_ERROR) {\r\n            if(videoEndedCallback){\r\n                videoEndedCallback(function(){\r\n                    provider.setState(STATE_COMPLETE);\r\n                });\r\n            }else{\r\n                provider.setState(STATE_COMPLETE);\r\n            }\r\n        }\r\n    };\r\n\r\n    lowLevelEvents.loadeddata = () => {\r\n        //Fires when the browser has loaded the current frame of the audio/video\r\n        //Do nothing Because this causes chaos by loadedmetadata.\r\n        /*\r\n        var metadata = {\r\n            duration: elVideo.duration,\r\n            height: elVideo.videoHeight,\r\n            width: elVideo.videoWidth\r\n        };\r\n        provider.trigger(CONTENT_META, metadata);*/\r\n    };\r\n\r\n    lowLevelEvents.loadedmetadata = () => {\r\n        //Fires when the browser has loaded meta data for the audio/video\r\n\r\n        let sources = provider.getSources();\r\n        let sourceIndex = provider.getCurrentSource();\r\n        let type = sourceIndex > -1 ? sources[sourceIndex].type : \"\";\r\n        var metadata = {\r\n            duration: provider.isLive() ?  Infinity : elVideo.duration,\r\n            type :type\r\n        };\r\n\r\n        provider.setMetaLoaded();\r\n\r\n        OvenPlayerConsole.log(\"EventListener : on loadedmetadata\", metadata);\r\n        provider.trigger(CONTENT_META, metadata);\r\n    };\r\n\r\n    lowLevelEvents.pause = () => {\r\n        //Fires when the audio/video has been paused\r\n        if(provider.getState() === STATE_COMPLETE || provider.getState() === STATE_ERROR){\r\n            return false;\r\n        }\r\n        if(elVideo.ended){\r\n            return false;\r\n        }\r\n        if(elVideo.error){\r\n            return false;\r\n        }\r\n        if(elVideo.currentTime === elVideo.duration){\r\n            return false;\r\n        }\r\n        OvenPlayerConsole.log(\"EventListener : on pause\");\r\n\r\n        provider.setState(STATE_PAUSED);\r\n    };\r\n\r\n    lowLevelEvents.loadstart = () => {\r\n\r\n        if (playerConfig) {\r\n            if (!playerConfig.getConfig().showBigPlayButton && playerConfig.getConfig().autoStart) {\r\n                provider.setState(STATE_LOADING);\r\n            }\r\n        }\r\n    };\r\n\r\n    lowLevelEvents.play = () => {\r\n\r\n        //Fires when the audio/video has been started or is no longer paused\r\n        stalled = -1;\r\n        if (!elVideo.paused && provider.getState() !== STATE_PLAYING) {\r\n            provider.setState(STATE_LOADING);\r\n        }\r\n    };\r\n\r\n    lowLevelEvents.playing = () => {\r\n        //Fires when the audio/video is playing after having been paused or stopped for buffering\r\n        OvenPlayerConsole.log(\"EventListener : on playing\");\r\n        if(stalled < 0){\r\n            provider.setState(STATE_PLAYING);\r\n        }\r\n    };\r\n\r\n    lowLevelEvents.progress = () => {\r\n        //Fires when the browser is downloading the audio/video\r\n        let timeRanges = elVideo.buffered;\r\n        if(!timeRanges ){\r\n            return false;\r\n        }\r\n\r\n        let duration = elVideo.duration, position = elVideo.currentTime;\r\n        let buffered = between( (timeRanges.length> 0 ? timeRanges.end(timeRanges.length - 1) : 0 ) / duration, 0, 1);\r\n\r\n        provider.setBuffer(buffered*100);\r\n        provider.trigger(CONTENT_BUFFER, {\r\n            bufferPercent: buffered*100,\r\n            position:  position,\r\n            duration: duration\r\n        });\r\n        OvenPlayerConsole.log(\"EventListener : on progress\", buffered*100);\r\n    };\r\n\r\n\r\n    lowLevelEvents.timeupdate = () => {\r\n        //Fires when the current playback position has changed\r\n        let position = elVideo.currentTime;\r\n        let duration = elVideo.duration;\r\n        if (isNaN(duration)) {\r\n            return;\r\n        }\r\n\r\n        if (position > duration) {\r\n            elVideo.pause();\r\n            provider.setState(STATE_COMPLETE);\r\n            return;\r\n        }\r\n\r\n        let sectionStart = provider.getSources()[provider.getCurrentSource()].sectionStart;\r\n\r\n        if (sectionStart && position < sectionStart && provider.getState() === STATE_PLAYING) {\r\n\r\n            provider.seek(sectionStart);\r\n        }\r\n\r\n        let sectionEnd = provider.getSources()[provider.getCurrentSource()].sectionEnd;\r\n\r\n        if (sectionEnd && position > sectionEnd && provider.getState() === STATE_PLAYING) {\r\n\r\n            provider.stop();\r\n            provider.setState(STATE_COMPLETE);\r\n            return;\r\n        }\r\n\r\n        //Sometimes dash live gave to me crazy duration. (9007199254740991...) why???\r\n        if(duration > 9000000000000000){    //9007199254740991\r\n            duration = Infinity;\r\n        }\r\n\r\n        if(!provider.isSeeking() && !elVideo.paused && (provider.getState() === STATE_STALLED || provider.getState() === STATE_LOADING || provider.getState() === STATE_AD_PLAYING) &&\r\n            !compareStalledTime(stalled, position) ){\r\n            stalled = -1;\r\n            provider.setState(STATE_PLAYING);\r\n        }\r\n\r\n        if (sectionStart && sectionStart > 0) {\r\n\r\n            position = position - sectionStart;\r\n\r\n            if (position < 0) {\r\n                position = 0;\r\n            }\r\n        }\r\n\r\n        if (sectionEnd) {\r\n            duration = sectionEnd;\r\n        }\r\n\r\n        if (sectionStart) {\r\n            duration = duration - sectionStart;\r\n        }\r\n\r\n        if (provider.getState() === STATE_PLAYING || provider.isSeeking()) {\r\n            provider.trigger(CONTENT_TIME, {\r\n                position: position,\r\n                duration: duration\r\n            });\r\n        }\r\n\r\n    };\r\n\r\n    lowLevelEvents.seeking = () => {\r\n        provider.setSeeking(true);\r\n        OvenPlayerConsole.log(\"EventListener : on seeking\", elVideo.currentTime);\r\n        provider.trigger(CONTENT_SEEK,{\r\n            position : elVideo.currentTime\r\n        });\r\n    };\r\n    lowLevelEvents.seeked = () => {\r\n        if(!provider.isSeeking()){\r\n            return;\r\n        }\r\n        OvenPlayerConsole.log(\"EventListener : on seeked\");\r\n        provider.setSeeking(false);\r\n        provider.trigger(CONTENT_SEEKED);\r\n    };\r\n\r\n    lowLevelEvents.stalled = () => {\r\n        OvenPlayerConsole.log(\"EventListener : on stalled\");\r\n        //This callback does not work on chrome. This calls on Firefox intermittent. Then do not work here. using waiting event.\r\n    };\r\n\r\n    lowLevelEvents.waiting = () => {\r\n        //Fires when the video stops because it needs to buffer the next frame\r\n        OvenPlayerConsole.log(\"EventListener : on waiting\", provider.getState());\r\n        if(provider.isSeeking()){\r\n            provider.setState(STATE_LOADING);\r\n        }else if(provider.getState() === STATE_PLAYING){\r\n            stalled = elVideo.currentTime;\r\n            provider.setState(STATE_STALLED);\r\n        }\r\n    };\r\n\r\n    lowLevelEvents.volumechange = () => {\r\n        OvenPlayerConsole.log(\"EventListener : on volumechange\", Math.round(elVideo.volume * 100));\r\n        provider.trigger(CONTENT_VOLUME, {\r\n            volume: Math.round(elVideo.volume * 100),\r\n            mute: elVideo.muted\r\n        });\r\n    };\r\n\r\n    lowLevelEvents.error = () => {\r\n        const code = (elVideo.error && elVideo.error.code) || 0;\r\n        let convertedErroCode = ({\r\n            0: PLAYER_UNKNWON_ERROR,\r\n            1: PLAYER_UNKNWON_OPERATION_ERROR,\r\n            2: PLAYER_UNKNWON_NETWORK_ERROR,\r\n            3: PLAYER_UNKNWON_DECODE_ERROR,\r\n            4: PLAYER_FILE_ERROR\r\n        }[code]||0);\r\n\r\n        OvenPlayerConsole.log(\"EventListener : on error\", convertedErroCode);\r\n        errorTrigger(ERRORS.codes[convertedErroCode], provider);\r\n    };\r\n\r\n    Object.keys(lowLevelEvents).forEach(eventName => {\r\n        elVideo.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        elVideo.addEventListener(eventName, lowLevelEvents[eventName]);\r\n    });\r\n\r\n    that.destroy = () =>{\r\n        OvenPlayerConsole.log(\"EventListener : destroy()\");\r\n\r\n        Object.keys(lowLevelEvents).forEach(eventName => {\r\n            elVideo.removeEventListener(eventName, lowLevelEvents[eventName]);\r\n        });\r\n    };\r\n    return that;\r\n};\r\n\r\nexport default Listener;","/**\r\n * Created by hoho on 2018. 8. 24..\r\n */\r\nimport Provider from \"api/provider/html5/Provider\";\r\nimport {errorTrigger} from \"api/provider/utils\";\r\nimport {PROVIDER_HTML5, STATE_IDLE} from \"api/constants\";\r\n\r\n/**\r\n * @brief   html5 provider extended core.\r\n * @param   container player element.\r\n * @param   playerConfig    config.\r\n * */\r\n\r\nconst Html5 = function(element, playerConfig, adTagUrl){\r\n\r\n    let spec = {\r\n        name : PROVIDER_HTML5,\r\n        element : element,\r\n        mse : null,\r\n        listener : null,\r\n        isLoaded : false,\r\n        canSeek : false,\r\n        isLive : false,\r\n        seeking : false,\r\n        state : STATE_IDLE,\r\n        buffer : 0,\r\n        framerate : 0,\r\n        currentQuality : -1,\r\n        qualityLevels : [],\r\n        currentAudioTrack: -1,\r\n        audioTracks: [],\r\n        currentSource : -1,\r\n        sources : [],\r\n        adTagUrl : adTagUrl\r\n    };\r\n\r\n    let that = Provider(spec, playerConfig, null);\r\n    let superDestroy_func  = that.super('destroy');\r\n\r\n    OvenPlayerConsole.log(\"HTML5 PROVIDER LOADED.\");\r\n\r\n    that.destroy = () =>{\r\n        OvenPlayerConsole.log(\"HTML5 : PROVIDER DESTROYED.\");\r\n\r\n        superDestroy_func();\r\n    };\r\n\r\n    return that;\r\n\r\n};\r\n\r\nexport default Html5;\r\n","import _ from \"utils/underscore\";\r\nimport {analUserAgent} from \"utils/browser\";\r\nimport {\r\n    ERRORS,\r\n    PLAYER_WEBRTC_WS_ERROR,\r\n    PLAYER_WEBRTC_ADD_ICECANDIDATE_ERROR,\r\n    PLAYER_WEBRTC_SET_REMOTE_DESC_ERROR,\r\n    PLAYER_WEBRTC_CREATE_ANSWER_ERROR,\r\n    PLAYER_WEBRTC_SET_LOCAL_DESC_ERROR,\r\n    PLAYER_WEBRTC_NETWORK_SLOW,\r\n    PLAYER_WEBRTC_UNEXPECTED_DISCONNECT,\r\n    PLAYER_WEBRTC_INTERNAL_ERROR,\r\n    OME_P2P_MODE,\r\n    CONTENT_LEVEL_CHANGED,\r\n    PEER_CONNECTION_PREPARED\r\n} from \"api/constants\";\r\nimport sizeHumanizer from \"../../../../utils/sizeHumanizer\";\r\nimport {PEER_CONNECTION_DESTROYED} from \"../../../constants\";\r\n\r\n\r\nconst WebRTCLoader = function (provider,\r\n                               webSocketUrl,\r\n                               loadCallback,\r\n                               connectedCallback,\r\n                               internalErrorCallback,\r\n                               errorTrigger,\r\n                               playerConfig,\r\n                               spec) {\r\n\r\n    let defaultConnectionConfig = {};\r\n\r\n    let that = {};\r\n\r\n    let ws = null;\r\n    let wsConnected = false;\r\n\r\n    let mainStream = null;\r\n\r\n    // used for getting media stream from OME or host peer\r\n    let mainPeerConnectionInfo = null;\r\n\r\n    // used for send media stream to client peer.\r\n    let clientPeerConnections = {};\r\n\r\n    //closed websocket by ome or client.\r\n    let wsClosedByPlayer = false;\r\n\r\n    let recoverPacketLoss = false;\r\n\r\n    let playlistFromOme = null;\r\n    let autoQuality = false;\r\n\r\n    if (playerConfig.getConfig().webrtcConfig &&\r\n        playerConfig.getConfig().webrtcConfig.recoverPacketLoss === true) {\r\n\r\n        recoverPacketLoss = true;\r\n    }\r\n\r\n    let generatePublicCandidate = true;\r\n\r\n    if (playerConfig.getConfig().webrtcConfig &&\r\n        playerConfig.getConfig().webrtcConfig.generatePublicCandidate === false) {\r\n\r\n        generatePublicCandidate = playerConfig.getConfig().webrtcConfig.generatePublicCandidate;\r\n    }\r\n\r\n    let statisticsTimer = null;\r\n\r\n    let currentBrowser = analUserAgent();\r\n\r\n    (function () {\r\n        let existingHandler = window.onbeforeunload;\r\n        window.onbeforeunload = function (event) {\r\n            if (existingHandler) {\r\n                existingHandler(event);\r\n            }\r\n            OvenPlayerConsole.log(\"This calls auto when browser closed.\");\r\n            closePeer();\r\n        }\r\n    })();\r\n\r\n    function getPeerConnectionById(id) {\r\n\r\n        let peerConnection = null;\r\n\r\n        if (mainPeerConnectionInfo && id === mainPeerConnectionInfo.id) {\r\n            peerConnection = mainPeerConnectionInfo.peerConnection;\r\n        } else if (clientPeerConnections[id]) {\r\n            peerConnection = clientPeerConnections[id].peerConnection;\r\n        }\r\n\r\n        return peerConnection;\r\n    }\r\n\r\n    function extractLossPacketsOnNetworkStatus(peerConnectionInfo) {\r\n\r\n        if (peerConnectionInfo.statisticsTimer) {\r\n            clearTimeout(peerConnectionInfo.statisticsTimer);\r\n        }\r\n\r\n        if (!peerConnectionInfo.status) {\r\n            peerConnectionInfo.status = {};\r\n            peerConnectionInfo.status.lostPacketsArr = [];\r\n            peerConnectionInfo.status.slotLength = 8; //8 statistics. every 2 seconds\r\n            peerConnectionInfo.status.prevPacketsLost = 0;\r\n            peerConnectionInfo.status.avg8Losses = 0;\r\n            peerConnectionInfo.status.avgMoreThanThresholdCount = 0;  //If avg8Loss more than threshold.\r\n            peerConnectionInfo.status.threshold = 40;\r\n        }\r\n\r\n        let lostPacketsArr = peerConnectionInfo.status.lostPacketsArr,\r\n            slotLength = peerConnectionInfo.status.slotLength, //8 statistics. every 2 seconds\r\n            prevPacketsLost = peerConnectionInfo.status.prevPacketsLost,\r\n            avg8Losses = peerConnectionInfo.status.avg8Losses,\r\n            // avgMoreThanThresholdCount = peerConnectionInfo.status.avgMoreThanThresholdCount,  //If avg8Loss more than threshold.\r\n            threshold = peerConnectionInfo.status.threshold;\r\n\r\n        peerConnectionInfo.statisticsTimer = setTimeout(function () {\r\n            if (!peerConnectionInfo.peerConnection) {\r\n                return false;\r\n            }\r\n\r\n            peerConnectionInfo.peerConnection.getStats().then(function (stats) {\r\n\r\n                if (!stats) {\r\n                    return;\r\n                }\r\n\r\n                if (playerConfig.getConfig().autoFallback && stats) {\r\n\r\n                    stats.forEach(function (state) {\r\n\r\n                        if (state.type === \"inbound-rtp\" && state.kind === 'video' && !state.isRemote) {\r\n\r\n                            //(state.packetsLost - prevPacketsLost) is real current lost.\r\n\r\n                            let actualPacketLost = parseInt(state.packetsLost) - parseInt(prevPacketsLost);\r\n\r\n                            lostPacketsArr.push(parseInt(state.packetsLost) - parseInt(prevPacketsLost));\r\n\r\n                            if (lostPacketsArr.length > slotLength) {\r\n\r\n                                lostPacketsArr.shift();\r\n                            }\r\n\r\n                            if (lostPacketsArr.length === slotLength) {\r\n\r\n                                avg8Losses = _.reduce(lostPacketsArr, function (memo, num) {\r\n                                    return memo + num;\r\n                                }, 0) / slotLength;\r\n                                OvenPlayerConsole.log(\"Last8 LOST PACKET AVG  : \" + (avg8Losses), \"Current Packet LOST: \" + actualPacketLost, \"Total Packet Lost: \" + state.packetsLost, lostPacketsArr);\r\n\r\n                                if (avg8Losses > threshold) {\r\n                                    peerConnectionInfo.status.avgMoreThanThresholdCount = peerConnectionInfo.status.avgMoreThanThresholdCount + 1;\r\n                                    if (peerConnectionInfo.status.avgMoreThanThresholdCount >= 60) {\r\n                                        OvenPlayerConsole.log(\"NETWORK UNSTABLED!!! \");\r\n                                        let tempError = ERRORS.codes[PLAYER_WEBRTC_NETWORK_SLOW];\r\n                                        closePeer(tempError);\r\n                                    }\r\n                                } else {\r\n                                    peerConnectionInfo.status.avgMoreThanThresholdCount = 0;\r\n                                }\r\n                            }\r\n                            peerConnectionInfo.status.prevPacketsLost = state.packetsLost;\r\n                        }\r\n                    });\r\n\r\n                    extractLossPacketsOnNetworkStatus(peerConnectionInfo);\r\n                }\r\n            });\r\n\r\n        }, 2000);\r\n\r\n    }\r\n\r\n    // return -1 if no opus;\r\n    // return opus format number\r\n    function getOpusFormatNumber(sdp) {\r\n\r\n        const lines = sdp.split('\\r\\n');\r\n        let opusFormatNumber = -1;\r\n\r\n        for (let i = 0; i < lines.length - 1; i++) {\r\n\r\n            lines[i] = lines[i].toLowerCase();\r\n\r\n            if (lines[i].indexOf('a=rtpmap') > -1 && lines[i].indexOf('opus') > -1) {\r\n                // parsing \"a=rtpmap:102 OPUS/48000/2\" line\r\n                opusFormatNumber = lines[i].split(' ')[0].split(':')[1];\r\n                break;\r\n            }\r\n        }\r\n\r\n        return opusFormatNumber;\r\n    }\r\n\r\n    function checkOpusIsStereo(sdp, opusFormatNumber) {\r\n\r\n        const lines = sdp.split('\\r\\n');\r\n\r\n        let stereo = false;\r\n\r\n        for (let i = 0; i < lines.length - 1; i++) {\r\n\r\n            lines[i] = lines[i].toLowerCase();\r\n\r\n            // check stereo=1 from \"a=fmtp:102 sprop-stereo=1;stereo=1;minptime=10;useinbandfec=1\"\r\n            if (lines[i].indexOf('a=fmtp:' + opusFormatNumber) > -1) {\r\n\r\n                if (lines[i].indexOf('stereo=1') > -1) {\r\n                    stereo = true;\r\n                }\r\n                break;\r\n            }\r\n        }\r\n\r\n        return stereo;\r\n    }\r\n\r\n    function mungeSdpForceStereoOpus(sdp, opusFormatNumber) {\r\n\r\n        const lines = sdp.split('\\r\\n');\r\n\r\n        // find this line and modify. \"a=fmtp:102 minptime=10;useinbandfec=1\"\r\n        for (let i = 0; i < lines.length - 1; i++) {\r\n\r\n            // check stereo=1 from \"a=fmtp:102 sprop-stereo=1;stereo=1;minptime=10;useinbandfec=1\"\r\n            if (lines[i].indexOf('a=fmtp:' + opusFormatNumber) > -1) {\r\n\r\n                if (lines[i].indexOf('stereo=1') === -1) {\r\n\r\n                    lines[i] = lines[i] + ';stereo=1';\r\n                }\r\n                break;\r\n            }\r\n        }\r\n\r\n        return lines.join('\\r\\n');\r\n    }\r\n\r\n    function createMainPeerConnection(id, peerId, sdp, candidates, iceServers) {\r\n\r\n        let peerConnectionConfig = {};\r\n\r\n        // first priority using ice servers from player setting.\r\n        if (playerConfig.getConfig().webrtcConfig && playerConfig.getConfig().webrtcConfig.iceServers) {\r\n\r\n            peerConnectionConfig.iceServers = playerConfig.getConfig().webrtcConfig.iceServers;\r\n\r\n            if (playerConfig.getConfig().webrtcConfig.iceTransportPolicy) {\r\n\r\n                peerConnectionConfig.iceTransportPolicy = playerConfig.getConfig().webrtcConfig.iceTransportPolicy;\r\n            }\r\n        } else if (iceServers) {\r\n\r\n            // second priority using ice servers from ome and force using TCP\r\n            peerConnectionConfig.iceServers = [];\r\n\r\n            for (let i = 0; i < iceServers.length; i++) {\r\n\r\n                let iceServer = iceServers[i];\r\n\r\n                let regIceServer = {};\r\n\r\n                regIceServer.urls = iceServer.urls;\r\n\r\n                let hasWebsocketUrl = false;\r\n                let socketUrl = generateDomainFromUrl(webSocketUrl);\r\n\r\n                for (let j = 0; j < regIceServer.urls.length; j++) {\r\n\r\n                    let serverUrl = regIceServer.urls[j];\r\n\r\n                    if (serverUrl.indexOf(socketUrl) > -1) {\r\n                        hasWebsocketUrl = true;\r\n                        break;\r\n                    }\r\n                }\r\n\r\n                if (!hasWebsocketUrl) {\r\n\r\n                    if (regIceServer.urls.length > 0) {\r\n\r\n                        let cloneIceServer = _.clone(regIceServer.urls[0]);\r\n                        let ip = findIp(cloneIceServer);\r\n\r\n                        if (socketUrl && ip) {\r\n                            regIceServer.urls.push(cloneIceServer.replace(ip, socketUrl));\r\n                        }\r\n                    }\r\n                }\r\n\r\n                regIceServer.username = iceServer.username || iceServer.user_name;\r\n                regIceServer.credential = iceServer.credential;\r\n\r\n                peerConnectionConfig.iceServers.push(regIceServer);\r\n            }\r\n\r\n            peerConnectionConfig.iceTransportPolicy = 'relay';\r\n\r\n        } else {\r\n\r\n            // last priority using default ice servers.\r\n            peerConnectionConfig = defaultConnectionConfig;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"Main Peer Connection Config : \", peerConnectionConfig);\r\n\r\n        let peerConnection = null;\r\n\r\n        try {\r\n\r\n            peerConnection = new RTCPeerConnection(peerConnectionConfig);\r\n            provider.trigger(PEER_CONNECTION_PREPARED, peerConnection);\r\n\r\n        } catch (error) {\r\n            let tempError = ERRORS.codes[PLAYER_WEBRTC_INTERNAL_ERROR];\r\n            tempError.error = error;\r\n            closePeer(tempError);\r\n            return;\r\n        }\r\n\r\n        mainPeerConnectionInfo = {\r\n            id: id,\r\n            peerId: peerId,\r\n            peerConnection: peerConnection\r\n        };\r\n\r\n        //Set remote description when I received sdp from server.\r\n        peerConnection.setRemoteDescription(new RTCSessionDescription(sdp)).then(function () {\r\n\r\n            peerConnection.createAnswer().then(function (desc) {\r\n\r\n                const opusFormatNumber = getOpusFormatNumber(sdp.sdp);\r\n\r\n                if (opusFormatNumber > -1) {\r\n\r\n                    if (checkOpusIsStereo(sdp.sdp, opusFormatNumber)) {\r\n\r\n                        //If offer has opus and if it is stereo, munge local sdp to force stereo=1\r\n                        //Thanks to community https://github.com/AirenSoft/OvenMediaEngine/issues/203\r\n                        desc.sdp = mungeSdpForceStereoOpus(desc.sdp, opusFormatNumber);\r\n                    }\r\n                }\r\n\r\n                OvenPlayerConsole.log('Local SDP', desc);\r\n\r\n                sendMessage(ws, {\r\n                    id: id,\r\n                    peer_id: peerId,\r\n                    command: 'answer',\r\n                    sdp: desc\r\n                });\r\n\r\n                OvenPlayerConsole.log(\"create Host Answer : success\");\r\n\r\n                peerConnection.setLocalDescription(desc).then(function () {\r\n\r\n\r\n                }).catch(function (error) {\r\n\r\n                    let tempError = ERRORS.codes[PLAYER_WEBRTC_SET_LOCAL_DESC_ERROR];\r\n                    tempError.error = error;\r\n                    closePeer(tempError);\r\n                });\r\n            }).catch(function (error) {\r\n\r\n                let tempError = ERRORS.codes[PLAYER_WEBRTC_CREATE_ANSWER_ERROR];\r\n                tempError.error = error;\r\n                closePeer(tempError);\r\n            });\r\n        }).catch(function (error) {\r\n\r\n            let tempError = ERRORS.codes[PLAYER_WEBRTC_SET_REMOTE_DESC_ERROR];\r\n            tempError.error = error;\r\n            closePeer(tempError);\r\n        });\r\n\r\n        if (candidates) {\r\n\r\n            addIceCandidate(peerConnection, candidates);\r\n        }\r\n\r\n        peerConnection.onicecandidate = function (e) {\r\n\r\n            if (e.candidate) {\r\n\r\n                OvenPlayerConsole.log(\"WebRTCLoader send candidate to server : \", e.candidate);\r\n\r\n                // console.log('Main Peer Connection candidate', e.candidate);\r\n                sendMessage(ws, {\r\n                    id: id,\r\n                    peer_id: peerId,\r\n                    command: \"candidate\",\r\n                    candidates: [e.candidate]\r\n                });\r\n            }\r\n        };\r\n\r\n        peerConnection.onconnectionstatechange = function (e) {\r\n            //ConnectionState\r\n            OvenPlayerConsole.log(\"[on connection state change]\", peerConnection.connectionState, e);\r\n\r\n            // firefox and opera do not support onconnectionstatechange (Jan 07, 2021)\r\n            // double check with oniceconnectionstatechange\r\n            if (peerConnection.connectionState === 'connected') {\r\n\r\n                if (connectedCallback) {\r\n                    connectedCallback();\r\n                }\r\n            }\r\n        };\r\n\r\n        peerConnection.onicecandidateerror = function (e) {\r\n\r\n        };\r\n\r\n        peerConnection.onicegatheringstatechange = function (e) {\r\n\r\n        };\r\n\r\n        peerConnection.oniceconnectionstatechange = function (e) {\r\n            OvenPlayerConsole.log(\"[on ice connection state change]\", peerConnection.iceConnectionState, e);\r\n\r\n            if (peerConnection.iceConnectionState === 'connected') {\r\n\r\n                if (connectedCallback) {\r\n                    connectedCallback();\r\n                }\r\n            }\r\n            /*\r\n            * https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/iceConnectionState\r\n            * Checks to ensure that components are still connected failed for at least one component of the RTCPeerConnection. This is a less stringent test than \"failed\" and may trigger intermittently and resolve just as spontaneously on less reliable networks, or during temporary disconnections. When the problem resolves, the connection may return to the \"connected\" state.\r\n            * */\r\n            //This process is my imagination. I do not know how to reproduce.\r\n            //Situation : OME is dead but ome can't send 'stop' message.\r\n            if (peerConnection.iceConnectionState === 'disconnected' || peerConnection.iceConnectionState === 'closed') {\r\n                if (!wsClosedByPlayer) {\r\n                    if (mainPeerConnectionInfo) {\r\n                        let tempError = ERRORS.codes[PLAYER_WEBRTC_UNEXPECTED_DISCONNECT];\r\n                        closePeer(tempError);\r\n                    }\r\n                }\r\n            }\r\n        };\r\n\r\n        peerConnection.ontrack = function (e) {\r\n\r\n            OvenPlayerConsole.log(\"stream received.\");\r\n\r\n            OvenPlayerConsole.log('Recovery On Packet Loss :', recoverPacketLoss);\r\n\r\n            if (recoverPacketLoss) {\r\n                extractLossPacketsOnNetworkStatus(mainPeerConnectionInfo);\r\n            }\r\n\r\n            mainStream = e.streams[0];\r\n            loadCallback(e.streams[0]);\r\n\r\n            if (playerConfig.getConfig().webrtcConfig && playerConfig.getConfig().webrtcConfig.playoutDelayHint) {\r\n\r\n                let hint = playerConfig.getConfig().webrtcConfig.playoutDelayHint;\r\n\r\n                const receivers = mainPeerConnectionInfo.peerConnection.getReceivers();\r\n\r\n                for (let i = 0; i < receivers.length; i++) {\r\n\r\n                    let receiver = receivers[i];\r\n\r\n                    if (receiver.track.kind === 'audio') {\r\n\r\n                        receiver.playoutDelayHint = hint;\r\n                        receiver.jitterBufferDelayHint = hint;\r\n                    } else {\r\n\r\n                        receiver.playoutDelayHint = hint;\r\n                    }\r\n\r\n                    OvenPlayerConsole.log(\"WebRTC playoutDelayHint\", receiver, hint);\r\n                }\r\n\r\n            }\r\n        };\r\n    }\r\n\r\n    function createClientPeerConnection(hostId, clientId) {\r\n\r\n        if (!mainStream) {\r\n\r\n            setTimeout(function () {\r\n\r\n                createClientPeerConnection(hostId, clientId);\r\n            }, 100);\r\n\r\n            return;\r\n        }\r\n\r\n        let peerConnection = new RTCPeerConnection(defaultConnectionConfig);\r\n\r\n        clientPeerConnections[clientId] = {\r\n            id: clientId,\r\n            peerId: hostId,\r\n            peerConnection: peerConnection\r\n        };\r\n\r\n        peerConnection.addStream(mainStream);\r\n\r\n        // let offerOption = {\r\n        //     offerToReceiveAudio: 1,\r\n        //     offerToReceiveVideo: 1\r\n        // };\r\n\r\n        peerConnection.createOffer(setLocalAndSendMessage, handleCreateOfferError, {});\r\n\r\n        function setLocalAndSendMessage(sessionDescription) {\r\n            peerConnection.setLocalDescription(sessionDescription);\r\n\r\n            sendMessage(ws, {\r\n                id: hostId,\r\n                peer_id: clientId,\r\n                sdp: sessionDescription,\r\n                command: 'offer_p2p'\r\n            });\r\n        }\r\n\r\n        function handleCreateOfferError(event) {\r\n\r\n        }\r\n\r\n        peerConnection.onicecandidate = function (e) {\r\n            if (e.candidate) {\r\n                OvenPlayerConsole.log(\"WebRTCLoader send candidate to server : \" + e.candidate);\r\n\r\n\r\n                // console.log('Client Peer Connection candidate', e.candidate);\r\n\r\n                sendMessage(ws, {\r\n                    id: hostId,\r\n                    peer_id: clientId,\r\n                    command: \"candidate_p2p\",\r\n                    candidates: [e.candidate]\r\n                });\r\n\r\n            }\r\n        };\r\n    }\r\n\r\n    function generateDomainFromUrl(url) {\r\n        let result = '';\r\n        let match;\r\n        if (match = url.match(/^(?:wss?:\\/\\/)?(?:[^@\\n]+@)?(?:www\\.)?([^:\\/\\n\\?\\=]+)/im)) {\r\n            result = match[1];\r\n        }\r\n\r\n        return result;\r\n    }\r\n\r\n    function findIp(string) {\r\n\r\n        let result = '';\r\n        let match;\r\n\r\n        if (match = string.match(new RegExp(\"\\\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\b\", 'gi'))) {\r\n            result = match[0];\r\n        }\r\n\r\n        return result;\r\n    }\r\n\r\n    function copyCandidate(basicCandidate) {\r\n\r\n        let cloneCandidate = _.clone(basicCandidate);\r\n\r\n        let newDomain = generateDomainFromUrl(webSocketUrl);\r\n        let ip = findIp(cloneCandidate.candidate);\r\n\r\n        return new Promise(function (resolve, reject) {\r\n\r\n            if (ip === '' || ip === newDomain) {\r\n\r\n                resolve(null);\r\n            }\r\n\r\n            // firefox browser throws a candidate parsing exception when a domain name is set at the address property. So we resolve the dns using google dns resolve api.\r\n            if (currentBrowser.browser === 'Firefox' && !findIp(newDomain)) {\r\n\r\n                resolve(null);\r\n\r\n            } else {\r\n\r\n                cloneCandidate.candidate = cloneCandidate.candidate.replace(ip, newDomain);\r\n                resolve(cloneCandidate);\r\n            }\r\n\r\n        });\r\n    }\r\n\r\n    function addIceCandidate(peerConnection, candidates) {\r\n\r\n        for (let i = 0; i < candidates.length; i++) {\r\n            if (candidates[i] && candidates[i].candidate) {\r\n\r\n                let basicCandidate = candidates[i];\r\n\r\n                peerConnection.addIceCandidate(new RTCIceCandidate(basicCandidate)).then(function () {\r\n                    OvenPlayerConsole.log(\"addIceCandidate : success\");\r\n                }).catch(function (error) {\r\n                    let tempError = ERRORS.codes[PLAYER_WEBRTC_ADD_ICECANDIDATE_ERROR];\r\n                    tempError.error = error;\r\n                    closePeer(tempError);\r\n                });\r\n\r\n                if (generatePublicCandidate) {\r\n\r\n                    let cloneCandidatePromise = copyCandidate(basicCandidate);\r\n\r\n                    if (cloneCandidatePromise) {\r\n                        cloneCandidatePromise.then(function (cloneCandidate) {\r\n\r\n                            if (cloneCandidate) {\r\n\r\n                                peerConnection.addIceCandidate(new RTCIceCandidate(cloneCandidate)).then(function () {\r\n                                    OvenPlayerConsole.log(\"cloned addIceCandidate : success\");\r\n\r\n                                }).catch(function (error) {\r\n\r\n                                    let tempError = ERRORS.codes[PLAYER_WEBRTC_ADD_ICECANDIDATE_ERROR];\r\n                                    tempError.error = error;\r\n                                    closePeer(tempError);\r\n                                });\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    function initWebSocket() {\r\n\r\n        try {\r\n\r\n            ws = new WebSocket(webSocketUrl);\r\n\r\n            ws.onopen = function () {\r\n\r\n                wsConnected = true;\r\n\r\n                sendMessage(ws, {\r\n                    command: \"request_offer\"\r\n                });\r\n            };\r\n\r\n            ws.onmessage = function (e) {\r\n\r\n                const message = JSON.parse(e.data);\r\n\r\n                if (message.error) {\r\n                    let tempError = ERRORS.codes[PLAYER_WEBRTC_WS_ERROR];\r\n                    tempError.error = message.error;\r\n                    closePeer(tempError);\r\n                    return;\r\n                }\r\n\r\n                if (Object.keys(message).length === 0 && message.constructor === Object) {\r\n\r\n                    OvenPlayerConsole.log('Empty Message');\r\n                    return;\r\n                }\r\n\r\n                if (message.command === 'ping') {\r\n\r\n                    sendMessage(ws, {command: 'pong'});\r\n                    return;\r\n                }\r\n\r\n                if (message.command === 'offer') {\r\n\r\n                    let iceServers = message.iceServers || message.ice_servers;\r\n\r\n                    createMainPeerConnection(message.id, message.peer_id, message.sdp, message.candidates, iceServers);\r\n                    if (message.peer_id === 0) {\r\n                        provider.trigger(OME_P2P_MODE, false);\r\n                    } else {\r\n                        provider.trigger(OME_P2P_MODE, true);\r\n                    }\r\n                }\r\n\r\n                if (message.command === 'request_offer_p2p') {\r\n\r\n                    createClientPeerConnection(message.id, message.peer_id);\r\n                }\r\n\r\n                if (message.command === 'answer_p2p') {\r\n\r\n                    let peerConnection1 = getPeerConnectionById(message.peer_id);\r\n\r\n                    peerConnection1.setRemoteDescription(new RTCSessionDescription(message.sdp))\r\n                        .then(function (desc) {\r\n\r\n                        })\r\n                        .catch(function (error) {\r\n                            let tempError = ERRORS.codes[PLAYER_WEBRTC_SET_REMOTE_DESC_ERROR];\r\n                            tempError.error = error;\r\n                            closePeer(tempError);\r\n                        });\r\n                }\r\n\r\n                if (message.command === 'candidate') {\r\n\r\n                    // Candidates for new client peer\r\n                    let peerConnection2 = getPeerConnectionById(message.id);\r\n\r\n                    addIceCandidate(peerConnection2, message.candidates);\r\n                }\r\n\r\n                if (message.command === 'candidate_p2p') {\r\n\r\n                    // Candidates for new client peer\r\n                    let peerConnection3 = getPeerConnectionById(message.peer_id);\r\n\r\n                    addIceCandidate(peerConnection3, message.candidates);\r\n                }\r\n\r\n                if (message.command === 'notification') {\r\n\r\n                    if (message.type === 'playlist') {\r\n\r\n                        const renditions = message.message.renditions;\r\n                        playlistFromOme = message.message;\r\n\r\n                        for (let i = 0; i < renditions.length; i++) {\r\n\r\n                            let rendition = renditions[i];\r\n\r\n                            spec.qualityLevels.push({\r\n                                bitrate: rendition.video_track.video.bitrate,\r\n                                height: rendition.video_track.video.height,\r\n                                width: rendition.video_track.video.width,\r\n                                index: i,\r\n                                label: rendition.name\r\n                            });\r\n                        }\r\n\r\n                        spec.currentQuality = 0;\r\n                        autoQuality = message.message.auto;\r\n                    }\r\n\r\n                    if (message.type === 'rendition_changed') {\r\n\r\n                        const rendition = message.message;\r\n\r\n                        if (message.auto) {\r\n                            autoQuality = message.auto;\r\n                        }\r\n\r\n                        let qualityIndex = -1;\r\n\r\n                        for (let i = 0; i < playlistFromOme.renditions.length; i ++) {\r\n\r\n                            if (rendition.rendition_name ===  playlistFromOme.renditions[i].name) {\r\n                                qualityIndex = i;\r\n                                spec.currentQuality = i;\r\n                                break;\r\n                            }\r\n                        }\r\n\r\n                        provider.trigger(CONTENT_LEVEL_CHANGED, {\r\n                            isAuto: autoQuality,\r\n                            currentQuality: qualityIndex,\r\n                            type: \"render\"\r\n                        });\r\n                    }\r\n                }\r\n\r\n                if (message.command === 'stop') {\r\n\r\n                    if (mainPeerConnectionInfo.peerId === message.peer_id) {\r\n\r\n                        //My parent was dead. And then I will retry.\r\n\r\n                        // close connection with host and retry\r\n                        // console.log('close connection with host');\r\n\r\n                        mainStream = null;\r\n                        mainPeerConnectionInfo.peerConnection.close();\r\n                        mainPeerConnectionInfo = null;\r\n\r\n                        //resetCallback();\r\n                        provider.pause();\r\n\r\n                        sendMessage(ws, {\r\n                            command: 'request_offer'\r\n                        });\r\n\r\n                    } else {\r\n\r\n                        // close connection with client\r\n                        if (clientPeerConnections[message.peer_id]) {\r\n                            // console.log('close connection with client: ', message.peer_id);\r\n                            clientPeerConnections[message.peer_id].peerConnection.close();\r\n                            delete clientPeerConnections[message.peer_id];\r\n                        }\r\n                    }\r\n                }\r\n            };\r\n            ws.onclose = function (e) {\r\n\r\n                if (!wsClosedByPlayer) {\r\n\r\n                    if (connectedCallback) {\r\n                        if (!wsConnected) {\r\n\r\n                            // If the websocket is closed while there is no connection,\r\n                            // it is judged as a timeout.\r\n                            closePeer();\r\n                            return;\r\n                        }\r\n                    }\r\n\r\n                    let tempError = ERRORS.codes[PLAYER_WEBRTC_WS_ERROR];\r\n\r\n                    if (mainPeerConnectionInfo) {\r\n                        tempError = ERRORS.codes[PLAYER_WEBRTC_UNEXPECTED_DISCONNECT];\r\n                    }\r\n\r\n                    closePeer(tempError);\r\n                }\r\n            };\r\n\r\n            ws.onerror = function (error) {\r\n\r\n            };\r\n\r\n        } catch (error) {\r\n\r\n            closePeer(error);\r\n        }\r\n    }\r\n\r\n    function initialize() {\r\n\r\n        OvenPlayerConsole.log(\"WebRTCLoader connecting...\");\r\n        OvenPlayerConsole.log(\"WebRTCLoader url : \" + webSocketUrl);\r\n\r\n        initWebSocket();\r\n    }\r\n\r\n    function closePeer(error) {\r\n\r\n        OvenPlayerConsole.log('WebRTC Loader closePeer()');\r\n\r\n        if (!error) {\r\n            wsClosedByPlayer = true;\r\n        }\r\n\r\n        if (mainPeerConnectionInfo) {\r\n\r\n            if (mainPeerConnectionInfo.statisticsTimer) {\r\n                clearTimeout(mainPeerConnectionInfo.statisticsTimer);\r\n            }\r\n\r\n            mainStream = null;\r\n\r\n            OvenPlayerConsole.log('Closing main peer connection...');\r\n            if (statisticsTimer) {\r\n                clearTimeout(statisticsTimer);\r\n            }\r\n\r\n            if (mainPeerConnectionInfo.peerConnection) {\r\n\r\n                mainPeerConnectionInfo.peerConnection.close();\r\n            }\r\n\r\n            mainPeerConnectionInfo.peerConnection = null;\r\n            provider.trigger(PEER_CONNECTION_DESTROYED);\r\n            mainPeerConnectionInfo = null;\r\n        }\r\n\r\n        if (Object.keys(clientPeerConnections).length > 0) {\r\n\r\n            for (let clientId in clientPeerConnections) {\r\n\r\n                let clientPeerConnection = clientPeerConnections[clientId].peerConnection;\r\n\r\n                if (clientPeerConnection) {\r\n                    OvenPlayerConsole.log('Closing client peer connection...');\r\n                    clientPeerConnection.close();\r\n                    clientPeerConnection = null;\r\n                }\r\n            }\r\n\r\n            clientPeerConnections = {};\r\n        }\r\n\r\n        if (ws) {\r\n            OvenPlayerConsole.log('Closing websocket connection...');\r\n            OvenPlayerConsole.log(\"Send Signaling : Stop.\");\r\n            /*\r\n            0 (CONNECTING)\r\n            1 (OPEN)\r\n            2 (CLOSING)\r\n            3 (CLOSED)\r\n            */\r\n            if (ws.readyState === 1) {\r\n\r\n                wsClosedByPlayer = true;\r\n\r\n                if (mainPeerConnectionInfo) {\r\n                    sendMessage(ws, {\r\n                        command: 'stop',\r\n                        id: mainPeerConnectionInfo.id\r\n                    });\r\n                }\r\n\r\n                ws.close();\r\n            }\r\n\r\n        } else {\r\n            wsClosedByPlayer = false;\r\n        }\r\n\r\n        ws = null;\r\n\r\n        if (error) {\r\n\r\n            if (internalErrorCallback) {\r\n                internalErrorCallback(error);\r\n            }\r\n\r\n            errorTrigger(error, provider);\r\n        }\r\n    }\r\n\r\n    function sendMessage(ws, message) {\r\n\r\n        if (ws) {\r\n            ws.send(JSON.stringify(message));\r\n        }\r\n\r\n    }\r\n\r\n    provider.setCurrentQuality = (qualityIndex) => {\r\n\r\n        if (!playlistFromOme) {\r\n            return -1;\r\n        }\r\n\r\n        let rendition = playlistFromOme.renditions[qualityIndex];\r\n\r\n        if (!rendition) {\r\n            return spec.currentQuality;\r\n        }\r\n\r\n        sendMessage(ws, {\r\n            command: 'change_rendition',\r\n            id: mainPeerConnectionInfo.id,\r\n            rendition_name: rendition.name,\r\n            auto: false\r\n        });\r\n\r\n        autoQuality = false;\r\n\r\n        spec.currentQuality = qualityIndex;\r\n        return spec.currentQuality;\r\n    };\r\n\r\n    provider.isAutoQuality = () => {\r\n\r\n        return autoQuality;\r\n    };\r\n\r\n    provider.setAutoQuality = (auto) => {\r\n\r\n        sendMessage(ws, {\r\n            command: 'change_rendition',\r\n            id: mainPeerConnectionInfo.id,\r\n            auto: auto\r\n        });\r\n        autoQuality = auto;\r\n    };\r\n\r\n    that.connect = () => {\r\n\r\n        initialize();\r\n    };\r\n\r\n    that.destroy = () => {\r\n\r\n        wsClosedByPlayer = true;\r\n        closePeer();\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default WebRTCLoader;\r\n","/**\r\n * Created by hoho on 2018. 6. 11..\r\n */\r\nimport Provider from \"api/provider/html5/Provider\";\r\nimport WebRTCLoader from \"api/provider/html5/providers/WebRTCLoader\";\r\nimport {isWebRTC} from \"utils/validator\";\r\nimport {errorTrigger} from \"api/provider/utils\";\r\nimport {PROVIDER_WEBRTC, ERROR, PLAYER_STATE, STATE_IDLE, STATE_LOADING} from \"api/constants\";\r\nimport {ERRORS, PLAYER_WEBRTC_TIMEOUT} from \"../../../constants\";\r\n\r\n/**\r\n * @brief   webrtc provider extended core.\r\n * @param   container player element.\r\n * @param   playerConfig    config.\r\n * */\r\n\r\nconst WebRTC = function (element, playerConfig, adTagUrl) {\r\n    let that = {};\r\n    let webrtcLoader = null;\r\n    let superDestroy_func = null;\r\n    let superPlay_func = null;\r\n\r\n    let sourceFile = null;\r\n\r\n    let audioCtx = null;\r\n\r\n    let spec = {\r\n        name: PROVIDER_WEBRTC,\r\n        element: element,\r\n        mse: null,\r\n        listener: null,\r\n        isLoaded: false,\r\n        canSeek: false,\r\n        isLive: false,\r\n        seeking: false,\r\n        state: STATE_IDLE,\r\n        buffer: 0,\r\n        framerate: 0,\r\n        currentQuality: -1,\r\n        currentSource: -1,\r\n        qualityLevels: [],\r\n        sources: [],\r\n        adTagUrl: adTagUrl\r\n    };\r\n\r\n    let connectionTimeout = 10000;\r\n    let timeoutMaxRetry = 0;\r\n    let connectionCheckTimer = null;\r\n    let connected = false;\r\n    let connectionStartTime = null;\r\n    let connectedTime = null;\r\n\r\n    const device = () => {\r\n        return {\r\n            isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent),\r\n            iOS: /iPhone|iPad|iPod/i.test(navigator.userAgent)\r\n        }\r\n    };\r\n\r\n    const unlockAudio = (audioCtx) => {\r\n        let currentDevice = device();\r\n        let called = false;\r\n        if (currentDevice.isMobile && audioCtx.state === 'suspended') {\r\n\r\n            document.addEventListener('touchend', () => {\r\n                if (!called && audioCtx.state !== 'running') {\r\n                    audioCtx.resume();\r\n                    called = true\r\n                }\r\n            })\r\n        }\r\n    };\r\n\r\n    function loadWebRTCLoader() {\r\n\r\n        if (isWebRTC(sourceFile.file, sourceFile.type)) {\r\n\r\n            clearTimeout(connectionCheckTimer);\r\n\r\n            OvenPlayerConsole.log(\"WEBRTC : onBeforeLoad : \", sourceFile);\r\n\r\n            if (webrtcLoader) {\r\n                webrtcLoader.destroy();\r\n                webrtcLoader = null;\r\n            }\r\n\r\n            const loadCallback = function (stream) {\r\n\r\n                if (element.srcObject) {\r\n                    element.srcObject = null;\r\n                }\r\n\r\n                if (audioCtx) {\r\n                    audioCtx.close();\r\n                    audioCtx = null;\r\n                }\r\n\r\n                element.srcObject = stream;\r\n\r\n                if (stream.getAudioTracks().length > 0) {\r\n\r\n                    // Add some weird code to avoid the audio delay bug in Safari.\r\n                    // We don't even know why this code solves the audio delay.\r\n                    const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n\r\n                    // This code resolves audio delay in MacOS not IOS.\r\n                    audioCtx = new AudioContext();\r\n                    unlockAudio(audioCtx);\r\n\r\n\r\n                    // This code resolves audio delay in IOS.\r\n                    audioCtx.createMediaStreamSource(stream);\r\n                }\r\n\r\n            };\r\n\r\n            let internalErrorCallback = null;\r\n            let connectedCallback = null;\r\n\r\n            // add callback to check time out\r\n            if (timeoutMaxRetry > 0) {\r\n\r\n                internalErrorCallback = function () {\r\n\r\n                    clearTimeout(connectionCheckTimer);\r\n                };\r\n\r\n                connectedCallback = function () {\r\n\r\n                    clearTimeout(connectionCheckTimer);\r\n                    connectedTime = performance.now();\r\n                    connected = true;\r\n                };\r\n            }\r\n\r\n            webrtcLoader = WebRTCLoader(\r\n                that,\r\n                sourceFile.file,\r\n                loadCallback,\r\n                connectedCallback,\r\n                internalErrorCallback,\r\n                errorTrigger,\r\n                playerConfig,\r\n                spec\r\n            );\r\n\r\n            connectionStartTime = performance.now();\r\n            webrtcLoader.connect();\r\n\r\n            // add connection time out checker\r\n            if (timeoutMaxRetry > 0) {\r\n\r\n                that.once(PLAYER_STATE, function (e) {\r\n\r\n                    if (!connected) {\r\n                        if (e.newstate === STATE_IDLE) {\r\n\r\n                            clearTimeout(connectionCheckTimer);\r\n                            destroyWebRtcLoader();\r\n                        }\r\n                    }\r\n                });\r\n\r\n                that.once(ERROR, function () {\r\n\r\n                    connected = false;\r\n                });\r\n\r\n                connectionCheckTimer = setTimeout(function () {\r\n\r\n                    if (timeoutMaxRetry > 0) {\r\n                        if (!connected) {\r\n\r\n                            destroyWebRtcLoader();\r\n                            loadWebRTCLoader();\r\n                        }\r\n                    } else {\r\n                        destroyWebRtcLoader();\r\n                        let error = ERRORS.codes[PLAYER_WEBRTC_TIMEOUT];\r\n                        errorTrigger(error, that);\r\n                    }\r\n\r\n                    timeoutMaxRetry--;\r\n\r\n                }, connectionTimeout);\r\n            }\r\n        }\r\n    }\r\n\r\n    function destroyWebRtcLoader() {\r\n\r\n        if (webrtcLoader) {\r\n            webrtcLoader.destroy();\r\n            webrtcLoader = null;\r\n            element.srcObject = null;\r\n        }\r\n    }\r\n\r\n    that = Provider(spec, playerConfig, function (source) {\r\n\r\n        const config = playerConfig.getConfig();\r\n\r\n        if (config.webrtcConfig) {\r\n\r\n            if (typeof config.webrtcConfig.connectionTimeout === 'number'\r\n                    && config.webrtcConfig.connectionTimeout > 0) {\r\n\r\n                connectionTimeout = config.webrtcConfig.connectionTimeout;\r\n            }\r\n\r\n            if (typeof config.webrtcConfig.timeoutMaxRetry === 'number'\r\n                    && config.webrtcConfig.timeoutMaxRetry > 0) {\r\n\r\n                timeoutMaxRetry = config.webrtcConfig.timeoutMaxRetry;\r\n            }\r\n        }\r\n\r\n        sourceFile = source;\r\n        loadWebRTCLoader();\r\n    });\r\n\r\n    superDestroy_func = that.super('destroy');\r\n    superPlay_func = that.super('play');\r\n\r\n    OvenPlayerConsole.log(\"WEBRTC PROVIDER LOADED.\");\r\n\r\n\r\n    that.destroy = () => {\r\n\r\n        clearTimeout(connectionCheckTimer);\r\n\r\n        destroyWebRtcLoader();\r\n\r\n        OvenPlayerConsole.log(\"WEBRTC :  PROVIDER DESTROYED.\");\r\n\r\n        superDestroy_func();\r\n\r\n    };\r\n\r\n    that.play = () => {\r\n\r\n        if (timeoutMaxRetry > 0 && !connected) {\r\n\r\n            loadWebRTCLoader();\r\n        }\r\n\r\n        superPlay_func();\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\n\r\nexport default WebRTC;\r\n","/**\r\n * Created by hoho on 2018. 11. 14..\r\n */\r\n\r\nconst sizeHumanizer = function (bytes, si, postpix) {\r\n    let thresh = si ? 1000 : 1024;\r\n    if(Math.abs(bytes) < thresh) {\r\n        return bytes + ' B';\r\n    }\r\n    let unit = postpix||\"B\";\r\n    let units = ['k'+unit,'M'+unit,'G'+unit,'T'+unit,'P'+unit,'E'+unit,'Z'+unit,'Y'+unit];\r\n       // ? ['kB','MB','GB','TB','PB','EB','ZB','YB']: ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];\r\n    let u = -1;\r\n    do {\r\n        bytes /= thresh;\r\n        ++u;\r\n    } while(Math.abs(bytes) >= thresh && u < units.length - 1);\r\n    return bytes.toFixed(1)+units[u];\r\n}\r\n\r\nexport default sizeHumanizer;","/**\r\n * Created by hoho on 2018. 6. 14..\r\n */\r\nimport Provider from \"api/provider/html5/Provider\";\r\nimport {errorTrigger} from \"api/provider/utils\";\r\nimport sizeHumanizer from \"utils/sizeHumanizer\";\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    INIT_DASH_UNSUPPORT,\r\n    INIT_DASH_FAIL,\r\n    ERRORS,\r\n    PLAYER_UNKNWON_NETWORK_ERROR,\r\n    CONTENT_LEVEL_CHANGED,\r\n    PROVIDER_DASH,\r\n    DASH_PREPARED,\r\n    DASH_DESTROYED\r\n} from \"api/constants\";\r\nimport _ from \"utils/underscore\";\r\nimport {STATE_LOADING} from \"../../../constants\";\r\n\r\n/**\r\n * @brief   dashjs provider extended core.\r\n * @param   container player element.\r\n * @param   playerConfig    config.\r\n * */\r\nconst DASHERROR = {\r\n    DOWNLOAD: \"download\",\r\n    MANIFESTERROR: \"manifestError\"\r\n};\r\nconst Dash = function (element, playerConfig, adTagUrl) {\r\n\r\n    let that = {};\r\n    let dash = null;\r\n    let superPlay_func = null;\r\n    let superDestroy_func = null;\r\n    let seekPosition_sec = 0;\r\n    let prevLLLiveDuration = null;\r\n    let loadRetryer = null;\r\n    let sourceOfFile = \"\";\r\n\r\n    try {\r\n\r\n        if (dashjs.Version < \"3.0.0\") {\r\n            throw ERRORS.codes[INIT_DASH_UNSUPPORT];\r\n        }\r\n\r\n        const coveredSetAutoSwitchQualityFor = function (isAuto) {\r\n\r\n            dash.updateSettings({\r\n                streaming: {\r\n                    abr: {\r\n                        autoSwitchBitrate: {\r\n                            video: isAuto\r\n                        }\r\n                    }\r\n                }\r\n            });\r\n        };\r\n\r\n        const coveredGetAutoSwitchQualityFor = function () {\r\n\r\n            return dash.getSettings().streaming.abr.autoSwitchBitrate.video;\r\n        };\r\n\r\n        const liveDelayReducingCallback = function () {\r\n\r\n            if (dash.duration() !== prevLLLiveDuration) {\r\n                prevLLLiveDuration = dash.duration();\r\n\r\n                let dvrInfo = dash.getDashMetrics().getCurrentDVRInfo();\r\n                let liveDelay = playerConfig.getConfig().lowLatencyMpdLiveDelay;\r\n\r\n                if (!liveDelay) {\r\n                    liveDelay = 3;\r\n                }\r\n\r\n                dash.seek(dvrInfo.range.end - dvrInfo.range.start - liveDelay)\r\n            }\r\n\r\n        };\r\n\r\n        dash = dashjs.MediaPlayer().create();\r\n        dash.initialize(element, null, false);\r\n\r\n        window.op_dash = dash;\r\n\r\n        let spec = {\r\n            name: PROVIDER_DASH,\r\n            element: element,\r\n            mse: dash,\r\n            listener: null,\r\n            isLoaded: false,\r\n            canSeek: false,\r\n            isLive: false,\r\n            seeking: false,\r\n            state: STATE_IDLE,\r\n            buffer: 0,\r\n            framerate: 0,\r\n            currentQuality: -1,\r\n            currentSource: -1,\r\n            qualityLevels: [],\r\n            sources: [],\r\n            adTagUrl: adTagUrl\r\n        };\r\n\r\n        that = Provider(spec, playerConfig, function (source, lastPlayPosition) {\r\n\r\n            OvenPlayerConsole.log(\"DASH : Attach File : \", source, \"lastPlayPosition : \" + lastPlayPosition);\r\n\r\n            coveredSetAutoSwitchQualityFor(true);\r\n            sourceOfFile = source.file;\r\n\r\n            // dash.off(dashjs.MediaPlayer.events.PLAYBACK_PLAYING, liveDelayReducingCallback);\r\n\r\n            if (source.lowLatency === true) {\r\n\r\n                prevLLLiveDuration = null;\r\n\r\n                dash.updateSettings({\r\n                    streaming: {\r\n                        lowLatencyEnabled: source.lowLatency\r\n                    }\r\n                });\r\n\r\n                if (playerConfig.getConfig().lowLatencyMpdLiveDelay && typeof(playerConfig.getConfig().lowLatencyMpdLiveDelay) === 'number') {\r\n\r\n                    dash.updateSettings({\r\n                        streaming: {\r\n                            liveDelay: playerConfig.getConfig().lowLatencyMpdLiveDelay\r\n                        }\r\n                    });\r\n                }\r\n\r\n                // dash.on(dashjs.MediaPlayer.events.PLAYBACK_PLAYING, liveDelayReducingCallback);\r\n\r\n            } else {\r\n\r\n                dash.updateSettings({\r\n                    streaming: {\r\n                        lowLatencyEnabled: false,\r\n                        liveDelay: undefined\r\n                    }\r\n                });\r\n\r\n            }\r\n\r\n            dash.updateSettings({\r\n                debug: {\r\n                    logLevel: dashjs.Debug.LOG_LEVEL_NONE\r\n                }\r\n            });\r\n\r\n            let dashConfigFromPlayerConfig = playerConfig.getConfig().dashConfig;\r\n\r\n            if (dashConfigFromPlayerConfig) {\r\n                dash.updateSettings(dashConfigFromPlayerConfig);\r\n            }\r\n\r\n            that.trigger(DASH_PREPARED, dash);\r\n\r\n            dash.attachSource(sourceOfFile);\r\n\r\n            seekPosition_sec = lastPlayPosition;\r\n        });\r\n\r\n        superPlay_func = that.super('play');\r\n        superDestroy_func = that.super('destroy');\r\n        OvenPlayerConsole.log(\"DASH PROVIDER LOADED.\");\r\n\r\n        dash.on(dashjs.MediaPlayer.events.ERROR, function (error) {\r\n\r\n            let tempError = ERRORS.codes[PLAYER_UNKNWON_NETWORK_ERROR];\r\n            tempError.error = error;\r\n            errorTrigger(tempError, that);\r\n        });\r\n\r\n        dash.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_REQUESTED, function (event) {\r\n            if (event && event.mediaType && event.mediaType === \"video\") {\r\n                that.trigger(CONTENT_LEVEL_CHANGED, {\r\n                    isAuto: coveredGetAutoSwitchQualityFor(),\r\n                    currentQuality: spec.currentQuality,\r\n                    type: \"request\"\r\n                });\r\n            }\r\n        });\r\n        dash.on(dashjs.MediaPlayer.events.QUALITY_CHANGE_RENDERED, function (event) {\r\n            if (event && event.mediaType && event.mediaType === \"video\") {\r\n                spec.currentQuality = event.newQuality;\r\n                that.trigger(CONTENT_LEVEL_CHANGED, {\r\n                    isAuto: coveredGetAutoSwitchQualityFor(),\r\n                    currentQuality: event.newQuality,\r\n                    type: \"render\"\r\n                });\r\n            }\r\n        });\r\n\r\n        dash.on(dashjs.MediaPlayer.events.PLAYBACK_METADATA_LOADED, function (event) {\r\n\r\n            OvenPlayerConsole.log(\"DASH : PLAYBACK_METADATA_LOADED  : \", dash.getQualityFor(\"video\"), dash.getBitrateInfoListFor('video'), dash.getBitrateInfoListFor('video')[dash.getQualityFor(\"video\")]);\r\n\r\n            let subQualityList = dash.getBitrateInfoListFor('video');\r\n            spec.currentQuality = dash.getQualityFor(\"video\");\r\n            for (let i = 0; i < subQualityList.length; i++) {\r\n                if (!_.findWhere(spec.qualityLevels, {bitrate: subQualityList[i].bitrate, height: subQualityList[i].height, width: subQualityList[i].width})) {\r\n                    spec.qualityLevels.push({\r\n                        bitrate: subQualityList[i].bitrate,\r\n                        height: subQualityList[i].height,\r\n                        width: subQualityList[i].width,\r\n                        index: subQualityList[i].qualityIndex,\r\n                        label: subQualityList[i].width + \"x\" + subQualityList[i].height + \", \" + sizeHumanizer(subQualityList[i].bitrate, true, \"bps\")\r\n                    });\r\n                }\r\n            }\r\n\r\n            if (dash.isDynamic()) {\r\n                spec.isLive = true;\r\n            }\r\n\r\n            if (seekPosition_sec && !spec.isLive) {\r\n                dash.seek(seekPosition_sec);\r\n            }\r\n\r\n        });\r\n\r\n        that.play = (mutedPlay) => {\r\n\r\n            if (that.getState() === STATE_AD_PLAYING || that.getState() === STATE_AD_PAUSED) {\r\n\r\n            } else {\r\n\r\n                superPlay_func(mutedPlay);\r\n            }\r\n\r\n        };\r\n\r\n        that.setCurrentQuality = (qualityIndex) => {\r\n            if (that.getState() !== STATE_PLAYING) {\r\n                that.play();\r\n            }\r\n            spec.currentQuality = qualityIndex;\r\n            if (coveredGetAutoSwitchQualityFor()) {\r\n                coveredSetAutoSwitchQualityFor(false);\r\n            }\r\n            dash.setQualityFor(\"video\", qualityIndex);\r\n            return spec.currentQuality;\r\n        };\r\n        that.isAutoQuality = () => {\r\n            return coveredGetAutoSwitchQualityFor();\r\n        };\r\n        that.setAutoQuality = (isAuto) => {\r\n            coveredSetAutoSwitchQualityFor(isAuto);\r\n        };\r\n        that.destroy = () => {\r\n\r\n            if (dash.destroy) {\r\n\r\n                dash.destroy();\r\n            } else {\r\n\r\n                dash.reset();\r\n            }\r\n\r\n            dash = null;\r\n            that.trigger(DASH_DESTROYED);\r\n            OvenPlayerConsole.log(\"DASH : PROVIDER DESTROYED.\");\r\n            superDestroy_func();\r\n        };\r\n    } catch (error) {\r\n\r\n        if (error && error.code && error.code === INIT_DASH_UNSUPPORT) {\r\n            throw error;\r\n        } else {\r\n            let tempError = ERRORS.codes[INIT_DASH_FAIL];\r\n            tempError.error = error;\r\n            throw tempError;\r\n        }\r\n    }\r\n\r\n    return that;\r\n};\r\n\r\n\r\nexport default Dash;\r\n","/**\r\n * Created by hoho on 2018. 6. 7..\r\n */\r\nimport Provider from \"api/provider/html5/Provider\";\r\nimport { errorTrigger } from \"api/provider/utils\";\r\nimport {\r\n    PROVIDER_HLS,\r\n    PLAYER_STATE, STATE_IDLE, STATE_LOADING,\r\n    ERRORS,\r\n    INIT_HLSJS_FAIL,\r\n    HLS_PREPARED,\r\n    HLS_DESTROYED,\r\n    PLAYER_UNKNWON_NETWORK_ERROR,\r\n    PLAYER_BAD_REQUEST_ERROR,\r\n    PLAYER_AUTH_FAILED_ERROR,\r\n    PLAYER_NOT_ACCEPTABLE_ERROR, STATE_PLAYING, CONTENT_LEVEL_CHANGED, AUDIO_TRACK_CHANGED\r\n} from \"api/constants\";\r\n\r\nimport sizeHumanizer from \"utils/sizeHumanizer\";\r\n\r\n/**\r\n * @brief   hlsjs provider extended core.\r\n * @param   container player element.\r\n * @param   playerConfig    config.\r\n * */\r\n\r\n\r\nconst HlsProvider = function (element, playerConfig, adTagUrl) {\r\n    let that = {};\r\n    let hls = null;\r\n    let superStop_func = null;\r\n    let superDestroy_func = null;\r\n    let loadRetryer = null;\r\n    let isManifestLoaded = false;\r\n    let firstLoaded = false;\r\n\r\n    try {\r\n\r\n        let hlsConfig = {\r\n            debug: false\r\n        };\r\n\r\n        let hlsConfigFromPlayerConfig = playerConfig.getConfig().hlsConfig;\r\n\r\n        if (hlsConfigFromPlayerConfig) {\r\n\r\n            for (let key in hlsConfigFromPlayerConfig) {\r\n                hlsConfig[key] = hlsConfigFromPlayerConfig[key];\r\n            }\r\n        }\r\n\r\n        hls = new Hls(hlsConfig);\r\n\r\n        window.op_hls = hls;\r\n\r\n        hls.attachMedia(element);\r\n\r\n        let spec = {\r\n            name: PROVIDER_HLS,\r\n            element: element,\r\n            mse: hls,\r\n            listener: null,\r\n            isLoaded: false,\r\n            canSeek: false,\r\n            isLive: false,\r\n            seeking: false,\r\n            state: STATE_IDLE,\r\n            buffer: 0,\r\n            dvrWindow: 0,\r\n            framerate: 0,\r\n            currentQuality: -1,\r\n            qualityLevels: [],\r\n            currentAudioTrack: -1,\r\n            audioTracks: [],\r\n            currentSource: -1,\r\n            sources: [],\r\n            adTagUrl: adTagUrl\r\n        };\r\n\r\n        that = Provider(spec, playerConfig, function (source, lastPlayPosition) {\r\n\r\n            OvenPlayerConsole.log(\"HLS : onExtendedLoad : \", source, \"lastPlayPosition : \" + lastPlayPosition);\r\n\r\n            that.trigger(HLS_PREPARED, hls);\r\n\r\n            hls.loadSource(source.file);\r\n\r\n            hls.once(Hls.Events.MANIFEST_LOADED, function (event, data) {\r\n\r\n                isManifestLoaded = true;\r\n\r\n                for (let i = 0; i < hls.levels.length; i++) {\r\n\r\n                    let qualityLevel = hls.levels[i];\r\n\r\n                    spec.qualityLevels.push({\r\n                        bitrate: qualityLevel.bitrate,\r\n                        height: qualityLevel.height,\r\n                        width: qualityLevel.width,\r\n                        index: i,\r\n                        label: qualityLevel.width + \"x\" + qualityLevel.height + \", \" + sizeHumanizer(qualityLevel.bitrate, true, \"bps\")\r\n                    });\r\n                }\r\n\r\n                spec.currentQuality = hls.firstLevel;\r\n\r\n                for (let i = 0; i < hls.audioTracks.length; i++) {\r\n\r\n                    let audioTrack = hls.audioTracks[i];\r\n\r\n                    spec.audioTracks.push({\r\n                        index: audioTrack.id,\r\n                        label: audioTrack.name\r\n                    });\r\n\r\n                    if (audioTrack.default === true) {\r\n                        spec.currentAudioTrack = audioTrack.id;\r\n                    }\r\n                }\r\n            });\r\n\r\n            hls.once(Hls.Events.LEVEL_LOADED, function (event, data) {\r\n\r\n                firstLoaded = true;\r\n\r\n                if (loadRetryer) {\r\n                    clearTimeout(loadRetryer);\r\n                    loadRetryer = null;\r\n                }\r\n\r\n                if (data.details.live) {\r\n                    spec.isLive = true;\r\n                } else {\r\n\r\n                    if (lastPlayPosition && lastPlayPosition >= 0) {\r\n                        that.seek(lastPlayPosition);\r\n                    }\r\n                }\r\n            });\r\n\r\n            hls.on(Hls.Events.LEVEL_SWITCHED, function (event, data) {\r\n\r\n                spec.currentQuality = data.level;\r\n\r\n                that.trigger(CONTENT_LEVEL_CHANGED, {\r\n                    isAuto: hls.autoLevelEnabled,\r\n                    currentQuality: spec.currentQuality,\r\n                    type: \"render\"\r\n                });\r\n            });\r\n\r\n            hls.on(Hls.Events.AUDIO_TRACK_SWITCHED , function (event, data) {\r\n\r\n                spec.currentAudioTrack = data.id;\r\n                that.trigger(AUDIO_TRACK_CHANGED, {\r\n                    currentAudioTrack: spec.currentAudioTrack\r\n                });\r\n            });\r\n\r\n            hls.on(Hls.Events.LEVEL_UPDATED, function (event, data) {\r\n                if (data && data.details) {\r\n                    spec.dvrWindow = data.details.totalduration;\r\n                }\r\n\r\n            });\r\n\r\n            hls.on(Hls.Events.ERROR, function (event, data) {\r\n\r\n                if (data && data.networkDetails && data.networkDetails.status === 202) {\r\n\r\n                    if (loadRetryer) {\r\n                        clearTimeout(loadRetryer);\r\n                        loadRetryer = null;\r\n                    }\r\n\r\n                    that.setState(STATE_LOADING);\r\n\r\n                    loadRetryer = setTimeout(function () {\r\n\r\n                        if (hls) {\r\n\r\n                            that.stop();\r\n                            hls.stopLoad();\r\n                            hls.loadSource(source.file);\r\n                        }\r\n\r\n                    }, 1000);\r\n\r\n                    return;\r\n                }\r\n\r\n                if (!data.fatal) {\r\n                    // do nothing when non fatal error. hlsjs will recover it automatically.\r\n                    return;\r\n                }\r\n\r\n                let errorType = PLAYER_UNKNWON_NETWORK_ERROR;\r\n\r\n                if (data && data.networkDetails && data.networkDetails.status === 400) {\r\n                    errorType = PLAYER_BAD_REQUEST_ERROR;\r\n                } else if (data && data.networkDetails && data.networkDetails.status === 403) {\r\n                    errorType = PLAYER_AUTH_FAILED_ERROR;\r\n                } else if (data && data.networkDetails && data.networkDetails.status === 406) {\r\n                    errorType = PLAYER_NOT_ACCEPTABLE_ERROR;\r\n                }\r\n\r\n                let tempError = ERRORS.codes[errorType];\r\n                tempError.error = data.details;\r\n                errorTrigger(tempError, that);\r\n            });\r\n\r\n            that.on(PLAYER_STATE, function (data) {\r\n\r\n                if (!firstLoaded && data.prevstate === STATE_LOADING && data.newstate === STATE_IDLE) {\r\n\r\n                    if (loadRetryer) {\r\n                        clearTimeout(loadRetryer);\r\n                        loadRetryer = null;\r\n                    }\r\n\r\n                    if (hls) {\r\n\r\n                        hls.stopLoad();\r\n                    }\r\n                }\r\n            });\r\n        });\r\n\r\n        that.setCurrentQuality = (qualityIndex) => {\r\n\r\n            hls.currentLevel = qualityIndex;\r\n            spec.currentQuality = qualityIndex;\r\n\r\n            return spec.currentQuality;\r\n        };\r\n\r\n        that.isAutoQuality = () => {\r\n            return hls.autoLevelEnabled;\r\n        };\r\n\r\n        that.setAutoQuality = (isAuto) => {\r\n            if (isAuto) {\r\n                hls.currentLevel = -1;\r\n            } else {\r\n                hls.currentLevel = hls.currentLevel;\r\n            }\r\n        };\r\n\r\n        that.setCurrentAudioTrack = (audioTrackIndex) => {\r\n            hls.audioTrack = audioTrackIndex;\r\n            spec.currentAudioTrack = audioTrackIndex;\r\n\r\n            return spec.currentAudioTrack;\r\n        };\r\n\r\n        that.getDuration = () => {\r\n            return element.duration;\r\n        }\r\n\r\n        superStop_func = that.super('stop');\r\n        that.stop = () => {\r\n\r\n            if (loadRetryer) {\r\n\r\n                clearTimeout(loadRetryer);\r\n                loadRetryer = null;\r\n            }\r\n\r\n            if (hls) {\r\n                hls.stopLoad();\r\n            }\r\n\r\n            superStop_func();\r\n        };\r\n\r\n        superDestroy_func = that.super('destroy');\r\n        that.destroy = () => {\r\n\r\n            if (loadRetryer) {\r\n\r\n                clearTimeout(loadRetryer);\r\n                loadRetryer = null;\r\n            }\r\n\r\n            if (hls) {\r\n\r\n                hls.destroy();\r\n                that.trigger(HLS_DESTROYED);\r\n            }\r\n\r\n            hls = null;\r\n            OvenPlayerConsole.log(\"HLS : PROVIDER DESTROYED.\");\r\n            superDestroy_func();\r\n        };\r\n\r\n        OvenPlayerConsole.log(\"HLS PROVIDER LOADED.\");\r\n    } catch (error) {\r\n        let tempError = ERRORS.codes[INIT_HLSJS_FAIL];\r\n        tempError.error = error;\r\n        throw tempError;\r\n    }\r\n\r\n    return that;\r\n};\r\n\r\n\r\nexport default HlsProvider;","import OvenPlayerSDK from \"ovenplayer.sdk\"\r\nimport CaptionManager from \"api/caption/Manager\";\r\nimport Configurator from \"api/Configurator\";\r\nimport EventEmitter from \"api/EventEmitter\";\r\nimport MediaManager from \"api/media/Manager\";\r\nimport PlaylistManager from \"api/playlist/Manager\";\r\nimport ProviderController from \"api/provider/Controller\";\r\nimport {\r\n    READY,\r\n    ERRORS,\r\n    ERROR,\r\n    CONTENT_COMPLETE,\r\n    CONTENT_META,\r\n    INIT_UNKNWON_ERROR,\r\n    INIT_UNSUPPORT_ERROR,\r\n    DESTROY,\r\n    PLAYER_PLAY,\r\n    NETWORK_UNSTABLED,\r\n    PLAYER_WEBRTC_NETWORK_SLOW,\r\n    PLAYER_WEBRTC_UNEXPECTED_DISCONNECT,\r\n    PLAYER_WEBRTC_SET_LOCAL_DESC_ERROR,\r\n    PLAYER_FILE_ERROR,\r\n    PROVIDER_DASH,\r\n    PROVIDER_HLS,\r\n    PROVIDER_WEBRTC,\r\n    PROVIDER_HTML5,\r\n    PROVIDER_RTMP,\r\n    ALL_PLAYLIST_ENDED\r\n} from \"api/constants\";\r\n\r\nimport { ApiRtmpExpansion } from 'api/ApiExpansions';\r\nimport { analUserAgent } from \"utils/browser\";\r\nimport { pickCurrentSource } from \"api/provider/utils\";\r\nimport { version } from \"../version\";\r\nimport { CONTENT_SOURCE_CHANGED } from \"./constants\";\r\n\r\n/**\r\n * @brief   This object connects UI to the provider.\r\n * @param   {object}    container  dom element\r\n *\r\n * */\r\n\r\nconst Api = function (container) {\r\n    const that = {};\r\n    EventEmitter(that);\r\n\r\n    OvenPlayerConsole.log(\"API loaded.\");\r\n\r\n    let playlistManager = PlaylistManager(that);\r\n    let providerController = ProviderController();\r\n    let userAgentObject = analUserAgent();\r\n    let mediaManager = MediaManager(container, userAgentObject);\r\n    let currentProvider = \"\";\r\n    let playerConfig = \"\";\r\n    let captionManager = \"\";\r\n\r\n    const runNextPlaylist = function (index) {\r\n        OvenPlayerConsole.log(\"runNextPlaylist\");\r\n        let nextPlaylistIndex = index; // || playlistManager.getCurrentPlaylistIndex() + 1;\r\n        let playlist = playlistManager.getPlaylist();\r\n        let hasNextPlaylist = playlist[nextPlaylistIndex] ? true : false;\r\n        //init source index\r\n        playerConfig.setSourceIndex(0);\r\n\r\n        //set Golbal Volume info\r\n        playerConfig.setVolume(currentProvider.getVolume());\r\n\r\n        if (hasNextPlaylist) {\r\n\r\n            playlistManager.setCurrentPlaylist(nextPlaylistIndex);\r\n            initProvider();\r\n\r\n        } else {\r\n            //All Playlist Ended.\r\n            that.trigger(ALL_PLAYLIST_ENDED, null);\r\n        }\r\n    };\r\n    const initProvider = function (lastPlayPosition) {\r\n\r\n        return providerController.loadProviders(playlistManager.getCurrentPlayList()).then(Providers => {\r\n\r\n            if (Providers.length < 1) {\r\n                throw ERRORS.codes[INIT_UNSUPPORT_ERROR];\r\n            }\r\n\r\n            if (currentProvider) {\r\n                currentProvider.destroy();\r\n                currentProvider = null;\r\n            }\r\n\r\n            if (captionManager) {\r\n                captionManager.destroy();\r\n                captionManager = null;\r\n            }\r\n\r\n            captionManager = CaptionManager(that, playlistManager.getCurrentPlaylistIndex());\r\n\r\n            OvenPlayerConsole.log(\"API : init() captions\");\r\n\r\n            let currentSourceIndex = pickCurrentSource(playlistManager.getCurrentSources(), playerConfig);\r\n            let providerName = Providers[currentSourceIndex][\"name\"];\r\n            OvenPlayerConsole.log(\"API : init() provider\", providerName);\r\n            //Init Provider.\r\n            currentProvider = Providers[currentSourceIndex].provider(\r\n                mediaManager.createMedia(providerName, playerConfig),\r\n                playerConfig,\r\n                playlistManager.getCurrentAdTag()\r\n            );\r\n\r\n            if (providerName === PROVIDER_RTMP) {\r\n                //If provider type is RTMP, we accepts RtmpExpansion.\r\n                Object.assign(that, ApiRtmpExpansion(currentProvider));\r\n            }\r\n\r\n            //This passes the event created by the Provider to API.\r\n            currentProvider.on(\"all\", function (name, data) {\r\n\r\n                if (name === ERROR) {\r\n\r\n                    // Chrome >=80 on Android misses h246 in SDP when first time after web page loaded.\r\n                    // So wait until browser get h264 capabilities and create answer SDP.\r\n                    // if (userAgentObject.os === 'Android' && userAgentObject.browser === 'Chrome') {\r\n                    //\r\n                    //     if (data && data.code && data.code === PLAYER_WEBRTC_SET_LOCAL_DESC_ERROR) {\r\n                    //\r\n                    //         setTimeout(function () {\r\n                    //\r\n                    //             that.setCurrentSource(that.getCurrentSource());\r\n                    //         }, webrtcRetryInterval);\r\n                    //\r\n                    //         return;\r\n                    //     }\r\n                    // }\r\n\r\n                    if (playerConfig.getConfig().autoFallback && that.getCurrentSource() + 1 < that.getSources().length) {\r\n\r\n                        that.pause();\r\n                        that.setCurrentSource(that.getCurrentSource() + 1);\r\n\r\n                        return;\r\n                    }\r\n                }\r\n\r\n                if (name === CONTENT_COMPLETE) {\r\n                    runNextPlaylist(playlistManager.getCurrentPlaylistIndex() + 1);\r\n                }\r\n\r\n                if (name === CONTENT_META) {\r\n                    if (playerConfig.isAutoStart()) {\r\n                        that.play();\r\n                    }\r\n                }\r\n\r\n                that.trigger(name, data);\r\n            });\r\n\r\n\r\n        }).then(() => {\r\n\r\n            //provider's preload() have to made Promise. Cuz it overcomes 'flash loading timing problem'.\r\n            currentProvider.preload(playlistManager.getCurrentSources(), lastPlayPosition).then(function () {\r\n\r\n\r\n            }).catch((error) => {\r\n\r\n                if (error && error.code && ERRORS.codes[error.code]) {\r\n                    that.trigger(ERROR, ERRORS.codes[error.code]);\r\n                } else {\r\n                    let tempError = ERRORS.codes[INIT_UNKNWON_ERROR];\r\n                    tempError.error = error;\r\n                    that.trigger(ERROR, tempError);\r\n                }\r\n            });\r\n        }).catch((error) => {\r\n            //INIT ERROR\r\n            if (error && error.code && ERRORS.codes[error.code]) {\r\n                that.trigger(ERROR, ERRORS.codes[error.code]);\r\n            } else {\r\n                let tempError = ERRORS.codes[INIT_UNKNWON_ERROR];\r\n                tempError.error = error;\r\n                that.trigger(ERROR, tempError);\r\n            }\r\n        });\r\n    };\r\n\r\n\r\n    /**\r\n     * init\r\n     * @param      {object} options player initial option value.\r\n     * @returns\r\n     **/\r\n    that.init = (options) => {\r\n\r\n        if (!options) {\r\n            options = {};\r\n        }\r\n\r\n        options.mediaContainer = container;\r\n        options.browser = userAgentObject;\r\n        playerConfig = Configurator(options, that);\r\n        OvenPlayerConsole.log(\"API : init()\");\r\n        OvenPlayerConsole.log(\"API : init() config : \", playerConfig);\r\n\r\n        //Not working : SyntaxError: \"ERRORS.codes\" is read-only\r\n        ERRORS.codes = playerConfig.getSystemText().api.error;\r\n        //Cool\r\n        //ERRORS.codes.push(playerConfig.getSystemText());\r\n\r\n        playlistManager.initPlaylist(playerConfig.getPlaylist(), playerConfig);\r\n        OvenPlayerConsole.log(\"API : init() sources : \", playlistManager.getCurrentSources());\r\n\r\n        initProvider();\r\n\r\n        setTimeout(function () {\r\n            that.trigger(READY);\r\n        });\r\n    };\r\n    that.getProviderName = () => {\r\n        if (currentProvider) {\r\n            return currentProvider.getName();\r\n        } else {\r\n            return null;\r\n        }\r\n\r\n    };\r\n    that.getProvider = () => {\r\n        return currentProvider;\r\n    };\r\n    that.getMseInstance = () => {\r\n        if (currentProvider) {\r\n            return currentProvider.getMse();\r\n        } else {\r\n            return null;\r\n        }\r\n\r\n    };\r\n    that.getConfig = () => {\r\n        OvenPlayerConsole.log(\"API : getConfig()\", playerConfig.getConfig());\r\n        return playerConfig.getConfig();\r\n    };\r\n    that.getBrowser = () => {\r\n\r\n        return playerConfig.getBrowser();\r\n    };\r\n    that.setTimecodeMode = (isShow) => {\r\n        OvenPlayerConsole.log(\"API : setTimecodeMode()\", isShow);\r\n        playerConfig.setTimecodeMode(isShow);\r\n    };\r\n    that.isTimecodeMode = () => {\r\n        OvenPlayerConsole.log(\"API : isTimecodeMode()\");\r\n        return playerConfig.isTimecodeMode();\r\n    };\r\n    that.getFramerate = () => {\r\n        OvenPlayerConsole.log(\"API : getFramerate()\");\r\n\r\n        if (currentProvider) {\r\n            return currentProvider.getFramerate();\r\n        }\r\n\r\n    };\r\n    that.seekFrame = (frameCount) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : seekFrame()\", frameCount);\r\n        return currentProvider.seekFrame(frameCount);\r\n    };\r\n    that.getDuration = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getDuration()\", currentProvider.getDuration());\r\n        return currentProvider.getDuration();\r\n    };\r\n    that.getDvrWindow = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getDvrWindow()\", currentProvider.getDvrWindow());\r\n        return currentProvider.getDvrWindow();\r\n    };\r\n    that.getPosition = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getPosition()\", currentProvider.getPosition());\r\n        return currentProvider.getPosition();\r\n    };\r\n    that.getVolume = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getVolume()\", currentProvider.getVolume());\r\n        return currentProvider.getVolume();\r\n    };\r\n    that.setVolume = (volume) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setVolume() \" + volume);\r\n        currentProvider.setVolume(volume);\r\n    };\r\n    that.setMute = (state) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setMute() \" + state);\r\n        return currentProvider.setMute(state);\r\n    };\r\n    that.getMute = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getMute() \" + currentProvider.getMute());\r\n        return currentProvider.getMute();\r\n    };\r\n    that.load = (playlist) => {\r\n        OvenPlayerConsole.log(\"API : load() \", playlist);\r\n\r\n        if (playlist) {\r\n\r\n            playerConfig.setSourceIndex(0);\r\n\r\n            if (currentProvider) {\r\n\r\n                if (currentProvider.getQualityLevels().length > 0) {\r\n                    currentProvider.setCurrentQuality(0);\r\n                }\r\n            }\r\n\r\n            if ('sources' in playlist) {\r\n                playerConfig.setPlaylist(playlist);\r\n            } else {\r\n                playerConfig.setPlaylist({\r\n                    sources: playlist\r\n                });\r\n            }\r\n\r\n            playlistManager.initPlaylist(playerConfig.getPlaylist(), playerConfig);\r\n        }\r\n        return initProvider();\r\n\r\n    };\r\n    that.play = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : play() \");\r\n\r\n        if (!currentProvider.metaLoaded() && !playerConfig.isAutoStart()) {\r\n            that.once(CONTENT_META, function () {\r\n                currentProvider.play();\r\n            });\r\n        } else {\r\n            currentProvider.play();\r\n        }\r\n    };\r\n    that.pause = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : pause() \");\r\n        currentProvider.pause();\r\n    };\r\n    that.seek = (position) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : seek() \" + position);\r\n        currentProvider.seek(position);\r\n    };\r\n    that.setPlaybackRate = (playbackRate) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setPlaybackRate() \", playbackRate);\r\n        return currentProvider.setPlaybackRate(playerConfig.setPlaybackRate(playbackRate));\r\n    };\r\n    that.getPlaybackRate = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getPlaybackRate() \", currentProvider.getPlaybackRate());\r\n        return currentProvider.getPlaybackRate();\r\n    };\r\n\r\n    that.getPlaylist = () => {\r\n        OvenPlayerConsole.log(\"API : getPlaylist() \", playlistManager.getPlaylist());\r\n        return playlistManager.getPlaylist();\r\n    };\r\n    that.getCurrentPlaylist = () => {\r\n        OvenPlayerConsole.log(\"API : getCurrentPlaylist() \", playlistManager.getCurrentPlaylistIndex());\r\n        return playlistManager.getCurrentPlaylistIndex();\r\n    };\r\n    that.setCurrentPlaylist = (index) => {\r\n        OvenPlayerConsole.log(\"API : setCurrentPlaylist() \", index);\r\n        runNextPlaylist(index);\r\n    };\r\n\r\n    that.getSources = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getSources() \", currentProvider.getSources());\r\n        return currentProvider.getSources();\r\n    };\r\n    that.getCurrentSource = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getCurrentSource() \", currentProvider.getCurrentSource());\r\n        return currentProvider.getCurrentSource();\r\n    };\r\n    that.setCurrentSource = (index) => {\r\n\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setCurrentSource() \", index);\r\n\r\n        let lastPlayPosition = currentProvider.getPosition();\r\n        playerConfig.setSourceIndex(index);\r\n\r\n        initProvider(lastPlayPosition).then(function () {\r\n\r\n            that.trigger(CONTENT_SOURCE_CHANGED, {\r\n                currentSource: index\r\n            });\r\n        });\r\n\r\n        return index;\r\n    };\r\n\r\n\r\n    that.getQualityLevels = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getQualityLevels() \", currentProvider.getQualityLevels());\r\n        return currentProvider.getQualityLevels();\r\n    };\r\n    that.getCurrentQuality = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getCurrentQuality() \", currentProvider.getCurrentQuality());\r\n        return currentProvider.getCurrentQuality();\r\n    };\r\n    that.setCurrentQuality = (qualityIndex) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setCurrentQuality() \", qualityIndex);\r\n\r\n        return currentProvider.setCurrentQuality(qualityIndex);\r\n    };\r\n\r\n    that.getAudioTracks = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getAudioTracks() \", currentProvider.getAudioTracks());\r\n        return currentProvider.getAudioTracks();\r\n    };\r\n\r\n    that.getCurrentAudioTrack = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : getCurrentAudioTrack() \", currentProvider.getCurrentAudioTrack());\r\n        return currentProvider.getCurrentAudioTrack();\r\n    };\r\n\r\n    that.setCurrentAudioTrack = (audioTrackIndex) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setCurrentAudioTrack() \", audioTrackIndex);\r\n        return currentProvider.setCurrentAudioTrack(audioTrackIndex);\r\n    };\r\n\r\n    that.isAutoQuality = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : isAutoQuality()\");\r\n        return currentProvider.isAutoQuality();\r\n    };\r\n    that.setAutoQuality = (isAuto) => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : setAutoQuality() \", isAuto);\r\n        return currentProvider.setAutoQuality(isAuto);\r\n    };\r\n\r\n    that.getCaptionList = () => {\r\n        if (!captionManager) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getCaptionList() \", captionManager.getCaptionList());\r\n        return captionManager.getCaptionList();\r\n    };\r\n    that.getCurrentCaption = () => {\r\n        if (!captionManager) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getCurrentCaption() \", captionManager.getCurrentCaption());\r\n        return captionManager.getCurrentCaption();\r\n    };\r\n    that.setCurrentCaption = (index) => {\r\n        if (!captionManager) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : setCurrentCaption() \", index);\r\n        captionManager.setCurrentCaption(index);\r\n    };\r\n    that.addCaption = (track) => {\r\n        if (!captionManager) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : addCaption() \")\r\n        return captionManager.addCaption(track);\r\n    };\r\n    that.removeCaption = (index) => {\r\n        if (!captionManager) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : removeCaption() \", index)\r\n        return captionManager.removeCaption(index);\r\n    };\r\n\r\n    that.getBuffer = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getBuffer() \", currentProvider.getBuffer());\r\n        currentProvider.getBuffer();\r\n    };\r\n    that.getState = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n        OvenPlayerConsole.log(\"API : getState() \", currentProvider.getState());\r\n        return currentProvider.getState();\r\n    };\r\n    that.stop = () => {\r\n        if (!currentProvider) {\r\n            return null;\r\n        }\r\n\r\n        OvenPlayerConsole.log(\"API : stop() \");\r\n        currentProvider.stop();\r\n    };\r\n    that.remove = () => {\r\n\r\n        OvenPlayerConsole.log(\"API : remove() \");\r\n\r\n        if (captionManager) {\r\n            captionManager.destroy();\r\n            captionManager = null;\r\n        }\r\n\r\n        if (currentProvider) {\r\n            currentProvider.destroy();\r\n            currentProvider = null;\r\n        }\r\n\r\n        if (mediaManager) {\r\n            mediaManager.destroy();\r\n            mediaManager = null;\r\n        }\r\n\r\n        that.trigger(DESTROY);\r\n        that.off();\r\n\r\n        providerController = null;\r\n        playlistManager = null;\r\n        playerConfig = null;\r\n\r\n        OvenPlayerConsole.log(\"API : remove() - currentProvider, providerController, playlistManager, playerConfig, api event destroed. \");\r\n        OvenPlayerSDK.removePlayer(that);\r\n\r\n    };\r\n\r\n    that.getMediaElement = () => {\r\n\r\n        return currentProvider.getMediaElement();\r\n    };\r\n\r\n    that.getVersion = () => {\r\n        return version;\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\n\r\nexport default Api;\r\n\r\n\r\n","import _ from \"utils/underscore\";\r\nimport {isRtmp, isWebRTC, isDash, isHls } from \"utils/validator\";\r\nimport {extractExtension ,trim} from \"../../utils/strings\";\r\nimport SupportChecker from \"../SupportChecker\";\r\nimport {PLAYLIST_CHANGED} from \"api/constants\";\r\n\r\n/**\r\n * @brief   This manages Playlist or Sources.\r\n * @param\r\n *\r\n * */\r\nconst Manager = function(provider){\r\n    const that = {};\r\n    let currentPlaylistItem = [];\r\n    let spec = {\r\n        playlist : [],\r\n        currentIndex : 0\r\n    };\r\n    let supportChecker = SupportChecker();\r\n\r\n    OvenPlayerConsole.log(\"PlaylistManager loaded.\");\r\n\r\n    const makePrettySource = function(source_){\r\n        if (!source_ || !source_.file && !(source_.host || source_.application || source_.stream)) {\r\n            return;\r\n        }\r\n\r\n        let source = Object.assign({}, { 'default': false }, source_);\r\n        source.file = trim('' + source.file);\r\n\r\n        if(source.host && source.application && source.stream){\r\n            source.file = source.host + \"/\" + source.application + \"/stream/\" + source.stream;\r\n            delete source.host;\r\n            delete source.application;\r\n            delete source.stream;\r\n        }\r\n\r\n        const mimetypeRegEx = /^[^/]+\\/(?:x-)?([^/]+)$/;\r\n\r\n        if (mimetypeRegEx.test(source.type)) {\r\n            // if type is given as a mimetype\r\n            source.mimeType = source.type;\r\n            source.type = source.type.replace(mimetypeRegEx, '$1');\r\n        }\r\n\r\n        if(isRtmp(source.file)){\r\n            source.type = 'rtmp';\r\n        }else if(isWebRTC(source.file)){\r\n            source.type = 'webrtc';\r\n        }else if(isHls(source.file, source.type)){\r\n            source.type = 'hls';\r\n        }else if(isDash(source.file, source.type)){\r\n            source.type = 'dash';\r\n        }else if (!source.type) {\r\n            source.type = extractExtension(source.file);\r\n        }\r\n\r\n        if (source.lowLatency) {\r\n            source.lowLatency = source.lowLatency;\r\n        }\r\n\r\n        if (!source.type) {\r\n            return;\r\n        }\r\n\r\n        // normalize types\r\n        switch (source.type) {\r\n            case 'm3u8':\r\n            case 'vnd.apple.mpegurl':\r\n                source.type = 'hls';\r\n                break;\r\n            case 'm4a':\r\n                source.type = 'aac';\r\n                break;\r\n            case 'smil':\r\n                source.type = 'rtmp';\r\n                break;\r\n            default:\r\n                break;\r\n        }\r\n\r\n        Object.keys(source).forEach(function(key) {\r\n            if (source[key] === '') {\r\n                delete source[key];\r\n            }\r\n        });\r\n\r\n        return source;\r\n\r\n    }\r\n\r\n    that.initPlaylist =(playlist, playerConfig) =>{\r\n\r\n        OvenPlayerConsole.log(\"PlaylistManager setPlaylist() \", playlist);\r\n        const prettiedPlaylist = (_.isArray(playlist) ? playlist : [playlist]).map(function(item){\r\n            if(!_.isArray(item.tracks)) {\r\n                delete item.tracks;\r\n            }\r\n            let playlistItem = Object.assign({},{\r\n                sources: [],\r\n                tracks: [],\r\n                title : \"\"\r\n            }, item );\r\n\r\n            if((playlistItem.sources === Object(playlistItem.sources)) && !_.isArray(playlistItem.sources)) {\r\n                playlistItem.sources = [makePrettySource(playlistItem.sources)];\r\n            }\r\n\r\n            if (!_.isArray(playlistItem.sources) || playlistItem.sources.length === 0) {\r\n                playlistItem.sources = [makePrettySource(playlistItem)];\r\n            }\r\n\r\n            if(!_.isArray(playlistItem.sources) || playlistItem.sources.length === 0) {\r\n                if (item.levels) {\r\n                    playlistItem.sources = item.levels;\r\n                } else {\r\n                    playlistItem.sources = [makePrettySource(item)];\r\n                }\r\n            }\r\n\r\n\r\n            for(let i = 0; i < playlistItem.sources.length; i++) {\r\n                let source = playlistItem.sources[i];\r\n                let prettySource = \"\";\r\n                if (!source) {\r\n                    continue;\r\n                }\r\n\r\n                let defaultSource = source.default;\r\n                if (defaultSource) {\r\n                    source.default = (defaultSource.toString() === 'true');\r\n                } else {\r\n                    source.default = false;\r\n                }\r\n\r\n                // If the source doesn't have a label, number it\r\n                if (!playlistItem.sources[i].label) {\r\n                    playlistItem.sources[i].label = playlistItem.sources[i].type+\"-\"+i.toString();\r\n                }\r\n\r\n                prettySource = makePrettySource(playlistItem.sources[i]);\r\n                if(supportChecker.findProviderNameBySource(prettySource)){\r\n                    playlistItem.sources[i] = prettySource;\r\n                }else{\r\n                    playlistItem.sources[i] = null;\r\n                }\r\n            }\r\n\r\n            playlistItem.sources = playlistItem.sources.filter(source => !!source);\r\n\r\n            if(!playlistItem.title &&  playlistItem.sources[0] && playlistItem.sources[0].label){\r\n                playlistItem.title = playlistItem.sources[0].label;\r\n            }\r\n\r\n            // default 가 없을때 webrtc가 있다면 webrtc default : true로 자동 설정\r\n            /*let haveDefault = _.find(playlistItem.sources, function(source){return source.default == true;});\r\n            let webrtcSource = [];\r\n            if(!haveDefault){\r\n                webrtcSource = _.find(playlistItem.sources, function(source){return source.type == \"webrtc\";});\r\n                if(webrtcSource){\r\n                    webrtcSource.default = true;\r\n                }\r\n            }*/\r\n\r\n\r\n            function extractOnlyOneProtocol(sources){\r\n                if(!!sources){\r\n                    let highPriorityType = playlistItem.sources[0].type;\r\n\r\n                    return _.filter(sources, {type : highPriorityType});\r\n                }\r\n            }\r\n\r\n            if(playerConfig.isCurrentProtocolOnly()){\r\n                playlistItem.sources = extractOnlyOneProtocol(playlistItem.sources);\r\n            }\r\n\r\n            if(!_.isArray(playlistItem.tracks)){\r\n                playlistItem.tracks = [];\r\n            }\r\n            if(_.isArray(playlistItem.captions)){\r\n                playlistItem.tracks = playlistItem.tracks.concat(playlistItem.captions);\r\n                delete playlistItem.captions;\r\n            }\r\n\r\n            playlistItem.tracks = playlistItem.tracks.map(function(track){\r\n                if(!track || !track.file){\r\n                    return false;\r\n                }\r\n                return Object.assign({}, {\r\n                    'kind': 'captions',\r\n                    'default': false\r\n                }, track);\r\n            }).filter(track => !!track);\r\n            return playlistItem;\r\n        }).filter(function(item){return item.sources && item.sources.length > 0;})||[];\r\n        spec.playlist = prettiedPlaylist;\r\n        return prettiedPlaylist;\r\n    };\r\n    that.getPlaylist = () => {\r\n        OvenPlayerConsole.log(\"PlaylistManager getPlaylist() \", spec.playlist);\r\n        return spec.playlist;\r\n    };\r\n    that.getCurrentPlayList = () => {\r\n        if(spec.playlist[spec.currentIndex]){\r\n            return spec.playlist[spec.currentIndex];\r\n        }else{\r\n            return [];\r\n        }\r\n    };\r\n    that.getCurrentPlaylistIndex = () => {\r\n        return spec.currentIndex;\r\n    };\r\n    that.setCurrentPlaylist = (index) => {\r\n        if(spec.playlist[index]){\r\n            spec.currentIndex = index;\r\n            provider.trigger(PLAYLIST_CHANGED, spec.currentIndex);\r\n        }\r\n        return spec.currentIndex;\r\n    };\r\n    that.getCurrentSources = () => {\r\n        if(spec.playlist[spec.currentIndex]){\r\n            OvenPlayerConsole.log(\"PlaylistManager getCurrentSources() \", spec.playlist[spec.currentIndex].sources);\r\n            return spec.playlist[spec.currentIndex].sources;\r\n        }else{\r\n            return null;\r\n        }\r\n\r\n    };\r\n    that.getCurrentAdTag = () => {\r\n        if(spec.playlist[spec.currentIndex]){\r\n            return spec.playlist[spec.currentIndex].adTagUrl || \"\";\r\n        }\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\n\r\nexport default Manager;\r\n","import SupportChecker from \"api/SupportChecker\";\r\nimport HTML5 from \"api/provider/html5/providers/Html5\";\r\nimport WebRTC from \"api/provider/html5/providers/WebRTC\";\r\nimport Dash from \"api/provider/html5/providers/Dash\";\r\nimport Hls from \"api/provider/html5/providers/Hls\";\r\n\r\nimport {\r\n    PROVIDER_HTML5, PROVIDER_WEBRTC, PROVIDER_DASH, PROVIDER_HLS, PROVIDER_RTMP, ERRORS, INIT_UNSUPPORT_ERROR\r\n} from \"api/constants\";\r\n\r\n/**\r\n * @brief   This manages provider.\r\n * @param\r\n * */\r\nconst Controller = function () {\r\n    let supportChacker = SupportChecker();\r\n    const Providers = {};\r\n\r\n    const that = {};\r\n    OvenPlayerConsole.log(\"ProviderController loaded.\");\r\n\r\n    const registeProvider = (name, provider) => {\r\n        if (Providers[name]) {\r\n            return;\r\n        }\r\n        OvenPlayerConsole.log(\"ProviderController _registerProvider() \", name);\r\n        Providers[name] = provider;\r\n    };\r\n\r\n    const ProviderLoader = {\r\n        html5: function () {\r\n\r\n            const provider = HTML5;\r\n            registeProvider(PROVIDER_HTML5, provider);\r\n            return {name: PROVIDER_HTML5, provider: provider};\r\n        },\r\n        webrtc: function () {\r\n\r\n            const provider = WebRTC;\r\n            registeProvider(PROVIDER_WEBRTC, provider);\r\n            return {name: PROVIDER_WEBRTC, provider: provider};\r\n        },\r\n        dash: function () {\r\n\r\n            const provider = Dash;\r\n            registeProvider(PROVIDER_DASH, provider);\r\n            return {name: PROVIDER_DASH, provider: provider};\r\n        },\r\n        hls: function () {\r\n\r\n            const provider = Hls;\r\n            registeProvider(PROVIDER_HLS, provider);\r\n            return {name: PROVIDER_HLS, provider: provider};\r\n        }\r\n    };\r\n\r\n\r\n    that.loadProviders = (playlistItem) => {\r\n        const supportedProviderNames = supportChacker.findProviderNamesByPlaylist(playlistItem);\r\n        OvenPlayerConsole.log(\"ProviderController loadProviders() \", supportedProviderNames);\r\n        if (!supportedProviderNames) {\r\n            return Promise.reject(ERRORS.codes[INIT_UNSUPPORT_ERROR]);\r\n        } else {\r\n            return Promise.all(\r\n                supportedProviderNames.filter(function (providerName) {\r\n                    return !!ProviderLoader[providerName];\r\n                }).map(function (providerName) {\r\n                    return ProviderLoader[providerName]();\r\n                })\r\n            );\r\n        }\r\n\r\n    };\r\n\r\n    that.findByName = (name) => {\r\n        OvenPlayerConsole.log(\"ProviderController findByName() \", name);\r\n        return Providers[name];\r\n    };\r\n\r\n    that.getProviderBySource = (source) => {\r\n        const supportedProviderName = supportChacker.findProviderNameBySource(source);\r\n        OvenPlayerConsole.log(\"ProviderController getProviderBySource() \", supportedProviderName);\r\n        return that.findByName(supportedProviderName);\r\n    };\r\n\r\n    that.isSameProvider = (currentSource, newSource) => {\r\n        OvenPlayerConsole.log(\"ProviderController isSameProvider() \", supportChacker.findProviderNameBySource(currentSource), supportChacker.findProviderNameBySource(newSource));\r\n        return supportChacker.findProviderNameBySource(currentSource) === supportChacker.findProviderNameBySource(newSource);\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default Controller;\r\n","/**\r\n * @brief   미디어 엘리먼트를 관리하는 객체. 현재는 하는 일이 많지 않다.\r\n * @param   {element}   container   dom element\r\n *\r\n * */\r\nimport {getBrowser} from \"utils/browser\";\r\nimport {PROVIDER_DASH, PROVIDER_HLS, PROVIDER_WEBRTC, PROVIDER_HTML5, PROVIDER_RTMP} from \"api/constants\";\r\nimport LA$ from \"utils/likeA$.js\";\r\nimport {version} from 'version';\r\n\r\nconst Manager = function(container, browserInfo){\r\n    const that = {};\r\n    let $container = LA$(container);\r\n    let videoElement = \"\";\r\n\r\n    OvenPlayerConsole.log(\"MediaManager loaded. browser : \", browserInfo );\r\n\r\n    const createHtmlVideo = function(isLoop, isAutoStart){\r\n\r\n        videoElement = document.createElement('video');\r\n        videoElement.setAttribute('disableremoteplayback', '');\r\n        videoElement.setAttribute('webkit-playsinline', 'true');\r\n        videoElement.setAttribute('playsinline', 'true');\r\n        if(isLoop){\r\n            videoElement.setAttribute('loop', '');\r\n        }\r\n        if(isAutoStart) {\r\n            videoElement.setAttribute('autoplay', '');\r\n        }\r\n        $container.append(videoElement);\r\n\r\n        return videoElement;\r\n    };\r\n\r\n    that.createMedia = (providerName , playerConfig)  => {\r\n        // if(videoElement){\r\n        //     // that.empty();\r\n        //     //reuse video element.\r\n        //     //because playlist is auto next playing.\r\n        //     //Only same video element does not require User Interaction Error.\r\n        //     return videoElement;\r\n        // }else{\r\n        //     return createHtmlVideo(playerConfig.isLoop(), playerConfig.isAutoStart());\r\n        // }\r\n        that.empty();\r\n        return createHtmlVideo(playerConfig.isLoop(), playerConfig.isAutoStart());\r\n    }\r\n\r\n    that.createAdContainer = () => {\r\n        let adContainer = document.createElement('div');\r\n        adContainer.setAttribute('class', 'op-ads');\r\n        $container.append(adContainer);\r\n\r\n        return adContainer;\r\n    };\r\n\r\n\r\n    that.empty = () =>{\r\n        OvenPlayerConsole.log(\"MediaManager removeElement()\");\r\n        $container.removeChild(videoElement);\r\n        videoElement = null;\r\n    };\r\n\r\n    that.destroy = () =>{\r\n        $container.removeChild();\r\n        $container = null;\r\n        videoElement = null;\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default Manager;\r\n","/**\r\n * Created by hoho on 2018. 8. 24..\r\n */\r\n\r\nexport const ApiRtmpExpansion = function(currentProvider){\r\n    return {\r\n        externalCallbackCreep : (result) => {\r\n            if(result.name && result.data){\r\n                return currentProvider.triggerEventFromExternal(result.name, result.data);\r\n            }else{\r\n                return null;\r\n            }\r\n        }\r\n    };\r\n};\r\n","import _ from \"utils/underscore\";\r\n\r\nimport {\r\n    CONTENT_TIME_MODE_CHANGED, SYSTEM_TEXT\r\n} from \"api/constants\";\r\n\r\n/**\r\n * @brief   This initializes the input options.\r\n * @param   options\r\n *\r\n * */\r\nconst Configurator = function(options, provider){\r\n\r\n    const composeSourceOptions = function(options){\r\n        const Defaults = {\r\n            mediaContainer : \"\",\r\n            playbackRates: [2, 1.5, 1, 0.5, 0.25],\r\n            playbackRate: 1,\r\n            mute: false,\r\n            volume: 100,\r\n            loop : false,\r\n            controls : true,\r\n            autoStart : false,\r\n            autoFallback: true,\r\n            timecode : true,\r\n            sourceIndex : -1,\r\n            browser : \"\",\r\n            hidePlaylistIcon : false,\r\n            rtmpBufferTime : 1,\r\n            rtmpBufferTimeMax : 3,\r\n            adClient : \"googleima\",\r\n            currentProtocolOnly : false,\r\n            systemText : null,\r\n            lang : \"en\",\r\n            loadingRetryCount: 0,\r\n            expandFullScreenUI: true,\r\n            fullscreenOption: null,\r\n            showBigPlayButton: true\r\n        };\r\n        const serialize = function (val) {\r\n            if (val === undefined) {\r\n                return null;\r\n            }\r\n            if (typeof val === 'string' && val.length < 6) {\r\n                const lowercaseVal = val.toLowerCase();\r\n                if (lowercaseVal === 'true') {\r\n                    return true;\r\n                }\r\n                if (lowercaseVal === 'false') {\r\n                    return false;\r\n                }\r\n                if (!isNaN(Number(val)) && !isNaN(parseFloat(val))) {\r\n                    return Number(val);\r\n                }\r\n            }\r\n            return val;\r\n        }\r\n        const deserialize = function (options) {\r\n            Object.keys(options).forEach((key) => {\r\n                if (key === 'id') {\r\n                    return;\r\n                }\r\n                options[key] = serialize(options[key]);\r\n            });\r\n        }\r\n\r\n        deserialize(options);\r\n        let config = Object.assign({}, Defaults, options);\r\n        let userCustumSystemText = [];\r\n        if(config.systemText){\r\n            userCustumSystemText = _.isArray(config.systemText) ? config.systemText : [config.systemText];\r\n        }\r\n\r\n        for(let i = 0; i < userCustumSystemText.length; i ++){\r\n            if(userCustumSystemText[i].lang){\r\n                let currentSystemText = _.findWhere(SYSTEM_TEXT , {\"lang\": userCustumSystemText[i].lang});\r\n                if(currentSystemText){\r\n                    //validate & update\r\n                    Object.assign(currentSystemText, userCustumSystemText[i]);\r\n                }else{\r\n                    //create\r\n                    currentSystemText = _.findWhere(SYSTEM_TEXT , {\"lang\": \"en\"});\r\n                    currentSystemText.lang = userCustumSystemText[i].lang;\r\n                    SYSTEM_TEXT.push(Object.assign(userCustumSystemText[i], currentSystemText));\r\n                }\r\n            }\r\n        }\r\n        config.systemText = _.findWhere(SYSTEM_TEXT , {\"lang\": config.lang});\r\n\r\n        let playbackRates = config.playbackRates;\r\n\r\n        playbackRates = playbackRates.filter(rate => _.isNumber(rate) && rate >= 0.25 && rate <= 4).map(rate => Math.round(rate * 4) / 4);\r\n\r\n        if (playbackRates.indexOf(1) < 0) {\r\n            playbackRates.push(1);\r\n        }\r\n        playbackRates.sort();\r\n\r\n        config.playbackRates = playbackRates;\r\n\r\n        config.rtmpBufferTime = config.rtmpBufferTime > 10 ? 10 : config.rtmpBufferTime;\r\n        config.rtmpBufferTimeMax = config.rtmpBufferTimeMax > 50 ? 50 : config.rtmpBufferTimeMax;\r\n\r\n\r\n        if (config.playbackRates.indexOf(config.playbackRate) < 0) {\r\n            config.playbackRate = 1;\r\n        }\r\n\r\n        const configPlaylist = config.playlist;\r\n        if (!configPlaylist) {\r\n            const obj = _.pick(config, [\r\n                'title',\r\n                'description',\r\n                'type',\r\n                'image',\r\n                'file',\r\n                'sources',\r\n                'tracks',\r\n                'host',\r\n                'application',\r\n                'stream',\r\n                'adTagUrl'\r\n            ]);\r\n\r\n            config.playlist = [ obj ];\r\n        } else if (_.isArray(configPlaylist.playlist)) {\r\n            config.feedData = configPlaylist;\r\n            config.playlist = configPlaylist.playlist;\r\n        }\r\n\r\n        delete config.duration;\r\n        return config;\r\n    };\r\n    OvenPlayerConsole.log(\"Configurator loaded.\", options);\r\n    let spec = composeSourceOptions(options);\r\n\r\n    //spec.isFullscreen = false; //IE 11 can't check current fullscreen state.\r\n\r\n    const that = {};\r\n    that.getConfig = () => {\r\n        return spec;\r\n    };\r\n    that.getAdClient = () => {\r\n        return spec.adClient;\r\n    };\r\n    that.setConfig = (config, value) => {\r\n        spec[config] = value;\r\n    };\r\n\r\n    that.getContainer = () => {\r\n        return spec.mediaContainer;\r\n    };\r\n    /*that.isFullscreen = () => {\r\n        return spec.isFullscreen;\r\n    }\r\n    that.setFullscreen = (isFullscreen) => {\r\n        return spec.isFullscreen = isFullscreen;\r\n    }*/\r\n\r\n    that.getPlaybackRate =()=>{\r\n        return spec.playbackRate;\r\n    };\r\n    that.setPlaybackRate =(playbackRate)=>{\r\n        spec.playbackRate = playbackRate;\r\n        return playbackRate;\r\n    };\r\n\r\n    that.getQualityLabel = () => {\r\n        return spec.qualityLabel;\r\n    };\r\n    that.setQualityLabel = (newLabel) => {\r\n        spec.qualityLabel = newLabel;\r\n    };\r\n\r\n    that.isCurrentProtocolOnly = () => {\r\n        return spec.currentProtocolOnly;\r\n    };\r\n    /*that.getSourceLabel = () => {\r\n        return spec.sourceLabel;\r\n    };\r\n    that.setSourceLabel = (newLabel) => {\r\n        spec.sourceLabel = newLabel;\r\n    };*/\r\n\r\n    that.getSourceIndex = () => {\r\n        return spec.sourceIndex;\r\n    };\r\n    that.setSourceIndex = (index) => {\r\n        spec.sourceIndex = index;\r\n    };\r\n    that.setTimecodeMode = (timecode) => {\r\n        if(spec.timecode !== timecode){\r\n            spec.timecode = timecode;\r\n            provider.trigger(CONTENT_TIME_MODE_CHANGED, timecode);\r\n        }\r\n    };\r\n    that.isTimecodeMode = () => {\r\n        return spec.timecode;\r\n    };\r\n    that.getRtmpBufferTime = () => {\r\n        return spec.rtmpBufferTime;\r\n    };\r\n    that.getRtmpBufferTimeMax = () => {\r\n        return spec.rtmpBufferTimeMax;\r\n    };\r\n    that.setMute = (mute) =>{\r\n        spec.mute = mute;\r\n    };\r\n    that.isMute = () =>{\r\n        return spec.mute;\r\n    };\r\n    that.getVolume = () =>{\r\n        return spec.volume;\r\n    };\r\n    that.setVolume = (volume) =>{\r\n        spec.volume = volume;\r\n    };\r\n    that.isLoop = () =>{\r\n        return spec.loop;\r\n    };\r\n    that.isAutoStart = () =>{\r\n        return spec.autoStart;\r\n    };\r\n    that.isControls = () =>{\r\n        return spec.controls;\r\n    };\r\n\r\n    that.getPlaybackRates =()=>{\r\n        return spec.playbackRates;\r\n    };\r\n    that.getBrowser = () => {\r\n        return spec.browser;\r\n    };\r\n    that.getSystemText = () => {\r\n        return spec.systemText;\r\n    };\r\n    that.getLanguage = () => {\r\n        return spec.lang;\r\n    };\r\n\r\n    that.getPlaylist =()=>{\r\n        return spec.playlist;\r\n    };\r\n    that.setPlaylist =(playlist)=>{\r\n        if(_.isArray(playlist)){\r\n            spec.playlist = playlist;\r\n        }else{\r\n            spec.playlist = [playlist];\r\n        }\r\n        return spec.playlist;\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default Configurator;\r\n","import _ from \"utils/underscore\";\r\n\r\nexport default (uiText, data) => {\r\n    let elements = '<div id=\"'+data.id+'\" class=\"op-setting-panel '+(data.isRoot ? 'animated fadeIn': '')+'\" style=\"max-height: '+data.height+'px\">' +\r\n                        '<div class=\"op-setting-title-container\">' +\r\n                            '<div class=\"op-setting-title\" tabindex=\"0\">' +\r\n                                (data.isRoot ? '' : '<span class=\"op-setting-title-previcon\">&lt;</span>') +\r\n                                '<span class=\"op-setting-title-title\">'+data.title+'</span>' +\r\n                            '</div>'+\r\n                        '</div>' +\r\n                        '<div class=\"op-setting-item-container\">';\r\n                            _.forEach(data.body, function(body){\r\n                                elements += settingItemTemplate(body, data.useCheck);\r\n                            });\r\n    elements+=          '</div>' +\r\n                    '</div>';\r\n    return elements;\r\n};\r\n\r\n\r\nexport const settingItemTemplate = (data, useCheck) => {\r\n    return (\r\n        '<div class=\"op-setting-item\" op-panel-type=\"'+data.panelType+'\" op-data-value=\"'+data.value+'\">' +\r\n        (useCheck?'<span class=\"op-setting-item-checked '+(data.isCheck?'op-show':'')+'\">&#x2713;</span>':'' )+\r\n        '<span class=\"op-setting-item-title\">'+data.title+'</span>' +\r\n        (data.hasNext?'<span class=\"op-setting-item-nexticon\">&gt;</span><span class=\"op-setting-item-value\">'+data.description+'</span>' : '' )+\r\n        '</div>'\r\n    );\r\n};","import {naturalHms} from \"utils/strings\"\r\n\r\nexport default (uiText, playlist) => {\r\n    return (`<div class=\"op-playlist\" tabindex=\"0\">` +\r\n                `<div class=\"op-playlist-header\">${uiText.playlist} <i class=\"op-con op-close-icon btn-close\"></i></div>` +\r\n                `<div class=\"op-playlist-body\">` +\r\n                    `<div class=\"op-playlist-body-container\">` +\r\n                        `<div class=\"op-playlist-body-center\"><div class=\"op-playlist-body-row\"></div></div>`+\r\n                    `</div>`+\r\n                    `<div class=\"op-playlist-body-arrows\">` +\r\n                        `<i class=\"op-con op-arrow-left btn-left\"></i><i class=\"op-con op-arrow-right btn-right\"></i>` +\r\n                    `</div>`+\r\n                `</div>`+\r\n            `</div>`);\r\n};\r\n\r\nexport const playlistItemTemplate = (data, isActive) => {\r\n    return (\r\n        `<div class=\"op-playlist-card ${isActive? `active`:``}\" data-index=\"${data.index}\">` +\r\n            `<div class=\"op-playlist-card-thumbnail ${data.image ? ``:`empty`}\">${data.image ? `<img src=${data.image}>`:`<i class=\"op-con op-empty-video\"></i>`} ${data.duration ? `<span class=\"op-badge\">${naturalHms(data.duration)}</span>`: ``} </div>`+\r\n            `<div class=\"op-playlist-card-title\">${data.title}</div>`+\r\n        `</div>`\r\n    );\r\n};","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\nimport TextViewTemplate from 'view/example/textviewTemplate';\r\nimport ViewTemplate from 'view/viewTemplate';\r\nimport HelpersTemplate from 'view/components/helpers/mainTemplate';\r\nimport BigButtonTemplate from 'view/components/helpers/bigButtonTemplate';\r\nimport ThumbnailTemplate from 'view/components/helpers/thumbnailTemplate';\r\nimport WaterMarkTemplate from 'view/components/helpers/waterMarkTemplate';\r\nimport MessageBoxTemplate from 'view/components/helpers/messageBoxTemplate';\r\nimport SpinnerTemplate from 'view/components/helpers/spinnerTemplate';\r\nimport ContextPanelTemplate from 'view/components/helpers/contextPanelTemplate';\r\nimport CaptionViewerTemplate from 'view/components/helpers/captionViewerTemplate';\r\n\r\n\r\nimport ControlsTemplate from 'view/components/controls/mainTemplate';\r\nimport VolumeButtonTemplate from 'view/components/controls/volumeButtonTemplate';\r\nimport ProgressBarTemplate from 'view/components/controls/progressBarTemplate';\r\nimport PlayButtonTemplate from 'view/components/controls/playButtonTemplate';\r\nimport SettingButtonTemplate from 'view/components/controls/settingButtonTemplate';\r\nimport FrameButtonsTemplate from 'view/components/controls/frameButtonsTemplate';\r\nimport TimeDisplayTemplate from 'view/components/controls/timeDisplayTemplate';\r\nimport FullScreenButtonTemplate from 'view/components/controls/fullScreenButtonTemplate';\r\nimport PanelsTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport SpeedPanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport SourcePanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport QualityPanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport AudioTrackPanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport CaptionPanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport TimeDisplayPanelTemplate from 'view/components/controls/settingPanel/mainTemplate';\r\nimport PlaylistPanelTemplate from 'view/components/controls/playlistPanelTemplate';\r\n\r\nconst Templates = {\r\n    TextViewTemplate,\r\n    ViewTemplate,\r\n    HelpersTemplate,\r\n    BigButtonTemplate,\r\n    ThumbnailTemplate,\r\n    WaterMarkTemplate,\r\n    MessageBoxTemplate,\r\n    SpinnerTemplate,\r\n    ContextPanelTemplate,\r\n    CaptionViewerTemplate,\r\n\r\n    ControlsTemplate,\r\n    VolumeButtonTemplate,\r\n    ProgressBarTemplate,\r\n    PlayButtonTemplate,\r\n    SettingButtonTemplate,\r\n    FrameButtonsTemplate,\r\n    TimeDisplayTemplate,\r\n    FullScreenButtonTemplate,\r\n    PanelsTemplate,\r\n    SpeedPanelTemplate,\r\n    SourcePanelTemplate,\r\n    QualityPanelTemplate,\r\n    AudioTrackPanelTemplate,\r\n    CaptionPanelTemplate,\r\n    TimeDisplayPanelTemplate,\r\n    PlaylistPanelTemplate\r\n};\r\n\r\nexport default Templates;","/**\r\n * Created by hoho on 2018. 7. 19..\r\n */\r\n\r\nconst TextViewTemplate = function(text){\r\n    return `<div class=\"textView\" style=\"padding : 5px; background: red; position : absolute; top: 0;\">` +\r\n                `<h3>${text}</h3>` +\r\n                `<button type=\"button\" class=\"btn\">button</button>` +\r\n            `</div>`;\r\n};\r\n\r\nexport default TextViewTemplate;","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\n\r\nconst ViewTemplate = function (uiText, id) {\r\n    return `<div class=\"ovenplayer op-wrapper\" tabindex=\"-1\" ${id ? `id = \"${id}\"` : ``}>` +\r\n            `<div class=\"op-ratio\"></div>` +\r\n            `<div class=\"op-player op-clear\">` +\r\n                `<div class=\"op-core-ui-wrapper op-clear\">` +\r\n                `<div class=\"op-media-element-container op-clear\"></div>` +\r\n                `<div class=\"op-ui op-clear\"></div>` +\r\n            `</div>` +\r\n            `</div>` +\r\n        `</div>`\r\n};\r\nexport default ViewTemplate;\r\n","/**\r\n * Created by hoho on 2018. 7. 19..\r\n */\r\n\r\nconst HelpersTemplate = function(uiText, text){\r\n    return `<div class=\"op-helpers-container\"></div>`;\r\n};\r\n\r\nexport default HelpersTemplate;\r\n","import {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED,\r\n    STATE_ERROR\r\n} from \"api/constants\";\r\n\r\n\r\nexport default (uiText, playerState) => {\r\n    return (`<div class=\"op-bigbutton-container \">` +\r\n            `${playerState === STATE_PLAYING ?`<i class=\"op-con op-pause-big\"></i>` :`` }`+\r\n            `${playerState === STATE_PAUSED ?`<i class=\"op-bigbutton op-con op-play-big\"></i>` :`` }`+\r\n            `${playerState === STATE_IDLE ?`<i class=\"op-bigbutton op-con op-play-big\"></i>` :`` }`+\r\n            `${playerState === STATE_COMPLETE ?`<i class=\"op-bigbutton op-con op-replay-big\"></i>` :`` }`+\r\n        `</div>`);\r\n};","export default (uiText, data) => {\r\n    return (`<div class=\"op-thumbnail-container\"><div class=\"op-thumbnail-wrapper\">`+\r\n        `${data.title ? `<div class=\"op-thumbnail-header\">${data.title}</div>`:``}` +\r\n    `</div></div>`);\r\n};","export default (uiText, data) => {\r\n    return (`<div class=\"op-watermark-container\">` +\r\n                `<div class=\"op-watermark\">`+\r\n                    `${data.waterMark.image ? `<img src=\"${data.waterMark.image}\">`:``}` +\r\n                    `${data.waterMark.text ? `<span class=\"op-watermark-text\">${data.waterMark.text}</span>`:``}` +\r\n                `</div>` +\r\n            `</div>`);\r\n};","export default (uiText, data) => {\r\n    return (\r\n        `<div class=\"op-message-box op-clear ${data.dontClose === true ? \"op-message-box-default-cursor\" : \"\"}\">` +\r\n            `<div class=\"op-message-container \">` +\r\n                `<div class=\"op-message-text\">${data.message}` +\r\n                 `${data.description ? `<div class=\"op-message-description\">${data.description}</div>` : `` }`+\r\n                `</div>` +\r\n                `${data.iconClass ? `<div class=\"op-message-icon\"><i class=\"op-con ${data.iconClass}\"></i></div>` : `` }`+\r\n            `</div>` +\r\n        `</div>`\r\n    );\r\n};","export default (uiText) => {\r\n    return `<div class=\"op-spinner-container\"><div class=\"op-spinner\"></div></div>`;\r\n};\r\n","import {version} from \"version\";\r\nexport default (uiText) => {\r\n    return (\r\n        `<div class=\"op-context-panel animated fadeIn\">` +\r\n            `<div class=\"op-context-item\" tabindex=\"1\">` +\r\n                `<span class=\"op-context-item-text\">${uiText.context} ${version}</span>` +\r\n            `</div>`+\r\n        `</div>`\r\n    );\r\n};","/**\r\n * Created by hoho on 22/11/2018.\r\n */\r\nexport default (uiText) => {\r\n    return (\r\n        `<div class=\"op-caption-viewer\">` +\r\n        `    <div class=\"op-caption-text-container\">` +\r\n        `        <pre class=\"op-caption-text\"></pre>` +\r\n        `      </div>` +\r\n        `</div>`\r\n    );\r\n};","\r\nconst Controls = function(uiText, hasPlaylist){\r\n    return (\r\n        `<div class=\"op-controls-container op-clear\">`+\r\n            `<div class=\"op-bottom-panel op-clear\">` +\r\n                `<div class=\"op-gradient-bottom op-clear\"></div>` +\r\n                `<div class=\"op-controls op-clear\">` +\r\n                    `<div class=\"op-left-controls op-clear\"></div>` +\r\n                    `<div class=\"op-right-controls op-clear\">`+\r\n                        `<div class=\"playlist-holder op-navigators op-clear\">${hasPlaylist?`<button class=\"op-button op-playlist-button\"><i class=\"op-con op-playlist-icon\"></i></button>`:``}</div>`+\r\n                        `<div class=\"setting-holder op-navigators op-clear\"></div>`+\r\n                        `<div class=\"fullscreen-holder op-navigators op-clear\"></div>`+\r\n                    `</div>` +\r\n                `</div>` +\r\n                `<div class=\"op-progressbar-container op-clear\"></div>` +\r\n            `</div>` +\r\n        `</div>`);\r\n\r\n};\r\n\r\n\r\nexport default Controls;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\nexport default (uiText) => {\r\n    return (\r\n        `<div class=\"op-navigators op-volume-controller\">`+\r\n            `<button class=\"op-button op-volume-button\">` +\r\n                `<i class=\"op-con op-volume-max\"></i>` +\r\n                `<i class=\"op-con op-volume-small\"></i>` +\r\n                `<i class=\"op-con op-volume-mute\"></i>` +\r\n            `</button>` +\r\n            `<div class=\"op-volume-slider-container\">` +\r\n                `<div class=\"op-volume-silder\">` +\r\n                    `<div class=\"op-volume-slider-bg\"></div>` +\r\n                    `<div class=\"op-volume-slider-value\"></div>` +\r\n                    `<div class=\"op-volume-slider-handle\"></div>` +\r\n                `</div>`+\r\n            `</div>` +\r\n        `</div>`\r\n    );\r\n};\r\n","export default (uiText) => {\r\n    return (\r\n        `<div class=\"op-progressbar\" tabindex=\"0\">` +\r\n            `<div class=\"op-progressbar-padding\"></div>` +\r\n            `<div class=\"op-progress-list\">` +\r\n                `<div class=\"op-load-progress\"></div>` +\r\n                `<div class=\"op-play-progress op-play-background-color\"></div>` +\r\n                `<div class=\"op-hover-progress\"></div>` +\r\n            `</div>` +\r\n            `<div class=\"op-progressbar-knob-container\">` +\r\n                `<div class=\"op-progressbar-knob op-play-background-color\"></div>` +\r\n            `</div>` +\r\n            `<span class=\"op-progressbar-preview\"></span>` +\r\n            `<span class=\"op-progressbar-time\">00:00</span>` +\r\n        `</div>`\r\n    );\r\n};\r\n","export default (uiText) => {\r\n    return (\r\n        `<div class=\"op-navigators op-play-controller\">` +\r\n            `<button class=\"op-button op-play-button\" type=\"button\">` +\r\n                `<i class=\"op-con op-play\"></i>` +\r\n                `<i class=\"op-con op-pause\" style=\"display: none;\"></i>` +\r\n                `<i class=\"op-con op-replay\" style=\"display: none;\"></i>` +\r\n            `</button>` +\r\n            `<button class=\"op-button op-seek-button op-seek-button-back\" type=\"button\">` +\r\n                `<i class=\"op-con op-seek-back\"></i>` +\r\n                `<span class=\"op-seek-back-text\">10</span>` +\r\n            `</button>` +\r\n            `<button class=\"op-button op-seek-button op-seek-button-forward\" type=\"button\">` +\r\n                `<i class=\"op-con op-seek-forward\"></i>` +\r\n                `<span class=\"op-seek-forward-text\">10</span>` +\r\n            `</button>` +\r\n        `</div>`\r\n    );\r\n};\r\n","export default (uiText) => {\r\n    return (`<button class=\"op-button op-setting-button\"><i class=\"op-con op-setting\"></i></button>`);\r\n};","export default (uiText) => {\r\n    return (\r\n        '<div class=\"op-frame-buttons\">'+\r\n            '<button class=\"op-button op-frame-button\" op-data-value=\"-5\"><div class=\"frame-icon\"><span class=\"btn-text\">-5f</span></div></button>'+\r\n            '<button class=\"op-button op-frame-button\" op-data-value=\"-1\"><div class=\"frame-icon\"><span class=\"btn-text\">-1f</span></div></button>'+\r\n            '<button class=\"op-button op-frame-button\" op-data-value=\"+1\"><div class=\"frame-icon reverse\"><span class=\"btn-text\">+1f</span></div></button>'+\r\n            '<button class=\"op-button op-frame-button\" op-data-value=\"+5\"><div class=\"frame-icon reverse\"><span class=\"btn-text\">+5f</span></div></button>'+\r\n        '</div>'\r\n    );\r\n};","export default (uiText, data) => {\r\n    return`<div class=\"op-navigators op-time-display\">`+\r\n            (data.duration === Infinity\r\n                ?\r\n                (\r\n                    `<span class=\"op-live-badge\" disabled=\"disabled\">` +\r\n                        (data.type ===\"webrtc\"\r\n                        ?\r\n                            (data.isP2P ?\r\n                                    `<span class=\"op-live-badge-lowlatency\">${uiText.controls.low_latency_p2p}</span>` : `<span class=\"op-live-badge-lowlatency\">${uiText.controls.low_latency_live}</span>`\r\n                            )\r\n                        :\r\n                        `<span class=\"op-live-text\" title=\"Skip ahead to live.\">${uiText.controls.live}</span>`) +\r\n                    `</span>`\r\n                )\r\n                :(`<span class=\"op-time-current\">00:00</span><span class=\"op-time-separator\"> / </span><span class=\"op-time-duration\">00:00</span>`)\r\n            ) +\r\n        `</div>`;\r\n};\r\n","export default (uiText) => {\r\n    return (\r\n        `<button class=\"op-button op-fullscreen-button\">`+\r\n        `<i class=\"op-con op-fullscreen-expand\"></i>` +\r\n        `<i class=\"op-con op-fullscreen-compress\"></i>` +\r\n        `</button>`\r\n    );\r\n};\r\n","/**\r\n * Created by hoho on 2018. 7. 19..\r\n */\r\n\r\nimport Templates from \"view/engine/Templates\";\r\nimport LA$ from 'utils/likeA$';\r\nimport _ from \"utils/underscore\";\r\n\r\n/**\r\n * @brief   This is simple ui renderer. This returns onRendered callback, onDestroyed callback on Template. And this bind events for Templates.\r\n * @param   container  dom element or LA$ object\r\n * @param   templateName    templateName\r\n * @param   data    preload data\r\n * @param   events    Template's events.\r\n * @param   onRendered    This callback occurs after append template.\r\n * @param   onDestroyed    This callback occurs after destroyed template.\r\n * @param   isRoot\r\n *\r\n * */\r\nconst OvenTemplate = function (container, templateName, playerConfig, data, events, onRendered, onDestroyed, isRoot) {\r\n\r\n    let $container = _.isElement(container) ? LA$(container) : container;\r\n    let $template;\r\n    let viewEvents = {};\r\n    let uiText = null;\r\n    let that = {};\r\n    that.data = data;\r\n    let createAndSelectElement = function (html) {\r\n        const newElement = document.createElement('div');\r\n        newElement.innerHTML = html;\r\n\r\n        $template = LA$(newElement.firstChild);\r\n\r\n        return newElement.firstChild;\r\n    }\r\n    if(playerConfig && playerConfig.systemText){\r\n        uiText = playerConfig.systemText.ui;\r\n    }\r\n    if (isRoot) {\r\n        $container.replace(createAndSelectElement(Templates[templateName + \"Template\"](uiText, data)));\r\n    } else {\r\n        $container.append(createAndSelectElement(Templates[templateName + \"Template\"](uiText, data)));\r\n    }\r\n\r\n    if (onRendered) {\r\n        onRendered($template, that);\r\n    }\r\n\r\n    Object.keys(events).forEach(eventString => {\r\n        let explodedText = eventString.split(\" \");\r\n        let eventName = explodedText[0].replace(/ /gi, \"\");\r\n        let target = explodedText[1].replace(/ /gi, \"\");\r\n\r\n        let $target = \"\";\r\n\r\n        if(target === \"document\" || target === \"window\" || target === \"body\"){\r\n            $target = LA$(target);\r\n        }else{\r\n            $target = $template.find(target) || ($template.hasClass(target.replace(\".\",\"\")) ? $template : null);\r\n        }\r\n\r\n\r\n        if (eventName && target && $target) {\r\n            let id = Object.keys(viewEvents).length++;\r\n\r\n            //because It retuns another data.\r\n            let wrappedFunc = function (event) {\r\n                return events[eventString](event, $template, that);\r\n            };\r\n            viewEvents[id] = {name: eventName, target: target, callback: wrappedFunc};\r\n\r\n            /*$template.get().addEventListener(eventName,function(evt){\r\n                var gtarget = evt.target;\r\n                while (gtarget!= null){\r\n                    if (gtarget.isEqualNode($target.get())){\r\n                        console.log(\"isEqual\", gtarget, $target.get());\r\n                        wrappedFunc(evt);\r\n                        return;\r\n                    }\r\n                    gtarget = gtarget.parentElement;\r\n                }\r\n            }, true);*/\r\n\r\n            let eventOption = null;\r\n\r\n            if (eventName.indexOf('touch') > -1) {\r\n                eventOption = { passive: true };\r\n            }\r\n\r\n            //sometimes target is NodeList\r\n            let nodeLength = $target.get().length;\r\n\r\n            if(nodeLength > 1){\r\n                let nodeList = $target.get();\r\n                for(let i = 0; i < nodeLength; i ++){\r\n                    nodeList[i].addEventListener(eventName, wrappedFunc, eventOption);\r\n                }\r\n                //IE NodeList doesn't have forEach. It's wack.\r\n                //$target.get().forEach(function($item){\r\n                //    $item.addEventListener(eventName, wrappedFunc);\r\n                //});\r\n            }else{\r\n                $target.get().addEventListener(eventName, wrappedFunc, eventOption);\r\n            }\r\n\r\n\r\n        } else {\r\n            return false;\r\n        }\r\n    });\r\n\r\n    that.destroy = function () {\r\n        Object.keys(viewEvents).forEach(id => {\r\n            let event = viewEvents[id];\r\n            let $target = \"\";\r\n\r\n            if(event.target === \"document\" || event.target === \"window\" ||  event.target === \"body\"){\r\n                $target = LA$(event.target);\r\n            }else{\r\n                $target = $template.find(event.target) || ($template.hasClass(event.target.replace(\".\",\"\")) ? $template : null);\r\n            }\r\n\r\n            //sometimes target is NodeList\r\n            let nodeLength = $target.get().length;\r\n            if(nodeLength > 1){\r\n                let nodeList = $target.get();\r\n                for(let i = 0; i < nodeLength; i ++){\r\n                    nodeList[i].removeEventListener(event.name, event.callback);\r\n                }\r\n                /*$target.get().forEach(function($item){\r\n                    $item.removeEventListener(event.name, event.callback);\r\n                });*/\r\n            }else{\r\n                $target.get().removeEventListener(event.name, event.callback);\r\n            }\r\n\r\n            delete viewEvents[id];\r\n        });\r\n\r\n        if($template){\r\n            if(isRoot){\r\n                $template.removeChild();\r\n                $template.removeAttribute(\"class\");\r\n            }else{\r\n                $template.remove();\r\n            }\r\n        }\r\n\r\n        if (onDestroyed) {\r\n            onDestroyed(that);\r\n        }\r\n    };\r\n    return that;\r\n\r\n};\r\n\r\n\r\nexport default OvenTemplate;\r\n","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED\r\n} from \"api/constants\";\r\n\r\nconst MessageBox = function($container, api, message, description, withTimer, iconClass, clickCallback, dontClose){\r\n\r\n    let autoDestroyTimer = \"\";\r\n    let data = {\r\n        message : message,\r\n        description : description,\r\n        iconClass : iconClass,\r\n        dontClose: dontClose\r\n    };\r\n\r\n\r\n    const onRendered = function($current, template){\r\n        if(withTimer){\r\n            autoDestroyTimer = setTimeout(function(){\r\n                template.destroy();\r\n            }, withTimer||5000);\r\n        }\r\n    };\r\n    const onDestroyed = function(){\r\n    };\r\n    const events = {\r\n        \"click .op-message-text\" : function(event, $current, template){\r\n            //event.preventDefault();\r\n            event.stopPropagation();\r\n\r\n            if (dontClose) {\r\n                return;\r\n            }\r\n            if(autoDestroyTimer){\r\n                clearTimeout(autoDestroyTimer);\r\n            }\r\n            if(clickCallback){\r\n                clickCallback();\r\n            }\r\n            template.destroy();\r\n        },\r\n        \"click .op-con\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            if (dontClose) {\r\n                return;\r\n            }\r\n\r\n            if(autoDestroyTimer){\r\n                clearTimeout(autoDestroyTimer);\r\n            }\r\n\r\n            if(clickCallback){\r\n                clickCallback();\r\n            }\r\n            template.destroy();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"MessageBox\", api.getConfig(), data, events, onRendered, onDestroyed );\r\n};\r\n\r\n\r\nexport default MessageBox;","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport BigButton from \"view/components/helpers/bigButton\";\r\nimport MessageBox from \"view/components/helpers/messageBox\";\r\nimport CaptionViewer from \"view/components/helpers/captionViewer\";\r\nimport Thumbnail from \"view/components/helpers/thumbnail\";\r\nimport WaterMark from \"view/components/helpers/waterMark\";\r\nimport Spinner from \"view/components/helpers/spinner\";\r\nimport {\r\n    READY,\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n    STATE_AD_LOADING,\r\n    PLAYLIST_CHANGED,\r\n    PLAYER_WARNING,\r\n    CONTENT_MUTE,\r\n    STATE_ERROR,\r\n    PLAYER_STATE,\r\n    ALL_PLAYLIST_ENDED,\r\n    CONTENT_LEVEL_CHANGED,\r\n    CONTENT_SOURCE_CHANGED,\r\n    NETWORK_UNSTABLED,\r\n    UI_ICONS\r\n} from \"api/constants\";\r\n\r\nconst Helpers = function($container, api){\r\n    let firstRun = false;\r\n    let bigButton = \"\", messageBox = \"\",  captionViewer = \"\", spinner = \"\", thumbnail, waterMark;\r\n    let mutedMessage = null;\r\n    let hasThumbnail = api.getConfig().image || api.getConfig().title;\r\n    let hasWaterMark = api.getConfig().waterMark && api.getConfig().waterMark.image ||\r\n        api.getConfig().waterMark && api.getConfig().waterMark.text;\r\n    let dont_show_message = false;\r\n\r\n    const onRendered = function($current, template){\r\n        let qualityLevelChanging = false, newQualityLevel = -1;\r\n        function createBigButton(state){\r\n\r\n            if (!api.getConfig().showBigPlayButton) {\r\n                return;\r\n            }\r\n\r\n            if (api.getState() === STATE_IDLE || api.getState() === STATE_COMPLETE) {\r\n\r\n                if (messageBox) {\r\n                    messageBox.destroy();\r\n                }\r\n\r\n                if (bigButton) {\r\n                    bigButton.destroy();\r\n                }\r\n\r\n                bigButton = BigButton($current, api, state);\r\n            }\r\n        }\r\n        function createMessage(message, description ,withTimer, iconClass, clickCallback, dontClose){\r\n\r\n            if(bigButton){\r\n                bigButton.destroy();\r\n            }\r\n\r\n            if(messageBox){\r\n                messageBox.destroy();\r\n            }\r\n\r\n            messageBox = MessageBox($current, api, message, description, withTimer, iconClass, clickCallback, dontClose);\r\n        }\r\n        function createThumbnail(){\r\n\r\n            const mediaElement = api.getMediaElement();\r\n\r\n            if (mediaElement) {\r\n                mediaElement.poster = ''\r\n            }\r\n\r\n            if (api.getConfig().image) {\r\n                mediaElement.poster = api.getConfig().image;\r\n            }\r\n\r\n\r\n            if(thumbnail){\r\n                thumbnail.destroy();\r\n            }\r\n\r\n            thumbnail = Thumbnail($current, api, api.getConfig());\r\n        }\r\n        function createWaterMark() {\r\n\r\n            if (waterMark) {\r\n                waterMark.destroy();\r\n            }\r\n\r\n            waterMark = WaterMark($current, api, api.getConfig());\r\n        }\r\n\r\n        spinner = Spinner($current, api);\r\n\r\n        /*if(api.getCaptionList() && api.getCaptionList().length > 0){\r\n            captionViewer = CaptionViewer($current, api);\r\n        }*/\r\n\r\n        captionViewer = CaptionViewer($current, api);\r\n\r\n        api.on(READY, function() {\r\n            if(hasThumbnail){\r\n                createThumbnail();  //shows when playlist changed.\r\n            }\r\n            if(hasWaterMark) {\r\n                createWaterMark();\r\n            }\r\n\r\n            if (!firstRun) {\r\n\r\n                createBigButton(STATE_PAUSED);\r\n                firstRun = true;\r\n            }\r\n\r\n        }, template);\r\n\r\n        //So far warning muted play is all!!\r\n        api.on(PLAYER_WARNING, function(data) {\r\n            if(data.message){\r\n\r\n                if(bigButton){\r\n                    bigButton.destroy();\r\n                }\r\n\r\n                if(messageBox){\r\n                    messageBox.destroy();\r\n                }\r\n                mutedMessage = MessageBox($current, api, data.message, null, data.timer, data.iconClass, data.onClickCallback, false);\r\n\r\n                //When the volume is turned on by an external something.\r\n                api.once(CONTENT_MUTE, function(data){\r\n                    if(!data.mute && mutedMessage){\r\n                        mutedMessage.destroy();\r\n                    }\r\n                }, template);\r\n            }\r\n        }, template);\r\n\r\n        api.on(PLAYER_STATE, function(data){\r\n            if(data && data.newstate){\r\n\r\n                if (data.newstate === STATE_IDLE) {\r\n                    if(messageBox){\r\n                        messageBox.destroy();\r\n                    }\r\n                }\r\n\r\n                if(data.newstate === STATE_PLAYING ||  data.newstate === STATE_AD_PLAYING){\r\n\r\n                    dont_show_message = false;\r\n\r\n                    if (messageBox) {\r\n                        messageBox.destroy();\r\n                    }\r\n                    if (bigButton) {\r\n                        bigButton.destroy();\r\n                    }\r\n                    if(thumbnail){\r\n                        thumbnail.destroy();\r\n                    }\r\n\r\n                    if(!qualityLevelChanging){\r\n                        spinner.show(false);\r\n                    }\r\n                } else if (data.newstate === STATE_COMPLETE) {\r\n\r\n                    spinner.show(false);\r\n                    createBigButton(data.newstate);\r\n                } else{\r\n\r\n                    if(data.newstate === STATE_STALLED || data.newstate === STATE_LOADING || data.newstate === STATE_AD_LOADING){\r\n\r\n                        dont_show_message = false;\r\n                        if(messageBox){\r\n                            messageBox.destroy();\r\n                        }\r\n                        if (bigButton) {\r\n                            bigButton.destroy();\r\n                        }\r\n                        spinner.show(true);\r\n                    }else{\r\n                        if(!qualityLevelChanging){\r\n                            spinner.show(false);\r\n                        }\r\n                    }\r\n                }\r\n\r\n            }\r\n        }, template);\r\n\r\n        api.on(CONTENT_SOURCE_CHANGED, function () {\r\n\r\n            if(hasThumbnail){\r\n                createThumbnail();  //shows when playlist changed.\r\n            }\r\n        });\r\n\r\n        //show spinner cuz dashjs spends long time for level change.\r\n        api.on(CONTENT_LEVEL_CHANGED, function(data){\r\n            if(data.currentQuality < 0 ){\r\n                return false;\r\n            }\r\n            if(data.isAuto){\r\n                qualityLevelChanging = false;\r\n                spinner.show(false);\r\n            }else{\r\n                if(data.type === \"request\"){\r\n                    newQualityLevel = data.currentQuality;\r\n                    qualityLevelChanging = true;\r\n                    spinner.show(true);\r\n                }else if(data.type === \"render\" && newQualityLevel === data.currentQuality){\r\n                    qualityLevelChanging = false;\r\n                    spinner.show(false);\r\n                    //createMessage(\"quality changed.\", 3000);\r\n                }\r\n            }\r\n\r\n         }, template);\r\n        api.on(ERROR, function(error) {\r\n\r\n            if (error.code === 510) {\r\n                dont_show_message = true;\r\n            }\r\n\r\n            if (error.code === 101 && api.getPlaylist().length === 0) {\r\n                dont_show_message = true;\r\n            }\r\n\r\n            if (dont_show_message) {\r\n                return;\r\n            }\r\n\r\n            let message = \"\", description = \"\";\r\n\r\n            if(bigButton){\r\n                bigButton.destroy();\r\n            }\r\n\r\n            if (error && error.code && error.code >= 100 && error.code < 1000) {\r\n                message = error.message;\r\n                if(error.code === 100){\r\n                    description = error.error.toString();\r\n                }\r\n            }  else {\r\n                message = \"Can not play due to unknown reasons.\";\r\n            }\r\n            OvenPlayerConsole.log(\"error occured : \", error);\r\n\r\n            createMessage(message, description, null, UI_ICONS.op_warning , null, true);\r\n        }, template);\r\n\r\n\r\n        api.on(NETWORK_UNSTABLED, function(event){\r\n            let message = \"Because the network connection is unstable, the following media source will be played.\";\r\n\r\n            if(api.getCurrentSource()+1 ===  api.getQualityLevels().length){\r\n                message = \"Network connection is unstable. Check the network connection.\";\r\n            }\r\n\r\n            OvenPlayerConsole.log(message);\r\n            //createMessage(message, null,5000);\r\n        }, template);\r\n\r\n        api.on(ALL_PLAYLIST_ENDED, function(){\r\n            if(hasThumbnail){\r\n                createThumbnail();\r\n            }\r\n        }, template);\r\n    };\r\n    const onDestroyed = function(template){\r\n        api.off(READY, null, template);\r\n        api.off(PLAYER_STATE, null, template);\r\n        api.off(PLAYER_WARNING, null, template);\r\n        api.off(ERROR, null, template);\r\n        api.off(NETWORK_UNSTABLED, null, template);\r\n        api.off(ALL_PLAYLIST_ENDED, null, template);\r\n        api.off(PLAYLIST_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n\r\n    };\r\n\r\n    return OvenTemplate($container, \"Helpers\", api.getConfig(), null, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default Helpers;\r\n","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED\r\n} from \"api/constants\";\r\nimport {STATE_ERROR} from \"../../../api/constants\";\r\n\r\nconst BigButton = function($container, api, playerState){\r\n\r\n    const onRendered = function($container, $current, template){\r\n        //Do nothing!\r\n    };\r\n    const onDestroyed = function(){\r\n        //Do nothing!\r\n    };\r\n    const events = {\r\n        \"click .op-bigbutton-container\" : function(event){\r\n            event.preventDefault();\r\n            event.stopPropagation();\r\n\r\n            const currentState = api.getState();\r\n            let playlist = api.getPlaylist();\r\n            let currentPlaylistIndex = api.getCurrentPlaylist();\r\n\r\n            if (currentState === STATE_IDLE || currentState === STATE_PAUSED) {\r\n                api.play();\r\n            } else if (currentState === STATE_ERROR) {\r\n                api.setCurrentSource(api.getCurrentSource());\r\n            } else if(currentState === STATE_COMPLETE){\r\n                if(playlist.length === (currentPlaylistIndex+1)){\r\n                    api.seek(0);\r\n                    api.play();\r\n                }\r\n            }\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"BigButton\", api.getConfig(), playerState, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default BigButton;","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED\r\n} from \"api/constants\";\r\n\r\nconst Thumbnail = function ($container, api, playerState) {\r\n\r\n    const onRendered = function ($current, template) {\r\n\r\n    };\r\n    const onDestroyed = function () {\r\n        //Do nothing!\r\n    };\r\n    const events = {};\r\n\r\n    return OvenTemplate($container, \"Thumbnail\", api.getConfig(), playerState, events, onRendered, onDestroyed);\r\n};\r\n\r\nexport default Thumbnail;","/**\r\n * Created by hoho on 2018. 7. 25..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\n\r\nconst Spinner = function($container, api){\r\n    let $spinner = \"\";\r\n\r\n    const onRendered = function($current, template){\r\n        $spinner = $current;\r\n    };\r\n    const onDestroyed = function(){\r\n        //Do nothing.\r\n    };\r\n    const events = {};\r\n\r\n    return Object.assign(OvenTemplate($container, \"Spinner\", api.getConfig(), null, events, onRendered, onDestroyed ), {\r\n        show: function (isShow) {\r\n            if(isShow){\r\n                $spinner.show();\r\n            }else{\r\n                $spinner.hide();\r\n            }\r\n        }\r\n    });\r\n};\r\n\r\n\r\nexport default Spinner;","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED,\r\n    CONTENT_CAPTION_CHANGED,\r\n    CONTENT_CAPTION_CUE_CHANGED\r\n} from \"api/constants\";\r\nimport LA$ from 'utils/likeA$';\r\n\r\n\r\nconst CaptionViewer = function($container, api, playerState){\r\n    const $root = LA$(api.getContainerElement());\r\n\r\n    const onRendered = function($container, $current, template){\r\n        let isDisable = false;\r\n        let deleteTimer = 0;\r\n\r\n        api.on(CONTENT_CAPTION_CHANGED, function(index) {\r\n            if(index > -1){\r\n                isDisable = false;\r\n            }else{\r\n                isDisable  = true;\r\n                $container.find(\".op-caption-text\").text(\"\");\r\n            }\r\n        }, template);\r\n\r\n        api.on(CONTENT_CAPTION_CUE_CHANGED, function(data) {\r\n            if(!isDisable && data && data.text){\r\n                let hideGap = data.endTime - data.startTime;\r\n\r\n                if(deleteTimer){\r\n                    clearTimeout(deleteTimer);\r\n                }\r\n\r\n                $container.find(\".op-caption-text\").html(data.text);\r\n\r\n                if(hideGap){\r\n                    deleteTimer = setTimeout(function(){\r\n                        $container.find(\".op-caption-text\").text(\"\");\r\n                    },hideGap * 1000);\r\n                }\r\n\r\n            }\r\n\r\n        }, template);\r\n\r\n\r\n    };\r\n    const onDestroyed = function(template){\r\n        $container.find(\".op-caption-text\").text(\"\");\r\n        api.off(CONTENT_CAPTION_CHANGED, null, template);\r\n        api.off(CONTENT_CAPTION_CUE_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n    };\r\n\r\n    return OvenTemplate($container, \"CaptionViewer\", api.getConfig(), playerState, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default CaptionViewer;","/**\r\n * Created by Sangwon Oh on 2020. 11. 10..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport _ from 'utils/underscore';\r\nimport {\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED\r\n} from \"api/constants\";\r\n\r\nconst WaterMark = function($container, api, playerState){\r\n\r\n    let waterMark = null;\r\n    let textElem = null;\r\n    const defaultPosition = 'top-right';\r\n    const defaultX = '2.8125%';\r\n    const defaultY = '5%';\r\n    const defaultWidth = 'auto';\r\n    const defaultHeight = 'auto';\r\n    const defaultOpacity = 0.7;\r\n\r\n    const onRendered = function($current, template){\r\n\r\n        waterMark = $current.find('.op-watermark');\r\n        textElem = $current.find('.op-watermark-text');\r\n\r\n        let waterMarkOption = api.getConfig().waterMark;\r\n\r\n        let position = waterMarkOption.position || defaultPosition;\r\n\r\n        let y = waterMarkOption.y || defaultY;\r\n        let x = waterMarkOption.x || defaultX;\r\n\r\n        waterMark.css(position.split('-')[0], y);\r\n        waterMark.css(position.split('-')[1], x);\r\n\r\n        let width = waterMarkOption.width || defaultWidth;\r\n        let height = waterMarkOption.height || defaultHeight;\r\n\r\n        waterMark.css('width', width);\r\n        waterMark.css('height', height);\r\n\r\n        let opacity = waterMarkOption.opacity || defaultOpacity;\r\n        waterMark.css('opacity', opacity);\r\n\r\n        if (waterMarkOption.text) {\r\n\r\n            if (waterMarkOption.font) {\r\n\r\n                _.each(waterMarkOption.font, function (value, key) {\r\n                    textElem.css(key, value);\r\n                })\r\n            }\r\n        }\r\n\r\n    };\r\n    const onDestroyed = function(){\r\n        //Do nothing!\r\n    };\r\n    const events = {\r\n\r\n    };\r\n\r\n    return OvenTemplate($container, \"WaterMark\", api.getConfig(), playerState, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default WaterMark;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport _ from \"utils/underscore\";\r\n\r\nlet settingPanelList = [];\r\n\r\nconst PanelManager = function(){\r\n    const that = {};\r\n\r\n    let refreshFront = function(){\r\n        for(let i = 0 ; i < settingPanelList.length; i ++){\r\n            settingPanelList[i].data.setFront(false);\r\n        }\r\n        if(settingPanelList.length ){\r\n            settingPanelList[settingPanelList.length - 1].data.setFront(true);\r\n        }\r\n    };\r\n    that.clear = () => {\r\n        //clear all SettingPanelTemplate\r\n\r\n        _.each(settingPanelList, function(settingPanel){\r\n            settingPanel.destroy();\r\n        });\r\n        settingPanelList = [];\r\n        refreshFront();\r\n    };\r\n\r\n    that.removeLastItem = () =>{\r\n        let last = settingPanelList.pop();\r\n        last.destroy();\r\n        refreshFront();\r\n    };\r\n\r\n    that.add = (settingPanelObject) => {\r\n        settingPanelList.push(settingPanelObject);\r\n        refreshFront();\r\n    };\r\n\r\n    that.size = () => {\r\n        return settingPanelList.length;\r\n    };\r\n\r\n    return that;\r\n};\r\n\r\nexport default PanelManager;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\nimport _ from \"utils/underscore\";\r\nimport sizeHumanizer from \"utils/sizeHumanizer\";\r\nimport SpeedPanel from \"view/components/controls/settingPanel/speedPanel\";\r\nimport SourcePanel from \"view/components/controls/settingPanel/sourcePanel\";\r\nimport QualityPanel from \"view/components/controls/settingPanel/qualityPanel\";\r\nimport AudioTrackPanel from \"view/components/controls/settingPanel/audioTrackPanel\";\r\nimport CaptionPanel from \"view/components/controls/settingPanel/captionPanel\";\r\nimport TimeDisplayPanel from \"view/components/controls/settingPanel/timeDisplayPanel\";\r\nimport {\r\n    CONTENT_LEVEL_CHANGED, PROVIDER_RTMP\r\n} from \"api/constants\";\r\nimport {AUDIO_TRACK_CHANGED} from \"../../../../api/constants\";\r\n\r\nlet PANEL_TITLE = {\r\n    \"speed\": \"Speed\",\r\n    \"speedUnit\": \"x\",\r\n    \"source\": \"Source\",\r\n    \"quality\": \"Quality\",\r\n    \"audioTrack\": \"Audio\",\r\n    \"caption\": \"Caption\",\r\n    \"display\": \"Display\"\r\n};\r\n\r\nconst Panels = function ($container, api, data) {\r\n\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    let playerConfig = api.getConfig();\r\n\r\n    if (playerConfig && playerConfig.systemText) {\r\n        Object.keys(PANEL_TITLE).forEach(title => {\r\n            PANEL_TITLE[title] = playerConfig.systemText.ui.setting[title];\r\n        });\r\n    }\r\n\r\n    function extractSubPanelData(api, panelType) {\r\n        let panel = {\r\n            id: \"panel-\" + new Date().getTime(),\r\n            title: \"\",\r\n            body: [],\r\n            useCheck: true,\r\n            panelType: panelType,\r\n            height: $root.height() - $root.find(\".op-bottom-panel\").height()\r\n        };\r\n        panel.title = PANEL_TITLE[panelType];\r\n        if (panelType === \"speed\") {\r\n            let playBackRates = api.getConfig().playbackRates;\r\n            let currentPlaybackRate = api.getPlaybackRate();\r\n            for (let i = 0; i < playBackRates.length; i++) {\r\n                let body = {\r\n                    title: playBackRates[i] + PANEL_TITLE.speedUnit, //(playBackRates[i] === 1? \"Normal\" : playBackRates[i]),\r\n                    isCheck: currentPlaybackRate === playBackRates[i],\r\n                    value: playBackRates[i],\r\n                    description: playBackRates[i],\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        } else if (panelType === \"source\") {\r\n            let sources = api.getSources();\r\n            for (let i = 0; i < sources.length; i++) {\r\n                let body = {\r\n                    title: sources[i].label,\r\n                    isCheck: api.getCurrentSource() === i,\r\n                    value: i,\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        } else if (panelType === \"quality\") {\r\n            let qualityLevels = api.getQualityLevels();\r\n            panel.body.push({\r\n                title: \"AUTO\",\r\n                isCheck: api.isAutoQuality(),\r\n                value: \"AUTO\",\r\n                panelType: panelType\r\n            });\r\n            for (let i = 0; i < qualityLevels.length; i++) {\r\n                let body = {\r\n                    title: qualityLevels[i].label,\r\n                    isCheck: api.getCurrentQuality() === i,\r\n                    value: i,\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        } else if (panelType === \"audioTrack\") {\r\n            let audioTracks = api.getAudioTracks();\r\n\r\n            for (let i = 0; i < audioTracks.length; i++) {\r\n                let body = {\r\n                    title: audioTracks[i].label,\r\n                    isCheck: audioTracks[i].index === api.getCurrentAudioTrack(),\r\n                    value: audioTracks[i].index,\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        } else if (panelType === \"caption\") {\r\n            let captions = api.getCaptionList();\r\n            panel.body.push({\r\n                title: \"OFF\",\r\n                isCheck: api.getCurrentCaption() === -1,\r\n                value: -1,\r\n                panelType: panelType\r\n            });\r\n            for (let i = 0; i < captions.length; i++) {\r\n                let body = {\r\n                    title: captions[i].label,\r\n                    isCheck: api.getCurrentCaption() === i,\r\n                    value: i,\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        } else if (panelType === \"display\") {\r\n            let displayModes = [\r\n                \"Play time\",\r\n                \"Framecode\"\r\n            ];\r\n            for (let i = 0; i < displayModes.length; i++) {\r\n                let body = {\r\n                    title: displayModes[i],\r\n                    isCheck: api.isTimecodeMode() ? (displayModes[i] === \"Play time\") : (displayModes[i] === \"Framecode\"),\r\n                    value: displayModes[i],\r\n                    panelType: panelType\r\n                };\r\n                panel.body.push(body);\r\n            }\r\n\r\n        }\r\n        return panel;\r\n    };\r\n\r\n    data.setFront = function (isFront) {\r\n        if (isFront) {\r\n            $root.find(\"#\" + data.id).removeClass(\"background\");\r\n        } else {\r\n            $root.find(\"#\" + data.id).addClass(\"background\");\r\n        }\r\n    };\r\n\r\n    function setPanelMaxHeight() {\r\n        if ($root.find(\".op-setting-panel\")) {\r\n            $root.find(\".op-setting-panel\").css(\"max-height\", $root.height() - $root.find(\".op-bottom-panel\").height() + \"px\");\r\n        }\r\n    };\r\n    const onRendered = function ($current, template) {\r\n        setPanelMaxHeight();\r\n\r\n        api.on(CONTENT_LEVEL_CHANGED, function (data) {\r\n            let newQuality = data.currentQuality;\r\n            if (data.type === \"render\" && $root.find(\"#\" + template.data.id).find(\".op-setting-item\")) {\r\n                _.forEach($root.find(\"#\" + template.data.id).find(\".op-setting-item\").get() || [], function (panel) {\r\n                    let $panel = LA$(panel);\r\n\r\n                    if ($panel.attr(\"op-panel-type\") === \"quality\") {\r\n                        let qualityList = api.getQualityLevels();\r\n                        let newQualityObject = qualityList[newQuality];\r\n                        $panel.find(\".op-setting-item-value\").text(newQualityObject.width + \"x\" + newQualityObject.height + \", \" + sizeHumanizer(newQualityObject.bitrate, true, \"bps\"));\r\n                    }\r\n\r\n                });\r\n            }\r\n\r\n        }, template);\r\n\r\n        api.on(AUDIO_TRACK_CHANGED, function (data) {\r\n            _.forEach($root.find(\"#\" + template.data.id).find(\".op-setting-item\").get() || [], function (panel) {\r\n\r\n                let $panel = LA$(panel);\r\n\r\n                if($panel.attr(\"op-panel-type\") === \"audioTrack\"){\r\n                    $panel.find(\".op-setting-item-value\").text(api.getAudioTracks()[data.currentAudioTrack].label);\r\n                }\r\n            });\r\n        }, template);\r\n    };\r\n    const onDestroyed = function (template) {\r\n        api.off(CONTENT_LEVEL_CHANGED, null, template);\r\n        api.off(AUDIO_TRACK_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            //if this panel is background it disabled click.\r\n            if ($root.find(\"#\" + data.id).hasClass(\"background\")) {\r\n                return false;\r\n            }\r\n            let panelType = LA$(event.currentTarget).attr(\"op-panel-type\");\r\n            let panel = null;\r\n            if (panelType === \"speed\") {\r\n                panel = SpeedPanel($container, api, extractSubPanelData(api, panelType));\r\n            } else if (panelType === \"source\") {\r\n                panel = SourcePanel($container, api, extractSubPanelData(api, panelType));\r\n            } else if (panelType === \"quality\") {\r\n                panel = QualityPanel($container, api, extractSubPanelData(api, panelType));\r\n            } else if (panelType === \"audioTrack\") {\r\n                panel = AudioTrackPanel($container, api, extractSubPanelData(api, panelType));\r\n            } else if (panelType === \"caption\") {\r\n                panel = CaptionPanel($container, api, extractSubPanelData(api, panelType));\r\n            } else if (panelType === \"display\") {\r\n                panel = TimeDisplayPanel($container, api, extractSubPanelData(api, panelType));\r\n            }\r\n\r\n            panelManager.add(panel);\r\n        },\r\n        \"click .op-setting-title\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            if ($root.find(\"#\" + data.id).hasClass(\"background\")) {\r\n                return false;\r\n            }\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n    return OvenTemplate($container, \"Panels\", api.getConfig(), data, events, onRendered, onDestroyed);\r\n\r\n};\r\n\r\nexport default Panels;\r\n\r\n","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\n\r\n\r\nconst SpeedPanel = function($container, api, data){\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function(isFront){\r\n        if(isFront){\r\n            $root.find(\"#\"+data.id).removeClass(\"background\");\r\n        }else{\r\n            $root.find(\"#\"+data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function($current, template){\r\n        //Do nothing\r\n    };\r\n    const onDestroyed = function(template){\r\n        //Do nothing\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            api.setPlaybackRate(parseFloat(value));\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"SpeedPanel\", api.getConfig(), data, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default SpeedPanel;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\n\r\n\r\nconst SourcePanel = function($container, api, data){\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function(isFront){\r\n        if(isFront){\r\n            $root.find(\"#\"+data.id).removeClass(\"background\");\r\n        }else{\r\n            $root.find(\"#\"+data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function($current, template){\r\n        //Do nothing\r\n    };\r\n    const onDestroyed = function(template){\r\n        //Do nothing\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            api.setCurrentSource(parseInt(value));\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"SourcePanel\", api.getConfig(), data, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default SourcePanel;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\nimport _ from \"utils/underscore\";\r\nimport {\r\n    CONTENT_LEVEL_CHANGED\r\n} from \"api/constants\";\r\n\r\nconst QualityPanel = function($container, api, data){\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function(isFront){\r\n        if(isFront){\r\n            $root.find(\"#\"+data.id).removeClass(\"background\");\r\n        }else{\r\n            $root.find(\"#\"+data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function($current, template){\r\n\r\n        //This assistants UI when quality level changes. When you open setting panels.\r\n        api.on(CONTENT_LEVEL_CHANGED, function(data){\r\n            let newQuality = data.currentQuality;\r\n            if(data.type === \"render\"){\r\n                _.forEach( $root.find(\"#\"+template.data.id).find(\".op-setting-item\").get(), function(panel){\r\n                    let $panel = LA$(panel);\r\n                    if( $panel.find(\".op-setting-item-checked\").hasClass(\"op-show\")){\r\n                        $panel.find(\".op-setting-item-checked\").removeClass(\"op-show\");\r\n                    }\r\n                    if(newQuality === parseInt($panel.attr(\"op-data-value\"))){\r\n                        $panel.find(\".op-setting-item-checked\").addClass(\"op-show\");\r\n                    }\r\n                    if(data.isAuto && $panel.attr(\"op-data-value\") === \"AUTO\"){\r\n                        $panel.find(\".op-setting-item-checked\").addClass(\"op-show\");\r\n                    }\r\n                });\r\n            }\r\n        }, template);\r\n    };\r\n    const onDestroyed = function(template){\r\n        api.off(CONTENT_LEVEL_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            if(value === \"AUTO\"){\r\n                api.setAutoQuality(!api.isAutoQuality());\r\n            }else{\r\n                api.setCurrentQuality(parseInt(value));\r\n            }\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"QualityPanel\", api.getConfig(), data, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default QualityPanel;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\nimport {\r\n    AUDIO_TRACK_CHANGED\r\n} from \"api/constants\";\r\nimport _ from \"utils/underscore\";\r\n\r\nconst AudioTrackPanel = function ($container, api, data) {\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function (isFront) {\r\n        if (isFront) {\r\n            $root.find(\"#\" + data.id).removeClass(\"background\");\r\n        } else {\r\n            $root.find(\"#\" + data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function ($current, template) {\r\n        api.on(AUDIO_TRACK_CHANGED, function (data) {\r\n            _.forEach($root.find(\"#\" + template.data.id).find(\".op-setting-item\").get(), function (panel) {\r\n                let $panel = LA$(panel);\r\n\r\n                if ($panel.find(\".op-setting-item-checked\").hasClass(\"op-show\")) {\r\n                    $panel.find(\".op-setting-item-checked\").removeClass(\"op-show\");\r\n                }\r\n                if (data.currentAudioTrack === parseInt($panel.attr(\"op-data-value\"))) {\r\n                    $panel.find(\".op-setting-item-checked\").addClass(\"op-show\");\r\n                }\r\n            });\r\n        }, template);\r\n    };\r\n    const onDestroyed = function (template) {\r\n        api.off(AUDIO_TRACK_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            api.setCurrentAudioTrack(parseInt(value));\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"AudioTrackPanel\", api.getConfig(), data, events, onRendered, onDestroyed);\r\n\r\n};\r\n\r\nexport default AudioTrackPanel;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\n\r\n\r\nconst CaptionPanel = function($container, api, data){\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function(isFront){\r\n        if(isFront){\r\n            $root.find(\"#\"+data.id).removeClass(\"background\");\r\n        }else{\r\n            $root.find(\"#\"+data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function($current, template){\r\n        //Do nothing\r\n    };\r\n    const onDestroyed = function(template){\r\n        //Do nothing\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            api.setCurrentCaption(parseFloat(value));\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"CaptionPanel\", api.getConfig(),  data, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default CaptionPanel;","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport LA$ from 'utils/likeA$';\r\n\r\n\r\nconst TimeDisplayPanel = function($container, api, data){\r\n    const $root = LA$(api.getContainerElement());\r\n    let panelManager = PanelManager();\r\n\r\n    data.setFront = function(isFront){\r\n        if(isFront){\r\n            $root.find(\"#\"+data.id).removeClass(\"background\");\r\n        }else{\r\n            $root.find(\"#\"+data.id).addClass(\"background\");\r\n        }\r\n    };\r\n    const onRendered = function($current, template){\r\n        //Do nothing\r\n    };\r\n    const onDestroyed = function(template){\r\n        //Do nothing\r\n    };\r\n    const events = {\r\n        \"click .op-setting-item\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let value = LA$(event.currentTarget).attr(\"op-data-value\");\r\n            api.setTimecodeMode(value === \"Play time\");\r\n            panelManager.clear();\r\n        },\r\n        \"click .op-setting-title\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            panelManager.removeLastItem();\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"TimeDisplayPanel\", api.getConfig(), data, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default TimeDisplayPanel;","/**\r\n * Created by hoho on 2019. 5. 17..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport Panels from \"view/components/controls/settingPanel/main\";\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport {\r\n    PROVIDER_RTMP\r\n} from \"api/constants\";\r\n\r\nlet PANEL_TITLE = {\r\n    \"speed\": \"Speed\",\r\n    \"speedUnit\": \"x\",\r\n    \"source\": \"Source\",\r\n    \"quality\": \"Quality\",\r\n    \"audioTrack\": \"Audio\",\r\n    \"caption\": \"Caption\",\r\n    \"display\": \"Display\"\r\n};\r\nconst SettingButton = function ($container, api) {\r\n    let panelManager = PanelManager();\r\n\r\n    function generateMainData(api) {\r\n        let panel = {\r\n            id: \"panel-\" + new Date().getTime(),\r\n            title: \"Settings\",\r\n            body: [],\r\n            isRoot: true,\r\n            panelType: \"\"\r\n        };\r\n\r\n        let playerConfig = api.getConfig();\r\n\r\n        if (playerConfig && playerConfig.systemText) {\r\n            Object.keys(PANEL_TITLE).forEach(title => {\r\n                PANEL_TITLE[title] = playerConfig.systemText.ui.setting[title];\r\n            });\r\n            panel.title = playerConfig.systemText.ui.setting.title;\r\n        }\r\n        let sources = api.getSources();\r\n        let currentSource = sources && sources.length > 0 ? sources[api.getCurrentSource()] : null;\r\n\r\n        let qualityLevels = api.getQualityLevels();\r\n        let currentQuality = qualityLevels && qualityLevels.length > 0 ? qualityLevels[api.getCurrentQuality()] : null;\r\n\r\n        let audioTracks = api.getAudioTracks();\r\n        let currentAudioTrack = audioTracks && audioTracks.length > 0 ? audioTracks[api.getCurrentAudioTrack()] : null;\r\n\r\n        let captions = api.getCaptionList();\r\n        let currentCaption = api.getCurrentCaption();\r\n\r\n        let framerate = api.getFramerate();\r\n\r\n        if (api.getDuration() !== Infinity && currentSource && currentSource.type !== PROVIDER_RTMP) {\r\n            let body = {\r\n                title: PANEL_TITLE.speed,\r\n                value: api.getPlaybackRate() + PANEL_TITLE.speedUnit,\r\n                description: api.getPlaybackRate() + PANEL_TITLE.speedUnit,\r\n                panelType: \"speed\",\r\n                hasNext: true\r\n            };\r\n            panel.body.push(body);\r\n        }\r\n        if (sources && sources.length > 1) {\r\n\r\n            let body = {\r\n                title: PANEL_TITLE.source,\r\n                value: currentSource ? currentSource.label : \"Default\",\r\n                description: currentSource ? currentSource.label : \"Default\",\r\n                panelType: \"source\",\r\n                hasNext: true\r\n            };\r\n\r\n            panel.body.push(body);\r\n        }\r\n        if (qualityLevels && qualityLevels.length > 0) {\r\n\r\n            let body = {\r\n                title: PANEL_TITLE.quality,\r\n                value: currentQuality ? currentQuality.label : \"Default\",\r\n                description: currentQuality ? currentQuality.label : \"Default\",\r\n                panelType: \"quality\",\r\n                hasNext: true\r\n            };\r\n\r\n            panel.body.push(body);\r\n        }\r\n\r\n        if (audioTracks && audioTracks.length > 0) {\r\n\r\n            let body = {\r\n                title: PANEL_TITLE.audioTrack,\r\n                value: currentAudioTrack ? currentAudioTrack.label : \"Default\",\r\n                description: currentAudioTrack ? currentAudioTrack.label : \"Default\",\r\n                panelType: \"audioTrack\",\r\n                hasNext: true\r\n            };\r\n\r\n            panel.body.push(body);\r\n        }\r\n\r\n        if (captions && captions.length > 0) {\r\n\r\n            let body = {\r\n                title: PANEL_TITLE.caption,\r\n                value: captions[currentCaption] ? captions[currentCaption].label : \"OFF\",\r\n                description: captions[currentCaption] ? captions[currentCaption].label : \"OFF\",\r\n                panelType: \"caption\",\r\n                hasNext: true\r\n            };\r\n\r\n            panel.body.push(body);\r\n        }\r\n        if (framerate > 0) {\r\n            let body = {\r\n                title: PANEL_TITLE.display,\r\n                value: api.isTimecodeMode() ? \"Play time\" : \"Framecode\",\r\n                description: api.isTimecodeMode() ? \"Play time\" : \"Framecode\",\r\n                panelType: \"display\",\r\n                hasNext: true\r\n            };\r\n\r\n            panel.body.push(body);\r\n        }\r\n\r\n        return panel;\r\n    };\r\n\r\n    const onRendered = function ($current, template) {\r\n    };\r\n    const onDestroyed = function (template) {\r\n    };\r\n    const events = {\r\n        \"click .op-setting-button\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            let $parent = $current.closest(\".op-controls-container\");\r\n            if (panelManager.size() > 0) {\r\n                panelManager.clear();\r\n            } else {\r\n                let panelData = generateMainData(api);\r\n                panelManager.add(Panels($parent, api, panelData));\r\n            }\r\n        },\r\n    };\r\n\r\n    return OvenTemplate($container, \"SettingButton\", api.getConfig(), null, events, onRendered, onDestroyed);\r\n};\r\n\r\n\r\nexport default SettingButton;\r\n","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport PlayButton from \"view/components/controls/playButton\";\r\nimport SettingButton from \"view/components/controls/settingButton\";\r\nimport FrameButtons from \"view/components/controls/frameButtons\";\r\nimport VolumeButton from \"view/components/controls/volumeButton\";\r\nimport ProgressBar from \"view/components/controls/progressBar\";\r\nimport PlaylistPanel from \"view/components/controls/playlistPanel\";\r\nimport LA$ from 'utils/likeA$';\r\nimport TimeDisplay from \"view/components/controls/timeDisplay\";\r\nimport FullScreenButton from \"view/components/controls/fullScreenButton\";\r\nimport {\r\n    READY,\r\n    CONTENT_META, CONTENT_LEVEL_CHANGED, CONTENT_TIME_MODE_CHANGED, CONTENT_TIME, PLAYER_PLAY,\r\n    STATE_AD_LOADED,\r\n    PLAYER_RESIZED,\r\n    AD_CHANGED,\r\n    STATE_AD_ERROR,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n    CONTENT_SOURCE_CHANGED,\r\n    OME_P2P_MODE,\r\n    ERROR,\r\n    PROVIDER_HLS,\r\n    PLAYER_WEBRTC_WS_ERROR\r\n} from \"api/constants\";\r\n\r\nconst Controls = function ($container, api) {\r\n\r\n    let volumeButton = \"\", playButton = \"\", settingButton = \"\", progressBar = \"\", timeDisplay = \"\",\r\n        fullScreenButton = \"\", frameButtons = \"\", hasPlaylist = false, initialDuration;\r\n    let uiInited = false;\r\n    let webrtc_is_p2p_mode = false;\r\n    let isLiveMode = false;\r\n\r\n    let browser = api.getConfig().browser;\r\n    let isAndroid = browser.os === \"Android\";\r\n    let isIOS = browser.os === \"iOS\";\r\n\r\n    const $root = LA$(api.getContainerElement());\r\n    let lastContentMeta = {};\r\n\r\n    hasPlaylist = api.getPlaylist().length > 1;\r\n\r\n    if (api.getConfig().hidePlaylistIcon === true) {\r\n        hasPlaylist = false;\r\n    }\r\n\r\n    let playlistPanel = \"\";\r\n\r\n    const onRendered = function ($current, template) {\r\n\r\n        function setPanelMaxHeight() {\r\n            if ($root.find(\".op-setting-panel\")) {\r\n                $root.find(\".op-setting-panel\").css(\"max-height\", $root.height() - $root.find(\".op-bottom-panel\").height() + \"px\");\r\n            }\r\n        }\r\n\r\n        function initTimeDisplay(data) {\r\n            if (timeDisplay) {\r\n                timeDisplay.destroy();\r\n            }\r\n            timeDisplay = TimeDisplay($current.find(\".op-left-controls\"), api, data);\r\n        }\r\n\r\n        function initProgressBar(isAd, meta) {\r\n            if (progressBar) {\r\n                progressBar.destroy();\r\n            }\r\n            progressBar = ProgressBar($current.find(\".op-progressbar-container\"), api, isAd, meta);\r\n        }\r\n\r\n        function initFrameJumpButtons() {\r\n            if (frameButtons) {\r\n                frameButtons.destroy();\r\n            }\r\n            frameButtons = FrameButtons($current.find(\".op-controls\"), api);\r\n        }\r\n\r\n        function initSettingButton() {\r\n            if (settingButton) {\r\n                settingButton.destroy();\r\n            }\r\n            settingButton = SettingButton($current.find(\".setting-holder\"), api);\r\n        }\r\n\r\n        function initFullscreenButton() {\r\n            if (fullScreenButton) {\r\n                // Don't need to destroy.\r\n                return;\r\n                // fullScreenButton.destroy();\r\n            }\r\n            fullScreenButton = FullScreenButton($current.find(\".fullscreen-holder\"), api);\r\n        }\r\n\r\n        function makeControlUI(metadata) {\r\n\r\n            if (metadata.duration > 9000000000000000) {\r\n\r\n                metadata.duration = Infinity;\r\n            }\r\n\r\n            let sectionStart = api.getSources()[api.getCurrentSource()].sectionStart;\r\n            let sectionEnd = api.getSources()[api.getCurrentSource()].sectionEnd;\r\n\r\n            if (sectionEnd) {\r\n                metadata.duration = sectionEnd;\r\n            }\r\n\r\n            if (sectionStart) {\r\n                metadata.duration = metadata.duration - sectionStart;\r\n            }\r\n\r\n            initTimeDisplay(metadata);\r\n            initFullscreenButton();\r\n\r\n            if (api.getFramerate && api.getFramerate() > 0) {\r\n                // initFrameJumpButtons();\r\n            } else {\r\n                if (frameButtons) {\r\n                    frameButtons.destroy();\r\n                }\r\n            }\r\n\r\n            if (metadata.duration === Infinity) {\r\n\r\n                //live\r\n                OvenPlayerConsole.log(\"[[[[LIVE MODE]]]]\");\r\n                isLiveMode = true;\r\n\r\n                if (metadata.type === PROVIDER_HLS) {\r\n                    // show progress bar when hls\r\n                    initProgressBar(false, metadata);\r\n                } else {\r\n                    if (progressBar) {\r\n                        progressBar.destroy();\r\n                    }\r\n                }\r\n            } else {\r\n                //vod\r\n                initProgressBar(false);\r\n            }\r\n\r\n            uiInited = true;\r\n        }\r\n\r\n        function resetControlUI() {\r\n\r\n            if (timeDisplay) {\r\n                timeDisplay.destroy();\r\n            }\r\n\r\n            if (progressBar) {\r\n                progressBar.destroy();\r\n            }\r\n\r\n            initSettingButton();\r\n            initFullscreenButton();\r\n\r\n            $root.removeClass(\"linear-ad\");\r\n        }\r\n\r\n        playButton = PlayButton($current.find(\".op-left-controls\"), api);\r\n        volumeButton = VolumeButton($current.find(\".op-left-controls\"), api);\r\n\r\n        let playlist = api.getPlaylist();\r\n        let currentPlaylistIndex = api.getCurrentPlaylist();\r\n\r\n        if (playlist && playlist[currentPlaylistIndex] && playlist[currentPlaylistIndex].adTagUrl) {\r\n            //does not show setting button when ads plays.\r\n        } else {\r\n            initSettingButton();\r\n        }\r\n        initFullscreenButton();\r\n\r\n        api.on(READY, function () {\r\n            $current.show();\r\n        }, template);\r\n\r\n\r\n        api.on(CONTENT_META, function (data) {\r\n            initialDuration = data.duration;\r\n            lastContentMeta = data;\r\n            data.isP2P = webrtc_is_p2p_mode;\r\n            makeControlUI(data);\r\n        }, template);\r\n\r\n        /*\r\n        * I think do not nessessary this code anymore. Because muted play solves everything. 2019-06-04\r\n        *\r\n        *  -> muted play canceled. 2019-06-20(?)\r\n        */\r\n        api.on(CONTENT_TIME, function (metadata_for_when_after_playing) {\r\n\r\n            //Android HLS native doesn't give duration on CONTENT_META. why?\r\n            //Fortunately I have CONTENT_TIME.\r\n            //RTMP too.\r\n            if (isAndroid || (api && api.getProviderName && api.getProviderName() === \"rtmp\")) {\r\n                if (!initialDuration && (lastContentMeta && (lastContentMeta.duration !== metadata_for_when_after_playing.duration))) {\r\n                    lastContentMeta = metadata_for_when_after_playing;\r\n                    makeControlUI(metadata_for_when_after_playing);\r\n                }\r\n            }\r\n\r\n        }, template);\r\n\r\n        api.on(PLAYER_RESIZED, function (size) {\r\n            setPanelMaxHeight();\r\n        }, template);\r\n\r\n        api.on(OME_P2P_MODE, function (isP2P) {\r\n            webrtc_is_p2p_mode = isP2P;\r\n        }, template);\r\n\r\n        api.on(PLAYER_PLAY, function () {\r\n            if (!uiInited) {\r\n\r\n                let type = '';\r\n\r\n                if (api.getSources().length > 0) {\r\n\r\n                    if (api.getSources()[api.getCurrentSource()]) {\r\n\r\n                        if (api.getSources()[api.getCurrentSource()].type) {\r\n                            type = api.getSources()[api.getCurrentSource()].type;\r\n                        }\r\n                    }\r\n                }\r\n\r\n                makeControlUI({\r\n                    isP2P: webrtc_is_p2p_mode,\r\n                    duration: api.getDuration(),\r\n                    type: type\r\n                });\r\n            }\r\n            $current.show();\r\n        }, template);\r\n\r\n        api.on(ERROR, function (error) {\r\n            $current.show();\r\n        }, template);\r\n\r\n        api.on(AD_CHANGED, function (ad) {\r\n            if (ad.isLinear) {\r\n                $root.addClass(\"linear-ad\");\r\n\r\n                initProgressBar(true);\r\n                if (timeDisplay) {\r\n                    timeDisplay.destroy();\r\n                }\r\n                if (settingButton) {\r\n                    settingButton.destroy();\r\n                }\r\n\r\n                //Fullscreen button. Not required on iOS.\r\n                if (isIOS && fullScreenButton) {\r\n                    fullScreenButton.destroy();\r\n                }\r\n            } else {\r\n                $root.removeClass(\"linear-ad\");\r\n            }\r\n        }, template);\r\n\r\n\r\n        api.on(STATE_AD_COMPLETE, function () {\r\n            resetControlUI();\r\n        }, template);\r\n\r\n        api.on(STATE_AD_ERROR, function () {\r\n            resetControlUI();\r\n        }, template);\r\n\r\n        api.on(CONTENT_SOURCE_CHANGED, function () {\r\n            resetControlUI();\r\n        }, template);\r\n    };\r\n\r\n    const onDestroyed = function (template) {\r\n        api.off(CONTENT_META, null, template);\r\n        api.off(CONTENT_TIME, null, template);\r\n        api.off(STATE_AD_COMPLETE, null, template);\r\n        api.off(AD_CHANGED, null, template);\r\n        api.off(OME_P2P_MODE, null, template);\r\n        api.off(STATE_AD_ERROR, null, template);\r\n        api.off(PLAYER_RESIZED, null, template);\r\n        api.off(CONTENT_SOURCE_CHANGED, null, template);\r\n        if (timeDisplay) {\r\n            timeDisplay.destroy();\r\n        }\r\n        if (playButton) {\r\n            playButton.destroy();\r\n        }\r\n        if (progressBar) {\r\n            progressBar.destroy();\r\n        }\r\n        if (fullScreenButton) {\r\n            fullScreenButton.destroy();\r\n        }\r\n        if (volumeButton) {\r\n            volumeButton.destroy();\r\n        }\r\n\r\n    };\r\n\r\n    const events = {\r\n        \"mouseleave .op-controls\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            volumeButton.setMouseDown(false);\r\n            $current.find(\".op-volume-slider-container\").removeClass(\"active\");\r\n        },\r\n\r\n        \"click .op-playlist-button\": function (event, $current, template) {\r\n            event.preventDefault();\r\n            playlistPanel = PlaylistPanel($current, api);\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"Controls\", api.getConfig(), hasPlaylist, events, onRendered, onDestroyed);\r\n};\r\n\r\nexport default Controls;\r\n","/**\r\n * Created by hoho on 06/03/2019.\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport {naturalHms} from \"utils/strings\"\r\nimport {playlistItemTemplate} from \"view/components/controls/playlistPanelTemplate\";\r\nimport LA$ from \"utils/likeA$\";\r\nimport {\r\n    PLAYER_RESIZED,\r\n    PLAYLIST_CHANGED\r\n} from \"api/constants\";\r\n\r\nconst PlaylistPanel = function($container, api){\r\n    const $root = LA$(api.getContainerElement());\r\n\r\n    let $playlistPanel = \"\";\r\n    let playlist = api.getPlaylist();\r\n    let totalCount = playlist.length;\r\n\r\n    let pageSize = 6;\r\n    let page = 0;\r\n    let pagedList = [];\r\n\r\n    if($root.width() > 576){\r\n        pageSize = 6;\r\n    }else if($root.width() <= 576) {\r\n        pageSize = 1;\r\n    }\r\n\r\n    function pagenate(page){\r\n        let totalPageCount = Math.ceil(totalCount / pageSize);\r\n        let currentPlaylistIndex = api.getCurrentPlaylist();\r\n\r\n        pagedList = playlist.slice(page*pageSize, (page*pageSize)+pageSize);\r\n\r\n        $playlistPanel.find(\".op-playlist-body-row\").removeChild();\r\n        $playlistPanel.find(\".op-arrow-left\").removeClass(\"disable\");\r\n        $playlistPanel.find(\".op-arrow-right\").removeClass(\"disable\");\r\n\r\n        for(let i = 0; i < pagedList.length; i ++){\r\n            let originalItemIndex = (page * pageSize) + i;\r\n            pagedList[i].index = originalItemIndex;\r\n            $playlistPanel.find(\".op-playlist-body-row\").get().append(\r\n                createAndSelectElement(playlistItemTemplate(pagedList[i], currentPlaylistIndex === originalItemIndex))\r\n            );\r\n        }\r\n\r\n        if(page === 0){\r\n            $playlistPanel.find(\".op-arrow-left\").addClass(\"disable\");\r\n        }\r\n        if(page+1 === totalPageCount){\r\n            $playlistPanel.find(\".op-arrow-right\").addClass(\"disable\");\r\n        }\r\n    };\r\n    function findCurrentPage(){\r\n        let currentPlaylistIndex = api.getCurrentPlaylist();\r\n        return Math.ceil((currentPlaylistIndex+1)/ pageSize) -1\r\n    };\r\n    function createAndSelectElement(html) {\r\n        const newElement = document.createElement('div');\r\n        newElement.innerHTML = html;\r\n        return newElement.firstChild;\r\n    }\r\n    const onRendered = function($current, template){\r\n        $playlistPanel = $current;\r\n\r\n        page = findCurrentPage();\r\n        pagenate(page);\r\n\r\n        api.on(PLAYER_RESIZED, function(size){\r\n            if( (size === \"xsmall\") && pageSize === 6 ){\r\n                pageSize = 1;\r\n                page = findCurrentPage();\r\n                pagenate(page);\r\n            }else if((size === \"small\" || size === \"medium\" || size === \"large\") && pageSize === 1){\r\n                pageSize = 6;\r\n                page = findCurrentPage();\r\n                pagenate(page);\r\n            }\r\n        },template);\r\n\r\n        api.on(PLAYLIST_CHANGED, function(size){\r\n            page = findCurrentPage();\r\n            pagenate(page);\r\n        },template);\r\n\r\n\r\n        //돔에서 엘리먼트가 제거되면 이벤트도 같이 제거 되어 버리기 때문에 일단 이렇게 해당 템플릿내에서만 live 되도록 처리. 추후 TemplateEngine에 개선\r\n        $current.get().addEventListener(\"click\",function(evt){\r\n            var gtarget = evt.target;\r\n            while (gtarget){\r\n                if (LA$(gtarget).hasClass(\"op-playlist-card\")){\r\n                    api.setCurrentPlaylist(parseInt(LA$(gtarget).attr(\"data-index\")));\r\n                    return;\r\n                }\r\n                gtarget = gtarget.parentElement;\r\n            }\r\n        }, true);\r\n\r\n    };\r\n    const onDestroyed = function(template){\r\n        api.off(PLAYER_RESIZED, null, template);\r\n        api.off(PLAYLIST_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n        \"click .btn-close\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            template.destroy();\r\n\r\n        },\r\n        \"click .op-arrow-left\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            if( !LA$(event.target).hasClass(\"disable\") ){\r\n                page--;\r\n                pagenate(page);\r\n            }\r\n        },\r\n        \"click .op-arrow-right\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            if( !LA$(event.target).hasClass(\"disable\") ){\r\n                page++;\r\n                pagenate(page);\r\n            }\r\n        }/*,\r\n        \"click .op-playlist-card\" : function(event, $current, template){\r\n            event.preventDefault();\r\n        }*/\r\n    };\r\n\r\n    return OvenTemplate($container, \"PlaylistPanel\", api.getConfig(), playlist, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default PlaylistPanel;\r\n","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport { naturalHms } from \"utils/strings\"\r\nimport LA$ from \"utils/likeA$\";\r\nimport {\r\n    CONTENT_TIME,\r\n    CONTENT_BUFFER,\r\n    AD_TIME,\r\n    PROVIDER_HLS,\r\n    PROVIDER_HTML5\r\n} from \"api/constants\";\r\n\r\nconst ProgressBar = function ($container, api, isAd, metadata) {\r\n    const $root = LA$(api.getContainerElement());\r\n\r\n    if (api.getConfig().disableSeekUI) {\r\n        $container.addClass('op-progressbar-container-disabled');\r\n    }\r\n\r\n    let currentPlayingPosition = 0;\r\n    let currentPlayingPercentage = 0;\r\n    let currentLoadedPercentage = 0;\r\n\r\n    let mouseInside = false, mouseDown = false;\r\n    let panelManager = PanelManager();\r\n    let adDuration = 0;\r\n    let lastGridThumbnail = \"\";\r\n    let durationForCalc = 0;\r\n\r\n    let $progressBar = \"\",\r\n        $progressLoad = \"\",\r\n        $progressPlay = \"\",\r\n        $progressHover = \"\",\r\n        $knobContainer = \"\",\r\n        $knob = \"\",\r\n        knobWidth = 0,\r\n        $time = \"\",\r\n        $preview = \"\";\r\n\r\n    let isMobile = api.getBrowser().mobile;\r\n\r\n    const mediaElement = api.getMediaElement();\r\n\r\n    let hlsLive = false;\r\n    let nativeHlsLive = false;\r\n\r\n    if (metadata && metadata.type === PROVIDER_HLS && metadata.duration === Infinity) {\r\n        hlsLive = true;\r\n\r\n        if (api.getProviderName() === PROVIDER_HTML5) {\r\n            nativeHlsLive = true;\r\n        }\r\n    }\r\n\r\n    function positionElements(percentage) {\r\n\r\n        let progressBarWidth = $progressBar.width();\r\n        let position = progressBarWidth * percentage;\r\n\r\n        $progressPlay.css(\"width\", position + \"px\");\r\n        $progressHover.css(\"left\", position + \"px\");\r\n\r\n        let knobPostion = (progressBarWidth - knobWidth) * percentage;\r\n        $knobContainer.css(\"left\", knobPostion + \"px\");\r\n\r\n        currentPlayingPosition = position;\r\n        currentPlayingPercentage = percentage;\r\n    }\r\n\r\n    function drawHoverProgress(percentage) {\r\n\r\n        let progressBarWidth = $progressBar.width();\r\n        let hoverPosition = progressBarWidth * percentage;\r\n        $progressHover.css(\"width\", (percentage === 0 ? percentage : (hoverPosition - currentPlayingPosition)) + \"px\");\r\n\r\n    }\r\n\r\n    function drawLoadProgress(percentage) {\r\n\r\n        let progressBarWidth = $progressBar.width();\r\n        let loadPosition = progressBarWidth * percentage;\r\n\r\n        $progressLoad.css(\"width\", loadPosition + \"px\");\r\n        currentLoadedPercentage = percentage;\r\n    }\r\n\r\n    function calculatePercentage(event) {\r\n\r\n        let progressBarWidth = $progressBar.width();\r\n        let progressBarOffsetX = $progressBar.offset().left;\r\n\r\n        let pointerOffsetX = event.pageX;\r\n\r\n        if (event.touches) {\r\n\r\n            pointerOffsetX = (event.pageX || event.touches[0].clientX);\r\n        }\r\n\r\n        let percentage = (pointerOffsetX - progressBarOffsetX) / progressBarWidth;\r\n\r\n        if (percentage < 0) {\r\n            return 0;\r\n        }\r\n\r\n        if (percentage > 1) {\r\n            return 1;\r\n        }\r\n\r\n        return percentage;\r\n    }\r\n\r\n    function getNativeHlsDvrWindow() {\r\n        return mediaElement.seekable.end(mediaElement.seekable.length - 1) - mediaElement.seekable.start(0);\r\n    }\r\n\r\n    function drawTimeIndicator(percentage, event) {\r\n        if (panelManager.size() > 0 || percentage === -1) {\r\n            $time.hide();\r\n            $preview.hide();\r\n            return;\r\n        } else {\r\n            $time.show();\r\n            $preview.show();\r\n        }\r\n\r\n        if (hlsLive && !nativeHlsLive) {\r\n\r\n            let duration = api.getDvrWindow();\r\n            let second = duration * (1 - percentage);\r\n            if (api.isTimecodeMode()) {\r\n                $time.text('- ' + naturalHms(second));\r\n            } else {\r\n                $time.text('- ' + Math.round(second * api.getFramerate()));\r\n            }\r\n        } else if (hlsLive && nativeHlsLive) {\r\n\r\n            let duration = getNativeHlsDvrWindow();\r\n            let second = duration * (1 - percentage);\r\n            if (api.isTimecodeMode()) {\r\n                $time.text('- ' + naturalHms(second));\r\n            } else {\r\n                $time.text('- ' + Math.round(second * api.getFramerate()));\r\n            }\r\n        } else {\r\n\r\n            let duration = api.getDuration();\r\n            let second = duration * percentage;\r\n\r\n            if (api.isTimecodeMode()) {\r\n                $time.text(naturalHms(second));\r\n            } else {\r\n                $time.text(Math.round(second * api.getFramerate()));\r\n            }\r\n        }\r\n\r\n        let timeElemWidth = $time.width();\r\n        let progressBarWidth = $progressBar.width();\r\n        let position = progressBarWidth * percentage;\r\n\r\n        let positionOfPixel = event.pageX - $progressBar.offset().left;\r\n\r\n        if (event.touches) {\r\n            positionOfPixel = (event.pageX || event.touches[0].clientX) - $progressBar.offset().left;\r\n        }\r\n\r\n\r\n        const calculateMagnetic = function (elementWidth) {\r\n            if (positionOfPixel < elementWidth / 2) {\r\n                return 0;\r\n            } else if (progressBarWidth - positionOfPixel < elementWidth / 2) {\r\n                return progressBarWidth - elementWidth;\r\n            } else {\r\n                return position - elementWidth / 2;\r\n            }\r\n        };\r\n\r\n        let magneticPosition = calculateMagnetic(timeElemWidth);\r\n        $time.css(\"left\", magneticPosition + \"px\");\r\n\r\n        if (api.getSources()[api.getCurrentSource()].gridThumbnail) {\r\n\r\n            let interval = api.getConfig().gridThumbnail.thumbnailInterval;\r\n            let width = api.getConfig().gridThumbnail.originalThumbnailWidth;\r\n            let height = api.getConfig().gridThumbnail.originalThumbnailHeight;\r\n            let columnCount = api.getConfig().gridThumbnail.columnCount;\r\n            let rowCount = api.getConfig().gridThumbnail.rowCount;\r\n            let scale = api.getConfig().gridThumbnail.resizeScale;\r\n\r\n            $preview.css('width', width * scale + 'px');\r\n            $preview.css('height', height * scale + 'px');\r\n            $preview.css('background-size', width * scale * columnCount + 'px ' + height * scale * rowCount + 'px');\r\n\r\n            let thumbnailNumber = Math.floor(second / interval);\r\n\r\n            let imageNumber = Math.floor(thumbnailNumber / (columnCount * rowCount));\r\n\r\n            let rowNumber = Math.floor((thumbnailNumber % (columnCount * rowCount)) / columnCount);\r\n            let columnNumber = (thumbnailNumber % (columnCount * rowCount)) % columnCount;\r\n\r\n            let left = -1 * columnNumber * width * scale;\r\n            let top = -1 * rowNumber * height * scale;\r\n\r\n            OvenPlayerConsole.log('Grid Thumbnail:', thumbnailNumber + ': ' + imageNumber + '(' + rowNumber + ', ' + columnNumber + ')');\r\n\r\n            let thumbnails = api.getSources()[api.getCurrentSource()].gridThumbnail;\r\n            let thumbnail = thumbnails[imageNumber];\r\n\r\n            if (lastGridThumbnail !== thumbnail) {\r\n\r\n                $preview.css('background-image', 'url(' + thumbnail + ')');\r\n                lastGridThumbnail = thumbnail;\r\n            }\r\n\r\n            $preview.css('background-position', 'left ' + left + 'px top ' + top + 'px');\r\n\r\n            let previewMagneticPosition = calculateMagnetic(width * scale);\r\n            $preview.css(\"left\", previewMagneticPosition + \"px\");\r\n        } else {\r\n\r\n            $preview.hide();\r\n        }\r\n    }\r\n\r\n    function seek(percentage) {\r\n\r\n        let time = (durationForCalc || 0) * percentage;\r\n\r\n        if (hlsLive && !nativeHlsLive) {\r\n            time = (durationForCalc - api.getDvrWindow()) + api.getDvrWindow() * percentage;\r\n        }\r\n\r\n        if (hlsLive && nativeHlsLive) {\r\n            const dvrWindow = getNativeHlsDvrWindow();\r\n            time = (durationForCalc - dvrWindow) + dvrWindow * percentage;\r\n        }\r\n\r\n        let sectionStart = api.getSources()[api.getCurrentSource()].sectionStart;\r\n\r\n        if (sectionStart && sectionStart > 0) {\r\n            time = time + sectionStart;\r\n        }\r\n\r\n        api.seek(time);\r\n    }\r\n\r\n\r\n    const onRendered = function ($current, template) {\r\n\r\n        $progressBar = $current;\r\n        $progressLoad = $current.find(\".op-load-progress\");\r\n        $progressPlay = $current.find(\".op-play-progress\");\r\n        $progressHover = $current.find(\".op-hover-progress\");\r\n        $knobContainer = $current.find(\".op-progressbar-knob-container\");\r\n        $knob = $current.find(\".op-progressbar-knob\");\r\n        knobWidth = $knob.width();\r\n        $time = $current.find(\".op-progressbar-time\");\r\n        $preview = $current.find(\".op-progressbar-preview\");\r\n\r\n        if (isAd) {\r\n            api.on(AD_TIME, function (data) {\r\n                if (data && data.duration && data.position) {\r\n                    positionElements(data.position / data.duration);\r\n                    adDuration = data.duration;\r\n                }\r\n            }, template);\r\n        } else {\r\n\r\n            api.on(CONTENT_TIME, function (data) {\r\n                if (data && data.duration && data.position) {\r\n\r\n                    durationForCalc = data.duration;\r\n                    let percentage = data.position / data.duration;\r\n\r\n                    if (hlsLive && !nativeHlsLive) {\r\n                        percentage = (api.getDvrWindow() - (data.duration - data.position)) / api.getDvrWindow();\r\n                    }\r\n\r\n                    if (hlsLive && nativeHlsLive) {\r\n                        const dvrWindow = getNativeHlsDvrWindow();\r\n                        durationForCalc = dvrWindow;\r\n                        const position = Math.min(dvrWindow, data.position);\r\n                        percentage = (dvrWindow - (dvrWindow - position)) / dvrWindow;\r\n                    }\r\n\r\n                    positionElements(percentage);\r\n                }\r\n            }, template);\r\n\r\n            api.on(CONTENT_BUFFER, function (data) {\r\n                if (data && data.bufferPercent) {\r\n                    drawLoadProgress(data.bufferPercent / 100);\r\n                }\r\n            }, template);\r\n        }\r\n\r\n\r\n    };\r\n    const onDestroyed = function (template) {\r\n        if (isAd) {\r\n            api.off(AD_TIME, null, template);\r\n        } else {\r\n            api.off(CONTENT_TIME, null, template);\r\n            api.off(CONTENT_BUFFER, null, template);\r\n        }\r\n    };\r\n    let events = {\r\n        \"touchstart .op-progressbar\": function (event) {\r\n\r\n            if (isAd) {\r\n                return false;\r\n            }\r\n            mouseDown = true;\r\n            const percentage = calculatePercentage(event);\r\n\r\n            if (percentage === -1) {\r\n                return false;\r\n            }\r\n\r\n            positionElements(percentage);\r\n            drawHoverProgress(0);\r\n            seek(percentage);\r\n        },\r\n        \"touchmove .op-progressbar\": function (event) {\r\n\r\n            if (mouseDown) {\r\n                const percentage = calculatePercentage(event);\r\n\r\n                if (percentage === -1) {\r\n                    return false;\r\n                }\r\n\r\n                positionElements(percentage);\r\n                drawHoverProgress(0);\r\n                seek(percentage);\r\n                drawTimeIndicator(percentage, event);\r\n            }\r\n        },\r\n        \"touchend .op-progressbar\": function (event) {\r\n\r\n            if (mouseDown) {\r\n                mouseDown = false;\r\n            }\r\n\r\n            $root.removeClass(\"op-progressbar-hover\");\r\n            $time.hide();\r\n            $preview.hide();\r\n\r\n        },\r\n        \"mouseenter .op-progressbar\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n\r\n            if (!isMobile) {\r\n                if (!isAd) {\r\n                    mouseInside = true;\r\n                    $time.show();\r\n                }\r\n                $root.addClass(\"op-progressbar-hover\");\r\n            }\r\n        },\r\n        \"mouseleave .op-progressbar\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n\r\n            mouseInside = false;\r\n            mouseDown = false;\r\n\r\n            if (!mouseInside) {\r\n                $root.removeClass(\"op-progressbar-hover\");\r\n                $time.hide();\r\n                $preview.hide();\r\n            }\r\n            drawHoverProgress(0);\r\n        },\r\n        \"mousedown .op-progressbar\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n\r\n            if (isAd || isMobile) {\r\n                return false;\r\n            }\r\n\r\n            mouseDown = true;\r\n            const percentage = calculatePercentage(event);\r\n\r\n            if (percentage === -1) {\r\n                return false;\r\n            }\r\n\r\n            positionElements(percentage);\r\n            drawHoverProgress(0);\r\n            seek(percentage);\r\n        },\r\n        \"mousemove .op-progressbar\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n\r\n            if (!mouseDown && !isAd && !isMobile) {\r\n                const percentage = calculatePercentage(event);\r\n                drawHoverProgress(percentage);\r\n                drawTimeIndicator(percentage, event);\r\n            }\r\n\r\n            if (mouseDown && !isMobile) {\r\n                const percentage = calculatePercentage(event);\r\n\r\n                if (percentage === -1) {\r\n                    return false;\r\n                }\r\n                positionElements(percentage);\r\n                drawHoverProgress(0);\r\n                seek(percentage);\r\n                drawTimeIndicator(percentage, event);\r\n            }\r\n        },\r\n        \"mouseup .op-progressbar\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n\r\n            if (mouseDown && !isMobile) {\r\n                mouseDown = false;\r\n                $root.removeClass(\"op-progressbar-hover\");\r\n            }\r\n\r\n        }\r\n    };\r\n\r\n    if (api.getConfig().disableSeekUI) {\r\n        events = {}\r\n    }\r\n\r\n    return OvenTemplate($container, \"ProgressBar\", api.getConfig(), null, events, onRendered, onDestroyed);\r\n};\r\n\r\nexport default ProgressBar;\r\n","/**\r\n * Created by hoho on 2018. 7. 26..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport LA$ from \"utils/likeA$\";\r\nimport {\r\n    AD_CHANGED,\r\n    STATE_AD_COMPLETE,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    PLAYER_FULLSCREEN_CHANGED,\r\n    PLAYER_FULLSCREEN_REQUEST\r\n} from \"api/constants\";\r\n\r\n\r\n\r\nconst FullScreenButton = function($container, api){\r\n    const $root = LA$(api.getContainerElement());\r\n\r\n    let $iconExpand = \"\", $iconCompress = \"\", isFullScreen = false;\r\n\r\n    //ToDo : Template have to access Player Config.\r\n    let config = api.getConfig();\r\n\r\n    let browserInfo = api.getBrowser();\r\n    let isIos = browserInfo.os === \"iOS\"; // && browserInfo.browser === \"Safari\";\r\n    let isAndroid = browserInfo.os === \"Android\";\r\n    let fullscreenChagedEventName = \"\"; //For IE11\r\n    let isForceMode = false;    //This means to look like for fullscreen.\r\n\r\n    let fullScreenEventTypes = {\r\n        onfullscreenchange : \"fullscreenchange\",\r\n        onmozfullscreenchange : \"mozfullscreenchange\",\r\n        onwebkitfullscreenchange : \"webkitfullscreenchange\",\r\n        MSFullscreenChange : \"MSFullscreenChange\"\r\n    };\r\n\r\n\r\n    api.toggleFullScreen = toggleFullScreen;\r\n\r\n    function checkFullScreen(){\r\n\r\n        let fullScreen = false;\r\n\r\n        const fullScreenElement = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\r\n\r\n        if (fullScreenElement) {\r\n\r\n            if ($root.get() === fullScreenElement) {\r\n                fullScreen = true;\r\n            }\r\n        }\r\n\r\n        return fullScreen;\r\n\r\n    };\r\n\r\n    function resetFullscreenButtonState(){\r\n        OvenPlayerConsole.log(\"FULLSCREEN STATE : \", checkFullScreen());\r\n        if (checkFullScreen()) {\r\n            $root.addClass(\"op-fullscreen\");\r\n            isFullScreen = true;\r\n            $iconExpand.hide();\r\n            $iconCompress.show();\r\n\r\n        } else {\r\n            $root.removeClass(\"op-fullscreen\");\r\n            isFullScreen = false;\r\n            $iconExpand.show();\r\n            $iconCompress.hide();\r\n        }\r\n    };\r\n\r\n    function afterFullScreenChangedCallback(){\r\n        OvenPlayerConsole.log(\"afterFullScreenChangedCallback () \");\r\n        resetFullscreenButtonState();\r\n        api.trigger(PLAYER_FULLSCREEN_CHANGED, isFullScreen);\r\n    };\r\n\r\n    function forcedFakeFullscreenToggle(){\r\n        if(!isFullScreen){\r\n            $root.addClass(\"op-fullscreen\");\r\n            isFullScreen = true;\r\n            $iconExpand.hide();\r\n            $iconCompress.show();\r\n        }else{\r\n            $root.removeClass(\"op-fullscreen\");\r\n            isFullScreen = false;\r\n            $iconExpand.show();\r\n            $iconCompress.hide();\r\n        }\r\n        api.trigger(PLAYER_FULLSCREEN_CHANGED, isFullScreen);\r\n    };\r\n\r\n    function findFullScreenChangedEventName(){\r\n        let rootElement =  $root.get();\r\n        let eventName = \"\";\r\n        //ios don;t have a fullscreenchage event. go to hell.\r\n        //ios will checkFullScreen();\r\n\r\n        if (rootElement.requestFullscreen) {\r\n            eventName = fullScreenEventTypes.onfullscreenchange;\r\n        } else if (rootElement.webkitRequestFullScreen) {\r\n            eventName = fullScreenEventTypes.onwebkitfullscreenchange;\r\n        } else if (rootElement.mozRequestFullScreen) {\r\n            eventName = fullScreenEventTypes.onmozfullscreenchange;\r\n        } else if (rootElement.msRequestFullscreen) {\r\n            eventName = fullScreenEventTypes.MSFullscreenChange;\r\n        }else{\r\n            Object.keys(fullScreenEventTypes).forEach(event => {\r\n                if(document[event]){\r\n                    eventName = fullScreenEventTypes[event];\r\n                }\r\n            });\r\n        }\r\n        return eventName;\r\n\r\n        //This is original Code. IE11 doesn't follow rules. go to hell. IE11 returns \"fullscreenchange\". :(\r\n        /*\r\n         Object.keys(fullScreenEventTypes).forEach(eventName => {\r\n            if(document[eventName]){\r\n                console.log(eventName);\r\n                document.addEventListener(fullScreenEventTypes[eventName], afterFullScreenChangedCallback, false);\r\n            }\r\n         });\r\n         */\r\n    };\r\n\r\n    function requestFullScreen() {\r\n\r\n        let promise = \"\";\r\n        let rootElement =  $root.get();\r\n        let videoElements = $root.find(\"video\") ? $root.find(\"video\").get() : rootElement;\r\n        let videoElement, adVideoElement = null;\r\n        if(isIos){\r\n            //IOS ad makes two video elements. one is original video other is ad. i need kick ass to ios.\r\n            if(videoElements.length > 1){\r\n                for(let i = 0; i < videoElements.length; i ++){\r\n                    let videoTitle = videoElements[i].getAttribute(\"title\");\r\n                    if(videoTitle && videoTitle === \"Advertisement\"){\r\n                        adVideoElement = videoElements[i];\r\n                    }else{\r\n                        videoElement = videoElements[i];\r\n                    }\r\n                }\r\n            }else{\r\n                videoElement = videoElements;\r\n            }\r\n            if(adVideoElement && api.getState() === STATE_AD_LOADED || api.getState() === STATE_AD_PLAYING || api.getState() === STATE_AD_PAUSED){\r\n                if (adVideoElement.webkitEnterFullScreen){\r\n                    promise = adVideoElement.webkitEnterFullScreen();\r\n                    isFullScreen = true;\r\n                }\r\n            }else{\r\n                if (videoElement.webkitEnterFullScreen){\r\n                    promise = videoElement.webkitEnterFullScreen();\r\n                    isFullScreen = true;\r\n                }\r\n            }\r\n        }else{\r\n            if (rootElement.requestFullscreen) {\r\n                var fullScreenOption = api.getConfig().fullscreenOption;\r\n                promise = rootElement.requestFullscreen(fullScreenOption);\r\n            } else if (rootElement.webkitRequestFullScreen) {\r\n                promise = rootElement.webkitRequestFullScreen();\r\n            }  else if (rootElement.mozRequestFullScreen) {\r\n                promise = rootElement.mozRequestFullScreen();\r\n            } else if (rootElement.msRequestFullscreen) {\r\n                promise = rootElement.msRequestFullscreen();\r\n            }else {\r\n                // TODO(rock): warn not supported\r\n            }\r\n\r\n            //ToDo : Why occured this error?\r\n            //TypeError: Failed to execute 'requestFullscreen' on 'Element': Illegal invocation\r\n            /*\r\n             let sumOfRequestFullscreen = rootElement.requestFullscreen || rootElement.webkitRequestFullScreen ||\r\n             rootElement.mozRequestFullScreen || rootElement.msRequestFullscreen || videoElement.webkitEnterFullScreen;\r\n             if(sumOfRequestFullscreen){\r\n             promise = sumOfRequestFullscreen();\r\n             }\r\n             */\r\n        }\r\n\r\n        if(promise){\r\n\r\n            promise.then(function(){\r\n\r\n                isFullScreen = true;\r\n                isForceMode = false;\r\n                //config.setFullscreen(true);\r\n\r\n            }).catch(function(error){\r\n                //This means to look like for fullscreen.\r\n                isForceMode = true;\r\n                forcedFakeFullscreenToggle();\r\n\r\n\r\n                //wait for User Interaction. It runs Chrome only.\r\n                //Because \"fullscreen error\" occures Chrome.\r\n                //Firefox can't runs this routine because \"Element.requestFullscreen()이 짧게 실행되는 사용자 생성 이벤트 핸들러의 내부로부터 호출되지 않았기 때문에 전체화면 요청이 거부되었습니다.\".\r\n                /*if(error.message === \"fullscreen error\"){\r\n                    setTimeout(function(){\r\n                        requestFullScreen();\r\n                    },500);\r\n                }*/\r\n            });\r\n        }\r\n    };\r\n    function exitFullScreen() {\r\n\r\n        let promise = \"\";\r\n\r\n        if (document.exitFullscreen) {\r\n            promise = document.exitFullscreen();\r\n        } else if (document.webkitExitFullscreen) {\r\n            promise = document.webkitExitFullscreen();\r\n        } else if (document.webkitExitFullScreen) {\r\n            promise = document.webkitExitFullScreen();\r\n        } else if (document.mozCancelFullScreen) {\r\n            promise = document.mozCancelFullScreen();\r\n        } else if (document.msExitFullscreen) {\r\n            promise = document.msExitFullscreen();\r\n        } else {\r\n            // TODO(rock): warn not supported\r\n        }\r\n\r\n        if(promise){\r\n\r\n            promise.then(function(){\r\n\r\n                isFullScreen = false;\r\n\r\n            }).catch(function(error){\r\n\r\n            });\r\n        }\r\n\r\n    }\r\n    function toggleFullScreen() {\r\n\r\n        if (!isFullScreen || (isIos && !checkFullScreen())) {\r\n            requestFullScreen();\r\n        } else {\r\n            if(isForceMode){\r\n                forcedFakeFullscreenToggle();\r\n            }else{\r\n                exitFullScreen();\r\n            }\r\n        }\r\n    };\r\n\r\n    const onRendered = function($current, template){\r\n        $iconExpand = $current.find(\".op-fullscreen-expand\");\r\n        $iconCompress = $current.find(\".op-fullscreen-compress\");\r\n\r\n        resetFullscreenButtonState();\r\n\r\n        fullscreenChagedEventName = findFullScreenChangedEventName();\r\n        if(fullscreenChagedEventName){\r\n            document.addEventListener(fullscreenChagedEventName, afterFullScreenChangedCallback, false);\r\n        }\r\n\r\n        api.on(AD_CHANGED, function(ad){\r\n            //force close for ios midroll\r\n            let videoElements = $root.find(\"video\") ? $root.find(\"video\").get() : $root.get();\r\n            let videoElement, adVideoElement = null;\r\n\r\n            if(ad.isLinear && isIos && isFullScreen ){\r\n                if(videoElements.length > 1){\r\n                    for(let i = 0; i < videoElements.length; i ++){\r\n                        let videoTitle = videoElements[i].getAttribute(\"title\");\r\n                        if(videoTitle && videoTitle === \"Advertisement\"){\r\n                            adVideoElement = videoElements[i];\r\n                        }else{\r\n                            videoElement = videoElements[i];\r\n                        }\r\n                    }\r\n                }else{\r\n                    videoElement = videoElements;\r\n                }\r\n                if(videoElement && videoElement.webkitExitFullscreen){\r\n                    videoElement.webkitExitFullscreen();\r\n                    isFullScreen = false;\r\n                }\r\n            }\r\n        }, template);\r\n    };\r\n\r\n\r\n    const onDestroyed = function(template){\r\n\r\n        if (api.getConfig() && !api.getConfig().expandFullScreenUI) {\r\n\r\n            if(fullscreenChagedEventName){\r\n                document.removeEventListener(fullscreenChagedEventName, afterFullScreenChangedCallback);\r\n            }\r\n        }\r\n\r\n        api.off(AD_CHANGED, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-fullscreen-button\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            api.trigger(PLAYER_FULLSCREEN_REQUEST, null);\r\n            toggleFullScreen();\r\n        }\r\n    };\r\n    return OvenTemplate($container, \"FullScreenButton\", api.getConfig(), null, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default FullScreenButton;\r\n","/**\r\n * Created by hoho on 2018. 7. 25..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport { naturalHms } from \"utils/strings\";\r\nimport {\r\n    CONTENT_TIME,\r\n    CONTENT_TIME_MODE_CHANGED,\r\n    PROVIDER_HLS,\r\n    PROVIDER_HTML5\r\n} from \"api/constants\";\r\n\r\nconst TimeDisplay = function ($container, api, data) {\r\n\r\n    let $position = \"\", $duration = \"\", $liveBadge = \"\", $liveText = \"\";\r\n\r\n    const mediaElement = api.getMediaElement();\r\n\r\n    let hlsLive = false;\r\n    let nativeHlsLive = false;\r\n\r\n    function convertHumanizeTime(time) {\r\n        return naturalHms(time);\r\n    }\r\n\r\n\r\n    function getNativeHlsDvrWindow() {\r\n        return mediaElement.seekable.end(mediaElement.seekable.length - 1) - mediaElement.seekable.start(0);\r\n    }\r\n\r\n    const onRendered = function ($current, template) {\r\n        let isTimecode = api.isTimecodeMode();\r\n        $position = $current.find(\".op-time-current\");\r\n        $duration = $current.find(\".op-time-duration\");\r\n        $liveBadge = $current.find(\".op-live-badge\");\r\n        $liveText = $current.find(\".op-live-text\");\r\n\r\n        if (data && data.type === PROVIDER_HLS && data.duration === Infinity) {\r\n            hlsLive = true;\r\n\r\n            if (api.getProviderName() === PROVIDER_HTML5) {\r\n                nativeHlsLive = true;\r\n            }\r\n        }\r\n\r\n        if (data.duration !== Infinity) {\r\n\r\n            if (isTimecode) {\r\n                $duration.text(convertHumanizeTime(data.duration));\r\n            } else {\r\n                $duration.text(Math.round(data.duration * api.getFramerate()) + \" (\" + api.getFramerate() + \"fps)\");\r\n            }\r\n\r\n            api.on(CONTENT_TIME_MODE_CHANGED, function (isTimecodeMode) {\r\n                isTimecode = isTimecodeMode;\r\n                if (isTimecode) {\r\n                    $duration.text(convertHumanizeTime(data.duration));\r\n                } else {\r\n                    $duration.text(Math.round(data.duration * api.getFramerate()) + \" (\" + api.getFramerate() + \"fps)\");\r\n                }\r\n            }, template);\r\n\r\n            api.on(CONTENT_TIME, function (data) {\r\n                if (isTimecode) {\r\n                    $position.text(convertHumanizeTime(data.position));\r\n                } else {\r\n                    $position.text(Math.round(data.position * api.getFramerate()));\r\n                }\r\n            }, template);\r\n        } else {\r\n            if (hlsLive && !nativeHlsLive) {\r\n                api.on(CONTENT_TIME, function (data) {\r\n\r\n                    if (data.duration - data.position > 3) {\r\n                        $liveBadge.addClass('op-live-badge-delayed');\r\n                    } else {\r\n                        $liveBadge.removeClass('op-live-badge-delayed');\r\n                    }\r\n\r\n                }, template);\r\n            } else if (hlsLive && nativeHlsLive) {\r\n\r\n                api.on(CONTENT_TIME, function (data) {\r\n                    const dvrWindow = getNativeHlsDvrWindow();\r\n                    if (dvrWindow - data.position > 3) {\r\n                        $liveBadge.addClass('op-live-badge-delayed');\r\n                    } else {\r\n                        $liveBadge.removeClass('op-live-badge-delayed');\r\n                    }\r\n\r\n                }, template);\r\n            }\r\n        }\r\n\r\n    };\r\n\r\n    const onDestroyed = function (template) {\r\n        api.off(CONTENT_TIME_MODE_CHANGED, null, template);\r\n        api.off(CONTENT_TIME, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-live-text\": function (event, $current, template) {\r\n\r\n            event.preventDefault();\r\n            api.seek(Number.MAX_SAFE_INTEGER);\r\n        },\r\n    };\r\n\r\n    return OvenTemplate($container, \"TimeDisplay\", api.getConfig(), data, events, onRendered, onDestroyed);\r\n};\r\n\r\n\r\nexport default TimeDisplay;\r\n","/**\r\n * Created by hoho on 2018. 7. 24..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport {\r\n    ERROR,\r\n    STATE_IDLE,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED,\r\n    STATE_ERROR,\r\n    PLAYER_STATE,\r\n    STATE_AD_LOADED,\r\n    STATE_AD_PLAYING,\r\n    STATE_AD_PAUSED,\r\n    STATE_AD_COMPLETE,\r\n} from \"api/constants\";\r\n\r\nconst PlayButton = function ($container, api) {\r\n    let $iconPlay = \"\",\r\n        $iconPause = \"\",\r\n        $iconReplay = \"\",\r\n        $buttonBack = \"\",\r\n        $buttonForward = \"\",\r\n        $textBack = \"\",\r\n        $textForward = \"\";\r\n\r\n\r\n\r\n    function setButtonState(state){\r\n        $iconPlay.hide();\r\n        $iconPause.hide();\r\n        $iconReplay.hide();\r\n        if(state === STATE_PLAYING || state === STATE_AD_PLAYING || state === STATE_LOADING || state === STATE_STALLED){\r\n            $iconPause.show();\r\n        }else if(state === STATE_PAUSED || state === STATE_AD_PAUSED){\r\n            $iconPlay.show();\r\n        }else if(state === STATE_COMPLETE){\r\n            $iconReplay.show();\r\n        }else{\r\n            $iconPlay.show();\r\n        }\r\n    };\r\n\r\n\r\n\r\n    const onRendered = function($current, template){\r\n        $iconPlay = $current.find(\".op-play-button .op-play\");\r\n        $iconPause = $current.find(\".op-play-button .op-pause\");\r\n        $iconReplay = $current.find(\".op-play-button .op-replay\");\r\n        $buttonBack = $current.find('.op-seek-button-back');\r\n        $buttonForward = $current.find('.op-seek-button-forward');\r\n        $textBack = $current.find('.op-seek-back-text');\r\n        $textForward = $current.find('.op-seek-forward-text');\r\n\r\n        api.on(PLAYER_STATE, function(data){\r\n            if(data && data.newstate){\r\n                setButtonState(data.newstate);\r\n            }\r\n        }, template);\r\n\r\n        if (!api.getConfig().showSeekControl) {\r\n            $buttonBack.hide();\r\n            $buttonForward.hide();\r\n        }\r\n\r\n        let seekInterval = api.getConfig().seekControlInterval;\r\n\r\n        if (seekInterval) {\r\n\r\n            $textBack.text(seekInterval);\r\n            $textForward.text(seekInterval);\r\n        } else {\r\n\r\n            $textBack.text(10);\r\n            $textForward.text(10);\r\n        }\r\n    };\r\n    const onDestroyed = function(template){\r\n        api.off(PLAYER_STATE, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-play-button\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            let currentState = api.getState();\r\n            let playlist = api.getPlaylist();\r\n            let currentPlaylistIndex = api.getCurrentPlaylist();\r\n\r\n            if (currentState === STATE_IDLE) {\r\n                api.play();\r\n            } else if (currentState === STATE_PLAYING || currentState === STATE_AD_PLAYING) {\r\n                api.pause();\r\n            } else if (currentState === STATE_LOADING || currentState === STATE_STALLED) {\r\n                api.stop();\r\n            } else if (currentState === STATE_PAUSED || currentState === STATE_AD_PAUSED) {\r\n                api.play();\r\n            } else if (currentState === STATE_ERROR) {\r\n                api.setCurrentSource(api.getCurrentSource());\r\n            } else if (currentState === STATE_COMPLETE) {\r\n                if(playlist.length === (currentPlaylistIndex+1)){\r\n                    api.seek(0);\r\n                    api.play();\r\n                }\r\n            }\r\n        },\r\n        \"click .op-seek-button-back\" : function(event, $current, template) {\r\n\r\n            let seekInterval = api.getConfig().seekControlInterval;\r\n\r\n            if (!seekInterval) {\r\n                seekInterval = 10;\r\n            }\r\n\r\n            let time = api.getPosition() - seekInterval;\r\n\r\n            if (time < 0) {\r\n                time = 0;\r\n            }\r\n\r\n            api.seek(time);\r\n        },\r\n        \"click .op-seek-button-forward\" : function(event, $current, template) {\r\n\r\n            let seekInterval = api.getConfig().seekControlInterval;\r\n\r\n            if (!seekInterval) {\r\n                seekInterval = 10;\r\n            }\r\n\r\n            let time = api.getPosition() + seekInterval;\r\n\r\n            if (time > api.getDuration()) {\r\n                time = api.getDuration();\r\n            }\r\n\r\n            api.seek(time);\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"PlayButton\", api.getConfig(), null, events, onRendered, onDestroyed );\r\n};\r\n\r\nexport default PlayButton;\r\n","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\nimport OvenTemplate from \"view/engine/OvenTemplate\";\r\nimport {\r\n    READY,\r\n    CONTENT_VOLUME,\r\n    CONTENT_MUTE\r\n} from \"api/constants\";\r\nimport {PLAYER_PLAY} from \"../../../api/constants\";\r\n\r\nconst VolumeButton = function($container, api){\r\n\r\n    let $sliderContainer = \"\",\r\n        $slider = \"\",\r\n        $sliderHandle = \"\",\r\n        $sliderValue = \"\",\r\n        $volumeIconBig = \"\",\r\n        $volumeIconSmall = \"\",\r\n        $volumeIconMute = \"\";\r\n    let mouseDown = false;\r\n    let sliderWidth = 70,  handleWidth = 12, minRange = 0, maxRange = 0;\r\n\r\n    let isMobile = api.getBrowser().os === \"iOS\" || api.getBrowser().os === \"Android\";\r\n\r\n\r\n    function setVolumeIcon(percentage) {\r\n        $volumeIconBig.hide();\r\n        $volumeIconSmall.hide();\r\n        $volumeIconMute.hide();\r\n\r\n        if (percentage >= 70) {\r\n            $volumeIconBig.show();\r\n        } else if (percentage < 70 && percentage > 0) {\r\n            $volumeIconSmall.show();\r\n        } else if (percentage == 0) {\r\n            $volumeIconMute.show();\r\n        }else{\r\n            $volumeIconBig.show();\r\n        }\r\n    }\r\n\r\n    function setVolumeUI(percentage) {\r\n        if (api.getMute()) {\r\n            percentage = 0;\r\n        }\r\n\r\n        setVolumeIcon(percentage);\r\n\r\n        const handlePosition = maxRange * percentage / 100;\r\n\r\n\r\n        $sliderHandle.css(\"left\", handlePosition+ \"px\");\r\n        $sliderValue.css(\"width\", handlePosition+ \"px\");\r\n    }\r\n\r\n    function calculatePercentage(event) {\r\n        const relativeX = (event.pageX || event.touches[0].clientX) - $slider.offset().left;\r\n        let percentage = relativeX / sliderWidth * 100;\r\n\r\n        if (percentage < 0) {\r\n            percentage = 0;\r\n        }\r\n\r\n        if (percentage > 100) {\r\n            percentage = 100;\r\n        }\r\n        return percentage;\r\n    }\r\n\r\n\r\n    const onRendered = function($current, template){\r\n\r\n        $sliderContainer = $current.find(\".op-volume-slider-container\");\r\n\r\n        if (api.getBrowser().mobile) {\r\n            $sliderContainer.hide();\r\n        }\r\n\r\n        $slider = $current.find(\".op-volume-silder\");\r\n        $sliderHandle = $current.find(\".op-volume-slider-handle\");\r\n        $sliderValue = $current.find(\".op-volume-slider-value\");\r\n\r\n        $volumeIconBig = $current.find( \".op-volume-max\");\r\n        $volumeIconSmall = $current.find(\".op-volume-small\");\r\n        $volumeIconMute = $current.find(\".op-volume-mute\");\r\n\r\n        //ToDo : Can't read width.\r\n        //sliderWidth = $sliderContainer.width();\r\n        //handleWidth = $sliderHandle.width();\r\n\r\n        maxRange = sliderWidth - (handleWidth/2);\r\n\r\n        $sliderHandle.css(\"left\", maxRange+ \"px\");\r\n\r\n        setVolumeUI(api.getVolume());\r\n\r\n        api.on(READY, function() {\r\n            setVolumeUI(api.getVolume());\r\n        }, template);\r\n        api.on(CONTENT_VOLUME, function(data) {\r\n\r\n            setVolumeUI(data.volume);\r\n\r\n        }, template);\r\n        api.on(CONTENT_MUTE, function(data) {\r\n            if (data.mute) {\r\n                setVolumeUI(0);\r\n            } else {\r\n                setVolumeUI(api.getVolume());\r\n            }\r\n        }, template);\r\n\r\n    };\r\n    const onDestroyed = function(template){\r\n        api.off(READY, null, template);\r\n        api.off(CONTENT_VOLUME, null, template);\r\n        api.off(CONTENT_MUTE, null, template);\r\n    };\r\n    const events = {\r\n        \"click .op-volume-button\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            if(isMobile){\r\n\r\n            }else{\r\n                if (api.getVolume() === 0) {\r\n                    api.setMute(false);\r\n                    api.setVolume(100);\r\n                } else {\r\n                    api.setMute();\r\n                }\r\n            }\r\n\r\n        },\r\n        \"mouseenter .op-volume-button\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            if(!isMobile){\r\n                $sliderContainer.addClass(\"active\");\r\n            }\r\n        },\r\n        \"mouseleave .op-volume-silder\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            mouseDown = false;\r\n        },\r\n        \"mousedown .op-volume-silder\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            mouseDown = true;\r\n            api.setMute(false);\r\n            api.setVolume(calculatePercentage(event));\r\n        },\r\n        \"mouseup .op-volume-silder\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            mouseDown = false;\r\n        },\r\n        \"mousemove .op-volume-silder\" : function(event, $current, template){\r\n            event.preventDefault();\r\n            if (!mouseDown) {\r\n                return false;\r\n            }\r\n\r\n            api.setVolume(calculatePercentage(event));\r\n        },\r\n        // \"touchstart .op-volume-slider-handle\" : function(event){\r\n        //     mouseDown = true;\r\n        //\r\n        // },\r\n        // \"touchmove .op-volume-slider-handle\" : function(event){\r\n        //     if(mouseDown){\r\n        //\r\n        //         api.setMute(false);\r\n        //         api.setVolume(calculatePercentage(event));\r\n        //     }\r\n        // },\r\n        // \"touchend .op-volume-slider-handle\" : function(event){\r\n        //\r\n        //     if(mouseDown){\r\n        //         mouseDown = false;\r\n        //     }\r\n        // },\r\n        \"touchstart .op-volume-button\" : function(event){\r\n            if(isMobile){\r\n                if (api.getMute()) {\r\n                    api.setMute(false);\r\n                } else {\r\n                    api.setMute(true);\r\n                }\r\n            }\r\n        }\r\n    };\r\n    let that = OvenTemplate($container, \"VolumeButton\", api.getConfig(), null, events, onRendered, onDestroyed);\r\n    that.setMouseDown = (state) => {\r\n        mouseDown = state;\r\n    };\r\n    return that;\r\n\r\n    /*or\r\n\r\n    return Object.assign(OvenTemplate($container, \"VolumeButton\", api.getConfig(), null, events, onRendered, onDestroyed), {\r\n        setMouseDown: function (state) {\r\n            mouseDown = state;\r\n        }\r\n    });*/\r\n};\r\n\r\nexport default VolumeButton;\r\n","\n      import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./ovenplayer.less\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./ovenplayer.less\";\n       export default content && content.locals ? content.locals : undefined;\n","import {version} from 'version'\r\nimport OvenPlayerSDK from './ovenplayer.sdk'\r\nimport {checkAndGetContainerElement} from 'utils/validator'\r\nimport View from './view/view';\r\n\r\nfunction ovenPlayerFactory() {\r\n\r\n    const OvenPlayer = {};\r\n\r\n    Object.assign(OvenPlayer, OvenPlayerSDK);\r\n\r\n    OvenPlayer.create = function (container, options) {\r\n\r\n        console.log(\"[OvenPlayer] v.\"+ version);\r\n\r\n        let containerElement = checkAndGetContainerElement(container);\r\n\r\n        let player = View(containerElement);\r\n\r\n        const playerInstance = OvenPlayerSDK.create(player.getMediaElementContainer(), options);\r\n\r\n        player.setApi(playerInstance);\r\n\r\n        return playerInstance;\r\n    };\r\n\r\n    return OvenPlayer;\r\n}\r\n\r\nexport default ovenPlayerFactory()","/**\r\n * Created by hoho on 2018. 7. 20..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport Helpers from 'view/components/helpers/main';\r\nimport Controls from 'view/components/controls/main';\r\nimport PanelManager from \"view/global/PanelManager\";\r\nimport ContextPanel from 'view/components/helpers/contextPanel';\r\nimport LA$ from 'utils/likeA$';\r\nimport ResizeSensor from \"utils/resize-sensor\";\r\nimport {\r\n    READY,\r\n    DESTROY,\r\n    PLAYER_RESIZED,\r\n    PLAYER_PLAY,\r\n    STATE_IDLE,\r\n    STATE_AD_PLAYING,\r\n    STATE_PLAYING,\r\n    STATE_STALLED,\r\n    STATE_LOADING,\r\n    STATE_COMPLETE,\r\n    STATE_PAUSED,\r\n    STATE_ERROR,\r\n    CONTENT_META,\r\n    PLAYER_STATE,\r\n    PLAYER_CLICKED,\r\n    ERROR\r\n} from \"api/constants\";\r\n\r\nimport '../../stylesheet/ovenplayer.less';\r\n\r\nconst View = function($container){\r\n    let viewTemplate = \"\", controls = \"\", helper = \"\", $playerRoot, contextPanel = \"\", api = null, autoHideTimer = \"\", playerState = STATE_IDLE;\r\n    let isShiftPressed = false;\r\n    let panelManager = PanelManager();\r\n    let screenSize = \"\";\r\n    let currentPlayerSize = \"\";\r\n\r\n    let that = {};\r\n\r\n    //Member Functions\r\n    function setHide(hide, autoHide) {\r\n        if (autoHideTimer) {\r\n            clearTimeout(autoHideTimer);\r\n            autoHideTimer = null;\r\n        }\r\n\r\n        if (hide) {\r\n            if(panelManager.size() > 0){\r\n                return false;\r\n            }\r\n            $playerRoot.addClass(\"op-autohide\");\r\n        } else {\r\n            $playerRoot.removeClass(\"op-autohide\");\r\n\r\n            if (autoHide) {\r\n                autoHideTimer = setTimeout(function() {\r\n                    if(panelManager.size()> 0){\r\n                        return false;\r\n                    }\r\n                    $playerRoot.addClass(\"op-autohide\");\r\n                }, 3000);\r\n            }\r\n        }\r\n    }\r\n    function togglePlayPause() {\r\n        const currentState = playerState;\r\n\r\n        if (currentState === STATE_IDLE || currentState === STATE_PAUSED || currentState === STATE_COMPLETE) {\r\n\r\n            if (currentState === STATE_COMPLETE) {\r\n                api.seek(0);\r\n            }\r\n\r\n            api.play();\r\n        }else if(currentState === STATE_PLAYING){\r\n            api.pause();\r\n        }\r\n    }\r\n    function seek(seconds, isRewind) {\r\n\r\n        const duration = api.getDuration();\r\n        const currentPosition = api.getPosition();\r\n        let position = 0;\r\n\r\n        if(isRewind){\r\n            position = Math.max(currentPosition - seconds, 0);\r\n        }else{\r\n            position = Math.min(currentPosition + seconds, duration);\r\n        }\r\n\r\n        api.seek(position);\r\n    }\r\n    function volume(isUp){\r\n        const currentVolumn = api.getVolume();\r\n        let newVolume = 0;\r\n        if(isUp){\r\n            newVolume =  Math.min(currentVolumn + 5, 100);\r\n        }else{\r\n            newVolume = Math.max(currentVolumn - 5, 0);\r\n        }\r\n        api.setVolume(newVolume);\r\n    }\r\n    function createContextPanel(pageX, pageY){\r\n        if(contextPanel){\r\n            contextPanel.destroy();\r\n            contextPanel = null;\r\n        }\r\n        contextPanel = ContextPanel($playerRoot, api, {pageX : pageX, pageY : pageY});\r\n    }\r\n\r\n    function calcPlayerWidth(){\r\n        let playerWidth = $playerRoot.width();\r\n        if(playerWidth < 576){\r\n            screenSize = \"xsmall\";\r\n            $playerRoot.addClass(\"xsmall\");\r\n\r\n            if (playerWidth < 490) {\r\n                $playerRoot.addClass(\"xxsmall\");\r\n            }\r\n\r\n        }else if(playerWidth < 768){\r\n            screenSize = \"small\";\r\n            $playerRoot.addClass(\"small\");\r\n        }else if(playerWidth < 992){\r\n            screenSize = \"medium\";\r\n            $playerRoot.addClass(\"medium\");\r\n        }else{\r\n            screenSize = \"large\";\r\n            $playerRoot.addClass(\"large\");\r\n        }\r\n    }\r\n\r\n    const onRendered = function($current, template){\r\n        $playerRoot = $current;\r\n        viewTemplate = template;\r\n        calcPlayerWidth();\r\n        currentPlayerSize = screenSize;\r\n        new ResizeSensor($playerRoot.get(), function() {\r\n\r\n            $playerRoot.removeClass(\"large\");\r\n            $playerRoot.removeClass(\"medium\");\r\n            $playerRoot.removeClass(\"small\");\r\n            $playerRoot.removeClass(\"xsmall\");\r\n            $playerRoot.removeClass(\"xxsmall\");\r\n            calcPlayerWidth();\r\n            if(screenSize !== currentPlayerSize){\r\n                currentPlayerSize = screenSize;\r\n                if(api){\r\n                    api.trigger(PLAYER_RESIZED, currentPlayerSize);\r\n                }\r\n            }\r\n        });\r\n\r\n    };\r\n    const onDestroyed = function(){\r\n        if(helper){\r\n            helper.destroy();\r\n            helper = null;\r\n        }\r\n        if(controls){\r\n            controls.destroy();\r\n            controls = null;\r\n        }\r\n    };\r\n    const events = {\r\n        \"click .ovenplayer\" : function(event, $current, template){\r\n\r\n            if(api){\r\n                api.trigger(PLAYER_CLICKED, event);\r\n            }\r\n\r\n            if(contextPanel){\r\n                event.preventDefault();\r\n                contextPanel.destroy();\r\n                contextPanel = null;\r\n                return false;\r\n            }\r\n\r\n            if(!(LA$(event.target).closest(\".op-controls-container\") || LA$(event.target).closest(\".op-setting-panel\")  )){\r\n\r\n                if(panelManager.size() > 0){\r\n                    event.preventDefault();\r\n                    panelManager.clear();\r\n                    return false;\r\n                }\r\n\r\n                if (api.getDuration() !== Infinity && !api.getBrowser().mobile) {\r\n                    togglePlayPause();\r\n                }\r\n\r\n            }\r\n        },\r\n        \"dblclick .ovenplayer\" : function(event, $current, template){\r\n\r\n            if (api) {\r\n\r\n                if (api.getConfig().expandFullScreenUI && api.toggleFullScreen) {\r\n\r\n                    if(!(LA$(event.target).closest(\".op-controls-container\") || LA$(event.target).closest(\".op-setting-panel\") )){\r\n                        api.toggleFullScreen();\r\n                    }\r\n                }\r\n            }\r\n        },\r\n        //For iOS safari\r\n        \"touchstart .ovenplayer\" : function(event, $current, template){\r\n            if (playerState === STATE_PLAYING || playerState === STATE_IDLE  || playerState === STATE_LOADING || (playerState === STATE_AD_PLAYING && screenSize === \"xsmall\")) {\r\n                setHide(false, true);\r\n            } else {\r\n                setHide(false);\r\n            }\r\n        },\r\n        \"mouseenter .ovenplayer\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            //small screen with STATE_AD_PLAYING setHide too. becuase mobile hide ad ui.\r\n            if (playerState === STATE_PLAYING || playerState === STATE_IDLE || playerState === STATE_LOADING || (playerState === STATE_AD_PLAYING && screenSize === \"xsmall\")) {\r\n                setHide(false, true);\r\n            } else {\r\n                setHide(false);\r\n            }\r\n        },\r\n        \"mousemove .ovenplayer\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            if (playerState === STATE_PLAYING || playerState === STATE_IDLE || playerState === STATE_LOADING || (playerState === STATE_AD_PLAYING && screenSize === \"xsmall\")) {\r\n                setHide(false, true);\r\n            } else {\r\n                setHide(false);\r\n            }\r\n        },\r\n        \"mouseleave .ovenplayer\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            if(playerState === STATE_PLAYING  || playerState === STATE_IDLE || playerState === STATE_LOADING || (playerState === STATE_AD_PLAYING && screenSize === \"xsmall\")){\r\n                setHide(true);\r\n            }\r\n        },\r\n        \"keydown .ovenplayer\" : function(event, $current, template){\r\n            let frameMode = api.getFramerate();\r\n            switch(event.keyCode){\r\n                case 16 :   //shift\r\n                    event.preventDefault();\r\n                    isShiftPressed = true;\r\n                    break;\r\n                case 32 :   //space\r\n                    event.preventDefault();\r\n                    togglePlayPause();\r\n                    break;\r\n                case 37 : //arrow left\r\n                    event.preventDefault();\r\n\r\n                    if (!api.getConfig().disableSeekUI) {\r\n                        if(isShiftPressed && frameMode){\r\n                            api.seekFrame(-1);\r\n                        }else{\r\n                            seek(5, true);\r\n                        }\r\n                    }\r\n                    break;\r\n                case 39 : //arrow right\r\n                    event.preventDefault();\r\n\r\n                    if (!api.getConfig().disableSeekUI) {\r\n\r\n                        if(isShiftPressed && frameMode){\r\n                            api.seekFrame(1);\r\n                        }else{\r\n                            seek(5, false);\r\n                        }\r\n                    }\r\n\r\n                    break;\r\n                case 38 : //arrow up\r\n                    event.preventDefault();\r\n                    volume(true);\r\n                    break;\r\n                case 40 : //arrow up\r\n                    event.preventDefault();\r\n                    volume(false);\r\n                    break;\r\n            }\r\n\r\n        },\r\n        \"keyup .ovenplayer\" : function(event, $current, template){\r\n            switch(event.keyCode) {\r\n                case 16 :   //shift\r\n                    event.preventDefault();\r\n                    isShiftPressed = false;\r\n                    break;\r\n            }\r\n\r\n        },\r\n        \"contextmenu .ovenplayer\" : function(event, $current, template){\r\n            event.stopPropagation();\r\n            if(!LA$(event.currentTarget).find(\"object\")){\r\n                event.preventDefault();\r\n                createContextPanel(event.pageX, event.pageY);\r\n                return false;\r\n            }\r\n        }\r\n    };\r\n\r\n    that = OvenTemplate($container, \"View\", null, $container.id, events, onRendered, onDestroyed, true);\r\n\r\n    that.getMediaElementContainer = () => {\r\n        return $playerRoot.find(\".op-media-element-container\").get();\r\n    };\r\n\r\n    that.setApi = (playerInstance) => {\r\n        api = playerInstance;\r\n\r\n        api.getContainerElement = () => {\r\n            return $playerRoot.get();\r\n        };\r\n\r\n        api.getContainerId = () => {\r\n            return $playerRoot.get().id;\r\n        };\r\n\r\n        api.on(READY, function(data) {\r\n\r\n            if(!controls){\r\n                controls = Controls($playerRoot.find(\".op-ui\"), playerInstance);\r\n            }\r\n\r\n            if (!showControlBar) {\r\n                $playerRoot.addClass(\"op-no-controls\");\r\n            }\r\n\r\n        });\r\n\r\n        api.on(ERROR, function(error) {\r\n            if(api){\r\n                let sources = api.getSources()||[];\r\n                if(controls && (sources.length <= 1)){\r\n                    // controls.destroy();\r\n                    // controls = null;\r\n                }\r\n            }\r\n\r\n        });\r\n\r\n        api.on(DESTROY, function(data) {\r\n            viewTemplate.destroy();\r\n        });\r\n\r\n        api.on(PLAYER_PLAY, function (data) {\r\n            if(!controls && showControlBar){\r\n                controls = Controls($playerRoot.find(\".op-ui\"), playerInstance);\r\n            }\r\n        });\r\n\r\n        api.on(PLAYER_STATE, function(data){\r\n            if(data && data.newstate){\r\n                playerState = data.newstate;\r\n                if(data.newstate === STATE_PLAYING || (data.newstate === STATE_AD_PLAYING && screenSize === \"xsmall\")){\r\n                    setHide(false, true);\r\n                }else{\r\n                    setHide(false);\r\n                }\r\n            }\r\n        });\r\n\r\n        let showControlBar = api.getConfig() && api.getConfig().controls;\r\n\r\n        helper = Helpers($playerRoot.find(\".op-ui\"), playerInstance);\r\n        controls = Controls($playerRoot.find(\".op-ui\"), playerInstance);\r\n\r\n        let aspectRatio = api.getConfig().aspectRatio;\r\n\r\n        if (aspectRatio) {\r\n\r\n            if (aspectRatio.split(':').length === 2) {\r\n\r\n                let width = aspectRatio.split(':')[0] * 1;\r\n                let height = aspectRatio.split(':')[1] * 1;\r\n\r\n                let ratio = height / width * 100;\r\n\r\n                $playerRoot.find('.op-ratio').css('padding-bottom', ratio + '%');\r\n            }\r\n        }\r\n\r\n        api.showControls = function (show) {\r\n            if (show) {\r\n                $playerRoot.removeClass(\"op-no-controls\");\r\n                setHide(false, true);\r\n            } else {\r\n                $playerRoot.addClass(\"op-no-controls\");\r\n            }\r\n        };\r\n    };\r\n\r\n\r\n    return that;\r\n};\r\n\r\n\r\n\r\nexport default View;\r\n","/**\r\n * Created by hoho on 2018. 8. 1..\r\n */\r\nimport OvenTemplate from 'view/engine/OvenTemplate';\r\nimport LA$ from 'utils/likeA$';\r\n\r\nconst ContextPanel = function($container, api, position){\r\n    const $root = LA$(api.getContainerElement());\r\n\r\n    const onRendered = function($current, template){\r\n        const panelWidth = $current.width();\r\n        const panelHeight = $current.height();\r\n\r\n        const x = Math.min(position.pageX - $root.offset().left, $root.width() - panelWidth);\r\n        const y = Math.min(position.pageY - $root.offset().top, $root.height() - panelHeight);\r\n\r\n        $current.css(\"left\" , x + \"px\");\r\n        $current.css(\"top\" , y + \"px\");\r\n    };\r\n    const onDestroyed = function(){\r\n        //Do nothing.\r\n    };\r\n    const events = {\r\n        \"click .op-context-item\" : function(event, $current, template){\r\n            event.preventDefault();\r\n\r\n            window.open(\r\n                'https://github.com/AirenSoft/OvenPlayer',\r\n                '_blank'\r\n            );\r\n        }\r\n    };\r\n\r\n    return OvenTemplate($container, \"ContextPanel\", api.getConfig(), position, events, onRendered, onDestroyed );\r\n\r\n};\r\n\r\nexport default ContextPanel;\r\n","/*\r\n* Copyright 2018 Joshua Bell\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n* */\r\n\r\n(function(global) {\r\n    'use strict';\r\n    if (!('window' in global && 'document' in global))\r\n        return;\r\n\r\n    //----------------------------------------------------------------------\r\n    //\r\n    // DOM\r\n    // https://dom.spec.whatwg.org/\r\n    //\r\n    //----------------------------------------------------------------------\r\n\r\n    // Document.querySelectorAll method\r\n    // http://ajaxian.com/archives/creating-a-queryselector-for-ie-that-runs-at-native-speed\r\n    // Needed for: IE7-\r\n    if (!document.querySelectorAll) {\r\n        document.querySelectorAll = function(selectors) {\r\n            var style = document.createElement('style'), elements = [], element;\r\n            document.documentElement.firstChild.appendChild(style);\r\n            document._qsa = [];\r\n\r\n            style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}';\r\n            window.scrollBy(0, 0);\r\n            style.parentNode.removeChild(style);\r\n\r\n            while (document._qsa.length) {\r\n                element = document._qsa.shift();\r\n                element.style.removeAttribute('x-qsa');\r\n                elements.push(element);\r\n            }\r\n            document._qsa = null;\r\n            return elements;\r\n        };\r\n    }\r\n\r\n    // Document.querySelector method\r\n    // Needed for: IE7-\r\n    if (!document.querySelector) {\r\n        document.querySelector = function(selectors) {\r\n            var elements = document.querySelectorAll(selectors);\r\n            return (elements.length) ? elements[0] : null;\r\n        };\r\n    }\r\n\r\n    // Document.getElementsByClassName method\r\n    // Needed for: IE8-\r\n    if (!document.getElementsByClassName) {\r\n        document.getElementsByClassName = function(classNames) {\r\n            classNames = String(classNames).replace(/^|\\s+/g, '.');\r\n            return document.querySelectorAll(classNames);\r\n        };\r\n    }\r\n\r\n    // Node interface constants\r\n    // Needed for: IE8-\r\n    global.Node = global.Node || function() { throw TypeError(\"Illegal constructor\"); };\r\n    [\r\n        ['ELEMENT_NODE', 1],\r\n        ['ATTRIBUTE_NODE', 2],\r\n        ['TEXT_NODE', 3],\r\n        ['CDATA_SECTION_NODE', 4],\r\n        ['ENTITY_REFERENCE_NODE', 5],\r\n        ['ENTITY_NODE', 6],\r\n        ['PROCESSING_INSTRUCTION_NODE', 7],\r\n        ['COMMENT_NODE', 8],\r\n        ['DOCUMENT_NODE', 9],\r\n        ['DOCUMENT_TYPE_NODE', 10],\r\n        ['DOCUMENT_FRAGMENT_NODE', 11],\r\n        ['NOTATION_NODE', 12]\r\n    ].forEach(function(p) { if (!(p[0] in global.Node)) global.Node[p[0]] = p[1]; });\r\n\r\n    // DOMException constants\r\n    // Needed for: IE8-\r\n    global.DOMException = global.DOMException || function() { throw TypeError(\"Illegal constructor\"); };\r\n    [\r\n        ['INDEX_SIZE_ERR', 1],\r\n        ['DOMSTRING_SIZE_ERR', 2],\r\n        ['HIERARCHY_REQUEST_ERR', 3],\r\n        ['WRONG_DOCUMENT_ERR', 4],\r\n        ['INVALID_CHARACTER_ERR', 5],\r\n        ['NO_DATA_ALLOWED_ERR', 6],\r\n        ['NO_MODIFICATION_ALLOWED_ERR', 7],\r\n        ['NOT_FOUND_ERR', 8],\r\n        ['NOT_SUPPORTED_ERR', 9],\r\n        ['INUSE_ATTRIBUTE_ERR', 10],\r\n        ['INVALID_STATE_ERR', 11],\r\n        ['SYNTAX_ERR', 12],\r\n        ['INVALID_MODIFICATION_ERR', 13],\r\n        ['NAMESPACE_ERR', 14],\r\n        ['INVALID_ACCESS_ERR', 15]\r\n    ].forEach(function(p) { if (!(p[0] in global.DOMException)) global.DOMException[p[0]] = p[1]; });\r\n\r\n    // Event and EventTargets interfaces\r\n    // Needed for: IE8\r\n    (function(){\r\n        if (!('Element' in global) || Element.prototype.addEventListener || !Object.defineProperty)\r\n            return;\r\n\r\n        // interface Event\r\n\r\n        // PhaseType (const unsigned short)\r\n        Event.CAPTURING_PHASE = 1;\r\n        Event.AT_TARGET       = 2;\r\n        Event.BUBBLING_PHASE  = 3;\r\n\r\n        Object.defineProperties(Event.prototype, {\r\n            CAPTURING_PHASE: { get: function() { return 1; } },\r\n            AT_TARGET:       { get: function() { return 2; } },\r\n            BUBBLING_PHASE:   { get: function() { return 3; } },\r\n            target: {\r\n                get: function() {\r\n                    return this.srcElement;\r\n                }},\r\n            currentTarget: {\r\n                get: function() {\r\n                    return this._currentTarget;\r\n                }},\r\n            eventPhase: {\r\n                get: function() {\r\n                    return (this.srcElement === this.currentTarget) ? Event.AT_TARGET : Event.BUBBLING_PHASE;\r\n                }},\r\n            bubbles: {\r\n                get: function() {\r\n                    switch (this.type) {\r\n                        // Mouse\r\n                        case 'click':\r\n                        case 'dblclick':\r\n                        case 'mousedown':\r\n                        case 'mouseup':\r\n                        case 'mouseover':\r\n                        case 'mousemove':\r\n                        case 'mouseout':\r\n                        case 'mousewheel':\r\n                        // Keyboard\r\n                        case 'keydown':\r\n                        case 'keypress':\r\n                        case 'keyup':\r\n                        // Frame/Object\r\n                        case 'resize':\r\n                        case 'scroll':\r\n                        // Form\r\n                        case 'select':\r\n                        case 'change':\r\n                        case 'submit':\r\n                        case 'reset':\r\n                            return true;\r\n                    }\r\n                    return false;\r\n                }},\r\n            cancelable: {\r\n                get: function() {\r\n                    switch (this.type) {\r\n                        // Mouse\r\n                        case 'click':\r\n                        case 'dblclick':\r\n                        case 'mousedown':\r\n                        case 'mouseup':\r\n                        case 'mouseover':\r\n                        case 'mouseout':\r\n                        case 'mousewheel':\r\n                        // Keyboard\r\n                        case 'keydown':\r\n                        case 'keypress':\r\n                        case 'keyup':\r\n                        // Form\r\n                        case 'submit':\r\n                            return true;\r\n                    }\r\n                    return false;\r\n                }},\r\n            timeStamp: {\r\n                get: function() {\r\n                    return this._timeStamp;\r\n                }},\r\n            stopPropagation: {\r\n                value: function() {\r\n                    this.cancelBubble = true;\r\n                }},\r\n            preventDefault: {\r\n                value: function() {\r\n                    this.returnValue = false;\r\n                }},\r\n            defaultPrevented: {\r\n                get: function() {\r\n                    return this.returnValue === false;\r\n                }}\r\n        });\r\n\r\n        // interface EventTarget\r\n\r\n        function addEventListener(type, listener, useCapture) {\r\n            if (typeof listener !== 'function') return;\r\n            if (type === 'DOMContentLoaded') type = 'load';\r\n            var target = this;\r\n            var f = function(e) {\r\n                e._timeStamp = Date.now();\r\n                e._currentTarget = target;\r\n                listener.call(this, e);\r\n                e._currentTarget = null;\r\n            };\r\n            this['_' + type + listener] = f;\r\n            this.attachEvent('on' + type, f);\r\n        }\r\n\r\n        function removeEventListener(type, listener, useCapture) {\r\n            if (typeof listener !== 'function') return;\r\n            if (type === 'DOMContentLoaded') type = 'load';\r\n            var f = this['_' + type + listener];\r\n            if (f) {\r\n                this.detachEvent('on' + type, f);\r\n                this['_' + type + listener] = null;\r\n            }\r\n        }\r\n\r\n        [Window, HTMLDocument, Element].forEach(function(o) {\r\n            o.prototype.addEventListener = addEventListener;\r\n            o.prototype.removeEventListener = removeEventListener;\r\n        });\r\n    }());\r\n\r\n    // CustomEvent\r\n    // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\r\n    // Needed for: IE\r\n    (function () {\r\n        if ('CustomEvent' in global && typeof global.CustomEvent === \"function\")\r\n            return;\r\n        function CustomEvent ( event, params ) {\r\n            params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n            var evt = document.createEvent( 'CustomEvent' );\r\n            evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\r\n            return evt;\r\n        }\r\n        CustomEvent.prototype = global.Event.prototype;\r\n        global.CustomEvent = CustomEvent;\r\n    })();\r\n\r\n    // Shim for DOM Events for IE7-\r\n    // http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html\r\n    // Use addEvent(object, event, handler) instead of object.addEventListener(event, handler)\r\n    window.addEvent = function(obj, type, fn) {\r\n        if (obj.addEventListener) {\r\n            obj.addEventListener(type, fn, false);\r\n        } else if (obj.attachEvent) {\r\n            obj[\"e\" + type + fn] = fn;\r\n            obj[type + fn] = function() {\r\n                var e = window.event;\r\n                e.currentTarget = obj;\r\n                e.preventDefault = function() { e.returnValue = false; };\r\n                e.stopPropagation = function() { e.cancelBubble = true; };\r\n                e.target = e.srcElement;\r\n                e.timeStamp = Date.now();\r\n                obj[\"e\" + type + fn].call(this, e);\r\n            };\r\n            obj.attachEvent(\"on\" + type, obj[type + fn]);\r\n        }\r\n    };\r\n\r\n    window.removeEvent = function(obj, type, fn) {\r\n        if (obj.removeEventListener) {\r\n            obj.removeEventListener(type, fn, false);\r\n        } else if (obj.detachEvent) {\r\n            obj.detachEvent(\"on\" + type, obj[type + fn]);\r\n            obj[type + fn] = null;\r\n            obj[\"e\" + type + fn] = null;\r\n        }\r\n    };\r\n\r\n    // DOMTokenList interface and Element.classList / Element.relList\r\n    // Needed for: IE9-\r\n    // Use getClassList(elem) instead of elem.classList() if IE7- support is needed\r\n    // Use getRelList(elem) instead of elem.relList() if IE7- support is needed\r\n    (function() {\r\n        function DOMTokenListShim(o, p) {\r\n            function split(s) { return s.length ? s.split(/\\s+/g) : []; }\r\n\r\n            // NOTE: This does not exactly match the spec.\r\n            function removeTokenFromString(token, string) {\r\n                var tokens = split(string),\r\n                    index = tokens.indexOf(token);\r\n                if (index !== -1) {\r\n                    tokens.splice(index, 1);\r\n                }\r\n                return tokens.join(' ');\r\n            }\r\n\r\n            Object.defineProperties(\r\n                this,\r\n                {\r\n                    length: {\r\n                        get: function() { return split(o[p]).length; }\r\n                    },\r\n\r\n                    item: {\r\n                        value: function(idx) {\r\n                            var tokens = split(o[p]);\r\n                            return 0 <= idx && idx < tokens.length ? tokens[idx] : null;\r\n                        }\r\n                    },\r\n\r\n                    contains: {\r\n                        value: function(token) {\r\n                            token = String(token);\r\n                            if (token.length === 0) { throw SyntaxError(); }\r\n                            if (/\\s/.test(token)) { throw Error(\"InvalidCharacterError\"); }\r\n                            var tokens = split(o[p]);\r\n\r\n                            return tokens.indexOf(token) !== -1;\r\n                        }\r\n                    },\r\n\r\n                    add: {\r\n                        value: function(/*tokens...*/) {\r\n                            var tokens = Array.prototype.slice.call(arguments).map(String);\r\n                            if (tokens.some(function(token) { return token.length === 0; })) {\r\n                                throw SyntaxError();\r\n                            }\r\n                            if (tokens.some(function(token) { return (/\\s/).test(token); })) {\r\n                                throw Error(\"InvalidCharacterError\");\r\n                            }\r\n\r\n                            try {\r\n                                var underlying_string = o[p];\r\n                                var token_list = split(underlying_string);\r\n                                tokens = tokens.filter(function(token) { return token_list.indexOf(token) === -1; });\r\n                                if (tokens.length === 0) {\r\n                                    return;\r\n                                }\r\n                                if (underlying_string.length !== 0 && !(/\\s$/).test(underlying_string)) {\r\n                                    underlying_string += ' ';\r\n                                }\r\n                                underlying_string += tokens.join(' ');\r\n                                o[p] = underlying_string;\r\n                            } finally {\r\n                                var length = split(o[p]).length;\r\n                                if (this.length !== length) { this.length = length; }\r\n                            }\r\n                        }\r\n                    },\r\n\r\n                    remove: {\r\n                        value: function(/*tokens...*/) {\r\n                            var tokens = Array.prototype.slice.call(arguments).map(String);\r\n                            if (tokens.some(function(token) { return token.length === 0; })) {\r\n                                throw SyntaxError();\r\n                            }\r\n                            if (tokens.some(function(token) { return (/\\s/).test(token); })) {\r\n                                throw Error(\"InvalidCharacterError\");\r\n                            }\r\n\r\n                            try {\r\n                                var underlying_string = o[p];\r\n                                tokens.forEach(function(token) {\r\n                                    underlying_string = removeTokenFromString(token, underlying_string);\r\n                                });\r\n                                o[p] = underlying_string;\r\n                            } finally {\r\n                                var length = split(o[p]).length;\r\n                                if (this.length !== length) { this.length = length; }\r\n                            }\r\n                        }\r\n                    },\r\n\r\n                    toggle: {\r\n                        value: function(token/*, force*/) {\r\n                            var force = arguments[1];\r\n                            try {\r\n                                token = String(token);\r\n                                if (token.length === 0) { throw SyntaxError(); }\r\n                                if (/\\s/.test(token)) { throw Error(\"InvalidCharacterError\"); }\r\n                                var tokens = split(o[p]),\r\n                                    index = tokens.indexOf(token);\r\n\r\n                                if (index !== -1 && (!force || force === (void 0))) {\r\n                                    o[p] = removeTokenFromString(token, o[p]);\r\n                                    return false;\r\n                                }\r\n                                if (index !== -1 && force) {\r\n                                    return true;\r\n                                }\r\n                                var underlying_string = o[p];\r\n                                if (underlying_string.length !== 0 && !/\\s$/.test(underlying_string)) {\r\n                                    underlying_string += ' ';\r\n                                }\r\n                                underlying_string += token;\r\n                                o[p] = underlying_string;\r\n                                return true;\r\n                            } finally {\r\n                                var length = split(o[p]).length;\r\n                                if (this.length !== length) { this.length = length; }\r\n                            }\r\n                        }\r\n                    },\r\n\r\n                    toString: {\r\n                        value: function() {\r\n                            return o[p];\r\n                        }\r\n                    }\r\n                });\r\n            if (!('length' in this)) {\r\n                // In case getters are not supported\r\n                this.length = split(o[p]).length;\r\n            } else {\r\n                // If they are, shim in index getters (up to 100)\r\n                for (var i = 0; i < 100; ++i) {\r\n                    Object.defineProperty(this, String(i), {\r\n                        get: (function(n) { return function() { return this.item(n); }; }(i))\r\n                    });\r\n                }\r\n            }\r\n        }\r\n\r\n        function addToElementPrototype(p, f) {\r\n            if ('Element' in global && Element.prototype && Object.defineProperty) {\r\n                Object.defineProperty(Element.prototype, p, { get: f });\r\n            }\r\n        }\r\n\r\n        // HTML - https://html.spec.whatwg.org\r\n        // Element.classList\r\n        if ('classList' in document.createElement('span')) {\r\n            window.getClassList = function(elem) { return elem.classList; };\r\n        } else {\r\n            window.getClassList = function(elem) { return new DOMTokenListShim(elem, 'className'); };\r\n            addToElementPrototype('classList', function() { return new DOMTokenListShim(this, 'className'); } );\r\n        }\r\n\r\n        // HTML - https://html.spec.whatwg.org\r\n        // HTMLAnchorElement.relList\r\n        // HTMLLinkElement.relList\r\n        if ('relList' in document.createElement('link')) {\r\n            window.getRelList = function(elem) { return elem.relList; };\r\n        } else {\r\n            window.getRelList = function(elem) { return new DOMTokenListShim(elem, 'rel'); };\r\n            addToElementPrototype('relList', function() { return new DOMTokenListShim(this, 'rel'); } );\r\n        }\r\n\r\n        // Add second argument to native DOMTokenList.toggle() if necessary\r\n        (function() {\r\n            if (!('DOMTokenList' in global)) return;\r\n            var e = document.createElement('span');\r\n            if (!('classList' in e)) return;\r\n            e.classList.toggle('x', false);\r\n            if (!e.classList.contains('x')) return;\r\n            global.DOMTokenList.prototype.toggle = function toggle(token/*, force*/) {\r\n                var force = arguments[1];\r\n                if (force === undefined) {\r\n                    var add = !this.contains(token);\r\n                    this[add ? 'add' : 'remove'](token);\r\n                    return add;\r\n                }\r\n                force = !!force;\r\n                this[force ? 'add' : 'remove'](token);\r\n                return force;\r\n            };\r\n        }());\r\n\r\n\r\n        // DOM - Interface NonDocumentTypeChildNode\r\n        // Interface NonDocumentTypeChildNode\r\n        // previousElementSibling / nextElementSibling - for IE8\r\n\r\n        if (!('previousElementSibling' in document.documentElement)) {\r\n            addToElementPrototype('previousElementSibling', function() {\r\n                var n = this.previousSibling;\r\n                while (n && n.nodeType !== Node.ELEMENT_NODE)\r\n                    n = n.previousSibling;\r\n                return n;\r\n            });\r\n        }\r\n\r\n        if (!('nextElementSibling' in document.documentElement)) {\r\n            addToElementPrototype('nextElementSibling', function() {\r\n                var n = this.nextSibling;\r\n                while (n && n.nodeType !== Node.ELEMENT_NODE)\r\n                    n = n.nextSibling;\r\n                return n;\r\n            });\r\n        }\r\n    }());\r\n\r\n    // Element.matches\r\n    // https://developer.mozilla.org/en/docs/Web/API/Element/matches\r\n    // Needed for: IE, Firefox 3.6, early Webkit and Opera 15.0\r\n    // Use msMatchesSelector(selector) for IE\r\n    // Use oMatchesSelector(selector) for Opera 15.0\r\n    // Use mozMatchesSelector(selector) for Firefox 3.6\r\n    // Use webkitMatchesSelector(selector) for early Webkit\r\n    // Use polyfill if no matches() support, but querySelectorAll() support\r\n    if ('Element' in global && !Element.prototype.matches) {\r\n        if (Element.prototype.msMatchesSelector) {\r\n            Element.prototype.matches = Element.prototype.msMatchesSelector;\r\n        } else if (Element.prototype.oMatchesSelector) {\r\n            Element.prototype.matches = Element.prototype.oMatchesSelector;\r\n        } else if (Element.prototype.mozMatchesSelector) {\r\n            Element.prototype.matches = Element.prototype.mozMatchesSelector;\r\n        } else if (Element.prototype.webkitMatchesSelector) {\r\n            Element.prototype.matches = Element.prototype.webkitMatchesSelector;\r\n        } else if (document.querySelectorAll) {\r\n            Element.prototype.matches = function matches(selector) {\r\n                var matches = (this.document || this.ownerDocument).querySelectorAll(selector),\r\n                    i = matches.length;\r\n                while (--i >= 0 && matches.item(i) !== this) {}\r\n                return i > -1;\r\n            };\r\n        }\r\n    }\r\n\r\n    // Element.closest\r\n    // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\r\n    if (window.Element && !Element.prototype.closest) {\r\n        Element.prototype.closest = function(s) {\r\n            var matches = (this.document || this.ownerDocument).querySelectorAll(s),\r\n                i,\r\n                el = this;\r\n            do {\r\n                i = matches.length;\r\n                while (--i >= 0 && matches.item(i) !== el) {};\r\n            } while ((i < 0) && (el = el.parentElement));\r\n            return el;\r\n        };\r\n    }\r\n\r\n    function mixin(o, ps) {\r\n        if (!o) return;\r\n        Object.keys(ps).forEach(function(p) {\r\n            if ((p in o) || (p in o.prototype)) return;\r\n            try {\r\n                Object.defineProperty(\r\n                    o.prototype,\r\n                    p,\r\n                    Object.getOwnPropertyDescriptor(ps, p)\r\n                );\r\n            } catch (ex) {\r\n                // Throws in IE8; just copy it\r\n                o[p] = ps[p];\r\n            }\r\n        });\r\n    }\r\n\r\n    // Mixin ParentNode\r\n    // https://dom.spec.whatwg.org/#interface-parentnode\r\n\r\n    function convertNodesIntoANode(nodes) {\r\n        var node = null;\r\n        nodes = nodes.map(function(node) {\r\n            return !(node instanceof Node) ? document.createTextNode(node) : node;\r\n        });\r\n        if (nodes.length === 1) {\r\n            node = nodes[0];\r\n        } else {\r\n            node = document.createDocumentFragment();\r\n            nodes.forEach(function(n) { node.appendChild(n); });\r\n        }\r\n        return node;\r\n    }\r\n\r\n    var ParentNode = {\r\n        prepend: function(/*...nodes*/) {\r\n            var nodes = [].slice.call(arguments);\r\n            nodes = convertNodesIntoANode(nodes);\r\n            this.insertBefore(nodes, this.firstChild);\r\n        },\r\n        append: function(/*...nodes*/) {\r\n            var nodes = [].slice.call(arguments);\r\n            nodes = convertNodesIntoANode(nodes);\r\n            this.appendChild(nodes);\r\n        }\r\n    };\r\n\r\n    mixin(global.Document || global.HTMLDocument, ParentNode); // HTMLDocument for IE8\r\n    mixin(global.DocumentFragment, ParentNode);\r\n    mixin(global.Element, ParentNode);\r\n\r\n    // Mixin ChildNode\r\n    // https://dom.spec.whatwg.org/#interface-childnode\r\n\r\n    var ChildNode = {\r\n        before: function(/*...nodes*/) {\r\n            var nodes = [].slice.call(arguments);\r\n            var parent = this.parentNode;\r\n            if (!parent) return;\r\n            var viablePreviousSibling = this.previousSibling;\r\n            while (nodes.indexOf(viablePreviousSibling) !== -1)\r\n                viablePreviousSibling = viablePreviousSibling.previousSibling;\r\n            var node = convertNodesIntoANode(nodes);\r\n            parent.insertBefore(node, viablePreviousSibling ?\r\n                viablePreviousSibling.nextSibling : parent.firstChild);\r\n        },\r\n        after: function(/*...nodes*/) {\r\n            var nodes = [].slice.call(arguments);\r\n            var parent = this.parentNode;\r\n            if (!parent) return;\r\n            var viableNextSibling = this.nextSibling;\r\n            while (nodes.indexOf(viableNextSibling) !== -1)\r\n                viableNextSibling = viableNextSibling.nextSibling;\r\n            var node = convertNodesIntoANode(nodes);\r\n            parent.insertBefore(node, viableNextSibling);\r\n        },\r\n        replaceWith: function(/*...nodes*/) {\r\n            var nodes = [].slice.call(arguments);\r\n            var parent = this.parentNode;\r\n            if (!parent) return;\r\n            var viableNextSibling = this.nextSibling;\r\n            while (nodes.indexOf(viableNextSibling) !== -1)\r\n                viableNextSibling = viableNextSibling.nextSibling;\r\n            var node = convertNodesIntoANode(nodes);\r\n\r\n            if (this.parentNode === parent)\r\n                parent.replaceChild(node, this);\r\n            else\r\n                parent.insertBefore(node, viableNextSibling);\r\n        },\r\n        remove: function() {\r\n            if (!this.parentNode) return;\r\n            this.parentNode.removeChild(this);\r\n        }\r\n    };\r\n\r\n    mixin(global.DocumentType, ChildNode);\r\n    mixin(global.Element, ChildNode);\r\n    mixin(global.CharacterData, ChildNode);\r\n\r\n}(self));","!function(a,b){\"function\"==typeof define&&define.amd?define([],function(){return a.returnExportsGlobal=b()}):\"object\"==typeof exports?module.exports=b():a.ResizeSensor=b()}(this,function(){var a=function(){\"use strict\";function a(){this.q=[],this.add=function(a){this.q.push(a)};var a,b;this.call=function(){for(a=0,b=this.q.length;b>a;a++)this.q[a].call()}}function b(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function c(c,e){if(c.resizedAttached){if(c.resizedAttached)return void c.resizedAttached.add(e)}else c.resizedAttached=new a,c.resizedAttached.add(e);c.resizeSensor=document.createElement(\"div\"),c.resizeSensor.className=\"resize-sensor\";var f=\"position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden; opacity: 0;\",g=\"position: absolute; left: 0; top: 0; transition: 0s;\";c.resizeSensor.style.cssText=f,c.resizeSensor.innerHTML='<div class=\"resize-sensor-expand\" style=\"'+f+'\"><div style=\"'+g+'\"></div></div><div class=\"resize-sensor-shrink\" style=\"'+f+'\"><div style=\"'+g+' width: 200%; height: 200%\"></div></div>',c.appendChild(c.resizeSensor),\"static\"==b(c,\"position\")&&(c.style.position=\"relative\");var h=c.resizeSensor.childNodes[0],i=h.childNodes[0],j=c.resizeSensor.childNodes[1],k=function(){i.style.width=1e5+\"px\",i.style.height=1e5+\"px\",h.scrollLeft=1e5,h.scrollTop=1e5,j.scrollLeft=1e5,j.scrollTop=1e5};k();var l=!1,m=function(){c.resizedAttached&&(l&&(c.resizedAttached.call(),l=!1),d(m))};d(m);var n,o,p,q,r=function(){((p=c.offsetWidth)!=n||(q=c.offsetHeight)!=o)&&(l=!0,n=p,o=q),k()},s=function(a,b,c){a.attachEvent?a.attachEvent(\"on\"+b,c):a.addEventListener(b,c)};s(h,\"scroll\",r),s(j,\"scroll\",r)}var d=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},e=function(a,b){var d=this,e=Object.prototype.toString.call(a),f=d._isCollectionTyped=\"[object Array]\"===e||\"[object NodeList]\"===e||\"[object HTMLCollection]\"===e||\"undefined\"!=typeof jQuery&&a instanceof window.jQuery||\"undefined\"!=typeof Elements&&a instanceof window.Elements;if(d._element=a,f)for(var g=0,h=a.length;h>g;g++)c(a[g],b);else c(a,b)};return e.prototype.detach=function(){var a=this,b=a._isCollectionTyped,c=a._element;if(b)for(var d=0,f=c.length;f>d;d++)e.detach(c[d]);else e.detach(c)},e.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)},e}();return a});","!function(n,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define(\"underscore\",r):(n=\"undefined\"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){\r\n    //     Underscore.js 1.13.1\r\n    //     https://underscorejs.org\r\n    //     (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\r\n    //     Underscore may be freely distributed under the MIT license.\r\n    var n=\"1.13.1\",r=\"object\"==typeof self&&self.self===self&&self||\"object\"==typeof global&&global.global===global&&global||Function(\"return this\")()||{},t=Array.prototype,e=Object.prototype,u=\"undefined\"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c=\"undefined\"!=typeof ArrayBuffer,l=\"undefined\"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable(\"toString\"),b=[\"valueOf\",\"isPrototypeOf\",\"toString\",\"propertyIsEnumerable\",\"hasOwnProperty\",\"toLocaleString\"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u<t;u++)e[u]=arguments[u+r];switch(r){case 0:return n.call(this,e);case 1:return n.call(this,arguments[0],e);case 2:return n.call(this,arguments[0],arguments[1],e)}var o=Array(r+1);for(u=0;u<r;u++)o[u]=arguments[u];return o[r]=e,n.apply(this,o)}}function _(n){var r=typeof n;return\"function\"===r||\"object\"===r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||\"[object Boolean]\"===a.call(n)}function x(n){var r=\"[object \"+n+\"]\";return function(n){return a.call(n)===r}}var S=x(\"String\"),O=x(\"Number\"),M=x(\"Date\"),E=x(\"RegExp\"),B=x(\"Error\"),N=x(\"Symbol\"),I=x(\"ArrayBuffer\"),T=x(\"Function\"),k=r.document&&r.document.childNodes;\"function\"!=typeof/./&&\"object\"!=typeof Int8Array&&\"function\"!=typeof k&&(T=function(n){return\"function\"==typeof n||!1});var D=T,R=x(\"Object\"),F=l&&R(new DataView(new ArrayBuffer(8))),V=\"undefined\"!=typeof Map&&R(new Map),P=x(\"DataView\");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=s||x(\"Array\");function W(n,r){return null!=n&&f.call(n,r)}var z=x(\"Arguments\");!function(){z(arguments)||(z=function(n){return W(n,\"callee\")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(n){return function(r){var t=n(r);return\"number\"==typeof t&&t>=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J(\"byteLength\"),H=K(G),Q=/\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J(\"length\");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]]=!0;return{contains:function(n){return r[n]},push:function(t){return r[t]=!0,n.push(t)}}}(r);var t=b.length,u=n.constructor,o=D(u)&&u.prototype||e,i=\"constructor\";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==o[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in n)W(n,t)&&r.push(t);return g&&Z(n,r),r}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.value=function(){return this._wrapped},tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value,tn.prototype.toString=function(){return String(this._wrapped)};var un=\"[object DataView]\";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var o=typeof n;return(\"function\"===o||\"object\"===o||\"object\"==typeof r)&&function n(r,t,e,o){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=a.call(r);if(i!==a.call(t))return!1;if(F&&\"[object Object]\"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case\"[object RegExp]\":case\"[object String]\":return\"\"+r==\"\"+t;case\"[object Number]\":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case\"[object Date]\":case\"[object Boolean]\":return+r==+t;case\"[object Symbol]\":return u.valueOf.call(r)===u.valueOf.call(t);case\"[object ArrayBuffer]\":case un:return n(en(r),en(t),e,o)}var f=\"[object Array]\"===i;if(!f&&X(r)){if(G(r)!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;f=!0}if(!f){if(\"object\"!=typeof r||\"object\"!=typeof t)return!1;var c=r.constructor,l=t.constructor;if(c!==l&&!(D(c)&&c instanceof c&&D(l)&&l instanceof l)&&\"constructor\"in r&&\"constructor\"in t)return!1}o=o||[];var s=(e=e||[]).length;for(;s--;)if(e[s]===r)return o[s]===t;if(e.push(r),o.push(t),f){if((s=r.length)!==t.length)return!1;for(;s--;)if(!on(r[s],t[s],e,o))return!1}else{var p,v=nn(r);if(s=v.length,nn(t).length!==s)return!1;for(;s--;)if(p=v[s],!W(t,p)||!on(r[p],t[p],e,o))return!1}return e.pop(),o.pop(),!0}(n,r,t,e)}function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);return g&&Z(n,r),r}function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=an(t);if(Y(e))return!1;for(var u=0;u<r;u++)if(!D(t[n[u]]))return!1;return n!==hn||!D(t[cn])}}var cn=\"forEach\",ln=\"has\",sn=[\"clear\",\"delete\"],pn=[\"get\",ln,\"set\"],vn=sn.concat(cn,pn),hn=sn.concat(pn),yn=[\"add\"].concat(sn,cn,ln),dn=V?fn(vn):x(\"Map\"),gn=V?fn(hn):x(\"WeakMap\"),bn=V?fn(yn):x(\"Set\"),mn=x(\"WeakSet\");function jn(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e}function _n(n){for(var r={},t=nn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r}function wn(n){var r=[];for(var t in n)D(n[t])&&r.push(t);return r.sort()}function An(n,r){return function(t){var e=arguments.length;if(r&&(t=Object(t)),e<2||null==t)return t;for(var u=1;u<e;u++)for(var o=arguments[u],i=n(o),a=i.length,f=0;f<a;f++){var c=i[f];r&&void 0!==t[c]||(t[c]=o[c])}return t}}var xn=An(an),Sn=An(nn),On=An(an,!0);function Mn(n){if(!_(n))return{};if(v)return v(n);var r=function(){};r.prototype=n;var t=new r;return r.prototype=null,t}function En(n){return _(n)?U(n)?n.slice():xn({},n):n}function Bn(n){return U(n)?n:[n]}function Nn(n){return tn.toPath(n)}function In(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0}function Tn(n,r,t){var e=In(n,Nn(r));return w(e)?t:e}function kn(n){return n}function Dn(n){return n=Sn({},n),function(r){return rn(r,n)}}function Rn(n){return n=Nn(n),function(r){return In(r,n)}}function Fn(n,r,t){if(void 0===r)return n;switch(null==t?3:t){case 1:return function(t){return n.call(r,t)};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return function(){return n.apply(r,arguments)}}function Vn(n,r,t){return null==n?kn:D(n)?Fn(n,r,t):_(n)&&!U(n)?Dn(n):Rn(n)}function Pn(n,r){return Vn(n,r,1/0)}function qn(n,r,t){return tn.iteratee!==Pn?tn.iteratee(n,r):Vn(n,r,t)}function Un(){}function Wn(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))}tn.toPath=Bn,tn.iteratee=Pn;var zn=Date.now||function(){return(new Date).getTime()};function Ln(n){var r=function(r){return n[r]},t=\"(?:\"+nn(n).join(\"|\")+\")\",e=RegExp(t),u=RegExp(t,\"g\");return function(n){return n=null==n?\"\":\"\"+n,e.test(n)?n.replace(u,r):n}}var $n={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#x27;\",\"`\":\"&#x60;\"},Cn=Ln($n),Kn=Ln(_n($n)),Jn=tn.templateSettings={evaluate:/<%([\\s\\S]+?)%>/g,interpolate:/<%=([\\s\\S]+?)%>/g,escape:/<%-([\\s\\S]+?)%>/g},Gn=/(.)^/,Hn={\"'\":\"'\",\"\\\\\":\"\\\\\",\"\\r\":\"r\",\"\\n\":\"n\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Qn=/\\\\|'|\\r|\\n|\\u2028|\\u2029/g;function Xn(n){return\"\\\\\"+Hn[n]}var Yn=/^\\s*(\\w|\\$)+\\s*$/;var Zn=0;function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var rr=j((function(n,r){var t=rr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a<o;a++)i[a]=r[a]===t?arguments[u++]:r[a];for(;u<arguments.length;)i.push(arguments[u++]);return nr(n,e,this,this,i)};return e}));rr.placeholder=tn;var tr=j((function(n,r,t){if(!D(n))throw new TypeError(\"Bind must be called on a function\");var e=j((function(u){return nr(n,e,r,this,t.concat(u))}));return e})),er=K(Y);function ur(n,r,t,e){if(e=e||[],r||0===r){if(r<=0)return e.concat(n)}else r=1/0;for(var u=e.length,o=0,i=Y(n);o<i;o++){var a=n[o];if(er(a)&&(U(a)||L(a)))if(r>1)ur(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f<c;)e[u++]=a[f++];else t||(e[u++]=a)}return e}var or=j((function(n,r){var t=(r=ur(r,!1,!1)).length;if(t<1)throw new Error(\"bindAll must be passed function names\");for(;t--;){var e=r[t];n[e]=tr(n[e],n)}return n}));var ir=j((function(n,r,t){return setTimeout((function(){return n.apply(null,t)}),r)})),ar=rr(ir,tn,1);function fr(n){return function(){return!n.apply(this,arguments)}}function cr(n,r){var t;return function(){return--n>0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var lr=rr(cr,2);function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o<i;o++)if(r(n[e=u[o]],e,n))return e}function pr(n){return function(r,t,e){t=qn(t,e);for(var u=Y(r),o=n>0?0:u-1;o>=0&&o<u;o+=n)if(t(r[o],o,r))return o;return-1}}var vr=pr(1),hr=pr(-1);function yr(n,r,t,e){for(var u=(t=qn(t,e,1))(r),o=0,i=Y(n);o<i;){var a=Math.floor((o+i)/2);t(n[a])<u?o=a+1:i=a}return o}function dr(n,r,t){return function(e,u,o){var a=0,f=Y(e);if(\"number\"==typeof o)n>0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o<f;o+=n)if(e[o]===u)return o;return-1}}var gr=dr(1,vr,yr),br=dr(-1,hr);function mr(n,r,t){var e=(er(n)?vr:sr)(n,r,t);if(void 0!==e&&-1!==e)return n[e]}function jr(n,r,t){var e,u;if(r=Fn(r,t),er(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var o=nn(n);for(e=0,u=o.length;e<u;e++)r(n[o[e]],o[e],n)}return n}function _r(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=Array(u),i=0;i<u;i++){var a=e?e[i]:i;o[i]=r(n[a],a,n)}return o}function wr(n){var r=function(r,t,e,u){var o=!er(r)&&nn(r),i=(o||r).length,a=n>0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a<i;a+=n){var f=o?o[a]:a;e=t(e,r[f],f,r)}return e};return function(n,t,e,u){var o=arguments.length>=3;return r(n,Fn(t,u,4),e,o)}}var Ar=wr(1),xr=wr(-1);function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(!r(n[i],i,n))return!1}return!0}function Mr(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(r(n[i],i,n))return!0}return!1}function Er(n,r,t,e){return er(n)||(n=jn(n)),(\"number\"!=typeof t||e)&&(t=0),gr(n,r,t)>=0}var Br=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),_r(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Nr(n,r){return _r(n,Rn(r))}function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||\"number\"==typeof r&&\"object\"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e>o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1)];var e=er(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i<r;i++){var a=Wn(i,o),f=e[i];e[i]=e[a],e[a]=f}return e.slice(0,r)}function kr(n,r){return function(t,e,u){var o=r?[[],[]]:{};return e=qn(e,u),jr(t,(function(r,u){var i=e(r,u,t);n(o,r,i)})),o}}var Dr=kr((function(n,r,t){W(n,t)?n[t].push(r):n[t]=[r]})),Rr=kr((function(n,r,t){n[t]=r})),Fr=kr((function(n,r,t){W(n,t)?n[t]++:n[t]=1})),Vr=kr((function(n,r,t){n[t?0:1].push(r)}),!0),Pr=/[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;function qr(n,r,t){return r in t}var Ur=j((function(n,r){var t={},e=r[0];if(null==n)return t;D(e)?(r.length>1&&(e=Fn(e,r[1])),r=an(n)):(e=qr,r=ur(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u<o;u++){var i=r[u],a=n[i];e(a,i,n)&&(t[i]=a)}return t})),Wr=j((function(n,r){var t,e=r[0];return D(e)?(e=fr(e),r.length>1&&(t=r[1])):(r=_r(ur(r,!1,!1),String),e=function(n,t){return!Er(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=ur(r,!0,!0),Sr(n,(function(n){return!Er(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);i<a;i++){var f=n[i],c=t?t(f,i,n):f;r&&!t?(i&&o===c||u.push(f),o=c):t?Er(o,c)||(o.push(c),u.push(f)):Er(u,f)||u.push(f)}return u}var Gr=j((function(n){return Jr(ur(n,!0,!0))}));function Hr(n){for(var r=n&&Ir(n,Y).length||0,t=Array(r),e=0;e<r;e++)t[e]=Nr(n,e);return t}var Qr=j(Hr);function Xr(n,r){return n._chain?tn(r).chain():r}function Yr(n){return jr(wn(n),(function(r){var t=tn[r]=n[r];tn.prototype[r]=function(){var n=[this._wrapped];return o.apply(n,arguments),Xr(this,t.apply(tn,n))}})),tn}jr([\"pop\",\"push\",\"reverse\",\"shift\",\"sort\",\"splice\",\"unshift\"],(function(n){var r=t[n];tn.prototype[n]=function(){var t=this._wrapped;return null!=t&&(r.apply(t,arguments),\"shift\"!==n&&\"splice\"!==n||0!==t.length||delete t[0]),Xr(this,t)}})),jr([\"concat\",\"join\",\"slice\"],(function(n){var r=t[n];tn.prototype[n]=function(){var n=this._wrapped;return null!=n&&(n=r.apply(n,arguments)),Xr(this,n)}}));var Zr=Yr({__proto__:null,VERSION:n,restArguments:j,isObject:_,isNull:function(n){return null===n},isUndefined:w,isBoolean:A,isElement:function(n){return!(!n||1!==n.nodeType)},isString:S,isNumber:O,isDate:M,isRegExp:E,isError:B,isSymbol:N,isArrayBuffer:I,isDataView:q,isArray:U,isFunction:D,isArguments:L,isFinite:function(n){return!N(n)&&d(n)&&!isNaN(parseFloat(n))},isNaN:$,isTypedArray:X,isEmpty:function(n){if(null==n)return!0;var r=Y(n);return\"number\"==typeof r&&(U(n)||S(n)||L(n))?0===r:0===Y(nn(n))},isMatch:rn,isEqual:function(n,r){return on(n,r)},isMap:dn,isWeakMap:gn,isSet:bn,isWeakSet:mn,keys:nn,allKeys:an,values:jn,pairs:function(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},invert:_n,functions:wn,methods:wn,extend:xn,extendOwn:Sn,assign:Sn,defaults:On,create:function(n,r){var t=Mn(n);return r&&Sn(t,r),t},clone:En,tap:function(n,r){return r(n),n},get:Tn,has:function(n,r){for(var t=(r=Nn(r)).length,e=0;e<t;e++){var u=r[e];if(!W(n,u))return!1;n=n[u]}return!!t},mapObject:function(n,r,t){r=qn(r,t);for(var e=nn(n),u=e.length,o={},i=0;i<u;i++){var a=e[i];o[a]=r(n[a],a,n)}return o},identity:kn,constant:C,noop:Un,toPath:Bn,property:Rn,propertyOf:function(n){return null==n?Un:function(r){return Tn(n,r)}},matcher:Dn,matches:Dn,times:function(n,r,t){var e=Array(Math.max(0,n));r=Fn(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},random:Wn,now:zn,escape:Cn,unescape:Kn,templateSettings:Jn,template:function(n,r,t){!r&&t&&(r=t),r=On({},r,tn.templateSettings);var e=RegExp([(r.escape||Gn).source,(r.interpolate||Gn).source,(r.evaluate||Gn).source].join(\"|\")+\"|$\",\"g\"),u=0,o=\"__p+='\";n.replace(e,(function(r,t,e,i,a){return o+=n.slice(u,a).replace(Qn,Xn),u=a+r.length,t?o+=\"'+\\n((__t=(\"+t+\"))==null?'':_.escape(__t))+\\n'\":e?o+=\"'+\\n((__t=(\"+e+\"))==null?'':__t)+\\n'\":i&&(o+=\"';\\n\"+i+\"\\n__p+='\"),r})),o+=\"';\\n\";var i,a=r.variable;if(a){if(!Yn.test(a))throw new Error(\"variable is not a bare identifier: \"+a)}else o=\"with(obj||{}){\\n\"+o+\"}\\n\",a=\"obj\";o=\"var __t,__p='',__j=Array.prototype.join,\"+\"print=function(){__p+=__j.call(arguments,'');};\\n\"+o+\"return __p;\\n\";try{i=new Function(a,\"_\",o)}catch(n){throw n.source=o,n}var f=function(n){return i.call(this,n,tn)};return f.source=\"function(\"+a+\"){\\n\"+o+\"}\",f},result:function(n,r,t){var e=(r=Nn(r)).length;if(!e)return D(t)?t.call(n):t;for(var u=0;u<e;u++){var o=null==n?void 0:n[r[u]];void 0===o&&(o=t,u=e),n=D(o)?o.call(n):o}return n},uniqueId:function(n){var r=++Zn+\"\";return n?n+r:r},chain:function(n){var r=tn(n);return r._chain=!0,r},iteratee:Pn,partial:rr,bind:tr,bindAll:or,memoize:function(n,r){var t=function(e){var u=t.cache,o=\"\"+(r?r.apply(this,arguments):e);return W(u,o)||(u[o]=n.apply(this,arguments)),u[o]};return t.cache={},t},delay:ir,defer:ar,throttle:function(n,r,t){var e,u,o,i,a=0;t||(t={});var f=function(){a=!1===t.leading?0:zn(),e=null,i=n.apply(u,o),e||(u=o=null)},c=function(){var c=zn();a||!1!==t.leading||(a=c);var l=r-(c-a);return u=this,o=arguments,l<=0||l>r?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=zn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=zn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return rr(r,n)},negate:fr,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:cr,once:lr,findKey:sr,findIndex:vr,findLastIndex:hr,sortedIndex:yr,indexOf:gr,lastIndexOf:br,find:mr,detect:mr,findWhere:function(n,r){return mr(n,Dn(r))},each:jr,forEach:jr,map:_r,collect:_r,reduce:Ar,foldl:Ar,inject:Ar,reduceRight:xr,foldr:xr,filter:Sr,select:Sr,reject:function(n,r,t){return Sr(n,fr(qn(r)),t)},every:Or,all:Or,some:Mr,any:Mr,contains:Er,includes:Er,include:Er,invoke:Br,pluck:Nr,where:function(n,r){return Sr(n,Dn(r))},max:Ir,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||\"number\"==typeof r&&\"object\"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e<o&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))<i||u===1/0&&o===1/0)&&(o=n,i=u)}));return o},shuffle:function(n){return Tr(n,1/0)},sample:Tr,sortBy:function(n,r,t){var e=0;return r=qn(r,t),Nr(_r(n,(function(n,t,u){return{value:n,index:e++,criteria:r(n,t,u)}})).sort((function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(t>e||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index})),\"value\")},groupBy:Dr,indexBy:Rr,countBy:Fr,partition:Vr,toArray:function(n){return n?U(n)?i.call(n):S(n)?n.match(Pr):er(n)?_r(n,kn):jn(n):[]},size:function(n){return null==n?0:er(n)?n.length:nn(n).length},pick:Ur,omit:Wr,first:Lr,head:Lr,take:Lr,initial:zr,last:function(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[n.length-1]:$r(n,Math.max(0,n.length-r))},rest:$r,tail:$r,drop:$r,compact:function(n){return Sr(n,Boolean)},flatten:function(n,r){return ur(n,r,!1)},without:Kr,uniq:Jr,unique:Jr,union:Gr,intersection:function(n){for(var r=[],t=arguments.length,e=0,u=Y(n);e<u;e++){var o=n[e];if(!Er(r,o)){var i;for(i=1;i<t&&Er(arguments[i],o);i++);i===t&&r.push(o)}}return r},difference:Cr,unzip:Hr,transpose:Hr,zip:Qr,object:function(n,r){for(var t={},e=0,u=Y(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t},range:function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),o=0;o<e;o++,n+=t)u[o]=n;return u},chunk:function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(i.call(n,e,e+=r));return t},mixin:Yr,default:tn});return Zr._=Zr,Zr}));","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n  if (isConstructor(argument)) return argument;\n  throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n  if (typeof argument == 'object' || isCallable(argument)) return argument;\n  throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? charAt(S, index).length : 1);\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n  if (isPrototypeOf(Prototype, it)) return it;\n  throw TypeError('Incorrect invocation');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw TypeError(String(argument) + ' is not an object');\n};\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n  if (typeof ArrayBuffer == 'function') {\n    var buffer = new ArrayBuffer(8);\n    // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n    if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n  }\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n  throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n      delete TypedArrayConstructor.prototype[KEY];\n    } catch (error) {\n      // old WebKit bug - some methods are non-configurable\n      try {\n        TypedArrayConstructor.prototype[KEY] = property;\n      } catch (error2) { /* empty */ }\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    redefine(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n        delete TypedArrayConstructor[KEY];\n      } catch (error) { /* empty */ }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      redefine(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n  else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow -- safe\n  TypedArray = function TypedArray() {\n    throw TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQUIRED = true;\n  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  } });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n  return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n  return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n  return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n  return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n  defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n  var intIndex = toIndex(index);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = arraySlice(bytes, start, start + count);\n  return isLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n  var intIndex = toIndex(index);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = conversion(+value);\n  for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n  $ArrayBuffer = function ArrayBuffer(length) {\n    anInstance(this, ArrayBufferPrototype);\n    var byteLength = toIndex(length);\n    setInternalState(this, {\n      bytes: fill(Array(byteLength), 0),\n      byteLength: byteLength\n    });\n    if (!DESCRIPTORS) this.byteLength = byteLength;\n  };\n\n  ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n  $DataView = function DataView(buffer, byteOffset, byteLength) {\n    anInstance(this, DataViewPrototype);\n    anInstance(buffer, ArrayBufferPrototype);\n    var bufferLength = getInternalState(buffer).byteLength;\n    var offset = toIntegerOrInfinity(byteOffset);\n    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n    setInternalState(this, {\n      buffer: buffer,\n      byteLength: byteLength,\n      byteOffset: offset\n    });\n    if (!DESCRIPTORS) {\n      this.buffer = buffer;\n      this.byteLength = byteLength;\n      this.byteOffset = offset;\n    }\n  };\n\n  DataViewPrototype = $DataView[PROTOTYPE];\n\n  if (DESCRIPTORS) {\n    addGetter($ArrayBuffer, 'byteLength');\n    addGetter($DataView, 'buffer');\n    addGetter($DataView, 'byteLength');\n    addGetter($DataView, 'byteOffset');\n  }\n\n  redefineAll(DataViewPrototype, {\n    getInt8: function getInt8(byteOffset) {\n      return get(this, 1, byteOffset)[0] << 24 >> 24;\n    },\n    getUint8: function getUint8(byteOffset) {\n      return get(this, 1, byteOffset)[0];\n    },\n    getInt16: function getInt16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n    },\n    getUint16: function getUint16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return bytes[1] << 8 | bytes[0];\n    },\n    getInt32: function getInt32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n    },\n    getUint32: function getUint32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n    },\n    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n    },\n    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n    },\n    setInt8: function setInt8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n      set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n    }\n  });\n} else {\n  var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n  /* eslint-disable no-new -- required for testing */\n  if (!fails(function () {\n    NativeArrayBuffer(1);\n  }) || !fails(function () {\n    new NativeArrayBuffer(-1);\n  }) || fails(function () {\n    new NativeArrayBuffer();\n    new NativeArrayBuffer(1.5);\n    new NativeArrayBuffer(NaN);\n    return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n  })) {\n  /* eslint-enable no-new -- required for testing */\n    $ArrayBuffer = function ArrayBuffer(length) {\n      anInstance(this, ArrayBufferPrototype);\n      return new NativeArrayBuffer(toIndex(length));\n    };\n\n    $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n    for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n      if (!((key = keys[j++]) in $ArrayBuffer)) {\n        createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n      }\n    }\n\n    ArrayBufferPrototype.constructor = $ArrayBuffer;\n  } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n    createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n  }\n\n  // WebKit bug - the same parent prototype for typed arrays and data view\n  if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n    setPrototypeOf(DataViewPrototype, ObjectPrototype);\n  }\n\n  // iOS Safari 7.x bug\n  var testView = new $DataView(new $ArrayBuffer(2));\n  var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n  testView.setInt8(0, 2147483648);\n  testView.setInt8(1, 2147483649);\n  if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll(DataViewPrototype, {\n    setInt8: function setInt8(byteOffset, value) {\n      $setInt8(this, byteOffset, value << 24 >> 24);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      $setInt8(this, byteOffset, value << 24 >> 24);\n    }\n  }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n  ArrayBuffer: $ArrayBuffer,\n  DataView: $DataView\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n  var O = toObject(this);\n  var len = lengthOfArrayLike(O);\n  var to = toAbsoluteIndex(target, len);\n  var from = toAbsoluteIndex(start, len);\n  var end = arguments.length > 2 ? arguments[2] : undefined;\n  var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n  var inc = 1;\n  if (from < to && to < from + count) {\n    inc = -1;\n    from += count - 1;\n    to += count - 1;\n  }\n  while (count-- > 0) {\n    if (from in O) O[to] = O[from];\n    else delete O[to];\n    to += inc;\n    from += inc;\n  } return O;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n  var O = toObject(this);\n  var length = lengthOfArrayLike(O);\n  var argumentsLength = arguments.length;\n  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n  var end = argumentsLength > 2 ? arguments[2] : undefined;\n  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n  while (endPos > index) O[index++] = value;\n  return O;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n  var index = 0;\n  var length = lengthOfArrayLike(list);\n  var result = new Constructor(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var IS_CONSTRUCTOR = isConstructor(this);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = getIterator(O, iteratorMethod);\n    next = iterator.next;\n    result = IS_CONSTRUCTOR ? new this() : [];\n    for (;!(step = call(next, iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = lengthOfArrayLike(O);\n    result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var IS_FILTER_REJECT = TYPE == 7;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that);\n    var length = lengthOfArrayLike(self);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push(target, value);      // filter\n        } else switch (TYPE) {\n          case 4: return false;             // every\n          case 7: push(target, value);      // filterReject\n        }\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.es/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.es/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.es/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.es/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.es/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.es/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6),\n  // `Array.prototype.filterReject` method\n  // https://github.com/tc39/proposal-array-filtering\n  filterReject: createMethod(7)\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n  // convert -0 to +0\n  if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n  var O = toIndexedObject(this);\n  var length = lengthOfArrayLike(O);\n  var index = length - 1;\n  if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n  if (index < 0) index = length + index;\n  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n  return -1;\n} : $lastIndexOf;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n  var method = [][METHOD_NAME];\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n    method.call(null, argument || function () { throw 1; }, 1);\n  });\n};\n","var global = require('../internals/global');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar TypeError = global.TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n  return function (that, callbackfn, argumentsLength, memo) {\n    aCallable(callbackfn);\n    var O = toObject(that);\n    var self = IndexedObject(O);\n    var length = lengthOfArrayLike(O);\n    var index = IS_RIGHT ? length - 1 : 0;\n    var i = IS_RIGHT ? -1 : 1;\n    if (argumentsLength < 2) while (true) {\n      if (index in self) {\n        memo = self[index];\n        index += i;\n        break;\n      }\n      index += i;\n      if (IS_RIGHT ? index < 0 : length <= index) {\n        throw TypeError('Reduce of empty array with no initial value');\n      }\n    }\n    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n      memo = callbackfn(memo, self[index], index, O);\n    }\n    return memo;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.reduce` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduce\n  left: createMethod(false),\n  // `Array.prototype.reduceRight` method\n  // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n  right: createMethod(true)\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n  var length = lengthOfArrayLike(O);\n  var k = toAbsoluteIndex(start, length);\n  var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n  var result = Array(max(fin - k, 0));\n  for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n  result.length = n;\n  return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n  var length = array.length;\n  var middle = floor(length / 2);\n  return length < 8 ? insertionSort(array, comparefn) : merge(\n    array,\n    mergeSort(arraySlice(array, 0, middle), comparefn),\n    mergeSort(arraySlice(array, middle), comparefn),\n    comparefn\n  );\n};\n\nvar insertionSort = function (array, comparefn) {\n  var length = array.length;\n  var i = 1;\n  var element, j;\n\n  while (i < length) {\n    j = i;\n    element = array[i];\n    while (j && comparefn(array[j - 1], element) > 0) {\n      array[j] = array[--j];\n    }\n    if (j !== i++) array[j] = element;\n  } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n  var llength = left.length;\n  var rlength = right.length;\n  var lindex = 0;\n  var rindex = 0;\n\n  while (lindex < llength || rindex < rlength) {\n    array[lindex + rindex] = (lindex < llength && rindex < rlength)\n      ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n      : lindex < llength ? left[lindex++] : right[rindex++];\n  } return array;\n};\n\nmodule.exports = mergeSort;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var itoc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar ctoi = {};\n\nfor (var index = 0; index < 66; index++) ctoi[itoc.charAt(index)] = index;\n\nmodule.exports = {\n  itoc: itoc,\n  ctoi: ctoi\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (error) {\n    iteratorClose(iterator, 'throw', error);\n  }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n  if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string') {\n    while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n  } return stack;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var Constructor = wrapper(function (that, iterable) {\n      anInstance(that, Prototype);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        index: create(null),\n        first: undefined,\n        last: undefined,\n        size: 0\n      });\n      if (!DESCRIPTORS) that.size = 0;\n      if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n    });\n\n    var Prototype = Constructor.prototype;\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var entry = getEntry(that, key);\n      var previous, index;\n      // change existing entry\n      if (entry) {\n        entry.value = value;\n      // create new entry\n      } else {\n        state.last = entry = {\n          index: index = fastKey(key, true),\n          key: key,\n          value: value,\n          previous: previous = state.last,\n          next: undefined,\n          removed: false\n        };\n        if (!state.first) state.first = entry;\n        if (previous) previous.next = entry;\n        if (DESCRIPTORS) state.size++;\n        else that.size++;\n        // add to index\n        if (index !== 'F') state.index[index] = entry;\n      } return that;\n    };\n\n    var getEntry = function (that, key) {\n      var state = getInternalState(that);\n      // fast case\n      var index = fastKey(key);\n      var entry;\n      if (index !== 'F') return state.index[index];\n      // frozen object case\n      for (entry = state.first; entry; entry = entry.next) {\n        if (entry.key == key) return entry;\n      }\n    };\n\n    redefineAll(Prototype, {\n      // `{ Map, Set }.prototype.clear()` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.clear\n      // https://tc39.es/ecma262/#sec-set.prototype.clear\n      clear: function clear() {\n        var that = this;\n        var state = getInternalState(that);\n        var data = state.index;\n        var entry = state.first;\n        while (entry) {\n          entry.removed = true;\n          if (entry.previous) entry.previous = entry.previous.next = undefined;\n          delete data[entry.index];\n          entry = entry.next;\n        }\n        state.first = state.last = undefined;\n        if (DESCRIPTORS) state.size = 0;\n        else that.size = 0;\n      },\n      // `{ Map, Set }.prototype.delete(key)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.delete\n      // https://tc39.es/ecma262/#sec-set.prototype.delete\n      'delete': function (key) {\n        var that = this;\n        var state = getInternalState(that);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.next;\n          var prev = entry.previous;\n          delete state.index[entry.index];\n          entry.removed = true;\n          if (prev) prev.next = next;\n          if (next) next.previous = prev;\n          if (state.first == entry) state.first = next;\n          if (state.last == entry) state.last = prev;\n          if (DESCRIPTORS) state.size--;\n          else that.size--;\n        } return !!entry;\n      },\n      // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.foreach\n      // https://tc39.es/ecma262/#sec-set.prototype.foreach\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        var state = getInternalState(this);\n        var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n        var entry;\n        while (entry = entry ? entry.next : state.first) {\n          boundFunction(entry.value, entry.key, this);\n          // revert to the last existing entry\n          while (entry && entry.removed) entry = entry.previous;\n        }\n      },\n      // `{ Map, Set}.prototype.has(key)` methods\n      // https://tc39.es/ecma262/#sec-map.prototype.has\n      // https://tc39.es/ecma262/#sec-set.prototype.has\n      has: function has(key) {\n        return !!getEntry(this, key);\n      }\n    });\n\n    redefineAll(Prototype, IS_MAP ? {\n      // `Map.prototype.get(key)` method\n      // https://tc39.es/ecma262/#sec-map.prototype.get\n      get: function get(key) {\n        var entry = getEntry(this, key);\n        return entry && entry.value;\n      },\n      // `Map.prototype.set(key, value)` method\n      // https://tc39.es/ecma262/#sec-map.prototype.set\n      set: function set(key, value) {\n        return define(this, key === 0 ? 0 : key, value);\n      }\n    } : {\n      // `Set.prototype.add(value)` method\n      // https://tc39.es/ecma262/#sec-set.prototype.add\n      add: function add(value) {\n        return define(this, value = value === 0 ? 0 : value, value);\n      }\n    });\n    if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n      get: function () {\n        return getInternalState(this).size;\n      }\n    });\n    return Constructor;\n  },\n  setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n    var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n    var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n    var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n    // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n    // https://tc39.es/ecma262/#sec-map.prototype.entries\n    // https://tc39.es/ecma262/#sec-map.prototype.keys\n    // https://tc39.es/ecma262/#sec-map.prototype.values\n    // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n    // https://tc39.es/ecma262/#sec-set.prototype.entries\n    // https://tc39.es/ecma262/#sec-set.prototype.keys\n    // https://tc39.es/ecma262/#sec-set.prototype.values\n    // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n    defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n      setInternalState(this, {\n        type: ITERATOR_NAME,\n        target: iterated,\n        state: getInternalCollectionState(iterated),\n        kind: kind,\n        last: undefined\n      });\n    }, function () {\n      var state = getInternalIteratorState(this);\n      var kind = state.kind;\n      var entry = state.last;\n      // revert to the last existing entry\n      while (entry && entry.removed) entry = entry.previous;\n      // get next entry\n      if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n        // or finish the iteration\n        state.target = undefined;\n        return { value: undefined, done: true };\n      }\n      // return step by kind\n      if (kind == 'keys') return { value: entry.key, done: false };\n      if (kind == 'values') return { value: entry.value, done: false };\n      return { value: [entry.key, entry.value], done: false };\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // `{ Map, Set }.prototype[@@species]` accessors\n    // https://tc39.es/ecma262/#sec-get-map-@@species\n    // https://tc39.es/ecma262/#sec-get-set-@@species\n    setSpecies(CONSTRUCTOR_NAME);\n  }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n  return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n  this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n  return find(store.entries, function (it) {\n    return it[0] === key;\n  });\n};\n\nUncaughtFrozenStore.prototype = {\n  get: function (key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function (key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function (key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;\n    else this.entries.push([key, value]);\n  },\n  'delete': function (key) {\n    var index = findIndex(this.entries, function (it) {\n      return it[0] === key;\n    });\n    if (~index) splice(this.entries, index, 1);\n    return !!~index;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var Constructor = wrapper(function (that, iterable) {\n      anInstance(that, Prototype);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        id: id++,\n        frozen: undefined\n      });\n      if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n    });\n\n    var Prototype = Constructor.prototype;\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var data = getWeakData(anObject(key), true);\n      if (data === true) uncaughtFrozenStore(state).set(key, value);\n      else data[state.id] = value;\n      return that;\n    };\n\n    redefineAll(Prototype, {\n      // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n      // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n      'delete': function (key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n        return data && hasOwn(data, state.id) && delete data[state.id];\n      },\n      // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n      // https://tc39.es/ecma262/#sec-weakset.prototype.has\n      has: function has(key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state).has(key);\n        return data && hasOwn(data, state.id);\n      }\n    });\n\n    redefineAll(Prototype, IS_MAP ? {\n      // `WeakMap.prototype.get(key)` method\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n      get: function get(key) {\n        var state = getInternalState(this);\n        if (isObject(key)) {\n          var data = getWeakData(key);\n          if (data === true) return uncaughtFrozenStore(state).get(key);\n          return data ? data[state.id] : undefined;\n        }\n      },\n      // `WeakMap.prototype.set(key, value)` method\n      // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n      set: function set(key, value) {\n        return define(this, key, value);\n      }\n    } : {\n      // `WeakSet.prototype.add(value)` method\n      // https://tc39.es/ecma262/#sec-weakset.prototype.add\n      add: function add(value) {\n        return define(this, value, true);\n      }\n    });\n\n    return Constructor;\n  }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var NativeConstructor = global[CONSTRUCTOR_NAME];\n  var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n  var Constructor = NativeConstructor;\n  var exported = {};\n\n  var fixMethod = function (KEY) {\n    var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n    redefine(NativePrototype, KEY,\n      KEY == 'add' ? function add(value) {\n        uncurriedNativeMethod(this, value === 0 ? 0 : value);\n        return this;\n      } : KEY == 'delete' ? function (key) {\n        return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : KEY == 'get' ? function get(key) {\n        return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : KEY == 'has' ? function has(key) {\n        return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n      } : function set(key, value) {\n        uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n        return this;\n      }\n    );\n  };\n\n  var REPLACE = isForced(\n    CONSTRUCTOR_NAME,\n    !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n      new NativeConstructor().entries().next();\n    }))\n  );\n\n  if (REPLACE) {\n    // create collection constructor\n    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n    InternalMetadataModule.enable();\n  } else if (isForced(CONSTRUCTOR_NAME, true)) {\n    var instance = new Constructor();\n    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    // eslint-disable-next-line no-new -- required for testing\n    var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new NativeConstructor();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n\n    if (!ACCEPT_ITERABLES) {\n      Constructor = wrapper(function (dummy, iterable) {\n        anInstance(dummy, NativePrototype);\n        var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n        if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n        return that;\n      });\n      Constructor.prototype = NativePrototype;\n      NativePrototype.constructor = Constructor;\n    }\n\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n    // weak collections should not contains .clear method\n    if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n  }\n\n  exported[CONSTRUCTOR_NAME] = Constructor;\n  $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n  setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n  return Constructor;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n  var regexp = /./;\n  try {\n    '/./'[METHOD_NAME](regexp);\n  } catch (error1) {\n    try {\n      regexp[MATCH] = false;\n      return '/./'[METHOD_NAME](regexp);\n    } catch (error2) { /* empty */ }\n  } return false;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n  var S = toString(requireObjectCoercible(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPropertyKey(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar RangeError = global.RangeError;\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar n$DateToISOString = DatePrototype.toISOString;\nvar getTime = uncurryThis(DatePrototype.getTime);\nvar getUTCDate = uncurryThis(DatePrototype.getUTCDate);\nvar getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear);\nvar getUTCHours = uncurryThis(DatePrototype.getUTCHours);\nvar getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds);\nvar getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes);\nvar getUTCMonth = uncurryThis(DatePrototype.getUTCMonth);\nvar getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds);\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n  return n$DateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n  n$DateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n  if (!isFinite(getTime(this))) throw RangeError('Invalid time value');\n  var date = this;\n  var year = getUTCFullYear(date);\n  var milliseconds = getUTCMilliseconds(date);\n  var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n  return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n    '-' + padStart(getUTCMonth(date) + 1, 2, 0) +\n    '-' + padStart(getUTCDate(date), 2, 0) +\n    'T' + padStart(getUTCHours(date), 2, 0) +\n    ':' + padStart(getUTCMinutes(date), 2, 0) +\n    ':' + padStart(getUTCSeconds(date), 2, 0) +\n    '.' + padStart(milliseconds, 3, 0) +\n    'Z';\n} : n$DateToISOString;\n","'use strict';\nvar global = require('../internals/global');\nvar anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar TypeError = global.TypeError;\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n  anObject(this);\n  if (hint === 'string' || hint === 'default') hint = 'string';\n  else if (hint !== 'number') throw TypeError('Incorrect hint');\n  return ordinaryToPrimitive(this, hint);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n          redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n  if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n      createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n    } else {\n      INCORRECT_VALUES_NAME = true;\n      defaultIterator = function values() { return call(nativeIterator, this); };\n    }\n  }\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n  }\n  Iterators[NAME] = defaultIterator;\n\n  return methods;\n};\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","module.exports = {\n  IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n  DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n  HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n  WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n  InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n  NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n  NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n  NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n  NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n  InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n  InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n  SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n  InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n  NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n  InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n  ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n  TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n  SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n  NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n  AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n  URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n  QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n  TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n  InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n  DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","module.exports = typeof window == 'object';\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n  var error = Error('a');\n  if (!('stack' in error)) return true;\n  // eslint-disable-next-line es/no-object-defineproperty -- safe\n  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n  return error.stack !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n  if (DESCRIPTORS) {\n    // Chrome 32- incorrectly call accessor\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    var object = create(Object.defineProperty({}, 'name', { get: function () {\n      return this === object;\n    } }));\n    if (nativeErrorToString.call(object) !== 'true') return true;\n  }\n  // FF10- does not properly handle non-strings\n  return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n    // IE8 does not properly handle defaults\n    || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n  var O = anObject(this);\n  var name = normalizeStringArgument(O.name, 'Error');\n  var message = normalizeStringArgument(O.message);\n  return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n  options.name        - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n  var SYMBOL = wellKnownSymbol(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n\n    if (KEY === 'split') {\n      // We can't use real regex here since it causes deoptimization\n      // and serious performance degradation in V8\n      // https://github.com/zloirock/core-js/issues/306\n      re = {};\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n      re.flags = '';\n      re[SYMBOL] = /./[SYMBOL];\n    }\n\n    re.exec = function () { execCalled = true; return null; };\n\n    re[SYMBOL]('');\n    return !execCalled;\n  });\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    FORCED\n  ) {\n    var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n      var uncurriedNativeMethod = uncurryThis(nativeMethod);\n      var $exec = regexp.exec;\n      if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n          // The native String method already delegates to @@method (this\n          // polyfilled function), leasing to infinite recursion.\n          // We avoid it by directly calling the native @@method method.\n          return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n        }\n        return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n      }\n      return { done: false };\n    });\n\n    redefine(String.prototype, KEY, methods[0]);\n    redefine(RegExpPrototype, SYMBOL, methods[1]);\n  }\n\n  if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\n\nvar TypeError = global.TypeError;\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n  var targetIndex = start;\n  var sourceIndex = 0;\n  var mapFn = mapper ? bind(mapper, thisArg) : false;\n  var element, elementLen;\n\n  while (sourceIndex < sourceLen) {\n    if (sourceIndex in source) {\n      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n      if (depth > 0 && isArray(element)) {\n        elementLen = lengthOfArrayLike(element);\n        targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n      } else {\n        if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n        target[targetIndex] = element;\n      }\n\n      targetIndex++;\n    }\n    sourceIndex++;\n  }\n  return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n  return Object.isExtensible(Object.preventExtensions({}));\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n  aCallable(fn);\n  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  var test = (function () { /* empty */ }).bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar Function = global.Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n  if (!hasOwn(factories, argsLength)) {\n    for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n    factories[argsLength] = Function('C,a', 'return new C(' + join(list, ',') + ')');\n  } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? Function.bind : function bind(that /* , ...args */) {\n  var F = aCallable(this);\n  var Prototype = F.prototype;\n  var partArgs = arraySlice(arguments, 1);\n  var boundFunction = function bound(/* args... */) {\n    var args = concat(partArgs, arraySlice(arguments));\n    return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n  };\n  if (isObject(Prototype)) boundFunction.prototype = Prototype;\n  return boundFunction;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n  return fn && uncurryThis(fn);\n} : function (fn) {\n  return fn && function () {\n    return call.apply(fn, arguments);\n  };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return getMethod(it, ITERATOR)\n    || getMethod(it, '@@iterator')\n    || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n  var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n  if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n  throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return func == null ? undefined : aCallable(func);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n  var tailPos = position + matched.length;\n  var m = captures.length;\n  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n  if (namedCaptures !== undefined) {\n    namedCaptures = toObject(namedCaptures);\n    symbols = SUBSTITUTION_SYMBOLS;\n  }\n  return replace(replacement, symbols, function (match, ch) {\n    var capture;\n    switch (charAt(ch, 0)) {\n      case '$': return '$';\n      case '&': return matched;\n      case '`': return stringSlice(str, 0, position);\n      case \"'\": return stringSlice(str, tailPos);\n      case '<':\n        capture = namedCaptures[stringSlice(ch, 1, -1)];\n        break;\n      default: // \\d\\d?\n        var n = +ch;\n        if (n === 0) return match;\n        if (n > m) {\n          var f = floor(n / 10);\n          if (f === 0) return match;\n          if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n          return match;\n        }\n        capture = captures[n - 1];\n    }\n    return capture === undefined ? '' : capture;\n  });\n};\n","var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n  var console = global.console;\n  if (console && console.error) {\n    arguments.length == 1 ? console.error(a) : console.error(a, b);\n  }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar global = require('../internals/global');\n\nvar Array = global.Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n  var buffer = Array(bytes);\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n  var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n  var index = 0;\n  var exponent, mantissa, c;\n  number = abs(number);\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (number != number || number === Infinity) {\n    // eslint-disable-next-line no-self-compare -- NaN check\n    mantissa = number != number ? 1 : 0;\n    exponent = eMax;\n  } else {\n    exponent = floor(log(number) / LN2);\n    c = pow(2, -exponent);\n    if (number * c < 1) {\n      exponent--;\n      c *= 2;\n    }\n    if (exponent + eBias >= 1) {\n      number += rt / c;\n    } else {\n      number += rt * pow(2, 1 - eBias);\n    }\n    if (number * c >= 2) {\n      exponent++;\n      c /= 2;\n    }\n    if (exponent + eBias >= eMax) {\n      mantissa = 0;\n      exponent = eMax;\n    } else if (exponent + eBias >= 1) {\n      mantissa = (number * c - 1) * pow(2, mantissaLength);\n      exponent = exponent + eBias;\n    } else {\n      mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n      exponent = 0;\n    }\n  }\n  while (mantissaLength >= 8) {\n    buffer[index++] = mantissa & 255;\n    mantissa /= 256;\n    mantissaLength -= 8;\n  }\n  exponent = exponent << mantissaLength | mantissa;\n  exponentLength += mantissaLength;\n  while (exponentLength > 0) {\n    buffer[index++] = exponent & 255;\n    exponent /= 256;\n    exponentLength -= 8;\n  }\n  buffer[--index] |= sign * 128;\n  return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n  var bytes = buffer.length;\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var nBits = exponentLength - 7;\n  var index = bytes - 1;\n  var sign = buffer[index--];\n  var exponent = sign & 127;\n  var mantissa;\n  sign >>= 7;\n  while (nBits > 0) {\n    exponent = exponent * 256 + buffer[index--];\n    nBits -= 8;\n  }\n  mantissa = exponent & (1 << -nBits) - 1;\n  exponent >>= -nBits;\n  nBits += mantissaLength;\n  while (nBits > 0) {\n    mantissa = mantissa * 256 + buffer[index--];\n    nBits -= 8;\n  }\n  if (exponent === 0) {\n    exponent = 1 - eBias;\n  } else if (exponent === eMax) {\n    return mantissa ? NaN : sign ? -Infinity : Infinity;\n  } else {\n    mantissa = mantissa + pow(2, mantissaLength);\n    exponent = exponent - eBias;\n  } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n  pack: pack,\n  unpack: unpack\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    isCallable(NewTarget = dummy.constructor) &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n  if (isObject(options) && 'cause' in options) {\n    createNonEnumerableProperty(O, 'cause', options.cause);\n  }\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n  defineProperty(it, METADATA, { value: {\n    objectID: 'O' + id++, // object ID\n    weakData: {}          // weak collections IDs\n  } });\n};\n\nvar fastKey = function (it, create) {\n  // return a primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!hasOwn(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMetadata(it);\n  // return object ID\n  } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n  if (!hasOwn(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMetadata(it);\n  // return the store of weak collections IDs\n  } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n  return it;\n};\n\nvar enable = function () {\n  meta.enable = function () { /* empty */ };\n  REQUIRED = true;\n  var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n  var splice = uncurryThis([].splice);\n  var test = {};\n  test[METADATA] = 1;\n\n  // prevent exposing of metadata key\n  if (getOwnPropertyNames(test).length) {\n    getOwnPropertyNamesModule.f = function (it) {\n      var result = getOwnPropertyNames(it);\n      for (var i = 0, length = result.length; i < length; i++) {\n        if (result[i] === METADATA) {\n          splice(result, i, 1);\n          break;\n        }\n      } return result;\n    };\n\n    $({ target: 'Object', stat: true, forced: true }, {\n      getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n    });\n  }\n};\n\nvar meta = module.exports = {\n  enable: enable,\n  fastKey: fastKey,\n  getWeakData: getWeakData,\n  onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  var wmget = uncurryThis(store.get);\n  var wmhas = uncurryThis(store.has);\n  var wmset = uncurryThis(store.set);\n  set = function (it, metadata) {\n    if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    wmset(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n  return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n  return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  try {\n    construct(noop, empty, argument);\n    return true;\n  } catch (error) {\n    return false;\n  }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  switch (classof(argument)) {\n    case 'AsyncFunction':\n    case 'GeneratorFunction':\n    case 'AsyncGeneratorFunction': return false;\n  }\n  try {\n    // we can't check .prototype since constructors produced by .bind haven't it\n    // `Function#toString` throws on some built-it function in some legacy engines\n    // (for example, `DOMQuad` and similar in FF41-)\n    return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n  } catch (error) {\n    return true;\n  }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n  var called;\n  return isConstructorModern(isConstructorModern.call)\n    || !isConstructorModern(Object)\n    || !isConstructorModern(function () { called = true; })\n    || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n  return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n  var that = options && options.that;\n  var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n  var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n  var INTERRUPTED = !!(options && options.INTERRUPTED);\n  var fn = bind(unboundFunction, that);\n  var iterator, iterFn, index, length, result, next, step;\n\n  var stop = function (condition) {\n    if (iterator) iteratorClose(iterator, 'normal', condition);\n    return new Result(true, condition);\n  };\n\n  var callFn = function (value) {\n    if (AS_ENTRIES) {\n      anObject(value);\n      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n    } return INTERRUPTED ? fn(value, stop) : fn(value);\n  };\n\n  if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n        result = callFn(iterable[index]);\n        if (result && isPrototypeOf(ResultPrototype, result)) return result;\n      } return new Result(false);\n    }\n    iterator = getIterator(iterable, iterFn);\n  }\n\n  next = iterator.next;\n  while (!(step = call(next, iterator)).done) {\n    try {\n      result = callFn(step.value);\n    } catch (error) {\n      iteratorClose(iterator, 'throw', error);\n    }\n    if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n  } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n  var innerResult, innerError;\n  anObject(iterator);\n  try {\n    innerResult = getMethod(iterator, 'return');\n    if (!innerResult) {\n      if (kind === 'throw') throw value;\n      return value;\n    }\n    innerResult = call(innerResult, iterator);\n  } catch (error) {\n    innerError = true;\n    innerResult = error;\n  }\n  if (kind === 'throw') throw value;\n  if (innerError) throw innerResult;\n  anObject(innerResult);\n  return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n  redefine(IteratorPrototype, ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n","// eslint-disable-next-line es/no-math-expm1 -- safe\nvar $expm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.es/ecma262/#sec-math.expm1\nmodule.exports = (!$expm1\n  // Old FF bug\n  || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n  // Tor Browser bug\n  || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;\n} : $expm1;\n","var sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n  return n + 1 / EPSILON - 1 / EPSILON;\n};\n\n// `Math.fround` method implementation\n// https://tc39.es/ecma262/#sec-math.fround\n// eslint-disable-next-line es/no-math-fround -- safe\nmodule.exports = Math.fround || function fround(x) {\n  var $abs = abs(x);\n  var $sign = sign(x);\n  var a, result;\n  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n  a = (1 + EPSILON32 / EPSILON) * $abs;\n  result = a - (a - $abs);\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (result > MAX32 || result != result) return $sign * Infinity;\n  return $sign * result;\n};\n","var log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// eslint-disable-next-line es/no-math-log10 -- safe\nmodule.exports = Math.log10 || function log10(x) {\n  return log(x) * LOG10E;\n};\n","var log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.es/ecma262/#sec-math.log1p\n// eslint-disable-next-line es/no-math-log1p -- safe\nmodule.exports = Math.log1p || function log1p(x) {\n  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);\n};\n","// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n  flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (error) {\n        if (head) notify();\n        else last = undefined;\n        throw error;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n  if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true });\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    // workaround of WebKit ~ iOS Safari 10.1 bug\n    promise.constructor = Promise;\n    then = bind(promise.then, promise);\n    notify = function () {\n      then(flush);\n    };\n  // Node.js without promises\n  } else if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    // strange IE + webpack dev server bug - use .bind(global)\n    macrotask = bind(macrotask, global);\n    notify = function () {\n      macrotask(flush);\n    };\n  }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n  var task = { fn: fn, next: undefined };\n  if (last) last.next = task;\n  if (!head) {\n    head = task;\n    notify();\n  } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol();\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n  var url = new URL('b?a=1&b=2&c=3', 'http://a');\n  var searchParams = url.searchParams;\n  var result = '';\n  url.pathname = 'c%20d';\n  searchParams.forEach(function (value, key) {\n    searchParams['delete']('b');\n    result += key + value;\n  });\n  return (IS_PURE && !url.toJSON)\n    || !searchParams.sort\n    || url.href !== 'http://a/c%20d?a=1&c=3'\n    || searchParams.get('c') !== '3'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !searchParams[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('http://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('http://a#б').hash !== '#%D0%B1'\n    // fails in Chrome 66-\n    || result !== 'a1c3'\n    // throws in Safari\n    || new URL('http://x', undefined).host !== 'x';\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aCallable(resolve);\n  this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n  if (isRegExp(it)) {\n    throw TypeError(\"The method doesn't accept regular expressions\");\n  } return it;\n};\n","var global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n  return typeof it == 'number' && globalIsFinite(it);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar n$ParseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity\n  // MS Edge 18- broken with boxed symbols\n  || (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n  var trimmedString = trim(toString(string));\n  var result = n$ParseFloat(trimmedString);\n  return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : n$ParseFloat;\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n  // MS Edge 18- broken with boxed symbols\n  || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n  var S = trim(toString(string));\n  return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line es/no-symbol -- safe\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n    }\n  } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return $getOwnPropertyNames(it);\n  } catch (error) {\n    return arraySlice(windowNames);\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && classof(it) == 'Window'\n    ? getWindowNames(it)\n    : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  var object = toObject(O);\n  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n  var constructor = object.constructor;\n  if (isCallable(constructor) && object instanceof constructor) {\n    return constructor.prototype;\n  } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n  if (!isObject(it)) return false;\n  if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n  return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n  // This feature detection crashes old WebKit\n  // https://github.com/zloirock/core-js/issues/232\n  if (WEBKIT && WEBKIT < 535) return;\n  var key = Math.random();\n  // In FF throws only define methods\n  // eslint-disable-next-line no-undef, no-useless-call -- required for testing\n  __defineSetter__.call(null, key, function () { /* empty */ });\n  delete global[key];\n});\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n    setter(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n  return function (it) {\n    var O = toIndexedObject(it);\n    var keys = objectKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n    while (length > i) {\n      key = keys[i++];\n      if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n        push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n      }\n    }\n    return result;\n  };\n};\n\nmodule.exports = {\n  // `Object.entries` method\n  // https://tc39.es/ecma262/#sec-object.entries\n  entries: createMethod(true),\n  // `Object.values` method\n  // https://tc39.es/ecma262/#sec-object.values\n  values: createMethod(false)\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n","var Queue = function () {\n  this.head = null;\n  this.tail = null;\n};\n\nQueue.prototype = {\n  add: function (item) {\n    var entry = { item: item, next: null };\n    if (this.head) this.tail.next = entry;\n    else this.head = entry;\n    this.tail = entry;\n  },\n  get: function () {\n    var entry = this.head;\n    if (entry) {\n      this.head = entry.next;\n      if (this.tail === entry) this.tail = null;\n      return entry.item;\n    }\n  }\n};\n\nmodule.exports = Queue;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  var name = options && options.name !== undefined ? options.name : key;\n  var state;\n  if (isCallable(value)) {\n    if (String(name).slice(0, 7) === 'Symbol(') {\n      name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n    }\n    if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n      createNonEnumerableProperty(value, 'name', name);\n    }\n    state = enforceInternalState(value);\n    if (!state.source) {\n      state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n    }\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (isCallable(exec)) {\n    var result = call(exec, R, S);\n    if (result !== null) anObject(result);\n    return result;\n  }\n  if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n  throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/;\n  var re2 = /b*/g;\n  call(nativeExec, re1, 'a');\n  call(nativeExec, re2, 'a');\n  return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n  patchedExec = function exec(string) {\n    var re = this;\n    var state = getInternalState(re);\n    var str = toString(string);\n    var raw = state.raw;\n    var result, reCopy, lastIndex, match, i, object, group;\n\n    if (raw) {\n      raw.lastIndex = re.lastIndex;\n      result = call(patchedExec, raw, str);\n      re.lastIndex = raw.lastIndex;\n      return result;\n    }\n\n    var groups = state.groups;\n    var sticky = UNSUPPORTED_Y && re.sticky;\n    var flags = call(regexpFlags, re);\n    var source = re.source;\n    var charsAdded = 0;\n    var strCopy = str;\n\n    if (sticky) {\n      flags = replace(flags, 'y', '');\n      if (indexOf(flags, 'g') === -1) {\n        flags += 'g';\n      }\n\n      strCopy = stringSlice(str, re.lastIndex);\n      // Support anchored sticky behavior.\n      if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n        source = '(?: ' + source + ')';\n        strCopy = ' ' + strCopy;\n        charsAdded++;\n      }\n      // ^(? + rx + ) is needed, in combination with some str slicing, to\n      // simulate the 'y' flag.\n      reCopy = new RegExp('^(?:' + source + ')', flags);\n    }\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n    match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n    if (sticky) {\n      if (match) {\n        match.input = stringSlice(match.input, charsAdded);\n        match[0] = stringSlice(match[0], charsAdded);\n        match.index = re.lastIndex;\n        re.lastIndex += match[0].length;\n      } else re.lastIndex = 0;\n    } else if (UPDATES_LAST_INDEX_WRONG && match) {\n      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      call(nativeReplace, match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    if (match && groups) {\n      match.groups = object = create(null);\n      for (i = 0; i < groups.length; i++) {\n        group = groups[i];\n        object[group[0]] = match[group[1]];\n      }\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n  var re = $RegExp('a', 'y');\n  re.lastIndex = 2;\n  return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n  return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n  var re = $RegExp('^r', 'gy');\n  re.lastIndex = 2;\n  return re.exec('str') != null;\n});\n\nmodule.exports = {\n  BROKEN_CARET: BROKEN_CARET,\n  MISSED_STICKY: MISSED_STICKY,\n  UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n  var re = $RegExp('.', 's');\n  return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n  var re = $RegExp('(?<a>b)', 'g');\n  return re.exec('b').groups.a !== 'b' ||\n    'b'.replace(re, '$<a>c') !== 'bc';\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(global, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n  if (target && !STATIC) target = target.prototype;\n  if (target && !hasOwn(target, TO_STRING_TAG)) {\n    defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.21.0',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n  license: 'https://github.com/zloirock/core-js/blob/v3.21.0/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    var test = ''[METHOD_NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = toString(requireObjectCoercible($this));\n    var position = toIntegerOrInfinity(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = charCodeAt(S, position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING\n          ? charAt(S, position)\n          : first\n        : CONVERT_TO_STRING\n          ? stringSlice(S, position, position + 2)\n          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n  return function ($this, maxLength, fillString) {\n    var S = toString(requireObjectCoercible($this));\n    var intMaxLength = toLength(maxLength);\n    var stringLength = S.length;\n    var fillStr = fillString === undefined ? ' ' : toString(fillString);\n    var fillLen, stringFiller;\n    if (intMaxLength <= stringLength || fillStr == '') return S;\n    fillLen = intMaxLength - stringLength;\n    stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n    if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n    return IS_END ? S + stringFiller : stringFiller + S;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.padStart` method\n  // https://tc39.es/ecma262/#sec-string.prototype.padstart\n  start: createMethod(false),\n  // `String.prototype.padEnd` method\n  // https://tc39.es/ecma262/#sec-string.prototype.padend\n  end: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar RangeError = global.RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n  var output = [];\n  var counter = 0;\n  var length = string.length;\n  while (counter < length) {\n    var value = charCodeAt(string, counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // It's a high surrogate, and there is a next character.\n      var extra = charCodeAt(string, counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n        push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // It's an unmatched surrogate; only append this code unit, in case the\n        // next code unit is the high surrogate of a surrogate pair.\n        push(output, value);\n        counter--;\n      }\n    } else {\n      push(output, value);\n    }\n  }\n  return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  while (delta > baseMinusTMin * tMax >> 1) {\n    delta = floor(delta / baseMinusTMin);\n    k += base;\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n  var output = [];\n\n  // Convert the input in UCS-2 to an array of Unicode code points.\n  input = ucs2decode(input);\n\n  // Cache the length.\n  var inputLength = input.length;\n\n  // Initialize the state.\n  var n = initialN;\n  var delta = 0;\n  var bias = initialBias;\n  var i, currentValue;\n\n  // Handle the basic code points.\n  for (i = 0; i < input.length; i++) {\n    currentValue = input[i];\n    if (currentValue < 0x80) {\n      push(output, fromCharCode(currentValue));\n    }\n  }\n\n  var basicLength = output.length; // number of basic code points.\n  var handledCPCount = basicLength; // number of code points that have been handled;\n\n  // Finish the basic string with a delimiter unless it's empty.\n  if (basicLength) {\n    push(output, delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next larger one:\n    var m = maxInt;\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n    var handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      throw RangeError(OVERFLOW_ERROR);\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue < n && ++delta > maxInt) {\n        throw RangeError(OVERFLOW_ERROR);\n      }\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer.\n        var q = delta;\n        var k = base;\n        while (true) {\n          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n          if (q < t) break;\n          var qMinusT = q - t;\n          var baseMinusT = base - t;\n          push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n          q = floor(qMinusT / baseMinusT);\n          k += base;\n        }\n\n        push(output, fromCharCode(digitToBasic(q)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        handledCPCount++;\n      }\n    }\n\n    delta++;\n    n++;\n  }\n  return join(output, '');\n};\n\nmodule.exports = function (input) {\n  var encoded = [];\n  var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n  var i, label;\n  for (i = 0; i < labels.length; i++) {\n    label = labels[i];\n    push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n  }\n  return join(encoded, '.');\n};\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n  var str = toString(requireObjectCoercible(this));\n  var result = '';\n  var n = toIntegerOrInfinity(count);\n  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n  return result;\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    return !!whitespaces[METHOD_NAME]()\n      || non[METHOD_NAME]() !== non\n      || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n  });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = toString(requireObjectCoercible($this));\n    if (TYPE & 1) string = replace(string, ltrim, '');\n    if (TYPE & 2) string = replace(string, rtrim, '');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.es/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.es/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n  // Deno throws a ReferenceError on `location` access without `--location` flag\n  location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n  if (hasOwn(queue, id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar listener = function (event) {\n  run(event.data);\n};\n\nvar post = function (id) {\n  // old engines have not location.origin\n  global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(handler) {\n    validateArgumentsLength(arguments.length, 1);\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var args = arraySlice(arguments, 1);\n    queue[++counter] = function () {\n      apply(fn, undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (IS_NODE) {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = bind(port.postMessage, port);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    global.addEventListener &&\n    isCallable(global.postMessage) &&\n    !global.importScripts &&\n    location && location.protocol !== 'file:' &&\n    !fails(post)\n  ) {\n    defer = post;\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar RangeError = global.RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toIntegerOrInfinity(it);\n  var length = toLength(number);\n  if (number !== length) throw RangeError('Wrong length or index');\n  return length;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- safe\n  return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it, BYTES) {\n  var offset = toPositiveInteger(it);\n  if (offset % BYTES) throw RangeError('Wrong offset');\n  return offset;\n};\n","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it) {\n  var result = toIntegerOrInfinity(it);\n  if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n  return result;\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n  return String(argument);\n};\n","var IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n  try {\n    // eslint-disable-next-line no-new-func -- safe\n    if (IS_NODE) return Function('return require(\"' + name + '\")')();\n  } catch (error) { /* empty */ }\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n  try {\n    return String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n  aTypedArrayConstructor(C);\n  var index = 0;\n  var length = list.length;\n  var result = new C(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n\nvar addGetter = function (it, key) {\n  nativeDefineProperty(it, key, { get: function () {\n    return getInternalState(this)[key];\n  } });\n};\n\nvar isArrayBuffer = function (it) {\n  var klass;\n  return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n  return isTypedArray(target)\n    && !isSymbol(key)\n    && key in target\n    && isIntegralNumber(+key)\n    && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n  key = toPropertyKey(key);\n  return isTypedArrayIndex(target, key)\n    ? createPropertyDescriptor(2, target[key])\n    : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n  key = toPropertyKey(key);\n  if (isTypedArrayIndex(target, key)\n    && isObject(descriptor)\n    && hasOwn(descriptor, 'value')\n    && !hasOwn(descriptor, 'get')\n    && !hasOwn(descriptor, 'set')\n    // TODO: add validation descriptor w/o calling accessors\n    && !descriptor.configurable\n    && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n    && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n  ) {\n    target[key] = descriptor.value;\n    return target;\n  } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n  if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n    getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n    definePropertyModule.f = wrappedDefineProperty;\n    addGetter(TypedArrayPrototype, 'buffer');\n    addGetter(TypedArrayPrototype, 'byteOffset');\n    addGetter(TypedArrayPrototype, 'byteLength');\n    addGetter(TypedArrayPrototype, 'length');\n  }\n\n  $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n    getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n    defineProperty: wrappedDefineProperty\n  });\n\n  module.exports = function (TYPE, wrapper, CLAMPED) {\n    var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n    var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n    var GETTER = 'get' + TYPE;\n    var SETTER = 'set' + TYPE;\n    var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n    var TypedArrayConstructor = NativeTypedArrayConstructor;\n    var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n    var exported = {};\n\n    var getter = function (that, index) {\n      var data = getInternalState(that);\n      return data.view[GETTER](index * BYTES + data.byteOffset, true);\n    };\n\n    var setter = function (that, index, value) {\n      var data = getInternalState(that);\n      if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n      data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n    };\n\n    var addElement = function (that, index) {\n      nativeDefineProperty(that, index, {\n        get: function () {\n          return getter(this, index);\n        },\n        set: function (value) {\n          return setter(this, index, value);\n        },\n        enumerable: true\n      });\n    };\n\n    if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n      TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n        anInstance(that, TypedArrayConstructorPrototype);\n        var index = 0;\n        var byteOffset = 0;\n        var buffer, byteLength, length;\n        if (!isObject(data)) {\n          length = toIndex(data);\n          byteLength = length * BYTES;\n          buffer = new ArrayBuffer(byteLength);\n        } else if (isArrayBuffer(data)) {\n          buffer = data;\n          byteOffset = toOffset(offset, BYTES);\n          var $len = data.byteLength;\n          if ($length === undefined) {\n            if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n            byteLength = $len - byteOffset;\n            if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n          } else {\n            byteLength = toLength($length) * BYTES;\n            if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n          }\n          length = byteLength / BYTES;\n        } else if (isTypedArray(data)) {\n          return fromList(TypedArrayConstructor, data);\n        } else {\n          return call(typedArrayFrom, TypedArrayConstructor, data);\n        }\n        setInternalState(that, {\n          buffer: buffer,\n          byteOffset: byteOffset,\n          byteLength: byteLength,\n          length: length,\n          view: new DataView(buffer)\n        });\n        while (index < length) addElement(that, index++);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n    } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n      TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n        anInstance(dummy, TypedArrayConstructorPrototype);\n        return inheritIfRequired(function () {\n          if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n          if (isArrayBuffer(data)) return $length !== undefined\n            ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n            : typedArrayOffset !== undefined\n              ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n              : new NativeTypedArrayConstructor(data);\n          if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n          return call(typedArrayFrom, TypedArrayConstructor, data);\n        }(), dummy, TypedArrayConstructor);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n        if (!(key in TypedArrayConstructor)) {\n          createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n        }\n      });\n      TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n    }\n\n    if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n    }\n\n    createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);\n\n    if (TYPED_ARRAY_TAG) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n    }\n\n    exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n    $({\n      global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n    }, exported);\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n      createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n      createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    setSpecies(CONSTRUCTOR_NAME);\n  };\n} else module.exports = function () { /* empty */ };\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n  Int8Array(1);\n}) || !fails(function () {\n  new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n  new Int8Array();\n  new Int8Array(null);\n  new Int8Array(1.5);\n  new Int8Array(iterable);\n}, true) || fails(function () {\n  // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n  return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n  return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n  var C = aConstructor(this);\n  var O = toObject(source);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var i, length, result, step, iterator, next;\n  if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n    iterator = getIterator(O, iteratorMethod);\n    next = iterator.next;\n    O = [];\n    while (!(step = call(next, iterator)).done) {\n      O.push(step.value);\n    }\n  }\n  if (mapping && argumentsLength > 2) {\n    mapfn = bind(mapfn, arguments[2]);\n  }\n  length = lengthOfArrayLike(O);\n  result = new (aTypedArrayConstructor(C))(length);\n  for (i = 0; length > i; i++) {\n    result[i] = mapping ? mapfn(O[i], i) : O[i];\n  }\n  return result;\n};\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n  return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype != 42;\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (passed, required) {\n  if (passed < required) throw TypeError('Not enough arguments');\n  return passed;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n    var description = 'Symbol.' + name;\n    if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n      WellKnownSymbolsStore[name] = Symbol[name];\n    } else if (USE_SYMBOL_AS_UID && symbolFor) {\n      WellKnownSymbolsStore[name] = symbolFor(description);\n    } else {\n      WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n    }\n  } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n  '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n  var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n  var path = FULL_NAME.split('.');\n  var ERROR_NAME = path[path.length - 1];\n  var OriginalError = getBuiltIn.apply(null, path);\n\n  if (!OriginalError) return;\n\n  var OriginalErrorPrototype = OriginalError.prototype;\n\n  // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n  if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n  if (!FORCED) return OriginalError;\n\n  var BaseError = getBuiltIn('Error');\n\n  var WrappedError = wrapper(function (a, b) {\n    var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n    var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n    if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n    if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(result, 'stack', clearErrorStack(result.stack, 2));\n    if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n    if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n    return result;\n  });\n\n  WrappedError.prototype = OriginalErrorPrototype;\n\n  if (ERROR_NAME !== 'Error') {\n    if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n    else copyConstructorProperties(WrappedError, BaseError, { name: true });\n  }\n\n  copyConstructorProperties(WrappedError, OriginalError);\n\n  if (!IS_PURE) try {\n    // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n    if (OriginalErrorPrototype.name !== ERROR_NAME) {\n      createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n    }\n    OriginalErrorPrototype.constructor = WrappedError;\n  } catch (error) { /* empty */ }\n\n  return WrappedError;\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar AGGREGATE_ERROR = 'AggregateError';\nvar $AggregateError = getBuiltIn(AGGREGATE_ERROR);\nvar FORCED = !fails(function () {\n  return $AggregateError([1]).errors[0] !== 1;\n}) && fails(function () {\n  return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7;\n});\n\n// https://github.com/tc39/proposal-error-cause\n$({ global: true, forced: FORCED }, {\n  AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) {\n    // eslint-disable-next-line no-unused-vars -- required for functions `.length`\n    return function AggregateError(errors, message) { return apply(init, this, arguments); };\n  }, FORCED, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Error = global.Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n  var options = arguments.length > 2 ? arguments[2] : undefined;\n  var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n  var that;\n  if (setPrototypeOf) {\n    that = setPrototypeOf(new Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n  } else {\n    that = isInstance ? this : create(AggregateErrorPrototype);\n    createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n  }\n  if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n  if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n  installErrorCause(that, options);\n  var errorsArray = [];\n  iterate(errors, push, { that: errorsArray });\n  createNonEnumerableProperty(that, 'errors', errorsArray);\n  return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, Error);\nelse copyConstructorProperties($AggregateError, Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {\n  constructor: createPropertyDescriptor(1, $AggregateError),\n  message: createPropertyDescriptor(1, ''),\n  name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n  AggregateError: $AggregateError\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n  ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","var $ = require('../internals/export');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n\n// `ArrayBuffer.isView` method\n// https://tc39.es/ecma262/#sec-arraybuffer.isview\n$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n  isView: ArrayBufferViewCore.isView\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar DataViewPrototype = DataView.prototype;\nvar un$ArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);\nvar getUint8 = uncurryThis(DataViewPrototype.getUint8);\nvar setUint8 = uncurryThis(DataViewPrototype.setUint8);\n\nvar INCORRECT_SLICE = fails(function () {\n  return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n  slice: function slice(start, end) {\n    if (un$ArrayBufferSlice && end === undefined) {\n      return un$ArrayBufferSlice(anObject(this), start); // FF fix\n    }\n    var length = anObject(this).byteLength;\n    var first = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n    var viewSource = new DataView(this);\n    var viewTarget = new DataView(result);\n    var index = 0;\n    while (first < fin) {\n      setUint8(viewTarget, index++, getUint8(viewSource, first++));\n    } return result;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'Array', proto: true }, {\n  at: function at(index) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : O[k];\n  }\n});\n\naddToUnscopables('at');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  concat: function concat(arg) {\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = lengthOfArrayLike(E);\n        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n  copyWithin: copyWithin\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n  every: function every(callbackfn /* , thisArg */) {\n    return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n  fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n    return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n  find: function find(callbackfn /* , that = undefined */) {\n    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n  flatMap: function flatMap(callbackfn /* , thisArg */) {\n    var O = toObject(this);\n    var sourceLen = lengthOfArrayLike(O);\n    var A;\n    aCallable(callbackfn);\n    A = arraySpeciesCreate(O, 0);\n    A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return A;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n  flat: function flat(/* depthArg = 1 */) {\n    var depthArg = arguments.length ? arguments[0] : undefined;\n    var O = toObject(this);\n    var sourceLen = lengthOfArrayLike(O);\n    var A = arraySpeciesCreate(O, 0);\n    A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n    return A;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n  forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n  // eslint-disable-next-line es/no-array-from -- required for testing\n  Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n  from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar $IndexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$IndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? un$IndexOf(this, searchElement, fromIndex) || 0\n      : $IndexOf(this, searchElement, fromIndex);\n  }\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n  isArray: isArray\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n  defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n  join: function join(separator) {\n    return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n  }\n});\n","var $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\n// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n  lastIndexOf: lastIndexOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isConstructor = require('../internals/is-constructor');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\n\nvar ISNT_GENERIC = fails(function () {\n  function F() { /* empty */ }\n  return !(Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.es/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n  of: function of(/* ...args */) {\n    var index = 0;\n    var argumentsLength = arguments.length;\n    var result = new (isConstructor(this) ? this : Array)(argumentsLength);\n    while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n    result.length = argumentsLength;\n    return result;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduceRight');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n  reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n    return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    var length = arguments.length;\n    return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar un$Reverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n  reverse: function reverse() {\n    // eslint-disable-next-line no-self-assign -- dirty hack\n    if (isArray(this)) this.length = this.length;\n    return un$Reverse(this);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  slice: function slice(start, end) {\n    var O = toIndexedObject(this);\n    var length = lengthOfArrayLike(O);\n    var k = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n    var Constructor, result, n;\n    if (isArray(O)) {\n      Constructor = O.constructor;\n      // cross-realm fallback\n      if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n        Constructor = undefined;\n      } else if (isObject(Constructor)) {\n        Constructor = Constructor[SPECIES];\n        if (Constructor === null) Constructor = undefined;\n      }\n      if (Constructor === Array || Constructor === undefined) {\n        return un$Slice(O, k, fin);\n      }\n    }\n    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n    result.length = n;\n    return result;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n  some: function some(callbackfn /* , thisArg */) {\n    return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n  test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n  test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n  // feature detection can be too slow, so check engines versions\n  if (V8) return V8 < 70;\n  if (FF && FF > 3) return;\n  if (IE_OR_EDGE) return true;\n  if (WEBKIT) return WEBKIT < 603;\n\n  var result = '';\n  var code, chr, value, index;\n\n  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n  for (code = 65; code < 76; code++) {\n    chr = String.fromCharCode(code);\n\n    switch (code) {\n      case 66: case 69: case 70: case 72: value = 3; break;\n      case 68: case 71: value = 4; break;\n      default: value = 2;\n    }\n\n    for (index = 0; index < 47; index++) {\n      test.push({ k: chr + index, v: value });\n    }\n  }\n\n  test.sort(function (a, b) { return b.v - a.v; });\n\n  for (index = 0; index < test.length; index++) {\n    chr = test[index].k.charAt(0);\n    if (result.charAt(result.length - 1) !== chr) result += chr;\n  }\n\n  return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n  return function (x, y) {\n    if (y === undefined) return -1;\n    if (x === undefined) return 1;\n    if (comparefn !== undefined) return +comparefn(x, y) || 0;\n    return toString(x) > toString(y) ? 1 : -1;\n  };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  sort: function sort(comparefn) {\n    if (comparefn !== undefined) aCallable(comparefn);\n\n    var array = toObject(this);\n\n    if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n    var items = [];\n    var arrayLength = lengthOfArrayLike(array);\n    var itemsLength, index;\n\n    for (index = 0; index < arrayLength; index++) {\n      if (index in array) push(items, array[index]);\n    }\n\n    internalSort(items, getSortCompare(comparefn));\n\n    itemsLength = items.length;\n    index = 0;\n\n    while (index < itemsLength) array[index] = items[index++];\n    while (index < arrayLength) delete array[index++];\n\n    return array;\n  }\n});\n","var setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.es/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n  splice: function splice(start, deleteCount /* , ...items */) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var actualStart = toAbsoluteIndex(start, len);\n    var argumentsLength = arguments.length;\n    var insertCount, actualDeleteCount, A, k, from, to;\n    if (argumentsLength === 0) {\n      insertCount = actualDeleteCount = 0;\n    } else if (argumentsLength === 1) {\n      insertCount = 0;\n      actualDeleteCount = len - actualStart;\n    } else {\n      insertCount = argumentsLength - 2;\n      actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n    }\n    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n    }\n    A = arraySpeciesCreate(O, actualDeleteCount);\n    for (k = 0; k < actualDeleteCount; k++) {\n      from = actualStart + k;\n      if (from in O) createProperty(A, k, O[from]);\n    }\n    A.length = actualDeleteCount;\n    if (insertCount < actualDeleteCount) {\n      for (k = actualStart; k < len - actualDeleteCount; k++) {\n        from = k + actualDeleteCount;\n        to = k + insertCount;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n    } else if (insertCount > actualDeleteCount) {\n      for (k = len - actualDeleteCount; k > actualStart; k--) {\n        from = k + actualDeleteCount - 1;\n        to = k + insertCount - 1;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n    }\n    for (k = 0; k < insertCount; k++) {\n      O[k + actualStart] = arguments[k + 2];\n    }\n    O.length = len - actualDeleteCount + insertCount;\n    return A;\n  }\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","var $ = require('../internals/export');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\n\n// `DataView` constructor\n// https://tc39.es/ecma262/#sec-dataview-constructor\n$({ global: true, forced: !NATIVE_ARRAY_BUFFER }, {\n  DataView: ArrayBufferModule.DataView\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar FORCED = fails(function () {\n  return new Date(16e11).getYear() !== 120;\n});\n\nvar getFullYear = uncurryThis(Date.prototype.getFullYear);\n\n// `Date.prototype.getYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.getyear\n$({ target: 'Date', proto: true, forced: FORCED }, {\n  getYear: function getYear() {\n    return getFullYear(this) - 1900;\n  }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Date = global.Date;\nvar getTime = uncurryThis(Date.prototype.getTime);\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n  now: function now() {\n    return getTime(new Date());\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar DatePrototype = Date.prototype;\nvar getTime = uncurryThis(DatePrototype.getTime);\nvar setFullYear = uncurryThis(DatePrototype.setFullYear);\n\n// `Date.prototype.setYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.setyear\n$({ target: 'Date', proto: true }, {\n  setYear: function setYear(year) {\n    // validate\n    getTime(this);\n    var yi = toIntegerOrInfinity(year);\n    var yyyy = 0 <= yi && yi <= 99 ? yi + 1900 : yi;\n    return setFullYear(this, yyyy);\n  }\n});\n","var $ = require('../internals/export');\n\n// `Date.prototype.toGMTString` method\n// https://tc39.es/ecma262/#sec-date.prototype.togmtstring\n$({ target: 'Date', proto: true }, {\n  toGMTString: Date.prototype.toUTCString\n});\n","var $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n  toISOString: toISOString\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n  return new Date(NaN).toJSON() !== null\n    || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.es/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  toJSON: function toJSON(key) {\n    var O = toObject(this);\n    var pv = toPrimitive(O, 'number');\n    return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n  }\n});\n","var hasOwn = require('../internals/has-own-property');\nvar redefine = require('../internals/redefine');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nif (!hasOwn(DatePrototype, TO_PRIMITIVE)) {\n  redefine(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar un$DateToString = uncurryThis(DatePrototype[TO_STRING]);\nvar getTime = uncurryThis(DatePrototype.getTime);\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) != INVALID_DATE) {\n  redefine(DatePrototype, TO_STRING, function toString() {\n    var value = getTime(this);\n    // eslint-disable-next-line no-self-compare -- NaN check\n    return value === value ? un$DateToString(this) : INVALID_DATE;\n  });\n}\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  var O = {};\n  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n  $({ global: true, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  if (WebAssembly && WebAssembly[ERROR_NAME]) {\n    var O = {};\n    O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n    $({ target: WEB_ASSEMBLY, stat: true, forced: FORCED }, O);\n  }\n};\n\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n  return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n  return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n  return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n  return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n  return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n  return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n  return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n  return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n  return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n  return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","var redefine = require('../internals/redefine');\nvar errorToString = require('../internals/error-to-string');\n\nvar ErrorPrototype = Error.prototype;\n\n// `Error.prototype.toString` method fix\n// https://tc39.es/ecma262/#sec-error.prototype.tostring\nif (ErrorPrototype.toString !== errorToString) {\n  redefine(ErrorPrototype, 'toString', errorToString);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar exec = uncurryThis(/./.exec);\nvar numberToString = uncurryThis(1.0.toString);\nvar toUpperCase = uncurryThis(''.toUpperCase);\n\nvar raw = /[\\w*+\\-./@]/;\n\nvar hex = function (code, length) {\n  var result = numberToString(code, 16);\n  while (result.length < length) result = '0' + result;\n  return result;\n};\n\n// `escape` method\n// https://tc39.es/ecma262/#sec-escape-string\n$({ global: true }, {\n  escape: function escape(string) {\n    var str = toString(string);\n    var result = '';\n    var length = str.length;\n    var index = 0;\n    var chr, code;\n    while (index < length) {\n      chr = charAt(str, index++);\n      if (exec(raw, chr)) {\n        result += chr;\n      } else {\n        code = charCodeAt(chr, 0);\n        if (code < 256) {\n          result += '%' + hex(code, 2);\n        } else {\n          result += '%u' + toUpperCase(hex(code, 4));\n        }\n      }\n    } return result;\n  }\n});\n","var $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n$({ target: 'Function', proto: true, forced: Function.bind !== bind }, {\n  bind: bind\n});\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n  definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {\n    if (!isCallable(this) || !isObject(O)) return false;\n    var P = this.prototype;\n    if (!isObject(P)) return O instanceof this;\n    // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n    while (O = getPrototypeOf(O)) if (P === O) return true;\n    return false;\n  } });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n  defineProperty(FunctionPrototype, NAME, {\n    configurable: true,\n    get: function () {\n      try {\n        return regExpExec(nameRE, functionToString(this))[1];\n      } catch (error) {\n        return '';\n      }\n    }\n  });\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n  globalThis: global\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar Array = global.Array;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar fix = function (match, offset, string) {\n  var prev = charAt(string, offset - 1);\n  var next = charAt(string, offset + 1);\n  if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n    return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n  } return match;\n};\n\nvar FORCED = fails(function () {\n  return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n    || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nif ($stringify) {\n  // `JSON.stringify` method\n  // https://tc39.es/ecma262/#sec-json.stringify\n  // https://github.com/tc39/proposal-well-formed-stringify\n  $({ target: 'JSON', stat: true, forced: FORCED }, {\n    // eslint-disable-next-line no-unused-vars -- required for `.length`\n    stringify: function stringify(it, replacer, space) {\n      for (var i = 0, l = arguments.length, args = Array(l); i < l; i++) args[i] = arguments[i];\n      var result = apply($stringify, null, args);\n      return typeof result == 'string' ? replace(result, tester, fix) : result;\n    }\n  });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// eslint-disable-next-line es/no-math-acosh -- required for testing\nvar $acosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !$acosh\n  // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n  || Math.floor($acosh(Number.MAX_VALUE)) != 710\n  // Tor Browser bug: Math.acosh(Infinity) -> NaN\n  || $acosh(Infinity) != Infinity;\n\n// `Math.acosh` method\n// https://tc39.es/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  acosh: function acosh(x) {\n    return (x = +x) < 1 ? NaN : x > 94906265.62425156\n      ? log(x) + LN2\n      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n  }\n});\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-asinh -- required for testing\nvar $asinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));\n}\n\n// `Math.asinh` method\n// https://tc39.es/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: !($asinh && 1 / $asinh(0) > 0) }, {\n  asinh: asinh\n});\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-atanh -- required for testing\nvar $atanh = Math.atanh;\nvar log = Math.log;\n\n// `Math.atanh` method\n// https://tc39.es/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: !($atanh && 1 / $atanh(-0) < 0) }, {\n  atanh: function atanh(x) {\n    return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;\n  }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.es/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n  cbrt: function cbrt(x) {\n    return sign(x = +x) * pow(abs(x), 1 / 3);\n  }\n});\n","var $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.es/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n  clz32: function clz32(x) {\n    return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;\n  }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// eslint-disable-next-line es/no-math-cosh -- required for testing\nvar $cosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\n// `Math.cosh` method\n// https://tc39.es/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: !$cosh || $cosh(710) === Infinity }, {\n  cosh: function cosh(x) {\n    var t = expm1(abs(x) - 1) + 1;\n    return (t + 1 / (t * E * E)) * (E / 2);\n  }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.es/ecma262/#sec-math.expm1\n// eslint-disable-next-line es/no-math-expm1 -- required for testing\n$({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 });\n","var $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.es/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  hypot: function hypot(value1, value2) {\n    var sum = 0;\n    var i = 0;\n    var aLen = arguments.length;\n    var larg = 0;\n    var arg, div;\n    while (i < aLen) {\n      arg = abs(arguments[i++]);\n      if (larg < arg) {\n        div = larg / arg;\n        sum = sum * div * div + 1;\n        larg = arg;\n      } else if (arg > 0) {\n        div = arg / larg;\n        sum += div * div;\n      } else sum += arg;\n    }\n    return larg === Infinity ? Infinity : larg * sqrt(sum);\n  }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-math-imul -- required for testing\nvar $imul = Math.imul;\n\nvar FORCED = fails(function () {\n  return $imul(0xFFFFFFFF, 5) != -5 || $imul.length != 2;\n});\n\n// `Math.imul` method\n// https://tc39.es/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  imul: function imul(x, y) {\n    var UINT16 = 0xFFFF;\n    var xn = +x;\n    var yn = +y;\n    var xl = UINT16 & xn;\n    var yl = UINT16 & yn;\n    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n  }\n});\n","var $ = require('../internals/export');\nvar log10 = require('../internals/math-log10');\n\n// `Math.log10` method\n// https://tc39.es/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n  log10: log10\n});\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.es/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n  log2: function log2(x) {\n    return log(x) / LN2;\n  }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n  sign: sign\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line es/no-math-sinh -- required for testing\n  return Math.sinh(-2e-17) != -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.es/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  sinh: function sinh(x) {\n    return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);\n  }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.es/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n  tanh: function tanh(x) {\n    var a = expm1(x = +x);\n    var b = expm1(-x);\n    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n  }\n});\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n  trunc: function trunc(it) {\n    return (it > 0 ? floor : ceil)(it);\n  }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n  var primValue = toPrimitive(value, 'number');\n  return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, 'number');\n  var first, third, radix, maxCode, digits, length, index, code;\n  if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n  if (typeof it == 'string' && it.length > 2) {\n    it = trim(it);\n    first = charCodeAt(it, 0);\n    if (first === 43 || first === 45) {\n      third = charCodeAt(it, 2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (charCodeAt(it, 1)) {\n        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n        default: return +it;\n      }\n      digits = arraySlice(it, 2);\n      length = digits.length;\n      for (index = 0; index < length; index++) {\n        code = charCodeAt(digits, index);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n  var NumberWrapper = function Number(value) {\n    var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n    var dummy = this;\n    // check on 1..constructor(foo) case\n    return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n      ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n  };\n  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES2015 (in case, if modules with ES2015 Number statics required before):\n    'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n    // ESNext\n    'fromString,range'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n    }\n  }\n  NumberWrapper.prototype = NumberPrototype;\n  NumberPrototype.constructor = NumberWrapper;\n  redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.es/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true }, {\n  EPSILON: Math.pow(2, -52)\n});\n","var $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","var $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n  isInteger: isIntegralNumber\n});\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n  isNaN: function isNaN(number) {\n    // eslint-disable-next-line no-self-compare -- NaN check\n    return number != number;\n  }\n});\n","var $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.es/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n  isSafeInteger: function isSafeInteger(number) {\n    return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n  }\n});\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n  MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true }, {\n  MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.es/ecma262/#sec-number.parseFloat\n// eslint-disable-next-line es/no-number-parsefloat -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {\n  parseFloat: parseFloat\n});\n","var $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n  parseInt: parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar log10 = require('../internals/math-log10');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar isFinite = global.isFinite;\nvar abs = Math.abs;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar round = Math.round;\nvar un$ToExponential = uncurryThis(1.0.toExponential);\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\n\n// Edge 17-\nvar ROUNDS_PROPERLY = un$ToExponential(-6.9e-11, 4) === '-6.9000e-11'\n  // IE11- && Edge 14-\n  && un$ToExponential(1.255, 2) === '1.25e+0'\n  // FF86-, V8 ~ Chrome 49-50\n  && un$ToExponential(12345, 3) === '1.235e+4'\n  // FF86-, V8 ~ Chrome 49-50\n  && un$ToExponential(25, 0) === '3e+1';\n\n// IE8-\nvar THROWS_ON_INFINITY_FRACTION = fails(function () {\n  un$ToExponential(1, Infinity);\n}) && fails(function () {\n  un$ToExponential(1, -Infinity);\n});\n\n// Safari <11 && FF <50\nvar PROPER_NON_FINITE_THIS_CHECK = !fails(function () {\n  un$ToExponential(Infinity, Infinity);\n}) && !fails(function () {\n  un$ToExponential(NaN, Infinity);\n});\n\nvar FORCED = !ROUNDS_PROPERLY || !THROWS_ON_INFINITY_FRACTION || !PROPER_NON_FINITE_THIS_CHECK;\n\n// `Number.prototype.toExponential` method\n// https://tc39.es/ecma262/#sec-number.prototype.toexponential\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toExponential: function toExponential(fractionDigits) {\n    var x = thisNumberValue(this);\n    if (fractionDigits === undefined) return un$ToExponential(x);\n    var f = toIntegerOrInfinity(fractionDigits);\n    if (!isFinite(x)) return String(x);\n    // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n    if (f < 0 || f > 20) throw RangeError('Incorrect fraction digits');\n    if (ROUNDS_PROPERLY) return un$ToExponential(x, f);\n    var s = '';\n    var m = '';\n    var e = 0;\n    var c = '';\n    var d = '';\n    if (x < 0) {\n      s = '-';\n      x = -x;\n    }\n    if (x === 0) {\n      e = 0;\n      m = repeat('0', f + 1);\n    } else {\n      // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08\n      // TODO: improve accuracy with big fraction digits\n      var l = log10(x);\n      e = floor(l);\n      var n = 0;\n      var w = pow(10, e - f);\n      n = round(x / w);\n      if (2 * x >= (2 * n + 1) * w) {\n        n += 1;\n      }\n      if (n >= pow(10, f + 1)) {\n        n /= 10;\n        e += 1;\n      }\n      m = String(n);\n    }\n    if (f !== 0) {\n      m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1);\n    }\n    if (e === 0) {\n      c = '+';\n      d = '0';\n    } else {\n      c = e > 0 ? '+' : '-';\n      d = String(abs(e));\n    }\n    m += 'e' + c + d;\n    return s + m;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n  var n = 0;\n  var x2 = x;\n  while (x2 >= 4096) {\n    n += 12;\n    x2 /= 4096;\n  }\n  while (x2 >= 2) {\n    n += 1;\n    x2 /= 2;\n  } return n;\n};\n\nvar multiply = function (data, n, c) {\n  var index = -1;\n  var c2 = c;\n  while (++index < 6) {\n    c2 += n * data[index];\n    data[index] = c2 % 1e7;\n    c2 = floor(c2 / 1e7);\n  }\n};\n\nvar divide = function (data, n) {\n  var index = 6;\n  var c = 0;\n  while (--index >= 0) {\n    c += data[index];\n    data[index] = floor(c / n);\n    c = (c % n) * 1e7;\n  }\n};\n\nvar dataToString = function (data) {\n  var index = 6;\n  var s = '';\n  while (--index >= 0) {\n    if (s !== '' || index === 0 || data[index] !== 0) {\n      var t = String(data[index]);\n      s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n    }\n  } return s;\n};\n\nvar FORCED = fails(function () {\n  return un$ToFixed(0.00008, 3) !== '0.000' ||\n    un$ToFixed(0.9, 0) !== '1' ||\n    un$ToFixed(1.255, 2) !== '1.25' ||\n    un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n  // V8 ~ Android 4.3-\n  un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toFixed: function toFixed(fractionDigits) {\n    var number = thisNumberValue(this);\n    var fractDigits = toIntegerOrInfinity(fractionDigits);\n    var data = [0, 0, 0, 0, 0, 0];\n    var sign = '';\n    var result = '0';\n    var e, z, j, k;\n\n    // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n    if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (number != number) return 'NaN';\n    if (number <= -1e21 || number >= 1e21) return String(number);\n    if (number < 0) {\n      sign = '-';\n      number = -number;\n    }\n    if (number > 1e-21) {\n      e = log(number * pow(2, 69, 1)) - 69;\n      z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n      z *= 0x10000000000000;\n      e = 52 - e;\n      if (e > 0) {\n        multiply(data, 0, z);\n        j = fractDigits;\n        while (j >= 7) {\n          multiply(data, 1e7, 0);\n          j -= 7;\n        }\n        multiply(data, pow(10, j, 1), 0);\n        j = e - 1;\n        while (j >= 23) {\n          divide(data, 1 << 23);\n          j -= 23;\n        }\n        divide(data, 1 << j);\n        multiply(data, 1, 1);\n        divide(data, 2);\n        result = dataToString(data);\n      } else {\n        multiply(data, 0, z);\n        multiply(data, 1 << -e, 0);\n        result = dataToString(data) + repeat('0', fractDigits);\n      }\n    }\n    if (fractDigits > 0) {\n      k = result.length;\n      result = sign + (k <= fractDigits\n        ? '0.' + repeat('0', fractDigits - k) + result\n        : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n    } else {\n      result = sign + result;\n    } return result;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar un$ToPrecision = uncurryThis(1.0.toPrecision);\n\nvar FORCED = fails(function () {\n  // IE7-\n  return un$ToPrecision(1, undefined) !== '1';\n}) || !fails(function () {\n  // V8 ~ Android 4.3-\n  un$ToPrecision({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.es/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toPrecision: function toPrecision(precision) {\n    return precision === undefined\n      ? un$ToPrecision(thisNumberValue(this))\n      : un$ToPrecision(thisNumberValue(this), precision);\n  }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n  assign: assign\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n  create: create\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __defineGetter__: function __defineGetter__(P, getter) {\n      definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true });\n    }\n  });\n}\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties').f;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {\n  defineProperties: defineProperties\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n  defineProperty: defineProperty\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __defineSetter__: function __defineSetter__(P, setter) {\n      definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true });\n    }\n  });\n}\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n  entries: function entries(O) {\n    return $entries(O);\n  }\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  freeze: function freeze(it) {\n    return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n  }\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n  fromEntries: function fromEntries(iterable) {\n    var obj = {};\n    iterate(iterable, function (k, v) {\n      createProperty(obj, k, v);\n    }, { AS_ENTRIES: true });\n    return obj;\n  }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n    return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n  }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n    var O = toIndexedObject(object);\n    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n    var keys = ownKeys(O);\n    var result = {};\n    var index = 0;\n    var key, descriptor;\n    while (keys.length > index) {\n      descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n      if (descriptor !== undefined) createProperty(result, key, descriptor);\n    }\n    return result;\n  }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  getOwnPropertyNames: getOwnPropertyNames\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(it) {\n    return nativeGetPrototypeOf(toObject(it));\n  }\n});\n\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\n\n// `Object.hasOwn` method\n// https://github.com/tc39/proposal-accessible-object-hasownproperty\n$({ target: 'Object', stat: true }, {\n  hasOwn: hasOwn\n});\n","var $ = require('../internals/export');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\n// eslint-disable-next-line es/no-object-isextensible -- safe\n$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, {\n  isExtensible: $isExtensible\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar $isFrozen = Object.isFrozen;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.es/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE }, {\n  isFrozen: function isFrozen(it) {\n    if (!isObject(it)) return true;\n    if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return true;\n    return $isFrozen ? $isFrozen(it) : false;\n  }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar $isSealed = Object.isSealed;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.es/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE }, {\n  isSealed: function isSealed(it) {\n    if (!isObject(it)) return true;\n    if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return true;\n    return $isSealed ? $isSealed(it) : false;\n  }\n});\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n  is: is\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  keys: function keys(it) {\n    return nativeKeys(toObject(it));\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __lookupGetter__: function __lookupGetter__(P) {\n      var O = toObject(this);\n      var key = toPropertyKey(P);\n      var desc;\n      do {\n        if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n      } while (O = getPrototypeOf(O));\n    }\n  });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __lookupSetter__: function __lookupSetter__(P) {\n      var O = toObject(this);\n      var key = toPropertyKey(P);\n      var desc;\n      do {\n        if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n      } while (O = getPrototypeOf(O));\n    }\n  });\n}\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-preventextensions -- safe\nvar $preventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.es/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  preventExtensions: function preventExtensions(it) {\n    return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it;\n  }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-seal -- safe\nvar $seal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { $seal(1); });\n\n// `Object.seal` method\n// https://tc39.es/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  seal: function seal(it) {\n    return $seal && isObject(it) ? $seal(onFreeze(it)) : it;\n  }\n});\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n  setPrototypeOf: setPrototypeOf\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n  values: function values(O) {\n    return $values(O);\n  }\n});\n","var $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != $parseFloat }, {\n  parseFloat: $parseFloat\n});\n","var $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != $parseInt }, {\n  parseInt: $parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n  allSettled: function allSettled(iterable) {\n    var C = this;\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'fulfilled', value: value };\n          --remaining || resolve(values);\n        }, function (error) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = { status: 'rejected', reason: error };\n          --remaining || resolve(values);\n        });\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n  any: function any(iterable) {\n    var C = this;\n    var AggregateError = getBuiltIn('AggregateError');\n    var capability = newPromiseCapabilityModule.f(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var promiseResolve = aCallable(C.resolve);\n      var errors = [];\n      var counter = 0;\n      var remaining = 1;\n      var alreadyResolved = false;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyRejected = false;\n        remaining++;\n        call(promiseResolve, C, promise).then(function (value) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyResolved = true;\n          resolve(value);\n        }, function (error) {\n          if (alreadyRejected || alreadyResolved) return;\n          alreadyRejected = true;\n          errors[index] = error;\n          --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n        });\n      });\n      --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n  // eslint-disable-next-line unicorn/no-thenable -- required for testing\n  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = isCallable(onFinally);\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromise)) {\n  var method = getBuiltIn('Promise').prototype['finally'];\n  if (NativePromise.prototype['finally'] !== method) {\n    redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n  }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\n\nvar getInternalState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n  var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n  var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\n  // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n  // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n  // We can't detect it synchronously, so just check versions\n  if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n  // We need Promise#finally in the pure version for preventing prototype pollution\n  if (IS_PURE && !PromisePrototype['finally']) return true;\n  // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n  // Detect correctness of subclassing with @@species support\n  var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n  var FakePromise = function (exec) {\n    exec(function () { /* empty */ }, function () { /* empty */ });\n  };\n  var constructor = promise.constructor = {};\n  constructor[SPECIES] = FakePromise;\n  SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n  if (!SUBCLASSING) return true;\n  // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n  return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n  var value = state.value;\n  var ok = state.state == FULFILLED;\n  var handler = ok ? reaction.ok : reaction.fail;\n  var resolve = reaction.resolve;\n  var reject = reaction.reject;\n  var domain = reaction.domain;\n  var result, then, exited;\n  try {\n    if (handler) {\n      if (!ok) {\n        if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n        state.rejection = HANDLED;\n      }\n      if (handler === true) result = value;\n      else {\n        if (domain) domain.enter();\n        result = handler(value); // can throw\n        if (domain) {\n          domain.exit();\n          exited = true;\n        }\n      }\n      if (result === reaction.promise) {\n        reject(TypeError('Promise-chain cycle'));\n      } else if (then = isThenable(result)) {\n        call(then, result, resolve, reject);\n      } else resolve(result);\n    } else reject(value);\n  } catch (error) {\n    if (domain && !exited) domain.exit();\n    reject(error);\n  }\n};\n\nvar notify = function (state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  microtask(function () {\n    var reactions = state.reactions;\n    var reaction;\n    while (reaction = reactions.get()) {\n      callReaction(reaction, state);\n    }\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n  call(task, global, function () {\n    var promise = state.facade;\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n  call(task, global, function () {\n    var promise = state.facade;\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, state, unwrap) {\n  return function (value) {\n    fn(state, value, unwrap);\n  };\n};\n\nvar internalReject = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  try {\n    if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n    if (then) {\n      microtask(function () {\n        var wrapper = { done: false };\n        try {\n          call(then, value,\n            bind(internalResolve, wrapper, state),\n            bind(internalReject, wrapper, state)\n          );\n        } catch (error) {\n          internalReject(wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(state, false);\n    }\n  } catch (error) {\n    internalReject({ done: false }, error, state);\n  }\n};\n\n// constructor polyfill\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromisePrototype);\n    aCallable(executor);\n    call(Internal, this);\n    var state = getInternalState(this);\n    try {\n      executor(bind(internalResolve, state), bind(internalReject, state));\n    } catch (error) {\n      internalReject(state, error);\n    }\n  };\n  PromisePrototype = PromiseConstructor.prototype;\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: new Queue(),\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n  Internal.prototype = redefineAll(PromisePrototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.es/ecma262/#sec-promise.prototype.then\n    // eslint-disable-next-line unicorn/no-thenable -- safe\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      state.parent = true;\n      reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n      reaction.fail = isCallable(onRejected) && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      if (state.state == PENDING) state.reactions.add(reaction);\n      else microtask(function () {\n        callReaction(reaction, state);\n      });\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.es/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, state);\n    this.reject = bind(internalReject, state);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {\n    nativeThen = NativePromisePrototype.then;\n\n    if (!SUBCLASSING) {\n      // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n      redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n        var that = this;\n        return new PromiseConstructor(function (resolve, reject) {\n          call(nativeThen, that, resolve, reject);\n        }).then(onFulfilled, onRejected);\n      // https://github.com/zloirock/core-js/issues/640\n      }, { unsafe: true });\n\n      // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n      redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true });\n    }\n\n    // make `.constructor === Promise` work for native promise-based APIs\n    try {\n      delete NativePromisePrototype.constructor;\n    } catch (error) { /* empty */ }\n\n    // make `instanceof Promise` work for native promise-based APIs\n    if (setPrototypeOf) {\n      setPrototypeOf(NativePromisePrototype, PromisePrototype);\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n  Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n  // `Promise.reject` method\n  // https://tc39.es/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    call(capability.reject, undefined, r);\n    return capability.promise;\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n  // `Promise.resolve` method\n  // https://tc39.es/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n  // `Promise.all` method\n  // https://tc39.es/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aCallable(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        remaining++;\n        call($promiseResolve, C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.es/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aCallable(C.resolve);\n      iterate(iterable, function (promise) {\n        call($promiseResolve, C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","var $ = require('../internals/export');\nvar functionApply = require('../internals/function-apply');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n  // eslint-disable-next-line es/no-reflect -- required for testing\n  Reflect.apply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.es/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n  apply: function apply(target, thisArgument, argumentsList) {\n    return functionApply(aCallable(target), thisArgument, anObject(argumentsList));\n  }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n  function F() { /* empty */ }\n  return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n  nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n  construct: function construct(Target, args /* , newTarget */) {\n    aConstructor(Target);\n    anObject(args);\n    var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n    if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n    if (Target == newTarget) {\n      // w/o altered newTarget, optimization for 0-4 arguments\n      switch (args.length) {\n        case 0: return new Target();\n        case 1: return new Target(args[0]);\n        case 2: return new Target(args[0], args[1]);\n        case 3: return new Target(args[0], args[1], args[2]);\n        case 4: return new Target(args[0], args[1], args[2], args[3]);\n      }\n      // w/o altered newTarget, lot of arguments case\n      var $args = [null];\n      apply(push, $args, args);\n      return new (apply(bind, Target, $args))();\n    }\n    // with altered newTarget, not support built-in constructors\n    var proto = newTarget.prototype;\n    var instance = create(isObject(proto) ? proto : ObjectPrototype);\n    var result = apply(Target, instance, args);\n    return isObject(result) ? result : instance;\n  }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n  // eslint-disable-next-line es/no-reflect -- required for testing\n  Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.es/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n  defineProperty: function defineProperty(target, propertyKey, attributes) {\n    anObject(target);\n    var key = toPropertyKey(propertyKey);\n    anObject(attributes);\n    try {\n      definePropertyModule.f(target, key, attributes);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.es/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n  deleteProperty: function deleteProperty(target, propertyKey) {\n    var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n    return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n  }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n    return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n  }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(target) {\n    return objectGetPrototypeOf(anObject(target));\n  }\n});\n","var $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n  var receiver = arguments.length < 3 ? target : arguments[2];\n  var descriptor, prototype;\n  if (anObject(target) === receiver) return target[propertyKey];\n  descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n  if (descriptor) return isDataDescriptor(descriptor)\n    ? descriptor.value\n    : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n  if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n  get: get\n});\n","var $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.es/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n  has: function has(target, propertyKey) {\n    return propertyKey in target;\n  }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Reflect.isExtensible` method\n// https://tc39.es/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n  isExtensible: function isExtensible(target) {\n    anObject(target);\n    return $isExtensible(target);\n  }\n});\n","var $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n  ownKeys: ownKeys\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.es/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n  preventExtensions: function preventExtensions(target) {\n    anObject(target);\n    try {\n      var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n      if (objectPreventExtensions) objectPreventExtensions(target);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n  setPrototypeOf: function setPrototypeOf(target, proto) {\n    anObject(target);\n    aPossiblePrototype(proto);\n    try {\n      objectSetPrototypeOf(target, proto);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n","var $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.es/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n  var receiver = arguments.length < 4 ? target : arguments[3];\n  var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n  var existingDescriptor, prototype, setter;\n  if (!ownDescriptor) {\n    if (isObject(prototype = getPrototypeOf(target))) {\n      return set(prototype, propertyKey, V, receiver);\n    }\n    ownDescriptor = createPropertyDescriptor(0);\n  }\n  if (isDataDescriptor(ownDescriptor)) {\n    if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n    if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n      if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n      existingDescriptor.value = V;\n      definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n    } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n  } else {\n    setter = ownDescriptor.set;\n    if (setter === undefined) return false;\n    call(setter, receiver, V);\n  } return true;\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n  var Constructor = function () { /* empty */ };\n  var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });\n  // eslint-disable-next-line es/no-reflect -- required for testing\n  return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n  set: set\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n  (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n    re2[MATCH] = false;\n    // RegExp constructor can alter flags and IsRegExp works correct with @@match\n    return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n  }));\n\nvar handleDotAll = function (string) {\n  var length = string.length;\n  var index = 0;\n  var result = '';\n  var brackets = false;\n  var chr;\n  for (; index <= length; index++) {\n    chr = charAt(string, index);\n    if (chr === '\\\\') {\n      result += chr + charAt(string, ++index);\n      continue;\n    }\n    if (!brackets && chr === '.') {\n      result += '[\\\\s\\\\S]';\n    } else {\n      if (chr === '[') {\n        brackets = true;\n      } else if (chr === ']') {\n        brackets = false;\n      } result += chr;\n    }\n  } return result;\n};\n\nvar handleNCG = function (string) {\n  var length = string.length;\n  var index = 0;\n  var result = '';\n  var named = [];\n  var names = {};\n  var brackets = false;\n  var ncg = false;\n  var groupid = 0;\n  var groupname = '';\n  var chr;\n  for (; index <= length; index++) {\n    chr = charAt(string, index);\n    if (chr === '\\\\') {\n      chr = chr + charAt(string, ++index);\n    } else if (chr === ']') {\n      brackets = false;\n    } else if (!brackets) switch (true) {\n      case chr === '[':\n        brackets = true;\n        break;\n      case chr === '(':\n        if (exec(IS_NCG, stringSlice(string, index + 1))) {\n          index += 2;\n          ncg = true;\n        }\n        result += chr;\n        groupid++;\n        continue;\n      case chr === '>' && ncg:\n        if (groupname === '' || hasOwn(names, groupname)) {\n          throw new SyntaxError('Invalid capture group name');\n        }\n        names[groupname] = true;\n        named[named.length] = [groupname, groupid];\n        ncg = false;\n        groupname = '';\n        continue;\n    }\n    if (ncg) groupname += chr;\n    else result += chr;\n  } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n  var RegExpWrapper = function RegExp(pattern, flags) {\n    var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n    var patternIsRegExp = isRegExp(pattern);\n    var flagsAreUndefined = flags === undefined;\n    var groups = [];\n    var rawPattern = pattern;\n    var rawFlags, dotAll, sticky, handled, result, state;\n\n    if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n      return pattern;\n    }\n\n    if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n      pattern = pattern.source;\n      if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n    }\n\n    pattern = pattern === undefined ? '' : toString(pattern);\n    flags = flags === undefined ? '' : toString(flags);\n    rawPattern = pattern;\n\n    if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n      dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n      if (dotAll) flags = replace(flags, /s/g, '');\n    }\n\n    rawFlags = flags;\n\n    if (MISSED_STICKY && 'sticky' in re1) {\n      sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n      if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n    }\n\n    if (UNSUPPORTED_NCG) {\n      handled = handleNCG(pattern);\n      pattern = handled[0];\n      groups = handled[1];\n    }\n\n    result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n    if (dotAll || sticky || groups.length) {\n      state = enforceInternalState(result);\n      if (dotAll) {\n        state.dotAll = true;\n        state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n      }\n      if (sticky) state.sticky = true;\n      if (groups.length) state.groups = groups;\n    }\n\n    if (pattern !== rawPattern) try {\n      // fails in old engines, but we have no alternatives for unsupported regex syntax\n      createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n    } catch (error) { /* empty */ }\n\n    return result;\n  };\n\n  var proxy = function (key) {\n    key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n      configurable: true,\n      get: function () { return NativeRegExp[key]; },\n      set: function (it) { NativeRegExp[key] = it; }\n    });\n  };\n\n  for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n    proxy(keys[index++]);\n  }\n\n  RegExpPrototype.constructor = RegExpWrapper;\n  RegExpWrapper.prototype = RegExpPrototype;\n  redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n  defineProperty(RegExpPrototype, 'dotAll', {\n    configurable: true,\n    get: function () {\n      if (this === RegExpPrototype) return undefined;\n      // We can't use InternalStateModule.getterFor because\n      // we don't add metadata for regexps created by a literal.\n      if (classof(this) === 'RegExp') {\n        return !!getInternalState(this).dotAll;\n      }\n      throw TypeError('Incompatible receiver, RegExp required');\n    }\n  });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n  exec: exec\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n  return Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call({ dotAll: true, sticky: true }) !== 'sy';\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) objectDefinePropertyModule.f(RegExpPrototype, 'flags', {\n  configurable: true,\n  get: regExpFlags\n});\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n  defineProperty(RegExpPrototype, 'sticky', {\n    configurable: true,\n    get: function () {\n      if (this === RegExpPrototype) return undefined;\n      // We can't use InternalStateModule.getterFor because\n      // we don't add metadata for regexps created by a literal.\n      if (classof(this) === 'RegExp') {\n        return !!getInternalState(this).sticky;\n      }\n      throw TypeError('Incompatible receiver, RegExp required');\n    }\n  });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n  var execCalled = false;\n  var re = /[ac]/;\n  re.exec = function () {\n    execCalled = true;\n    return /./.exec.apply(this, arguments);\n  };\n  return re.test('abc') === true && execCalled;\n}();\n\nvar Error = global.Error;\nvar un$Test = uncurryThis(/./.test);\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n  test: function (str) {\n    var exec = this.exec;\n    if (!isCallable(exec)) return un$Test(this, str);\n    var result = call(exec, this, str);\n    if (result !== null && !isObject(result)) {\n      throw new Error('RegExp exec method returned something other than an Object or null');\n    }\n    return !!result;\n  }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n  redefine(RegExp.prototype, TO_STRING, function toString() {\n    var R = anObject(this);\n    var p = $toString(R.source);\n    var rf = R.flags;\n    var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n    return '/' + p + '/' + f;\n  }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n  return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n  anchor: function anchor(name) {\n    return createHTML(this, 'a', 'name', name);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n  return '𠮷'.at(-2) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'String', proto: true, forced: FORCED }, {\n  at: function at(index) {\n    var S = toString(requireObjectCoercible(this));\n    var len = S.length;\n    var relativeIndex = toIntegerOrInfinity(index);\n    var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n    return (k < 0 || k >= len) ? undefined : charAt(S, k);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.es/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n  big: function big() {\n    return createHTML(this, 'big', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.es/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n  blink: function blink() {\n    return createHTML(this, 'blink', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.es/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n  bold: function bold() {\n    return createHTML(this, 'b', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n  codePointAt: function codePointAt(pos) {\n    return codeAt(this, pos);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar un$EndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\n    var that = toString(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = that.length;\n    var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n    var search = toString(searchString);\n    return un$EndsWith\n      ? un$EndsWith(that, search, end)\n      : slice(that, end - search.length, end) === search;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n  fixed: function fixed() {\n    return createHTML(this, 'tt', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n  fontcolor: function fontcolor(color) {\n    return createHTML(this, 'font', 'color', color);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n  fontsize: function fontsize(size) {\n    return createHTML(this, 'font', 'size', size);\n  }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar RangeError = global.RangeError;\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\nvar join = uncurryThis([].join);\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  fromCodePoint: function fromCodePoint(x) {\n    var elements = [];\n    var length = arguments.length;\n    var i = 0;\n    var code;\n    while (length > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n      elements[i] = code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);\n    } return join(elements, '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~stringIndexOf(\n      toString(requireObjectCoercible(this)),\n      toString(notARegExp(searchString)),\n      arguments.length > 1 ? arguments[1] : undefined\n    );\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.es/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n  italics: function italics() {\n    return createHTML(this, 'i', '', '');\n  }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: toString(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n  link: function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  }\n});\n","'use strict';\n/* eslint-disable es/no-string-prototype-matchall -- safe */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof-raw');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar regExpFlags = require('../internals/regexp-flags');\nvar getMethod = require('../internals/get-method');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\nvar getFlags = uncurryThis(regExpFlags);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar un$MatchAll = uncurryThis(''.matchAll);\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!un$MatchAll && !fails(function () {\n  un$MatchAll('a', /./);\n});\n\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {\n  setInternalState(this, {\n    type: REGEXP_STRING_ITERATOR,\n    regexp: regexp,\n    string: string,\n    global: $global,\n    unicode: fullUnicode,\n    done: false\n  });\n}, REGEXP_STRING, function next() {\n  var state = getInternalState(this);\n  if (state.done) return { value: undefined, done: true };\n  var R = state.regexp;\n  var S = state.string;\n  var match = regExpExec(R, S);\n  if (match === null) return { value: undefined, done: state.done = true };\n  if (state.global) {\n    if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n    return { value: match, done: false };\n  }\n  state.done = true;\n  return { value: match, done: false };\n});\n\nvar $matchAll = function (string) {\n  var R = anObject(this);\n  var S = toString(string);\n  var C, flagsValue, flags, matcher, $global, fullUnicode;\n  C = speciesConstructor(R, RegExp);\n  flagsValue = R.flags;\n  if (flagsValue === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype)) {\n    flagsValue = getFlags(R);\n  }\n  flags = flagsValue === undefined ? '' : toString(flagsValue);\n  matcher = new C(C === RegExp ? R.source : R, flags);\n  $global = !!~stringIndexOf(flags, 'g');\n  fullUnicode = !!~stringIndexOf(flags, 'u');\n  matcher.lastIndex = toLength(R.lastIndex);\n  return new $RegExpStringIterator(matcher, S, $global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n  matchAll: function matchAll(regexp) {\n    var O = requireObjectCoercible(this);\n    var flags, S, matcher, rx;\n    if (regexp != null) {\n      if (isRegExp(regexp)) {\n        flags = toString(requireObjectCoercible('flags' in RegExpPrototype\n          ? regexp.flags\n          : getFlags(regexp)\n        ));\n        if (!~stringIndexOf(flags, 'g')) throw TypeError('`.matchAll` does not allow non-global regexes');\n      }\n      if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);\n      matcher = getMethod(regexp, MATCH_ALL);\n      if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;\n      if (matcher) return call(matcher, regexp, O);\n    } else if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);\n    S = toString(O);\n    rx = new RegExp(regexp, 'g');\n    return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);\n  }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || redefine(RegExpPrototype, MATCH_ALL, $matchAll);\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.es/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = requireObjectCoercible(this);\n      var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);\n      return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n    function (string) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(nativeMatch, rx, S);\n\n      if (res.done) return res.value;\n\n      if (!rx.global) return regExpExec(rx, S);\n\n      var fullUnicode = rx.unicode;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = toString(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n    return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padStart: function padStart(maxLength /* , fillString = ' ' */) {\n    return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toObject = require('../internals/to-object');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar push = uncurryThis([].push);\nvar join = uncurryThis([].join);\n\n// `String.raw` method\n// https://tc39.es/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n  raw: function raw(template) {\n    var rawTemplate = toIndexedObject(toObject(template).raw);\n    var literalSegments = lengthOfArrayLike(rawTemplate);\n    var argumentsLength = arguments.length;\n    var elements = [];\n    var i = 0;\n    while (literalSegments > i) {\n      push(elements, toString(rawTemplate[i++]));\n      if (i === literalSegments) return join(elements, '');\n      if (i < argumentsLength) push(elements, toString(arguments[i]));\n    }\n  }\n});\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n  repeat: repeat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpFlags = require('../internals/regexp-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\nvar getFlags = uncurryThis(regExpFlags);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n  if (fromIndex > string.length) return -1;\n  if (searchValue === '') return fromIndex;\n  return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n  replaceAll: function replaceAll(searchValue, replaceValue) {\n    var O = requireObjectCoercible(this);\n    var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n    var position = 0;\n    var endOfLastMatch = 0;\n    var result = '';\n    if (searchValue != null) {\n      IS_REG_EXP = isRegExp(searchValue);\n      if (IS_REG_EXP) {\n        flags = toString(requireObjectCoercible('flags' in RegExpPrototype\n          ? searchValue.flags\n          : getFlags(searchValue)\n        ));\n        if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');\n      }\n      replacer = getMethod(searchValue, REPLACE);\n      if (replacer) {\n        return call(replacer, searchValue, O, replaceValue);\n      } else if (IS_PURE && IS_REG_EXP) {\n        return replace(toString(O), searchValue, replaceValue);\n      }\n    }\n    string = toString(O);\n    searchString = toString(searchValue);\n    functionalReplace = isCallable(replaceValue);\n    if (!functionalReplace) replaceValue = toString(replaceValue);\n    searchLength = searchString.length;\n    advanceBy = max(1, searchLength);\n    position = stringIndexOf(string, searchString, 0);\n    while (position !== -1) {\n      replacement = functionalReplace\n        ? toString(replaceValue(searchString, position, string))\n        : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n      result += stringSlice(string, endOfLastMatch, position) + replacement;\n      endOfLastMatch = position + searchLength;\n      position = stringIndexOf(string, searchString, position + advanceBy);\n    }\n    if (endOfLastMatch < string.length) {\n      result += stringSlice(string, endOfLastMatch);\n    }\n    return result;\n  }\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n  // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n  return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n  if (/./[REPLACE]) {\n    return /./[REPLACE]('a', '$0') === '';\n  }\n  return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n  return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.es/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = requireObjectCoercible(this);\n      var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n      return replacer\n        ? call(replacer, searchValue, O, replaceValue)\n        : call(nativeReplace, toString(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n    function (string, replaceValue) {\n      var rx = anObject(this);\n      var S = toString(string);\n\n      if (\n        typeof replaceValue == 'string' &&\n        stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n        stringIndexOf(replaceValue, '$<') === -1\n      ) {\n        var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n        if (res.done) return res.value;\n      }\n\n      var functionalReplace = isCallable(replaceValue);\n      if (!functionalReplace) replaceValue = toString(replaceValue);\n\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n\n        push(results, result);\n        if (!global) break;\n\n        var matchStr = toString(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n\n        var matched = toString(result[0]);\n        var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = concat([matched], captures, position, S);\n          if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n          var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + stringSlice(S, nextSourcePosition);\n    }\n  ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n  return [\n    // `String.prototype.search` method\n    // https://tc39.es/ecma262/#sec-string.prototype.search\n    function search(regexp) {\n      var O = requireObjectCoercible(this);\n      var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n      return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n    },\n    // `RegExp.prototype[@@search]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n    function (string) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(nativeSearch, rx, S);\n\n      if (res.done) return res.value;\n\n      var previousLastIndex = rx.lastIndex;\n      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n      var result = regExpExec(rx, S);\n      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n      return result === null ? -1 : result.index;\n    }\n  ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n  small: function small() {\n    return createHTML(this, 'small', '', '');\n  }\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n  // eslint-disable-next-line regexp/no-empty-group -- required for testing\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n  var internalSplit;\n  if (\n    'abbc'.split(/(b)*/)[1] == 'c' ||\n    // eslint-disable-next-line regexp/no-empty-group -- required for testing\n    'test'.split(/(?:)/, -1).length != 4 ||\n    'ab'.split(/(?:ab)*/).length != 2 ||\n    '.'.split(/(.?)(.?)/).length != 4 ||\n    // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n    '.'.split(/()()/).length > 1 ||\n    ''.split(/.?/).length\n  ) {\n    // based on es5-shim implementation, need to rework it\n    internalSplit = function (separator, limit) {\n      var string = toString(requireObjectCoercible(this));\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (separator === undefined) return [string];\n      // If `separator` is not a regex, use native split\n      if (!isRegExp(separator)) {\n        return call(nativeSplit, string, separator, lim);\n      }\n      var output = [];\n      var flags = (separator.ignoreCase ? 'i' : '') +\n                  (separator.multiline ? 'm' : '') +\n                  (separator.unicode ? 'u' : '') +\n                  (separator.sticky ? 'y' : '');\n      var lastLastIndex = 0;\n      // Make `global` and avoid `lastIndex` issues by working with a copy\n      var separatorCopy = new RegExp(separator.source, flags + 'g');\n      var match, lastIndex, lastLength;\n      while (match = call(regexpExec, separatorCopy, string)) {\n        lastIndex = separatorCopy.lastIndex;\n        if (lastIndex > lastLastIndex) {\n          push(output, stringSlice(string, lastLastIndex, match.index));\n          if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n          lastLength = match[0].length;\n          lastLastIndex = lastIndex;\n          if (output.length >= lim) break;\n        }\n        if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n      }\n      if (lastLastIndex === string.length) {\n        if (lastLength || !exec(separatorCopy, '')) push(output, '');\n      } else push(output, stringSlice(string, lastLastIndex));\n      return output.length > lim ? arraySlice(output, 0, lim) : output;\n    };\n  // Chakra, V8\n  } else if ('0'.split(undefined, 0).length) {\n    internalSplit = function (separator, limit) {\n      return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n    };\n  } else internalSplit = nativeSplit;\n\n  return [\n    // `String.prototype.split` method\n    // https://tc39.es/ecma262/#sec-string.prototype.split\n    function split(separator, limit) {\n      var O = requireObjectCoercible(this);\n      var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n      return splitter\n        ? call(splitter, separator, O, limit)\n        : call(internalSplit, toString(O), separator, limit);\n    },\n    // `RegExp.prototype[@@split]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n    //\n    // NOTE: This cannot be properly polyfilled in engines that don't support\n    // the 'y' flag.\n    function (string, limit) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n      if (res.done) return res.value;\n\n      var C = speciesConstructor(rx, RegExp);\n\n      var unicodeMatching = rx.unicode;\n      var flags = (rx.ignoreCase ? 'i' : '') +\n                  (rx.multiline ? 'm' : '') +\n                  (rx.unicode ? 'u' : '') +\n                  (UNSUPPORTED_Y ? 'g' : 'y');\n\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n      var p = 0;\n      var q = 0;\n      var A = [];\n      while (q < S.length) {\n        splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n        var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n        var e;\n        if (\n          z === null ||\n          (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n        ) {\n          q = advanceStringIndex(S, q, unicodeMatching);\n        } else {\n          push(A, stringSlice(S, p, q));\n          if (A.length === lim) return A;\n          for (var i = 1; i <= z.length - 1; i++) {\n            push(A, z[i]);\n            if (A.length === lim) return A;\n          }\n          q = p = e;\n        }\n      }\n      push(A, stringSlice(S, p));\n      return A;\n    }\n  ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = toString(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = toString(searchString);\n    return un$StartsWith\n      ? un$StartsWith(that, search, index)\n      : stringSlice(that, index, index + search.length) === search;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.es/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n  strike: function strike() {\n    return createHTML(this, 'strike', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n  sub: function sub() {\n    return createHTML(this, 'sub', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\nvar min = Math.min;\n\n// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing\nvar FORCED = !''.substr || 'ab'.substr(-1) !== 'b';\n\n// `String.prototype.substr` method\n// https://tc39.es/ecma262/#sec-string.prototype.substr\n$({ target: 'String', proto: true, forced: FORCED }, {\n  substr: function substr(start, length) {\n    var that = toString(requireObjectCoercible(this));\n    var size = that.length;\n    var intStart = toIntegerOrInfinity(start);\n    var intLength, intEnd;\n    if (intStart === Infinity) intStart = 0;\n    if (intStart < 0) intStart = max(size + intStart, 0);\n    intLength = length === undefined ? size : toIntegerOrInfinity(length);\n    if (intLength <= 0 || intLength === Infinity) return '';\n    intEnd = min(intStart + intLength, size);\n    return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.es/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n  sup: function sup() {\n    return createHTML(this, 'sup', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimEnd');\n\nvar trimEnd = FORCED ? function trimEnd() {\n  return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n\n// `String.prototype.{ trimEnd, trimRight }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\n$({ target: 'String', proto: true, name: 'trimEnd', forced: FORCED }, {\n  trimEnd: trimEnd,\n  trimRight: trimEnd\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n  return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\n$({ target: 'String', proto: true, name: 'trimStart', forced: FORCED }, {\n  trimStart: trimStart,\n  trimLeft: trimStart\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n  trim: function trim() {\n    return $trim(this);\n  }\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n  // Safari 12 bug\n  NativeSymbol().description !== undefined\n)) {\n  var EmptyStringDescriptionStore = {};\n  // wrap Symbol constructor for correct work with undefined description\n  var SymbolWrapper = function Symbol() {\n    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n    var result = isPrototypeOf(SymbolPrototype, this)\n      ? new NativeSymbol(description)\n      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n    if (description === '') EmptyStringDescriptionStore[result] = true;\n    return result;\n  };\n\n  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n  SymbolWrapper.prototype = SymbolPrototype;\n  SymbolPrototype.constructor = SymbolWrapper;\n\n  var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n  var symbolToString = uncurryThis(SymbolPrototype.toString);\n  var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n  var replace = uncurryThis(''.replace);\n  var stringSlice = uncurryThis(''.slice);\n\n  defineProperty(SymbolPrototype, 'description', {\n    configurable: true,\n    get: function description() {\n      var symbol = symbolValueOf(this);\n      var string = symbolToString(symbol);\n      if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n      var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n      return desc === '' ? undefined : desc;\n    }\n  });\n\n  $({ global: true, forced: true }, {\n    Symbol: SymbolWrapper\n  });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n  return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (O, P, Attributes) {\n  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n  nativeDefineProperty(O, P, Attributes);\n  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n  }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n  var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n  setInternalState(symbol, {\n    type: SYMBOL,\n    tag: tag,\n    description: description\n  });\n  if (!DESCRIPTORS) symbol.description = description;\n  return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n  anObject(O);\n  var key = toPropertyKey(P);\n  anObject(Attributes);\n  if (hasOwn(AllSymbols, key)) {\n    if (!Attributes.enumerable) {\n      if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n      O[HIDDEN][key] = true;\n    } else {\n      if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n    } return setSymbolDescriptor(O, key, Attributes);\n  } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n  anObject(O);\n  var properties = toIndexedObject(Properties);\n  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n  $forEach(keys, function (key) {\n    if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n  });\n  return O;\n};\n\nvar $create = function create(O, Properties) {\n  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n  var P = toPropertyKey(V);\n  var enumerable = call(nativePropertyIsEnumerable, this, P);\n  if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n  return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n    ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n  var it = toIndexedObject(O);\n  var key = toPropertyKey(P);\n  if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n  var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n  if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n    descriptor.enumerable = true;\n  }\n  return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n  var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n  });\n  return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n      push(result, AllSymbols[key]);\n    }\n  });\n  return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n  $Symbol = function Symbol() {\n    if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n    var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n    var tag = uid(description);\n    var setter = function (value) {\n      if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n      if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n    };\n    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n    return wrap(tag, description);\n  };\n\n  SymbolPrototype = $Symbol[PROTOTYPE];\n\n  redefine(SymbolPrototype, 'toString', function toString() {\n    return getInternalState(this).tag;\n  });\n\n  redefine($Symbol, 'withoutSetter', function (description) {\n    return wrap(uid(description), description);\n  });\n\n  propertyIsEnumerableModule.f = $propertyIsEnumerable;\n  definePropertyModule.f = $defineProperty;\n  definePropertiesModule.f = $defineProperties;\n  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n  wrappedWellKnownSymbolModule.f = function (name) {\n    return wrap(wellKnownSymbol(name), name);\n  };\n\n  if (DESCRIPTORS) {\n    // https://github.com/tc39/proposal-Symbol-description\n    nativeDefineProperty(SymbolPrototype, 'description', {\n      configurable: true,\n      get: function description() {\n        return getInternalState(this).description;\n      }\n    });\n    if (!IS_PURE) {\n      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n  Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n  defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Symbol.for` method\n  // https://tc39.es/ecma262/#sec-symbol.for\n  'for': function (key) {\n    var string = $toString(key);\n    if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n    var symbol = $Symbol(string);\n    StringToSymbolRegistry[string] = symbol;\n    SymbolToStringRegistry[symbol] = string;\n    return symbol;\n  },\n  // `Symbol.keyFor` method\n  // https://tc39.es/ecma262/#sec-symbol.keyfor\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n    if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n  },\n  useSetter: function () { USE_SETTER = true; },\n  useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n  // `Object.create` method\n  // https://tc39.es/ecma262/#sec-object.create\n  create: $create,\n  // `Object.defineProperty` method\n  // https://tc39.es/ecma262/#sec-object.defineproperty\n  defineProperty: $defineProperty,\n  // `Object.defineProperties` method\n  // https://tc39.es/ecma262/#sec-object.defineproperties\n  defineProperties: $defineProperties,\n  // `Object.getOwnPropertyDescriptor` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Object.getOwnPropertyNames` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertynames\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // `Object.getOwnPropertySymbols` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return getOwnPropertySymbolsModule.f(toObject(it));\n  }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n    var symbol = $Symbol();\n    // MS Edge converts symbol values to JSON as {}\n    return $stringify([symbol]) != '[null]'\n      // WebKit converts symbol values to JSON as null\n      || $stringify({ a: symbol }) != '{}'\n      // V8 throws on boxed symbols\n      || $stringify(Object(symbol)) != '{}';\n  });\n\n  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n    // eslint-disable-next-line no-unused-vars -- required for `.length`\n    stringify: function stringify(it, replacer, space) {\n      var args = arraySlice(arguments);\n      var $replacer = replacer;\n      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n      if (!isArray(replacer)) replacer = function (key, value) {\n        if (isCallable($replacer)) value = call($replacer, this, key, value);\n        if (!isSymbol(value)) return value;\n      };\n      args[1] = replacer;\n      return apply($stringify, null, args);\n    }\n  });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n  var valueOf = SymbolPrototype.valueOf;\n  // eslint-disable-next-line no-unused-vars -- required for .length\n  redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n    // TODO: improve hint logic\n    return call(valueOf, this);\n  });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n  var O = aTypedArray(this);\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n  return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n  return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n  return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar call = require('../internals/function-call');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n  var length = arguments.length;\n  return call(\n    $fill,\n    aTypedArray(this),\n    value,\n    length > 1 ? arguments[1] : undefined,\n    length > 2 ? arguments[2] : undefined\n  );\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n  var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  return fromSpeciesAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n  return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n  return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n  return function Float32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n  return function Float64Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n  $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n  return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n  return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n  return function Int16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n  return function Int32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n  return function Int8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n  TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n  && TypedArrayPrototype.values\n  && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n  && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n  return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n  return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n  return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n  return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n  var length = arguments.length;\n  return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n  return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n    return new (typedArraySpeciesConstructor(O))(length);\n  });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.es/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n  var index = 0;\n  var length = arguments.length;\n  var result = new (aTypedArrayConstructor(this))(length);\n  while (length > index) result[index] = arguments[index++];\n  return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n  var length = arguments.length;\n  return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n  var length = arguments.length;\n  return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n  var that = this;\n  var length = aTypedArray(that).length;\n  var middle = floor(length / 2);\n  var index = 0;\n  var value;\n  while (index < middle) {\n    value = that[index];\n    that[index++] = that[--length];\n    that[length] = value;\n  } return that;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n  // eslint-disable-next-line es/no-typed-arrays -- required for testing\n  var array = new Uint8ClampedArray(2);\n  call($set, array, { length: 1, 0: 3 }, 1);\n  return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n  var array = new Int8Array(2);\n  array.set(1);\n  array.set('2', 1);\n  return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var src = toIndexedObject(arrayLike);\n  if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n  var length = this.length;\n  var len = lengthOfArrayLike(src);\n  var index = 0;\n  if (len + offset > length) throw RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line es/no-typed-arrays -- required for testing\n  new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n  var list = arraySlice(aTypedArray(this), start, end);\n  var C = typedArraySpeciesConstructor(this);\n  var index = 0;\n  var length = list.length;\n  var result = new C(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n  return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar Array = global.Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {\n  un$Sort(new Uint16Array(2), null);\n}) && fails(function () {\n  un$Sort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!un$Sort && !fails(function () {\n  // feature detection can be too slow, so check engines versions\n  if (V8) return V8 < 74;\n  if (FF) return FF < 67;\n  if (IE_OR_EDGE) return true;\n  if (WEBKIT) return WEBKIT < 602;\n\n  var array = new Uint16Array(516);\n  var expected = Array(516);\n  var index, mod;\n\n  for (index = 0; index < 516; index++) {\n    mod = index % 4;\n    array[index] = 515 - index;\n    expected[index] = index - 2 * mod + 3;\n  }\n\n  un$Sort(array, function (a, b) {\n    return (a / 4 | 0) - (b / 4 | 0);\n  });\n\n  for (index = 0; index < 516; index++) {\n    if (array[index] !== expected[index]) return true;\n  }\n});\n\nvar getSortCompare = function (comparefn) {\n  return function (x, y) {\n    if (comparefn !== undefined) return +comparefn(x, y) || 0;\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (y !== y) return -1;\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (x !== x) return 1;\n    if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n    return x > y;\n  };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n  if (comparefn !== undefined) aCallable(comparefn);\n  if (STABLE_SORT) return un$Sort(this, comparefn);\n\n  return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n  var O = aTypedArray(this);\n  var length = O.length;\n  var beginIndex = toAbsoluteIndex(begin, length);\n  var C = typedArraySpeciesConstructor(O);\n  return new C(\n    O.buffer,\n    O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n    toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n  );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n  $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n  return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n  Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n  return apply(\n    $toLocaleString,\n    TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n    arraySlice(arguments)\n  );\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n  arrayToString = function toString() {\n    return join(this);\n  };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n  return function Uint16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n  return function Uint32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n  return function Uint8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n  return function Uint8ClampedArray(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n}, true);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\n\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar stringSlice = uncurryThis(''.slice);\n\nvar hex2 = /^[\\da-f]{2}$/i;\nvar hex4 = /^[\\da-f]{4}$/i;\n\n// `unescape` method\n// https://tc39.es/ecma262/#sec-unescape-string\n$({ global: true }, {\n  unescape: function unescape(string) {\n    var str = toString(string);\n    var result = '';\n    var length = str.length;\n    var index = 0;\n    var chr, part;\n    while (index < length) {\n      chr = charAt(str, index++);\n      if (chr === '%') {\n        if (charAt(str, index) === 'u') {\n          part = stringSlice(str, index + 1, index + 5);\n          if (exec(hex4, part)) {\n            result += fromCharCode(parseInt(part, 16));\n            index += 5;\n            continue;\n          }\n        } else {\n          part = stringSlice(str, index, index + 2);\n          if (exec(hex2, part)) {\n            result += fromCharCode(parseInt(part, 16));\n            index += 2;\n            continue;\n          }\n        }\n      }\n      result += chr;\n    } return result;\n  }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar isExtensible = require('../internals/object-is-extensible');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n  return function WeakMap() {\n    return init(this, arguments.length ? arguments[0] : undefined);\n  };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n  InternalMetadataModule.enable();\n  var WeakMapPrototype = $WeakMap.prototype;\n  var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n  var nativeHas = uncurryThis(WeakMapPrototype.has);\n  var nativeGet = uncurryThis(WeakMapPrototype.get);\n  var nativeSet = uncurryThis(WeakMapPrototype.set);\n  redefineAll(WeakMapPrototype, {\n    'delete': function (key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeDelete(this, key) || state.frozen['delete'](key);\n      } return nativeDelete(this, key);\n    },\n    has: function has(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas(this, key) || state.frozen.has(key);\n      } return nativeHas(this, key);\n    },\n    get: function get(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n      } return nativeGet(this, key);\n    },\n    set: function set(key, value) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceInternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n      } else nativeSet(this, key, value);\n      return this;\n    }\n  });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n  return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar hasOwn = require('../internals/has-own-property');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar ctoi = require('../internals/base64-map').ctoi;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]+$/;\n\nvar $atob = getBuiltIn('atob');\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar exec = uncurryThis(disallowed.exec);\n\nvar NO_SPACES_IGNORE = fails(function () {\n  return atob(' ') !== '';\n});\n\nvar NO_ARG_RECEIVING_CHECK = !NO_SPACES_IGNORE && !fails(function () {\n  $atob();\n});\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, enumerable: true, forced: NO_SPACES_IGNORE || NO_ARG_RECEIVING_CHECK }, {\n  atob: function atob(data) {\n    validateArgumentsLength(arguments.length, 1);\n    if (NO_ARG_RECEIVING_CHECK) return $atob(data);\n    var string = replace(toString(data), whitespaces, '');\n    var output = '';\n    var position = 0;\n    var bc = 0;\n    var chr, bs;\n    if (string.length % 4 == 0) {\n      string = replace(string, finalEq, '');\n    }\n    if (string.length % 4 == 1 || exec(disallowed, string)) {\n      throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n    }\n    while (chr = charAt(string, position++)) {\n      if (hasOwn(ctoi, chr)) {\n        bs = bc % 4 ? bs * 64 + ctoi[chr] : ctoi[chr];\n        if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));\n      }\n    } return output;\n  }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar itoc = require('../internals/base64-map').itoc;\n\nvar $btoa = getBuiltIn('btoa');\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\nvar NO_ARG_RECEIVING_CHECK = !!$btoa && !fails(function () {\n  $btoa();\n});\n\n// `btoa` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa\n$({ global: true, enumerable: true, forced: NO_ARG_RECEIVING_CHECK }, {\n  btoa: function btoa(data) {\n    validateArgumentsLength(arguments.length, 1);\n    if (NO_ARG_RECEIVING_CHECK) return $btoa(data);\n    var string = toString(data);\n    var output = '';\n    var position = 0;\n    var map = itoc;\n    var block, charCode;\n    while (charAt(string, position) || (map = '=', position % 1)) {\n      charCode = charCodeAt(string, position += 3 / 4);\n      if (charCode > 0xFF) {\n        throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError');\n      }\n      block = block << 8 | charCode;\n      output += charAt(map, 63 & block >> 8 - position % 1 * 8);\n    } return output;\n  }\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n  // some Chrome versions have non-configurable methods on DOMTokenList\n  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n  } catch (error) {\n    CollectionPrototype.forEach = forEach;\n  }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  if (DOMIterables[COLLECTION_NAME]) {\n    handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n  }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    if (!CollectionPrototype[TO_STRING_TAG]) {\n      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n    }\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar $ = require('../internals/export');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n  try {\n    // NodeJS < 15.0 does not expose `MessageChannel` to global\n    var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel;\n    // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n    new MessageChannel().port1.postMessage(new WeakMap());\n  } catch (error) {\n    if (error.name == DATA_CLONE_ERR && error.code == 25) return error.constructor;\n  }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n  return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n  anInstance(this, DOMExceptionPrototype);\n  var argumentsLength = arguments.length;\n  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n  var code = codeFor(name);\n  setInternalState(this, {\n    type: DOM_EXCEPTION,\n    name: name,\n    message: message,\n    code: code\n  });\n  if (!DESCRIPTORS) {\n    this.name = name;\n    this.message = message;\n    this.code = code;\n  }\n  if (HAS_STACK) {\n    var error = Error(message);\n    error.name = DOM_EXCEPTION;\n    defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n  }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n  return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n  return createGetterDescriptor(function () {\n    return getInternalState(this)[key];\n  });\n};\n\nif (DESCRIPTORS) defineProperties(DOMExceptionPrototype, {\n  name: getterFor('name'),\n  message: getterFor('message'),\n  code: getterFor('code')\n});\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n  return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n  return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n  return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n  || NativeDOMException[DATA_CLONE_ERR] !== 25\n  || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, forced: FORCED_CONSTRUCTOR }, {\n  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n  redefine(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n  defineProperty(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n    return codeFor(anObject(this).name);\n  }));\n}\n\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n  var constant = DOMExceptionConstants[key];\n  var constantName = constant.s;\n  var descriptor = createPropertyDescriptor(6, constant.c);\n  if (!hasOwn(PolyfilledDOMException, constantName)) {\n    defineProperty(PolyfilledDOMException, constantName, descriptor);\n  }\n  if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n    defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n  }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n  anInstance(this, DOMExceptionPrototype);\n  var argumentsLength = arguments.length;\n  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n  var that = new NativeDOMException(message, name);\n  var error = Error(message);\n  error.name = DOM_EXCEPTION;\n  defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n  inheritIfRequired(that, this, $DOMException);\n  return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n  if (!IS_PURE) {\n    defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n  }\n\n  for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n    var constant = DOMExceptionConstants[key];\n    var constantName = constant.s;\n    if (!hasOwn(PolyfilledDOMException, constantName)) {\n      defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n    }\n  }\n}\n","var getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar task = require('../internals/task');\n\nvar FORCED = !global.setImmediate || !global.clearImmediate;\n\n// http://w3c.github.io/setImmediate/\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n  // `setImmediate` method\n  // http://w3c.github.io/setImmediate/#si-setImmediate\n  setImmediate: task.set,\n  // `clearImmediate` method\n  // http://w3c.github.io/setImmediate/#si-clearImmediate\n  clearImmediate: task.clear\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar microtask = require('../internals/microtask');\nvar aCallable = require('../internals/a-callable');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar process = global.process;\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, noTargetGet: true }, {\n  queueMicrotask: function queueMicrotask(fn) {\n    validateArgumentsLength(arguments.length, 1);\n    aCallable(fn);\n    var domain = IS_NODE && process.domain;\n    microtask(domain ? domain.bind(fn) : fn);\n  }\n});\n","var IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltin = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar regExpFlags = require('../internals/regexp-flags');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar Object = global.Object;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Set = getBuiltin('Set');\nvar Map = getBuiltin('Map');\nvar MapPrototype = Map.prototype;\nvar mapHas = uncurryThis(MapPrototype.has);\nvar mapGet = uncurryThis(MapPrototype.get);\nvar mapSet = uncurryThis(MapPrototype.set);\nvar setAdd = uncurryThis(Set.prototype.add);\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar booleanValueOf = uncurryThis(true.valueOf);\nvar numberValueOf = uncurryThis(1.0.valueOf);\nvar stringValueOf = uncurryThis(''.valueOf);\nvar getFlags = uncurryThis(regExpFlags);\nvar getTime = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n  return !fails(function () {\n    var set1 = new global.Set([7]);\n    var set2 = structuredCloneImplementation(set1);\n    var number = structuredCloneImplementation(Object(7));\n    return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n  }) && structuredCloneImplementation;\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsSemantic = function (structuredCloneImplementation) {\n  return !fails(function () {\n    var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n    return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n  }) && structuredCloneImplementation;\n};\n\n// FF94+, Safari TP134+, Chrome Canary 98+, NodeJS 17.0+, Deno 1.13+\n// current FF and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// no one of current implementations supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = global.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE || !checkNewErrorsSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// current Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor, structured cloning implementation\n//   from `performance.mark` is too naive and can't clone, for example, `RegExp` or some boxed primitives\n//   https://github.com/nodejs/node/issues/40840\n// no one of current implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n  return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n  throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, kind) {\n  throw new DOMException((kind || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar structuredCloneInternal = function (value, map) {\n  if (isSymbol(value)) throwUncloneable('Symbol');\n  if (!isObject(value)) return value;\n  // effectively preserves circular references\n  if (map) {\n    if (mapHas(map, value)) return mapGet(map, value);\n  } else map = new Map();\n\n  var type = classof(value);\n  var deep = false;\n  var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n\n  switch (type) {\n    case 'Array':\n      cloned = [];\n      deep = true;\n      break;\n    case 'Object':\n      cloned = {};\n      deep = true;\n      break;\n    case 'Map':\n      cloned = new Map();\n      deep = true;\n      break;\n    case 'Set':\n      cloned = new Set();\n      deep = true;\n      break;\n    case 'RegExp':\n      // in this block because of a Safari 14.1 bug\n      // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n      cloned = new RegExp(value.source, 'flags' in value ? value.flags : getFlags(value));\n      break;\n    case 'Error':\n      name = value.name;\n      switch (name) {\n        case 'AggregateError':\n          cloned = getBuiltin('AggregateError')([]);\n          break;\n        case 'EvalError':\n          cloned = EvalError();\n          break;\n        case 'RangeError':\n          cloned = RangeError();\n          break;\n        case 'ReferenceError':\n          cloned = ReferenceError();\n          break;\n        case 'SyntaxError':\n          cloned = SyntaxError();\n          break;\n        case 'TypeError':\n          cloned = TypeError();\n          break;\n        case 'URIError':\n          cloned = URIError();\n          break;\n        case 'CompileError':\n          cloned = CompileError();\n          break;\n        case 'LinkError':\n          cloned = LinkError();\n          break;\n        case 'RuntimeError':\n          cloned = RuntimeError();\n          break;\n        default:\n          cloned = Error();\n      }\n      deep = true;\n      break;\n    case 'DOMException':\n      cloned = new DOMException(value.message, value.name);\n      deep = true;\n      break;\n    case 'DataView':\n    case 'Int8Array':\n    case 'Uint8Array':\n    case 'Uint8ClampedArray':\n    case 'Int16Array':\n    case 'Uint16Array':\n    case 'Int32Array':\n    case 'Uint32Array':\n    case 'Float32Array':\n    case 'Float64Array':\n    case 'BigInt64Array':\n    case 'BigUint64Array':\n      C = global[type];\n      // in some old engines like Safari 9, typeof C is 'object'\n      // on Uint8ClampedArray or some other constructors\n      if (!isObject(C)) throwUnpolyfillable(type);\n      cloned = new C(\n        // this is safe, since arraybuffer cannot have circular references\n        structuredCloneInternal(value.buffer, map),\n        value.byteOffset,\n        type === 'DataView' ? value.byteLength : value.length\n      );\n      break;\n    case 'DOMQuad':\n      try {\n        cloned = new DOMQuad(\n          structuredCloneInternal(value.p1, map),\n          structuredCloneInternal(value.p2, map),\n          structuredCloneInternal(value.p3, map),\n          structuredCloneInternal(value.p4, map)\n        );\n      } catch (error) {\n        if (nativeRestrictedStructuredClone) {\n          cloned = nativeRestrictedStructuredClone(value);\n        } else throwUnpolyfillable(type);\n      }\n      break;\n    case 'FileList':\n      C = global.DataTransfer;\n      if (isConstructor(C)) {\n        dataTransfer = new C();\n        for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n          dataTransfer.items.add(structuredCloneInternal(value[i], map));\n        }\n        cloned = dataTransfer.files;\n      } else if (nativeRestrictedStructuredClone) {\n        cloned = nativeRestrictedStructuredClone(value);\n      } else throwUnpolyfillable(type);\n      break;\n    case 'ImageData':\n      // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n      try {\n        cloned = new ImageData(\n          structuredCloneInternal(value.data, map),\n          value.width,\n          value.height,\n          { colorSpace: value.colorSpace }\n        );\n      } catch (error) {\n        if (nativeRestrictedStructuredClone) {\n          cloned = nativeRestrictedStructuredClone(value);\n        } else throwUnpolyfillable(type);\n      } break;\n    default:\n      if (nativeRestrictedStructuredClone) {\n        cloned = nativeRestrictedStructuredClone(value);\n      } else switch (type) {\n        case 'BigInt':\n          // can be a 3rd party polyfill\n          cloned = Object(value.valueOf());\n          break;\n        case 'Boolean':\n          cloned = Object(booleanValueOf(value));\n          break;\n        case 'Number':\n          cloned = Object(numberValueOf(value));\n          break;\n        case 'String':\n          cloned = Object(stringValueOf(value));\n          break;\n        case 'Date':\n          cloned = new Date(getTime(value));\n          break;\n        case 'ArrayBuffer':\n          C = global.DataView;\n          // `ArrayBuffer#slice` is not available in IE10\n          // `ArrayBuffer#slice` and `DataView` are not available in old FF\n          if (!C && typeof value.slice != 'function') throwUnpolyfillable(type);\n          // detached buffers throws in `DataView` and `.slice`\n          try {\n            if (typeof value.slice == 'function') {\n              cloned = value.slice(0);\n            } else {\n              length = value.byteLength;\n              cloned = new ArrayBuffer(length);\n              source = new C(value);\n              target = new C(cloned);\n              for (i = 0; i < length; i++) {\n                target.setUint8(i, source.getUint8(i));\n              }\n            }\n          } catch (error) {\n            throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n          } break;\n        case 'SharedArrayBuffer':\n          // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n          cloned = value;\n          break;\n        case 'Blob':\n          try {\n            cloned = value.slice(0, value.size, value.type);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMPoint':\n        case 'DOMPointReadOnly':\n          C = global[type];\n          try {\n            cloned = C.fromPoint\n              ? C.fromPoint(value)\n              : new C(value.x, value.y, value.z, value.w);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMRect':\n        case 'DOMRectReadOnly':\n          C = global[type];\n          try {\n            cloned = C.fromRect\n              ? C.fromRect(value)\n              : new C(value.x, value.y, value.width, value.height);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'DOMMatrix':\n        case 'DOMMatrixReadOnly':\n          C = global[type];\n          try {\n            cloned = C.fromMatrix\n              ? C.fromMatrix(value)\n              : new C(value);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'AudioData':\n        case 'VideoFrame':\n          if (!isCallable(value.clone)) throwUnpolyfillable(type);\n          try {\n            cloned = value.clone();\n          } catch (error) {\n            throwUncloneable(type);\n          } break;\n        case 'File':\n          try {\n            cloned = new File([value], value.name, value);\n          } catch (error) {\n            throwUnpolyfillable(type);\n          } break;\n        case 'CryptoKey':\n        case 'GPUCompilationMessage':\n        case 'GPUCompilationInfo':\n        case 'ImageBitmap':\n        case 'RTCCertificate':\n        case 'WebAssembly.Module':\n          throwUnpolyfillable(type);\n          // break omitted\n        default:\n          throwUncloneable(type);\n      }\n  }\n\n  mapSet(map, value, cloned);\n\n  if (deep) switch (type) {\n    case 'Array':\n    case 'Object':\n      keys = objectKeys(value);\n      for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n        key = keys[i];\n        createProperty(cloned, key, structuredCloneInternal(value[key], map));\n      } break;\n    case 'Map':\n      value.forEach(function (v, k) {\n        mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n      });\n      break;\n    case 'Set':\n      value.forEach(function (v) {\n        setAdd(cloned, structuredCloneInternal(v, map));\n      });\n      break;\n    case 'Error':\n      createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n      if (hasOwn(value, 'cause')) {\n        createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n      }\n      if (name == 'AggregateError') {\n        cloned.errors = structuredCloneInternal(value.errors, map);\n      } // break omitted\n    case 'DOMException':\n      if (ERROR_STACK_INSTALLABLE) {\n        createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n      }\n  }\n\n  return cloned;\n};\n\nvar PROPER_TRANSFER = nativeStructuredClone && !fails(function () {\n  var buffer = new ArrayBuffer(8);\n  var clone = nativeStructuredClone(buffer, { transfer: [buffer] });\n  return buffer.byteLength != 0 || clone.byteLength != 8;\n});\n\nvar tryToTransfer = function (rawTransfer, map) {\n  if (!isObject(rawTransfer)) throw TypeError('Transfer option cannot be converted to a sequence');\n\n  var transfer = [];\n\n  iterate(rawTransfer, function (value) {\n    push(transfer, anObject(value));\n  });\n\n  var i = 0;\n  var length = lengthOfArrayLike(transfer);\n  var value, type, C, transferredArray, transferred, canvas, context;\n\n  if (PROPER_TRANSFER) {\n    transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n    while (i < length) mapSet(map, transfer[i], transferredArray[i++]);\n  } else while (i < length) {\n    value = transfer[i++];\n    if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n\n    type = classof(value);\n\n    switch (type) {\n      case 'ImageBitmap':\n        C = global.OffscreenCanvas;\n        if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n        try {\n          canvas = new C(value.width, value.height);\n          context = canvas.getContext('bitmaprenderer');\n          context.transferFromImageBitmap(value);\n          transferred = canvas.transferToImageBitmap();\n        } catch (error) { /* empty */ }\n        break;\n      case 'AudioData':\n      case 'VideoFrame':\n        if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n        try {\n          transferred = value.clone();\n          value.close();\n        } catch (error) { /* empty */ }\n        break;\n      case 'ArrayBuffer':\n      case 'MessagePort':\n      case 'OffscreenCanvas':\n      case 'ReadableStream':\n      case 'TransformStream':\n      case 'WritableStream':\n        throwUnpolyfillable(type, TRANSFERRING);\n    }\n\n    if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n    mapSet(map, value, transferred);\n  }\n};\n\n$({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {\n  structuredClone: function structuredClone(value /* , { transfer } */) {\n    var options = validateArgumentsLength(arguments.length, 1) > 1 ? anObject(arguments[1]) : undefined;\n    var transfer = options ? options.transfer : undefined;\n    var map;\n\n    if (transfer !== undefined) {\n      map = new Map();\n      tryToTransfer(transfer, map);\n    }\n\n    return structuredCloneInternal(value, map);\n  }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar userAgent = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar Function = global.Function;\n\nvar wrap = function (scheduler) {\n  return function (handler, timeout /* , ...arguments */) {\n    var boundArgs = validateArgumentsLength(arguments.length, 1) > 2;\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var args = boundArgs ? arraySlice(arguments, 2) : undefined;\n    return scheduler(boundArgs ? function () {\n      apply(fn, this, args);\n    } : fn, timeout);\n  };\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n$({ global: true, bind: true, forced: MSIE }, {\n  // `setTimeout` method\n  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n  setTimeout: wrap(global.setTimeout),\n  // `setInterval` method\n  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n  setInterval: wrap(global.setInterval)\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar n$Fetch = getBuiltIn('fetch');\nvar N$Request = getBuiltIn('Request');\nvar Headers = getBuiltIn('Headers');\nvar RequestPrototype = N$Request && N$Request.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n  try {\n    return decodeURIComponent(sequence);\n  } catch (error) {\n    return sequence;\n  }\n};\n\nvar deserialize = function (it) {\n  var result = replace(it, plus, ' ');\n  var bytes = 4;\n  try {\n    return decodeURIComponent(result);\n  } catch (error) {\n    while (bytes) {\n      result = replace(result, percentSequence(bytes--), percentDecode);\n    }\n    return result;\n  }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+'\n};\n\nvar replacer = function (match) {\n  return replacements[match];\n};\n\nvar serialize = function (it) {\n  return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n  setInternalState(this, {\n    type: URL_SEARCH_PARAMS_ITERATOR,\n    iterator: getIterator(getInternalParamsState(params).entries),\n    kind: kind\n  });\n}, 'Iterator', function next() {\n  var state = getInternalIteratorState(this);\n  var kind = state.kind;\n  var step = state.iterator.next();\n  var entry = step.value;\n  if (!step.done) {\n    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n  } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n  this.entries = [];\n  this.url = null;\n\n  if (init !== undefined) {\n    if (isObject(init)) this.parseObject(init);\n    else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n  }\n};\n\nURLSearchParamsState.prototype = {\n  type: URL_SEARCH_PARAMS,\n  bindURL: function (url) {\n    this.url = url;\n    this.update();\n  },\n  parseObject: function (object) {\n    var iteratorMethod = getIteratorMethod(object);\n    var iterator, next, step, entryIterator, entryNext, first, second;\n\n    if (iteratorMethod) {\n      iterator = getIterator(object, iteratorMethod);\n      next = iterator.next;\n      while (!(step = call(next, iterator)).done) {\n        entryIterator = getIterator(anObject(step.value));\n        entryNext = entryIterator.next;\n        if (\n          (first = call(entryNext, entryIterator)).done ||\n          (second = call(entryNext, entryIterator)).done ||\n          !call(entryNext, entryIterator).done\n        ) throw TypeError('Expected sequence with length 2');\n        push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n      }\n    } else for (var key in object) if (hasOwn(object, key)) {\n      push(this.entries, { key: key, value: $toString(object[key]) });\n    }\n  },\n  parseQuery: function (query) {\n    if (query) {\n      var attributes = split(query, '&');\n      var index = 0;\n      var attribute, entry;\n      while (index < attributes.length) {\n        attribute = attributes[index++];\n        if (attribute.length) {\n          entry = split(attribute, '=');\n          push(this.entries, {\n            key: deserialize(shift(entry)),\n            value: deserialize(join(entry, '='))\n          });\n        }\n      }\n    }\n  },\n  serialize: function () {\n    var entries = this.entries;\n    var result = [];\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      push(result, serialize(entry.key) + '=' + serialize(entry.value));\n    } return join(result, '&');\n  },\n  update: function () {\n    this.entries.length = 0;\n    this.parseQuery(this.url.query);\n  },\n  updateURL: function () {\n    if (this.url) this.url.update();\n  }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n  anInstance(this, URLSearchParamsPrototype);\n  var init = arguments.length > 0 ? arguments[0] : undefined;\n  setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n  // `URLSearchParams.prototype.append` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n  append: function append(name, value) {\n    validateArgumentsLength(arguments.length, 2);\n    var state = getInternalParamsState(this);\n    push(state.entries, { key: $toString(name), value: $toString(value) });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.delete` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n  'delete': function (name) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var key = $toString(name);\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index].key === key) splice(entries, index, 1);\n      else index++;\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.get` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n  get: function get(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = $toString(name);\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) return entries[index].value;\n    }\n    return null;\n  },\n  // `URLSearchParams.prototype.getAll` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n  getAll: function getAll(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = $toString(name);\n    var result = [];\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) push(result, entries[index].value);\n    }\n    return result;\n  },\n  // `URLSearchParams.prototype.has` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n  has: function has(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = $toString(name);\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index++].key === key) return true;\n    }\n    return false;\n  },\n  // `URLSearchParams.prototype.set` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n  set: function set(name, value) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var found = false;\n    var key = $toString(name);\n    var val = $toString(value);\n    var index = 0;\n    var entry;\n    for (; index < entries.length; index++) {\n      entry = entries[index];\n      if (entry.key === key) {\n        if (found) splice(entries, index--, 1);\n        else {\n          found = true;\n          entry.value = val;\n        }\n      }\n    }\n    if (!found) push(entries, { key: key, value: val });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.sort` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n  sort: function sort() {\n    var state = getInternalParamsState(this);\n    arraySort(state.entries, function (a, b) {\n      return a.key > b.key ? 1 : -1;\n    });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.forEach` method\n  forEach: function forEach(callback /* , thisArg */) {\n    var entries = getInternalParamsState(this).entries;\n    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      boundFunction(entry.value, entry.key, this);\n    }\n  },\n  // `URLSearchParams.prototype.keys` method\n  keys: function keys() {\n    return new URLSearchParamsIterator(this, 'keys');\n  },\n  // `URLSearchParams.prototype.values` method\n  values: function values() {\n    return new URLSearchParamsIterator(this, 'values');\n  },\n  // `URLSearchParams.prototype.entries` method\n  entries: function entries() {\n    return new URLSearchParamsIterator(this, 'entries');\n  }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n  return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n  URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n  var headersHas = uncurryThis(HeadersPrototype.has);\n  var headersSet = uncurryThis(HeadersPrototype.set);\n\n  var wrapRequestOptions = function (init) {\n    if (isObject(init)) {\n      var body = init.body;\n      var headers;\n      if (classof(body) === URL_SEARCH_PARAMS) {\n        headers = init.headers ? new Headers(init.headers) : new Headers();\n        if (!headersHas(headers, 'content-type')) {\n          headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n        }\n        return create(init, {\n          body: createPropertyDescriptor(0, $toString(body)),\n          headers: createPropertyDescriptor(0, headers)\n        });\n      }\n    } return init;\n  };\n\n  if (isCallable(n$Fetch)) {\n    $({ global: true, enumerable: true, forced: true }, {\n      fetch: function fetch(input /* , init */) {\n        return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n      }\n    });\n  }\n\n  if (isCallable(N$Request)) {\n    var RequestConstructor = function Request(input /* , init */) {\n      anInstance(this, RequestPrototype);\n      return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n    };\n\n    RequestPrototype.constructor = RequestConstructor;\n    RequestConstructor.prototype = RequestPrototype;\n\n    $({ global: true, forced: true }, {\n      Request: RequestConstructor\n    });\n  }\n}\n\nmodule.exports = {\n  URLSearchParams: URLSearchParamsConstructor,\n  getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n  var parts = split(input, '.');\n  var partsLength, numbers, index, part, radix, number, ipv4;\n  if (parts.length && parts[parts.length - 1] == '') {\n    parts.length--;\n  }\n  partsLength = parts.length;\n  if (partsLength > 4) return input;\n  numbers = [];\n  for (index = 0; index < partsLength; index++) {\n    part = parts[index];\n    if (part == '') return input;\n    radix = 10;\n    if (part.length > 1 && charAt(part, 0) == '0') {\n      radix = exec(HEX_START, part) ? 16 : 8;\n      part = stringSlice(part, radix == 8 ? 1 : 2);\n    }\n    if (part === '') {\n      number = 0;\n    } else {\n      if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n      number = parseInt(part, radix);\n    }\n    push(numbers, number);\n  }\n  for (index = 0; index < partsLength; index++) {\n    number = numbers[index];\n    if (index == partsLength - 1) {\n      if (number >= pow(256, 5 - partsLength)) return null;\n    } else if (number > 255) return null;\n  }\n  ipv4 = pop(numbers);\n  for (index = 0; index < numbers.length; index++) {\n    ipv4 += numbers[index] * pow(256, 3 - index);\n  }\n  return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n  var address = [0, 0, 0, 0, 0, 0, 0, 0];\n  var pieceIndex = 0;\n  var compress = null;\n  var pointer = 0;\n  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n  var chr = function () {\n    return charAt(input, pointer);\n  };\n\n  if (chr() == ':') {\n    if (charAt(input, 1) != ':') return;\n    pointer += 2;\n    pieceIndex++;\n    compress = pieceIndex;\n  }\n  while (chr()) {\n    if (pieceIndex == 8) return;\n    if (chr() == ':') {\n      if (compress !== null) return;\n      pointer++;\n      pieceIndex++;\n      compress = pieceIndex;\n      continue;\n    }\n    value = length = 0;\n    while (length < 4 && exec(HEX, chr())) {\n      value = value * 16 + parseInt(chr(), 16);\n      pointer++;\n      length++;\n    }\n    if (chr() == '.') {\n      if (length == 0) return;\n      pointer -= length;\n      if (pieceIndex > 6) return;\n      numbersSeen = 0;\n      while (chr()) {\n        ipv4Piece = null;\n        if (numbersSeen > 0) {\n          if (chr() == '.' && numbersSeen < 4) pointer++;\n          else return;\n        }\n        if (!exec(DIGIT, chr())) return;\n        while (exec(DIGIT, chr())) {\n          number = parseInt(chr(), 10);\n          if (ipv4Piece === null) ipv4Piece = number;\n          else if (ipv4Piece == 0) return;\n          else ipv4Piece = ipv4Piece * 10 + number;\n          if (ipv4Piece > 255) return;\n          pointer++;\n        }\n        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n        numbersSeen++;\n        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n      }\n      if (numbersSeen != 4) return;\n      break;\n    } else if (chr() == ':') {\n      pointer++;\n      if (!chr()) return;\n    } else if (chr()) return;\n    address[pieceIndex++] = value;\n  }\n  if (compress !== null) {\n    swaps = pieceIndex - compress;\n    pieceIndex = 7;\n    while (pieceIndex != 0 && swaps > 0) {\n      swap = address[pieceIndex];\n      address[pieceIndex--] = address[compress + swaps - 1];\n      address[compress + --swaps] = swap;\n    }\n  } else if (pieceIndex != 8) return;\n  return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n  var maxIndex = null;\n  var maxLength = 1;\n  var currStart = null;\n  var currLength = 0;\n  var index = 0;\n  for (; index < 8; index++) {\n    if (ipv6[index] !== 0) {\n      if (currLength > maxLength) {\n        maxIndex = currStart;\n        maxLength = currLength;\n      }\n      currStart = null;\n      currLength = 0;\n    } else {\n      if (currStart === null) currStart = index;\n      ++currLength;\n    }\n  }\n  if (currLength > maxLength) {\n    maxIndex = currStart;\n    maxLength = currLength;\n  }\n  return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n  var result, index, compress, ignore0;\n  // ipv4\n  if (typeof host == 'number') {\n    result = [];\n    for (index = 0; index < 4; index++) {\n      unshift(result, host % 256);\n      host = floor(host / 256);\n    } return join(result, '.');\n  // ipv6\n  } else if (typeof host == 'object') {\n    result = '';\n    compress = findLongestZeroSequence(host);\n    for (index = 0; index < 8; index++) {\n      if (ignore0 && host[index] === 0) continue;\n      if (ignore0) ignore0 = false;\n      if (compress === index) {\n        result += index ? ':' : '::';\n        ignore0 = true;\n      } else {\n        result += numberToString(host[index], 16);\n        if (index < 7) result += ':';\n      }\n    }\n    return '[' + result + ']';\n  } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n  '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n  var code = codeAt(chr, 0);\n  return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n  ftp: 21,\n  file: null,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n  var second;\n  return string.length == 2 && exec(ALPHA, charAt(string, 0))\n    && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n  var third;\n  return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n    string.length == 2 ||\n    ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n  );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n  return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n  segment = toLowerCase(segment);\n  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n  var urlString = $toString(url);\n  var baseState, failure, searchParams;\n  if (isBase) {\n    failure = this.parse(urlString);\n    if (failure) throw TypeError(failure);\n    this.searchParams = null;\n  } else {\n    if (base !== undefined) baseState = new URLState(base, true);\n    failure = this.parse(urlString, null, baseState);\n    if (failure) throw TypeError(failure);\n    searchParams = getInternalSearchParamsState(new URLSearchParams());\n    searchParams.bindURL(this);\n    this.searchParams = searchParams;\n  }\n};\n\nURLState.prototype = {\n  type: 'URL',\n  // https://url.spec.whatwg.org/#url-parsing\n  // eslint-disable-next-line max-statements -- TODO\n  parse: function (input, stateOverride, base) {\n    var url = this;\n    var state = stateOverride || SCHEME_START;\n    var pointer = 0;\n    var buffer = '';\n    var seenAt = false;\n    var seenBracket = false;\n    var seenPasswordToken = false;\n    var codePoints, chr, bufferCodePoints, failure;\n\n    input = $toString(input);\n\n    if (!stateOverride) {\n      url.scheme = '';\n      url.username = '';\n      url.password = '';\n      url.host = null;\n      url.port = null;\n      url.path = [];\n      url.query = null;\n      url.fragment = null;\n      url.cannotBeABaseURL = false;\n      input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n    }\n\n    input = replace(input, TAB_AND_NEW_LINE, '');\n\n    codePoints = arrayFrom(input);\n\n    while (pointer <= codePoints.length) {\n      chr = codePoints[pointer];\n      switch (state) {\n        case SCHEME_START:\n          if (chr && exec(ALPHA, chr)) {\n            buffer += toLowerCase(chr);\n            state = SCHEME;\n          } else if (!stateOverride) {\n            state = NO_SCHEME;\n            continue;\n          } else return INVALID_SCHEME;\n          break;\n\n        case SCHEME:\n          if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n            buffer += toLowerCase(chr);\n          } else if (chr == ':') {\n            if (stateOverride && (\n              (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n              (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n              (url.scheme == 'file' && !url.host)\n            )) return;\n            url.scheme = buffer;\n            if (stateOverride) {\n              if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n              return;\n            }\n            buffer = '';\n            if (url.scheme == 'file') {\n              state = FILE;\n            } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n              state = SPECIAL_RELATIVE_OR_AUTHORITY;\n            } else if (url.isSpecial()) {\n              state = SPECIAL_AUTHORITY_SLASHES;\n            } else if (codePoints[pointer + 1] == '/') {\n              state = PATH_OR_AUTHORITY;\n              pointer++;\n            } else {\n              url.cannotBeABaseURL = true;\n              push(url.path, '');\n              state = CANNOT_BE_A_BASE_URL_PATH;\n            }\n          } else if (!stateOverride) {\n            buffer = '';\n            state = NO_SCHEME;\n            pointer = 0;\n            continue;\n          } else return INVALID_SCHEME;\n          break;\n\n        case NO_SCHEME:\n          if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n          if (base.cannotBeABaseURL && chr == '#') {\n            url.scheme = base.scheme;\n            url.path = arraySlice(base.path);\n            url.query = base.query;\n            url.fragment = '';\n            url.cannotBeABaseURL = true;\n            state = FRAGMENT;\n            break;\n          }\n          state = base.scheme == 'file' ? FILE : RELATIVE;\n          continue;\n\n        case SPECIAL_RELATIVE_OR_AUTHORITY:\n          if (chr == '/' && codePoints[pointer + 1] == '/') {\n            state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n            pointer++;\n          } else {\n            state = RELATIVE;\n            continue;\n          } break;\n\n        case PATH_OR_AUTHORITY:\n          if (chr == '/') {\n            state = AUTHORITY;\n            break;\n          } else {\n            state = PATH;\n            continue;\n          }\n\n        case RELATIVE:\n          url.scheme = base.scheme;\n          if (chr == EOF) {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.query = base.query;\n          } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n            state = RELATIVE_SLASH;\n          } else if (chr == '?') {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.query = '';\n            state = QUERY;\n          } else if (chr == '#') {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.query = base.query;\n            url.fragment = '';\n            state = FRAGMENT;\n          } else {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            url.path = arraySlice(base.path);\n            url.path.length--;\n            state = PATH;\n            continue;\n          } break;\n\n        case RELATIVE_SLASH:\n          if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n            state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          } else if (chr == '/') {\n            state = AUTHORITY;\n          } else {\n            url.username = base.username;\n            url.password = base.password;\n            url.host = base.host;\n            url.port = base.port;\n            state = PATH;\n            continue;\n          } break;\n\n        case SPECIAL_AUTHORITY_SLASHES:\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n          pointer++;\n          break;\n\n        case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n          if (chr != '/' && chr != '\\\\') {\n            state = AUTHORITY;\n            continue;\n          } break;\n\n        case AUTHORITY:\n          if (chr == '@') {\n            if (seenAt) buffer = '%40' + buffer;\n            seenAt = true;\n            bufferCodePoints = arrayFrom(buffer);\n            for (var i = 0; i < bufferCodePoints.length; i++) {\n              var codePoint = bufferCodePoints[i];\n              if (codePoint == ':' && !seenPasswordToken) {\n                seenPasswordToken = true;\n                continue;\n              }\n              var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n              if (seenPasswordToken) url.password += encodedCodePoints;\n              else url.username += encodedCodePoints;\n            }\n            buffer = '';\n          } else if (\n            chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n            (chr == '\\\\' && url.isSpecial())\n          ) {\n            if (seenAt && buffer == '') return INVALID_AUTHORITY;\n            pointer -= arrayFrom(buffer).length + 1;\n            buffer = '';\n            state = HOST;\n          } else buffer += chr;\n          break;\n\n        case HOST:\n        case HOSTNAME:\n          if (stateOverride && url.scheme == 'file') {\n            state = FILE_HOST;\n            continue;\n          } else if (chr == ':' && !seenBracket) {\n            if (buffer == '') return INVALID_HOST;\n            failure = url.parseHost(buffer);\n            if (failure) return failure;\n            buffer = '';\n            state = PORT;\n            if (stateOverride == HOSTNAME) return;\n          } else if (\n            chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n            (chr == '\\\\' && url.isSpecial())\n          ) {\n            if (url.isSpecial() && buffer == '') return INVALID_HOST;\n            if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n            failure = url.parseHost(buffer);\n            if (failure) return failure;\n            buffer = '';\n            state = PATH_START;\n            if (stateOverride) return;\n            continue;\n          } else {\n            if (chr == '[') seenBracket = true;\n            else if (chr == ']') seenBracket = false;\n            buffer += chr;\n          } break;\n\n        case PORT:\n          if (exec(DIGIT, chr)) {\n            buffer += chr;\n          } else if (\n            chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n            (chr == '\\\\' && url.isSpecial()) ||\n            stateOverride\n          ) {\n            if (buffer != '') {\n              var port = parseInt(buffer, 10);\n              if (port > 0xFFFF) return INVALID_PORT;\n              url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n              buffer = '';\n            }\n            if (stateOverride) return;\n            state = PATH_START;\n            continue;\n          } else return INVALID_PORT;\n          break;\n\n        case FILE:\n          url.scheme = 'file';\n          if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n          else if (base && base.scheme == 'file') {\n            if (chr == EOF) {\n              url.host = base.host;\n              url.path = arraySlice(base.path);\n              url.query = base.query;\n            } else if (chr == '?') {\n              url.host = base.host;\n              url.path = arraySlice(base.path);\n              url.query = '';\n              state = QUERY;\n            } else if (chr == '#') {\n              url.host = base.host;\n              url.path = arraySlice(base.path);\n              url.query = base.query;\n              url.fragment = '';\n              state = FRAGMENT;\n            } else {\n              if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n                url.host = base.host;\n                url.path = arraySlice(base.path);\n                url.shortenPath();\n              }\n              state = PATH;\n              continue;\n            }\n          } else {\n            state = PATH;\n            continue;\n          } break;\n\n        case FILE_SLASH:\n          if (chr == '/' || chr == '\\\\') {\n            state = FILE_HOST;\n            break;\n          }\n          if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n            if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n            else url.host = base.host;\n          }\n          state = PATH;\n          continue;\n\n        case FILE_HOST:\n          if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n            if (!stateOverride && isWindowsDriveLetter(buffer)) {\n              state = PATH;\n            } else if (buffer == '') {\n              url.host = '';\n              if (stateOverride) return;\n              state = PATH_START;\n            } else {\n              failure = url.parseHost(buffer);\n              if (failure) return failure;\n              if (url.host == 'localhost') url.host = '';\n              if (stateOverride) return;\n              buffer = '';\n              state = PATH_START;\n            } continue;\n          } else buffer += chr;\n          break;\n\n        case PATH_START:\n          if (url.isSpecial()) {\n            state = PATH;\n            if (chr != '/' && chr != '\\\\') continue;\n          } else if (!stateOverride && chr == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (!stateOverride && chr == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          } else if (chr != EOF) {\n            state = PATH;\n            if (chr != '/') continue;\n          } break;\n\n        case PATH:\n          if (\n            chr == EOF || chr == '/' ||\n            (chr == '\\\\' && url.isSpecial()) ||\n            (!stateOverride && (chr == '?' || chr == '#'))\n          ) {\n            if (isDoubleDot(buffer)) {\n              url.shortenPath();\n              if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n                push(url.path, '');\n              }\n            } else if (isSingleDot(buffer)) {\n              if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n                push(url.path, '');\n              }\n            } else {\n              if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n                if (url.host) url.host = '';\n                buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n              }\n              push(url.path, buffer);\n            }\n            buffer = '';\n            if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n              while (url.path.length > 1 && url.path[0] === '') {\n                shift(url.path);\n              }\n            }\n            if (chr == '?') {\n              url.query = '';\n              state = QUERY;\n            } else if (chr == '#') {\n              url.fragment = '';\n              state = FRAGMENT;\n            }\n          } else {\n            buffer += percentEncode(chr, pathPercentEncodeSet);\n          } break;\n\n        case CANNOT_BE_A_BASE_URL_PATH:\n          if (chr == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (chr == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          } else if (chr != EOF) {\n            url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n          } break;\n\n        case QUERY:\n          if (!stateOverride && chr == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          } else if (chr != EOF) {\n            if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n            else if (chr == '#') url.query += '%23';\n            else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n          } break;\n\n        case FRAGMENT:\n          if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n          break;\n      }\n\n      pointer++;\n    }\n  },\n  // https://url.spec.whatwg.org/#host-parsing\n  parseHost: function (input) {\n    var result, codePoints, index;\n    if (charAt(input, 0) == '[') {\n      if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n      result = parseIPv6(stringSlice(input, 1, -1));\n      if (!result) return INVALID_HOST;\n      this.host = result;\n    // opaque host\n    } else if (!this.isSpecial()) {\n      if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n      result = '';\n      codePoints = arrayFrom(input);\n      for (index = 0; index < codePoints.length; index++) {\n        result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n      }\n      this.host = result;\n    } else {\n      input = toASCII(input);\n      if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n      result = parseIPv4(input);\n      if (result === null) return INVALID_HOST;\n      this.host = result;\n    }\n  },\n  // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n  cannotHaveUsernamePasswordPort: function () {\n    return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n  },\n  // https://url.spec.whatwg.org/#include-credentials\n  includesCredentials: function () {\n    return this.username != '' || this.password != '';\n  },\n  // https://url.spec.whatwg.org/#is-special\n  isSpecial: function () {\n    return hasOwn(specialSchemes, this.scheme);\n  },\n  // https://url.spec.whatwg.org/#shorten-a-urls-path\n  shortenPath: function () {\n    var path = this.path;\n    var pathSize = path.length;\n    if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n      path.length--;\n    }\n  },\n  // https://url.spec.whatwg.org/#concept-url-serializer\n  serialize: function () {\n    var url = this;\n    var scheme = url.scheme;\n    var username = url.username;\n    var password = url.password;\n    var host = url.host;\n    var port = url.port;\n    var path = url.path;\n    var query = url.query;\n    var fragment = url.fragment;\n    var output = scheme + ':';\n    if (host !== null) {\n      output += '//';\n      if (url.includesCredentials()) {\n        output += username + (password ? ':' + password : '') + '@';\n      }\n      output += serializeHost(host);\n      if (port !== null) output += ':' + port;\n    } else if (scheme == 'file') output += '//';\n    output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n    if (query !== null) output += '?' + query;\n    if (fragment !== null) output += '#' + fragment;\n    return output;\n  },\n  // https://url.spec.whatwg.org/#dom-url-href\n  setHref: function (href) {\n    var failure = this.parse(href);\n    if (failure) throw TypeError(failure);\n    this.searchParams.update();\n  },\n  // https://url.spec.whatwg.org/#dom-url-origin\n  getOrigin: function () {\n    var scheme = this.scheme;\n    var port = this.port;\n    if (scheme == 'blob') try {\n      return new URLConstructor(scheme.path[0]).origin;\n    } catch (error) {\n      return 'null';\n    }\n    if (scheme == 'file' || !this.isSpecial()) return 'null';\n    return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n  },\n  // https://url.spec.whatwg.org/#dom-url-protocol\n  getProtocol: function () {\n    return this.scheme + ':';\n  },\n  setProtocol: function (protocol) {\n    this.parse($toString(protocol) + ':', SCHEME_START);\n  },\n  // https://url.spec.whatwg.org/#dom-url-username\n  getUsername: function () {\n    return this.username;\n  },\n  setUsername: function (username) {\n    var codePoints = arrayFrom($toString(username));\n    if (this.cannotHaveUsernamePasswordPort()) return;\n    this.username = '';\n    for (var i = 0; i < codePoints.length; i++) {\n      this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n    }\n  },\n  // https://url.spec.whatwg.org/#dom-url-password\n  getPassword: function () {\n    return this.password;\n  },\n  setPassword: function (password) {\n    var codePoints = arrayFrom($toString(password));\n    if (this.cannotHaveUsernamePasswordPort()) return;\n    this.password = '';\n    for (var i = 0; i < codePoints.length; i++) {\n      this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n    }\n  },\n  // https://url.spec.whatwg.org/#dom-url-host\n  getHost: function () {\n    var host = this.host;\n    var port = this.port;\n    return host === null ? ''\n      : port === null ? serializeHost(host)\n      : serializeHost(host) + ':' + port;\n  },\n  setHost: function (host) {\n    if (this.cannotBeABaseURL) return;\n    this.parse(host, HOST);\n  },\n  // https://url.spec.whatwg.org/#dom-url-hostname\n  getHostname: function () {\n    var host = this.host;\n    return host === null ? '' : serializeHost(host);\n  },\n  setHostname: function (hostname) {\n    if (this.cannotBeABaseURL) return;\n    this.parse(hostname, HOSTNAME);\n  },\n  // https://url.spec.whatwg.org/#dom-url-port\n  getPort: function () {\n    var port = this.port;\n    return port === null ? '' : $toString(port);\n  },\n  setPort: function (port) {\n    if (this.cannotHaveUsernamePasswordPort()) return;\n    port = $toString(port);\n    if (port == '') this.port = null;\n    else this.parse(port, PORT);\n  },\n  // https://url.spec.whatwg.org/#dom-url-pathname\n  getPathname: function () {\n    var path = this.path;\n    return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n  },\n  setPathname: function (pathname) {\n    if (this.cannotBeABaseURL) return;\n    this.path = [];\n    this.parse(pathname, PATH_START);\n  },\n  // https://url.spec.whatwg.org/#dom-url-search\n  getSearch: function () {\n    var query = this.query;\n    return query ? '?' + query : '';\n  },\n  setSearch: function (search) {\n    search = $toString(search);\n    if (search == '') {\n      this.query = null;\n    } else {\n      if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n      this.query = '';\n      this.parse(search, QUERY);\n    }\n    this.searchParams.update();\n  },\n  // https://url.spec.whatwg.org/#dom-url-searchparams\n  getSearchParams: function () {\n    return this.searchParams.facade;\n  },\n  // https://url.spec.whatwg.org/#dom-url-hash\n  getHash: function () {\n    var fragment = this.fragment;\n    return fragment ? '#' + fragment : '';\n  },\n  setHash: function (hash) {\n    hash = $toString(hash);\n    if (hash == '') {\n      this.fragment = null;\n      return;\n    }\n    if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n    this.fragment = '';\n    this.parse(hash, FRAGMENT);\n  },\n  update: function () {\n    this.query = this.searchParams.serialize() || null;\n  }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n  var that = anInstance(this, URLPrototype);\n  var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n  var state = setInternalState(that, new URLState(url, false, base));\n  if (!DESCRIPTORS) {\n    that.href = state.serialize();\n    that.origin = state.getOrigin();\n    that.protocol = state.getProtocol();\n    that.username = state.getUsername();\n    that.password = state.getPassword();\n    that.host = state.getHost();\n    that.hostname = state.getHostname();\n    that.port = state.getPort();\n    that.pathname = state.getPathname();\n    that.search = state.getSearch();\n    that.searchParams = state.getSearchParams();\n    that.hash = state.getHash();\n  }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n  return {\n    get: function () {\n      return getInternalURLState(this)[getter]();\n    },\n    set: setter && function (value) {\n      return getInternalURLState(this)[setter](value);\n    },\n    configurable: true,\n    enumerable: true\n  };\n};\n\nif (DESCRIPTORS) {\n  defineProperties(URLPrototype, {\n    // `URL.prototype.href` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-href\n    href: accessorDescriptor('serialize', 'setHref'),\n    // `URL.prototype.origin` getter\n    // https://url.spec.whatwg.org/#dom-url-origin\n    origin: accessorDescriptor('getOrigin'),\n    // `URL.prototype.protocol` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-protocol\n    protocol: accessorDescriptor('getProtocol', 'setProtocol'),\n    // `URL.prototype.username` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-username\n    username: accessorDescriptor('getUsername', 'setUsername'),\n    // `URL.prototype.password` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-password\n    password: accessorDescriptor('getPassword', 'setPassword'),\n    // `URL.prototype.host` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-host\n    host: accessorDescriptor('getHost', 'setHost'),\n    // `URL.prototype.hostname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hostname\n    hostname: accessorDescriptor('getHostname', 'setHostname'),\n    // `URL.prototype.port` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-port\n    port: accessorDescriptor('getPort', 'setPort'),\n    // `URL.prototype.pathname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-pathname\n    pathname: accessorDescriptor('getPathname', 'setPathname'),\n    // `URL.prototype.search` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-search\n    search: accessorDescriptor('getSearch', 'setSearch'),\n    // `URL.prototype.searchParams` getter\n    // https://url.spec.whatwg.org/#dom-url-searchparams\n    searchParams: accessorDescriptor('getSearchParams'),\n    // `URL.prototype.hash` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hash\n    hash: accessorDescriptor('getHash', 'setHash')\n  });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n  return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n  return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n  var nativeCreateObjectURL = NativeURL.createObjectURL;\n  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n  // `URL.createObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n  // `URL.revokeObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n  URL: URLConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n  toJSON: function toJSON() {\n    return call(URL.prototype.toString, this);\n  }\n});\n","require('../modules/es.symbol');\nrequire('../modules/es.symbol.description');\nrequire('../modules/es.symbol.async-iterator');\nrequire('../modules/es.symbol.has-instance');\nrequire('../modules/es.symbol.is-concat-spreadable');\nrequire('../modules/es.symbol.iterator');\nrequire('../modules/es.symbol.match');\nrequire('../modules/es.symbol.match-all');\nrequire('../modules/es.symbol.replace');\nrequire('../modules/es.symbol.search');\nrequire('../modules/es.symbol.species');\nrequire('../modules/es.symbol.split');\nrequire('../modules/es.symbol.to-primitive');\nrequire('../modules/es.symbol.to-string-tag');\nrequire('../modules/es.symbol.unscopables');\nrequire('../modules/es.error.cause');\nrequire('../modules/es.error.to-string');\nrequire('../modules/es.aggregate-error');\nrequire('../modules/es.aggregate-error.cause');\nrequire('../modules/es.array.at');\nrequire('../modules/es.array.concat');\nrequire('../modules/es.array.copy-within');\nrequire('../modules/es.array.every');\nrequire('../modules/es.array.fill');\nrequire('../modules/es.array.filter');\nrequire('../modules/es.array.find');\nrequire('../modules/es.array.find-index');\nrequire('../modules/es.array.flat');\nrequire('../modules/es.array.flat-map');\nrequire('../modules/es.array.for-each');\nrequire('../modules/es.array.from');\nrequire('../modules/es.array.includes');\nrequire('../modules/es.array.index-of');\nrequire('../modules/es.array.is-array');\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.array.join');\nrequire('../modules/es.array.last-index-of');\nrequire('../modules/es.array.map');\nrequire('../modules/es.array.of');\nrequire('../modules/es.array.reduce');\nrequire('../modules/es.array.reduce-right');\nrequire('../modules/es.array.reverse');\nrequire('../modules/es.array.slice');\nrequire('../modules/es.array.some');\nrequire('../modules/es.array.sort');\nrequire('../modules/es.array.species');\nrequire('../modules/es.array.splice');\nrequire('../modules/es.array.unscopables.flat');\nrequire('../modules/es.array.unscopables.flat-map');\nrequire('../modules/es.array-buffer.constructor');\nrequire('../modules/es.array-buffer.is-view');\nrequire('../modules/es.array-buffer.slice');\nrequire('../modules/es.data-view');\nrequire('../modules/es.date.get-year');\nrequire('../modules/es.date.now');\nrequire('../modules/es.date.set-year');\nrequire('../modules/es.date.to-gmt-string');\nrequire('../modules/es.date.to-iso-string');\nrequire('../modules/es.date.to-json');\nrequire('../modules/es.date.to-primitive');\nrequire('../modules/es.date.to-string');\nrequire('../modules/es.escape');\nrequire('../modules/es.function.bind');\nrequire('../modules/es.function.has-instance');\nrequire('../modules/es.function.name');\nrequire('../modules/es.global-this');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.json.to-string-tag');\nrequire('../modules/es.map');\nrequire('../modules/es.math.acosh');\nrequire('../modules/es.math.asinh');\nrequire('../modules/es.math.atanh');\nrequire('../modules/es.math.cbrt');\nrequire('../modules/es.math.clz32');\nrequire('../modules/es.math.cosh');\nrequire('../modules/es.math.expm1');\nrequire('../modules/es.math.fround');\nrequire('../modules/es.math.hypot');\nrequire('../modules/es.math.imul');\nrequire('../modules/es.math.log10');\nrequire('../modules/es.math.log1p');\nrequire('../modules/es.math.log2');\nrequire('../modules/es.math.sign');\nrequire('../modules/es.math.sinh');\nrequire('../modules/es.math.tanh');\nrequire('../modules/es.math.to-string-tag');\nrequire('../modules/es.math.trunc');\nrequire('../modules/es.number.constructor');\nrequire('../modules/es.number.epsilon');\nrequire('../modules/es.number.is-finite');\nrequire('../modules/es.number.is-integer');\nrequire('../modules/es.number.is-nan');\nrequire('../modules/es.number.is-safe-integer');\nrequire('../modules/es.number.max-safe-integer');\nrequire('../modules/es.number.min-safe-integer');\nrequire('../modules/es.number.parse-float');\nrequire('../modules/es.number.parse-int');\nrequire('../modules/es.number.to-exponential');\nrequire('../modules/es.number.to-fixed');\nrequire('../modules/es.number.to-precision');\nrequire('../modules/es.object.assign');\nrequire('../modules/es.object.create');\nrequire('../modules/es.object.define-getter');\nrequire('../modules/es.object.define-properties');\nrequire('../modules/es.object.define-property');\nrequire('../modules/es.object.define-setter');\nrequire('../modules/es.object.entries');\nrequire('../modules/es.object.freeze');\nrequire('../modules/es.object.from-entries');\nrequire('../modules/es.object.get-own-property-descriptor');\nrequire('../modules/es.object.get-own-property-descriptors');\nrequire('../modules/es.object.get-own-property-names');\nrequire('../modules/es.object.get-prototype-of');\nrequire('../modules/es.object.has-own');\nrequire('../modules/es.object.is');\nrequire('../modules/es.object.is-extensible');\nrequire('../modules/es.object.is-frozen');\nrequire('../modules/es.object.is-sealed');\nrequire('../modules/es.object.keys');\nrequire('../modules/es.object.lookup-getter');\nrequire('../modules/es.object.lookup-setter');\nrequire('../modules/es.object.prevent-extensions');\nrequire('../modules/es.object.seal');\nrequire('../modules/es.object.set-prototype-of');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.object.values');\nrequire('../modules/es.parse-float');\nrequire('../modules/es.parse-int');\nrequire('../modules/es.promise');\nrequire('../modules/es.promise.all-settled');\nrequire('../modules/es.promise.any');\nrequire('../modules/es.promise.finally');\nrequire('../modules/es.reflect.apply');\nrequire('../modules/es.reflect.construct');\nrequire('../modules/es.reflect.define-property');\nrequire('../modules/es.reflect.delete-property');\nrequire('../modules/es.reflect.get');\nrequire('../modules/es.reflect.get-own-property-descriptor');\nrequire('../modules/es.reflect.get-prototype-of');\nrequire('../modules/es.reflect.has');\nrequire('../modules/es.reflect.is-extensible');\nrequire('../modules/es.reflect.own-keys');\nrequire('../modules/es.reflect.prevent-extensions');\nrequire('../modules/es.reflect.set');\nrequire('../modules/es.reflect.set-prototype-of');\nrequire('../modules/es.reflect.to-string-tag');\nrequire('../modules/es.regexp.constructor');\nrequire('../modules/es.regexp.dot-all');\nrequire('../modules/es.regexp.exec');\nrequire('../modules/es.regexp.flags');\nrequire('../modules/es.regexp.sticky');\nrequire('../modules/es.regexp.test');\nrequire('../modules/es.regexp.to-string');\nrequire('../modules/es.set');\nrequire('../modules/es.string.at-alternative');\nrequire('../modules/es.string.code-point-at');\nrequire('../modules/es.string.ends-with');\nrequire('../modules/es.string.from-code-point');\nrequire('../modules/es.string.includes');\nrequire('../modules/es.string.iterator');\nrequire('../modules/es.string.match');\nrequire('../modules/es.string.match-all');\nrequire('../modules/es.string.pad-end');\nrequire('../modules/es.string.pad-start');\nrequire('../modules/es.string.raw');\nrequire('../modules/es.string.repeat');\nrequire('../modules/es.string.replace');\nrequire('../modules/es.string.replace-all');\nrequire('../modules/es.string.search');\nrequire('../modules/es.string.split');\nrequire('../modules/es.string.starts-with');\nrequire('../modules/es.string.substr');\nrequire('../modules/es.string.trim');\nrequire('../modules/es.string.trim-end');\nrequire('../modules/es.string.trim-start');\nrequire('../modules/es.string.anchor');\nrequire('../modules/es.string.big');\nrequire('../modules/es.string.blink');\nrequire('../modules/es.string.bold');\nrequire('../modules/es.string.fixed');\nrequire('../modules/es.string.fontcolor');\nrequire('../modules/es.string.fontsize');\nrequire('../modules/es.string.italics');\nrequire('../modules/es.string.link');\nrequire('../modules/es.string.small');\nrequire('../modules/es.string.strike');\nrequire('../modules/es.string.sub');\nrequire('../modules/es.string.sup');\nrequire('../modules/es.typed-array.float32-array');\nrequire('../modules/es.typed-array.float64-array');\nrequire('../modules/es.typed-array.int8-array');\nrequire('../modules/es.typed-array.int16-array');\nrequire('../modules/es.typed-array.int32-array');\nrequire('../modules/es.typed-array.uint8-array');\nrequire('../modules/es.typed-array.uint8-clamped-array');\nrequire('../modules/es.typed-array.uint16-array');\nrequire('../modules/es.typed-array.uint32-array');\nrequire('../modules/es.typed-array.at');\nrequire('../modules/es.typed-array.copy-within');\nrequire('../modules/es.typed-array.every');\nrequire('../modules/es.typed-array.fill');\nrequire('../modules/es.typed-array.filter');\nrequire('../modules/es.typed-array.find');\nrequire('../modules/es.typed-array.find-index');\nrequire('../modules/es.typed-array.for-each');\nrequire('../modules/es.typed-array.from');\nrequire('../modules/es.typed-array.includes');\nrequire('../modules/es.typed-array.index-of');\nrequire('../modules/es.typed-array.iterator');\nrequire('../modules/es.typed-array.join');\nrequire('../modules/es.typed-array.last-index-of');\nrequire('../modules/es.typed-array.map');\nrequire('../modules/es.typed-array.of');\nrequire('../modules/es.typed-array.reduce');\nrequire('../modules/es.typed-array.reduce-right');\nrequire('../modules/es.typed-array.reverse');\nrequire('../modules/es.typed-array.set');\nrequire('../modules/es.typed-array.slice');\nrequire('../modules/es.typed-array.some');\nrequire('../modules/es.typed-array.sort');\nrequire('../modules/es.typed-array.subarray');\nrequire('../modules/es.typed-array.to-locale-string');\nrequire('../modules/es.typed-array.to-string');\nrequire('../modules/es.unescape');\nrequire('../modules/es.weak-map');\nrequire('../modules/es.weak-set');\nrequire('../modules/web.atob');\nrequire('../modules/web.btoa');\nrequire('../modules/web.dom-collections.for-each');\nrequire('../modules/web.dom-collections.iterator');\nrequire('../modules/web.dom-exception.constructor');\nrequire('../modules/web.dom-exception.stack');\nrequire('../modules/web.dom-exception.to-string-tag');\nrequire('../modules/web.immediate');\nrequire('../modules/web.queue-microtask');\nrequire('../modules/web.structured-clone');\nrequire('../modules/web.timers');\nrequire('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\n\nmodule.exports = require('../internals/path');\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../assets/images/ic-player-frame-jump.ttf?rxg7gj\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../assets/fonts/fontello.ttf?13010392\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../assets/fonts/seek-icons.ttf?13010392\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";@keyframes op-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@-webkit-keyframes op-slideOutDown{from{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}to{visibility:hidden;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@keyframes op-slideOutDown{from{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}to{visibility:hidden;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@-webkit-keyframes op-slideInUp{from{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);opacity:1}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes op-slideInUp{from{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);opacity:1}to{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@font-face{font-family:\\\"frameIcon\\\";src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format('truetype');font-weight:normal;font-style:normal}@font-face{font-family:'op-icons';src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format('truetype');font-weight:normal;font-style:normal}@font-face{font-family:'op-seek-icons';src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format('truetype');font-weight:normal;font-style:normal}:root{--op-accent-color:#50e3c2}.op-wrapper.ovenplayer{position:relative;max-height:100%;overflow:hidden;zoom:1 !important;width:100%;display:block;font-family:Helvetica,Arial,sans-serif;background-color:#000;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;font-size:14px;font-weight:100;outline:0;-webkit-touch-callout:none;user-select:none}.op-wrapper.ovenplayer *{box-sizing:inherit}.op-wrapper.ovenplayer object{width:100%;height:100%;position:absolute}.op-wrapper.ovenplayer:before,.op-wrapper.ovenplayer:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-wrapper.ovenplayer *,.op-wrapper.ovenplayer *:before,.op-wrapper.ovenplayer *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-wrapper.ovenplayer.op-fullscreen{width:100% !important;height:100% !important;top:0;right:0;bottom:0;left:0;z-index:9999;margin:0;position:fixed}.op-wrapper.ovenplayer.op-fullscreen .op-watermark-container,.op-wrapper.ovenplayer.op-fullscreen .op-thumbnail-container{width:100vw;max-width:calc(100vh * 16 / 9);height:calc(100vw * 9 / 16);max-height:100vh;top:50%;left:50%;transform:translate(-50%, -50%)}.op-wrapper.ovenplayer.op-autohide{cursor:none}.op-wrapper.ovenplayer.op-autohide .op-bottom-panel{-webkit-animation-name:op-slideOutDown;animation-name:op-slideOutDown;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.op-wrapper.ovenplayer.op-autohide .op-progressbar-container,.op-wrapper.ovenplayer.op-autohide .op-controls .op-button{cursor:none}.op-wrapper.ovenplayer.op-autohide .op-caption-text-container{bottom:25px}.op-wrapper.ovenplayer.op-no-controls .op-controls-container{display:none !important}.op-wrapper.ovenplayer .op-ratio{padding-bottom:56.25%}.op-wrapper.ovenplayer ::-webkit-scrollbar{width:5px;height:8px}.op-wrapper.ovenplayer ::-webkit-scrollbar-button:start:decrement,.op-wrapper.ovenplayer ::-webkit-scrollbar-button:end:increment{display:block;height:3px;background:#2f2f3e}.op-wrapper.ovenplayer ::-webkit-scrollbar-track{background:#2f2f3e;-webkit-border-radius:10px;border-radius:10px}.op-wrapper.ovenplayer ::-webkit-scrollbar-thumb{height:50px;width:50px;background:#606071;-webkit-border-radius:8px;border-radius:8px}.op-wrapper.ovenplayer .op-clear{color:inherit;background-color:transparent;padding:0;margin:0;float:none;font-family:Helvetica,Arial,sans-serif;font-size:1em;line-height:1em;list-style:none;text-transform:none;vertical-align:baseline;border:0;font-variant:inherit;font-stretch:inherit;-webkit-tap-highlight-color:rgba(255,255,255,0)}.op-player{position:absolute;top:0;height:100%;width:100%}.op-player .op-core-ui-wrapper{position:relative;height:100%}.op-player .op-media-element-container{position:absolute;left:0px;top:0px;width:100%;height:100%}.op-player .op-media-element-container video{position:absolute;left:0;top:0;width:100%;height:100%}.op-player .op-media-element-container object{width:100%;height:100%}.op-ads{position:absolute;height:100%;width:100%;padding-bottom:34px;top:0}.op-ads>div{position:absolute !important;width:100% !important;height:100% !important}.op-ads>div iframe{pointer-events:auto}.op-ads video.op-ads-vast-video{background-color:#000;position:absolute;width:100%;height:100%;left:0;top:0;z-index:1}.op-ads .op-ads-button{bottom:36px;cursor:default;margin-right:4px;pointer-events:auto;position:absolute;right:0;z-index:1;width:auto !important;height:auto !important;border-radius:4px;background-color:rgba(18,18,28,0.7);min-width:155px;display:none}.op-ads .op-ads-button .op-ads-textview{color:#e6e6e6;font-weight:normal;font-size:11px;padding:6px 12px;text-align:center;display:inline-block;width:100%;vertical-align:middle}.op-ads .op-ads-button .videoAdUiAction{padding:8px 24px;cursor:pointer;direction:ltr;font-weight:normal;font-size:20px;border:1px solid rgba(255,255,255,0.5)}.op-ads .op-ads-button .videoAdUiAction:hover{border-radius:4px;border:1px solid #fff}.op-ads .op-ads-button .videoAdUiAction i{display:inline-block;width:auto}.op-button{display:inline-block;border:none;background:transparent;padding:0;color:inherit;text-align:inherit;overflow:hidden;font-weight:100;text-indent:0 !important}.op-button:focus,.op-button{outline:0}i.op-con{font-family:\\\"op-icons\\\",\\\"op-seek-icons\\\";font-style:normal;font-weight:normal;speak:none;font-size:inherit;width:auto;font-size:30px;line-height:30px;display:block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:pointer}i.op-con.disable{color:#4f4f4f}i.op-con.op-close-icon::before{content:\\\"\\\\e900\\\"}i.op-con.op-pause-big::before{content:\\\"\\\\e911\\\"}i.op-con.op-fullscreen-compress::before{content:\\\"\\\\e901\\\"}i.op-con.op-fullscreen-expand::before{content:\\\"\\\\e902\\\"}i.op-con.op-arrow-left::before{content:\\\"\\\\e903\\\"}i.op-con.op-arrow-right::before{content:\\\"\\\\e909\\\"}i.op-con.op-empty-video::before{content:\\\"\\\\e904\\\"}i.op-con.op-play::before{content:\\\"\\\\e906\\\"}i.op-con.op-replay::before{content:\\\"\\\\e908\\\"}i.op-con.op-seek-back::before{content:\\\"\\\\e920\\\"}i.op-con.op-seek-forward::before{content:\\\"\\\\e921\\\"}i.op-con.op-playlist-icon::before{content:\\\"\\\\e907\\\"}i.op-con.op-replay-big::before{content:\\\"\\\\e908\\\"}i.op-con.op-setting::before{content:\\\"\\\\e90A\\\"}i.op-con.op-pause::before{content:\\\"\\\\e90C\\\"}i.op-con.op-volume-small{display:none;margin-top:-1px}i.op-con.op-volume-small::before{content:\\\"\\\\e90D\\\"}i.op-con.op-volume-mute{display:none}i.op-con.op-volume-mute::before{content:\\\"\\\\e90E\\\"}i.op-con.op-volume-max::before{content:\\\"\\\\e90F\\\"}i.op-con.op-play-big::before{content:\\\"\\\\e910\\\"}i.op-con.op-warning::before{content:\\\"\\\\e912\\\"}.op-badge{display:inline-block;padding:.75em .714em .714em .68em;font-size:1em;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.286em;background-color:#12121c}.op-playlist{position:absolute;width:100%;height:100%;left:0;top:0;padding:2.857em;background:#000;z-index:6}.op-playlist .op-badge{position:absolute;top:.857em;right:.857em;opacity:.7}.op-playlist .btn-left{float:left;font-size:2.857em}.op-playlist .btn-right{float:right;font-size:2.857em}.op-playlist .op-playlist-header{font-size:2.857em;font-weight:bold}.op-playlist .op-playlist-header:after{display:block;content:'';clear:both}.op-playlist .op-playlist-header .op-con.op-close-icon{float:right}.op-playlist .op-playlist-body{height:100%;overflow:hidden;position:relative}.op-playlist .op-playlist-body .op-playlist-body-arrows{margin-top:-15px;position:absolute;top:50%;height:30px;-ms-transform:translateY(-50%);transform:translateY(-50%);width:100%;left:0}.op-playlist .op-playlist-body .op-playlist-body-container{width:100%;height:100%;position:relative;margin-right:auto;margin-left:auto;max-width:992px}.op-playlist .op-playlist-body .op-playlist-body-container .op-playlist-body-center{margin:0;position:absolute;top:50%;padding-right:3em;padding-left:3em;-ms-transform:translateY(-50%);transform:translateY(-50%);width:100%}.op-playlist .op-playlist-body .op-playlist-body-row{margin-right:-15px;margin-left:-15px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card{padding-right:15px;padding-left:15px;margin:15px 0;-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%;cursor:pointer}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card.active{color:#50e3c2;color:var(--op-accent-color)}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card.active .op-playlist-card-thumbnail{border-color:#50e3c2;border-color:var(--op-accent-color)}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail{position:relative;display:block;width:100%;padding:0;overflow:hidden;border:.214em solid transparent;background-color:#000}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail img{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail.empty{background-color:#bababa}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail.empty>i{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff !important;font-size:1.6em !important}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-thumbnail::before{padding-top:56.25%;display:block;content:\\\"\\\"}.op-playlist .op-playlist-body .op-playlist-body-row .op-playlist-card .op-playlist-card-title{margin-top:.857em;font-size:1.429em;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.op-message-box{position:absolute;top:0;left:0;width:100%;height:100%;z-index:4}.op-message-box .op-message-container{position:absolute;top:45%;margin-top:-35px;width:100%;padding:0 12px;text-align:center}.op-message-box .op-message-container .op-message-text{display:inline-block;background-color:rgba(18,18,28,0.3);padding:.8em 1.2em;word-wrap:break-word;max-width:80%;border-radius:4px;cursor:pointer}.op-message-box .op-message-container .op-message-text .op-message-description{font-size:12px;margin-top:12px;color:#999}.op-message-box .op-message-container .op-message-icon{display:inline-block;margin-top:12px;width:100%}.op-message-box .op-message-container .op-message-icon i.op-con{cursor:pointer;font-size:80px;width:80px;height:80px;line-height:80px;display:inline-block;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-message-box.op-message-box-default-cursor .op-message-container .op-message-text{cursor:default}.op-message-box.op-message-box-default-cursor .op-message-container .op-message-icon i.op-con{cursor:default}.op-bigbutton-container{cursor:pointer;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center;z-index:5}.op-bigbutton-container .op-bigbutton{width:80px;height:80px;display:block;font-size:80px;line-height:80px;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-thumbnail-container{position:absolute;width:100%;height:100%;top:0;left:0;z-index:2;pointer-events:none}.op-thumbnail-container .op-thumbnail-wrapper{position:absolute;left:0;top:0;width:100%;height:100%}.op-thumbnail-container .op-thumbnail-wrapper img{width:100%;height:100%}.op-thumbnail-container .op-thumbnail-wrapper .op-thumbnail-header{position:absolute;left:1rem;top:1rem;padding:0 .5rem;font-size:2.857em;font-weight:bold;line-height:1.4;text-shadow:2px 2px 7px rgba(0,0,0,0.8),0 0 1px #000}.op-thumbnail-container .op-thumbnail-wrapper .op-thumbnail-header:after{display:block;content:'';clear:both}.op-watermark-container{position:absolute;width:100%;height:100%;top:0;left:0;z-index:3}.op-watermark-container .op-watermark{position:absolute;display:inline-block}.op-watermark-container .op-watermark img{width:100%;height:100%}.op-watermark-container .op-watermark .op-watermark-text{font-size:14px}.op-setting-panel{position:absolute;bottom:55px;right:12px;overflow-y:auto;max-height:100%;width:260px;user-select:none;background-color:rgba(28,28,28,0.9);text-shadow:0 0 2px rgba(0,0,0,0.5);z-index:8}.op-setting-panel.background{display:none}.op-setting-panel .op-setting-title,.op-setting-panel .op-setting-item{width:100%;height:38px;line-height:38px;cursor:pointer;outline:none;text-align:left}.op-setting-panel .op-setting-title-container .op-setting-title .op-setting-title-title{padding-left:12px;font-weight:bold}.op-setting-panel .op-setting-title-container .op-setting-title .op-setting-title-previcon{padding:0 0 0 12px;margin-right:-6px}.op-setting-panel .op-setting-item-container .op-setting-item:hover{background-color:rgba(255,255,255,0.1)}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-title{padding-left:12px}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-nexticon{float:right;padding-right:12px;margin-left:-6px}.op-setting-panel .op-setting-item-container .op-setting-item span.op-setting-item-value{float:right;padding-right:12px}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-checked{padding-left:12px;visibility:hidden}.op-setting-panel .op-setting-item-container .op-setting-item .op-setting-item-checked.op-show{visibility:visible}.op-controls-container{display:none}.op-controls-container .op-bottom-panel{position:absolute;left:0px;bottom:0px;width:100%;z-index:5;-webkit-animation-name:op-slideInUp;animation-name:op-slideInUp;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.op-controls-container .op-bottom-panel .op-gradient-bottom{position:absolute;width:100%;height:100%;background-color:rgba(18,18,18,0.5);pointer-events:none}.op-controls-container .op-bottom-panel .op-progressbar-container{display:block;position:relative;width:100%;height:4px;bottom:50px}.op-controls-container .op-bottom-panel .op-progressbar-container.op-progressbar-container-disabled{cursor:default}.op-controls-container .op-bottom-panel .op-progressbar-container .op-progressbar-padding{position:absolute;width:100%;height:15px;bottom:-5px;cursor:pointer}.op-controls-container .op-bottom-panel .op-controls{position:relative;width:100%;height:50px;text-align:left;overflow:hidden}.op-controls-container .op-bottom-panel .op-controls:after{content:'';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-setting-button{position:relative;margin-right:12px}.op-controls-container .op-bottom-panel .op-controls .op-playlist-button{position:relative;margin-right:12px}.op-controls-container .op-bottom-panel .op-controls .op-navigators{float:left;height:30px;line-height:30px}.op-controls-container .op-bottom-panel .op-controls .op-left-controls{position:absolute;top:0;left:0;padding:14px 0 10px 0}.op-controls-container .op-bottom-panel .op-controls .op-left-controls:after{content:'';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-right-controls{position:absolute;top:0;right:0;padding:14px 0 10px 0}.op-controls-container .op-bottom-panel .op-controls .op-right-controls:after{content:'';clear:both}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons{position:relative;display:inline-block;margin-left:14px;overflow:hidden;font-weight:100;height:30px}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button{margin-right:6px;position:relative;text-align:center;color:#fff}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon{position:relative}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon.reverse:after{content:'\\\\e900'}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon:after{font-family:'frameIcon' !important;speak:none;content:'\\\\e901';font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;font-size:2.4em;left:0;line-height:30px;height:30px}.op-controls-container .op-bottom-panel .op-controls .op-frame-buttons .op-frame-button .frame-icon .btn-text{font-weight:bold;font-size:.8em;line-height:30px;height:30px}.op-progressbar{position:absolute;bottom:0;left:0;width:100%;height:100%;outline:none;margin-top:10px}.op-progressbar .op-play-background-color{background-color:#50e3c2;background-color:var(--op-accent-color)}.op-progressbar .op-progress-list{cursor:pointer;position:relative;height:100%;background:rgba(255,255,255,0.2)}.op-progressbar .op-progress-list .op-load-progress,.op-progressbar .op-progress-list .op-play-progress,.op-progressbar .op-progress-list .op-hover-progress{position:absolute;left:0;bottom:0;width:100%;height:100%}.op-progressbar .op-progress-list .op-play-progress{width:0}.op-progressbar .op-progress-list .op-load-progress{width:0;background-color:rgba(255,255,255,0.5)}.op-progressbar .op-progress-list .op-hover-progress{left:0;width:0;background-color:rgba(255,255,255,0.6)}.op-progressbar .op-progressbar-knob-container{position:absolute;top:-5px;left:0}.op-progressbar .op-progressbar-knob-container .op-progressbar-knob{width:14px;height:14px;border-radius:7px}.op-progressbar .op-progressbar-time{display:none;position:absolute;bottom:15px;left:auto;width:auto;background-color:rgba(28,28,28,0.9);border-radius:2px;padding:5px 9px;font-size:.8em;line-height:15px;user-select:none;white-space:nowrap;opacity:.7}.op-progressbar-hover .op-progressbar-time{display:inline-block}.op-on-error .op-progressbar-time{display:none}.op-progressbar-section-start,.op-progressbar-section-end{display:none;position:absolute;width:3px;height:14px;bottom:-5px;background-color:#50e3c2;background-color:var(--op-accent-color)}.op-progressbar-preview{position:absolute;display:none;bottom:50px;border:2px solid #fff;border-radius:2px;background-color:#000;z-index:9}.op-play-controller{margin-left:15px}.op-seek-button{position:relative;top:0px}.op-seek-button.op-seek-button-back{margin-left:12px}.op-seek-button.op-seek-button-forward{margin-left:6px}.op-seek-button i{padding-top:1px;font-size:26px}.op-seek-button span{position:absolute;top:10.5px;left:0;right:0;text-align:center;font-size:10px;line-height:10px;cursor:pointer}.op-volume-controller{display:inline-block;position:relative;margin-left:12px}.op-volume-controller:after{content:'';clear:both}.op-volume-controller .op-volume-button{float:left}@-webkit-keyframes slide{100%{left:0}}@keyframes slide{100%{left:0}}.op-volume-controller .op-volume-slider-container{float:left;opacity:0;position:relative;width:0px;margin-right:0;line-height:30px;height:30px;cursor:pointer;user-select:none;outline:none}.op-volume-controller .op-volume-slider-container.active{width:70px;opacity:1;margin-left:8px;-moz-transition:opacity .4s cubic-bezier(0, 0, .2, 1);-webkit-transition:opacity .4s cubic-bezier(0, 0, .2, 1);transition:opacity .4s cubic-bezier(0, 0, .2, 1)}.op-volume-controller .op-volume-slider-container .op-volume-silder{height:100%;position:relative}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-bg,.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-value{position:absolute;display:block;left:0;top:50%;height:4px;margin-top:-2px;border-radius:10px}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-bg{width:100%;background:#fff}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-value{width:100%;background:#50e3c2;background:var(--op-accent-color);border-radius:10px 0 0 10px}.op-volume-controller .op-volume-slider-container .op-volume-silder .op-volume-slider-handle{position:absolute;top:50%;left:30px;width:12px;height:12px;border-radius:10px;margin-top:-6px;background:#fff}.op-time-display{float:left;position:relative;margin-left:14px;height:30px;line-height:30px;white-space:nowrap;vertical-align:top;font-size:14px;user-select:none}.op-time-display .op-live-badge{opacity:1;width:auto;display:inline-block}.op-time-display .op-live-badge:before{background:#ff0000;display:inline-block;position:relative;top:-2px;width:6px;height:6px;margin-right:5px;content:'';border-radius:6px}.op-time-display .op-live-badge.op-live-badge-delayed:before{background:#fff}.op-time-display .op-live-badge .op-live-badge-lowlatency{display:inline-block;margin-right:5px}.op-time-display .op-live-badge .op-live-text{cursor:pointer}.op-context-panel{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute;overflow:hidden;width:200px;padding:6px 0;z-index:8;background:rgba(28,28,28,0.9);text-shadow:0 0 2px rgba(0,0,0,0.5);font-weight:lighter;user-select:none}.op-context-panel:before,.op-context-panel:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-context-panel *,.op-context-panel *:before,.op-context-panel *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.op-context-panel .op-context-item{width:100%;height:38px;padding-left:12px;line-height:38px;cursor:pointer;outline:none;font-size:.8em;font-weight:lighter;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.op-context-panel .op-context-item:hover{background-color:rgba(255,255,255,0.1)}.op-fullscreen-button{position:relative;margin-right:15px}.op-fullscreen-button .op-fullscreen-compress{display:none}.op-spinner-container{position:absolute;top:50%;width:64px;left:50%;margin-left:-32px;margin-top:-32px;z-index:7;display:none}.op-spinner-container .op-spinner{display:inline-block;position:relative;width:64px;height:64px;border:4px solid transparent;border-top:4px solid #50e3c2;border-top:4px solid var(--op-accent-color);border-radius:50%;animation:spin 1.2s cubic-bezier(.5, 0, .5, 1) infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.op-caption-viewer .op-caption-text-container{position:absolute;bottom:60px;width:100%;padding:0 12px;text-align:center;-moz-transition:bottom .25s cubic-bezier(0, 0, .2, 1);-webkit-transition:bottom .25s cubic-bezier(0, 0, .2, 1);transition:bottom .25s cubic-bezier(0, 0, .2, 1)}.op-caption-viewer .op-caption-text-container .op-caption-text{color:#fff;font-size:1em;line-height:1.2em;text-shadow:2px 2px 2px gray;padding:.1em .3em;user-select:none;word-break:break-word;white-space:pre-line;border:none;background:none}.op-caption-button{width:36px}.op-caption-button>i{font-size:18px;-moz-transition:color .25s cubic-bezier(0, 0, .2, 1);-webkit-transition:color .25s cubic-bezier(0, 0, .2, 1);transition:color .25s cubic-bezier(0, 0, .2, 1)}.op-caption-active .op-caption-button>i{color:#F36446}.op-wrapper.ovenplayer.large{font-size:14px}.op-wrapper.ovenplayer.large .op-caption-text{font-size:2em;line-height:2em}.op-wrapper.ovenplayer.medium{font-size:12px}.op-wrapper.ovenplayer.medium .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.small{font-size:10px}.op-wrapper.ovenplayer.small .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.small .op-playlist{padding:1rem}.op-wrapper.ovenplayer.small .op-playlist .op-playlist-card{margin:5px 0}.op-wrapper.ovenplayer.xsmall{font-size:10px}.op-wrapper.ovenplayer.xsmall .op-bigbutton-container .op-bigbutton{width:60px;height:60px;font-size:60px;line-height:60px}.op-wrapper.ovenplayer.xsmall .op-caption-text{font-size:1.4em;line-height:1.4em}.op-wrapper.ovenplayer.xsmall .op-playlist{padding:1rem}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-header{font-size:2em}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-card{margin:5px 0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;padding:0 6em}.op-wrapper.ovenplayer.xsmall .op-playlist .op-playlist-card .op-playlist-card-title{margin-top:0}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container{top:50%;font-weight:bold}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container .op-message-icon{margin-top:0}.op-wrapper.ovenplayer.xsmall .op-message-box .op-message-container .op-message-icon .op-con{font-size:40px;width:40px;height:40px;line-height:40px}.op-wrapper.ovenplayer.xsmall .op-ads-button{bottom:22px}.op-wrapper.ovenplayer.xsmall .op-ads-button .videoAdUiAction{padding:4px;font-size:14px}.op-wrapper.ovenplayer.xxsmall .op-left-controls{max-width:240px;overflow:hidden}.op-wrapper.ovenplayer.xxsmall .op-live-badge-lowlatency{max-width:75px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel{height:34px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls{top:4px}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls .op-left-controls{height:30px;padding:0}.op-wrapper.ovenplayer.linear-ad .op-bottom-panel .op-controls .op-right-controls{height:30px;padding:0}.op-wrapper.ovenplayer.linear-ad .op-ads{top:0;bottom:0}.op-wrapper.ovenplayer.linear-ad .op-button i.op-con{width:24px;height:24px;font-size:24px}.op-wrapper.ovenplayer.linear-ad .op-controls-container .op-bottom-panel .op-progressbar-container{bottom:50px}@keyframes fade{from{opacity:.3}55%{opacity:1}75%{opacity:1}to{opacity:.3}}@-webkit-keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:scale3d(.5, .5, .5);transform:scale3d(.5, .5, .5)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(.97, .97, .97);transform:scale3d(.97, .97, .97)}to{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215, .61, .355, 1);animation-timing-function:cubic-bezier(.215, .61, .355, 1)}0%{opacity:0;-webkit-transform:scale3d(.3, .3, .3);transform:scale3d(.3, .3, .3)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(.9, .9, .9);transform:scale3d(.9, .9, .9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(.97, .97, .97);transform:scale3d(.97, .97, .97)}to{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.op-player .bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.op-player .fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}.op-player .animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media (prefers-reduced-motion){.op-player .animated{-webkit-animation:unset !important;animation:unset !important;-webkit-transition:none !important;transition:none !important}}@media only screen and (max-width:399px){.op-seek-button{display:none !important}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/stylesheet/ovenplayer.less\"],\"names\":[],\"mappings\":\"AAAA,gBAAS,CAMT,sBACE,GACE,sBAAW,CAGb,KACE,wBAAW,CAAA,CAIf,mCACE,KACE,sCAAA,CACA,8BAAW,CAGb,GACE,iBAAA,CACA,yCAAA,CACA,iCAAW,CAAA,CAIf,2BACE,KACE,sCAAA,CACA,8BAAW,CAGb,GACE,iBAAA,CACA,yCAAA,CACA,iCAAW,CAAA,CAIf,gCACE,KACE,yCAAA,CACA,iCAAA,CACA,SAAA,CAGF,GACE,sCAAA,CACA,8BAAW,CAAA,CAIf,wBACE,KACE,yCAAA,CACA,iCAAA,CACA,SAAA,CAGF,GACE,sCAAA,CACA,8BAAW,CAAA,CAIf,WACE,uBAAA,CACA,8DAAA,CACA,kBAAA,CACA,iBAAA,CAGF,WACE,sBAAA,CACA,8DAAA,CACA,kBAAA,CACA,iBAAA,CAGF,WACE,2BAAA,CACA,8DAAA,CACA,kBAAA,CACA,iBAAA,CAOF,MACE,yBAAA,CAGF,uBACE,iBAAA,CACA,eAAA,CAEA,eAAA,CACA,iBAAA,CACA,UAAA,CACA,aAAA,CACA,sCAAA,CACA,qBAAA,CACA,0BAAA,CACA,6BAAA,CACA,qBAAA,CACA,UAAA,CACA,cAAA,CACA,eAAA,CACA,SAAA,CAEA,0BAAA,CACA,gBAAA,CAnBF,yBAsBI,kBAAA,CAtBJ,8BA0BI,UAAA,CACA,WAAA,CACA,iBAAA,CAGF,2DAEE,0BAAA,CACA,6BAAA,CACA,qBAAA,CAGF,wFAGE,0BAAA,CACA,6BAAA,CACA,qBAAA,CAGF,qCACE,qBAAA,CACA,sBAAA,CACA,KAAA,CACA,OAAA,CACA,QAAA,CACA,MAAA,CACA,YAAA,CACA,QAAA,CACA,cAAA,CATF,0HAaI,WAAA,CACA,8BAAA,CACA,2BAAA,CACA,gBAAA,CACA,OAAA,CACA,QAAA,CACA,+BAAW,CAKf,mCACE,WAAA,CADF,oDAKI,sCAAA,CACA,8BAAA,CAEA,8BAAA,CACA,sBAAA,CACA,gCAAA,CACA,wBAAA,CAXJ,wHAgBI,WAAA,CAhBJ,8DAoBI,WAAA,CAIJ,6DAGI,uBAAA,CAjGN,iCAsGI,qBAAA,CAIF,2CACE,SAAA,CACA,UAAA,CAGF,kIAEE,aAAA,CACA,UAAA,CACA,kBAAA,CAGF,iDACE,kBAAA,CACA,0BAAA,CACA,kBAAA,CAGF,iDACE,WAAA,CACA,UAAA,CACA,kBAAA,CACA,yBAAA,CACA,iBAAA,CAjIJ,iCAqII,aAAA,CACA,4BAAA,CACA,SAAA,CACA,QAAA,CACA,UAAA,CACA,sCAAA,CACA,aAAA,CACA,eAAA,CACA,eAAA,CACA,mBAAA,CACA,uBAAA,CACA,QAAA,CACA,oBAAA,CACA,oBAAA,CACA,+CAAA,CAIJ,WACE,iBAAA,CACA,KAAA,CACA,WAAA,CACA,UAAA,CAJF,+BASI,iBAAA,CACA,WAAA,CAVJ,uCAoBI,iBAAA,CACA,QAAA,CACA,OAAA,CACA,UAAA,CACA,WAAA,CAxBJ,6CA2BM,iBAAA,CACA,MAAA,CACA,KAAA,CACA,UAAA,CACA,WAAA,CA/BN,8CAmCM,UAAA,CACA,WAAA,CAiBN,QACE,iBAAA,CACA,WAAA,CACA,UAAA,CACA,mBAAA,CAEA,KAAA,CAEA,YACE,4BAAA,CACA,qBAAA,CACA,sBAAA,CAHF,mBAMI,mBAAA,CAdN,gCAmBI,qBAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,MAAA,CACA,KAAA,CACA,SAAA,CAzBJ,uBA6BI,WAAA,CACA,cAAA,CACA,gBAAA,CACA,mBAAA,CACA,iBAAA,CACA,OAAA,CACA,SAAA,CACA,qBAAA,CACA,sBAAA,CACA,iBAAA,CACA,mCAAA,CACA,eAAA,CACA,YAAA,CAzCJ,wCA4CM,aAAA,CAEA,kBAAA,CACA,cAAA,CACA,gBAAA,CACA,iBAAA,CACA,oBAAA,CACA,UAAA,CACA,qBAAA,CApDN,wCAwDM,gBAAA,CACA,cAAA,CACA,aAAA,CACA,kBAAA,CACA,cAAA,CACA,sCAAA,CAEA,8CACE,iBAAA,CACA,qBAAA,CAjER,0CAqEQ,oBAAA,CACA,UAAA,CAWR,WACE,oBAAA,CACA,WAAA,CACA,sBAAA,CACA,SAAA,CACA,aAAA,CACA,kBAAA,CACA,eAAA,CACA,eAAA,CACA,wBAAA,CAEA,4BAEE,SAAA,CAIJ,SACE,sCAAA,CACA,iBAAA,CACA,kBAAA,CACA,UAAA,CAEA,iBAAA,CACA,UAAA,CACA,cAAA,CACA,gBAAA,CAEA,aAAA,CACA,uBAAA,CACA,iBAAA,CAGA,mBAAA,CACA,mBAAA,CAGA,kCAAA,CACA,iCAAA,CAEA,cAAA,CAEA,iBACE,aAAA,CAIA,+BACE,eAAS,CAKX,8BACE,eAAS,CAKX,wCACE,eAAS,CAKX,sCACE,eAAS,CAKX,+BACE,eAAS,CAKX,gCACE,eAAS,CAKX,gCACE,eAAS,CAKX,yBACE,eAAS,CAKX,2BACE,eAAS,CAKX,8BACE,eAAS,CAKX,iCACE,eAAS,CAKX,kCACE,eAAS,CAKX,+BACE,eAAS,CAKX,4BACE,eAAS,CAKX,0BACE,eAAS,CAIb,yBACE,YAAA,CACA,eAAA,CAEA,iCACE,eAAS,CAIb,wBACE,YAAA,CAEA,gCACE,eAAS,CAKX,+BACE,eAAS,CAKX,6BACE,eAAS,CAKX,4BACE,eAAS,CAKf,UACE,oBAAA,CACA,iCAAA,CACA,aAAA,CACA,aAAA,CACA,iBAAA,CACA,kBAAA,CACA,uBAAA,CACA,oBAAA,CACA,wBAAA,CAGF,aACE,iBAAA,CACA,UAAA,CACA,WAAA,CACA,MAAA,CACA,KAAA,CACA,eAAA,CACA,eAAA,CACA,SAAA,CARF,uBAWI,iBAAA,CACA,UAAA,CACA,YAAA,CACA,UAAA,CAdJ,uBAkBI,UAAA,CACA,iBAAA,CAnBJ,wBAuBI,WAAA,CACA,iBAAA,CAxBJ,iCA4BI,iBAAA,CACA,gBAAA,CAEA,uCACE,aAAA,CACA,UAAA,CACA,UAAA,CAlCN,uDAsCM,WAAA,CAtCN,+BA2CI,WAAA,CACA,eAAA,CACA,iBAAA,CA7CJ,wDAgDM,gBAAA,CACA,iBAAA,CACA,OAAA,CACA,WAAA,CACA,8BAAA,CACA,0BAAA,CACA,UAAA,CACA,MAAA,CAvDN,2DA2DM,UAAA,CACA,WAAA,CACA,iBAAA,CACA,iBAAA,CACA,gBAAA,CACA,eAAA,CAhEN,oFAmEQ,QAAA,CACA,iBAAA,CACA,OAAA,CACA,iBAAA,CACA,gBAAA,CACA,8BAAA,CACA,0BAAA,CACA,UAAA,CA1ER,qDA+EM,kBAAA,CACA,iBAAA,CACA,mBAAA,CACA,YAAA,CACA,kBAAA,CACA,cAAA,CApFN,uEAwFQ,kBAAA,CACA,iBAAA,CACA,aAAA,CACA,yBAAA,CACA,YAAA,CACA,mBAAA,CACA,WAAA,CACA,uBAAA,CACA,mBAAA,CACA,oBAAA,CACA,cAAA,CAEA,8EACE,aAAA,CACA,4BAAO,CAFT,0GAKI,oBAAA,CACA,mCAAc,CA1G1B,mGA+GU,iBAAA,CACA,aAAA,CACA,UAAA,CACA,SAAA,CACA,eAAA,CACA,+BAAA,CACA,qBAAA,CArHV,uGAwHY,iBAAA,CACA,KAAA,CACA,QAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CACA,QAAA,CAGF,yGACE,wBAAA,CAEA,2GACE,QAAA,CACA,iBAAA,CACA,OAAA,CACA,QAAA,CACA,+BAAA,CACA,qBAAA,CACA,0BAAA,CAIJ,2GACE,kBAAA,CACA,aAAA,CACA,UAAS,CAlJrB,+FAuJU,iBAAA,CACA,iBAAA,CACA,aAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAcV,gBACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CACA,SAAA,CANF,sCASI,iBAAA,CACA,OAAA,CACA,gBAAA,CACA,UAAA,CACA,cAAA,CACA,iBAAA,CAdJ,uDAiBM,oBAAA,CACA,mCAAA,CACA,kBAAA,CACA,oBAAA,CACA,aAAA,CACA,iBAAA,CACA,cAAA,CAvBN,+EA0BQ,cAAA,CACA,eAAA,CACA,UAAA,CA5BR,uDAkCM,oBAAA,CACA,eAAA,CACA,UAAA,CApCN,gEAuCQ,cAAA,CACA,cAAA,CACA,UAAA,CACA,WAAA,CACA,gBAAA,CACA,oBAAA,CACA,oDAAA,CAcR,qFACE,cAAA,CAGF,8FACE,cAAA,CAOF,wBACE,cAAA,CACA,iBAAA,CACA,OAAA,CACA,QAAA,CACA,+BAAA,CACA,iBAAA,CACA,SAAA,CAPF,sCAUI,UAAA,CACA,WAAA,CACA,aAAA,CACA,cAAA,CACA,gBAAA,CACA,oDAAA,CAQJ,wBACE,iBAAA,CACA,UAAA,CACA,WAAA,CAEA,KAAA,CACA,MAAA,CAEA,SAAA,CACA,mBAAA,CATF,8CAYI,iBAAA,CACA,MAAA,CACA,KAAA,CACA,UAAA,CACA,WAAA,CAhBJ,kDAmBM,UAAA,CACA,WAAA,CApBN,mEAwBM,iBAAA,CACA,SAAA,CACA,QAAA,CACA,eAAA,CACA,iBAAA,CACA,gBAAA,CACA,eAAA,CACA,oDAAA,CAEA,yEACE,aAAA,CACA,UAAA,CACA,UAAA,CAUR,wBACE,iBAAA,CACA,UAAA,CACA,WAAA,CAEA,KAAA,CACA,MAAA,CAEA,SAAA,CARF,sCAWI,iBAAA,CACA,oBAAA,CAZJ,0CAeM,UAAA,CACA,WAAA,CAhBN,yDAoBM,cAAA,CASN,kBACE,iBAAA,CACA,WAAA,CACA,UAAA,CACA,eAAA,CACA,eAAA,CACA,WAAA,CAEA,gBAAA,CACA,mCAAA,CACA,mCAAA,CACA,SAAA,CAEA,6BAGE,YAAA,CAhBJ,uEAqBI,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,YAAA,CACA,eAAA,CA1BJ,wFAgCQ,iBAAA,CACA,gBAAA,CAjCR,2FAsCQ,kBAAA,CACA,iBAAA,CAQF,oEACE,sCAAA,CAhDR,qFAoDQ,iBAAA,CApDR,wFAwDQ,WAAA,CACA,kBAAA,CACA,gBAAA,CA1DR,yFA8DQ,WAAA,CACA,kBAAA,CA/DR,uFAmEQ,iBAAA,CACA,iBAAA,CApER,+FAwEQ,kBAAA,CAYR,uBACE,YAAA,CADF,wCAII,iBAAA,CACA,QAAA,CACA,UAAA,CACA,UAAA,CACA,SAAA,CAaA,mCAAA,CACA,2BAAA,CAEA,8BAAA,CACA,sBAAA,CACA,gCAAA,CACA,wBAAA,CA3BJ,4DAWM,iBAAA,CACA,UAAA,CACA,WAAA,CACA,mCAAA,CACA,mBAAA,CAfN,kEA8BM,aAAA,CACA,iBAAA,CACA,UAAA,CACA,UAAA,CACA,WAAA,CAEA,oGACE,cAAA,CArCR,0FAyCQ,iBAAA,CACA,UAAA,CACA,WAAA,CACA,WAAA,CACA,cAAA,CA7CR,qDAoDM,iBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,eAAA,CAEA,2DACE,UAAA,CACA,UAAA,CA5DR,wEAgEQ,iBAAA,CACA,iBAAA,CAjER,yEAqEQ,iBAAA,CACA,iBAAA,CAtER,oEA0EQ,UAAA,CACA,WAAA,CACA,gBAAA,CA5ER,uEAgFQ,iBAAA,CACA,KAAA,CACA,MAAA,CACA,qBAAA,CAEA,6EACE,UAAA,CACA,UAAA,CAvFV,wEA4FQ,iBAAA,CACA,KAAA,CACA,OAAA,CACA,qBAAA,CAEA,8EACE,UAAA,CACA,UAAA,CAnGV,uEAyGQ,iBAAA,CACA,oBAAA,CACA,gBAAA,CACA,eAAA,CACA,eAAA,CACA,WAAA,CA9GR,wFAiHU,gBAAA,CACA,iBAAA,CACA,iBAAA,CACA,UAAA,CApHV,oGAuHY,iBAAA,CAGE,kHACE,eAAS,CAIb,0GACE,kCAAA,CACA,UAAA,CACA,eAAA,CACA,iBAAA,CACA,kBAAA,CACA,mBAAA,CACA,mBAAA,CAGA,kCAAA,CACA,iCAAA,CACA,iBAAA,CACA,eAAA,CACA,MAAA,CACA,gBAAA,CACA,WAAA,CA/Id,8GAmJc,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,WAAA,CAkBd,gBACE,iBAAA,CACA,QAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CACA,YAAA,CACA,eAAA,CAPF,0CAUI,wBAAA,CACA,uCAAkB,CAXtB,kCAeI,cAAA,CACA,iBAAA,CACA,WAAA,CACA,gCAAA,CAlBJ,6JAuBM,iBAAA,CACA,MAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CA3BN,oDA+BM,OAAA,CA/BN,oDAmCM,OAAA,CACA,sCAAA,CApCN,qDAwCM,MAAA,CACA,OAAA,CACA,sCAAA,CA1CN,+CAgDI,iBAAA,CACA,QAAA,CACA,MAAA,CAlDJ,oEAqDM,UAAA,CACA,WAAA,CACA,iBAAA,CAvDN,qCA4DI,YAAA,CACA,iBAAA,CACA,WAAA,CACA,SAAA,CACA,UAAA,CACA,mCAAA,CACA,iBAAA,CACA,eAAA,CACA,cAAA,CACA,gBAAA,CACA,gBAAA,CACA,kBAAA,CACA,UAAA,CAMJ,2CACE,oBAAA,CAGF,kCACE,YAAA,CAGF,0DAEE,YAAA,CACA,iBAAA,CACA,SAAA,CACA,WAAA,CACA,WAAA,CACA,wBAAA,CACA,uCAAkB,CAGpB,wBACE,iBAAA,CACA,YAAA,CACA,WAAA,CACA,qBAAA,CACA,iBAAA,CACA,qBAAA,CACA,SAAA,CAGF,oBACE,gBAAA,CAOF,gBAEE,iBAAA,CACA,OAAA,CAEA,oCACE,gBAAA,CAGF,uCACE,eAAA,CAVJ,kBAcI,eAAA,CACA,cAAA,CAfJ,qBAmBI,iBAAA,CACA,UAAA,CACA,MAAA,CACA,OAAA,CACA,iBAAA,CACA,cAAA,CACA,gBAAA,CACA,cAAA,CAQJ,sBACE,oBAAA,CACA,iBAAA,CACA,gBAAA,CAEA,4BACE,UAAA,CACA,UAAA,CAPJ,wCAWI,UAAA,CAGF,yBACE,KACE,MAAA,CAAA,CAIJ,iBACE,KACE,MAAA,CAAA,CAtBN,kDA4BI,UAAA,CACA,SAAA,CACA,iBAAA,CACA,SAAA,CACA,cAAA,CACA,gBAAA,CACA,WAAA,CACA,cAAA,CACA,gBAAA,CACA,YAAA,CAEA,yDACE,UAAA,CACA,SAAA,CACA,eAAA,CACA,qDAAA,CACA,wDAAA,CACA,gDAAwB,CA7C9B,oEAiDM,WAAA,CACA,iBAAA,CAlDN,qLAsDQ,iBAAA,CACA,aAAA,CACA,MAAA,CACA,OAAA,CACA,UAAA,CACA,eAAA,CACA,kBAAA,CA5DR,yFAgEQ,UAAA,CACA,eAAA,CAjER,4FAqEQ,UAAA,CACA,kBAAA,CACA,iCAAA,CACA,2BAAA,CAxER,6FA+EQ,iBAAA,CACA,OAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,eAAA,CAcR,iBACE,UAAA,CACA,iBAAA,CACA,gBAAA,CACA,WAAA,CACA,gBAAA,CACA,kBAAA,CACA,kBAAA,CACA,cAAA,CACA,gBAAA,CATF,gCAiBI,SAAA,CACA,UAAA,CACA,oBAAA,CAEA,uCACE,kBAAA,CACA,oBAAA,CACA,iBAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CACA,gBAAA,CACA,UAAA,CACA,iBAAA,CAGF,6DACE,eAAA,CAlCN,0DAsCM,oBAAA,CACA,gBAAA,CAvCN,8CA2CM,cAAA,CAWN,kBACE,0BAAA,CACA,6BAAA,CACA,qBAAA,CACA,aAAA,CACA,iBAAA,CACA,eAAA,CACA,WAAA,CACA,aAAA,CACA,SAAA,CACA,6BAAA,CACA,mCAAA,CACA,mBAAA,CACA,gBAAA,CAEA,iDAEE,0BAAA,CACA,6BAAA,CACA,qBAAA,CAGF,yEAGE,0BAAA,CACA,6BAAA,CACA,qBAAA,CA3BJ,mCA+BI,UAAA,CACA,WAAA,CACA,iBAAA,CACA,gBAAA,CACA,cAAA,CACA,YAAA,CACA,cAAA,CACA,mBAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACE,sCAAA,CAeN,sBACE,iBAAA,CACA,iBAAA,CAFF,8CAKI,YAAA,CAQJ,sBACE,iBAAA,CACA,OAAA,CACA,UAAA,CACA,QAAA,CACA,iBAAA,CACA,gBAAA,CACA,SAAA,CACA,YAAA,CARF,kCAYI,oBAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CAEA,4BAAA,CACA,4BAAA,CACA,2CAAA,CACA,iBAAA,CAEA,uDAAqB,CAErB,gBACE,GACE,sBAAW,CAGb,KACE,wBAAW,CAAA,CAYnB,8CAGI,iBAAA,CACA,WAAA,CACA,UAAA,CACA,cAAA,CACA,iBAAA,CACA,qDAAA,CACA,wDAAA,CACA,gDAAwB,CAV5B,+DAaM,UAAA,CACA,aAAA,CACA,iBAAA,CACA,4BAAA,CACA,iBAAA,CACA,gBAAA,CACA,qBAAA,CACA,oBAAA,CACA,WAAA,CACA,eAAA,CAKN,mBACE,UAAA,CAGF,qBACE,cAAA,CACA,oDAAA,CACA,uDAAA,CACA,+CAAuB,CAGzB,wCACE,aAAA,CAOF,6BACE,cAAA,CADF,8CAII,aAAA,CACA,eAAA,CAKJ,8BACE,cAAA,CADF,+CAII,eAAA,CACA,iBAAA,CAIJ,6BACE,cAAA,CADF,8CAII,eAAA,CACA,iBAAA,CALJ,0CASI,YAAA,CATJ,4DAYM,YAAA,CAMN,8BACE,cAAA,CADF,oEAMM,UAAA,CACA,WAAA,CACA,cAAA,CACA,gBAAA,CATN,+CAcI,eAAA,CACA,iBAAA,CAfJ,2CAmBI,YAAA,CAnBJ,+DAsBM,aAAA,CAtBN,6DA0BM,YAAA,CACA,iBAAA,CACA,aAAA,CACA,cAAA,CACA,aAAA,CA9BN,qFAiCQ,YAAA,CAjCR,oEAwCM,OAAA,CACA,gBAAA,CAzCN,qFA4CQ,YAAA,CA5CR,6FA+CU,cAAA,CACA,UAAA,CACA,WAAA,CACA,gBAAA,CAlDV,6CAyDI,WAAA,CAzDJ,8DA4DM,WAAA,CACA,cAAA,CAKN,iDAGI,eAAA,CACA,eAAA,CAJJ,yDAQI,cAAA,CAKJ,kDAGI,WAAA,CAHJ,+DAOM,OAAA,CAPN,iFAUQ,WAAA,CACA,SAAA,CAXR,kFAeQ,WAAA,CACA,SAAA,CAhBR,yCAsBI,KAAA,CACA,QAAA,CAvBJ,qDA4BM,UAAA,CACA,WAAA,CACA,cAAA,CA9BN,mGAyCI,WAAA,CASF,gBACE,KACE,UAAA,CAMF,IACE,SAAA,CAGF,IACE,SAAA,CAGF,GACE,UAAA,CAAA,CAIJ,4BAEE,wBAME,kEAAA,CACA,0DAA2B,CAG7B,GACE,SAAA,CACA,qCAAA,CACA,6BAAW,CAGb,IACE,wCAAA,CACA,gCAAW,CAGb,IACE,qCAAA,CACA,6BAAW,CAGb,IACE,SAAA,CACA,2CAAA,CACA,mCAAW,CAGb,IACE,wCAAA,CACA,gCAAW,CAGb,GACE,SAAA,CACA,kCAAA,CACA,0BAAW,CAAA,CAIf,oBAEE,wBAME,kEAAA,CACA,0DAA2B,CAG7B,GACE,SAAA,CACA,qCAAA,CACA,6BAAW,CAGb,IACE,wCAAA,CACA,gCAAW,CAGb,IACE,qCAAA,CACA,6BAAW,CAGb,IACE,SAAA,CACA,2CAAA,CACA,mCAAW,CAGb,IACE,wCAAA,CACA,gCAAW,CAGb,GACE,SAAA,CACA,kCAAA,CACA,0BAAW,CAAA,CA9GjB,qBAmHI,+BAAA,CACA,uBAAA,CACA,+BAAA,CACA,uBAAA,CAGF,0BACE,KACE,SAAA,CAGF,GACE,SAAA,CAAA,CAIJ,kBACE,KACE,SAAA,CAGF,GACE,SAAA,CAAA,CAzIN,mBA8II,6BAAA,CACA,qBAAA,CA/IJ,qBAmJI,6BAAA,CACA,qBAAA,CACA,gCAAA,CACA,wBAAA,CAGF,gCAAA,qBAEI,kCAAA,CACA,0BAAA,CACA,kCAAA,CACA,0BAAA,CAAA,CAwBN,yCACE,gBACE,uBAAA,CAAA\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n\\n/**\\n * @brief   Animation\\n * */\\n\\n@keyframes op-spinner {\\n  0% {\\n    transform: rotate(0deg);\\n  }\\n\\n  100% {\\n    transform: rotate(360deg);\\n  }\\n}\\n\\n@-webkit-keyframes op-slideOutDown {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n  }\\n}\\n\\n@keyframes op-slideOutDown {\\n  from {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n\\n  to {\\n    visibility: hidden;\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n  }\\n}\\n\\n@-webkit-keyframes op-slideInUp {\\n  from {\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n\\n@keyframes op-slideInUp {\\n  from {\\n    -webkit-transform: translate3d(0, 100%, 0);\\n    transform: translate3d(0, 100%, 0);\\n    opacity: 1;\\n  }\\n\\n  to {\\n    -webkit-transform: translate3d(0, 0, 0);\\n    transform: translate3d(0, 0, 0);\\n  }\\n}\\n\\n@font-face {\\n  font-family: \\\"frameIcon\\\";\\n  src: url(\\\"../assets/images/ic-player-frame-jump.ttf?rxg7gj\\\") format('truetype');\\n  font-weight: normal;\\n  font-style: normal;\\n}\\n\\n@font-face {\\n  font-family: 'op-icons';\\n  src: url('../assets/fonts/fontello.ttf?13010392') format('truetype');\\n  font-weight: normal;\\n  font-style: normal;\\n}\\n\\n@font-face {\\n  font-family: 'op-seek-icons';\\n  src: url('../assets/fonts/seek-icons.ttf?13010392') format('truetype');\\n  font-weight: normal;\\n  font-style: normal;\\n}\\n\\n/**\\n * @brief   common style\\n * */\\n\\n:root {\\n  --op-accent-color: #50e3c2;\\n}\\n\\n.op-wrapper.ovenplayer {\\n  position: relative;\\n  max-height: 100%;\\n\\n  overflow: hidden;\\n  zoom: 1 !important;\\n  width: 100%;\\n  display: block;\\n  font-family: Helvetica, Arial, sans-serif;\\n  background-color: #000;\\n  -moz-box-sizing: border-box;\\n  -webkit-box-sizing: border-box;\\n  box-sizing: border-box;\\n  color: #fff;\\n  font-size: 14px;\\n  font-weight: 100;\\n  outline: 0;\\n\\n  -webkit-touch-callout: none;\\n  user-select: none;\\n\\n  * {\\n    box-sizing: inherit;\\n  }\\n\\n  object {\\n    width: 100%;\\n    height: 100%;\\n    position: absolute;\\n  }\\n\\n  &:before,\\n  &:after {\\n    -moz-box-sizing: border-box;\\n    -webkit-box-sizing: border-box;\\n    box-sizing: border-box;\\n  }\\n\\n  & *,\\n  & *:before,\\n  & *:after {\\n    -moz-box-sizing: border-box;\\n    -webkit-box-sizing: border-box;\\n    box-sizing: border-box;\\n  }\\n\\n  &.op-fullscreen {\\n    width: 100% !important;\\n    height: 100% !important;\\n    top: 0;\\n    right: 0;\\n    bottom: 0;\\n    left: 0;\\n    z-index: 9999;\\n    margin: 0;\\n    position: fixed;\\n\\n    .op-watermark-container,\\n    .op-thumbnail-container {\\n      width: 100vw;\\n      max-width: calc(100vh * 16 / 9);\\n      height: calc(100vw * 9 / 16);\\n      max-height: 100vh;\\n      top: 50%;\\n      left: 50%;\\n      transform: translate(-50%, -50%);\\n    }\\n\\n  }\\n\\n  &.op-autohide {\\n    cursor: none;\\n\\n    .op-bottom-panel {\\n\\n      -webkit-animation-name: op-slideOutDown;\\n      animation-name: op-slideOutDown;\\n\\n      -webkit-animation-duration: 0.2s;\\n      animation-duration: 0.2s;\\n      -webkit-animation-fill-mode: both;\\n      animation-fill-mode: both;\\n    }\\n\\n    .op-progressbar-container,\\n    .op-controls .op-button {\\n      cursor: none;\\n    }\\n\\n    .op-caption-text-container {\\n      bottom: 25px;\\n    }\\n  }\\n\\n  &.op-no-controls {\\n\\n    .op-controls-container {\\n      display: none !important;\\n    }\\n  }\\n\\n  .op-ratio {\\n    padding-bottom: 56.25%;\\n    /*16:9*/\\n  }\\n\\n  & ::-webkit-scrollbar {\\n    width: 5px;\\n    height: 8px;\\n  }\\n\\n  & ::-webkit-scrollbar-button:start:decrement,\\n  ::-webkit-scrollbar-button:end:increment {\\n    display: block;\\n    height: 3px;\\n    background: #2f2f3e;\\n  }\\n\\n  & ::-webkit-scrollbar-track {\\n    background: #2f2f3e;\\n    -webkit-border-radius: 10px;\\n    border-radius: 10px;\\n  }\\n\\n  & ::-webkit-scrollbar-thumb {\\n    height: 50px;\\n    width: 50px;\\n    background: #606071;\\n    -webkit-border-radius: 8px;\\n    border-radius: 8px;\\n  }\\n\\n  .op-clear {\\n    color: inherit;\\n    background-color: transparent;\\n    padding: 0;\\n    margin: 0;\\n    float: none;\\n    font-family: Helvetica, Arial, sans-serif;\\n    font-size: 1em;\\n    line-height: 1em;\\n    list-style: none;\\n    text-transform: none;\\n    vertical-align: baseline;\\n    border: 0;\\n    font-variant: inherit;\\n    font-stretch: inherit;\\n    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\\n  }\\n}\\n\\n.op-player {\\n  position: absolute;\\n  top: 0;\\n  height: 100%;\\n  width: 100%;\\n\\n\\n\\n  .op-core-ui-wrapper {\\n    position: relative;\\n    height: 100%;\\n  }\\n\\n  .op-media-element-container {\\n    /* display: block;\\n    height: 100%;\\n    width: auto;\\n    position : relative;*/\\n\\n\\n    position: absolute;\\n    left: 0px;\\n    top: 0px;\\n    width: 100%;\\n    height: 100%;\\n\\n    video {\\n      position: absolute;\\n      left: 0;\\n      top: 0;\\n      width: 100%;\\n      height: 100%;\\n    }\\n\\n    object {\\n      width: 100%;\\n      height: 100%;\\n    }\\n  }\\n\\n  .op-ui {\\n\\n    /*position : absolute;\\n    bottom : 0px;\\n    left : 0px;\\n    width: 100%;\\n    height: 100%;*/\\n    .op-controls-container {}\\n\\n    .op-helpers-container {}\\n  }\\n}\\n\\n.op-ads {\\n  position: absolute;\\n  height: 100%;\\n  width: 100%;\\n  padding-bottom: 34px;\\n  //pointer-events: none;\\n  top: 0;\\n\\n  &>div {\\n    position: absolute !important;\\n    width: 100% !important;\\n    height: 100% !important;\\n\\n    iframe {\\n      pointer-events: auto;\\n    }\\n  }\\n\\n  video.op-ads-vast-video {\\n    background-color: rgb(0, 0, 0);\\n    position: absolute;\\n    width: 100%;\\n    height: 100%;\\n    left: 0;\\n    top: 0;\\n    z-index: 1;\\n  }\\n\\n  .op-ads-button {\\n    bottom: 36px;\\n    cursor: default;\\n    margin-right: 4px;\\n    pointer-events: auto;\\n    position: absolute;\\n    right: 0;\\n    z-index: 1;\\n    width: auto !important;\\n    height: auto !important;\\n    border-radius: 4px;\\n    background-color: rgba(18, 18, 28, 0.7);\\n    min-width: 155px;\\n    display: none;\\n\\n    .op-ads-textview {\\n      color: #e6e6e6;\\n      //font-family: arial,sans-serif;\\n      font-weight: normal;\\n      font-size: 11px;\\n      padding: 6px 12px;\\n      text-align: center;\\n      display: inline-block;\\n      width: 100%;\\n      vertical-align: middle;\\n    }\\n\\n    .videoAdUiAction {\\n      padding: 8px 24px;\\n      cursor: pointer;\\n      direction: ltr;\\n      font-weight: normal;\\n      font-size: 20px;\\n      border: 1px solid rgba(255, 255, 255, 0.5);\\n\\n      &:hover {\\n        border-radius: 4px;\\n        border: 1px solid rgba(255, 255, 255, 1);\\n      }\\n\\n      i {\\n        display: inline-block;\\n        width: auto;\\n      }\\n    }\\n  }\\n\\n}\\n\\n/**\\n * @brief   common components\\n * */\\n\\n.op-button {\\n  display: inline-block;\\n  border: none;\\n  background: transparent;\\n  padding: 0;\\n  color: inherit;\\n  text-align: inherit;\\n  overflow: hidden;\\n  font-weight: 100;\\n  text-indent: 0 !important;\\n\\n  &:focus,\\n  & {\\n    outline: 0;\\n  }\\n}\\n\\ni.op-con {\\n  font-family: \\\"op-icons\\\", \\\"op-seek-icons\\\";\\n  font-style: normal;\\n  font-weight: normal;\\n  speak: none;\\n\\n  font-size: inherit;\\n  width: auto;\\n  font-size: 30px;\\n  line-height: 30px;\\n\\n  display: block;\\n  text-decoration: inherit;\\n  text-align: center;\\n\\n  /* For safety - reset parent styles, that can break glyph codes*/\\n  font-variant: normal;\\n  text-transform: none;\\n\\n  /* Font smoothing. That was taken from TWBS */\\n  -webkit-font-smoothing: antialiased;\\n  -moz-osx-font-smoothing: grayscale;\\n\\n  cursor: pointer;\\n\\n  &.disable {\\n    color: #4f4f4f;\\n  }\\n\\n  &.op-close-icon {\\n    &::before {\\n      content: \\\"\\\\e900\\\";\\n    }\\n  }\\n\\n  &.op-pause-big {\\n    &::before {\\n      content: \\\"\\\\e911\\\";\\n    }\\n  }\\n\\n  &.op-fullscreen-compress {\\n    &::before {\\n      content: \\\"\\\\e901\\\";\\n    }\\n  }\\n\\n  &.op-fullscreen-expand {\\n    &::before {\\n      content: \\\"\\\\e902\\\";\\n    }\\n  }\\n\\n  &.op-arrow-left {\\n    &::before {\\n      content: \\\"\\\\e903\\\";\\n    }\\n  }\\n\\n  &.op-arrow-right {\\n    &::before {\\n      content: \\\"\\\\e909\\\";\\n    }\\n  }\\n\\n  &.op-empty-video {\\n    &::before {\\n      content: \\\"\\\\e904\\\";\\n    }\\n  }\\n\\n  &.op-play {\\n    &::before {\\n      content: \\\"\\\\e906\\\";\\n    }\\n  }\\n\\n  &.op-replay {\\n    &::before {\\n      content: \\\"\\\\e908\\\";\\n    }\\n  }\\n\\n  &.op-seek-back {\\n    &::before {\\n      content: \\\"\\\\e920\\\";\\n    }\\n  }\\n\\n  &.op-seek-forward {\\n    &::before {\\n      content: \\\"\\\\e921\\\";\\n    }\\n  }\\n\\n  &.op-playlist-icon {\\n    &::before {\\n      content: \\\"\\\\e907\\\";\\n    }\\n  }\\n\\n  &.op-replay-big {\\n    &::before {\\n      content: \\\"\\\\e908\\\";\\n    }\\n  }\\n\\n  &.op-setting {\\n    &::before {\\n      content: \\\"\\\\e90A\\\";\\n    }\\n  }\\n\\n  &.op-pause {\\n    &::before {\\n      content: \\\"\\\\e90C\\\";\\n    }\\n  }\\n\\n  &.op-volume-small {\\n    display: none;\\n    margin-top: -1px;\\n\\n    &::before {\\n      content: \\\"\\\\e90D\\\";\\n    }\\n  }\\n\\n  &.op-volume-mute {\\n    display: none;\\n\\n    &::before {\\n      content: \\\"\\\\e90E\\\";\\n    }\\n  }\\n\\n  &.op-volume-max {\\n    &::before {\\n      content: \\\"\\\\e90F\\\";\\n    }\\n  }\\n\\n  &.op-play-big {\\n    &::before {\\n      content: \\\"\\\\e910\\\";\\n    }\\n  }\\n\\n  &.op-warning {\\n    &::before {\\n      content: \\\"\\\\e912\\\";\\n    }\\n  }\\n}\\n\\n.op-badge {\\n  display: inline-block;\\n  padding: .75em .714em .714em .680em;\\n  font-size: 1em;\\n  line-height: 1;\\n  text-align: center;\\n  white-space: nowrap;\\n  vertical-align: baseline;\\n  border-radius: 0.286em;\\n  background-color: #12121c;\\n}\\n\\n.op-playlist {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n  left: 0;\\n  top: 0;\\n  padding: 2.857em;\\n  background: #000;\\n  z-index: 6;\\n\\n  .op-badge {\\n    position: absolute;\\n    top: 0.857em;\\n    right: 0.857em;\\n    opacity: 0.7;\\n  }\\n\\n  .btn-left {\\n    float: left;\\n    font-size: 2.857em;\\n  }\\n\\n  .btn-right {\\n    float: right;\\n    font-size: 2.857em;\\n  }\\n\\n  .op-playlist-header {\\n    font-size: 2.857em;\\n    font-weight: bold;\\n\\n    &:after {\\n      display: block;\\n      content: '';\\n      clear: both;\\n    }\\n\\n    .op-con.op-close-icon {\\n      float: right;\\n    }\\n  }\\n\\n  .op-playlist-body {\\n    height: 100%;\\n    overflow: hidden;\\n    position: relative;\\n\\n    .op-playlist-body-arrows {\\n      margin-top: -15px;\\n      position: absolute;\\n      top: 50%;\\n      height: 30px;\\n      -ms-transform: translateY(-50%);\\n      transform: translateY(-50%);\\n      width: 100%;\\n      left: 0;\\n    }\\n\\n    .op-playlist-body-container {\\n      width: 100%;\\n      height: 100%;\\n      position: relative;\\n      margin-right: auto;\\n      margin-left: auto;\\n      max-width: 992px;\\n\\n      .op-playlist-body-center {\\n        margin: 0;\\n        position: absolute;\\n        top: 50%;\\n        padding-right: 3em;\\n        padding-left: 3em;\\n        -ms-transform: translateY(-50%);\\n        transform: translateY(-50%);\\n        width: 100%;\\n      }\\n    }\\n\\n    .op-playlist-body-row {\\n      margin-right: -15px;\\n      margin-left: -15px;\\n      display: -ms-flexbox;\\n      display: flex;\\n      -ms-flex-wrap: wrap;\\n      flex-wrap: wrap;\\n\\n\\n      .op-playlist-card {\\n        padding-right: 15px;\\n        padding-left: 15px;\\n        margin: 15px 0;\\n        -ms-flex-preferred-size: 0;\\n        flex-basis: 0;\\n        -ms-flex-positive: 1;\\n        flex-grow: 1;\\n        -ms-flex: 0 0 33.333333%;\\n        flex: 0 0 33.333333%;\\n        max-width: 33.333333%;\\n        cursor: pointer;\\n\\n        &.active {\\n          color: #50e3c2;\\n          color: var(--op-accent-color);\\n\\n          .op-playlist-card-thumbnail {\\n            border-color: #50e3c2;\\n            border-color: var(--op-accent-color);\\n          }\\n        }\\n\\n        .op-playlist-card-thumbnail {\\n          position: relative;\\n          display: block;\\n          width: 100%;\\n          padding: 0;\\n          overflow: hidden;\\n          border: 0.214em solid transparent;\\n          background-color: #000;\\n\\n          img {\\n            position: absolute;\\n            top: 0;\\n            bottom: 0;\\n            left: 0;\\n            width: 100%;\\n            height: 100%;\\n            border: 0;\\n          }\\n\\n          &.empty {\\n            background-color: #bababa;\\n\\n            &>i {\\n              margin: 0;\\n              position: absolute;\\n              top: 50%;\\n              left: 50%;\\n              transform: translate(-50%, -50%);\\n              color: #fff !important;\\n              font-size: 1.6em !important;\\n            }\\n          }\\n\\n          &::before {\\n            padding-top: 56.25%;\\n            display: block;\\n            content: \\\"\\\";\\n          }\\n        }\\n\\n        .op-playlist-card-title {\\n          margin-top: 0.857em;\\n          font-size: 1.429em;\\n          padding: 2px 0;\\n          white-space: nowrap;\\n          overflow: hidden;\\n          text-overflow: ellipsis;\\n        }\\n\\n      }\\n    }\\n\\n  }\\n}\\n\\n\\n/**\\n * @brief   Message Box\\n * */\\n\\n.op-message-box {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  width: 100%;\\n  height: 100%;\\n  z-index: 4;\\n\\n  .op-message-container {\\n    position: absolute;\\n    top: 45%;\\n    margin-top: -35px;\\n    width: 100%;\\n    padding: 0 12px;\\n    text-align: center;\\n\\n    .op-message-text {\\n      display: inline-block;\\n      background-color: rgba(18, 18, 28, .3);\\n      padding: 0.8em 1.2em;\\n      word-wrap: break-word;\\n      max-width: 80%;\\n      border-radius: 4px;\\n      cursor: pointer;\\n\\n      .op-message-description {\\n        font-size: 12px;\\n        margin-top: 12px;\\n        color: #999;\\n      }\\n    }\\n\\n\\n    .op-message-icon {\\n      display: inline-block;\\n      margin-top: 12px;\\n      width: 100%;\\n\\n      i.op-con {\\n        cursor: pointer;\\n        font-size: 80px;\\n        width: 80px;\\n        height: 80px;\\n        line-height: 80px;\\n        display: inline-block;\\n        text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\\n      }\\n    }\\n\\n    /*.op-message-button{\\n      display: inline-block;\\n      padding : 1em;\\n      margin-left : 0.4em;\\n      background-color: rgba(28,28,28,.4);\\n      cursor : pointer;\\n    }*/\\n  }\\n}\\n\\n.op-message-box.op-message-box-default-cursor .op-message-container .op-message-text {\\n  cursor: default;\\n}\\n\\n.op-message-box.op-message-box-default-cursor .op-message-container .op-message-icon i.op-con {\\n  cursor: default;\\n}\\n\\n/**\\n * @brief   Big button\\n * */\\n\\n.op-bigbutton-container {\\n  cursor: pointer;\\n  position: absolute;\\n  top: 50%;\\n  left: 50%;\\n  transform: translate(-50%, -50%);\\n  text-align: center;\\n  z-index: 5;\\n\\n  .op-bigbutton {\\n    width: 80px;\\n    height: 80px;\\n    display: block;\\n    font-size: 80px;\\n    line-height: 80px;\\n    text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\\n  }\\n}\\n\\n/**\\n * @brief   Thumbnail\\n * */\\n\\n.op-thumbnail-container {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n  //padding-bottom: 56.25%;\\n  top: 0;\\n  left: 0;\\n  //transform: translate(-50%, -50%);\\n  z-index: 2;\\n  pointer-events: none;\\n\\n  .op-thumbnail-wrapper {\\n    position: absolute;\\n    left: 0;\\n    top: 0;\\n    width: 100%;\\n    height: 100%;\\n\\n    img {\\n      width: 100%;\\n      height: 100%;\\n    }\\n\\n    .op-thumbnail-header {\\n      position: absolute;\\n      left: 1rem;\\n      top: 1rem;\\n      padding: 0 0.5rem;\\n      font-size: 2.857em;\\n      font-weight: bold;\\n      line-height: 1.4;\\n      text-shadow: 2px 2px 7px rgb(0 0 0 / 80%), 0px 0px 1px rgb(0 0 0);\\n\\n      &:after {\\n        display: block;\\n        content: '';\\n        clear: both;\\n      }\\n    }\\n  }\\n}\\n\\n/**\\n * @brief   WaterMark\\n * */\\n\\n.op-watermark-container {\\n  position: absolute;\\n  width: 100%;\\n  height: 100%;\\n  //padding-bottom: 56.25%;\\n  top: 0;\\n  left: 0;\\n  //transform: translate(-50%, -50%);\\n  z-index: 3;\\n\\n  .op-watermark {\\n    position: absolute;\\n    display: inline-block;\\n\\n    img {\\n      width: 100%;\\n      height: 100%;\\n    }\\n\\n    .op-watermark-text {\\n      font-size: 14px;\\n    }\\n  }\\n}\\n\\n/**\\n * @brief   Setting panel\\n * */\\n\\n.op-setting-panel {\\n  position: absolute;\\n  bottom: 55px;\\n  right: 12px;\\n  overflow-y: auto;\\n  max-height: 100%;\\n  width: 260px;\\n  //font-size: 0.8em;\\n  user-select: none;\\n  background-color: rgba(28, 28, 28, .9);\\n  text-shadow: 0 0 2px rgba(0, 0, 0, .5);\\n  z-index: 8;\\n\\n  &.background {\\n    //opacity: 0;\\n    //background-color: rgba(28,28,28,.0);\\n    display: none;\\n  }\\n\\n  .op-setting-title,\\n  .op-setting-item {\\n    width: 100%;\\n    height: 38px;\\n    line-height: 38px;\\n    cursor: pointer;\\n    outline: none;\\n    text-align: left;\\n  }\\n\\n  .op-setting-title-container {\\n    .op-setting-title {\\n      .op-setting-title-title {\\n        padding-left: 12px;\\n        font-weight: bold;\\n        //font-size: 0.9rem;\\n      }\\n\\n      .op-setting-title-previcon {\\n        padding: 0 0 0 12px;\\n        margin-right: -6px;\\n      }\\n\\n    }\\n  }\\n\\n  .op-setting-item-container {\\n    .op-setting-item {\\n      &:hover {\\n        background-color: rgba(255, 255, 255, .1);\\n      }\\n\\n      .op-setting-item-title {\\n        padding-left: 12px;\\n      }\\n\\n      .op-setting-item-nexticon {\\n        float: right;\\n        padding-right: 12px;\\n        margin-left: -6px;\\n      }\\n\\n      span.op-setting-item-value {\\n        float: right;\\n        padding-right: 12px;\\n      }\\n\\n      .op-setting-item-checked {\\n        padding-left: 12px;\\n        visibility: hidden;\\n      }\\n\\n      .op-setting-item-checked.op-show {\\n        visibility: visible;\\n      }\\n    }\\n  }\\n}\\n\\n\\n\\n/**\\n * @brief   Controls (container)\\n * */\\n\\n.op-controls-container {\\n  display: none;\\n\\n  .op-bottom-panel {\\n    position: absolute;\\n    left: 0px;\\n    bottom: 0px;\\n    width: 100%;\\n    z-index: 5;\\n\\n    .op-gradient-bottom {\\n      position: absolute;\\n      width: 100%;\\n      height: 100%;\\n      background-color: rgba(18, 18, 18, 0.5);\\n      pointer-events: none;\\n      /*-moz-transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);\\n      -webkit-transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);\\n      transition: opacity .25s cubic-bezier(0.0,0.0,0.2,1);*/\\n    }\\n\\n    -webkit-animation-name: op-slideInUp;\\n    animation-name: op-slideInUp;\\n\\n    -webkit-animation-duration: 0.5s;\\n    animation-duration: 0.5s;\\n    -webkit-animation-fill-mode: both;\\n    animation-fill-mode: both;\\n\\n    .op-progressbar-container {\\n      display: block;\\n      position: relative;\\n      width: 100%;\\n      height: 4px;\\n      bottom: 50px;\\n\\n      &.op-progressbar-container-disabled {\\n        cursor: default;\\n      }\\n\\n      .op-progressbar-padding {\\n        position: absolute;\\n        width: 100%;\\n        height: 15px;\\n        bottom: -5px;\\n        cursor: pointer;\\n      }\\n    }\\n\\n\\n    /*contols container*/\\n    .op-controls {\\n      position: relative;\\n      width: 100%;\\n      height: 50px;\\n      text-align: left;\\n      overflow: hidden;\\n\\n      &:after {\\n        content: '';\\n        clear: both;\\n      }\\n\\n      .op-setting-button {\\n        position: relative;\\n        margin-right: 12px;\\n      }\\n\\n      .op-playlist-button {\\n        position: relative;\\n        margin-right: 12px;\\n      }\\n\\n      .op-navigators {\\n        float: left;\\n        height: 30px;\\n        line-height: 30px;\\n      }\\n\\n      .op-left-controls {\\n        position: absolute;\\n        top: 0;\\n        left: 0;\\n        padding: 14px 0 10px 0;\\n\\n        &:after {\\n          content: '';\\n          clear: both;\\n        }\\n      }\\n\\n      .op-right-controls {\\n        position: absolute;\\n        top: 0;\\n        right: 0;\\n        padding: 14px 0 10px 0;\\n\\n        &:after {\\n          content: '';\\n          clear: both;\\n        }\\n      }\\n\\n      /*maybe not use*/\\n      .op-frame-buttons {\\n        position: relative;\\n        display: inline-block;\\n        margin-left: 14px;\\n        overflow: hidden;\\n        font-weight: 100;\\n        height: 30px;\\n\\n        .op-frame-button {\\n          margin-right: 6px;\\n          position: relative;\\n          text-align: center;\\n          color: #fff;\\n\\n          .frame-icon {\\n            position: relative;\\n\\n            &.reverse {\\n              &:after {\\n                content: '\\\\e900';\\n              }\\n            }\\n\\n            &:after {\\n              font-family: 'frameIcon' !important;\\n              speak: none;\\n              content: '\\\\e901';\\n              font-style: normal;\\n              font-weight: normal;\\n              font-variant: normal;\\n              text-transform: none;\\n\\n              /* Better Font Rendering =========== */\\n              -webkit-font-smoothing: antialiased;\\n              -moz-osx-font-smoothing: grayscale;\\n              position: absolute;\\n              font-size: 2.4em;\\n              left: 0;\\n              line-height: 30px;\\n              height: 30px;\\n            }\\n\\n            .btn-text {\\n              font-weight: bold;\\n              font-size: 0.8em;\\n              line-height: 30px;\\n              height: 30px;\\n            }\\n\\n          }\\n\\n        }\\n\\n      }\\n    }\\n  }\\n\\n}\\n\\n\\n/**\\n * @brief   Progressbar\\n * */\\n\\n.op-progressbar {\\n  position: absolute;\\n  bottom: 0;\\n  left: 0;\\n  width: 100%;\\n  height: 100%;\\n  outline: none;\\n  margin-top: 10px;\\n\\n  .op-play-background-color {\\n    background-color: #50e3c2; // for ie 11\\n    background-color: var(--op-accent-color);\\n  }\\n\\n  .op-progress-list {\\n    cursor: pointer;\\n    position: relative;\\n    height: 100%;\\n    background: rgba(255, 255, 255, 0.2);\\n\\n    .op-load-progress,\\n    .op-play-progress,\\n    .op-hover-progress {\\n      position: absolute;\\n      left: 0;\\n      bottom: 0;\\n      width: 100%;\\n      height: 100%;\\n    }\\n\\n    .op-play-progress {\\n      width: 0;\\n    }\\n\\n    .op-load-progress {\\n      width: 0;\\n      background-color: rgba(255, 255, 255, .5);\\n    }\\n\\n    .op-hover-progress {\\n      left: 0;\\n      width: 0;\\n      background-color: rgba(255, 255, 255, .6);\\n    }\\n\\n  }\\n\\n  .op-progressbar-knob-container {\\n    position: absolute;\\n    top: -5px;\\n    left: 0;\\n\\n    .op-progressbar-knob {\\n      width: 14px;\\n      height: 14px;\\n      border-radius: 7px;\\n    }\\n  }\\n\\n  .op-progressbar-time {\\n    display: none;\\n    position: absolute;\\n    bottom: 15px;\\n    left: auto;\\n    width: auto;\\n    background-color: rgba(28, 28, 28, 0.9);\\n    border-radius: 2px;\\n    padding: 5px 9px;\\n    font-size: 0.8em;\\n    line-height: 15px;\\n    user-select: none;\\n    white-space: nowrap;\\n    opacity: 0.7;\\n  }\\n\\n\\n}\\n\\n.op-progressbar-hover .op-progressbar-time {\\n  display: inline-block;\\n}\\n\\n.op-on-error .op-progressbar-time {\\n  display: none;\\n}\\n\\n.op-progressbar-section-start,\\n.op-progressbar-section-end {\\n  display: none;\\n  position: absolute;\\n  width: 3px;\\n  height: 14px;\\n  bottom: -5px;\\n  background-color: #50e3c2;\\n  background-color: var(--op-accent-color);\\n}\\n\\n.op-progressbar-preview {\\n  position: absolute;\\n  display: none;\\n  bottom: 50px;\\n  border: 2px solid #fff;\\n  border-radius: 2px;\\n  background-color: #000;\\n  z-index: 9;\\n}\\n\\n.op-play-controller {\\n  margin-left: 15px;\\n}\\n\\n/**\\n * @brief   Seek button\\n * */\\n\\n.op-seek-button {\\n  //display: none;\\n  position: relative;\\n  top: 0px;\\n\\n  &.op-seek-button-back {\\n    margin-left: 12px;\\n  }\\n\\n  &.op-seek-button-forward {\\n    margin-left: 6px;\\n  }\\n\\n  i {\\n    padding-top: 1px;\\n    font-size: 26px;\\n  }\\n\\n  span {\\n    position: absolute;\\n    top: 10.5px;\\n    left: 0;\\n    right: 0;\\n    text-align: center;\\n    font-size: 10px;\\n    line-height: 10px;\\n    cursor: pointer;\\n  }\\n}\\n\\n\\n/**\\n * @brief   Volume button\\n * */\\n.op-volume-controller {\\n  display: inline-block;\\n  position: relative;\\n  margin-left: 12px;\\n\\n  &:after {\\n    content: '';\\n    clear: both;\\n  }\\n\\n  .op-volume-button {\\n    float: left;\\n  }\\n\\n  @-webkit-keyframes slide {\\n    100% {\\n      left: 0;\\n    }\\n  }\\n\\n  @keyframes slide {\\n    100% {\\n      left: 0;\\n    }\\n  }\\n\\n  .op-volume-slider-container {\\n    /*display: inline-block;*/\\n    float: left;\\n    opacity: 0;\\n    position: relative;\\n    width: 0px;\\n    margin-right: 0;\\n    line-height: 30px;\\n    height: 30px;\\n    cursor: pointer;\\n    user-select: none;\\n    outline: none;\\n\\n    &.active {\\n      width: 70px;\\n      opacity: 1;\\n      margin-left: 8px;\\n      -moz-transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\\n      -webkit-transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\\n      transition: opacity .4s cubic-bezier(0.0, 0.0, 0.2, 1);\\n    }\\n\\n    .op-volume-silder {\\n      height: 100%;\\n      position: relative;\\n\\n      .op-volume-slider-bg,\\n      .op-volume-slider-value {\\n        position: absolute;\\n        display: block;\\n        left: 0;\\n        top: 50%;\\n        height: 4px;\\n        margin-top: -2px;\\n        border-radius: 10px;\\n      }\\n\\n      .op-volume-slider-bg {\\n        width: 100%;\\n        background: #fff;\\n      }\\n\\n      .op-volume-slider-value {\\n        width: 100%;\\n        background: #50e3c2;\\n        background: var(--op-accent-color);\\n        border-radius: 10px 0 0 10px;\\n        //-moz-transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\\n        //-webkit-transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\\n        //transition: width .2s cubic-bezier(0.0,0.0,0.2,1);\\n      }\\n\\n      .op-volume-slider-handle {\\n        position: absolute;\\n        top: 50%;\\n        left: 30px;\\n        width: 12px;\\n        height: 12px;\\n        border-radius: 10px;\\n        margin-top: -6px;\\n        background: #fff;\\n        //-moz-transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\\n        //-webkit-transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\\n        //transition: left .2s cubic-bezier(0.0,0.0,0.2,1);\\n      }\\n    }\\n  }\\n}\\n\\n\\n/**\\n * @brief   Time Display\\n * */\\n\\n.op-time-display {\\n  float: left;\\n  position: relative;\\n  margin-left: 14px;\\n  height: 30px;\\n  line-height: 30px;\\n  white-space: nowrap;\\n  vertical-align: top;\\n  font-size: 14px;\\n  user-select: none;\\n  /*흠 이부분 어떻게 처리하지*/\\n\\n  .op-time-current,\\n  .op-time-separator,\\n  .op-time-duration {}\\n\\n  .op-live-badge {\\n    opacity: 1;\\n    width: auto;\\n    display: inline-block;\\n\\n    &:before {\\n      background: #ff0000;\\n      display: inline-block;\\n      position: relative;\\n      top: -2px;\\n      width: 6px;\\n      height: 6px;\\n      margin-right: 5px;\\n      content: '';\\n      border-radius: 6px;\\n    }\\n\\n    &.op-live-badge-delayed:before {\\n      background: #fff;\\n    }\\n\\n    .op-live-badge-lowlatency {\\n      display: inline-block;\\n      margin-right: 5px;\\n    }\\n\\n    .op-live-text {\\n      cursor: pointer;\\n    }\\n  }\\n\\n}\\n\\n\\n/**\\n * @brief   Context Panel\\n * */\\n\\n.op-context-panel {\\n  -moz-box-sizing: border-box;\\n  -webkit-box-sizing: border-box;\\n  box-sizing: border-box;\\n  display: block;\\n  position: absolute;\\n  overflow: hidden;\\n  width: 200px;\\n  padding: 6px 0;\\n  z-index: 8;\\n  background: rgba(28, 28, 28, 0.9);\\n  text-shadow: 0 0 2px rgba(0, 0, 0, .5);\\n  font-weight: lighter;\\n  user-select: none;\\n\\n  &:before,\\n  &:after {\\n    -moz-box-sizing: border-box;\\n    -webkit-box-sizing: border-box;\\n    box-sizing: border-box;\\n  }\\n\\n  & *,\\n  & *:before,\\n  & *:after {\\n    -moz-box-sizing: border-box;\\n    -webkit-box-sizing: border-box;\\n    box-sizing: border-box;\\n  }\\n\\n  .op-context-item {\\n    width: 100%;\\n    height: 38px;\\n    padding-left: 12px;\\n    line-height: 38px;\\n    cursor: pointer;\\n    outline: none;\\n    font-size: 0.8em;\\n    font-weight: lighter;\\n    text-overflow: ellipsis;\\n    white-space: nowrap;\\n    overflow: hidden;\\n\\n    &:hover {\\n      background-color: rgba(255, 255, 255, .1);\\n    }\\n  }\\n\\n}\\n\\n\\n\\n\\n\\n\\n/**\\n * @brief   FullScreen button\\n * */\\n\\n.op-fullscreen-button {\\n  position: relative;\\n  margin-right: 15px;\\n\\n  .op-fullscreen-compress {\\n    display: none;\\n  }\\n}\\n\\n/**\\n * @brief   spinner\\n * */\\n\\n.op-spinner-container {\\n  position: absolute;\\n  top: 50%;\\n  width: 64px;\\n  left: 50%;\\n  margin-left: -32px;\\n  margin-top: -32px;\\n  z-index: 7;\\n  display: none;\\n\\n\\n  .op-spinner {\\n    display: inline-block;\\n    position: relative;\\n    width: 64px;\\n    height: 64px;\\n\\n    border: 4px solid transparent;\\n    border-top: 4px solid #50e3c2;\\n    border-top: 4px solid var(--op-accent-color);\\n    border-radius: 50%;\\n\\n    animation: spin 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\\n\\n    @keyframes spin {\\n      0% {\\n        transform: rotate(0deg);\\n      }\\n\\n      100% {\\n        transform: rotate(360deg);\\n      }\\n    }\\n  }\\n\\n}\\n\\n\\n/**\\n * @brief   caption.\\n * */\\n\\n.op-caption-viewer {\\n\\n  .op-caption-text-container {\\n    position: absolute;\\n    bottom: 60px;\\n    width: 100%;\\n    padding: 0 12px;\\n    text-align: center;\\n    -moz-transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n    -webkit-transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n    transition: bottom .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n\\n    .op-caption-text {\\n      color: #fff;\\n      font-size: 1em;\\n      line-height: 1.2em;\\n      text-shadow: 2px 2px 2px gray;\\n      padding: .1em .3em;\\n      user-select: none;\\n      word-break: break-word;\\n      white-space: pre-line;\\n      border: none;\\n      background: none;\\n    }\\n  }\\n}\\n\\n.op-caption-button {\\n  width: 36px;\\n}\\n\\n.op-caption-button>i {\\n  font-size: 18px;\\n  -moz-transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n  -webkit-transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n  transition: color .25s cubic-bezier(0.0, 0.0, 0.2, 1);\\n}\\n\\n.op-caption-active .op-caption-button>i {\\n  color: #F36446;\\n}\\n\\n\\n\\n/*Responsive  */\\n\\n.op-wrapper.ovenplayer.large {\\n  font-size: 14px;\\n\\n  .op-caption-text {\\n    font-size: 2em;\\n    line-height: 2em;\\n  }\\n\\n}\\n\\n.op-wrapper.ovenplayer.medium {\\n  font-size: 12px;\\n\\n  .op-caption-text {\\n    font-size: 1.4em;\\n    line-height: 1.4em;\\n  }\\n}\\n\\n.op-wrapper.ovenplayer.small {\\n  font-size: 10px;\\n\\n  .op-caption-text {\\n    font-size: 1.4em;\\n    line-height: 1.4em;\\n  }\\n\\n  .op-playlist {\\n    padding: 1rem;\\n\\n    .op-playlist-card {\\n      margin: 5px 0;\\n    }\\n  }\\n\\n}\\n\\n.op-wrapper.ovenplayer.xsmall {\\n  font-size: 10px;\\n\\n  .op-bigbutton-container {\\n\\n    .op-bigbutton {\\n      width: 60px;\\n      height: 60px;\\n      font-size: 60px;\\n      line-height: 60px;\\n    }\\n  }\\n\\n  .op-caption-text {\\n    font-size: 1.4em;\\n    line-height: 1.4em;\\n  }\\n\\n  .op-playlist {\\n    padding: 1rem;\\n\\n    .op-playlist-header {\\n      font-size: 2em;\\n    }\\n\\n    .op-playlist-card {\\n      margin: 5px 0;\\n      -ms-flex: 0 0 100%;\\n      flex: 0 0 100%;\\n      max-width: 100%;\\n      padding: 0 6em;\\n\\n      .op-playlist-card-title {\\n        margin-top: 0;\\n      }\\n    }\\n  }\\n\\n  .op-message-box {\\n    .op-message-container {\\n      top: 50%;\\n      font-weight: bold;\\n\\n      .op-message-icon {\\n        margin-top: 0;\\n\\n        .op-con {\\n          font-size: 40px;\\n          width: 40px;\\n          height: 40px;\\n          line-height: 40px;\\n        }\\n      }\\n    }\\n  }\\n\\n  .op-ads-button {\\n    bottom: 22px;\\n\\n    .videoAdUiAction {\\n      padding: 4px;\\n      font-size: 14px;\\n    }\\n  }\\n}\\n\\n.op-wrapper.ovenplayer.xxsmall {\\n\\n  .op-left-controls {\\n    max-width: 240px; // for small layout\\n    overflow: hidden; // for small layout\\n  }\\n\\n  .op-live-badge-lowlatency {\\n    max-width: 75px;\\n  }\\n}\\n\\n/*AD MODE*/\\n.op-wrapper.ovenplayer.linear-ad {\\n\\n  .op-bottom-panel {\\n    height: 34px;\\n\\n    .op-controls {\\n\\n      top: 4px;\\n\\n      .op-left-controls {\\n        height: 30px;\\n        padding: 0;\\n      }\\n\\n      .op-right-controls {\\n        height: 30px;\\n        padding: 0;\\n      }\\n    }\\n  }\\n\\n  .op-ads {\\n    top: 0;\\n    bottom: 0;\\n  }\\n\\n  .op-button {\\n    i.op-con {\\n      width: 24px;\\n      height: 24px;\\n      font-size: 24px;\\n    }\\n  }\\n\\n  .op-right-controls {\\n    .op-button {\\n      //margin-top: -2px;\\n    }\\n  }\\n\\n  .op-controls-container .op-bottom-panel .op-progressbar-container {\\n    bottom: 50px;\\n  }\\n}\\n\\n/**\\n * @brief   Animation\\n * */\\n\\n.op-player {\\n  @keyframes fade {\\n    from {\\n      opacity: 0.3;\\n    }\\n\\n    /*5% { opacity: 0.3; }*/\\n    /*40% { opacity: 1; }*/\\n    /*50% { opacity: 1; }*/\\n    55% {\\n      opacity: 1;\\n    }\\n\\n    75% {\\n      opacity: 1;\\n    }\\n\\n    to {\\n      opacity: 0.3;\\n    }\\n  }\\n\\n  @-webkit-keyframes bounceIn {\\n\\n    from,\\n    20%,\\n    40%,\\n    60%,\\n    80%,\\n    to {\\n      -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n      animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    }\\n\\n    0% {\\n      opacity: 0;\\n      -webkit-transform: scale3d(0.5, 0.5, 0.5);\\n      transform: scale3d(0.5, 0.5, 0.5);\\n    }\\n\\n    20% {\\n      -webkit-transform: scale3d(1.1, 1.1, 1.1);\\n      transform: scale3d(1.1, 1.1, 1.1);\\n    }\\n\\n    40% {\\n      -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n      transform: scale3d(0.9, 0.9, 0.9);\\n    }\\n\\n    60% {\\n      opacity: 1;\\n      -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n      transform: scale3d(1.03, 1.03, 1.03);\\n    }\\n\\n    80% {\\n      -webkit-transform: scale3d(0.97, 0.97, 0.97);\\n      transform: scale3d(0.97, 0.97, 0.97);\\n    }\\n\\n    to {\\n      opacity: 1;\\n      -webkit-transform: scale3d(1, 1, 1);\\n      transform: scale3d(1, 1, 1);\\n    }\\n  }\\n\\n  @keyframes bounceIn {\\n\\n    from,\\n    20%,\\n    40%,\\n    60%,\\n    80%,\\n    to {\\n      -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n      animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n    }\\n\\n    0% {\\n      opacity: 0;\\n      -webkit-transform: scale3d(0.3, 0.3, 0.3);\\n      transform: scale3d(0.3, 0.3, 0.3);\\n    }\\n\\n    20% {\\n      -webkit-transform: scale3d(1.1, 1.1, 1.1);\\n      transform: scale3d(1.1, 1.1, 1.1);\\n    }\\n\\n    40% {\\n      -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n      transform: scale3d(0.9, 0.9, 0.9);\\n    }\\n\\n    60% {\\n      opacity: 1;\\n      -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n      transform: scale3d(1.03, 1.03, 1.03);\\n    }\\n\\n    80% {\\n      -webkit-transform: scale3d(0.97, 0.97, 0.97);\\n      transform: scale3d(0.97, 0.97, 0.97);\\n    }\\n\\n    to {\\n      opacity: 1;\\n      -webkit-transform: scale3d(1, 1, 1);\\n      transform: scale3d(1, 1, 1);\\n    }\\n  }\\n\\n  .bounceIn {\\n    -webkit-animation-duration: 0.75s;\\n    animation-duration: 0.75s;\\n    -webkit-animation-name: bounceIn;\\n    animation-name: bounceIn;\\n  }\\n\\n  @-webkit-keyframes fadeIn {\\n    from {\\n      opacity: 0;\\n    }\\n\\n    to {\\n      opacity: 1;\\n    }\\n  }\\n\\n  @keyframes fadeIn {\\n    from {\\n      opacity: 0;\\n    }\\n\\n    to {\\n      opacity: 1;\\n    }\\n  }\\n\\n  .fadeIn {\\n    -webkit-animation-name: fadeIn;\\n    animation-name: fadeIn;\\n  }\\n\\n  .animated {\\n    -webkit-animation-duration: 1s;\\n    animation-duration: 1s;\\n    -webkit-animation-fill-mode: both;\\n    animation-fill-mode: both;\\n  }\\n\\n  @media (prefers-reduced-motion) {\\n    .animated {\\n      -webkit-animation: unset !important;\\n      animation: unset !important;\\n      -webkit-transition: none !important;\\n      transition: none !important;\\n    }\\n  }\\n\\n\\n  /* Pulse Shrink */\\n  /*.op-button {\\n    //display: inline-block;\\n    //vertical-align: middle;\\n    transform: translateZ(0);\\n    box-shadow: 0 0 1px rgba(0, 0, 0, 0);\\n    backface-visibility: hidden;\\n    -moz-osx-font-smoothing: grayscale;\\n    transition-duration: 0.3s;\\n    transition-property: transform;\\n  }\\n  .op-button:hover,\\n  .op-button:focus,\\n  .op-button:active {\\n    transform: scale(1.1);\\n  }*/\\n}\\n\\n\\n@media only screen and (max-width: 399px) {\\n  .op-seek-button {\\n    display: none !important;\\n  }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = \"\";\n      var needLayer = typeof item[5] !== \"undefined\";\n\n      if (item[4]) {\n        content += \"@supports (\".concat(item[4], \") {\");\n      }\n\n      if (item[2]) {\n        content += \"@media \".concat(item[2], \" {\");\n      }\n\n      if (needLayer) {\n        content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n      }\n\n      content += cssWithMappingToString(item);\n\n      if (needLayer) {\n        content += \"}\";\n      }\n\n      if (item[2]) {\n        content += \"}\";\n      }\n\n      if (item[4]) {\n        content += \"}\";\n      }\n\n      return content;\n    }).join(\"\");\n  }; // import a list of modules into the list\n\n\n  list.i = function i(modules, media, dedupe, supports, layer) {\n    if (typeof modules === \"string\") {\n      modules = [[null, modules, undefined]];\n    }\n\n    var alreadyImportedModules = {};\n\n    if (dedupe) {\n      for (var k = 0; k < this.length; k++) {\n        var id = this[k][0];\n\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n\n    for (var _k = 0; _k < modules.length; _k++) {\n      var item = [].concat(modules[_k]);\n\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        continue;\n      }\n\n      if (typeof layer !== \"undefined\") {\n        if (typeof item[5] === \"undefined\") {\n          item[5] = layer;\n        } else {\n          item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n          item[5] = layer;\n        }\n      }\n\n      if (media) {\n        if (!item[2]) {\n          item[2] = media;\n        } else {\n          item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n          item[2] = media;\n        }\n      }\n\n      if (supports) {\n        if (!item[4]) {\n          item[4] = \"\".concat(supports);\n        } else {\n          item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n          item[4] = supports;\n        }\n      }\n\n      list.push(item);\n    }\n  };\n\n  return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n  if (!options) {\n    options = {};\n  }\n\n  if (!url) {\n    return url;\n  }\n\n  url = String(url.__esModule ? url.default : url); // If url is already wrapped in quotes, remove them\n\n  if (/^['\"].*['\"]$/.test(url)) {\n    url = url.slice(1, -1);\n  }\n\n  if (options.hash) {\n    url += options.hash;\n  } // Should url be wrapped?\n  // See https://drafts.csswg.org/css-values-3/#urls\n\n\n  if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n    return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n  }\n\n  return url;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n  var content = item[1];\n  var cssMapping = item[3];\n\n  if (!cssMapping) {\n    return content;\n  }\n\n  if (typeof btoa === \"function\") {\n    var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n    var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n    var sourceMapping = \"/*# \".concat(data, \" */\");\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n  }\n\n  return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n  var result = -1;\n\n  for (var i = 0; i < stylesInDOM.length; i++) {\n    if (stylesInDOM[i].identifier === identifier) {\n      result = i;\n      break;\n    }\n  }\n\n  return result;\n}\n\nfunction modulesToDom(list, options) {\n  var idCountMap = {};\n  var identifiers = [];\n\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i];\n    var id = options.base ? item[0] + options.base : item[0];\n    var count = idCountMap[id] || 0;\n    var identifier = \"\".concat(id, \" \").concat(count);\n    idCountMap[id] = count + 1;\n    var indexByIdentifier = getIndexByIdentifier(identifier);\n    var obj = {\n      css: item[1],\n      media: item[2],\n      sourceMap: item[3],\n      supports: item[4],\n      layer: item[5]\n    };\n\n    if (indexByIdentifier !== -1) {\n      stylesInDOM[indexByIdentifier].references++;\n      stylesInDOM[indexByIdentifier].updater(obj);\n    } else {\n      var updater = addElementStyle(obj, options);\n      options.byIndex = i;\n      stylesInDOM.splice(i, 0, {\n        identifier: identifier,\n        updater: updater,\n        references: 1\n      });\n    }\n\n    identifiers.push(identifier);\n  }\n\n  return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n  var api = options.domAPI(options);\n  api.update(obj);\n\n  var updater = function updater(newObj) {\n    if (newObj) {\n      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n        return;\n      }\n\n      api.update(obj = newObj);\n    } else {\n      api.remove();\n    }\n  };\n\n  return updater;\n}\n\nmodule.exports = function (list, options) {\n  options = options || {};\n  list = list || [];\n  var lastIdentifiers = modulesToDom(list, options);\n  return function update(newList) {\n    newList = newList || [];\n\n    for (var i = 0; i < lastIdentifiers.length; i++) {\n      var identifier = lastIdentifiers[i];\n      var index = getIndexByIdentifier(identifier);\n      stylesInDOM[index].references--;\n    }\n\n    var newLastIdentifiers = modulesToDom(newList, options);\n\n    for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n      var _identifier = lastIdentifiers[_i];\n\n      var _index = getIndexByIdentifier(_identifier);\n\n      if (stylesInDOM[_index].references === 0) {\n        stylesInDOM[_index].updater();\n\n        stylesInDOM.splice(_index, 1);\n      }\n    }\n\n    lastIdentifiers = newLastIdentifiers;\n  };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next  */\n\nfunction getTarget(target) {\n  if (typeof memo[target] === \"undefined\") {\n    var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n      try {\n        // This will throw an exception if access to iframe is blocked\n        // due to cross-origin restrictions\n        styleTarget = styleTarget.contentDocument.head;\n      } catch (e) {\n        // istanbul ignore next\n        styleTarget = null;\n      }\n    }\n\n    memo[target] = styleTarget;\n  }\n\n  return memo[target];\n}\n/* istanbul ignore next  */\n\n\nfunction insertBySelector(insert, style) {\n  var target = getTarget(insert);\n\n  if (!target) {\n    throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n  }\n\n  target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction insertStyleElement(options) {\n  var element = document.createElement(\"style\");\n  options.setAttributes(element, options.attributes);\n  options.insert(element, options.options);\n  return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction setAttributesWithoutAttributes(styleElement) {\n  var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n  if (nonce) {\n    styleElement.setAttribute(\"nonce\", nonce);\n  }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction apply(styleElement, options, obj) {\n  var css = \"\";\n\n  if (obj.supports) {\n    css += \"@supports (\".concat(obj.supports, \") {\");\n  }\n\n  if (obj.media) {\n    css += \"@media \".concat(obj.media, \" {\");\n  }\n\n  var needLayer = typeof obj.layer !== \"undefined\";\n\n  if (needLayer) {\n    css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n  }\n\n  css += obj.css;\n\n  if (needLayer) {\n    css += \"}\";\n  }\n\n  if (obj.media) {\n    css += \"}\";\n  }\n\n  if (obj.supports) {\n    css += \"}\";\n  }\n\n  var sourceMap = obj.sourceMap;\n\n  if (sourceMap && typeof btoa !== \"undefined\") {\n    css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n  } // For old IE\n\n  /* istanbul ignore if  */\n\n\n  options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n  // istanbul ignore if\n  if (styleElement.parentNode === null) {\n    return false;\n  }\n\n  styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next  */\n\n\nfunction domAPI(options) {\n  var styleElement = options.insertStyleElement(options);\n  return {\n    update: function update(obj) {\n      apply(styleElement, options, obj);\n    },\n    remove: function remove() {\n      removeStyleElement(styleElement);\n    }\n  };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction styleTagTransform(css, styleElement) {\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css;\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild);\n    }\n\n    styleElement.appendChild(document.createTextNode(css));\n  }\n}\n\nmodule.exports = styleTagTransform;","var global =\n  (typeof globalThis !== 'undefined' && globalThis) ||\n  (typeof self !== 'undefined' && self) ||\n  (typeof global !== 'undefined' && global)\n\nvar support = {\n  searchParams: 'URLSearchParams' in global,\n  iterable: 'Symbol' in global && 'iterator' in Symbol,\n  blob:\n    'FileReader' in global &&\n    'Blob' in global &&\n    (function() {\n      try {\n        new Blob()\n        return true\n      } catch (e) {\n        return false\n      }\n    })(),\n  formData: 'FormData' in global,\n  arrayBuffer: 'ArrayBuffer' in global\n}\n\nfunction isDataView(obj) {\n  return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n  var viewClasses = [\n    '[object Int8Array]',\n    '[object Uint8Array]',\n    '[object Uint8ClampedArray]',\n    '[object Int16Array]',\n    '[object Uint16Array]',\n    '[object Int32Array]',\n    '[object Uint32Array]',\n    '[object Float32Array]',\n    '[object Float64Array]'\n  ]\n\n  var isArrayBufferView =\n    ArrayBuffer.isView ||\n    function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n}\n\nfunction normalizeName(name) {\n  if (typeof name !== 'string') {\n    name = String(name)\n  }\n  if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n    throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n  }\n  return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n  if (typeof value !== 'string') {\n    value = String(value)\n  }\n  return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n  var iterator = {\n    next: function() {\n      var value = items.shift()\n      return {done: value === undefined, value: value}\n    }\n  }\n\n  if (support.iterable) {\n    iterator[Symbol.iterator] = function() {\n      return iterator\n    }\n  }\n\n  return iterator\n}\n\nexport function Headers(headers) {\n  this.map = {}\n\n  if (headers instanceof Headers) {\n    headers.forEach(function(value, name) {\n      this.append(name, value)\n    }, this)\n  } else if (Array.isArray(headers)) {\n    headers.forEach(function(header) {\n      this.append(header[0], header[1])\n    }, this)\n  } else if (headers) {\n    Object.getOwnPropertyNames(headers).forEach(function(name) {\n      this.append(name, headers[name])\n    }, this)\n  }\n}\n\nHeaders.prototype.append = function(name, value) {\n  name = normalizeName(name)\n  value = normalizeValue(value)\n  var oldValue = this.map[name]\n  this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n  delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n  name = normalizeName(name)\n  return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n  return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n  this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n  for (var name in this.map) {\n    if (this.map.hasOwnProperty(name)) {\n      callback.call(thisArg, this.map[name], name, this)\n    }\n  }\n}\n\nHeaders.prototype.keys = function() {\n  var items = []\n  this.forEach(function(value, name) {\n    items.push(name)\n  })\n  return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n  var items = []\n  this.forEach(function(value) {\n    items.push(value)\n  })\n  return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n  var items = []\n  this.forEach(function(value, name) {\n    items.push([name, value])\n  })\n  return iteratorFor(items)\n}\n\nif (support.iterable) {\n  Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n  if (body.bodyUsed) {\n    return Promise.reject(new TypeError('Already read'))\n  }\n  body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n  return new Promise(function(resolve, reject) {\n    reader.onload = function() {\n      resolve(reader.result)\n    }\n    reader.onerror = function() {\n      reject(reader.error)\n    }\n  })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n  var reader = new FileReader()\n  var promise = fileReaderReady(reader)\n  reader.readAsArrayBuffer(blob)\n  return promise\n}\n\nfunction readBlobAsText(blob) {\n  var reader = new FileReader()\n  var promise = fileReaderReady(reader)\n  reader.readAsText(blob)\n  return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n  var view = new Uint8Array(buf)\n  var chars = new Array(view.length)\n\n  for (var i = 0; i < view.length; i++) {\n    chars[i] = String.fromCharCode(view[i])\n  }\n  return chars.join('')\n}\n\nfunction bufferClone(buf) {\n  if (buf.slice) {\n    return buf.slice(0)\n  } else {\n    var view = new Uint8Array(buf.byteLength)\n    view.set(new Uint8Array(buf))\n    return view.buffer\n  }\n}\n\nfunction Body() {\n  this.bodyUsed = false\n\n  this._initBody = function(body) {\n    /*\n      fetch-mock wraps the Response object in an ES6 Proxy to\n      provide useful test harness features such as flush. However, on\n      ES5 browsers without fetch or Proxy support pollyfills must be used;\n      the proxy-pollyfill is unable to proxy an attribute unless it exists\n      on the object before the Proxy is created. This change ensures\n      Response.bodyUsed exists on the instance, while maintaining the\n      semantic of setting Request.bodyUsed in the constructor before\n      _initBody is called.\n    */\n    this.bodyUsed = this.bodyUsed\n    this._bodyInit = body\n    if (!body) {\n      this._bodyText = ''\n    } else if (typeof body === 'string') {\n      this._bodyText = body\n    } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n      this._bodyBlob = body\n    } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n      this._bodyFormData = body\n    } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n      this._bodyText = body.toString()\n    } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n      this._bodyArrayBuffer = bufferClone(body.buffer)\n      // IE 10-11 can't handle a DataView body.\n      this._bodyInit = new Blob([this._bodyArrayBuffer])\n    } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n      this._bodyArrayBuffer = bufferClone(body)\n    } else {\n      this._bodyText = body = Object.prototype.toString.call(body)\n    }\n\n    if (!this.headers.get('content-type')) {\n      if (typeof body === 'string') {\n        this.headers.set('content-type', 'text/plain;charset=UTF-8')\n      } else if (this._bodyBlob && this._bodyBlob.type) {\n        this.headers.set('content-type', this._bodyBlob.type)\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n      }\n    }\n  }\n\n  if (support.blob) {\n    this.blob = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return Promise.resolve(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as blob')\n      } else {\n        return Promise.resolve(new Blob([this._bodyText]))\n      }\n    }\n\n    this.arrayBuffer = function() {\n      if (this._bodyArrayBuffer) {\n        var isConsumed = consumed(this)\n        if (isConsumed) {\n          return isConsumed\n        }\n        if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n          return Promise.resolve(\n            this._bodyArrayBuffer.buffer.slice(\n              this._bodyArrayBuffer.byteOffset,\n              this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n            )\n          )\n        } else {\n          return Promise.resolve(this._bodyArrayBuffer)\n        }\n      } else {\n        return this.blob().then(readBlobAsArrayBuffer)\n      }\n    }\n  }\n\n  this.text = function() {\n    var rejected = consumed(this)\n    if (rejected) {\n      return rejected\n    }\n\n    if (this._bodyBlob) {\n      return readBlobAsText(this._bodyBlob)\n    } else if (this._bodyArrayBuffer) {\n      return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n    } else if (this._bodyFormData) {\n      throw new Error('could not read FormData body as text')\n    } else {\n      return Promise.resolve(this._bodyText)\n    }\n  }\n\n  if (support.formData) {\n    this.formData = function() {\n      return this.text().then(decode)\n    }\n  }\n\n  this.json = function() {\n    return this.text().then(JSON.parse)\n  }\n\n  return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n  var upcased = method.toUpperCase()\n  return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n  if (!(this instanceof Request)) {\n    throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n  }\n\n  options = options || {}\n  var body = options.body\n\n  if (input instanceof Request) {\n    if (input.bodyUsed) {\n      throw new TypeError('Already read')\n    }\n    this.url = input.url\n    this.credentials = input.credentials\n    if (!options.headers) {\n      this.headers = new Headers(input.headers)\n    }\n    this.method = input.method\n    this.mode = input.mode\n    this.signal = input.signal\n    if (!body && input._bodyInit != null) {\n      body = input._bodyInit\n      input.bodyUsed = true\n    }\n  } else {\n    this.url = String(input)\n  }\n\n  this.credentials = options.credentials || this.credentials || 'same-origin'\n  if (options.headers || !this.headers) {\n    this.headers = new Headers(options.headers)\n  }\n  this.method = normalizeMethod(options.method || this.method || 'GET')\n  this.mode = options.mode || this.mode || null\n  this.signal = options.signal || this.signal\n  this.referrer = null\n\n  if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n    throw new TypeError('Body not allowed for GET or HEAD requests')\n  }\n  this._initBody(body)\n\n  if (this.method === 'GET' || this.method === 'HEAD') {\n    if (options.cache === 'no-store' || options.cache === 'no-cache') {\n      // Search for a '_' parameter in the query string\n      var reParamSearch = /([?&])_=[^&]*/\n      if (reParamSearch.test(this.url)) {\n        // If it already exists then set the value with the current time\n        this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n      } else {\n        // Otherwise add a new '_' parameter to the end with the current time\n        var reQueryString = /\\?/\n        this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n      }\n    }\n  }\n}\n\nRequest.prototype.clone = function() {\n  return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n  var form = new FormData()\n  body\n    .trim()\n    .split('&')\n    .forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n  return form\n}\n\nfunction parseHeaders(rawHeaders) {\n  var headers = new Headers()\n  // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n  // https://tools.ietf.org/html/rfc7230#section-3.2\n  var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n  // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n  // https://github.com/github/fetch/issues/748\n  // https://github.com/zloirock/core-js/issues/751\n  preProcessedHeaders\n    .split('\\r')\n    .map(function(header) {\n      return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n    })\n    .forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n  return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n  if (!(this instanceof Response)) {\n    throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n  }\n  if (!options) {\n    options = {}\n  }\n\n  this.type = 'default'\n  this.status = options.status === undefined ? 200 : options.status\n  this.ok = this.status >= 200 && this.status < 300\n  this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n  this.headers = new Headers(options.headers)\n  this.url = options.url || ''\n  this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n  return new Response(this._bodyInit, {\n    status: this.status,\n    statusText: this.statusText,\n    headers: new Headers(this.headers),\n    url: this.url\n  })\n}\n\nResponse.error = function() {\n  var response = new Response(null, {status: 0, statusText: ''})\n  response.type = 'error'\n  return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n  if (redirectStatuses.indexOf(status) === -1) {\n    throw new RangeError('Invalid status code')\n  }\n\n  return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n  new DOMException()\n} catch (err) {\n  DOMException = function(message, name) {\n    this.message = message\n    this.name = name\n    var error = Error(message)\n    this.stack = error.stack\n  }\n  DOMException.prototype = Object.create(Error.prototype)\n  DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n  return new Promise(function(resolve, reject) {\n    var request = new Request(input, init)\n\n    if (request.signal && request.signal.aborted) {\n      return reject(new DOMException('Aborted', 'AbortError'))\n    }\n\n    var xhr = new XMLHttpRequest()\n\n    function abortXhr() {\n      xhr.abort()\n    }\n\n    xhr.onload = function() {\n      var options = {\n        status: xhr.status,\n        statusText: xhr.statusText,\n        headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n      }\n      options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n      var body = 'response' in xhr ? xhr.response : xhr.responseText\n      setTimeout(function() {\n        resolve(new Response(body, options))\n      }, 0)\n    }\n\n    xhr.onerror = function() {\n      setTimeout(function() {\n        reject(new TypeError('Network request failed'))\n      }, 0)\n    }\n\n    xhr.ontimeout = function() {\n      setTimeout(function() {\n        reject(new TypeError('Network request failed'))\n      }, 0)\n    }\n\n    xhr.onabort = function() {\n      setTimeout(function() {\n        reject(new DOMException('Aborted', 'AbortError'))\n      }, 0)\n    }\n\n    function fixUrl(url) {\n      try {\n        return url === '' && global.location.href ? global.location.href : url\n      } catch (e) {\n        return url\n      }\n    }\n\n    xhr.open(request.method, fixUrl(request.url), true)\n\n    if (request.credentials === 'include') {\n      xhr.withCredentials = true\n    } else if (request.credentials === 'omit') {\n      xhr.withCredentials = false\n    }\n\n    if ('responseType' in xhr) {\n      if (support.blob) {\n        xhr.responseType = 'blob'\n      } else if (\n        support.arrayBuffer &&\n        request.headers.get('Content-Type') &&\n        request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n      ) {\n        xhr.responseType = 'arraybuffer'\n      }\n    }\n\n    if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n      Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n        xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n      })\n    } else {\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n    }\n\n    if (request.signal) {\n      request.signal.addEventListener('abort', abortXhr)\n\n      xhr.onreadystatechange = function() {\n        // DONE (success or failure)\n        if (xhr.readyState === 4) {\n          request.signal.removeEventListener('abort', abortXhr)\n        }\n      }\n    }\n\n    xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n  })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n  global.fetch = fetch\n  global.Headers = Headers\n  global.Request = Request\n  global.Response = Response\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t983: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","// startup\n// Load entry module and return exports\n// This entry module used 'module' so it can't be inlined\n__webpack_require__(8594);\n__webpack_require__(7147);\nvar __webpack_exports__ = __webpack_require__(8445);\n"],"names":["root","factory","exports","module","define","amd","self","version","__VERSION__","trim","string","replace","extractExtension","path","substr","azuredFormat","extension","test","getAzureFileFormat","split","lastIndexOf","length","toLowerCase","naturalHms","second","secNum","parseInt","hours","Math","floor","minutes","seconds","hmsToSecond","str","frameRate","_","arr","arrLength","sec","slice","parseFloat","secIndex","_entry","data","entry","array","idx","indexOf","line","index","start","end","text","join","VTTCue","window","directionSetting","alignSetting","findAlignSetting","value","extend","obj","i","arguments","cobj","p","startTime","endTime","cue","this","isIE8","navigator","userAgent","baseObj","document","createElement","enumerable","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","Object","defineProperty","get","set","TypeError","setting","findDirectionSetting","SyntaxError","Error","displayState","undefined","prototype","getCueAsHTML","WebVTT","convertCueToDOMTree","scrollSetting","isValidPercentValue","_width","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","defineProperties","findScrollSetting","makeColorSet","color","opacity","substring","fontScale","observe","subject","topic","fontColor","Services","prefs","getCharPref","fontOpacity","getIntPref","WebVTTSet","fontSet","backgroundColor","backgroundOpacity","backgroundSet","edgeType","edgeColor","edgeSet","forEach","pref","addObserver","_objCreate","create","F","o","ParsingError","errorData","message","name","code","parseTimeStamp","input","computeSeconds","h","m","s","f","match","Settings","values","parseOptions","callback","keyValueDelim","groupDelim","groups","kv","parseCue","regionList","oInput","consumeTimeStamp","ts","Errors","BadTimeStamp","skipWhitespace","settings","k","v","id","region","alt","vals","vals0","integer","percent","consumeCueSettings","constructor","BadSignature","dflt","defaultKey","has","a","n","ESCAPE","TAG_NAME","c","b","u","ruby","rt","lang","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","result","unescape1","e","unescape","shouldAdd","current","element","localName","type","annotation","tagName","t","rootDiv","tagStack","appendChild","createTextNode","pop","parentNode","node","createProcessingInstruction","className","push","strongRTLChars","StyleBox","CueStyleBox","styleOptions","textShadow","call","cueDiv","styles","position","left","right","top","bottom","display","writingMode","vertical","unicodeBidi","applyStyles","div","textAlign","align","font","whiteSpace","direction","charCode","nodeStack","childNodes","pushNodes","nextTextNode","textContent","innerText","charCodeAt","j","determineBidi","stylesunicodeBidi","textPos","positionAlign","size","formatStyle","width","height","move","box","BoxPosition","lh","offsetHeight","offsetWidth","offsetTop","rects","getClientRects","getBoundingClientRect","max","lineHeight","moveBoxToLinePosition","styleBox","containerBox","boxPositions","boxPosition","linePos","snapToLines","track","textTrackList","mediaElement","trackList","count","mode","computeLinePos","axis","step","round","maxPosition","initialAxis","abs","ceil","reverse","calculatedPercentage","lineAlign","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","findBestPosition","toCSSCompatValues","prop","hasOwnProperty","style","val","unit","toMove","overlaps","b2","boxes","container","min","reference","getSimpleBoxPosition","StringDecoder","decode","decodeURIComponent","encodeURIComponent","cuetext","processCues","cues","overlay","firstChild","removeChild","paddedOverlay","margin","shouldCompute","fontSize","Parser","decoder","state","buffer","TextDecoder","reportOrThrowError","onparsingerror","parse","flushing","collectNextLine","pos","stream","alreadyCollectedLine","xy","anchor","VTTRegion","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","scroll","onregion","parseRegion","hasSubstring","oncue","flush","onflush","analUserAgent","screenSize","screen","nameOffset","verOffset","ix","nVer","appVersion","nAgt","browser","appName","majorVersion","toUpperCase","isNaN","mobile","cookieEnabled","cookie","os","clientStrings","r","cs","osVersion","exec","browserVersion","browserMajorVersion","ua","cookies","reCloseSync","reLineEnding","reBrokenTag","reStartTime","reBr","strip_tags","allowed","$0","$1","_sort","langItem","sort","res","that","convertToVTTCues","map","load","language","successCallback","errorCallback","fetch","file","then","response","ok","body","vttCues","OvenPlayerConsole","log","parser","parsedData","sami","options","definedLangs","duration","errors","getLanguage","key","makeEndTime","_ref","fixedLang","error","item","lineNum","nextStartTagIdx","ret","startTagIdx","tempRet","_ref1","_ref2","context","search","contents","nav","browserLanguagePropertyKeys","Array","isArray","languages","getBrowserLanguage","convertedLanguageNames","keys","filter","concat","reClassName","splice","KRCC","RegExp","KOCC","KR","ENCC","EGCC","EN","JPCC","SmiParser","captions","list","SrtParser","catch","status","STATE_IDLE","STATE_COMPLETE","STATE_PAUSED","STATE_PLAYING","STATE_ERROR","STATE_LOADING","STATE_STALLED","STATE_AD_LOADED","STATE_AD_PLAYING","STATE_AD_PAUSED","STATE_AD_COMPLETE","STATE_AD_ERROR","PROVIDER_HTML5","PROVIDER_WEBRTC","PROVIDER_DASH","PROVIDER_HLS","PROVIDER_RTMP","READY","DESTROY","PLAYLIST_CHANGED","ALL_PLAYLIST_ENDED","NETWORK_UNSTABLED","ERROR","PLAYER_STATE","PLAYER_PAUSE","PLAYER_PLAY","PLAYER_CLICKED","PLAYER_RESIZED","PLAYER_FULLSCREEN_CHANGED","PLAYER_WARNING","AD_CHANGED","AD_TIME","CONTENT_BUFFER","CONTENT_TIME","CONTENT_VOLUME","CONTENT_MUTE","CONTENT_META","CONTENT_SOURCE_CHANGED","CONTENT_LEVEL_CHANGED","CONTENT_CAPTION_CUE_CHANGED","CONTENT_CAPTION_CHANGED","CONTENT_TIME_MODE_CHANGED","OME_P2P_MODE","AUDIO_TRACK_CHANGED","ERRORS","codes","SYSTEM_TEXT","isSupport","kind","object","_events","triggerEvents","events","args","event","listener","apply","on","trigger","allEvents","all","off","names","l","retain","_listener","once","onceCallback","La$","selectorOrElement","$element","returnNode","selector","nodeList","querySelectorAll","show","hide","addClass","classList","add","after","htmlString","insertAdjacentHTML","append","before","children","contains","elChild","empty","innerHTML","find","css","removeClass","remove","removeAttribute","attrName","html","hasClass","is","$targetElement","offset","rect","scrollTop","scrollLeft","clientWidth","clientHeight","attr","getAttribute","replaceWith","parentElement","hasChildNodes","closest","selectorString","el","matches","nodeType","closestElement","isRtmp","isWebRTC","isHls","isDash","checkAndGetContainerElement","containerElement","getElementById","userAgentObject","supportList","checkSupport","source","video","canPlayType","mimeType","aac","mp4","f4v","m4v","mov","mp3","mpeg","ogv","ogg","oga","vorbis","webm","f4a","m3u8","m3u","hls","MediaSource","WebKitMediaSource","mediaSource","sourceBuffer","isTypeSupported","sourceBufferValidAPI","getMediaSource","SourceBuffer","WebKitSourceBuffer","appendBuffer","support","ActiveXObject","mimeTypes","testFlash","findProviderNameBySource","soruce_","findProviderNamesByPlaylist","playlistItem","supportNames","sources","supported","TEMP_VIDEO_URL","errorTrigger","provider","setState","pause","pickCurrentSource","playerConfig","sourceIndex","getSourceIndex","default","elVideo","adTagUrl","adContainer","ADMANGER_LOADING_ERROR","ADS_MANAGER_LOADED","AD_ERROR","adsManagerLoaded","adsErrorOccurred","spec","started","active","isVideoEnded","OnManagerLoaded","OnAdError","adDisplayContainer","adsLoader","adsManager","adsRequest","autoplayAllowed","autoplayRequiresMuted","getBrowser","isMobile","google","ima","AdsManagerLoadedEvent","Type","AdErrorEvent","setLocale","setDisableCustomPlaybackForIOS10Plus","adErrorEvent","console","getError","getVastErrorCode","getMessage","innerError","getInnerError","getErrorCode","play","adsManagerLoadedEvent","adsRenderingSettings","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","destroy","getAdsManager","adsSpec","lowLevelEvents","intervalTimer","AD_BUFFERING","AdEvent","CONTENT_PAUSE_REQUESTED","CONTENT_RESUME_REQUESTED","ALL_ADS_COMPLETED","CLICK","SKIPPED","COMPLETE","FIRST_QUARTILE","LOADED","MIDPOINT","PAUSED","RESUMED","STARTED","USER_CLOSE","THIRD_QUARTILE","isAllAdCompelete","currentAd","adEvent","getPosition","remainingTime","getRemainingTime","ad","getAd","remaining","isLinear","adObject","getDuration","skipTimeOffset","getSkipTimeOffset","setInterval","skippable","getAdSkippableState","clearInterval","eventName","removeEventListener","addEventListener","setAdCompleteCallback","_adCompleteCallback","isAllAdComplete","isLinearAd","AdsEventsListener","adConatinerElment","setAttribute","getContainer","AdDisplayContainer","AdsLoader","mute","setVolume","volume","setAutoPlayToAdsRequest","setAdWillAutoPlay","setAdWillPlayMuted","timer","iconClass","onClickCallback","setMute","isActive","Promise","resolve","reject","resume","initialize","retryCount","checkAdsManagerIsReady","init","ViewMode","NORMAL","setTimeout","temporarySupportCheckVideo","src","getName","clearAndReport","_autoplayAllowed","_autoplayRequiresMuted","playPromise","checkAutoplaySupport","isAutoStart","AdsRequest","forceNonLinearFullSlot","requestAds","videoEndedCallback","completeContentCallback","contentComplete","$ads","LA$","Ad","sequence","system","title","description","advertiser","pricing","survey","errorURLTemplates","impressionURLTemplates","creatives","extensions","AdExtension","attributes","AdExtensionChild","CompanionAd","staticResource","htmlResource","iframeResource","altText","companionClickThroughURLTemplate","companionClickTrackingURLTemplates","trackingEvents","Creative","adId","apiFramework","CreativeCompanion","variations","resolveURLTemplates","ASSETURI","encodeURIComponentRFC3986","CONTENTPLAYHEAD","ERRORCODE","CACHEBUSTING","leftpad","random","toString","TIMESTAMP","Date","toISOString","RANDOM","range","util","Image","isNumeric","isFinite","flatten","reduce","parserUtils","nodeName","location","protocol","videoClickTrackingURLTemplates","videoCustomClickURLTemplates","videoClickThroughURLTemplate","parseCreativeCompanion","companionClickTrackingURLTemplate","CreativeLinear","skipDelay","mediaFiles","adParameters","icons","Icon","program","xPosition","yPosition","iconClickThroughURLTemplate","iconClickTrackingURLTemplates","iconViewTrackingURLTemplate","MediaFile","fileURL","deliveryType","codec","bitrate","minBitrate","maxBitrate","scalable","maintainAspectRatio","parseCreativeLinear","charAt","parseXPosition","parseYPosition","domain","CreativeNonLinear","NonLinearAd","expandedWidth","expandedHeight","minSuggestedDuration","nonlinearClickThroughURLTemplate","nonlinearClickTrackingURLTemplates","parseCreativeNonLinear","parseAd","parseWrapper","parseInLine","parseCreativeAdIdAttribute","parseExtensions","model","currency","nextWrapperURL","nodeValue","EventHandlers","EventEmitter","$getMaxListeners","_maxListeners","defaultMaxListeners","emitNone","arrayClone","emitOne","emitTwo","emitThree","emitMany","_addListener","newListener","emit","_eventsCount","unshift","warned","emitter","warn","emitWarning","_onceWrap","removeListener","listenerCount","usingDomains","Domain","getPrototypeOf","setMaxListeners","getMaxListeners","domainEmitter","domainThrown","addListener","prependListener","prependOnceListener","spliceOne","removeAllListeners","listeners","unwrapListeners","eventNames","Reflect","ownKeys","flashURLHandler","async","request","open","timeout","withCredentials","send","onprogress","onload","loadXML","responseText","XDomainRequest","nodeURLHandler","xhr","XMLHttpRequest","OvenPlayerSDK","playerList","XHRURLHandler","overrideMimeType","onreadystatechange","readyState","responseXML","statusText","urlHandler","VASTResponse","ads","DEFAULT_EVENT_DATA","VASTParser","remainingAds","parentURLs","rootErrorURLTemplates","maxWrapperDepth","URLTemplateFilters","fetchingOptions","assign","url","wrapperDepth","originalUrl","rootURL","wrapperLimit","urlhandler","shift","resolveAds","buildVASTResponse","initParsingStatus","fetchVAST","isRootVAST","getErrorURLTemplates","completeWrapperResolving","resolveAll","wrapperSequence","documentElement","trackVastError","resolveWrappers","errorCode","errorMessage","ERRORMESSAGE","storage","DEFAULT_STORAGE","getItem","setItem","removeItem","clear","Storage","initStorage","localStorage","sessionStorage","isStorageDisabled","VASTClient","cappingFreeLunch","cappingMinimumTimeInterval","defaultOptions","vastParser","lastSuccessfulAd","totalCalls","totalCallsTimeout","getRemainingAds","now","getAndParseVAST","VASTTracker","creative","variation","muted","impressed","_alreadyTriggeredQuartiles","emitAlwaysEvents","_initLinearTracking","_initVariationTracking","linear","setDuration","clickThroughURLTemplate","clickTrackingURLTemplates","assetDuration","quartiles","firstQuartile","midpoint","thirdQuartile","isQuartileReached","progress","paused","fullscreen","expanded","trackURLs","progressFormatted","close","elAdVideo","textView","adButton","vastClient","vastTracker","checkMainContentLoaded","metaLoaded","$textView","$adButton","$elAdVideo","processEndOfAd","skipButtonClicked","skip","errorWithCode","canplay","ended","complete","click","setPaused","timeupdate","setProgress","target","currentTime","volumechange","setMuted","loadedmetadata","getState","trackImpression","videoURL","onExtendedLoad","getAdClient","Vast","Ima","stalled","setCanSeek","durationchange","loadeddata","getSources","getCurrentSource","metadata","isLive","Infinity","setMetaLoaded","loadstart","getConfig","showBigPlayButton","autoStart","playing","timeRanges","buffered","num","setBuffer","bufferPercent","sectionStart","seek","sectionEnd","stop","isSeeking","toFixed","compareStalledTime","seeking","setSeeking","seeked","waiting","convertedErroCode","EventsListener","playbackRate","defaultPlaybackRate","getPlaybackRate","_load","lastPlayPosition","currentSource","framerate","getVolume","setTimecodeMode","previousSource","getMse","mse","getMediaElement","canSeek","isLoaded","newState","prevState","newstate","prevstate","newBuffer","getBuffer","getDvrWindow","dvrWindow","isMute","getMute","preload","promise","setPlaybackRate","label","gridThumbnail","lowLatency","setCurrentSource","needProviderChange","setSourceIndex","getQualityLevels","qualityLevels","getCurrentQuality","currentQuality","setCurrentQuality","qualityIndex","getAudioTracks","audioTracks","getCurrentAudioTrack","currentAudioTrack","setCurrentAudioTrack","audioTrackIndex","isAutoQuality","setAutoQuality","isAuto","getFramerate","setFramerate","seekFrame","frameCount","fps","newPosition","super","method","Provider","superDestroy_func","webSocketUrl","loadCallback","connectedCallback","internalErrorCallback","defaultConnectionConfig","ws","wsConnected","mainStream","mainPeerConnectionInfo","clientPeerConnections","wsClosedByPlayer","recoverPacketLoss","playlistFromOme","autoQuality","webrtcConfig","generatePublicCandidate","existingHandler","currentBrowser","getPeerConnectionById","peerConnection","extractLossPacketsOnNetworkStatus","peerConnectionInfo","statisticsTimer","clearTimeout","lostPacketsArr","slotLength","prevPacketsLost","avg8Losses","avgMoreThanThresholdCount","threshold","getStats","stats","autoFallback","isRemote","actualPacketLost","packetsLost","memo","closePeer","createMainPeerConnection","peerId","sdp","candidates","iceServers","peerConnectionConfig","iceTransportPolicy","iceServer","regIceServer","urls","hasWebsocketUrl","socketUrl","generateDomainFromUrl","cloneIceServer","ip","findIp","username","user_name","credential","RTCPeerConnection","tempError","setRemoteDescription","RTCSessionDescription","createAnswer","desc","opusFormatNumber","getOpusFormatNumber","stereo","checkOpusIsStereo","mungeSdpForceStereoOpus","sendMessage","peer_id","command","setLocalDescription","addIceCandidate","onicecandidate","candidate","onconnectionstatechange","connectionState","onicecandidateerror","onicegatheringstatechange","oniceconnectionstatechange","iceConnectionState","ontrack","streams","playoutDelayHint","hint","receivers","getReceivers","receiver","jitterBufferDelayHint","createClientPeerConnection","hostId","clientId","addStream","createOffer","sessionDescription","copyCandidate","basicCandidate","cloneCandidate","newDomain","RTCIceCandidate","cloneCandidatePromise","initWebSocket","WebSocket","onopen","onmessage","JSON","ice_servers","renditions","rendition","video_track","auto","rendition_name","onclose","onerror","clientPeerConnection","stringify","onbeforeunload","connect","webrtcLoader","superPlay_func","sourceFile","audioCtx","connectionTimeout","timeoutMaxRetry","connectionCheckTimer","connected","loadWebRTCLoader","performance","WebRTCLoader","srcObject","AudioContext","webkitAudioContext","currentDevice","called","unlockAudio","createMediaStreamSource","destroyWebRtcLoader","config","bytes","si","postpix","thresh","units","dash","seekPosition_sec","sourceOfFile","dashjs","Version","coveredSetAutoSwitchQualityFor","updateSettings","streaming","abr","autoSwitchBitrate","coveredGetAutoSwitchQualityFor","getSettings","MediaPlayer","op_dash","lowLatencyEnabled","lowLatencyMpdLiveDelay","liveDelay","debug","logLevel","Debug","LOG_LEVEL_NONE","dashConfigFromPlayerConfig","dashConfig","attachSource","QUALITY_CHANGE_REQUESTED","mediaType","QUALITY_CHANGE_RENDERED","newQuality","PLAYBACK_METADATA_LOADED","getQualityFor","getBitrateInfoListFor","subQualityList","sizeHumanizer","isDynamic","mutedPlay","setQualityFor","reset","superStop_func","loadRetryer","firstLoaded","hlsConfig","hlsConfigFromPlayerConfig","Hls","op_hls","attachMedia","loadSource","Events","MANIFEST_LOADED","levels","qualityLevel","firstLevel","audioTrack","LEVEL_LOADED","details","live","LEVEL_SWITCHED","level","autoLevelEnabled","AUDIO_TRACK_SWITCHED","LEVEL_UPDATED","totalduration","networkDetails","stopLoad","fatal","errorType","currentLevel","playlistManager","playlist","currentIndex","supportChecker","SupportChecker","makePrettySource","source_","host","application","mimetypeRegEx","initPlaylist","prettiedPlaylist","tracks","prettySource","defaultSource","isCurrentProtocolOnly","highPriorityType","extractOnlyOneProtocol","getPlaylist","getCurrentPlayList","getCurrentPlaylistIndex","setCurrentPlaylist","getCurrentSources","getCurrentAdTag","PlaylistManager","providerController","supportChacker","Providers","registeProvider","ProviderLoader","html5","HTML5","webrtc","WebRTC","Dash","loadProviders","supportedProviderNames","providerName","findByName","getProviderBySource","supportedProviderName","isSameProvider","newSource","ProviderController","mediaManager","browserInfo","$container","videoElement","createMedia","isLoop","createAdContainer","MediaManager","currentProvider","captionManager","runNextPlaylist","nextPlaylistIndex","hasNextPlaylist","initProvider","api","playlistIndex","captionList","currentCaptionIndex","captionLoader","CaptionLoader","isFisrtLoad","bindTrack","tracksCount","trackId","prefix","defaulttrack","changeCurrentCaption","meta","currentCues","flushCaptionList","lastCaptionIndex","getCaptionList","getCurrentCaption","setCurrentCaption","_index","addCaption","removeCaption","CaptionManager","currentSourceIndex","externalCallbackCreep","triggerEventFromExternal","ApiRtmpExpansion","mediaContainer","lowercaseVal","Number","serialize","deserialize","playbackRates","loop","controls","timecode","hidePlaylistIcon","rtmpBufferTime","rtmpBufferTimeMax","adClient","currentProtocolOnly","systemText","loadingRetryCount","expandFullScreenUI","fullscreenOption","userCustumSystemText","currentSystemText","rate","configPlaylist","feedData","composeSourceOptions","qualityLabel","newLabel","Configurator","getSystemText","getProviderName","getProvider","getMseInstance","isShow","isTimecodeMode","setPlaylist","getCurrentPlaylist","getVersion","playerInstance","API","getPlayerList","getPlayerByContainerId","containerId","getContainerId","getPlayerByIndex","removePlayer","generateWebrtcUrls","isDebugMode","uiText","elements","isRoot","settingItemTemplate","useCheck","panelType","isCheck","hasNext","playlistItemTemplate","image","TextViewTemplate","ViewTemplate","HelpersTemplate","BigButtonTemplate","playerState","ThumbnailTemplate","WaterMarkTemplate","waterMark","MessageBoxTemplate","dontClose","SpinnerTemplate","ContextPanelTemplate","CaptionViewerTemplate","ControlsTemplate","hasPlaylist","VolumeButtonTemplate","ProgressBarTemplate","PlayButtonTemplate","SettingButtonTemplate","FrameButtonsTemplate","TimeDisplayTemplate","isP2P","low_latency_p2p","low_latency_live","FullScreenButtonTemplate","PanelsTemplate","SpeedPanelTemplate","SourcePanelTemplate","QualityPanelTemplate","AudioTrackPanelTemplate","CaptionPanelTemplate","TimeDisplayPanelTemplate","PlaylistPanelTemplate","templateName","onRendered","onDestroyed","$template","viewEvents","createAndSelectElement","newElement","ui","Templates","eventString","explodedText","$target","wrappedFunc","eventOption","passive","nodeLength","withTimer","clickCallback","autoDestroyTimer","$current","template","stopPropagation","preventDefault","OvenTemplate","thumbnail","firstRun","bigButton","messageBox","spinner","mutedMessage","hasThumbnail","hasWaterMark","dont_show_message","qualityLevelChanging","newQualityLevel","createBigButton","currentState","currentPlaylistIndex","BigButton","createThumbnail","poster","Thumbnail","$spinner","Spinner","getContainerElement","isDisable","deleteTimer","hideGap","CaptionViewer","textElem","waterMarkOption","y","x","WaterMark","MessageBox","UI_ICONS","createMessage","settingPanelList","refreshFront","setFront","settingPanel","removeLastItem","settingPanelObject","PANEL_TITLE","$root","panelManager","PanelManager","extractSubPanelData","panel","getTime","playBackRates","currentPlaybackRate","speedUnit","displayModes","isFront","currentTarget","SpeedPanel","SourcePanel","$panel","QualityPanel","AudioTrackPanel","CaptionPanel","TimeDisplayPanel","newQualityObject","initialDuration","volumeButton","playButton","settingButton","progressBar","timeDisplay","fullScreenButton","uiInited","webrtc_is_p2p_mode","isAndroid","isIOS","lastContentMeta","setMouseDown","$playlistPanel","totalCount","pageSize","page","pagedList","pagenate","totalPageCount","originalItemIndex","findCurrentPage","evt","gtarget","PlaylistPanel","initProgressBar","isAd","disableSeekUI","currentPlayingPosition","mouseDown","lastGridThumbnail","durationForCalc","$progressBar","$progressLoad","$progressPlay","$progressHover","$knobContainer","$knob","knobWidth","$time","$preview","hlsLive","nativeHlsLive","positionElements","progressBarWidth","knobPostion","drawHoverProgress","hoverPosition","calculatePercentage","progressBarOffsetX","pointerOffsetX","pageX","touches","clientX","getNativeHlsDvrWindow","seekable","drawTimeIndicator","timeElemWidth","positionOfPixel","calculateMagnetic","elementWidth","magneticPosition","interval","thumbnailInterval","originalThumbnailWidth","originalThumbnailHeight","columnCount","rowCount","scale","resizeScale","thumbnailNumber","imageNumber","rowNumber","columnNumber","previewMagneticPosition","time","loadPosition","ProgressBar","initSettingButton","$parent","panelData","currentCaption","speed","quality","caption","generateMainData","Panels","SettingButton","initFullscreenButton","$iconExpand","$iconCompress","isFullScreen","isIos","fullscreenChagedEventName","isForceMode","fullScreenEventTypes","onfullscreenchange","onmozfullscreenchange","onwebkitfullscreenchange","MSFullscreenChange","checkFullScreen","fullScreen","fullScreenElement","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","resetFullscreenButtonState","afterFullScreenChangedCallback","forcedFakeFullscreenToggle","toggleFullScreen","rootElement","videoElements","adVideoElement","videoTitle","webkitEnterFullScreen","requestFullscreen","fullScreenOption","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen","requestFullScreen","exitFullscreen","webkitExitFullscreen","webkitExitFullScreen","mozCancelFullScreen","msExitFullscreen","FullScreenButton","makeControlUI","$position","$duration","$liveBadge","convertHumanizeTime","MAX_SAFE_INTEGER","isTimecode","TimeDisplay","initTimeDisplay","resetControlUI","$iconPlay","$iconPause","$iconReplay","$buttonBack","$buttonForward","$textBack","$textForward","seekInterval","seekControlInterval","showSeekControl","PlayButton","$sliderContainer","$slider","$sliderHandle","$sliderValue","$volumeIconBig","$volumeIconSmall","$volumeIconMute","maxRange","setVolumeUI","setVolumeIcon","handlePosition","sliderWidth","VolumeButton","metadata_for_when_after_playing","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","OvenPlayer","$playerRoot","viewTemplate","helper","contextPanel","autoHideTimer","isShiftPressed","currentPlayerSize","setHide","autoHide","togglePlayPause","isRewind","currentPosition","isUp","newVolume","currentVolumn","calcPlayerWidth","playerWidth","frameMode","keyCode","pageY","panelWidth","panelHeight","ContextPanel","ResizeSensor","getMediaElementContainer","setApi","Controls","showControlBar","Helpers","aspectRatio","ratio","showControls","player","View","global","selectors","_qsa","styleSheet","cssText","scrollBy","querySelector","getElementsByClassName","classNames","String","Node","DOMException","useCapture","_timeStamp","_currentTarget","attachEvent","detachEvent","Element","Event","CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","srcElement","eventPhase","bubbles","cancelable","timeStamp","cancelBubble","returnValue","defaultPrevented","Window","HTMLDocument","CustomEvent","params","detail","createEvent","initCustomEvent","addEvent","fn","removeEvent","DOMTokenListShim","removeTokenFromString","token","tokens","some","underlying_string","token_list","toggle","force","addToElementPrototype","getClassList","elem","getRelList","relList","DOMTokenList","previousSibling","ELEMENT_NODE","nextSibling","msMatchesSelector","oMatchesSelector","mozMatchesSelector","webkitMatchesSelector","ownerDocument","ParentNode","prepend","nodes","convertNodesIntoANode","insertBefore","mixin","Document","DocumentFragment","ChildNode","parent","viablePreviousSibling","viableNextSibling","replaceChild","DocumentType","CharacterData","ps","getOwnPropertyDescriptor","ex","createDocumentFragment","returnExportsGlobal","q","resizedAttached","resizeSensor","g","currentStyle","getComputedStyle","getPropertyValue","d","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","_isCollectionTyped","jQuery","Elements","_element","detach","Function","Symbol","ArrayBuffer","DataView","isView","propertyIsEnumerable","pow","w","A","S","O","M","E","B","N","I","T","Int8Array","D","R","V","Map","P","getInt8","U","W","z","L","$","C","K","J","G","H","Q","X","Y","Z","nn","rn","tn","_wrapped","en","Uint8Array","byteOffset","VERSION","valueOf","toJSON","un","an","hn","cn","sn","pn","vn","yn","dn","gn","bn","mn","jn","_n","wn","An","xn","Sn","On","Mn","En","Bn","Nn","toPath","In","Tn","kn","Dn","Rn","Fn","Vn","Pn","qn","iteratee","Un","Wn","zn","Ln","$n","Cn","Kn","Jn","templateSettings","evaluate","interpolate","escape","Gn","Hn","Qn","Xn","Yn","Zn","nr","rr","placeholder","tr","er","ur","or","ir","ar","fr","cr","lr","sr","pr","vr","hr","yr","dr","gr","br","mr","jr","_r","wr","Ar","xr","Sr","Or","Mr","Er","Br","Nr","Ir","Tr","kr","Dr","Rr","Fr","Vr","Pr","qr","Ur","Wr","zr","Lr","$r","Cr","Kr","Jr","Gr","Hr","Qr","Xr","_chain","chain","Yr","Zr","__proto__","restArguments","isObject","isNull","isUndefined","isBoolean","isElement","isString","isNumber","isDate","isRegExp","isError","isSymbol","isArrayBuffer","isDataView","isFunction","isArguments","isTypedArray","isEmpty","isMatch","isEqual","isMap","isWeakMap","isSet","isWeakSet","allKeys","pairs","invert","functions","methods","extendOwn","defaults","clone","tap","mapObject","identity","constant","noop","property","propertyOf","matcher","times","variable","uniqueId","partial","bind","bindAll","memoize","cache","delay","defer","throttle","leading","trailing","cancel","debounce","wrap","negate","compose","findKey","findIndex","findLastIndex","sortedIndex","detect","findWhere","each","collect","foldl","inject","reduceRight","foldr","select","every","any","includes","include","invoke","pluck","where","shuffle","sample","sortBy","criteria","groupBy","indexBy","countBy","partition","toArray","pick","omit","first","head","take","initial","last","rest","tail","drop","compact","Boolean","without","uniq","unique","union","intersection","difference","unzip","transpose","zip","chunk","isCallable","tryToString","argument","isConstructor","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","configurable","unicode","isPrototypeOf","it","Prototype","fails","isExtensible","NAME","Constructor","NATIVE_ARRAY_BUFFER","DESCRIPTORS","hasOwn","classof","createNonEnumerableProperty","redefine","setPrototypeOf","uid","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","klass","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","KEY","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","uncurryThis","FunctionName","redefineAll","anInstance","toIntegerOrInfinity","toLength","toIndex","IEEE754","getOwnPropertyNames","arrayFill","arraySlice","setToStringTag","InternalStateModule","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","getInternalState","setInternalState","ARRAY_BUFFER","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","RangeError","fill","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","isLittleEndian","intIndex","store","byteLength","conversion","INCORRECT_ARRAY_BUFFER_NAME","NaN","testView","$setInt8","setInt8","setUint8","unsafe","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toObject","toAbsoluteIndex","lengthOfArrayLike","copyWithin","len","to","from","inc","argumentsLength","endPos","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","getIteratorMethod","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","iterator","next","iteratorMethod","done","toIndexedObject","createMethod","IS_INCLUDES","$this","fromIndex","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","boundFunction","filterReject","$lastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","V8_VERSION","SPECIES","METHOD_NAME","foo","aCallable","IS_RIGHT","fin","mergeSort","comparefn","middle","insertionSort","merge","llength","rlength","lindex","rindex","originalArray","arraySpeciesConstructor","itoc","ctoi","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","TEST","stack","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","iterate","defineIterator","setSpecies","fastKey","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","ADDER","iterable","AS_ENTRIES","previous","getEntry","removed","prev","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","getWeakData","ArrayIterationModule","uncaughtFrozenStore","frozen","UncaughtFrozenStore","entries","findUncaughtFrozen","isForced","InternalMetadataModule","checkCorrectnessOfIteration","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","getOwnPropertyDescriptorModule","exceptions","MATCH","regexp","error1","requireObjectCoercible","quot","attribute","p1","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","ENUMERABLE_NEXT","bitmap","writable","toPropertyKey","propertyKey","padStart","DatePrototype","n$DateToISOString","getUTCDate","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","date","year","milliseconds","sign","ordinaryToPrimitive","IS_PURE","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","proto","wrappedWellKnownSymbolModule","EXISTS","IndexSizeError","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","DOMTokenListPrototype","firefox","UA","Pebble","process","getBuiltIn","Deno","versions","v8","webkit","normalizeStringArgument","nativeErrorToString","INCORRECT_TO_STRING","setGlobal","copyConstructorProperties","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","regexpExec","RegExpPrototype","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","$exec","flattenIntoArray","original","sourceLen","depth","mapper","thisArg","elementLen","targetIndex","mapFn","preventExtensions","NATIVE_BIND","FunctionPrototype","factories","construct","argsLength","partArgs","getDescriptor","aFunction","namespace","getMethod","usingIterator","func","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","symbols","ch","capture","check","globalThis","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","nBits","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","cause","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","onFreeze","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","WeakMap","wmget","wmhas","wmset","facade","STATE","enforce","constructorRegExp","isConstructorModern","isConstructorLegacy","feature","detection","normalize","POLYFILL","NATIVE","isInteger","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","unboundFunction","iterFn","IS_ITERATOR","INTERRUPTED","condition","callFn","innerResult","PrototypeOfArrayIteratorPrototype","arrayIterator","$expm1","expm1","exp","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","LOG10E","log10","log1p","notify","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","enter","nextTick","characterData","task","getOwnPropertySymbols","symbol","URL","searchParams","pathname","href","URLSearchParams","hash","PromiseCapability","$$resolve","$$reject","$default","globalIsFinite","whitespaces","n$ParseFloat","trimmedString","$parseInt","hex","radix","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","alphabet","chr","activeXDocument","definePropertiesModule","enumBugKeys","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObject","iframeDocument","iframe","contentWindow","Properties","V8_PROTOTYPE_DEFINE_BUG","props","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","Attributes","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","$propertyIsEnumerable","NASHORN_BUG","WEBKIT","__defineSetter__","aPossiblePrototype","setter","CORRECT_SETTER","TO_ENTRIES","newPromiseCapability","promiseCapability","Queue","enforceInternalState","TEMPLATE","simple","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","sticky","charsAdded","strCopy","multiline","ignoreCase","dotAll","$RegExp","MISSED_STICKY","TAG","SHARED","copyright","license","aConstructor","defaultConstructor","CONVERT_TO_STRING","codeAt","$repeat","repeat","IS_END","maxLength","fillString","fillLen","stringFiller","intMaxLength","stringLength","fillStr","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","fromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","base","encode","output","counter","extra","ucs2decode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","encoded","labels","whitespace","ltrim","rtrim","channel","port","validateArgumentsLength","setImmediate","clearImmediate","Dispatch","MessageChannel","queue","run","runner","post","postMessage","handler","port2","port1","importScripts","toPositiveInteger","BYTES","TO_PRIMITIVE","exoticToPrim","toPrimitive","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","isIntegralNumber","toOffset","typedArrayFrom","nativeDefineProperty","nativeGetOwnPropertyDescriptor","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","getter","typedArrayOffset","$length","$len","arrayFromConstructorAndList","typedArraySpeciesConstructor","speciesConstructor","postfix","NATIVE_SYMBOL","passed","required","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","installErrorCause","clearErrorStack","ERROR_STACK_INSTALLABLE","FULL_NAME","IS_AGGREGATE_ERROR","OPTIONS_POSITION","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","wrapErrorConstructorWithCause","AGGREGATE_ERROR","$AggregateError","AggregateError","isInstance","AggregateErrorPrototype","errorsArray","arrayBufferModule","un$ArrayBufferSlice","viewSource","viewTarget","addToUnscopables","at","relativeIndex","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arg","$every","$filter","$findIndex","FIND_INDEX","SKIPS_HOLES","$find","FIND","flatMap","flat","depthArg","$includes","$IndexOf","un$IndexOf","ARRAY_ITERATOR","Arguments","un$Join","ES3_STRINGS","separator","$map","of","$reduceRight","CHROME_VERSION","$reduce","un$Reverse","un$Slice","HAS_SPECIES_SUPPORT","$some","internalSort","FF","IE_OR_EDGE","V8","un$Sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","itemsLength","items","arrayLength","getSortCompare","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","getYear","getFullYear","setFullYear","setYear","yi","toGMTString","toUTCString","pv","dateToPrimitive","INVALID_DATE","un$DateToString","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","WEB_ASSEMBLY","errorToString","ErrorPrototype","numberToString","HAS_INSTANCE","FUNCTION_NAME_EXISTS","nameRE","regExpExec","$stringify","tester","low","hi","fix","replacer","space","collection","$acosh","acosh","sqrt","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","LOG2E","clz32","$cosh","cosh","$hypot","hypot","value1","value2","sum","aLen","larg","$imul","imul","UINT16","xl","yl","log2","sinh","tanh","trunc","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","toNumber","third","maxCode","digits","NumberWrapper","isSafeInteger","MIN_SAFE_INTEGER","un$ToExponential","toExponential","ROUNDS_PROPERLY","THROWS_ON_INFINITY_FRACTION","PROPER_NON_FINITE_THIS_CHECK","fractionDigits","un$ToFixed","acc","multiply","c2","divide","dataToString","fractDigits","x2","un$ToPrecision","toPrecision","precision","__defineGetter__","$entries","$freeze","freeze","fromEntries","getOwnPropertyDescriptors","nativeGetPrototypeOf","$isFrozen","isFrozen","$isSealed","isSealed","nativeKeys","__lookupGetter__","__lookupSetter__","$preventExtensions","$seal","seal","$values","$parseFloat","newPromiseCapabilityModule","perform","allSettled","capability","promiseResolve","alreadyCalled","reason","PROMISE_ANY_ERROR","alreadyResolved","alreadyRejected","NativePromise","real","onFinally","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","microtask","hostReportErrors","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","initEvent","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","$promiseResolve","race","functionApply","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","deleteProperty","objectGetPrototypeOf","isDataDescriptor","objectPreventExtensions","objectSetPrototypeOf","existingDescriptor","ownDescriptor","regExpFlags","NativeRegExp","getFlags","stringIndexOf","IS_NCG","CORRECT_NEW","RegExpWrapper","pattern","rawFlags","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","named","brackets","ncg","groupid","groupname","handleNCG","handleDotAll","proxy","objectDefinePropertyModule","un$Test","$toString","TO_STRING","n$ToString","NOT_GENERIC","INCORRECT_NAME","rf","createHTML","forcedStringHTMLMethod","big","blink","bold","codePointAt","notARegExp","correctIsRegExpLogic","un$EndsWith","endsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","fixed","fontcolor","fontsize","$fromCodePoint","fromCodePoint","italics","STRING_ITERATOR","point","link","advanceStringIndex","MATCH_ALL","REGEXP_STRING_ITERATOR","REGEXP_STRING","un$MatchAll","matchAll","WORKS_WITH_NON_GLOBAL_REGEX","$RegExpStringIterator","$global","fullUnicode","$matchAll","flagsValue","rx","fixRegExpWellKnownSymbolLogic","nativeMatch","maybeCallNative","matchStr","$padEnd","padEnd","$padStart","rawTemplate","literalSegments","getSubstitution","REPLACE","searchValue","replaceAll","replaceValue","IS_REG_EXP","functionalReplace","searchLength","advanceBy","endOfLastMatch","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","UNSAFE_SUBSTITUTE","results","accumulatedResult","nextSourcePosition","replacerArgs","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","small","callRegExpExec","MAX_UINT32","$push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","lastLastIndex","separatorCopy","splitter","unicodeMatching","un$StartsWith","startsWith","strike","sub","intLength","intEnd","intStart","sup","$trimEnd","forcedStringTrimMethod","trimEnd","trimRight","$trimStart","trimStart","trimLeft","$trim","defineWellKnownSymbol","NativeSymbol","SymbolPrototype","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","nativeObjectCreate","getOwnPropertyNamesExternal","HIDDEN","QObject","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","properties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","$replacer","u$ArrayCopyWithin","$fill","fromSpeciesAndList","predicate","createTypedArrayConstructor","$indexOf","ArrayIterators","arrayValues","arrayKeys","arrayEntries","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","$join","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","ACCEPT_INCORRECT_ARGUMENTS","mod","expected","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","hex2","hex4","part","InternalWeakMap","collectionWeak","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","disallowed","finalEq","$atob","NO_SPACES_IGNORE","atob","NO_ARG_RECEIVING_CHECK","bs","bc","$btoa","btoa","block","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","tryNodeRequire","DOMExceptionConstants","DOM_EXCEPTION","NativeDOMException","NativeDOMExceptionPrototype","HAS_STACK","codeFor","$DOMException","DOMExceptionPrototype","createGetterDescriptor","INCORRECT_CONSTRUCTOR","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constantName","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","structuredCloneImplementation","getBuiltin","EvalError","ReferenceError","URIError","PerformanceMark","CompileError","LinkError","RuntimeError","Set","MapPrototype","mapHas","mapGet","mapSet","setAdd","booleanValueOf","numberValueOf","stringValueOf","PERFORMANCE_MARK","DATA_CLONE_ERROR","TRANSFERRING","checkBasicSemantic","set1","set2","nativeStructuredClone","structuredClone","FORCED_REPLACEMENT","structuredCloneFromMark","nativeRestrictedStructuredClone","throwUncloneable","throwUnpolyfillable","structuredCloneInternal","cloned","dataTransfer","deep","DOMQuad","p2","p3","p4","DataTransfer","files","ImageData","colorSpace","fromPoint","fromRect","fromMatrix","File","PROPER_TRANSFER","transfer","tryToTransfer","rawTransfer","transferredArray","transferred","canvas","OffscreenCanvas","getContext","transferFromImageBitmap","transferToImageBitmap","MSIE","scheduler","boundArgs","USE_NATIVE_URL","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","n$Fetch","N$Request","Headers","RequestPrototype","HeadersPrototype","plus","sequences","percentSequence","percentDecode","replacements","URLSearchParamsIterator","URLSearchParamsState","parseObject","parseQuery","bindURL","update","entryIterator","entryNext","query","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","getAll","found","headersHas","headersSet","wrapRequestOptions","headers","RequestConstructor","Request","EOF","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","maxIndex","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","http","https","wss","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","urlString","stateOverride","codePoints","bufferCodePoints","pointer","seenAt","seenBracket","seenPasswordToken","scheme","password","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","parseIPv6","partsLength","numbers","ipv4","parts","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","origin","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","cssWithMappingToString","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","_k","__esModule","needQuotes","cssMapping","base64","sourceMapping","sourceURLs","sourceRoot","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","indexByIdentifier","sourceMap","references","updater","addElementStyle","byIndex","newObj","lastIdentifiers","newList","newLastIdentifiers","_i","styleTarget","HTMLIFrameElement","contentDocument","getTarget","styleElement","nonce","removeStyleElement","Blob","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","header","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","buf","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","_bodyArrayBuffer","rejected","arrayBuffer","readAsText","chars","readArrayBufferAsText","formData","json","oldValue","upcased","credentials","signal","referrer","reParamSearch","form","Response","bodyInit","redirectStatuses","redirect","err","aborted","abortXhr","abort","rawHeaders","getAllResponseHeaders","responseURL","ontimeout","onabort","fixUrl","responseType","setRequestHeader","polyfill","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","baseURI","__webpack_exports__"],"sourceRoot":""}
-- 
GitLab