From 315a961e5889960d66554583d92c40c3573c28cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=9A=E9=A3=8E=E6=8B=82=E6=9F=B3=E9=A2=9C?= <434857005@qq.com> Date: Mon, 5 Jun 2023 17:49:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=80=E5=A5=97p2p?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/rules.db | Bin 155648 -> 163840 bytes controllers/web.py | 5 ++ js/drpy.txt | 2 +- js/version.txt | 2 +- templates/admin.html | 4 +- templates/player/p2pplayer/DPlayer.min.css | 22 +++++++ templates/player/p2pplayer/DPlayer.min.js | 2 + templates/player/p2pplayer/images/line.png | Bin 0 -> 282 bytes templates/player/p2pplayer/images/list.png | Bin 0 -> 167 bytes .../player/p2pplayer/images/loading_pc.jpg | Bin 0 -> 129805 bytes templates/player/p2pplayer/images/next.png | Bin 0 -> 502 bytes templates/player/p2pplayer/images/pront.png | Bin 0 -> 512 bytes templates/player/p2pplayer/index.htm | 61 ++++++++++++++++++ templates/player/p2pplayer/p2p.min.js | 1 + 14 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 templates/player/p2pplayer/DPlayer.min.css create mode 100644 templates/player/p2pplayer/DPlayer.min.js create mode 100644 templates/player/p2pplayer/images/line.png create mode 100644 templates/player/p2pplayer/images/list.png create mode 100644 templates/player/p2pplayer/images/loading_pc.jpg create mode 100644 templates/player/p2pplayer/images/next.png create mode 100644 templates/player/p2pplayer/images/pront.png create mode 100644 templates/player/p2pplayer/index.htm create mode 100644 templates/player/p2pplayer/p2p.min.js diff --git a/base/rules.db b/base/rules.db index 22ca49d3befdec300a87d36256fd731e2046dbe7..3083828cb75544f1cd0b4d43ccac5ec1aa46bb3a 100644 GIT binary patch delta 923 zcmZ`%O-vI}5Z-AET?lm1h!rSOG@yu@5Ilf6pZB{zZ zPThr_Om<%B4#}0L-E=3U_+I zi|gX>Q`aymmf~=q#5Y^jJdmEB;2qDUvLZc`{D&@4K&)(UWOo+hIXw>~X>pUY&;v03MGrVIVCuSq}ZGk6e>uW zPRssD4G9tH^Hv4P6JeQ;X?;PV=E~Eri`k&&`a`nsjrJmxQgTaLU*JV~W>Ir}E8|Km zqKOMrwLm4iB;{UdS}3W!)P_it8^x{akl9=@E2#S*c{3$FU(*m?D8F6Q(2AgZd8VOH zqLheLkdzS0GXZ65yA;gU9@U66o0G;9u>Mf+ol@Xz&yuFNMydcl59FS^! z)v4}Ob4nW-CG1B^YE>(_h*}(|4>^$wF*ITr#IVTjM0OYAXv8syV-f2_tm`hash$ln ocEoUqaUhmPEQ46pwjrAfv3A6Ah*kAI#MuyMM;v$f_c`4852o^S2LJ#7 delta 313 zcmZo@;A%L)IYFA$gMooTZK8rbqsPXCCHxZX{5OFD3{w2R`M>dha{eP0lHs zWdyeKv%Of}_Ox^P=9}``4LpqecR(sd`0wz)*(|VN1^@IN`iwj>EX)jyd?11sMDTzJ zZV&-fDm>l6hEZYD29^TmX^ghp*%cVg7`G?bFm^Ieez{(J^S&iNnYUllVAN)32P&=r z>X`0iz*sSzD}l*-`)LElsqE7iWH7DTo|VZY%QW3RlSyHEx;3Nl_F36XX)MzW870|` z%`A;98E$QVV9%&xz}(8dd^&ppqw;i}0>+n&4ckQu8C%&V&s68zzPy|4rWo&0dW#P;/') def web_index(web_name, theme): ctx = {'web_name': web_name, 'key': '关键词', 'description': '描述'} diff --git a/js/drpy.txt b/js/drpy.txt index c40b745..9c8b313 100644 --- a/js/drpy.txt +++ b/js/drpy.txt @@ -1 +1 @@ -{"showTime":89200000,"txt":"drpy 3.9.42beta23 -道长"} \ No newline at end of file +{"showTime":89200000,"txt":"drpy 3.9.42beta24 -道长"} \ No newline at end of file diff --git a/js/version.txt b/js/version.txt index efe877b..9193d9b 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.9.42beta23 \ No newline at end of file +3.9.42beta24 \ No newline at end of file diff --git a/templates/admin.html b/templates/admin.html index b38e272..4c921ee 100644 --- a/templates/admin.html +++ b/templates/admin.html @@ -214,7 +214,9 @@
欢迎使用DR-PY管理界面
当前版本: {{ ver }}框架开发:道长框架美化:蓝莓
- MUI播放器 P2P播放器 + MUI播放器 + P2P播放器 + P2P播放器-GO \n '),a+='\n
\n
\n
\n
\n
\n \n ',r.danmaku&&(a+='\n ',a+=s(l("Danmaku is loading")),a+="\n "),a+='\n ',a+=c.loading,a+='\n
\n\n
\n
\n
\n \n
\n
\n
',a+=s(l("Set danmaku color")),a+='
\n \n \n \n \n \n \n
\n
\n
',a+=s(l("Set danmaku type")),a+='
\n \n \n \n
\n
\n \n ',a+=c.send,a+='\n \n
\n
\n \n \n
\n \n
\n
\n
\n \n
\n
\n
\n
\n \n 0:00 /\n 0:00\n \n ',r.live&&(a+='\n ',a+=s(l("Live")),a+="\n "),a+='\n
\n
\n ',r.video.quality&&(a+='\n
\n \n
\n
\n ',d(r.video.quality,function(e,t){a+='\n
',a+=s(e.name),a+="
\n "}),a+="\n
\n
\n
\n "),a+="\n ",r.screenshot&&(a+='\n
\n
\n "),a+='\n
\n \n
\n ",r.subtitle&&(a+='\n
\n \n
\n "),a+='\n \n
\n \n
\n
\n
\n ',a+=s(l("Speed")),a+='\n
',a+=c.right,a+='
\n
\n
\n ',a+=s(l("Loop")),a+='\n
\n \n \n
\n
\n
\n ',a+=s(l("Show danmaku")),a+='\n
\n \n \n
\n
\n
\n ',a+=s(l("Unlimited danmaku")),a+='\n
\n \n \n
\n
\n
\n ',a+=s(l("Opacity for danmaku")),a+='\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n 0.5\n
\n
\n 0.75\n
\n
\n ',a+=s(l("Normal")),a+='\n
\n
\n 1.25\n
\n
\n 1.5\n
\n
\n 2\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
[x]
\n
\n Player version\n \n
\n
\n Player FPS\n \n
\n
\n Video type\n \n
\n
\n Video url\n \n
\n
\n Video resolution\n \n
\n
\n Video duration\n \n
\n ',r.danmaku&&(a+='\n
\n Danamku id\n \n
\n
\n Danamku api\n \n
\n
\n Danamku amount\n \n
\n '),a+='\n
\n
\n ',d(r.contextmenu,function(e,t){a+='\n
\n ',a+=s(l(e.text)),a+="\n
\n "}),a+='\n
\n
'}},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n>8-s%1*8)){if((n=o.charCodeAt(s+=.75))>255)throw new a;t=t<<8|n}return r}},function(e,t,n){"use strict";var i=n(0);e.exports=i.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function a(e){var i=e;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=a(window.location.href),function(t){var n=i.isString(t)?a(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},function(e,t,n){"use strict";var i=n(0),a=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,o,r={};return e?(i.forEach(e.split("\n"),function(e){if(o=e.indexOf(":"),t=i.trim(e.substr(0,o)).toLowerCase(),n=i.trim(e.substr(o+1)),t){if(r[t]&&a.indexOf(t)>=0)return;r[t]="set-cookie"===t?(r[t]?r[t]:[]).concat([n]):r[t]?r[t]+", "+n:n}}),r):r}},function(e,t,n){"use strict";var i=n(0);function a(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var o;if(n)o=n(t);else if(i.isURLSearchParams(t))o=t.toString();else{var r=[];i.forEach(t,function(e,t){null!==e&&void 0!==e&&(i.isArray(e)?t+="[]":e=[e],i.forEach(e,function(e){i.isDate(e)?e=e.toISOString():i.isObject(e)&&(e=JSON.stringify(e)),r.push(a(t)+"="+a(e))}))}),o=r.join("&")}return o&&(e+=(-1===e.indexOf("?")?"?":"&")+o),e}},function(e,t,n){"use strict";e.exports=function(e,t,n,i,a){return e.config=t,n&&(e.code=n),e.request=i,e.response=a,e}},function(e,t,n){"use strict";var i=n(9);e.exports=function(e,t,n){var a=n.config.validateStatus;n.status&&a&&!a(n.status)?t(i("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";var i=n(0);e.exports=function(e,t){i.forEach(e,function(n,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[i])})}},function(e,t,n){"use strict";var i=n(3),a=n(0),o=n(55),r=n(54);function s(e){this.defaults=e,this.interceptors={request:new o,response:new o}}s.prototype.request=function(e){"string"==typeof e&&(e=a.merge({url:arguments[0]},arguments[1])),(e=a.merge(i,{method:"get"},this.defaults,e)).method=e.method.toLowerCase();var t=[r,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},a.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(t,n){return this.request(a.merge(n||{},{method:e,url:t}))}}),a.forEach(["post","put","patch"],function(e){s.prototype[e]=function(t,n,i){return this.request(a.merge(i||{},{method:e,url:t,data:n}))}}),e.exports=s},function(e,t,n){"use strict";function i(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(i(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&i(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t,n){"use strict";var i=n(0),a=n(11),o=n(64),r=n(3);function s(e){var t=new o(e),n=a(o.prototype.request,t);return i.extend(n,o.prototype,t),i.extend(n,t),n}var l=s(r);l.Axios=o,l.create=function(e){return s(i.merge(r,e))},l.Cancel=n(7),l.CancelToken=n(50),l.isCancel=n(8),l.all=function(e){return Promise.all(e)},l.spread=n(49),e.exports=l,e.exports.default=l},function(e,t,n){"use strict";e.exports=n(66)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,a=n(67),o=(i=a)&&i.__esModule?i:{default:i};t.default={send:function(e){o.default.post(e.url,e.data).then(function(t){var n=t.data;n&&0===n.code?e.success&&e.success(n):e.error&&e.error(n&&n.msg)}).catch(function(t){console.error(t),e.error&&e.error()})},read:function(e){o.default.get(e.url).then(function(t){var n=t.data;n&&0===n.code?e.success&&e.success(n.data.map(function(e){return{time:e[0],type:e[1],color:e[2],author:e[3],text:e[4]}})):e.error&&e.error(n&&n.msg)}).catch(function(t){console.error(t),e.error&&e.error()})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,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},o=n(68),r=(i=o)&&i.__esModule?i:{default:i};t.default=function(e){var t={container:e.element||document.getElementsByClassName("dplayer")[0],live:!1,autoplay:!1,theme:"#b7daff",loop:!1,lang:(navigator.language||navigator.browserLanguage).toLowerCase(),screenshot:!1,hotkey:!0,preload:"metadata",volume:.7,apiBackend:r.default,video:{},contextmenu:[],mutex:!0};for(var n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n]);return e.video&&!e.video.type&&(e.video.type="auto"),"object"===a(e.danmaku)&&e.danmaku&&!e.danmaku.user&&(e.danmaku.user="DIYgod"),e.subtitle&&(!e.subtitle.type&&(e.subtitle.type="webvtt"),!e.subtitle.fontSize&&(e.subtitle.fontSize="20px"),!e.subtitle.bottom&&(e.subtitle.bottom="40px"),!e.subtitle.color&&(e.subtitle.color="#fff")),e.video.quality&&(e.video.url=e.video.quality[e.video.defaultQuality].url),e.lang&&(e.lang=e.lang.toLowerCase()),e.contextmenu=e.contextmenu.concat([]),e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}},function(e,t,n){"use strict";(function(e,t){!function(e,n){if(!e.setImmediate){var i,a,o,r,s,l=1,c={},u=!1,d=e.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(e);p=p&&p.setTimeout?p:e,"[object process]"==={}.toString.call(e.process)?i=function(e){t.nextTick(function(){f(e)})}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((o=new MessageChannel).port1.onmessage=function(e){f(e.data)},i=function(e){o.port2.postMessage(e)}):d&&"onreadystatechange"in d.createElement("script")?(a=d.documentElement,i=function(e){var t=d.createElement("script");t.onreadystatechange=function(){f(e),t.onreadystatechange=null,a.removeChild(t),t=null},a.appendChild(t)}):i=function(e){setTimeout(f,0,e)}:(r="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(r)&&f(+t.data.slice(r.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),i=function(t){e.postMessage(r+t,"*")}),p.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(71),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var i,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},o=n(70),r=(i=o)&&i.__esModule?i:{default:i};var s=setTimeout;function l(){}function c(e){if(!(this instanceof c))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],f(e,this)}function u(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,c._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var i;try{i=n(e._value)}catch(e){return void p(t.promise,e)}d(t.promise,i)}else(1===e._state?d:p)(t.promise,e._value)})):e._deferreds.push(t)}function d(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===(void 0===t?"undefined":a(t))||"function"==typeof t)){var n=t.then;if(t instanceof c)return e._state=3,e._value=t,void h(e);if("function"==typeof n)return void f((i=n,o=t,function(){i.apply(o,arguments)}),e)}e._state=1,e._value=t,h(e)}catch(t){p(e,t)}var i,o}function p(e,t){e._state=2,e._value=t,h(e)}function h(e){2===e._state&&0===e._deferreds.length&&c._immediateFn(function(){e._handled||c._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;te&&this.notice(this.tran("REW")+" "+(this.video.currentTime-e).toFixed(0)+" "+this.tran("s")),this.video.currentTime=e,this.danmaku&&this.danmaku.seek(),this.bar.set("played",e/this.video.duration,"width"),this.template.ptime.innerHTML=o.default.secondToTime(e)}},{key:"play",value:function(){var e=this;if(this.paused=!1,this.video.paused&&this.bezel.switch(c.default.play),this.template.playButton.innerHTML=c.default.pause,a.default.resolve(this.video.play()).catch(function(){e.pause()}).then(function(){}),this.timer.enable("loading"),this.container.classList.remove("dplayer-paused"),this.container.classList.add("dplayer-playing"),this.danmaku&&this.danmaku.play(),this.options.mutex)for(var t=0;t=.95?this.template.volumeIcon.innerHTML=c.default.volumeUp:this.volume()>0?this.template.volumeIcon.innerHTML=c.default.volumeDown:this.template.volumeIcon.innerHTML=c.default.volumeOff}},{key:"volume",value:function(e,t,n){if(e=parseFloat(e),!isNaN(e)){e=Math.max(e,0),e=Math.min(e,1),this.bar.set("volume",e,"width");var i=(100*e).toFixed(0)+"%";this.template.volumeBarWrapWrap.dataset.balloon=i,t||this.user.set("volume",e),n||this.notice(this.tran("Volume")+" "+(100*e).toFixed(0)+"%"),this.video.volume=e,this.video.muted&&(this.video.muted=!1),this.switchVolumeIcon()}return this.video.volume}},{key:"toggle",value:function(){this.video.paused?this.play():this.pause()}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"switchVideo",value:function(e,t){this.pause(),this.video.poster=e.pic?e.pic:"",this.video.src=e.url,this.initMSE(this.video,e.type||"auto"),t&&(this.template.danmakuLoading.style.display="block",this.bar.set("played",0,"width"),this.bar.set("loaded",0,"width"),this.template.ptime.innerHTML="00:00",this.template.danmaku.innerHTML="",this.danmaku&&this.danmaku.reload({id:t.id,address:t.api,token:t.token,maximum:t.maximum,addition:t.addition,user:t.user}))}},{key:"initMSE",value:function(e,t){var n=this;if(this.type=t,this.options.video.customType&&this.options.video.customType[t])"[object Function]"===Object.prototype.toString.call(this.options.video.customType[t])?this.options.video.customType[t](this.video,this):console.error("Illegal customType: "+t);else switch("auto"===this.type&&(/m3u8(#|\?|$)/i.exec(e.src)?this.type="hls":/.flv(#|\?|$)/i.exec(e.src)?this.type="flv":/.mpd(#|\?|$)/i.exec(e.src)?this.type="dash":this.type="normal"),"hls"===this.type&&(e.canPlayType("application/x-mpegURL")||e.canPlayType("application/vnd.apple.mpegURL"))&&(this.type="normal"),this.type){case"hls":if(Hls)if(Hls.isSupported()){var i=new Hls;i.loadSource(e.src),i.attachMedia(e)}else this.notice("Error: Hls is not supported.");else this.notice("Error: Can't find Hls.");break;case"flv":if(flvjs&&flvjs.isSupported())if(flvjs.isSupported()){var a=flvjs.createPlayer({type:"flv",url:e.src});a.attachMediaElement(e),a.load()}else this.notice("Error: flvjs is not supported.");else this.notice("Error: Can't find flvjs.");break;case"dash":dashjs?dashjs.MediaPlayer().create().initialize(e,e.src,!1):this.notice("Error: Can't find dashjs.");break;case"webtorrent":if(WebTorrent)if(WebTorrent.WEBRTC_SUPPORT){this.container.classList.add("dplayer-loading");var o=new WebTorrent,r=e.src;o.add(r,function(e){e.files.find(function(e){return e.name.endsWith(".mp4")}).renderTo(n.video,{autoplay:n.options.autoplay},function(){n.container.classList.remove("dplayer-loading")})})}else this.notice("Error: Webtorrent is not supported.");else this.notice("Error: Can't find Webtorrent.")}}},{key:"initVideo",value:function(e,t){var n=this;this.initMSE(e,t),this.on("durationchange",function(){1!==e.duration&&e.duration!==1/0&&(n.template.dtime.innerHTML=o.default.secondToTime(e.duration))}),this.on("progress",function(){var t=e.buffered.length?e.buffered.end(e.buffered.length-1)/e.duration:0;n.bar.set("loaded",t,"width")}),this.on("error",function(){n.video.error&&n.tran&&n.notice&&(n.type,n.notice(n.tran("Video load failed"),-1))}),this.on("ended",function(){n.bar.set("played",1,"width"),n.setting.loop?(n.seek(0),n.play()):n.pause(),n.danmaku&&(n.danmaku.danIndex=0)}),this.on("play",function(){n.paused&&n.play()}),this.on("pause",function(){n.paused||n.pause()}),this.on("timeupdate",function(){n.bar.set("played",n.video.currentTime/n.video.duration,"width");var e=o.default.secondToTime(n.video.currentTime);n.template.ptime.innerHTML!==e&&(n.template.ptime.innerHTML=e)});for(var i=function(t){e.addEventListener(n.events.videoEvents[t],function(){n.events.trigger(n.events.videoEvents[t])})},a=0;a1&&void 0!==arguments[1]?arguments[1]:2e3,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.8;this.template.notice.innerHTML=e,this.template.notice.style.opacity=i,this.noticeTime&&clearTimeout(this.noticeTime),this.events.trigger("notice_show",e),n>0&&(this.noticeTime=setTimeout(function(){t.template.notice.style.opacity=0,t.events.trigger("notice_hide")},n))}},{key:"resize",value:function(){this.danmaku&&this.danmaku.resize(),this.events.trigger("resize")}},{key:"speed",value:function(e){this.video.playbackRate=e}},{key:"destroy",value:function(){M.splice(M.indexOf(this),1),this.pause(),this.controller.destroy(),this.timer.destroy(),this.video.src="",this.container.innerHTML="",this.events.trigger("destroy")}}],[{key:"version",get:function(){return"1.25.0"}}]),e}();t.default=_},,,function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(77);var i,a=n(74),o=(i=a)&&i.__esModule?i:{default:i};"",t.default=o.default}]).default}); +//# sourceMappingURL=DPlayer.min.js.map \ No newline at end of file diff --git a/templates/player/p2pplayer/images/line.png b/templates/player/p2pplayer/images/line.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6bee4b3190e3ec89a8caecd8a4c2f98c44f1f7 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9Q!3HFy+4N(86id3JuOkD)`V;1?T`z%r$r9Iy zlHmNblJdl&R0hYC{G?O`&)mfH)S%SFl*+=BsWw1GYdl>XLn>}1{rLaio>}e;+mSk! zD-DKG*;%mtUq-?HNeG?sWWB4VZ8|tmTtbm d!pOwKV6r%Ea_vd~8$fq6c)I$ztaD0e0sxcvX9xfQ literal 0 HcmV?d00001 diff --git a/templates/player/p2pplayer/images/list.png b/templates/player/p2pplayer/images/list.png new file mode 100644 index 0000000000000000000000000000000000000000..818c27e50bd5fe4ab37e2e655e17f7e6ed9326e1 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g!!3HGbRrPd%6id3JuOkD)`V;1?T`z%r$r9Iy zlHmNblJdl&R0hYC{G?O`&)mfH)S%SFl*+=BsWw1GmYyz-Ar-fh{`~)M&#cS9J;lv@ zu3)!>X2ZnJMz@3)l4qLq=d{h~b`L(9u}Z>MbPHdyTh?-}1_ow^h!A!|pU2m;frc=6 My85}Sb4q9e01z%Qy8r+H literal 0 HcmV?d00001 diff --git a/templates/player/p2pplayer/images/loading_pc.jpg b/templates/player/p2pplayer/images/loading_pc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88cd8e7b5de9aee8c96ba182fe09cc2955a1e3f5 GIT binary patch literal 129805 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 z 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

7quP_Sw-7(Xt}(6z$L6#k32m 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 E13xkMxBvhE literal 0 HcmV?d00001 diff --git a/templates/player/p2pplayer/images/next.png b/templates/player/p2pplayer/images/next.png new file mode 100644 index 0000000000000000000000000000000000000000..58c503588bb426db0023eec4ea7fb947bfb52c9b GIT binary patch literal 502 zcmV{-q=g*&-fB*jN{`m2u#jjt#7#==+$nfFA2Zl9k)-V9Y8UFtL z3sM8aWkCK0Ag(3a0%m6BSSBVW7d}3|?Lck;ETzF{pd3gI3`YX7KM+R~Z2==A;}0k; zz{<+nFC`_l4rsVC$TvVShVS3MGyMMj8_WjcpHOW-$%+GzA#7}Hf!y5O`;Co_BS66d z3MPFsxHKI5_sPu&~&GETKs<1sbl!$;lZG zie#Et0Cf2lU>tN2Q;v~p!JnT$e>S~*`7#g~7mtA{jIeJ>F#IXd@O+@F*MeM5jNwH4 z;P&m?`wtvA;08>xYmqY=B^IzjX;3=sKYskU->zM|t^t!OI9~u$5wcoVe4&BW0${mv z6`00f-nw-w5f~gr?Ck7cV1@!y5QCtgAh{-q_wV0YAl~@r&z~|NW&q)T|Neo*!SYQ_O$;knt^~7>966#4 z6kiF%rP$13!6wMa$Y=_rY=HPDKG%U#pqQALHBh}hkj+fA1x!p#%0NmGh?QYtZ{NOU z;Njt6U}k1!`0?Wh!_S{Td4L8tsi~>uLqkHFXbXVg50w55695^?&CSj5>(?&^H#ave zX=&*xKw(EDJ-i9n__)l$*#-@ife!UDvN?Ck6-h&7xjAAk%8 zx?WaXTzncUE2|Hw$&{c4Kvy%cv9Xo0u(0^hB%^`C|NHmvD}j088ci$!1`8;o9Ra2y zC!l4sscr! + + + + + + M3U8-P2P云播 + + + + + + +
+
+
+

+
+
+ + + + + diff --git a/templates/player/p2pplayer/p2p.min.js b/templates/player/p2pplayer/p2p.min.js new file mode 100644 index 0000000..211a7d2 --- /dev/null +++ b/templates/player/p2pplayer/p2p.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.P2PEngine=t():e.P2PEngine=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=6)}([function(e,t){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function i(e){return"number"==typeof e}function a(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}e.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!i(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,r,i,s,u,l;if(this._events||(this._events={}),"error"===e&&(!this._events.error||a(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(r=this._events[e],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),r.apply(this,s)}else if(a(r))for(s=Array.prototype.slice.call(arguments,1),l=r.slice(),i=l.length,u=0;u0&&this._events[e].length>i&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var r,i,o,s;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],o=r.length,i=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(a(r)){for(s=o;s-- >0;)if(r[s]===t||r[s].listener&&r[s].listener===t){i=s;break}if(i<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(i,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,r){"use strict";(function(e){var r,n,i,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};!function(o,s){"object"==a(t)&&"object"==a(e)?e.exports=s():(n=[],r=s,void 0!==(i="function"==typeof r?r.apply(t,n):r)&&(e.exports=i))}("undefined"!=typeof self&&self,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=18)}([function(e,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"==("undefined"==typeof window?"undefined":a(window))&&(r=window)}e.exports=r},function(e,t){function r(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function i(e){if(c===setTimeout)return setTimeout(e,0);if((c===r||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function a(e){if(d===clearTimeout)return clearTimeout(e);if((d===n||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(e);try{return d(e)}catch(t){try{return d.call(null,e)}catch(t){return d.call(this,e)}}}function o(){g&&h&&(g=!1,h.length?p=h.concat(p):v=-1,p.length&&s())}function s(){if(!g){var e=i(o);g=!0;for(var t=p.length;t;){for(h=p,p=[];++v1)for(var r=1;r=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),a.alloc(+e)}function v(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return W(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(e).length;default:if(n)return W(e).length;t=(""+t).toLowerCase(),n=!0}}function y(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,r);case"utf8":case"utf-8":return C(this,t,r);case"ascii":return D(this,t,r);case"latin1":case"binary":return I(this,t,r);case"base64":return L(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function m(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=a.from(t,n)),a.isBuffer(t))return 0===t.length?-1:_(e,t,r,n,i);if("number"==typeof t)return t&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):_(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function _(e,t,r,n,i){function a(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,s/=2,u/=2,r/=2}var l;if(i){var c=-1;for(l=r;ls&&(r=s-u),l=r;l>=0;l--){for(var d=!0,f=0;fi&&(n=i):n=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o239?4:a>223?3:a>191?2:1;if(i+s<=r){var u,l,c,d;switch(s){case 1:a<128&&(o=a);break;case 2:128==(192&(u=e[i+1]))&&(d=(31&a)<<6|63&u)>127&&(o=d);break;case 3:u=e[i+1],l=e[i+2],128==(192&u)&&128==(192&l)&&(d=(15&a)<<12|(63&u)<<6|63&l)>2047&&(d<55296||d>57343)&&(o=d);break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],128==(192&u)&&128==(192&l)&&128==(192&c)&&(d=(15&a)<<18|(63&u)<<12|(63&l)<<6|63&c)>65535&&d<1114112&&(o=d)}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return k(n)}function k(e){var t=e.length;if(t<=Z)return String.fromCharCode.apply(String,e);for(var r="",n=0;nn)&&(r=n);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function M(e,t,r,n,i,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function F(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function N(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function U(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function B(e,t,r,n,i){return i||U(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),J.write(e,t,r,n,23,4),r+4}function G(e,t,r,n,i){return i||U(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),J.write(e,t,r,n,52,8),r+8}function j(e){if(e=K(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function K(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function H(e){return e<16?"0"+e.toString(16):e.toString(16)}function W(e,t){t=t||1/0;for(var r,n=e.length,i=null,a=[],o=0;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function Y(e){for(var t=[],r=0;r>8,i=r%256,a.push(i),a.push(n);return a}function V(e){return Q.toByteArray(j(e))}function z(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function X(e){return e!==e}var Q=r(21),J=r(22),$=r(9);t.Buffer=a,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=n(),a.poolSize=8192,a._augment=function(e){return e.__proto__=a.prototype,e},a.from=function(e,t,r){return o(null,e,t,r)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(e,t,r){return u(null,e,t,r)},a.allocUnsafe=function(e){return l(null,e)},a.allocUnsafeSlow=function(e){return l(null,e)},a.isBuffer=function(e){return!(null==e||!e._isBuffer)},a.compare=function(e,t){if(!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,o=Math.min(r,n);i0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},a.prototype.compare=function(e,t,r,n,i){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;for(var o=i-n,s=r-t,u=Math.min(o,s),l=this.slice(n,i),c=e.slice(t,r),d=0;di)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return E(this,e,t,r);case"utf8":case"utf-8":return w(this,e,t,r);case"ascii":return T(this,e,t,r);case"latin1":case"binary":return S(this,e,t,r);case"base64":return R(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Z=4096;a.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)n+=this[e+--t]*i;return n},a.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||x(e,t,this.length);for(var n=this[e],i=1,a=0;++a=i&&(n-=Math.pow(2,8*t)),n},a.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||x(e,t,this.length);for(var n=t,i=1,a=this[e+--n];n>0&&(i*=256);)a+=this[e+--n]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*t)),a},a.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),J.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),J.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),J.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),J.read(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,r,n){e=+e,t|=0,r|=0,n||M(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+i]=e/a&255;return t+r},a.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||M(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||M(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):F(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||M(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):F(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||M(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||M(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);M(this,e,t,r,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+r},a.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);M(this,e,t,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+r},a.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||M(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||M(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):F(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||M(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):F(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||M(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||M(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,r){return B(this,e,t,!0,r)},a.prototype.writeFloatBE=function(e,t,r){return B(this,e,t,!1,r)},a.prototype.writeDoubleLE=function(e,t,r){return G(this,e,t,!0,r)},a.prototype.writeDoubleBE=function(e,t,r){return G(this,e,t,!1,r)},a.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(o<1e3||!a.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o0&&this._events[e].length>i&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var r,i,a,s;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],a=r.length,i=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(r)){for(s=a;s-- >0;)if(r[s]===t||r[s].listener&&r[s].listener===t){i=s;break}if(i<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(i,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t){e.exports=function(){if("undefined"==typeof window)return null;var e={RTCPeerConnection:window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection,RTCSessionDescription:window.RTCSessionDescription||window.mozRTCSessionDescription||window.webkitRTCSessionDescription,RTCIceCandidate:window.RTCIceCandidate||window.mozRTCIceCandidate||window.webkitRTCIceCandidate};return e.RTCPeerConnection?e:null}},function(e,t,r){(function(t,n){function i(e){return N.from(e)}function a(e){return N.isBuffer(e)||e instanceof U}function o(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?x(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}function s(e,t){O=O||r(3),e=e||{};var n=t instanceof O;this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,a=e.readableHighWaterMark,o=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(a||0===a)?a:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new H,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(K||(K=r(15).StringDecoder),this.decoder=new K(e.encoding),this.encoding=e.encoding)}function u(e){if(O=O||r(3),!(this instanceof u))return new u(e);this._readableState=new s(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),F.call(this)}function l(e,t,r,n,a){var o=e._readableState;if(null===t)o.reading=!1,g(e,o);else{var s;a||(s=d(o,t)),s?e.emit("error",s):o.objectMode||t&&t.length>0?("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===N.prototype||(t=i(t)),n?o.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):c(e,o,t,!0):o.ended?e.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||0!==t.length?c(e,o,t,!1):m(e,o)):c(e,o,t,!1))):n||(o.reading=!1)}return f(o)}function c(e,t,r,n){t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&v(e)),m(e,t)}function d(e,t){var r;return a(t)||"string"==typeof t||void 0===t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk")),r}function f(e){return!e.ended&&(e.needReadable||e.length=q?e=q:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function p(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=h(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function g(e,t){if(!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,v(e)}}function v(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(j("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?P.nextTick(y,e):y(e))}function y(e){j("emit readable"),e.emit("readable"),S(e)}function m(e,t){t.readingMore||(t.readingMore=!0,P.nextTick(b,e,t))}function b(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=A(e,t.buffer,t.decoder),r}function A(e,t,r){var n;return ea.length?a.length:e;if(o===a.length?i+=a:i+=a.slice(0,e),0==(e-=o)){o===a.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(o));break}++n}return t.length-=n,i}function C(e,t){var r=N.allocUnsafe(e),n=t.head,i=1;for(n.data.copy(r),e-=n.data.length;n=n.next;){var a=n.data,o=e>a.length?a.length:e;if(a.copy(r,r.length-e,0,o),0==(e-=o)){o===a.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(o));break}++i}return t.length-=i,r}function k(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,P.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function I(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return j("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?k(this):v(this),null;if(0===(e=p(e,t))&&t.ended)return 0===t.length&&k(this),null;var n=t.needReadable;j("need readable",n),(0===t.length||t.length-e0?R(e,t):null,null===i?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&k(this)),null!==i&&this.emit("data",i),i},u.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},u.prototype.pipe=function(e,t){function r(e,t){j("onunpipe"),e===f&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,a())}function i(){j("onend"),e.end()}function a(){j("cleanup"),e.removeListener("close",l),e.removeListener("finish",c),e.removeListener("drain",v),e.removeListener("error",u),e.removeListener("unpipe",r),f.removeListener("end",i),f.removeListener("end",d),f.removeListener("data",s),y=!0,!h.awaitDrain||e._writableState&&!e._writableState.needDrain||v()}function s(t){j("ondata"),m=!1,!1!==e.write(t)||m||((1===h.pipesCount&&h.pipes===e||h.pipesCount>1&&-1!==I(h.pipes,e))&&!y&&(j("false write response, pause",f._readableState.awaitDrain),f._readableState.awaitDrain++,m=!0),f.pause())}function u(t){j("onerror",t),d(),e.removeListener("error",u),0===M(e,"error")&&e.emit("error",t)}function l(){e.removeListener("finish",c),d()}function c(){j("onfinish"),e.removeListener("close",l),d()}function d(){j("unpipe"),f.unpipe(e)}var f=this,h=this._readableState;switch(h.pipesCount){case 0:h.pipes=e;break;case 1:h.pipes=[h.pipes,e];break;default:h.pipes.push(e)}h.pipesCount+=1,j("pipe count=%d opts=%j",h.pipesCount,t);var p=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr,g=p?i:d;h.endEmitted?P.nextTick(g):f.once("end",g),e.on("unpipe",r);var v=_(f);e.on("drain",v);var y=!1,m=!1;return f.on("data",s),o(e,"error",u),e.once("close",l),e.once("finish",c),e.emit("pipe",f),h.flowing||(j("pipe resume"),f.resume()),e},u.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r),this);if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a-1?n:C.nextTick;c.WritableState=l;var I=r(6);I.inherits=r(2);var P={deprecate:r(33)},O=r(12),x=r(5).Buffer,M=i.Uint8Array||function(){},F=r(13);I.inherits(c,O),l.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(l.prototype,"buffer",{get:P.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}();var N;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(N=Function.prototype[Symbol.hasInstance],Object.defineProperty(c,Symbol.hasInstance,{value:function(e){return!!N.call(this,e)||this===c&&e&&e._writableState instanceof l}})):N=function(e){return e instanceof this},c.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},c.prototype.write=function(e,t,r){var n=this._writableState,i=!1,a=!n.objectMode&&s(e);return a&&!x.isBuffer(e)&&(e=o(e)),"function"==typeof t&&(r=t,t=null),a?t="buffer":t||(t=n.defaultEncoding),"function"!=typeof r&&(r=u),n.ended?d(this,r):(a||f(this,n,e,r))&&(n.pendingcb++,i=p(this,n,a,e,t,r)),i},c.prototype.cork=function(){this._writableState.corked++},c.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||E(this,e))},c.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(c.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),c.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},c.prototype._writev=null,c.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!==e&&void 0!==e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||A(this,n,r)},Object.defineProperty(c.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),c.prototype.destroy=F.destroy,c.prototype._undestroy=F.undestroy,c.prototype._destroy=function(e,t){this.end(),t(e)}}).call(t,r(1),r(31).setImmediate,r(0))},function(e,t,r){function n(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function i(e){var t=n(e);if("string"!=typeof t&&(m.isEncoding===b||!b(e)))throw new Error("Unknown encoding: "+e);return t||e}function a(e){this.encoding=i(e);var t;switch(this.encoding){case"utf16le":this.text=f,this.end=h,t=4;break;case"utf8":this.fillLast=l,t=4;break;case"base64":this.text=p,this.end=g,t=3;break;default:return this.write=v,void(this.end=y)}this.lastNeed=0,this.lastTotal=0,this.lastChar=m.allocUnsafe(t)}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e,t,r){var n=t.length-1;if(n=0?(i>0&&(e.lastNeed=i-1),i):--n=0?(i>0&&(e.lastNeed=i-2),i):--n=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0)}function u(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}function l(e){var t=this.lastTotal-this.lastNeed,r=u(this,e,t);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){var r=s(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function f(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function h(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function p(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function g(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function v(e){return e.toString(this.encoding)}function y(e){return e&&e.length?this.write(e):""}var m=r(5).Buffer,b=m.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};t.StringDecoder=a,a.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r0;){var e=t.msgQueue.shift();t.emit(e.event,e)}};e.once("connect",n),e.on("data",function(e){if("string"==typeof e){var r=JSON.parse(e);if(!t.connected)return void t.msgQueue.push(r);switch(r.event){case g.default.DC_PONG:t._handlePongMsg();break;case g.default.DC_PING:t.sendJson({event:g.default.DC_PONG});break;case g.default.DC_PIECE:t._prepareForBinary(r.attachments,r.url,r.sn,r.size),t.emit(r.event,r);break;case g.default.DC_PIECE_NOT_FOUND:window.clearTimeout(t.requestTimeout),t.requestTimeout=null,t.emit(r.event,r);break;case g.default.DC_REQUEST:t._handleRequestMsg(r);break;case g.default.DC_PIECE_ACK:t._handlePieceAck(),t.emit(r.event,r);break;default:t.emit(r.event,r)}}else t.bufArr.push(e),0==--t.remainAttachments&&(window.clearTimeout(t.requestTimeout),t.requestTimeout=null,t.sendJson({event:g.default.DC_PIECE_ACK,sn:t.bufSN,url:t.bufUrl,size:t.expectedSize}),t._handleBinaryData())}),e.once("close",function(){t.emit(g.default.DC_CLOSE)})}},{key:"sendJson",value:function(e){this.send(JSON.stringify(e))}},{key:"send",value:function(e){this._datachannel&&this._datachannel.connected&&this._datachannel.send(e)}},{key:"sendBitField",value:function(e){this.sendJson({event:g.default.DC_BITFIELD,field:e})}},{key:"sendBuffer",value:function(e,t,r){this.uploading=!0,this.uploadTimeout=window.setTimeout(this._uploadtimeout.bind(this),1e3*this.config.dcUploadTimeout);var n=r.byteLength,i=this.config.packetSize,a=0,o=0;n%i==0?o=n/i:(o=Math.floor(n/i)+1,a=n%i);var s={event:g.default.DC_PIECE,attachments:o,url:t,sn:e,size:n};this.sendJson(s);for(var l=u(r,i,o,a),c=0;c1&&void 0!==arguments[1]&&arguments[1],r={event:g.default.DC_REQUEST,url:e,urgent:t};this.downloading=!0,this.sendJson(r),t&&(this.requestTimeout=window.setTimeout(this._loadtimeout.bind(this),1e3*this.config.dcRequestTimeout))}},{key:"requestDataBySN",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r={event:g.default.DC_REQUEST,sn:e,urgent:t};this.downloading=!0,this.sendJson(r),t&&(this.requestTimeout=window.setTimeout(this._loadtimeout.bind(this),1e3*this.config.dcRequestTimeout))}},{key:"close",value:function(){this.destroy()}},{key:"receiveSignal",value:function(e){this._datachannel.signal(e)}},{key:"destroy",value:function(){window.clearInterval(this.adjustSRInterval),window.clearInterval(this.pinger),this._datachannel.removeAllListeners(),this.removeAllListeners(),this._datachannel.destroy()}},{key:"_handleRequestMsg",value:function(e){this.rcvdReqQueue.length>0?e.urgent?this.rcvdReqQueue.push(e.sn):this.rcvdReqQueue.unshift(e.sn):this.emit(g.default.DC_REQUEST,e)}},{key:"_handlePieceAck",value:function(){if(this.uploading=!1,window.clearTimeout(this.uploadTimeout),this.uploadTimeout=null,this.rcvdReqQueue.length>0){var e=this.rcvdReqQueue.pop();this.emit(g.default.DC_REQUEST,{sn:e})}}},{key:"_prepareForBinary",value:function(e,t,r,n){this.bufArr=[],this.remainAttachments=e,this.bufUrl=t,this.bufSN=r,this.expectedSize=n}},{key:"_handleBinaryData",value:function(){var e=v.concat(this.bufArr);e.byteLength==this.expectedSize&&this.emit(g.default.DC_RESPONSE,{url:this.bufUrl,sn:this.bufSN,data:e}),this.bufUrl="",this.bufArr=[],this.expectedSize=-1,this.downloading=!1}},{key:"_adjustStreamingRate",value:function(e){var t=this,r=0;return this.adjustSRInterval=window.setInterval(function(){t.streamingRate=Math.round(8*r/e),r=0},1e3*e),function(e){r+=e}}},{key:"_loadtimeout",value:function(){var e=this.engine.logger;if(e.warn("datachannel timeout while downloading from "+this.remotePeerId),this.emit(g.default.DC_TIMEOUT),this.requestTimeout=null,this.downloading=!1,++this.miss>=this.config.dcTolerance){var t={event:g.default.DC_CLOSE};this.sendJson(t),e.warn("datachannel download miss reach dcTolerance, close "+this.remotePeerId),this.emit(g.default.DC_ERROR)}}},{key:"_uploadtimeout",value:function(){this.engine.logger.warn("datachannel timeout while uploading to "+this.remotePeerId),this.uploading=!1,this.rcvdReqQueue=[]}},{key:"_sendPing",value:function(){var e=this;this.ping=performance.now();for(var t=0;t0){var t=0,r=!0,n=!1,i=void 0;try{for(var a,o=e.delays[Symbol.iterator]();!(r=(a=o.next()).done);r=!0)t+=a.value}catch(e){n=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(n)throw i}}e.delay=t/e.delays.length,e.delays=[]}},100)}},{key:"_handlePongMsg",value:function(){var e=performance.now()-this.ping;this.delays.push(e)}},{key:"setupStats",value:function(){var e=this,t=this.engine.logger;setInterval(function(){e._datachannel.getStats(function(e,r){t.warn("reports: "+JSON.stringify(r,null,1))})},1e4)}},{key:"isAvailable",get:function(){this.engine.logger;return!1===this.downloading&&!1===this.choked}}]),t}(h.default);t.default=y,e.exports=t.default},function(e,t,r){(function(t){function n(e){var t=this;if(!(t instanceof n))return new n(e);if(t._id=c(4).toString("hex").slice(0,7),t._debug("new peer %o",e),e=Object.assign({allowHalfOpen:!1},e),d.Duplex.call(t,e),t.channelName=e.initiator?e.channelName||c(20).toString("hex"):null,t._isChromium="undefined"!=typeof window&&!!window.webkitRTCPeerConnection,t.initiator=e.initiator||!1,t.channelConfig=e.channelConfig||n.channelConfig,t.config=e.config||n.config,t.constraints=t._transformConstraints(e.constraints||n.constraints),t.offerConstraints=t._transformConstraints(e.offerConstraints||{}),t.answerConstraints=t._transformConstraints(e.answerConstraints||{}),t.reconnectTimer=e.reconnectTimer||!1,t.sdpTransform=e.sdpTransform||function(e){return e},t.stream=e.stream||!1,t.trickle=void 0===e.trickle||e.trickle,t.destroyed=!1,t.connected=!1,t.remoteAddress=void 0,t.remoteFamily=void 0,t.remotePort=void 0,t.localAddress=void 0,t.localPort=void 0,t._wrtc=e.wrtc&&"object"===o(e.wrtc)?e.wrtc:u(),!t._wrtc)throw"undefined"==typeof window?new Error("No WebRTC support: Specify `opts.wrtc` option in this environment"):new Error("No WebRTC support: Not a supported browser");if(t._pcReady=!1,t._channelReady=!1,t._iceComplete=!1,t._channel=null,t._pendingCandidates=[],t._previousStreams=[],t._chunk=null,t._cb=null,t._interval=null,t._reconnectTimeout=null,t._pc=new t._wrtc.RTCPeerConnection(t.config,t.constraints),t._isWrtc=Array.isArray(t._pc.RTCIceConnectionStates),t._isReactNativeWebrtc="number"==typeof t._pc._peerConnectionId,t._pc.oniceconnectionstatechange=function(){t._onIceStateChange()},t._pc.onicegatheringstatechange=function(){t._onIceStateChange()},t._pc.onsignalingstatechange=function(){t._onSignalingStateChange()},t._pc.onicecandidate=function(e){t._onIceCandidate(e)},t.initiator){var r=!1;t._pc.onnegotiationneeded=function(){r||t._createOffer(),r=!0},t._setupData({channel:t._pc.createDataChannel(t.channelName,t.channelConfig)})}else t._pc.ondatachannel=function(e){t._setupData(e)};"addTrack"in t._pc?(t.stream&&t.stream.getTracks().forEach(function(e){t._pc.addTrack(e,t.stream)}),t._pc.ontrack=function(e){t._onTrack(e)}):(t.stream&&t._pc.addStream(t.stream),t._pc.onaddstream=function(e){t._onAddStream(e)}),t.initiator&&t._isWrtc&&t._pc.onnegotiationneeded(),t._onFinishBound=function(){t._onFinish()},t.once("finish",t._onFinishBound)}function i(){}var o="function"==typeof Symbol&&"symbol"==a(Symbol.iterator)?function(e){return void 0===e?"undefined":a(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":a(e)};e.exports=n;var s=r(23)("simple-channel"),u=r(10),l=r(2),c=r(26),d=r(27);l(n,d.Duplex),n.WEBRTC_SUPPORT=!!u(),n.config={iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:global.stun.twilio.com:3478?transport=udp"}]},n.constraints={},n.channelConfig={},Object.defineProperty(n.prototype,"bufferSize",{get:function(){var e=this;return e._channel&&e._channel.bufferedAmount||0}}),n.prototype.address=function(){var e=this;return{port:e.localPort,family:"IPv4",address:e.localAddress}},n.prototype.signal=function(e){var t=this;if(t.destroyed)throw new Error("cannot signal after peer is destroyed");if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e={}}t._debug("signal()"),e.candidate&&(t._pc.remoteDescription&&t._pc.remoteDescription.type?t._addIceCandidate(e.candidate):t._pendingCandidates.push(e.candidate)),e.sdp&&t._pc.setRemoteDescription(new t._wrtc.RTCSessionDescription(e),function(){t.destroyed||(t._pendingCandidates.forEach(function(e){t._addIceCandidate(e)}),t._pendingCandidates=[],"offer"===t._pc.remoteDescription.type&&t._createAnswer())},function(e){t.destroy(e)}),e.sdp||e.candidate||t.destroy(new Error("signal() called with invalid signal data"))},n.prototype._addIceCandidate=function(e){var t=this;try{t._pc.addIceCandidate(new t._wrtc.RTCIceCandidate(e),i,function(e){t.destroy(e)})}catch(e){t.destroy(new Error("error adding candidate: "+e.message))}},n.prototype.send=function(e){this._channel.send(e)},n.prototype.destroy=function(e){this._destroy(e,function(){})},n.prototype._destroy=function(e,t){var r=this;if(!r.destroyed){if(r._debug("destroy (error: %s)",e&&(e.message||e)),r.readable=r.writable=!1,r._readableState.ended||r.push(null),r._writableState.finished||r.end(),r.destroyed=!0,r.connected=!1,r._pcReady=!1,r._channelReady=!1,r._previousStreams=null,clearInterval(r._interval),clearTimeout(r._reconnectTimeout),r._interval=null,r._reconnectTimeout=null,r._chunk=null,r._cb=null,r._onFinishBound&&r.removeListener("finish",r._onFinishBound),r._onFinishBound=null,r._pc){try{r._pc.close()}catch(e){}r._pc.oniceconnectionstatechange=null,r._pc.onicegatheringstatechange=null,r._pc.onsignalingstatechange=null,r._pc.onicecandidate=null,"addTrack"in r._pc?r._pc.ontrack=null:r._pc.onaddstream=null,r._pc.onnegotiationneeded=null,r._pc.ondatachannel=null}if(r._channel){try{r._channel.close()}catch(e){}r._channel.onmessage=null,r._channel.onopen=null,r._channel.onclose=null,r._channel.onerror=null}r._pc=null,r._channel=null,e&&r.emit("error",e),r.emit("close"),t()}},n.prototype._setupData=function(e){var t=this;if(!e.channel)return t.destroy(new Error("Data channel event is missing `channel` property"));t._channel=e.channel,t._channel.binaryType="arraybuffer","number"==typeof t._channel.bufferedAmountLowThreshold&&(t._channel.bufferedAmountLowThreshold=65536),t.channelName=t._channel.label,t._channel.onmessage=function(e){t._onChannelMessage(e)},t._channel.onbufferedamountlow=function(){t._onChannelBufferedAmountLow()},t._channel.onopen=function(){t._onChannelOpen()},t._channel.onclose=function(){t._onChannelClose()},t._channel.onerror=function(e){t.destroy(e)}},n.prototype._read=function(){},n.prototype._write=function(e,t,r){var n=this;if(n.destroyed)return r(new Error("cannot write after peer is destroyed"));if(n.connected){try{n.send(e)}catch(e){return n.destroy(e)}n._channel.bufferedAmount>65536?(n._debug("start backpressure: bufferedAmount %d",n._channel.bufferedAmount),n._cb=r):r(null)}else n._debug("write before connect"),n._chunk=e,n._cb=r},n.prototype._onFinish=function(){function e(){setTimeout(function(){t.destroy()},1e3)}var t=this;t.destroyed||(t.connected?e():t.once("connect",e))},n.prototype._createOffer=function(){var e=this;e.destroyed||e._pc.createOffer(function(t){function r(){e.destroyed||(e.trickle||e._iceComplete?i():e.once("_iceComplete",i))}function n(t){e.destroy(t)}function i(){var r=e._pc.localDescription||t;e._debug("signal"),e.emit("signal",{type:r.type,sdp:r.sdp})}e.destroyed||(t.sdp=e.sdpTransform(t.sdp),e._pc.setLocalDescription(t,r,n))},function(t){e.destroy(t)},e.offerConstraints)},n.prototype._createAnswer=function(){var e=this;e.destroyed||e._pc.createAnswer(function(t){function r(){e.destroyed||(e.trickle||e._iceComplete?i():e.once("_iceComplete",i))}function n(t){e.destroy(t)}function i(){var r=e._pc.localDescription||t;e._debug("signal"),e.emit("signal",{type:r.type,sdp:r.sdp})}e.destroyed||(t.sdp=e.sdpTransform(t.sdp),e._pc.setLocalDescription(t,r,n))},function(t){e.destroy(t)},e.answerConstraints)},n.prototype._onIceStateChange=function(){var e=this;if(!e.destroyed){var t=e._pc.iceConnectionState,r=e._pc.iceGatheringState;e._debug("iceStateChange (connection: %s) (gathering: %s)",t,r),e.emit("iceStateChange",t,r),"connected"!==t&&"completed"!==t||(clearTimeout(e._reconnectTimeout),e._pcReady=!0,e._maybeReady()),"disconnected"===t&&(e.reconnectTimer?(clearTimeout(e._reconnectTimeout),e._reconnectTimeout=setTimeout(function(){e.destroy()},e.reconnectTimer)):e.destroy()),"failed"===t&&e.destroy(new Error("Ice connection failed.")),"closed"===t&&e.destroy()}},n.prototype.getStats=function(e){var t=this;0===t._pc.getStats.length?t._pc.getStats().then(function(t){var r=[];t.forEach(function(e){r.push(e)}),e(null,r)},function(t){e(t)}):t._isReactNativeWebrtc?t._pc.getStats(null,function(t){var r=[];t.forEach(function(e){r.push(e)}),e(null,r)},function(t){e(t)}):t._pc.getStats.length>0?t._pc.getStats(function(r){if(!t.destroyed){var n=[];r.result().forEach(function(e){var t={};e.names().forEach(function(r){t[r]=e.stat(r)}),t.id=e.id,t.type=e.type,t.timestamp=e.timestamp,n.push(t)}),e(null,n)}},function(t){e(t)}):e(null,[])},n.prototype._maybeReady=function(){function e(){t.destroyed||t.getStats(function(r,n){function i(e){u=!0;var r=o[e.localCandidateId];r&&r.ip?(t.localAddress=r.ip,t.localPort=Number(r.port)):r&&r.ipAddress?(t.localAddress=r.ipAddress,t.localPort=Number(r.portNumber)):"string"==typeof e.googLocalAddress&&(r=e.googLocalAddress.split(":"),t.localAddress=r[0],t.localPort=Number(r[1]));var n=a[e.remoteCandidateId];n&&n.ip?(t.remoteAddress=n.ip,t.remotePort=Number(n.port)):n&&n.ipAddress?(t.remoteAddress=n.ipAddress,t.remotePort=Number(n.portNumber)):"string"==typeof e.googRemoteAddress&&(n=e.googRemoteAddress.split(":"),t.remoteAddress=n[0],t.remotePort=Number(n[1])),t.remoteFamily="IPv4",t._debug("connect local: %s:%s remote: %s:%s",t.localAddress,t.localPort,t.remoteAddress,t.remotePort)}if(!t.destroyed){r&&(n=[]);var a={},o={},s={},u=!1;if(n.forEach(function(e){"remotecandidate"!==e.type&&"remote-candidate"!==e.type||(a[e.id]=e),"localcandidate"!==e.type&&"local-candidate"!==e.type||(o[e.id]=e),"candidatepair"!==e.type&&"candidate-pair"!==e.type||(s[e.id]=e)}),n.forEach(function(e){"transport"===e.type&&i(s[e.selectedCandidatePairId]),("googCandidatePair"===e.type&&"true"===e.googActiveConnection||("candidatepair"===e.type||"candidate-pair"===e.type)&&e.selected)&&i(e)}),!(u||Object.keys(s).length&&!Object.keys(o).length))return void setTimeout(e,100);if(t._connecting=!1,t.connected=!0,t._chunk){try{t.send(t._chunk)}catch(r){return t.destroy(r)}t._chunk=null,t._debug('sent chunk from "write before connect"');var l=t._cb;t._cb=null,l(null)}"number"!=typeof t._channel.bufferedAmountLowThreshold&&(t._interval=setInterval(function(){t._onInterval()},150),t._interval.unref&&t._interval.unref()),t._debug("connect"),t.emit("connect")}})}var t=this;t._debug("maybeReady pc %s channel %s",t._pcReady,t._channelReady),!t.connected&&!t._connecting&&t._pcReady&&t._channelReady&&(t._connecting=!0,e())},n.prototype._onInterval=function(){var e=this;!e._cb||!e._channel||e._channel.bufferedAmount>65536||e._onChannelBufferedAmountLow()},n.prototype._onSignalingStateChange=function(){var e=this;e.destroyed||(e._debug("signalingStateChange %s",e._pc.signalingState),e.emit("signalingStateChange",e._pc.signalingState))},n.prototype._onIceCandidate=function(e){var t=this;t.destroyed||(e.candidate&&t.trickle?t.emit("signal",{candidate:{candidate:e.candidate.candidate,sdpMLineIndex:e.candidate.sdpMLineIndex,sdpMid:e.candidate.sdpMid}}):e.candidate||(t._iceComplete=!0,t.emit("_iceComplete")))},n.prototype._onChannelMessage=function(e){var r=this;if(!r.destroyed){var n=e.data;n instanceof ArrayBuffer&&(n=t.from(n)),r.push(n)}},n.prototype._onChannelBufferedAmountLow=function(){var e=this;if(!e.destroyed&&e._cb){e._debug("ending backpressure: bufferedAmount %d",e._channel.bufferedAmount);var t=e._cb;e._cb=null,t(null)}},n.prototype._onChannelOpen=function(){var e=this;e.connected||e.destroyed||(e._debug("on channel open"),e._channelReady=!0,e._maybeReady())},n.prototype._onChannelClose=function(){var e=this;e.destroyed||(e._debug("on channel close"),e.destroy())},n.prototype._onAddStream=function(e){var t=this;t.destroyed||(t._debug("on add stream"),t.emit("stream",e.stream))},n.prototype._onTrack=function(e){var t=this;if(!t.destroyed){t._debug("on track");var r=e.streams[0].id;-1===t._previousStreams.indexOf(r)&&(t._previousStreams.push(r),t.emit("stream",e.streams[0]))}},n.prototype._debug=function(){var e=this,t=[].slice.call(arguments);t[0]="["+e._id+"] "+t[0],s.apply(null,t)},n.prototype._transformConstraints=function(e){var t=this;if(0===Object.keys(e).length)return e;if((e.mandatory||e.optional)&&!t._isChromium){var r=Object.assign({},e.optional,e.mandatory);return void 0!==r.OfferToReceiveVideo&&(r.offerToReceiveVideo=r.OfferToReceiveVideo,delete r.OfferToReceiveVideo),void 0!==r.OfferToReceiveAudio&&(r.offerToReceiveAudio=r.OfferToReceiveAudio,delete r.OfferToReceiveAudio),r}return e.mandatory||e.optional||!t._isChromium?e:(void 0!==e.offerToReceiveVideo&&(e.OfferToReceiveVideo=e.offerToReceiveVideo,delete e.offerToReceiveVideo),void 0!==e.offerToReceiveAudio&&(e.OfferToReceiveAudio=e.offerToReceiveAudio,delete e.offerToReceiveAudio),{mandatory:e})}}).call(t,r(4).Buffer)},function(e,t,r){function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function i(e){var t=n(e),r=t[0],i=t[1];return 3*(r+i)/4-i}function a(e,t,r){return 3*(t+r)/4-r}function o(e){for(var t,r=n(e),i=r[0],o=r[1],s=new f(a(e,i,o)),u=0,l=o>0?i-4:i,c=0;c>16&255,s[u++]=t>>8&255,s[u++]=255&t;return 2===o&&(t=d[e.charCodeAt(c)]<<2|d[e.charCodeAt(c+1)]>>4,s[u++]=255&t),1===o&&(t=d[e.charCodeAt(c)]<<10|d[e.charCodeAt(c+1)]<<4|d[e.charCodeAt(c+2)]>>2,s[u++]=t>>8&255,s[u++]=255&t),s}function s(e){return c[e>>18&63]+c[e>>12&63]+c[e>>6&63]+c[63&e]}function u(e,t,r){for(var n,i=[],a=t;ao?o:a+16383));return 1===n?(t=e[r-1],i.push(c[t>>2]+c[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],i.push(c[t>>10]+c[t>>4&63]+c[t<<2&63]+"=")),i.join("")}t.byteLength=i,t.toByteArray=o,t.fromByteArray=l;for(var c=[],d=[],f="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,g=h.length;p>1,c=-7,d=r?i-1:0,f=r?-1:1,h=e[t+d];for(d+=f,a=h&(1<<-c)-1,h>>=-c,c+=s;c>0;a=256*a+e[t+d],d+=f,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+e[t+d],d+=f,c-=8);if(0===a)a=1-l;else{if(a===u)return o?NaN:1/0*(h?-1:1);o+=Math.pow(2,n),a-=l}return(h?-1:1)*o*Math.pow(2,a-n)},t.write=function(e,t,r,n,i,a){var o,s,u,l=8*a-i-1,c=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:a-1,p=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),t+=o+d>=1?f/u:f*Math.pow(2,1-d),t*u>=2&&(o++,u/=2),o+d>=c?(s=0,o=c):o+d>=1?(s=(t*u-1)*Math.pow(2,i),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[r+h]=255&s,h+=p,s/=256,i-=8);for(o=o<0;e[r+h]=255&o,h+=p,o/=256,l-=8);e[r+h-p]|=128*g}},function(e,t,r){(function(n){function i(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function o(e){var r=this.useColors;if(e[0]=(r?"%c":"")+this.namespace+(r?" %c":" ")+e[0]+(r?"%c ":" ")+"+"+t.humanize(this.diff),r){var n="color: "+this.color;e.splice(1,0,n,"color: inherit");var i=0,a=0;e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(a=i))}),e.splice(a,0,n)}}function s(){return"object"==("undefined"==typeof console?"undefined":a(console))&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function u(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}function l(){var e;try{e=t.storage.debug}catch(e){}return!e&&void 0!==n&&"env"in n&&(e=n.env.DEBUG),e}t=e.exports=r(24),t.log=s,t.formatArgs=o,t.save=u,t.load=l,t.useColors=i,t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(l())}).call(t,r(1))},function(e,t,r){function n(e){var r,n=0;for(r in e)n=(n<<5)-n+e.charCodeAt(r),n|=0;return t.colors[Math.abs(n)%t.colors.length]}function i(e){function r(){if(r.enabled){var e=r,n=+new Date,a=n-(i||n);e.diff=a,e.prev=i,e.curr=n,i=n;for(var o=new Array(arguments.length),s=0;s100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*d;case"days":case"day":case"d":return r*c;case"hours":case"hour":case"hrs":case"hr":case"h":return r*l;case"minutes":case"minute":case"mins":case"min":case"m":return r*u;case"seconds":case"second":case"secs":case"sec":case"s":return r*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function n(e){return e>=c?Math.round(e/c)+"d":e>=l?Math.round(e/l)+"h":e>=u?Math.round(e/u)+"m":e>=s?Math.round(e/s)+"s":e+"ms"}function i(e){return o(e,c,"day")||o(e,l,"hour")||o(e,u,"minute")||o(e,s,"second")||e+" ms"}function o(e,t,r){if(!(e0)return r(e);if("number"===o&&!1===isNaN(e))return t.long?i(e):n(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,r){(function(t,n){function i(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}function a(e,r){if(e>65536)throw new Error("requested too many random bytes");var i=new t.Uint8Array(e);e>0&&s.getRandomValues(i);var a=o.from(i.buffer);return"function"==typeof r?n.nextTick(function(){r(null,a)}):a}var o=r(5).Buffer,s=t.crypto||t.msCrypto;s&&s.getRandomValues?e.exports=a:e.exports=i}).call(t,r(0),r(1))},function(e,t,r){t=e.exports=r(11),t.Stream=t,t.Readable=t,t.Writable=r(14),t.Duplex=r(3),t.Transform=r(16),t.PassThrough=r(34)},function(e,t){},function(e,t,r){function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,r){e.copy(t,r)}var a=r(5).Buffer,o=r(30);e.exports=function(){function e(){n(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return a.alloc(0);if(1===this.length)return this.head.data;for(var t=a.allocUnsafe(e>>>0),r=this.head,n=0;r;)i(r.data,t,n),n+=r.data.length,r=r.next;return t},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,r){(function(e){function n(e,t){this._id=e,this._clearFn=t}var i=void 0!==e&&e||"undefined"!=typeof self&&self||window,a=Function.prototype.apply;t.setTimeout=function(){return new n(a.call(setTimeout,i,arguments),clearTimeout)},t.setInterval=function(){return new n(a.call(setInterval,i,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},n.prototype.unref=n.prototype.ref=function(){},n.prototype.close=function(){this._clearFn.call(i,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},r(32),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(t,r(0))},function(e,t,r){(function(e,t){!function(e,r){function n(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r0&&void 0!==arguments[0]?arguments[0]:10,r=this.engine.logger;this.heartbeater=window.setInterval(function(){fetch(e.statsURL,{headers:e._requestHeader,method:"POST",body:JSON.stringify(e._makeStatsBody())}).then(function(t){t.ok&&(r.info("sucessfully report stats"),e.httpDownloaded=0,e.p2pDownloaded=0,e.conns=0,e.failConns=0,e.errsFragLoad=0,e.errsBufStalled=0,e.errsInternalExpt=0)}).catch(function(e){r.error("btStats error "+e)})},1e3*t)}},{key:"btGetPeers",value:function(){var e=this,t=this.engine.logger;return new Promise(function(r,n){fetch(e.getPeersURL,{headers:e._requestHeader,method:"POST"}).then(function(e){return e.json()}).then(function(e){-1===e.ret?n(e.data.msg):r(e.data)}).catch(function(e){t.error("btGetPeers error "+e),n(e)})})}},{key:"increConns",value:function(){this.conns++}},{key:"decreConns",value:function(){this.conns--}},{key:"increFailConns",value:function(){this.failConns++}},{key:"reportFlow",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=Math.round(e.total/1024);t?(this.p2pDownloaded+=r,this.totalP2PDownloaded+=r):(this.httpDownloaded+=r,this.totalHTTPDownloaded+=r),this._emitStats()}},{key:"reportUploaded",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.totalP2PUploaded+=Math.round(e/1024),this._emitStats()}},{key:"destroy",value:function(){window.clearInterval(this.heartbeater)}},{key:"_emitStats",value:function(){this.engine.emit("stats",{totalHTTPDownloaded:this.totalHTTPDownloaded,totalP2PDownloaded:this.totalP2PDownloaded,totalP2PUploaded:this.totalP2PUploaded})}},{key:"_makeStatsBody",value:function(){var e={conns:this.conns,failConns:this.failConns,errsFragLoad:this.errsFragLoad,errsBufStalled:this.errsBufStalled,errsInternalExpt:this.errsInternalExpt,http:Math.round(this.httpDownloaded),p2p:Math.round(this.p2pDownloaded)};return Object.keys(e).forEach(function(t){0===e[t]&&delete e[t]}),e}},{key:"_requestHeader",get:function(){return{}}}]),e}();t.default=u,e.exports=t.default},function(e,t,r){var n;"function"==typeof Symbol&&Symbol.iterator,function(i){function a(e,t){var r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r}function o(e,t){return e<>>32-t}function s(e,t,r,n,i,s){return a(o(a(a(t,e),a(n,s)),i),r)}function u(e,t,r,n,i,a,o){return s(t&r|~t&n,e,t,i,a,o)}function l(e,t,r,n,i,a,o){return s(t&n|r&~n,e,t,i,a,o)}function c(e,t,r,n,i,a,o){return s(t^r^n,e,t,i,a,o)}function d(e,t,r,n,i,a,o){return s(r^(t|~n),e,t,i,a,o)}function f(e,t){e[t>>5]|=128<>>9<<4)]=t;var r,n,i,o,s,f=1732584193,h=-271733879,p=-1732584194,g=271733878;for(r=0;r>5]>>>t%32&255);return r}function p(e){var t,r=[];for(r[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<16&&(i=f(i,8*e.length)),r=0;r<16;r+=1)a[r]=909522486^i[r],o[r]=1549556828^i[r];return n=f(a.concat(p(t)),512+8*t.length),h(f(o.concat(n),640))}function y(e){var t,r,n="0123456789abcdef",i="";for(r=0;r>>4&15)+n.charAt(15&t);return i}function m(e){return unescape(encodeURIComponent(e))}function b(e){return g(m(e))}function _(e){return y(b(e))}function E(e,t){return v(m(e),m(t))}function w(e,t){return y(E(e,t))}function T(e,t,r){return t?r?E(t,e):w(t,e):r?b(e):_(e)}void 0!==(n=function(){return T}.call(t,r,t,e))&&(e.exports=n)}()},function(e,t,r){function n(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20,n=null,i=!1;return function(){if(arguments.length>0&&void 0!==arguments[0]&&arguments[0])return void window.clearTimeout(n);i||(i=!0,n=setTimeout(function(){e.call(t),i=!1,n=null},1e3*r))}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n,e.exports=t.default}])})}).call(t,r(10)(e))},function(e,t,r){"use strict";function n(e){return arguments.length>1&&void 0!==arguments[1]&&arguments[1]?e:e.split("?")[0]}function i(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1];return""+u.default.parseURL(e).path.split(".")[0]}function a(){var e=-1,t="";return function(r,n){n=n.split("?")[0];var i=!0;return e!==r&&t===n&&(i=!1),e=r,t=n,i}}function o(){return!0}Object.defineProperty(t,"__esModule",{value:!0}),t.handleTSUrl=n,t.defaultChannelId=i,t.tsPathChecker=a,t.noop=o;var s=r(4),u=function(e){return e&&e.__esModule?e:{default:e}}(s)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.FragLoader=t.Tracker=void 0;var i=r(8),a=n(i),o=r(12),s=n(o),u={announce:"https://api.cdnbye.com/v1",urgentOffset:3};t.Tracker=a.default,t.FragLoader=s.default,t.config=u},function(e,t,r){!function(t){var r=/^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/\;?#]*)?(.*?)??(;.*?)?(\?.*?)?(#.*?)?$/,n=/^([^\/;?#]*)(.*)$/,i=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g,o={buildAbsoluteURL:function(e,t,r){if(r=r||{},e=e.trim(),!(t=t.trim())){if(!r.alwaysNormalize)return e;var i=o.parseURL(e);if(!i)throw new Error("Error trying to parse base URL.");return i.path=o.normalizePath(i.path),o.buildURLFromParts(i)}var a=o.parseURL(t);if(!a)throw new Error("Error trying to parse relative URL.");if(a.scheme)return r.alwaysNormalize?(a.path=o.normalizePath(a.path),o.buildURLFromParts(a)):t;var s=o.parseURL(e);if(!s)throw new Error("Error trying to parse base URL.");if(!s.netLoc&&s.path&&"/"!==s.path[0]){var u=n.exec(s.path);s.netLoc=u[1],s.path=u[2]}s.netLoc&&!s.path&&(s.path="/");var l={scheme:s.scheme,netLoc:a.netLoc,path:null,params:a.params,query:a.query,fragment:a.fragment};if(!a.netLoc&&(l.netLoc=s.netLoc,"/"!==a.path[0]))if(a.path){var c=s.path,d=c.substring(0,c.lastIndexOf("/")+1)+a.path;l.path=o.normalizePath(d)}else l.path=s.path,a.params||(l.params=s.params,a.query||(l.query=s.query));return null===l.path&&(l.path=r.alwaysNormalize?o.normalizePath(a.path):a.path),o.buildURLFromParts(l)},parseURL:function(e){var t=r.exec(e);return t?{scheme:t[1]||"",netLoc:t[2]||"",path:t[3]||"",params:t[4]||"",query:t[5]||"",fragment:t[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(i,"");e.length!==(e=e.replace(a,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}};e.exports=o}()},function(e,t,r){"use strict";var n=function(e){return e&&2===e.CLOSING},i=function(){return"undefined"!=typeof WebSocket&&n(WebSocket)},a=function(){return{constructor:i()?WebSocket:null,maxReconnectionDelay:1e4,minReconnectionDelay:1500,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,debug:!1}},o=function(e,t,r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){e[r]=t},enumerable:!0,configurable:!0})},s=function(e){return e.minReconnectionDelay+Math.random()*e.minReconnectionDelay},u=function(e,t){var r=t*e.reconnectionDelayGrowFactor;return r>e.maxReconnectionDelay?e.maxReconnectionDelay:r},l=["onopen","onclose","onmessage","onerror"],c=function(e,t,r){Object.keys(r).forEach(function(t){r[t].forEach(function(r){var n=r[0],i=r[1];e.addEventListener(t,n,i)})}),t&&l.forEach(function(r){e[r]=t[r]})},d=function(e,t,r){var i=this;void 0===r&&(r={});var l,f,h=0,p=0,g=!0,v=null,y={};if(!(this instanceof d))throw new TypeError("Failed to construct 'ReconnectingWebSocket': Please use the 'new' operator");var m=a();if(Object.keys(m).filter(function(e){return r.hasOwnProperty(e)}).forEach(function(e){return m[e]=r[e]}),!n(m.constructor))throw new TypeError("Invalid WebSocket constructor. Set `options.constructor`");var b=m.debug?function(){for(var e=[],t=0;tm.maxRetries)return void _("EHOSTDOWN","Too many failed connection attempts");h=h?u(m,h):s(m),b("handleClose - reconnectDelay:",h),g&&setTimeout(w,h)},w=function(){if(g){b("connect");var r=l,n="function"==typeof e?e():e;l=new m.constructor(n,t),f=setTimeout(function(){b("timeout"),l.close(),_("ETIMEDOUT","Connection timeout")},m.connectionTimeout),b("bypass properties");for(var a in l)["addEventListener","removeEventListener","close","send"].indexOf(a)<0&&o(l,i,a);l.addEventListener("open",function(){clearTimeout(f),b("open"),h=s(m),b("reconnectDelay:",h),p=0}),l.addEventListener("close",E),c(l,r,y),l.onclose=l.onclose||v,v=null}};b("init"),w(),this.close=function(e,t,r){void 0===e&&(e=1e3),void 0===t&&(t="");var n=void 0===r?{}:r,i=n.keepClosed,a=void 0!==i&&i,o=n.fastClose,s=void 0===o||o,u=n.delay,c=void 0===u?0:u;if(b("close - params:",{reason:t,keepClosed:a,fastClose:s,delay:c,retriesCount:p,maxRetries:m.maxRetries}),g=!a&&p<=m.maxRetries,c&&(h=c),l.close(e,t),s){var d={code:e,reason:t,wasClean:!0};E(),l.removeEventListener("close",E),Array.isArray(y.close)&&y.close.forEach(function(e){var t=e[0],r=e[1];t(d),l.removeEventListener("close",t,r)}),l.onclose&&(v=l.onclose,l.onclose(d),l.onclose=null)}},this.send=function(e){l.send(e)},this.addEventListener=function(e,t,r){Array.isArray(y[e])?y[e].some(function(e){return e[0]===t})||y[e].push([t,r]):y[e]=[[t,r]],l.addEventListener(e,t,r)},this.removeEventListener=function(e,t,r){Array.isArray(y[e])&&(y[e]=y[e].filter(function(e){return e[0]!==t})),l.removeEventListener(e,t,r)}};e.exports=d},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s="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},u=Object.assign||function(e){for(var t=1;t0){var t={event:c.Events.DC_HAVE,sn:e};this._broadcastToPeers(t)}}},{key:"updateLoadingSN",value:function(e){this.loadingSN=e}},{key:"updatePlaySN",value:function(e){var t=this.engine.logger;if(!this.config.live&&this.hasPeers)for(var r=[],n=e+1;n<=e+this.config.urgentOffset+1;n++)if(!this.bitset.has(n)&&n!==this.loadingSN&&this.bitCounts.has(n)){var i=!0,a=!1,o=void 0;try{for(var s,u=this.peerMap.values()[Symbol.iterator]();!(i=(s=u.next()).done);i=!0){var l=s.value;if(l.isAvailable&&l.bitset.has(n)){l.requestDataBySN(n,!0),t.debug("request urgent "+n+" from peer "+l.remotePeerId),r.push(n);break}}}catch(e){a=!0,o=e}finally{try{!i&&u.return&&u.return()}finally{if(a)throw o}}}}},{key:"deletePeer",value:function(e){var t=this;this.peerMap.has(e.remotePeerId)&&(e.bitset.forEach(function(e){t._decreBitCounts(e)}),this.peerMap.delete(e.remotePeerId)),this.engine.emit("peers",[].concat(n(this.peerMap.keys())))}},{key:"handshakePeer",value:function(e){this._setupDC(e),e.sendBitField(Array.from(this.bitset))}},{key:"addPeer",value:function(e){this.engine.logger.info("add peer "+e.remotePeerId),this.peerMap.set(e.remotePeerId,e),this.engine.emit("peers",[].concat(n(this.peerMap.keys())))}},{key:"peersHasSN",value:function(e){return this.bitCounts.has(e)}},{key:"hasAndSetTargetPeer",value:function(e){var t=this.engine.logger;if(!this.hasIdlePeers||!this.peersHasSN(e))return!1;var r=!0,n=!1,i=void 0;try{for(var a,o=this.peerMap.values()[Symbol.iterator]();!(r=(a=o.next()).done);r=!0){var s=a.value;if(s.isAvailable&&s.bitset.has(e))return t.info("found sn "+e+" from peer "+s.remotePeerId),this.targetPeer=s,!0}}catch(e){n=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(n)throw i}}return t.warn("idle peers hasn't sn "+e),!1}},{key:"load",value:function(e,t,r){var n=this.engine.logger;this.context=e;var i=e.frag,a=(0,d.handleTSUrl)(i.relurl,this.config.tsStrictMatched);this.callbacks=r,this.stats={trequest:performance.now(),retry:0,tfirst:0,tload:0,loaded:0},this.criticalSeg={sn:i.sn,relurl:a},this.targetPeer.requestDataByURL(a,!0),n.info("request criticalSeg url "+i.relurl+" at "+i.sn),this.criticaltimeouter=window.setTimeout(this._criticaltimeout.bind(this),1e3*this.config.loadTimeout)}},{key:"_setupDC",value:function(e){var t=this,r=this.engine.logger;e.on(c.Events.DC_BITFIELD,function(r){if(r.field){var n=new Set(r.field);e.bitset=n,r.field.forEach(function(e){t.bitset.has(e)||t._increBitCounts(e)}),t.addPeer(e)}}).on(c.Events.DC_HAVE,function(r){if(r.sn&&e.bitset){var n=r.sn;e.bitset.add(n),t.bitset.has(n)||t._increBitCounts(n)}}).on(c.Events.DC_LOST,function(r){if(r.sn&&e.bitset){var n=r.sn;e.bitset.delete(n),t._decreBitCounts(n)}}).on(c.Events.DC_PIECE_ACK,function(e){e.size&&t.engine.fetcher.reportUploaded(e.size)}).on(c.Events.DC_PIECE,function(e){t.criticalSeg&&t.criticalSeg.relurl===e.url&&(t.stats.tfirst=Math.max(performance.now(),t.stats.trequest))}).on(c.Events.DC_PIECE_NOT_FOUND,function(e){t.criticalSeg&&t.criticalSeg.relurl===e.url&&(window.clearTimeout(t.criticaltimeouter),r.info("DC_PIECE_NOT_FOUND"),t._criticaltimeout())}).on(c.Events.DC_RESPONSE,function(n){if(t.criticalSeg&&t.criticalSeg.relurl===n.url&&t.criticaltimeouter){r.info("receive criticalSeg url "+n.url),window.clearTimeout(t.criticaltimeouter),t.criticaltimeouter=null;var i=t.stats;i.tload=Math.max(i.tfirst,performance.now()),i.loaded=i.total=n.data.byteLength,t.criticalSeg=null,t.context.frag.fromPeerId=e.remotePeerId,t.callbacks.onSuccess(n,i,t.context)}else t.bufMgr.addBuffer(n.sn,n.url,n.data,e.remotePeerId);t.updateLoadedSN(n.sn)}).on(c.Events.DC_REQUEST,function(r){var n="";if((n=r.url?r.url:t.bufMgr.getURLbySN(r.sn))&&t.bufMgr.hasSegOfURL(n)){var i=t.bufMgr.getSegByURL(n);e.sendBuffer(r.sn,i.relurl,i.data)}else e.sendJson({event:c.Events.DC_PIECE_NOT_FOUND,url:n,sn:r.sn})}).on(c.Events.DC_TIMEOUT,function(){r.warn("DC_TIMEOUT"),t.criticaltimeouter&&(window.clearTimeout(t.criticaltimeouter),t._criticaltimeout())})}},{key:"_broadcastToPeers",value:function(e){var t=!0,r=!1,n=void 0;try{for(var i,a=this.peerMap.values()[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){i.value.sendJson(e)}}catch(e){r=!0,n=e}finally{try{!t&&a.return&&a.return()}finally{if(r)throw n}}}},{key:"_getIdlePeer",value:function(){return[].concat(n(this.peerMap.values())).filter(function(e){return e.isAvailable})}},{key:"_decreBitCounts",value:function(e){if(this.bitCounts.has(e)){var t=this.bitCounts.get(e);1===t?this.bitCounts.delete(e):this.bitCounts.set(e,t-1)}}},{key:"_increBitCounts",value:function(e){if(this.bitCounts.has(e)){var t=this.bitCounts.get(e);this.bitCounts.set(e,t+1)}else this.bitCounts.set(e,1)}},{key:"_criticaltimeout",value:function(){this.engine.logger.warn("critical request timeout"),this.criticalSeg=null,this.criticaltimeouter=null,this.callbacks.onTimeout(this.stats,this.context,null)}},{key:"hasPeers",get:function(){return this.peerMap.size>0}},{key:"peersNum",get:function(){return this.peerMap.size}},{key:"hasIdlePeers",get:function(){var e=this.engine.logger,t=this._getIdlePeer().length;return e.info("peers: "+this.peerMap.size+" idle peers: "+t),t>0}},{key:"bufferManager",set:function(e){var t=this;this.bufMgr=e,e.on(c.Events.BM_LOST,function(e){t._broadcastToPeers({event:c.Events.DC_LOST,sn:e}),t.bitset.delete(e)})}}]),t}(l.default);t.default=f,e.exports=t.default},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var r=0;r0&&(r.warn("resend all cached msg"),t.msgQueue.forEach(function(e){t._ws.send(e)}),t.msgQueue=[]),t.onopen&&t.onopen()},a.push=a.send,a.send=function(t){var r=JSON.stringify(Object.assign({peer_id:e},t));a.push(r)},a.onmessage=function(e){t.onmessage&&t.onmessage(e)},a.onclose=function(){r.warn("Signaler websocket closed"),t.onclose&&t.onclose(),t.connected=!1},a}},{key:"sendSignal",value:function(e,t){var r={action:"signal",peer_id:this.peerId,to_peer_id:e,data:t};this._send(r)}},{key:"_send",value:function(e){var t=this.engine.logger;this.connected?this._ws.send(e):(t.warn("signaler closed, msg is cached"),this.msgQueue.push(e))}},{key:"close",value:function(){this._ws.close(),this._ws=null}}]),t}(l.default);t.default=f,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:"",i=(0,d.handleTSUrl)(t,this.config.tsStrictMatched),a=c.Buffer.from(e),o=a.byteLength,s=new c.Buffer(o);a.copy(s);var u={sn:r,relurl:i,data:s,size:o,fromPeerId:n};this.addSeg(u),this.sn2Url.set(r,i)}},{key:"addBuffer",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=(0,d.handleTSUrl)(t,this.config.tsStrictMatched),a={sn:e,relurl:i,data:r,size:r.byteLength,fromPeerId:n};this.addSeg(a),this.sn2Url.set(e,i)}},{key:"addSeg",value:function(e){var t=this.engine.logger;for(t.info("push seg "+e.sn+" "+e.size),this._segPool.set(e.relurl,e),this._currBufSize+=parseInt(e.size),t.debug("seg.size "+e.size+" _currBufSize "+this._currBufSize+" maxBufSize "+this.config.maxBufSize);this._currBufSize>this.config.maxBufSize;){var r=[].concat(n(this._segPool.values())).shift();t.info("pop seg "+r.relurl+" at "+r.sn),this._segPool.delete(r.relurl),this.sn2Url.delete(r.sn),this._currBufSize-=parseInt(r.size),this.overflowed||(this.overflowed=!0),this.emit(c.Events.BM_LOST,r.sn)}}},{key:"getSegByURL",value:function(e){return this._segPool.get(e)}},{key:"getURLbySN",value:function(e){return this.sn2Url.get(e)}},{key:"clear",value:function(){this._segPool.clear(),this.sn2Url.clear(),this._currBufSize=0}},{key:"currBufSize",get:function(){return this._currBufSize}}]),t}(l.default);t.default=f,e.exports=t.default},function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(){}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var r=0;r "+e,this._uploadLog(e)}},{key:"_infoU",value:function(e){e="["+this.identifier+" info] > "+e,this._uploadLog(e)}},{key:"_warnU",value:function(e){e="["+this.identifier+" warn] > "+e,this._uploadLog(e)}},{key:"_errorU",value:function(e){e="["+this.identifier+" error] > "+e,this._uploadLog(e)}},{key:"_uploadLog",value:function(e){this.connected&&this._ws.send(e)}},{key:"_initWs",value:function(e){var t=this,r={maxRetries:this.config.wsMaxRetries,minReconnectionDelay:1e3*this.config.wsReconnectInterval},n=new s.default(this.config.logUploadAddr+"?info_hash="+window.encodeURIComponent(e),void 0,r);return n.onopen=function(){t.debug("Log websocket connection opened"),t.connected=!0},n.onclose=function(){t.warn("Log websocket closed"),t.connected=!1},n}}]),e}();t.default=d,e.exports=t.default},function(e,t,r){"use strict";function n(){return navigator.userAgent.toLowerCase()}function i(e){return""+(new RegExp(e+"(\\d+((\\.|_)\\d+)*)").exec(n())||[,0])[1]||void 0}function a(e){return parseFloat((e||"").replace(/\_/g,"."))||0}var o={getNetType:function(){return(new RegExp("nettype\\/(\\w*)").exec(n())||[,""])[1].toLowerCase()},getPlatform:function(){return o.isAndroid()?"android":o.isIOS()?"iOS":"PC"},isX5:function(){return this.isAndroid()&&/\s(TBS|X5Core)\/[\w\.\-]+/i.test(n())},isPC:function(){return!a(i("os "))&&!a(i("android[/ ]"))},isIOS:function(){return a(i("os "))},isAndroid:function(){return a(i("android[/ ]"))},isSafari:function(){return this.isIOS()&&/^((?!chrome|android).)*safari/i.test(n())}};e.exports=o},function(e,t,r){!function(t,r){e.exports=r()}(0,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=10)}([function(e,t,r){"use strict";function n(){}function i(e,t){return t="["+e+"] > "+t}function a(e){var t=d.console[e];return t?function(){for(var r=arguments.length,n=Array(r),a=0;a1?t-1:0),n=1;n0)return t.subarray(n,n+i)},e._readSize=function(e,t){var r=0;return r=(127&e[t])<<21,r|=(127&e[t+1])<<14,r|=(127&e[t+2])<<7,r|=127&e[t+3]},e.getTimeStamp=function(t){for(var r=e.getID3Frames(t),n=0;n1&&void 0!==arguments[1]&&arguments[1],r=e.length,n=void 0,i=void 0,a=void 0,o="",s=0;s>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(n);break;case 12:case 13:i=e[s++],o+=String.fromCharCode((31&n)<<6|63&i);break;case 14:i=e[s++],a=e[s++],o+=String.fromCharCode((15&n)<<12|(63&i)<<6|(63&a)<<0)}}return o},e}(),a=i._utf8ArrayToStr;t.a=i},function(e,t){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function i(e){return"number"==typeof e}function a(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}e.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!i(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,r,i,s,u,l;if(this._events||(this._events={}),"error"===e&&(!this._events.error||a(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(r=this._events[e],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),r.apply(this,s)}else if(a(r))for(s=Array.prototype.slice.call(arguments,1),l=r.slice(),i=l.length,u=0;u0&&this._events[e].length>i&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var r,i,o,s;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],o=r.length,i=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(a(r)){for(s=o;s-- >0;)if(r[s]===t||r[s].listener&&r[s].listener===t){i=s;break}if(i<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(i,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e){var t=e.byteLength,r=t&&new DataView(e).getUint8(t-1);return r?e.slice(0,t-r):e}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var u=function(){function e(t,r){n(this,e),this.subtle=t,this.aesIV=r}return e.prototype.decrypt=function(e,t){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e)},e}(),l=u,c=function(){function e(t,r){i(this,e),this.subtle=t,this.key=r}return e.prototype.expandKey=function(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])},e}(),d=c,f=function(){function e(){a(this,e),this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.initTable()}return e.prototype.uint8ArrayToUint32Array_=function(e){for(var t=new DataView(e),r=new Uint32Array(4),n=0;n<4;n++)r[n]=t.getUint32(4*n);return r},e.prototype.initTable=function(){var e=this.sBox,t=this.invSBox,r=this.subMix,n=r[0],i=r[1],a=r[2],o=r[3],s=this.invSubMix,u=s[0],l=s[1],c=s[2],d=s[3],f=new Uint32Array(256),h=0,p=0,g=0;for(g=0;g<256;g++)f[g]=g<128?g<<1:g<<1^283;for(g=0;g<256;g++){var v=p^p<<1^p<<2^p<<3^p<<4;v=v>>>8^255&v^99,e[h]=v,t[v]=h;var y=f[h],m=f[y],b=f[m],_=257*f[v]^16843008*v;n[h]=_<<24|_>>>8,i[h]=_<<16|_>>>16,a[h]=_<<8|_>>>24,o[h]=_,_=16843009*b^65537*m^257*y^16843008*h,u[v]=_<<24|_>>>8,l[v]=_<<16|_>>>16,c[v]=_<<8|_>>>24,d[v]=_,h?(h=y^f[f[f[b^y]]],p^=f[f[p]]):h=p=1}},e.prototype.expandKey=function(e){for(var t=this.uint8ArrayToUint32Array_(e),r=!0,n=0;n0},e.bin2str=function(e){return String.fromCharCode.apply(null,e)},e.readUint16=function(e,t){e.data&&(t+=e.start,e=e.data);var r=e[t]<<8|e[t+1];return r<0?65536+r:r},e.readUint32=function(e,t){e.data&&(t+=e.start,e=e.data);var r=e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3];return r<0?4294967296+r:r},e.writeUint32=function(e,t,r){e.data&&(t+=e.start,e=e.data),e[t]=r>>24,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r},e.findBox=function(t,r){var n=[],i=void 0,a=void 0,o=void 0,s=void 0,u=void 0,l=void 0,c=void 0;if(t.data?(l=t.start,s=t.end,t=t.data):(l=0,s=t.byteLength),!r.length)return null;for(i=l;i1?i+a:s,o===r[0]&&(1===r.length?n.push({data:t,start:i+8,end:c}):(u=e.findBox({data:t,start:i+8,end:c},r.slice(1)),u.length&&(n=n.concat(u)))),i=c;return n},e.parseSegmentIndex=function(t){var r=e.findBox(t,["moov"])[0],n=r?r.end:null,i=0,a=e.findBox(t,["sidx"]),o=void 0;if(!a||!a[0])return null;o=[],a=a[0];var s=a.data[0];i=0===s?8:16;var u=e.readUint32(a,i);i+=4;i+=0===s?8:16,i+=2;var l=a.end+0,c=e.readUint16(a,i);i+=2;for(var d=0;d>>31)return void console.warn("SIDX has hierarchical references (not supported)");var g=e.readUint32(a,f);f+=4,o.push({referenceSize:p,subsegmentDuration:g,info:{duration:g/u,start:l,end:l+p-1}}),l+=p,f+=4,i=f}return{earliestPresentationTime:0,timescale:u,version:s,referencesCount:c,references:o,moovEndOffset:n}},e.parseInitSegment=function(t){var r=[];return e.findBox(t,["moov","trak"]).forEach(function(t){var n=e.findBox(t,["tkhd"])[0];if(n){var a=n.data[n.start],o=0===a?12:20,s=e.readUint32(n,o),u=e.findBox(t,["mdia","mdhd"])[0];if(u){a=u.data[u.start],o=0===a?12:20;var l=e.readUint32(u,o),c=e.findBox(t,["mdia","hdlr"])[0];if(c){var d=e.bin2str(c.data.subarray(c.start+8,c.start+12)),f={soun:"audio",vide:"video"}[d];if(f){var h=e.findBox(t,["mdia","minf","stbl","stsd"]);if(h.length){h=h[0];var p=e.bin2str(h.data.subarray(h.start+12,h.start+16));i.b.log("MP4Demuxer:"+f+":"+p+" found")}r[s]={timescale:l,type:f},r[f]={timescale:l,id:s}}}}}}),r},e.getStartDTS=function(t,r){var n=void 0,i=void 0,a=void 0;return n=e.findBox(r,["moof","traf"]),i=[].concat.apply([],n.map(function(r){return e.findBox(r,["tfhd"]).map(function(n){var i=void 0,a=void 0;return i=e.readUint32(n,4),a=t[i].timescale||9e4,e.findBox(r,["tfdt"]).map(function(t){var r=void 0,n=void 0;return r=t.data[t.start],n=e.readUint32(t,4),1===r&&(n*=Math.pow(2,32),n+=e.readUint32(t,8)),n})[0]/a})})),a=Math.min.apply(null,i),isFinite(a)?a:0},e.offsetStartDTS=function(t,r,n){e.findBox(r,["moof","traf"]).map(function(r){return e.findBox(r,["tfhd"]).map(function(i){var a=e.readUint32(i,4),s=t[a].timescale||9e4;e.findBox(r,["tfdt"]).map(function(t){var r=t.data[t.start],i=e.readUint32(t,4);if(0===r)e.writeUint32(t,4,i-n*s);else{i*=Math.pow(2,32),i+=e.readUint32(t,8),i-=n*s,i=Math.max(i,0);var a=Math.floor(i/(o+1)),u=Math.floor(i%(o+1));e.writeUint32(t,4,a),e.writeUint32(t,8,u)}})})})},e.prototype.append=function(t,r,n,i){var o=this.initData;o||(this.resetInitSegment(t,this.audioCodec,this.videoCodec,!1),o=this.initData);var s=void 0,u=this.initPTS;if(void 0===u){var l=e.getStartDTS(o,t);this.initPTS=u=l-r,this.observer.trigger(a.a.INIT_PTS_FOUND,{initPTS:u})}e.offsetStartDTS(o,t,u),s=e.getStartDTS(o,t),this.remuxer.remux(o.audio,o.video,null,null,s,n,i,t)},e.prototype.destroy=function(){},e}();t.a=s},function(e,t,r){"use strict";function n(e,t,r,n){var i=void 0,a=void 0,o=void 0,s=void 0,u=void 0,l=navigator.userAgent.toLowerCase(),c=n,d=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];return i=1+((192&t[r+2])>>>6),(a=(60&t[r+2])>>>2)>d.length-1?void e.trigger(T.a.ERROR,{type:S.b.MEDIA_ERROR,details:S.a.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+a}):(s=(1&t[r+2])<<2,s|=(192&t[r+3])>>>6,A.b.log("manifest codec:"+n+",ADTS data:type:"+i+",sampleingIndex:"+a+"["+d[a]+"Hz],channelConfig:"+s),/firefox/i.test(l)?a>=6?(i=5,u=new Array(4),o=a-3):(i=2,u=new Array(2),o=a):-1!==l.indexOf("android")?(i=2,u=new Array(2),o=a):(i=5,u=new Array(4),n&&(-1!==n.indexOf("mp4a.40.29")||-1!==n.indexOf("mp4a.40.5"))||!n&&a>=6?o=a-3:((n&&-1!==n.indexOf("mp4a.40.2")&&(a>=6&&1===s||/vivaldi/i.test(l))||!n&&1===s)&&(i=2,u=new Array(2)),o=a)),u[0]=i<<3,u[0]|=(14&a)>>1,u[1]|=(1&a)<<7,u[1]|=s<<3,5===i&&(u[1]|=(14&o)>>1,u[2]=(1&o)<<7,u[2]|=8,u[3]=0),{config:u,samplerate:d[a],channelCount:s,codec:"mp4a.40."+i,manifestCodec:c})}function i(e,t){return 255===e[t]&&240==(246&e[t+1])}function a(e,t){return 1&e[t+1]?7:9}function o(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function s(e,t){return!!(t+10&&t+s+u<=c)return l=r+n*i,{headerLength:s,frameLength:u,stamp:l}}function f(e,t,r,n,i){var a=c(e.samplerate),o=d(t,r,n,i,a);if(o){var s=o.stamp,u=o.headerLength,l=o.frameLength,f={unit:t.subarray(r+u,r+u+l),pts:s,dts:s};return e.samples.push(f),e.len+=l,{sample:f,length:l+u}}}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function E(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function w(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var T=r(1),S=r(2),R=r(7),A=r(0),L=r(3),C=r(5),k=function(){function e(t,r,n){h(this,e),this.observer=t,this.config=n,this.remuxer=r}return e.prototype.resetInitSegment=function(e,t,r,n){this._audioTrack={container:"audio/adts",type:"audio",id:0,sequenceNumber:0,isAAC:!0,samples:[],len:0,manifestCodec:t,duration:n,inputTimeScale:9e4}},e.prototype.resetTimeStamp=function(){},e.probe=function(e){if(!e)return!1;for(var t=C.a.getID3Data(e,0)||[],r=t.length,n=e.length;rt.length)){var a=this.parseHeader(t,r);if(a&&r+a.frameLength<=t.length){var o=9e4*a.samplesPerFrame/a.sampleRate,s=n+i*o,u={unit:t.subarray(r,r+a.frameLength),pts:s,dts:s};return e.config=[],e.channelCount=a.channelCount,e.samplerate=a.sampleRate,e.samples.push(u),e.len+=a.frameLength,{sample:u,length:a.frameLength}}}},parseHeader:function(e,t){var r=e[t+1]>>3&3,n=e[t+1]>>1&3,i=e[t+2]>>4&15,a=e[t+2]>>2&3,o=e[t+2]>>1&1;if(1!==r&&0!==i&&15!==i&&3!==a){var s=3===r?3-n:3===n?3:4,u=1e3*P.BitratesMap[14*s+i-1],l=3===r?0:2===r?1:2,c=P.SamplingRateMap[3*l+a],d=e[t+3]>>6==3?1:2,f=P.SamplesCoefficients[r][n],h=P.BytesInSlot[n],p=8*f*h;return{sampleRate:c,channelCount:d,frameLength:parseInt(f*u/c+o,10)*h,samplesPerFrame:p}}},isHeaderPattern:function(e,t){return 255===e[t]&&224==(224&e[t+1])&&0!=(6&e[t+1])},isHeader:function(e,t){return!!(t+1e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,t=e>>3,e-=t>>3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)},e.prototype.readBits=function(e){var t=Math.min(this.bitsAvailable,e),r=this.word>>>32-t;return e>32&&A.b.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0?this.word<<=t:this.bytesAvailable>0&&this.loadWord(),t=e-t,t>0&&this.bitsAvailable?r<>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},e.prototype.skipUEG=function(){this.skipBits(1+this.skipLZ())},e.prototype.skipEG=function(){this.skipBits(1+this.skipLZ())},e.prototype.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},e.prototype.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},e.prototype.readBoolean=function(){return 1===this.readBits(1)},e.prototype.readUByte=function(){return this.readBits(8)},e.prototype.readUShort=function(){return this.readBits(16)},e.prototype.readUInt=function(){return this.readBits(32)},e.prototype.skipScalingList=function(e){var t=8,r=8,n=void 0,i=void 0;for(n=0;n=e.length)return void r();if(!(e[t].unit.length<32)){var n=this.decrypter.isSync();if(this.decryptAacSample(e,t,r,n),!n)return}}},e.prototype.getAvcEncryptedData=function(e){for(var t=16*Math.floor((e.length-48)/160)+16,r=new Int8Array(t),n=0,i=32;i<=e.length-16;i+=160,n+=16)r.set(e.subarray(i,i+16),n);return r},e.prototype.getAvcDecryptedUnit=function(e,t){t=new Uint8Array(t);for(var r=0,n=32;n<=e.length-16;n+=160,r+=16)e.set(t.subarray(r,r+16),n);return e},e.prototype.decryptAvcSample=function(e,t,r,n,i,a){var o=this.discardEPB(i.data),s=this.getAvcEncryptedData(o),u=this;this.decryptBuffer(s.buffer,function(s){i.data=u.getAvcDecryptedUnit(o,s),a||u.decryptAvcSamples(e,t,r+1,n)})},e.prototype.decryptAvcSamples=function(e,t,r,n){for(;;t++,r=0){if(t>=e.length)return void n();for(var i=e[t].units;!(r>=i.length);r++){var a=i[r];if(!(a.length<=48||1!==a.type&&5!==a.type)){var o=this.decrypter.isSync();if(this.decryptAvcSample(e,t,r,n,a,o),!o)return}}}},e}(),N=F,U={video:1,audio:2,id3:3,text:4},B=function(){function e(t,r,n,i){v(this,e),this.observer=t,this.config=n,this.typeSupported=i,this.remuxer=r,this.sampleAes=null}return e.prototype.setDecryptData=function(e){null!=e&&null!=e.key&&"SAMPLE-AES"===e.method?this.sampleAes=new N(this.observer,this.config,e,this.discardEPB):this.sampleAes=null},e.probe=function(t){var r=e._syncOffset(t);return!(r<0)&&(r&&A.b.warn("MPEG2-TS detected but first sync word found @ offset "+r+", junk ahead ?"),!0)},e._syncOffset=function(e){for(var t=Math.min(1e3,e.length-564),r=0;r>4>1){if((l=a+5+t[a+4])===a+188)continue}else l=a+4;switch(u){case v:s&&(_&&(c=C(_))&&void 0!==c.pts&&k(c,!1),_={data:[],size:0}),_&&(_.data.push(t.subarray(l,a+188)),_.size+=a+188-l);break;case y:s&&(E&&(c=C(E))&&void 0!==c.pts&&(p.isAAC?D(c):I(c)),E={data:[],size:0}),E&&(E.data.push(t.subarray(l,a+188)),E.size+=a+188-l);break;case m:s&&(w&&(c=C(w))&&void 0!==c.pts&&P(c),w={data:[],size:0}),w&&(w.data.push(t.subarray(l,a+188)),w.size+=a+188-l);break;case 0:s&&(l+=t[l]+1),b=this._pmtId=R(t,l);break;case b:s&&(l+=t[l]+1);var x=L(t,l,!0===this.typeSupported.mpeg||!0===this.typeSupported.mp3,null!=this.sampleAes);v=x.avc,v>0&&(h.pid=v),y=x.audio,y>0&&(p.pid=y,p.isAAC=x.isAAC),m=x.id3,m>0&&(g.pid=m),d&&!f&&(A.b.log("reparse from beginning"),d=!1,a=O-188),f=this.pmtParsed=!0;break;case 17:case 8191:break;default:d=!0}}else this.observer.trigger(T.a.ERROR,{type:S.b.MEDIA_ERROR,details:S.a.FRAG_PARSING_ERROR,fatal:!1,reason:"TS packet did not start with 0x47"});_&&(c=C(_))&&void 0!==c.pts?(k(c,!0),h.pesData=null):h.pesData=_,E&&(c=C(E))&&void 0!==c.pts?(p.isAAC?D(c):I(c),p.pesData=null):(E&&E.size&&A.b.log("last AAC PES packet truncated,might overlap between fragments"),p.pesData=E),w&&(c=C(w))&&void 0!==c.pts?(P(c),g.pesData=null):g.pesData=w,null==this.sampleAes?this.remuxer.remux(p,h,g,this._txtTrack,r,n,i):this.decryptAndRemux(p,h,g,this._txtTrack,r,n,i)},e.prototype.decryptAndRemux=function(e,t,r,n,i,a,o){if(e.samples&&e.isAAC){var s=this;this.sampleAes.decryptAacSamples(e.samples,0,function(){s.decryptAndRemuxAvc(e,t,r,n,i,a,o)})}else this.decryptAndRemuxAvc(e,t,r,n,i,a,o)},e.prototype.decryptAndRemuxAvc=function(e,t,r,n,i,a,o){if(t.samples){var s=this;this.sampleAes.decryptAvcSamples(t.samples,0,0,function(){s.remuxer.remux(e,t,r,n,i,a,o)})}else this.remuxer.remux(e,t,r,n,i,a,o)},e.prototype.destroy=function(){this._initPTS=this._initDTS=void 0,this._duration=0},e.prototype._parsePAT=function(e,t){return(31&e[t+10])<<8|e[t+11]},e.prototype._parsePMT=function(e,t,r,n){var i=void 0,a=void 0,o=void 0,s=void 0,u={audio:-1,avc:-1,id3:-1,isAAC:!0};for(i=(15&e[t+1])<<8|e[t+2],a=t+3+i-4,o=(15&e[t+10])<<8|e[t+11],t+=12+o;t1;){var d=new Uint8Array(c[0].length+c[1].length);d.set(c[0]),d.set(c[1],c[0].length),c[0]=d,c.splice(1,1)}if(r=c[0],1===(r[0]<<16)+(r[1]<<8)+r[2]){if((i=(r[4]<<8)+r[5])&&i>e.size-6)return null;n=r[7],192&n&&(s=536870912*(14&r[9])+4194304*(255&r[10])+16384*(254&r[11])+128*(255&r[12])+(254&r[13])/2,s>4294967295&&(s-=8589934592),64&n?(u=536870912*(14&r[14])+4194304*(255&r[15])+16384*(254&r[16])+128*(255&r[17])+(254&r[18])/2,u>4294967295&&(u-=8589934592),s-u>54e5&&(A.b.warn(Math.round((s-u)/9e4)+"s delta between PTS and DTS, align them"),s=u)):u=s),a=r[8],l=a+9,e.size-=l,o=new Uint8Array(e.size);for(var f=0,h=c.length;fp){l-=p;continue}r=r.subarray(l),p-=l,l=0}o.set(r,t),t+=p}return i&&(i-=a+3),{data:o,pts:s,dts:u,len:i}}return null},e.prototype.pushAccesUnit=function(e,t){if(e.units.length&&e.frame){var r=t.samples,n=r.length;!this.config.forceKeyFrameOnDiscontinuity||!0===e.key||t.sps&&(n||this.contiguous)?(e.id=n,r.push(e)):t.dropped++}e.debug.length&&A.b.log(e.pts+"/"+e.dts+":"+e.debug)},e.prototype._parseAVCPES=function(e,t){var r=this,n=this._avcTrack,i=this._parseAVCNALu(e.data),a=void 0,o=this.avcSample,s=void 0,u=!1,l=void 0,c=this.pushAccesUnit.bind(this),d=function(e,t,r,n){return{key:e,pts:t,dts:r,units:[],debug:n}};e.data=null,o&&i.length&&!n.audFound&&(c(o,n),o=this.avcSample=d(!1,e.pts,e.dts,"")),i.forEach(function(t){switch(t.type){case 1:s=!0,o||(o=r.avcSample=d(!0,e.pts,e.dts,"")),o.frame=!0;var i=t.data;if(u&&i.length>4){var f=new M(i).readSliceType();2!==f&&4!==f&&7!==f&&9!==f||(o.key=!0)}break;case 5:s=!0,o||(o=r.avcSample=d(!0,e.pts,e.dts,"")),o.key=!0,o.frame=!0;break;case 6:s=!0,a=new M(r.discardEPB(t.data)),a.readUByte();for(var h=0,p=0,g=!1,v=0;!g&&a.bytesAvailable>1;){h=0;do{v=a.readUByte(),h+=v}while(255===v);p=0;do{v=a.readUByte(),p+=v}while(255===v);if(4===h&&0!==a.bytesAvailable){g=!0;if(181===a.readUByte()){if(49===a.readUShort()){if(1195456820===a.readUInt()){if(3===a.readUByte()){var y=a.readUByte(),m=a.readUByte(),b=31&y,_=[y,m];for(l=0;l0){if(t.pts>=e[r-1].pts)e.push(t);else for(var n=r-1;n>=0;n--)if(t.pts=0)l={data:e.subarray(d,t-o-1),type:f},u.push(l);else{var h=this._getLastNalUnit();if(h&&(s&&t<=4-s&&h.state&&(h.data=h.data.subarray(0,h.data.byteLength-s)),(i=t-o-1)>0)){var p=new Uint8Array(h.data.byteLength+i);p.set(h.data,0),p.set(e.subarray(0,i),h.data.byteLength),h.data=p}}t=0&&o>=0&&(l={data:e.subarray(d,r),type:f,state:o},u.push(l)),0===u.length){var g=this._getLastNalUnit();if(g){var v=new Uint8Array(g.data.byteLength+e.byteLength);v.set(g.data,0),v.set(e,g.data.byteLength),g.data=v}}return a.naluState=o,u},e.prototype.discardEPB=function(e){for(var t=e.byteLength,r=[],n=1,i=void 0,a=void 0;n1&&(A.b.log("AAC: align PTS for overlapping frames by "+Math.round((m-n)/90)),n=m)}for(;d>24&255,a[1]=r>>16&255,a[2]=r>>8&255,a[3]=255&r,a.set(e,4),n=0,r=8;n>24&255,t>>16&255,t>>8&255,255&t,n>>24,n>>16&255,n>>8&255,255&n,i>>24,i>>16&255,i>>8&255,255&i,85,196,0,0]))},e.mdia=function(t){return e.box(e.types.mdia,e.mdhd(t.timescale,t.duration),e.hdlr(t.type),e.minf(t))},e.mfhd=function(t){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))},e.minf=function(t){return"audio"===t.type?e.box(e.types.minf,e.box(e.types.smhd,e.SMHD),e.DINF,e.stbl(t)):e.box(e.types.minf,e.box(e.types.vmhd,e.VMHD),e.DINF,e.stbl(t))},e.moof=function(t,r,n){return e.box(e.types.moof,e.mfhd(t),e.traf(n,r))},e.moov=function(t){for(var r=t.length,n=[];r--;)n[r]=e.trak(t[r]);return e.box.apply(null,[e.types.moov,e.mvhd(t[0].timescale,t[0].duration)].concat(n).concat(e.mvex(t)))},e.mvex=function(t){for(var r=t.length,n=[];r--;)n[r]=e.trex(t[r]);return e.box.apply(null,[e.types.mvex].concat(n))},e.mvhd=function(t,r){r*=t;var n=Math.floor(r/(Y+1)),i=Math.floor(r%(Y+1)),a=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,n>>24,n>>16&255,n>>8&255,255&n,i>>24,i>>16&255,i>>8&255,255&i,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return e.box(e.types.mvhd,a)},e.sdtp=function(t){var r=t.samples||[],n=new Uint8Array(4+r.length),i=void 0,a=void 0;for(a=0;a>>8&255),r.push(255&o),r=r.concat(Array.prototype.slice.call(a));for(i=0;i>>8&255),n.push(255&o),n=n.concat(Array.prototype.slice.call(a));var s=e.box(e.types.avcC,new Uint8Array([1,r[3],r[4],r[5],255,224|t.sps.length].concat(r).concat([t.pps.length]).concat(n))),u=t.width,l=t.height,c=t.pixelRatio[0],d=t.pixelRatio[1];return e.box(e.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,u>>8&255,255&u,l>>8&255,255&l,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),s,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),e.box(e.types.pasp,new Uint8Array([c>>24,c>>16&255,c>>8&255,255&c,d>>24,d>>16&255,d>>8&255,255&d])))},e.esds=function(e){var t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))},e.mp4a=function(t){var r=t.samplerate;return e.box(e.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,r>>8&255,255&r,0,0]),e.box(e.types.esds,e.esds(t)))},e.mp3=function(t){var r=t.samplerate;return e.box(e.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,r>>8&255,255&r,0,0]))},e.stsd=function(t){return"audio"===t.type?t.isAAC||"mp3"!==t.codec?e.box(e.types.stsd,e.STSD,e.mp4a(t)):e.box(e.types.stsd,e.STSD,e.mp3(t)):e.box(e.types.stsd,e.STSD,e.avc1(t))},e.tkhd=function(t){var r=t.id,n=t.duration*t.timescale,i=t.width,a=t.height,o=Math.floor(n/(Y+1)),s=Math.floor(n%(Y+1));return e.box(e.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,r>>24&255,r>>16&255,r>>8&255,255&r,0,0,0,0,o>>24,o>>16&255,o>>8&255,255&o,s>>24,s>>16&255,s>>8&255,255&s,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,i>>8&255,255&i,0,0,a>>8&255,255&a,0,0]))},e.traf=function(t,r){var n=e.sdtp(t),i=t.id,a=Math.floor(r/(Y+1)),o=Math.floor(r%(Y+1));return e.box(e.types.traf,e.box(e.types.tfhd,new Uint8Array([0,0,0,0,i>>24,i>>16&255,i>>8&255,255&i])),e.box(e.types.tfdt,new Uint8Array([1,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,o>>24,o>>16&255,o>>8&255,255&o])),e.trun(t,n.length+16+20+8+16+8+8),n)},e.trak=function(t){return t.duration=t.duration||4294967295,e.box(e.types.trak,e.tkhd(t),e.mdia(t))},e.trex=function(t){var r=t.id;return e.box(e.types.trex,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},e.trun=function(t,r){var n=t.samples||[],i=n.length,a=12+16*i,o=new Uint8Array(a),s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,f=void 0;for(r+=8+a,o.set([0,0,15,1,i>>>24&255,i>>>16&255,i>>>8&255,255&i,r>>>24&255,r>>>16&255,r>>>8&255,255&r],0),s=0;s>>24&255,l>>>16&255,l>>>8&255,255&l,c>>>24&255,c>>>16&255,c>>>8&255,255&c,d.isLeading<<2|d.dependsOn,d.isDependedOn<<6|d.hasRedundancy<<4|d.paddingValue<<1|d.isNonSync,61440&d.degradPrio,15&d.degradPrio,f>>>24&255,f>>>16&255,f>>>8&255,255&f],12+16*s);return e.box(e.types.trun,o)},e.initSegment=function(t){e.types||e.init();var r=e.moov(t),n=void 0;return n=new Uint8Array(e.FTYP.byteLength+r.byteLength),n.set(e.FTYP),n.set(r,e.FTYP.byteLength),n},e}(),V=q,z=function(){function e(t,r,n,i){_(this,e),this.observer=t,this.config=r,this.typeSupported=n;var a=navigator.userAgent;this.isSafari=i&&i.indexOf("Apple")>-1&&a&&!a.match("CriOS"),this.ISGenerated=!1}return e.prototype.destroy=function(){},e.prototype.resetTimeStamp=function(e){this._initPTS=this._initDTS=e},e.prototype.resetInitSegment=function(){this.ISGenerated=!1},e.prototype.remux=function(e,t,r,n,i,a,o){if(this.ISGenerated||this.generateIS(e,t,i),this.ISGenerated){var s=e.samples.length,u=t.samples.length,l=i,c=i;if(s&&u){var d=(e.samples[0].dts-t.samples[0].dts)/t.inputTimeScale;l+=Math.max(0,d),c+=Math.max(0,-d)}if(s){e.timescale||(A.b.warn("regenerate InitSegment as audio detected"),this.generateIS(e,t,i));var f=this.remuxAudio(e,l,a,o);if(u){var h=void 0;f&&(h=f.endPTS-f.startPTS),t.timescale||(A.b.warn("regenerate InitSegment as video detected"),this.generateIS(e,t,i)),this.remuxVideo(t,c,a,h,o)}}else if(u){var p=this.remuxVideo(t,c,a,0,o);p&&e.codec&&this.remuxEmptyAudio(e,l,a,p)}}r.samples.length&&this.remuxID3(r,i),n.samples.length&&this.remuxText(n,i),this.observer.trigger(T.a.FRAG_PARSED)},e.prototype.generateIS=function(e,t,r){var n=this.observer,i=e.samples,a=t.samples,o=this.typeSupported,s="audio/mp4",u={},l={tracks:u},c=void 0===this._initPTS,d=void 0,f=void 0;if(c&&(d=f=1/0),e.config&&i.length&&(e.timescale=e.samplerate,A.b.log("audio sampling rate : "+e.samplerate),e.isAAC||(o.mpeg?(s="audio/mpeg",e.codec=""):o.mp3&&(e.codec="mp3")),u.audio={container:s,codec:e.codec,initSegment:!e.isAAC&&o.mpeg?new Uint8Array:V.initSegment([e]),metadata:{channelCount:e.channelCount}},c&&(d=f=i[0].pts-e.inputTimeScale*r)),t.sps&&t.pps&&a.length){var h=t.inputTimeScale;t.timescale=h,u.video={container:"video/mp4",codec:t.codec,initSegment:V.initSegment([t]),metadata:{width:t.width,height:t.height}},c&&(d=Math.min(d,a[0].pts-h*r),f=Math.min(f,a[0].dts-h*r),this.observer.trigger(T.a.INIT_PTS_FOUND,{initPTS:d}))}Object.keys(u).length?(n.trigger(T.a.FRAG_PARSING_INIT_SEGMENT,l),this.ISGenerated=!0,c&&(this._initPTS=d,this._initDTS=f)):n.trigger(T.a.ERROR,{type:S.b.MEDIA_ERROR,details:S.a.FRAG_PARSING_ERROR,fatal:!1,reason:"no audio/video samples found"})},e.prototype.remuxVideo=function(e,t,r,n,i){var a=8,o=e.timescale,s=void 0,u=void 0,l=void 0,c=void 0,d=void 0,f=void 0,h=void 0,p=e.samples,g=[],v=p.length,y=this._PTSNormalize,m=this._initDTS,b=this.nextAvcDts,_=this.isSafari;if(0!==v){_&&(r|=p.length&&b&&(i&&Math.abs(t-b/o)<.1||Math.abs(p[0].pts-b-m)1?A.b.log("AVC:"+L+" ms hole between fragments detected,filling it"):L<-1&&A.b.log("AVC:"+-L+" ms overlapping between fragments detected"),d=b,p[0].dts=d,c=Math.max(c-L,b),p[0].pts=c,A.b.log("Video/PTS/DTS adjusted: "+Math.round(c/90)+"/"+Math.round(d/90)+",delta:"+L+" ms")),d,R=p[p.length-1],h=Math.max(R.dts,0),f=Math.max(R.pts,0,h),_&&(s=Math.round((h-d)/(p.length-1)));for(var C=0,k=0,D=0;D0?U-1:U].dts;if(X.stretchShortVideoTrack){var J=X.maxBufferHole,$=Math.floor(J*o),Z=(n?c+n*o:this.nextAudioPts)-B.pts;Z>$?(s=Z-Q,s<0&&(s=Q),A.b.log("It is approximately "+Z/90+" ms to the next segment; using duration "+s/90+" ms for the last video frame.")):s=Q}else s=Q}K=Math.round(B.pts-B.dts)}g.push({size:j,duration:s,cts:K,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:B.key?2:1,isNonSync:B.key?0:1}})}this.nextAvcDts=h+s;var ee=e.dropped;if(e.len=0,e.nbNalu=0,e.dropped=0,g.length&&navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var te=g[0].flags;te.dependsOn=2,te.isNonSync=0}e.samples=g,l=V.moof(e.sequenceNumber++,d,e),e.samples=[];var re={data1:l,data2:u,startPTS:c/o,endPTS:(f+s)/o,startDTS:d/o,endDTS:this.nextAvcDts/o,type:"video",hasAudio:!1,hasVideo:!0,nb:g.length,dropped:ee};return this.observer.trigger(T.a.FRAG_PARSING_DATA,re),re}},e.prototype.remuxAudio=function(e,t,r,n){var i=e.inputTimeScale,a=e.timescale,o=i/a,s=e.isAAC?1024:1152,u=s*o,l=this._PTSNormalize,c=this._initDTS,d=!e.isAAC&&this.typeSupported.mpeg,f=void 0,h=void 0,p=void 0,g=void 0,v=void 0,y=void 0,m=void 0,b=e.samples,_=[],E=this.nextAudioPts;if(r|=b.length&&E&&(n&&Math.abs(t-E/i)<.1||Math.abs(b[0].pts-E-c)<20*u),b.forEach(function(e){e.pts=e.dts=l(e.pts-c,t*i)}),b=b.filter(function(e){return e.pts>=0}),0!==b.length){if(r||(E=n?t*i:b[0].pts),e.isAAC)for(var w=this.config.maxAudioFramesDrift,R=0,L=E;R=w*u&&I<1e4&&L){var P=Math.round(C/u);A.b.warn("Injecting "+P+" audio frame @ "+(L/i).toFixed(3)+"s due to "+Math.round(1e3*C/i)+" ms gap.");for(var O=0;O0&&G<1e4)j=Math.round((B-E)/u),A.b.log(G+" ms hole between AAC samples detected,filling it"),j>0&&(p=W.getSilentFrame(e.manifestCodec||e.codec,e.channelCount),p||(p=U.subarray()),e.len+=j*p.length);else if(G<-12){A.b.log("drop overlapping AAC sample, expected/parsed/delta:"+(E/i).toFixed(3)+"s/"+(B/i).toFixed(3)+"s/"+-G+"ms"),e.len-=U.byteLength;continue}B=E}if(y=B,!(e.len>0))return;var K=d?e.len:e.len+8;f=d?0:8;try{g=new Uint8Array(K)}catch(e){return void this.observer.trigger(T.a.ERROR,{type:S.b.MUX_ERROR,details:S.a.REMUX_ALLOC_ERROR,fatal:!1,bytes:K,reason:"fail allocating audio mdat "+K})}if(!d){new DataView(g.buffer).setUint32(0,K),g.set(V.types.mdat,4)}for(var H=0;H=2&&(q=_[z-2].duration,h.duration=q),z){this.nextAudioPts=E=m+o*q,e.len=0,e.samples=_,v=d?new Uint8Array:V.moof(e.sequenceNumber++,y/o,e),e.samples=[];var X=y/i,Q=E/i,J={data1:v,data2:g,startPTS:X,endPTS:Q,startDTS:X,endDTS:Q,type:"audio",hasAudio:!0,hasVideo:!1,nb:z};return this.observer.trigger(T.a.FRAG_PARSING_DATA,J),J}return null}},e.prototype.remuxEmptyAudio=function(e,t,r,n){var i=e.inputTimeScale,a=e.samplerate?e.samplerate:i,o=i/a,s=this.nextAudioPts,u=(void 0!==s?s:n.startDTS*i)+this._initDTS,l=n.endDTS*i+this._initDTS,c=1024*o,d=Math.ceil((l-u)/c),f=W.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);if(A.b.warn("remux empty Audio"),!f)return void A.b.trace("Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec!");for(var h=[],p=0;p4294967296;)e+=r;return e},e}(),X=z,Q=function(){function e(t){E(this,e),this.observer=t}return e.prototype.destroy=function(){},e.prototype.resetTimeStamp=function(){},e.prototype.resetInitSegment=function(){},e.prototype.remux=function(e,t,r,n,i,a,o,s){var u=this.observer,l="";e&&(l+="audio"),t&&(l+="video"),u.trigger(T.a.FRAG_PARSING_DATA,{data1:s,startPTS:i,startDTS:i,type:l,hasAudio:!!e,hasVideo:!!t,nb:1,dropped:0}),u.trigger(T.a.FRAG_PARSED)},e}(),J=Q,$=Object(L.a)(),Z=$,ee=function(){function e(t,r,n,i){w(this,e),this.observer=t,this.typeSupported=r,this.config=n,this.vendor=i}return e.prototype.destroy=function(){var e=this.demuxer;e&&e.destroy()},e.prototype.push=function(e,t,r,n,i,a,o,s,u,l,c,d){if(e.byteLength>0&&null!=t&&null!=t.key&&"AES-128"===t.method){var f=this.decrypter;null==f&&(f=this.decrypter=new R.a(this.observer,this.config));var h=this,p=void 0;try{p=Z.now()}catch(e){p=Date.now()}f.decrypt(e,t.key.buffer,t.iv.buffer,function(e){var f=void 0;try{f=Z.now()}catch(e){f=Date.now()}h.observer.trigger(T.a.FRAG_DECRYPTED,{stats:{tstart:p,tdecrypt:f}}),h.pushDecrypted(new Uint8Array(e),t,new Uint8Array(r),n,i,a,o,s,u,l,c,d)})}else this.pushDecrypted(new Uint8Array(e),t,new Uint8Array(r),n,i,a,o,s,u,l,c,d)},e.prototype.pushDecrypted=function(e,t,r,n,i,a,o,s,u,l,c,d){var f=this.demuxer;if(!f||(o||s)&&!this.probe(e)){for(var h=this.observer,p=this.typeSupported,g=this.config,v=[{demux:G,remux:X},{demux:I.a,remux:J},{demux:D,remux:X},{demux:K,remux:X}],y=0,m=v.length;yt?n.start+n.duration:Math.max(n.start-i.duration,0):r>t?(n.duration=a-n.start,n.duration<0&&Je.b.warn("negative duration computed for frag "+n.sn+",level "+n.level+", there should be some duration drift between playlist and fragment!")):(i.duration=n.start-a,i.duration<0&&Je.b.warn("negative duration computed for frag "+i.sn+",level "+i.level+", there should be some duration drift between playlist and fragment!"))}function L(e,t,r,n,i,a){var o=r;if(!isNaN(t.startPTS)){var s=Math.abs(t.startPTS-r);isNaN(t.deltaPTS)?t.deltaPTS=s:t.deltaPTS=Math.max(s,t.deltaPTS),o=Math.max(r,t.startPTS),r=Math.min(r,t.startPTS),n=Math.max(n,t.endPTS),i=Math.min(i,t.startDTS),a=Math.max(a,t.endDTS)}var u=r-t.start;t.start=t.startPTS=r,t.maxStartPTS=o,t.endPTS=n,t.startDTS=i,t.endDTS=a,t.duration=n-r;var l=t.sn;if(!e||le.endSN)return 0;var c=void 0,d=void 0,f=void 0;for(c=l-e.startSN,d=e.fragments,d[c]=t,f=c;f>0;f--)A(d,f,f-1);for(f=c;f=0&&it?-1:0})}function I(e,t,r){var n=!1;return t&&t.details&&r&&(r.endCC>r.startCC||e&&e.cc0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments[2],n=0;if(r.programDateTime){var i=Date.parse(r.programDateTime);isNaN(i)||(n=1e3*t+i-1e3*e)}return n}function B(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!Array.isArray(e)||!e.length||null===t)return null;if(t=e[e.length-1].endPdt)return null;for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=void 0,o=e?t[e.sn-t[0].sn+1]:null;return rn-i&&(i=0),a=o&&!j(r,i,o)?o:Mt.search(t,j.bind(null,r,i))),a}function j(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments[2],n=Math.min(t,r.duration+(r.deltaPTS?r.deltaPTS:0));return r.start+r.duration-n<=e?1:r.start-n>e&&r.start?-1:0}function K(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function H(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function W(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function Y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function q(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function V(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function z(e,t){var r=null;try{r=new window.Event("addtrack")}catch(e){r=document.createEvent("Event"),r.initEvent("addtrack",!1,!1)}r.track=e,t.dispatchEvent(r)}function X(e){if(e&&e.cues)for(;e.cues.length>0;)e.removeCue(e.cues[0])}function Q(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function J(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function $(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function Z(){var e=T(),t=window.SourceBuffer||window.WebKitSourceBuffer,r=e&&"function"==typeof e.isTypeSupported&&e.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),n=!t||t.prototype&&"function"==typeof t.prototype.appendBuffer&&"function"==typeof t.prototype.remove;return!!r&&!!n}function ee(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function te(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function re(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ne(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function ie(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function ae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function oe(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function se(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function ue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function le(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function ce(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function de(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function fe(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function he(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function pe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ge(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ve(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function ye(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function me(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function be(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _e(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function Ee(){this.window=window,this.state="INITIAL",this.buffer="",this.decoder=new Wr,this.regionList=[]}function we(e){function t(e,t,r,n){return 3600*(0|e)+60*(0|t)+(0|r)+(0|n)/1e3}var r=e.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return r?r[3]?t(r[1],r[2],r[3].replace(":",""),r[4]):r[1]>59?t(r[1],r[2],0,r[4]):t(0,r[1],r[2],r[4]):null}function Te(){this.values=Object.create(null)}function Se(e,t,r,n){var i=n?e.split(n):[e];for(var a in i)if("string"==typeof i[a]){var o=i[a].split(r);if(2===o.length){var s=o[0],u=o[1];t(s,u)}}}function Re(e,t,r){function n(){var t=we(e);if(null===t)throw new Error("Malformed timestamp: "+a);return e=e.replace(/^[^\sa-zA-Z-]+/,""),t}function i(){e=e.replace(/^\s+/,"")}var a=e;if(i(),t.startTime=n(),i(),"--\x3e"!==e.substr(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+a);e=e.substr(3),i(),t.endTime=n(),i(),function(e,t){var n=new Te;Se(e,function(e,t){switch(e){case"region":for(var i=r.length-1;i>=0;i--)if(r[i].id===t){n.set(e,r[i].region);break}break;case"vertical":n.alt(e,t,["rl","lr"]);break;case"line":var a=t.split(","),o=a[0];n.integer(e,o),n.percent(e,o)&&n.set("snapToLines",!1),n.alt(e,o,["auto"]),2===a.length&&n.alt("lineAlign",a[1],["start",qr,"end"]);break;case"position":a=t.split(","),n.percent(e,a[0]),2===a.length&&n.alt("positionAlign",a[1],["start",qr,"end","line-left","line-right","auto"]);break;case"size":n.percent(e,t);break;case"align":n.alt(e,t,["start",qr,"end","left","right"])}},/:/,/\s/),t.region=n.get("region",null),t.vertical=n.get("vertical","");var i=n.get("line","auto");"auto"===i&&-1===Yr.line&&(i=-1),t.line=i,t.lineAlign=n.get("lineAlign","start"),t.snapToLines=n.get("snapToLines",!0),t.size=n.get("size",100),t.align=n.get("align",qr);var a=n.get("position","auto");"auto"===a&&50===Yr.position&&(a="start"===t.align||"left"===t.align?0:"end"===t.align||"right"===t.align?100:50),t.position=a}(e,t)}function Ae(e){return e.replace(//gi,"\n")}function Le(e,t,r,n){for(var i=void 0,a=void 0,o=void 0,s=void 0,u=void 0,l=window.VTTCue||window.TextTrackCue,c=0;c=16?s--:s++,navigator.userAgent.match(/Firefox\//)?a.line=c+1:a.line=c>7?c-2:c+1,a.align="left",a.position=Math.max(0,Math.min(100,s/32*100+(navigator.userAgent.match(/Firefox\//)?50:0))),e.addCue(a)}}function Ce(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ke(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function De(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ie(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function Pe(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function Oe(e,t){return e&&e.label===t.name&&!(e.textTrack1||e.textTrack2)}function xe(e,t,r,n){return Math.min(t,n)-Math.max(e,r)}function Me(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fe(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function Ne(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function Ue(e){for(var t=[],r=0;r1?r-1:0),a=1;a>8*(15-r)&255;return t},e.prototype.fragmentDecryptdataFromLevelkey=function(e,t){var r=e;return e&&e.method&&e.uri&&!e.iv&&(r=new at,r.method=e.method,r.baseuri=e.baseuri,r.reluri=e.reluri,r.iv=this.createInitializationVector(t)),r},ot(e,[{key:"url",get:function(){return!this._url&&this.relurl&&(this._url=ze.a.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url},set:function(e){this._url=e}},{key:"programDateTime",get:function(){return!this._programDateTime&&this.rawProgramDateTime&&(this._programDateTime=new Date(Date.parse(this.rawProgramDateTime))),this._programDateTime}},{key:"byteRange",get:function(){if(!this._byteRange&&!this.rawByteRange)return[];if(this._byteRange)return this._byteRange;var e=[];if(this.rawByteRange){var t=this.rawByteRange.split("@",2);if(1===t.length){var r=this.lastByteRangeEndOffset;e[0]=r||0}else e[0]=parseInt(t[1]);e[1]=parseInt(t[0])+e[0],this._byteRange=e}return e}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"decryptdata",get:function(){return this._decryptdata||(this._decryptdata=this.fragmentDecryptdataFromLevelkey(this.levelkey,this.sn)),this._decryptdata}},{key:"encrypted",get:function(){return!(!this.decryptdata||null===this.decryptdata.uri||null!==this.decryptdata.key)}}],[{key:"ElementaryStreamTypes",get:function(){return{AUDIO:"audio",VIDEO:"video"}}}]),e}(),ut=st,lt=/^(\d+)x(\d+)$/,ct=/\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g,dt=function(){function e(t){o(this,e),"string"==typeof t&&(t=e.parseAttrList(t));for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r])}return e.prototype.decimalInteger=function(e){var t=parseInt(this[e],10);return t>Number.MAX_SAFE_INTEGER?1/0:t},e.prototype.hexadecimalInteger=function(e){if(this[e]){var t=(this[e]||"0x").slice(2);t=(1&t.length?"0":"")+t;for(var r=new Uint8Array(t.length/2),n=0;nNumber.MAX_SAFE_INTEGER?1/0:t},e.prototype.decimalFloatingPoint=function(e){return parseFloat(this[e])},e.prototype.enumeratedString=function(e){return this[e]},e.prototype.decimalResolution=function(e){var t=lt.exec(this[e]);if(null!==t)return{width:parseInt(t[1],10),height:parseInt(t[2],10)}},e.parseAttrList=function(e){var t=void 0,r={};for(ct.lastIndex=0;null!==(t=ct.exec(e));){var n=t[2];0===n.indexOf('"')&&n.lastIndexOf('"')===n.length-1&&(n=n.slice(1,-1)),r[t[1]]=n}return r},e}(),ft=dt,ht={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,drac:!0,dvav:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0}},pt=/#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g,gt=/#EXT-X-MEDIA:(.*)/g,vt=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/|(?!#)(\S+)/.source,/|#EXT-X-BYTERANGE:*(.+)/.source,/|#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/|#.*/.source].join(""),"g"),yt=/(?:(?:#(EXTM3U))|(?:#EXT-X-(PLAYLIST-TYPE):(.+))|(?:#EXT-X-(MEDIA-SEQUENCE): *(\d+))|(?:#EXT-X-(TARGETDURATION): *(\d+))|(?:#EXT-X-(KEY):(.+))|(?:#EXT-X-(START):(.+))|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DISCONTINUITY-SEQ)UENCE:(\d+))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(VERSION):(\d+))|(?:#EXT-X-(MAP):(.+))|(?:(#)(.*):(.*))|(?:(#)(.*))(?:.*)\r?\n?/,mt=/\.(mp4|m4s|m4v|m4a)$/i,bt=function(){function e(){l(this,e)}return e.findGroup=function(e,t){if(!e)return null;for(var r=null,n=0;n2?(t=r.shift()+".",t+=parseInt(r.shift()).toString(16),t+=("000"+parseInt(r.shift()).toString(16)).substr(-4)):t=e,t},e.resolve=function(e,t){return ze.a.buildAbsoluteURL(t,e,{alwaysNormalize:!0})},e.parseMasterPlaylist=function(t,r){var n=[],i=void 0;for(pt.lastIndex=0;null!=(i=pt.exec(t));){var a={},o=a.attrs=new ft(i[1]);a.url=e.resolve(i[2],r);var u=o.decimalResolution("RESOLUTION");u&&(a.width=u.width,a.height=u.height),a.bitrate=o.decimalInteger("AVERAGE-BANDWIDTH")||o.decimalInteger("BANDWIDTH"),a.name=o.NAME,function(e,t){["video","audio"].forEach(function(r){var n=e.filter(function(e){return s(e,r)});if(n.length){var i=n.filter(function(e){return 0===e.lastIndexOf("avc1",0)||0===e.lastIndexOf("mp4a",0)});t[r+"Codec"]=i.length>0?i[0]:n[0],e=e.filter(function(e){return-1===n.indexOf(e)})}}),t.unknownCodecs=e}([].concat((o.CODECS||"").split(/[ ,]+/)),a),a.videoCodec&&-1!==a.videoCodec.indexOf("avc1")&&(a.videoCodec=e.convertAVC1ToAVCOTI(a.videoCodec)),n.push(a)}return n},e.parseMasterPlaylistMedia=function(t,r,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=void 0,o=[],s=0;for(gt.lastIndex=0;null!==(a=gt.exec(t));){var u={},l=new ft(a[1]);if(l.TYPE===n){if(u.groupId=l["GROUP-ID"],u.name=l.NAME,u.type=n,u.default="YES"===l.DEFAULT,u.autoselect="YES"===l.AUTOSELECT,u.forced="YES"===l.FORCED,l.URI&&(u.url=e.resolve(l.URI,r)),u.lang=l.LANGUAGE,u.name||(u.name=u.lang),i.length){var c=e.findGroup(i,u.groupId);u.audioCodec=c?c.codec:i[0].codec}u.id=s++,o.push(u)}}return o},e.parseLevelPlaylist=function(e,t,r,n,i){var a=0,o=0,s={type:null,version:null,url:t,fragments:[],live:!0,startSN:0},u=new at,l=0,c=null,d=new ut,f=void 0,h=void 0;for(vt.lastIndex=0;null!==(f=vt.exec(e));){var p=f[1];if(p){d.duration=parseFloat(p);var g=(" "+f[2]).slice(1);d.title=g||null,d.tagList.push(g?["INF",p,g]:["INF",p])}else if(f[3]){if(!isNaN(d.duration)){var v=a++;d.type=n,d.start=o,d.levelkey=u,d.sn=v,d.level=r,d.cc=l,d.urlId=i,d.baseurl=t,d.relurl=(" "+f[3]).slice(1),s.programDateTime&&(c?d.rawProgramDateTime?d.pdt=Date.parse(d.rawProgramDateTime):d.pdt=c.pdt+1e3*c.duration:d.pdt=Date.parse(s.programDateTime),d.endPdt=d.pdt+1e3*d.duration),s.fragments.push(d),c=d,o+=d.duration,d=new ut}}else if(f[4]){if(d.rawByteRange=(" "+f[4]).slice(1),c){var y=c.byteRangeEndOffset;y&&(d.lastByteRangeEndOffset=y)}}else if(f[5])d.rawProgramDateTime=(" "+f[5]).slice(1),d.tagList.push(["PROGRAM-DATE-TIME",d.rawProgramDateTime]),void 0===s.programDateTime&&(s.programDateTime=new Date(new Date(Date.parse(f[5]))-1e3*o));else{for(f=f[0].match(yt),h=1;h=0&&(u.method=w,u.baseuri=t,u.reluri=T,u.key=null,u.iv=S));break;case"START":var R=m,A=new ft(R),L=A.decimalFloatingPoint("TIME-OFFSET");isNaN(L)||(s.startTimeOffset=L);break;case"MAP":var C=new ft(m);d.relurl=C.URI,d.rawByteRange=C.BYTERANGE,d.baseurl=t,d.level=r,d.type=n,d.sn="initSegment",s.initSegment=d,d=new ut;break;default:Je.b.warn("line parsed but not handled: "+f)}}}return d=c,d&&!d.relurl&&(s.fragments.pop(),o-=d.duration),s.totalduration=o,s.averagetargetduration=o/s.fragments.length,s.endSN=a-1,s.startCC=s.fragments[0]?s.fragments[0].cc:0,s.endCC=l,!s.initSegment&&s.fragments.length&&s.fragments.every(function(e){return mt.test(e.relurl)})&&(Je.b.warn("MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX"),d=new ut,d.relurl=s.fragments[0].relurl,d.baseurl=t,d.level=r,d.type=n,d.sn="initSegment",s.initSegment=d,s.needSidxRanges=!0),s},e}(),_t=bt,Et=function(){function e(e,t){for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:null;if(r.isSidxRequest)return this._handleSidxRequest(e,r),void this._handlePlaylistLoaded(e,t,r,n);this.resetInternalLoader(r.type);var i=e.data;if(t.tload=Tt.now(),0!==i.indexOf("#EXTM3U"))return void this._handleManifestParsingError(e,r,"no EXTM3U delimiter",n);i.indexOf("#EXTINF:")>0||i.indexOf("#EXT-X-TARGETDURATION:")>0?this._handleTrackOrLevelPlaylist(e,t,r,n):this._handleMasterPlaylist(e,t,r,n)},t.prototype.loaderror=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._handleNetworkError(t,r)},t.prototype.loadtimeout=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._handleNetworkError(t,r,!0)},t.prototype._handleMasterPlaylist=function(e,r,n,i){var a=this.hls,o=e.data,s=t.getResponseUrl(e,n),u=_t.parseMasterPlaylist(o,s);if(!u.length)return void this._handleManifestParsingError(e,n,"no level found in manifest",i);var l=u.map(function(e){return{id:e.attrs.AUDIO,codec:e.audioCodec}}),c=_t.parseMasterPlaylistMedia(o,s,"AUDIO",l),d=_t.parseMasterPlaylistMedia(o,s,"SUBTITLES");if(c.length){var f=!1;c.forEach(function(e){e.url||(f=!0)}),!1===f&&u[0].audioCodec&&!u[0].attrs.AUDIO&&(Je.b.log("audio codec signaled in quality level, but no embedded audio track signaled, create one"),c.unshift({type:"main",name:"main"}))}a.trigger(Qe.a.MANIFEST_LOADED,{levels:u,audioTracks:c,subtitles:d,url:s,stats:r,networkDetails:i})},t.prototype._handleTrackOrLevelPlaylist=function(e,r,n,i){var a=this.hls,o=n.id,s=n.level,u=n.type,l=t.getResponseUrl(e,n),c=isNaN(o)?0:o,d=isNaN(s)?c:s,f=t.mapContextToLevelType(n),h=_t.parseLevelPlaylist(e.data,l,d,f,c);if(h.tload=r.tload,u===St.MANIFEST){var p={url:l,details:h};a.trigger(Qe.a.MANIFEST_LOADED,{levels:[p],audioTracks:[],url:l,stats:r,networkDetails:i})}if(r.tparsed=Tt.now(),h.needSidxRanges){var g=h.initSegment.url;return void this.load(g,{isSidxRequest:!0,type:u,level:s,levelDetails:h,id:o,rangeStart:0,rangeEnd:2048,responseType:"arraybuffer"})}n.levelDetails=h,this._handlePlaylistLoaded(e,r,n,i)},t.prototype._handleSidxRequest=function(e,t){var r=rt.a.parseSegmentIndex(new Uint8Array(e.data));r.references.forEach(function(e,r){var n=e.info,i=t.levelDetails.fragments[r];0===i.byteRange.length&&(i.rawByteRange=String(1+n.end-n.start)+"@"+String(n.start))}),t.levelDetails.initSegment.rawByteRange=String(r.moovEndOffset)+"@0"},t.prototype._handleManifestParsingError=function(e,t,r,n){this.hls.trigger(Qe.a.ERROR,{type:Xe.b.NETWORK_ERROR,details:Xe.a.MANIFEST_PARSING_ERROR,fatal:!0,url:e.url,reason:r,networkDetails:n})},t.prototype._handleNetworkError=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];Je.b.info("A network error occured while loading a "+e.type+"-type playlist");var n=void 0,i=void 0,a=this.getInternalLoader(e);switch(e.type){case St.MANIFEST:n=r?Xe.a.MANIFEST_LOAD_TIMEOUT:Xe.a.MANIFEST_LOAD_ERROR,i=!0;break;case St.LEVEL:n=r?Xe.a.LEVEL_LOAD_TIMEOUT:Xe.a.LEVEL_LOAD_ERROR,i=!1;break;case St.AUDIO_TRACK:n=r?Xe.a.AUDIO_TRACK_LOAD_TIMEOUT:Xe.a.AUDIO_TRACK_LOAD_ERROR,i=!1;break;default:i=!1}a&&(a.abort(),this.resetInternalLoader(e.type)),this.hls.trigger(Qe.a.ERROR,{type:Xe.b.NETWORK_ERROR,details:n,fatal:i,url:a.url,loader:a,context:e,networkDetails:t})},t.prototype._handlePlaylistLoaded=function(e,r,n,i){var a=n.type,o=n.level,s=n.id,u=n.levelDetails;if(!u.targetduration)return void this._handleManifestParsingError(e,n,"invalid target duration",i);if(t.canHaveQualityLevels(n.type))this.hls.trigger(Qe.a.LEVEL_LOADED,{details:u,level:o||0,id:s||0,stats:r,networkDetails:i});else switch(a){case St.AUDIO_TRACK:this.hls.trigger(Qe.a.AUDIO_TRACK_LOADED,{details:u,id:s,stats:r,networkDetails:i});break;case St.SUBTITLE_TRACK:this.hls.trigger(Qe.a.SUBTITLE_TRACK_LOADED,{details:u,id:s,stats:r,networkDetails:i})}},Et(t,null,[{key:"ContextType",get:function(){return St}},{key:"LevelType",get:function(){return Rt}}]),t}(tt),Lt=At,Ct=function(e){function t(r){h(this,t);var n=p(this,e.call(this,r,Qe.a.FRAG_LOADING));return n.loaders={},n}return g(t,e),t.prototype.destroy=function(){var t=this.loaders;for(var r in t){var n=t[r];n&&n.destroy()}this.loaders={},e.prototype.destroy.call(this)},t.prototype.onFragLoading=function(e){var t=e.frag,r=t.type,n=this.loaders,i=this.hls.config,a=i.fLoader,o=i.loader;t.loaded=0;var s=n[r];s&&(Je.b.warn("abort previous fragment loader for type: "+r),s.abort()),s=n[r]=t.loader=i.fLoader?new a(i):new o(i);var u=void 0,l=void 0,c=void 0;u={url:t.url,frag:t,responseType:"arraybuffer",progressData:!1};var d=t.byteRangeStartOffset,f=t.byteRangeEndOffset;isNaN(d)||isNaN(f)||(u.rangeStart=d,u.rangeEnd=f),l={timeout:i.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:i.fragLoadingMaxRetryTimeout},c={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this),onProgress:this.loadprogress.bind(this)},s.load(u,l,c)},t.prototype.loadsuccess=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=e.data,a=r.frag;a.loader=void 0,this.loaders[a.type]=void 0,this.hls.trigger(Qe.a.FRAG_LOADED,{payload:i,frag:a,stats:t,networkDetails:n})},t.prototype.loaderror=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=t.loader;n&&n.abort(),this.loaders[t.type]=void 0,this.hls.trigger(Qe.a.ERROR,{type:Xe.b.NETWORK_ERROR,details:Xe.a.FRAG_LOAD_ERROR,fatal:!1,frag:t.frag,response:e,networkDetails:r})},t.prototype.loadtimeout=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=t.loader;n&&n.abort(),this.loaders[t.type]=void 0,this.hls.trigger(Qe.a.ERROR,{type:Xe.b.NETWORK_ERROR,details:Xe.a.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t.frag,networkDetails:r})},t.prototype.loadprogress=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=t.frag;i.loaded=e.loaded,this.hls.trigger(Qe.a.FRAG_LOAD_PROGRESS,{frag:i,stats:e,networkDetails:n})},t}(tt),kt=Ct,Dt=function(e){function t(r){v(this,t);var n=y(this,e.call(this,r,Qe.a.KEY_LOADING));return n.loaders={},n.decryptkey=null,n.decrypturl=null,n}return m(t,e),t.prototype.destroy=function(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy()}this.loaders={},tt.prototype.destroy.call(this)},t.prototype.onKeyLoading=function(e){var t=e.frag,r=t.type,n=this.loaders[r],i=t.decryptdata,a=i.uri;if(a!==this.decrypturl||null===this.decryptkey){var o=this.hls.config;n&&(Je.b.warn("abort previous key loader for type:"+r),n.abort()),t.loader=this.loaders[r]=new o.loader(o),this.decrypturl=a,this.decryptkey=null;var s=void 0,u=void 0,l=void 0;s={url:a,frag:t,responseType:"arraybuffer"},u={timeout:o.fragLoadingTimeOut,maxRetry:o.fragLoadingMaxRetry,retryDelay:o.fragLoadingRetryDelay,maxRetryDelay:o.fragLoadingMaxRetryTimeout},l={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},t.loader.load(s,u,l)}else this.decryptkey&&(i.key=this.decryptkey,this.hls.trigger(Qe.a.KEY_LOADED,{frag:t}))},t.prototype.loadsuccess=function(e,t,r){var n=r.frag;this.decryptkey=n.decryptdata.key=new Uint8Array(e.data),n.loader=void 0,this.loaders[n.type]=void 0,this.hls.trigger(Qe.a.KEY_LOADED,{frag:n})},t.prototype.loaderror=function(e,t){var r=t.frag,n=r.loader;n&&n.abort(),this.loaders[t.type]=void 0,this.hls.trigger(Qe.a.ERROR,{type:Xe.b.NETWORK_ERROR,details:Xe.a.KEY_LOAD_ERROR,fatal:!1,frag:r,response:e})},t.prototype.loadtimeout=function(e,t){var r=t.frag,n=r.loader;n&&n.abort(),this.loaders[t.type]=void 0,this.hls.trigger(Qe.a.ERROR,{type:Xe.b.NETWORK_ERROR,details:Xe.a.KEY_LOAD_TIMEOUT,fatal:!1,frag:r})},t}(tt),It=Dt,Pt={NOT_LOADED:"NOT_LOADED",APPENDING:"APPENDING",PARTIAL:"PARTIAL",OK:"OK"},Ot=function(e){function t(r){b(this,t);var n=_(this,e.call(this,r,Qe.a.BUFFER_APPENDED,Qe.a.FRAG_BUFFERED,Qe.a.FRAG_LOADED));return n.bufferPadding=.2,n.fragments=Object.create(null),n.timeRanges=Object.create(null),n.config=r.config,n}return E(t,e),t.prototype.destroy=function(){this.fragments=null,this.timeRanges=null,this.config=null,tt.prototype.destroy.call(this),e.prototype.destroy.call(this)},t.prototype.getBufferedFrag=function(e,t){var r=this.fragments,n=Object.keys(r).filter(function(n){var i=r[n];if(i.body.type!==t)return!1;if(!i.buffered)return!1;var a=i.body;return a.startPTS<=e&&e<=a.endPTS});if(0===n.length)return null;var i=n.pop();return r[i].body},t.prototype.detectEvictedFragments=function(e,t){var r=this,n=void 0,i=void 0;Object.keys(this.fragments).forEach(function(a){var o=r.fragments[a];if(!0===o.buffered){var s=o.range[e];if(s){n=s.time;for(var u=0;u=i&&t<=a){n.push({startPTS:Math.max(e,r.start(s)),endPTS:Math.min(t,r.end(s))});break}if(ei)n.push({startPTS:Math.max(e,r.start(s)),endPTS:Math.min(t,r.end(s))}),o=!0;else if(t<=i)break}return{time:n,partial:o}},t.prototype.getFragmentKey=function(e){return e.type+"_"+e.level+"_"+e.urlId+"_"+e.sn},t.prototype.getPartialFragment=function(e){var t=this,r=void 0,n=void 0,i=void 0,a=null,o=0;return Object.keys(this.fragments).forEach(function(s){var u=t.fragments[s];t.isPartial(u)&&(n=u.body.startPTS-t.bufferPadding,i=u.body.endPTS+t.bufferPadding,e>=n&&e<=i&&(r=Math.min(e-n,i-e),o<=r&&(a=u.body,o=r)))}),a},t.prototype.getState=function(e){var t=this.getFragmentKey(e),r=this.fragments[t],n=Pt.NOT_LOADED;return void 0!==r&&(n=r.buffered?!0===this.isPartial(r)?Pt.PARTIAL:Pt.OK:Pt.APPENDING),n},t.prototype.isPartial=function(e){return!0===e.buffered&&(void 0!==e.range.video&&!0===e.range.video.partial||void 0!==e.range.audio&&!0===e.range.audio.partial)},t.prototype.isTimeBuffered=function(e,t,r){for(var n=void 0,i=void 0,a=0;a=n&&t<=i)return!0;if(t<=n)return!1}return!1},t.prototype.onFragLoaded=function(e){var t=e.frag;if(!isNaN(t.sn)&&!t.bitrateTest){var r=this.getFragmentKey(t),n={body:t,range:Object.create(null),buffered:!1};this.fragments[r]=n}},t.prototype.onBufferAppended=function(e){var t=this;this.timeRanges=e.timeRanges,Object.keys(this.timeRanges).forEach(function(e){var r=t.timeRanges[e];t.detectEvictedFragments(e,r)})},t.prototype.onFragBuffered=function(e){this.detectPartialFragments(e.frag)},t.prototype.hasFragment=function(e){var t=this.getFragmentKey(e);return void 0!==this.fragments[t]},t.prototype.removeFragment=function(e){var t=this.getFragmentKey(e);delete this.fragments[t]},t.prototype.removeAllFragments=function(){this.fragments=Object.create(null)},t}(tt),xt={search:function(e,t){for(var r=0,n=e.length-1,i=null,a=null;r<=n;){i=(r+n)/2|0,a=e[i];var o=t(a);if(o>0)r=i+1;else{if(!(o<0))return a;n=i-1}}return null}},Mt=xt,Ft=function(){function e(){w(this,e)}return e.isBuffered=function(e,t){try{if(e)for(var r=e.buffered,n=0;n=r.start(n)&&t<=r.end(n))return!0}catch(e){}return!1},e.bufferInfo=function(e,t,r){try{if(e){var n=e.buffered,i=[],a=void 0;for(a=0;ac&&(n[l-1].end=e[u].end):n.push(e[u])}else n.push(e[u])}for(u=0,i=0,a=o=t;u=d&&t1?t-1:0),i=1;i1?t-1:0),i=1;i1?n-1:0),a=1;a1&&(this.clearNextTick(),this._tickTimer=setTimeout(this._boundTick,0)),this._tickCallCount=0)},t.prototype.doTick=function(){},t}(tt),Qt=Xt,Jt=function(){function e(e,t){for(var r=0;r0&&-1===e&&(Je.b.log("override startPosition with lastCurrentTime @"+t.toFixed(3)),e=t),this.state=$t.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}else this.forceStartLoad=!0,this.state=$t.STOPPED},t.prototype.stopLoad=function(){var e=this.fragCurrent;e&&(e.loader&&e.loader.abort(),this.fragmentTracker.removeFragment(e),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.clearInterval(),this.state=$t.STOPPED,this.forceStartLoad=!1},t.prototype.doTick=function(){switch(this.state){case $t.BUFFER_FLUSHING:this.fragLoadError=0;break;case $t.IDLE:this._doTickIdle();break;case $t.WAITING_LEVEL:var e=this.levels[this.level];e&&e.details&&(this.state=$t.IDLE);break;case $t.FRAG_LOADING_WAITING_RETRY:var t=window.performance.now(),r=this.retryDate;(!r||t>=r||this.media&&this.media.seeking)&&(Je.b.log("mediaController: retryDate reached, switch back to IDLE state"),this.state=$t.IDLE);break;case $t.ERROR:case $t.STOPPED:case $t.FRAG_LOADING:case $t.PARSING:case $t.PARSED:case $t.ENDED:}this._checkBuffer(),this._checkFragmentChanged()},t.prototype._doTickIdle=function(){var e=this.hls,t=e.config,r=this.media;if(void 0!==this.levelLastLoaded&&(r||!this.startFragRequested&&t.startFragPrefetch)){var n=void 0;n=this.loadedmetadata?r.currentTime:this.nextLoadPosition;var i=e.nextLoadLevel,a=this.levels[i];if(a){var o=a.bitrate,s=void 0;s=o?Math.max(8*t.maxBufferSize/o,t.maxBufferLength):t.maxBufferLength,s=Math.min(s,t.maxMaxBufferLength);var u=Ft.bufferInfo(this.mediaBuffer?this.mediaBuffer:r,n,t.maxBufferHole),l=u.len;if(!(l>=s)){Je.b.trace("buffer length of "+l.toFixed(3)+" is below max of "+s.toFixed(3)+". checking for more payload ..."),this.level=e.nextLoadLevel=i;var c=a.details;if(!c||c.live&&this.levelLastLoaded!==i)return void(this.state=$t.WAITING_LEVEL);var d=this.fragPrevious;if(!c.live&&d&&!d.backtracked&&d.sn===c.endSN&&!u.nextStart){if(Math.min(r.duration,d.start+d.duration)-Math.max(u.end,d.start)<=Math.max(.2,d.duration)){var f={};return this.altAudio&&(f.type="video"),this.hls.trigger(Qe.a.BUFFER_EOS,f),void(this.state=$t.ENDED)}}this._fetchPayloadOrEos(n,u,c)}}}},t.prototype._fetchPayloadOrEos=function(e,t,r){var n=this.fragPrevious,i=this.level,a=r.fragments,o=a.length;if(0!==o){var s=a[0].start,u=a[o-1].start+a[o-1].duration,l=t.end,c=void 0;if(r.initSegment&&!r.initSegment.data)c=r.initSegment;else if(r.live){var d=this.config.initialLiveManifestSize;if(od&&(u.currentTime=d),this.nextLoadPosition=d}if(e.PTSKnown&&t>n&&u&&u.readyState)return null;if(this.startFragRequested&&!e.PTSKnown){if(i)if(e.programDateTime)l=B(a,i.endPdt+1);else{var f=i.sn+1;if(f>=e.startSN&&f<=e.endSN){var h=a[f-e.startSN];i.cc===h.cc&&(l=h,Je.b.log("live playlist, switching playlist, load frag with next SN: "+l.sn))}l||(l=Mt.search(a,function(e){return i.cc-e.cc}))&&Je.b.log("live playlist, switching playlist, load frag with same CC: "+l.sn)}l||(l=a[Math.min(o-1,Math.round(o/2))],Je.b.log("live playlist, switching playlist, unknown, load middle frag : "+l.sn))}return l},t.prototype._findFragment=function(e,t,r,n,i,a,o){var s=this.hls.config,u=void 0,l=void 0;if(is.maxBufferHole&&t.dropped&&c?(u=f,Je.b.warn("SN just loaded, with large PTS gap between audio and video, maybe frag is not starting with a keyframe ? load previous one to try to overcome this")):(u=h,Je.b.log("SN just loaded, load next one: "+u.sn))}else u=null;else u.backtracked&&(h&&h.backtracked?(Je.b.warn("Already backtracked from fragment "+h.sn+", will not backtrack to fragment "+u.sn+". Loading fragment "+h.sn),u=h):(Je.b.warn("Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe"),u.dropped=0,f?(u=f,u.backtracked=!0):c&&(u=null)))}return u},t.prototype._loadKey=function(e){this.state=$t.KEY_LOADING,this.hls.trigger(Qe.a.KEY_LOADING,{frag:e})},t.prototype._loadFragment=function(e){var t=this.fragmentTracker.getState(e);this.fragCurrent=e,this.startFragRequested=!0,isNaN(e.sn)||e.bitrateTest||(this.nextLoadPosition=e.start+e.duration),e.backtracked||t===Pt.NOT_LOADED||t===Pt.PARTIAL?(e.autoLevel=this.hls.autoLevelEnabled,e.bitrateTest=this.bitrateTest,this.hls.trigger(Qe.a.FRAG_LOADING,{frag:e}),this.demuxer||(this.demuxer=new qt(this.hls,"main")),this.state=$t.FRAG_LOADING):t===Pt.APPENDING&&this._reduceMaxBufferLength(e.duration)&&this.fragmentTracker.removeFragment(e)},t.prototype.getBufferedFrag=function(e){return this.fragmentTracker.getBufferedFrag(e,Lt.LevelType.MAIN)},t.prototype.followingBufferedFrag=function(e){return e?this.getBufferedFrag(e.endPTS+.5):null},t.prototype._checkFragmentChanged=function(){var e=void 0,t=void 0,r=this.media;if(r&&r.readyState&&!1===r.seeking&&(t=r.currentTime,t>this.lastCurrentTime&&(this.lastCurrentTime=t),Ft.isBuffered(r,t)?e=this.getBufferedFrag(t):Ft.isBuffered(r,t+.1)&&(e=this.getBufferedFrag(t+.1)),e)){var n=e;if(n!==this.fragPlaying){this.hls.trigger(Qe.a.FRAG_CHANGED,{frag:n});var i=n.level;this.fragPlaying&&this.fragPlaying.level===i||this.hls.trigger(Qe.a.LEVEL_SWITCHED,{level:i}),this.fragPlaying=n}}},t.prototype.immediateLevelSwitch=function(){if(Je.b.log("immediateLevelSwitch"),!this.immediateSwitch){this.immediateSwitch=!0;var e=this.media,t=void 0;e?(t=e.paused,e.pause()):t=!0,this.previouslyPaused=t}var r=this.fragCurrent;r&&r.loader&&r.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},t.prototype.immediateLevelSwitchEnd=function(){var e=this.media;e&&e.buffered.length&&(this.immediateSwitch=!1,Ft.isBuffered(e,e.currentTime)&&(e.currentTime-=1e-4),this.previouslyPaused||e.play())},t.prototype.nextLevelSwitch=function(){var e=this.media;if(e&&e.readyState){var t=void 0,r=void 0,n=void 0;if(r=this.getBufferedFrag(e.currentTime),r&&r.startPTS>1&&this.flushMainBuffer(0,r.startPTS-1),e.paused)t=0;else{var i=this.hls.nextLoadLevel,a=this.levels[i],o=this.fragLastKbps;t=o&&this.fragCurrent?this.fragCurrent.duration*a.bitrate/(1e3*o)+1:0}if((n=this.getBufferedFrag(e.currentTime+t))&&(n=this.followingBufferedFrag(n))){var s=this.fragCurrent;s&&s.loader&&s.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(n.maxStartPTS,Number.POSITIVE_INFINITY)}}},t.prototype.flushMainBuffer=function(e,t){this.state=$t.BUFFER_FLUSHING;var r={startOffset:e,endOffset:t};this.altAudio&&(r.type="video"),this.hls.trigger(Qe.a.BUFFER_FLUSHING,r)},t.prototype.onMediaAttached=function(e){var t=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("seeked",this.onvseeked),t.addEventListener("ended",this.onvended);var r=this.config;this.levels&&r.autoStartLoad&&this.hls.startLoad(r.startPosition)},t.prototype.onMediaDetaching=function(){var e=this.media;e&&e.ended&&(Je.b.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var t=this.levels;t&&t.forEach(function(e){e.details&&e.details.fragments.forEach(function(e){e.backtracked=void 0})}),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("seeked",this.onvseeked),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()},t.prototype.onMediaSeeking=function(){var e=this.media,t=e?e.currentTime:void 0,r=this.config;isNaN(t)||Je.b.log("media seeking to "+t.toFixed(3));var n=this.mediaBuffer?this.mediaBuffer:e,i=Ft.bufferInfo(n,t,this.config.maxBufferHole);if(this.state===$t.FRAG_LOADING){var a=this.fragCurrent;if(0===i.len&&a){var o=r.maxFragLookUpTolerance,s=a.start-o,u=a.start+a.duration+o;tu?(a.loader&&(Je.b.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),a.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.state=$t.IDLE):Je.b.log("seeking outside of buffer but within currently loaded fragment range")}}else this.state===$t.ENDED&&(0===i.len&&(this.fragPrevious=0),this.state=$t.IDLE);e&&(this.lastCurrentTime=t),this.loadedmetadata||(this.nextLoadPosition=this.startPosition=t),this.tick()},t.prototype.onMediaSeeked=function(){var e=this.media,t=e?e.currentTime:void 0;isNaN(t)||Je.b.log("media seeked to "+t.toFixed(3)),this.tick()},t.prototype.onMediaEnded=function(){Je.b.log("media ended"),this.startPosition=this.lastCurrentTime=0},t.prototype.onManifestLoading=function(){Je.b.log("trigger BUFFER_RESET"),this.hls.trigger(Qe.a.BUFFER_RESET),this.fragmentTracker.removeAllFragments(),this.stalled=!1,this.startPosition=this.lastCurrentTime=0},t.prototype.onManifestParsed=function(e){var t=!1,r=!1,n=void 0;e.levels.forEach(function(e){(n=e.audioCodec)&&(-1!==n.indexOf("mp4a.40.2")&&(t=!0),-1!==n.indexOf("mp4a.40.5")&&(r=!0))}),this.audioCodecSwitch=t&&r,this.audioCodecSwitch&&Je.b.log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=e.levels,this.startFragRequested=!1;var i=this.config;(i.autoStartLoad||this.forceStartLoad)&&this.hls.startLoad(i.startPosition)},t.prototype.onLevelLoaded=function(e){var t=e.details,r=e.level,n=this.levels[this.levelLastLoaded],i=this.levels[r],a=t.totalduration,o=0;if(Je.b.log("level "+r+" loaded ["+t.startSN+","+t.endSN+"],duration:"+a),t.live){var s=i.details;s&&t.fragments.length>0?(C(s,t),o=t.fragments[0].start,this.liveSyncPosition=this.computeLivePosition(o,s),t.PTSKnown&&!isNaN(o)?Je.b.log("live playlist sliding:"+o.toFixed(3)):(Je.b.log("live playlist - outdated PTS, unknown sliding"),x(this.fragPrevious,n,t))):(Je.b.log("live playlist - first load, unknown sliding"),t.PTSKnown=!1,x(this.fragPrevious,n,t))}else t.PTSKnown=!1;if(i.details=t,this.levelLastLoaded=r,this.hls.trigger(Qe.a.LEVEL_UPDATED,{details:t,level:r}),!1===this.startFragRequested){if(-1===this.startPosition||-1===this.lastCurrentTime){var u=t.startTimeOffset;isNaN(u)?t.live?(this.startPosition=this.computeLivePosition(o,t),Je.b.log("configure startPosition to "+this.startPosition)):this.startPosition=0:(u<0&&(Je.b.log("negative start time offset "+u+", count from end of last fragment"),u=o+a+u),Je.b.log("start time offset found in playlist, adjust startPosition to "+u),this.startPosition=u),this.lastCurrentTime=this.startPosition}this.nextLoadPosition=this.startPosition}this.state===$t.WAITING_LEVEL&&(this.state=$t.IDLE),this.tick()},t.prototype.onKeyLoaded=function(){this.state===$t.KEY_LOADING&&(this.state=$t.IDLE,this.tick())},t.prototype.onFragLoaded=function(e){var t=this.fragCurrent,r=e.frag;if(this.state===$t.FRAG_LOADING&&t&&"main"===r.type&&r.level===t.level&&r.sn===t.sn){var n=e.stats,i=this.levels[t.level],a=i.details;if(Je.b.log("Loaded "+t.sn+" of ["+a.startSN+" ,"+a.endSN+"],level "+t.level),this.bitrateTest=!1,this.stats=n,!0===r.bitrateTest&&this.hls.nextLoadLevel)this.state=$t.IDLE,this.startFragRequested=!1,n.tparsed=n.tbuffered=window.performance.now(),this.hls.trigger(Qe.a.FRAG_BUFFERED,{stats:n,frag:t,id:"main"}),this.tick();else if("initSegment"===r.sn)this.state=$t.IDLE,n.tparsed=n.tbuffered=window.performance.now(),a.initSegment.data=e.payload,this.hls.trigger(Qe.a.FRAG_BUFFERED,{stats:n,frag:t,id:"main"}),this.tick();else{this.state=$t.PARSING;var o=a.totalduration,s=t.level,u=t.sn,l=this.config.defaultAudioCodec||i.audioCodec;this.audioCodecSwap&&(Je.b.log("swapping playlist audio codec"),void 0===l&&(l=this.lastAudioCodec),l&&(l=-1!==l.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5")),this.pendingBuffering=!0,this.appended=!1,Je.b.log("Parsing "+u+" of ["+a.startSN+" ,"+a.endSN+"],level "+s+", cc "+t.cc);var c=this.demuxer;c||(c=this.demuxer=new qt(this.hls,"main"));var d=this.media,f=d&&d.seeking,h=!f&&(a.PTSKnown||!a.live),p=a.initSegment?a.initSegment.data:[];c.push(e.payload,p,l,i.videoCodec,t,o,h,void 0)}}this.fragLoadError=0},t.prototype.onFragParsingInitSegment=function(e){var t=this.fragCurrent,r=e.frag;if(t&&"main"===e.id&&r.sn===t.sn&&r.level===t.level&&this.state===$t.PARSING){var n=e.tracks,i=void 0,a=void 0;if(n.audio&&this.altAudio&&delete n.audio,a=n.audio){var o=this.levels[this.level].audioCodec,s=navigator.userAgent.toLowerCase();o&&this.audioCodecSwap&&(Je.b.log("swapping playlist audio codec"),o=-1!==o.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),this.audioCodecSwitch&&1!==a.metadata.channelCount&&-1===s.indexOf("firefox")&&(o="mp4a.40.5"),-1!==s.indexOf("android")&&"audio/mpeg"!==a.container&&(o="mp4a.40.2",Je.b.log("Android: force audio codec to "+o)),a.levelCodec=o,a.id=e.id}a=n.video,a&&(a.levelCodec=this.levels[this.level].videoCodec,a.id=e.id),this.hls.trigger(Qe.a.BUFFER_CODECS,n);for(i in n){a=n[i],Je.b.log("main track:"+i+",container:"+a.container+",codecs[level/parsed]=["+a.levelCodec+"/"+a.codec+"]");var u=a.initSegment;u&&(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(Qe.a.BUFFER_APPENDING,{type:i,data:u,parent:"main",content:"initSegment"}))}this.tick()}},t.prototype.onFragParsingData=function(e){var t=this,r=this.fragCurrent,n=e.frag;if(r&&"main"===e.id&&n.sn===r.sn&&n.level===r.level&&("audio"!==e.type||!this.altAudio)&&this.state===$t.PARSING){var i=this.levels[this.level],a=r;if(isNaN(e.endPTS)&&(e.endPTS=e.startPTS+r.duration,e.endDTS=e.startDTS+r.duration),!0===e.hasAudio&&a.addElementaryStream(ut.ElementaryStreamTypes.AUDIO),!0===e.hasVideo&&a.addElementaryStream(ut.ElementaryStreamTypes.VIDEO),Je.b.log("Parsed "+e.type+",PTS:["+e.startPTS.toFixed(3)+","+e.endPTS.toFixed(3)+"],DTS:["+e.startDTS.toFixed(3)+"/"+e.endDTS.toFixed(3)+"],nb:"+e.nb+",dropped:"+(e.dropped||0)),"video"===e.type)if(a.dropped=e.dropped,a.dropped)if(a.backtracked)Je.b.warn("Already backtracked on this fragment, appending with the gap",a.sn);else{var o=i.details;if(!o||a.sn!==o.startSN)return Je.b.warn("missing video frame(s), backtracking fragment",a.sn),this.fragmentTracker.removeFragment(a),a.backtracked=!0,this.nextLoadPosition=e.startPTS,this.state=$t.IDLE,this.fragPrevious=a,void this.tick();Je.b.warn("missing video frame(s) on first frag, appending with gap",a.sn)}else a.backtracked=!1;var s=L(i.details,a,e.startPTS,e.endPTS,e.startDTS,e.endDTS),u=this.hls;u.trigger(Qe.a.LEVEL_PTS_UPDATED,{details:i.details,level:this.level,drift:s,type:e.type,start:e.startPTS,end:e.endPTS}),[e.data1,e.data2].forEach(function(r){r&&r.length&&t.state===$t.PARSING&&(t.appended=!0,t.pendingBuffering=!0,u.trigger(Qe.a.BUFFER_APPENDING,{type:e.type,data:r,parent:"main",content:"data"}))}),this.tick()}},t.prototype.onFragParsed=function(e){var t=this.fragCurrent,r=e.frag;t&&"main"===e.id&&r.sn===t.sn&&r.level===t.level&&this.state===$t.PARSING&&(this.stats.tparsed=window.performance.now(),this.state=$t.PARSED,this._checkAppendedParsed())},t.prototype.onAudioTrackSwitching=function(e){var t=!!e.url,r=e.id;if(!t){if(this.mediaBuffer!==this.media){Je.b.log("switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var n=this.fragCurrent;n.loader&&(Je.b.log("switching to main audio track, cancel main fragment load"),n.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=$t.IDLE}var i=this.hls;i.trigger(Qe.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),i.trigger(Qe.a.AUDIO_TRACK_SWITCHED,{id:r}),this.altAudio=!1}},t.prototype.onAudioTrackSwitched=function(e){var t=e.id,r=!!this.hls.audioTracks[t].url;if(r){var n=this.videoBuffer;n&&this.mediaBuffer!==n&&(Je.b.log("switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=n)}this.altAudio=r,this.tick()},t.prototype.onBufferCreated=function(e){var t=e.tracks,r=void 0,n=void 0,i=!1;for(var a in t){var o=t[a];"main"===o.id?(n=a,r=o,"video"===a&&(this.videoBuffer=t[a].buffer)):i=!0}i&&r?(Je.b.log("alternate track found, use "+n+".buffered to schedule main fragment loading"),this.mediaBuffer=r.buffer):this.mediaBuffer=this.media},t.prototype.onBufferAppended=function(e){if("main"===e.parent){var t=this.state;t!==$t.PARSING&&t!==$t.PARSED||(this.pendingBuffering=e.pending>0,this._checkAppendedParsed())}},t.prototype._checkAppendedParsed=function(){if(!(this.state!==$t.PARSED||this.appended&&this.pendingBuffering)){var e=this.fragCurrent;if(e){var t=this.mediaBuffer?this.mediaBuffer:this.media;Je.b.log("main buffered : "+zt.toString(t.buffered)),this.fragPrevious=e;var r=this.stats;r.tbuffered=window.performance.now(),this.fragLastKbps=Math.round(8*r.total/(r.tbuffered-r.tfirst)),this.hls.trigger(Qe.a.FRAG_BUFFERED,{stats:r,frag:e,id:"main"}),this.state=$t.IDLE}this.tick()}},t.prototype.onError=function(e){var t=e.frag||this.fragCurrent;if(!t||"main"===t.type){var r=!!this.media&&Ft.isBuffered(this.media,this.media.currentTime)&&Ft.isBuffered(this.media,this.media.currentTime+.5);switch(e.details){case Xe.a.FRAG_LOAD_ERROR:case Xe.a.FRAG_LOAD_TIMEOUT:case Xe.a.KEY_LOAD_ERROR:case Xe.a.KEY_LOAD_TIMEOUT:if(!e.fatal)if(this.fragLoadError+1<=this.config.fragLoadingMaxRetry){var n=Math.min(Math.pow(2,this.fragLoadError)*this.config.fragLoadingRetryDelay,this.config.fragLoadingMaxRetryTimeout);Je.b.warn("mediaController: frag loading failed, retry in "+n+" ms"),this.retryDate=window.performance.now()+n,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.fragLoadError++,this.state=$t.FRAG_LOADING_WAITING_RETRY}else Je.b.error("mediaController: "+e.details+" reaches max retry, redispatch as fatal ..."),e.fatal=!0,this.state=$t.ERROR;break;case Xe.a.LEVEL_LOAD_ERROR:case Xe.a.LEVEL_LOAD_TIMEOUT:this.state!==$t.ERROR&&(e.fatal?(this.state=$t.ERROR,Je.b.warn("streamController: "+e.details+",switch to "+this.state+" state ...")):e.levelRetry||this.state!==$t.WAITING_LEVEL||(this.state=$t.IDLE));break;case Xe.a.BUFFER_FULL_ERROR:"main"!==e.parent||this.state!==$t.PARSING&&this.state!==$t.PARSED||(r?(this._reduceMaxBufferLength(this.config.maxBufferLength),this.state=$t.IDLE):(Je.b.warn("buffer full error also media.currentTime is not buffered, flush everything"),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)))}}},t.prototype._reduceMaxBufferLength=function(e){var t=this.config;return t.maxMaxBufferLength>=e&&(t.maxMaxBufferLength/=2,Je.b.warn("main:reduce max buffer length to "+t.maxMaxBufferLength+"s"),!0)},t.prototype._checkBuffer=function(){var e=this.config,t=this.media;if(t&&0!==t.readyState){var r=t.currentTime,n=this.mediaBuffer?this.mediaBuffer:t,i=n.buffered;if(!this.loadedmetadata&&i.length)this.loadedmetadata=!0,this._seekToStartPos();else if(this.immediateSwitch)this.immediateLevelSwitchEnd();else{var a=!(t.paused&&t.readyState>1||t.ended||0===t.buffered.length),o=window.performance.now();if(r!==this.lastCurrentTime)this.stallReported&&(Je.b.warn("playback not stuck anymore @"+r+", after "+Math.round(o-this.stalled)+"ms"),this.stallReported=!1),this.stalled=null,this.nudgeRetry=0;else if(a){var s=o-this.stalled,u=Ft.bufferInfo(t,r,e.maxBufferHole);if(!this.stalled)return void(this.stalled=o);s>=1e3&&this._reportStall(u.len),this._tryFixBufferStall(u,s)}}}},t.prototype.onFragLoadEmergencyAborted=function(){this.state=$t.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tick()},t.prototype.onBufferFlushed=function(){var e=this.mediaBuffer?this.mediaBuffer:this.media;e&&this.fragmentTracker.detectEvictedFragments(ut.ElementaryStreamTypes.VIDEO,e.buffered),this.state=$t.IDLE,this.fragPrevious=null},t.prototype.swapAudioCodec=function(){this.audioCodecSwap=!this.audioCodecSwap},t.prototype.computeLivePosition=function(e,t){var r=void 0!==this.config.liveSyncDuration?this.config.liveSyncDuration:this.config.liveSyncDurationCount*t.targetduration;return e+Math.max(0,t.totalduration-r)},t.prototype._tryFixBufferStall=function(e,t){var r=this.config,n=this.media,i=n.currentTime,a=this.fragmentTracker.getPartialFragment(i);a&&this._trySkipBufferHole(a),e.len>.5&&t>1e3*r.highBufferWatchdogPeriod&&(this.stalled=null,this._tryNudgeBuffer())},t.prototype._reportStall=function(e){var t=this.hls,r=this.media;this.stallReported||(this.stallReported=!0,Je.b.warn("Playback stalling at @"+r.currentTime+" due to low buffer"),t.trigger(Qe.a.ERROR,{type:Xe.b.MEDIA_ERROR,details:Xe.a.BUFFER_STALLED_ERROR,fatal:!1,buffer:e}))},t.prototype._trySkipBufferHole=function(e){for(var t=this.hls,r=this.media,n=r.currentTime,i=0,a=0;a=i&&n"+e),this.hls.trigger(Qe.a.STREAM_STATE_TRANSITION,{previousState:t,nextState:e})}},get:function(){return this._state}},{key:"currentLevel",get:function(){var e=this.media;if(e){var t=this.getBufferedFrag(e.currentTime);if(t)return t.level}return-1}},{key:"nextBufferedFrag",get:function(){var e=this.media;return e?this.followingBufferedFrag(this.getBufferedFrag(e.currentTime)):null}},{key:"nextLevel",get:function(){var e=this.nextBufferedFrag;return e?e.level:-1}},{key:"liveSyncPosition",get:function(){return this._liveSyncPosition},set:function(e){this._liveSyncPosition=e}}]),t}(Qt),er=Zt,tr="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},rr=function(){function e(e,t){for(var r=0;r0){r=t[0].bitrate,t.sort(function(e,t){return e.bitrate-t.bitrate}),this._levels=t;for(var c=0;c0&&a})}else this.hls.trigger(Qe.a.ERROR,{type:Xe.b.MEDIA_ERROR,details:Xe.a.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:this.hls.url,reason:"no level with compatible codecs found in manifest"})},t.prototype.setLevelInternal=function(e){var t=this._levels,r=this.hls;if(e>=0&&e1&&s.loadError0){var t=this.currentLevelIndex,r=e.urlId,n=e.url[r];Je.b.log("Attempt loading level index "+t+" with URL-id "+r),this.hls.trigger(Qe.a.LEVEL_LOADING,{url:n,level:t,id:r})}}},rr(t,[{key:"levels",get:function(){return this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(e){var t=this._levels;t&&(e=Math.min(e,t.length-1),this.currentLevelIndex===e&&t[e].details||this.setLevelInternal(e))}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){if(void 0===this._startLevel){var e=this.hls.config.startLevel;return void 0!==e?e:this._firstLevel}return this._startLevel},set:function(e){this._startLevel=e}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}}]),t}(tt),or=ar,sr=r(5),ur=function(e){function t(r){Q(this,t);var n=J(this,e.call(this,r,Qe.a.MEDIA_ATTACHED,Qe.a.MEDIA_DETACHING,Qe.a.FRAG_PARSING_METADATA));return n.id3Track=void 0,n.media=void 0,n}return $(t,e),t.prototype.destroy=function(){tt.prototype.destroy.call(this)},t.prototype.onMediaAttached=function(e){this.media=e.media,this.media},t.prototype.onMediaDetaching=function(){X(this.id3Track),this.id3Track=void 0,this.media=void 0},t.prototype.getID3Track=function(e){for(var t=0;t=this.minWeight_},e.prototype.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},e.prototype.destroy=function(){},e}(),hr=fr,pr=function(){function e(e,t){for(var r=0;r500*r.duration/s){var u=e.levels,l=Math.max(1,a.bw?a.bw/8:1e3*a.loaded/o),c=u[r.level],d=c.realBitrate?Math.max(c.realBitrate,c.bitrate):c.bitrate,f=a.total?a.total:Math.max(a.loaded,Math.round(r.duration*d/8)),h=t.currentTime,p=(f-a.loaded)/l,g=(Ft.bufferInfo(t,h,e.config.maxBufferHole).end-h)/s;if(g<2*r.duration/s&&p>g){var v=void 0,y=void 0;for(y=r.level-1;y>i;y--){var m=u[y].realBitrate?Math.max(u[y].realBitrate,u[y].bitrate):u[y].bitrate;if((v=r.duration*m/(6.4*l))=n;l--){var c=u[l],d=c.details,f=d?d.totalduration/d.fragments.length:t,h=!!d&&d.live,p=void 0;p=l<=e?o*r:s*r;var g=u[l].realBitrate?Math.max(u[l].realBitrate,u[l].bitrate):u[l].bitrate,v=g*f/p;if(Je.b.trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "+l+"/"+Math.round(p)+"/"+g+"/"+f+"/"+a+"/"+v),p>g&&(!v||h&&!this.bitrateTestDelay||v=0)return f;Je.b.trace("rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering");var h=s?Math.min(s,n.maxStarvationDelay):n.maxStarvationDelay,p=n.abrBandWidthFactor,g=n.abrBandWidthUpFactor;if(0===d){var v=this.bitrateTestDelay;if(v){h=(s?Math.min(s,n.maxLoadingDelay):n.maxLoadingDelay)-v,Je.b.trace("bitrate test took "+Math.round(1e3*v)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*h)+" ms"),p=g=1}}return f=this._findBestLevel(o,s,c,i,t,d+h,p,g,r),Math.max(f,0)}}]),t}(tt),mr=yr,br=T(),_r=function(e){function t(r){ae(this,t);var n=oe(this,e.call(this,r,Qe.a.MEDIA_ATTACHING,Qe.a.MEDIA_DETACHING,Qe.a.MANIFEST_PARSED,Qe.a.BUFFER_RESET,Qe.a.BUFFER_APPENDING,Qe.a.BUFFER_CODECS,Qe.a.BUFFER_EOS,Qe.a.BUFFER_FLUSHING,Qe.a.LEVEL_PTS_UPDATED,Qe.a.LEVEL_UPDATED));return n._msDuration=null,n._levelDuration=null,n._live=null,n._objectUrl=null,n.onsbue=n.onSBUpdateEnd.bind(n),n.onsbe=n.onSBUpdateError.bind(n),n.pendingTracks={},n.tracks={},n}return se(t,e),t.prototype.destroy=function(){tt.prototype.destroy.call(this)},t.prototype.onLevelPtsUpdated=function(e){var t=e.type,r=this.tracks.audio;if("audio"===t&&r&&"audio/mpeg"===r.container){var n=this.sourceBuffer.audio;if(Math.abs(n.timestampOffset-e.start)>.1){var i=n.updating;try{n.abort()}catch(e){i=!0,Je.b.warn("can not abort audio buffer: "+e)}i?this.audioTimestampOffset=e.start:(Je.b.warn("change mpeg audio timestamp offset from "+n.timestampOffset+" to "+e.start),n.timestampOffset=e.start)}}},t.prototype.onManifestParsed=function(e){var t=e.audio,r=e.video||e.levels.length&&e.altAudio,n=0;e.altAudio&&(t||r)&&(n=(t?1:0)+(r?1:0),Je.b.log(n+" sourceBuffer(s) expected")),this.sourceBufferNb=n},t.prototype.onMediaAttaching=function(e){var t=this.media=e.media;if(t){var r=this.mediaSource=new br;this.onmso=this.onMediaSourceOpen.bind(this),this.onmse=this.onMediaSourceEnded.bind(this),this.onmsc=this.onMediaSourceClose.bind(this),r.addEventListener("sourceopen",this.onmso),r.addEventListener("sourceended",this.onmse),r.addEventListener("sourceclose",this.onmsc),t.src=window.URL.createObjectURL(r),this._objectUrl=t.src}},t.prototype.onMediaDetaching=function(){Je.b.log("media source detaching");var e=this.mediaSource;if(e){if("open"===e.readyState)try{e.endOfStream()}catch(e){Je.b.warn("onMediaDetaching:"+e.message+" while calling endOfStream")}e.removeEventListener("sourceopen",this.onmso),e.removeEventListener("sourceended",this.onmse),e.removeEventListener("sourceclose",this.onmsc),this.media&&(window.URL.revokeObjectURL(this._objectUrl),this.media.src===this._objectUrl?(this.media.removeAttribute("src"),this.media.load()):Je.b.warn("media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.pendingTracks={},this.tracks={},this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0}this.onmso=this.onmse=this.onmsc=null,this.hls.trigger(Qe.a.MEDIA_DETACHED)},t.prototype.onMediaSourceOpen=function(){Je.b.log("media source opened"),this.hls.trigger(Qe.a.MEDIA_ATTACHED,{media:this.media});var e=this.mediaSource;e&&e.removeEventListener("sourceopen",this.onmso),this.checkPendingTracks()},t.prototype.checkPendingTracks=function(){var e=this.pendingTracks,t=Object.keys(e).length;t&&(this.sourceBufferNb<=t||0===this.sourceBufferNb)&&(this.createSourceBuffers(e),this.pendingTracks={},this.doAppending())},t.prototype.onMediaSourceClose=function(){Je.b.log("media source closed")},t.prototype.onMediaSourceEnded=function(){Je.b.log("media source ended")},t.prototype.onSBUpdateEnd=function(){if(this.audioTimestampOffset){var e=this.sourceBuffer.audio;Je.b.warn("change mpeg audio timestamp offset from "+e.timestampOffset+" to "+this.audioTimestampOffset),e.timestampOffset=this.audioTimestampOffset,delete this.audioTimestampOffset}this._needsFlush&&this.doFlush(),this._needsEos&&this.checkEos(),this.appending=!1;var t=this.parent,r=this.segments.reduce(function(e,r){return r.parent===t?e+1:e},0),n={},i=this.sourceBuffer;for(var a in i)n[a]=i[a].buffered;this.hls.trigger(Qe.a.BUFFER_APPENDED,{parent:t,pending:r,timeRanges:n}),this._needsFlush||this.doAppending(),this.updateMediaElementDuration()},t.prototype.onSBUpdateError=function(e){Je.b.error("sourceBuffer error:",e),this.hls.trigger(Qe.a.ERROR,{type:Xe.b.MEDIA_ERROR,details:Xe.a.BUFFER_APPENDING_ERROR,fatal:!1})},t.prototype.onBufferReset=function(){var e=this.sourceBuffer;for(var t in e){var r=e[t];try{this.mediaSource.removeSourceBuffer(r),r.removeEventListener("updateend",this.onsbue),r.removeEventListener("error",this.onsbe)}catch(e){}}this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0},t.prototype.onBufferCodecs=function(e){if(0===Object.keys(this.sourceBuffer).length){for(var t in e)this.pendingTracks[t]=e[t];var r=this.mediaSource;r&&"open"===r.readyState&&this.checkPendingTracks()}},t.prototype.createSourceBuffers=function(e){var t=this.sourceBuffer,r=this.mediaSource;for(var n in e)if(!t[n]){var i=e[n],a=i.levelCodec||i.codec,o=i.container+";codecs="+a;Je.b.log("creating sourceBuffer("+o+")");try{var s=t[n]=r.addSourceBuffer(o);s.addEventListener("updateend",this.onsbue),s.addEventListener("error",this.onsbe),this.tracks[n]={codec:a,container:i.container},i.buffer=s}catch(e){Je.b.error("error while trying to add sourceBuffer:"+e.message),this.hls.trigger(Qe.a.ERROR,{type:Xe.b.MEDIA_ERROR,details:Xe.a.BUFFER_ADD_CODEC_ERROR,fatal:!1,err:e,mimeType:o})}}this.hls.trigger(Qe.a.BUFFER_CREATED,{tracks:e})},t.prototype.onBufferAppending=function(e){this._needsFlush||(this.segments?this.segments.push(e):this.segments=[e],this.doAppending())},t.prototype.onBufferAppendFail=function(e){Je.b.error("sourceBuffer error:",e.event),this.hls.trigger(Qe.a.ERROR,{type:Xe.b.MEDIA_ERROR,details:Xe.a.BUFFER_APPENDING_ERROR,fatal:!1})},t.prototype.onBufferEos=function(e){var t=this.sourceBuffer,r=e.type;for(var n in t)r&&n!==r||t[n].ended||(t[n].ended=!0,Je.b.log(n+" sourceBuffer now EOS"));this.checkEos()},t.prototype.checkEos=function(){var e=this.sourceBuffer,t=this.mediaSource;if(!t||"open"!==t.readyState)return void(this._needsEos=!1);for(var r in e){var n=e[r];if(!n.ended)return;if(n.updating)return void(this._needsEos=!0)}Je.b.log("all media data available, signal endOfStream() to MediaSource and stop loading fragment");try{t.endOfStream()}catch(e){Je.b.warn("exception while calling mediaSource.endOfStream()")}this._needsEos=!1},t.prototype.onBufferFlushing=function(e){this.flushRange.push({start:e.startOffset,end:e.endOffset,type:e.type}),this.flushBufferCounter=0,this.doFlush()},t.prototype.onLevelUpdated=function(e){var t=e.details;t.fragments.length>0&&(this._levelDuration=t.totalduration+t.fragments[0].start,this._live=t.live,this.updateMediaElementDuration())},t.prototype.updateMediaElementDuration=function(){var e=this.hls.config,t=void 0;if(null!==this._levelDuration&&this.media&&this.mediaSource&&this.sourceBuffer&&0!==this.media.readyState&&"open"===this.mediaSource.readyState){for(var r in this.sourceBuffer)if(!0===this.sourceBuffer[r].updating)return;t=this.media.duration,null===this._msDuration&&(this._msDuration=this.mediaSource.duration),!0===this._live&&!0===e.liveDurationInfinity?(Je.b.log("Media Source duration is set to Infinity"),this._msDuration=this.mediaSource.duration=1/0):(this._levelDuration>this._msDuration&&this._levelDuration>t||t===1/0||isNaN(t))&&(Je.b.log("Updating Media Source duration to "+this._levelDuration.toFixed(3)),this._msDuration=this.mediaSource.duration=this._levelDuration)}},t.prototype.doFlush=function(){for(;this.flushRange.length;){var e=this.flushRange[0];if(!this.flushBuffer(e.start,e.end,e.type))return void(this._needsFlush=!0);this.flushRange.shift(),this.flushBufferCounter=0}if(0===this.flushRange.length){this._needsFlush=!1;var t=0,r=this.sourceBuffer;try{for(var n in r)t+=r[n].buffered.length}catch(e){Je.b.error("error while accessing sourceBuffer.buffered")}this.appended=t,this.hls.trigger(Qe.a.BUFFER_FLUSHED)}},t.prototype.doAppending=function(){var e=this.hls,t=this.sourceBuffer,r=this.segments;if(Object.keys(t).length){if(this.media.error)return this.segments=[],void Je.b.error("trying to append although a media error occured, flush segment and abort");if(this.appending)return;if(r&&r.length){var n=r.shift();try{var i=n.type,a=t[i];a?a.updating?r.unshift(n):(a.ended=!1,this.parent=n.parent,a.appendBuffer(n.data),this.appendError=0,this.appended++,this.appending=!0):this.onSBUpdateEnd()}catch(t){Je.b.error("error while trying to append buffer:"+t.message),r.unshift(n);var o={type:Xe.b.MEDIA_ERROR,parent:n.parent};22!==t.code?(this.appendError?this.appendError++:this.appendError=1,o.details=Xe.a.BUFFER_APPEND_ERROR,this.appendError>e.config.appendErrorMaxRetry?(Je.b.log("fail "+e.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),r=[],o.fatal=!0,e.trigger(Qe.a.ERROR,o)):(o.fatal=!1,e.trigger(Qe.a.ERROR,o))):(this.segments=[],o.details=Xe.a.BUFFER_FULL_ERROR,o.fatal=!1,e.trigger(Qe.a.ERROR,o))}}}},t.prototype.flushBuffer=function(e,t,r){var n=void 0,i=void 0,a=void 0,o=void 0,s=void 0,u=void 0,l=this.sourceBuffer;if(Object.keys(l).length){if(Je.b.log("flushBuffer,pos/start/end: "+this.media.currentTime.toFixed(3)+"/"+e+"/"+t),this.flushBufferCounter.5)return this.flushBufferCounter++,Je.b.log("flush "+c+" ["+s+","+u+"], of ["+a+","+o+"], pos:"+this.media.currentTime),n.remove(s,u),!1}catch(e){Je.b.warn("exception while accessing sourcebuffer, it might have been removed from MediaSource")}}}else Je.b.warn("abort flushing too many retries");Je.b.log("buffer flushed")}return!0},t}(tt),Er=_r,wr=function(){function e(e,t){for(var r=0;rthis.autoLevelCapping&&t.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping}}},t.prototype.getMaxLevel=function(e){var r=this;if(!this.levels)return-1;var n=this.levels.filter(function(n,i){return t.isLevelAllowed(i,r.restrictedLevels)&&i<=e});return t.getMaxLevelByMediaSize(n,this.mediaWidth,this.mediaHeight)},t.prototype._startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),clearInterval(this.timer),this.timer=setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},t.prototype._stopCapping=function(){this.restrictedLevels=[],this.firstLevel=null,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(this.timer=clearInterval(this.timer),this.timer=null)},t.isLevelAllowed=function(e){return-1===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]).indexOf(e)},t.getMaxLevelByMediaSize=function(e,t,r){if(!e||e&&!e.length)return-1;for(var n=e.length-1,i=0;i=t||a.height>=r)&&function(e,t){return!t||(e.width!==t.width||e.height!==t.height)}(a,e[i+1])){n=i;break}}return n},wr(t,[{key:"mediaWidth",get:function(){var e=void 0,r=this.media;return r&&(e=r.width||r.clientWidth||r.offsetWidth,e*=t.contentScaleFactor),e}},{key:"mediaHeight",get:function(){var e=void 0,r=this.media;return r&&(e=r.height||r.clientHeight||r.offsetHeight,e*=t.contentScaleFactor),e}}],[{key:"contentScaleFactor",get:function(){var e=1;try{e=window.devicePixelRatio}catch(e){}return e}}]),t}(tt),Sr=Tr,Rr=window,Ar=Rr.performance,Lr=function(e){function t(r){return de(this,t),fe(this,e.call(this,r,Qe.a.MEDIA_ATTACHING))}return he(t,e),t.prototype.destroy=function(){this.timer&&clearInterval(this.timer),this.isVideoPlaybackQualityAvailable=!1},t.prototype.onMediaAttaching=function(e){var t=this.hls.config;if(t.capLevelOnFPSDrop){"function"==typeof(this.video=e.media instanceof window.HTMLVideoElement?e.media:null).getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),clearInterval(this.timer),this.timer=setInterval(this.checkFPSInterval.bind(this),t.fpsDroppedMonitoringPeriod)}},t.prototype.checkFPS=function(e,t,r){var n=Ar.now();if(t){if(this.lastTime){var i=n-this.lastTime,a=r-this.lastDroppedFrames,o=t-this.lastDecodedFrames,s=1e3*a/i,u=this.hls;if(u.trigger(Qe.a.FPS_DROP,{currentDropped:a,currentDecoded:o,totalDroppedFrames:r}),s>0&&a>u.config.fpsDroppedMonitoringThreshold*o){var l=u.currentLevel;Je.b.warn("drop FPS ratio greater than max allowed value for currentLevel: "+l),l>0&&(-1===u.autoLevelCapping||u.autoLevelCapping>=l)&&(l-=1,u.trigger(Qe.a.FPS_DROP_LEVEL_CAPPING,{level:l,droppedLevel:u.currentLevel}),u.autoLevelCapping=l,u.streamController.nextLevelSwitch())}}this.lastTime=n,this.lastDroppedFrames=r,this.lastDecodedFrames=t}},t.prototype.checkFPSInterval=function(){var e=this.video;if(e)if(this.isVideoPlaybackQualityAvailable){var t=e.getVideoPlaybackQuality();this.checkFPS(e,t.totalVideoFrames,t.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)},t}(tt),Cr=Lr,kr=window,Dr=kr.performance,Ir=kr.XMLHttpRequest,Pr=function(){function e(t){pe(this,e),t&&t.xhrSetup&&(this.xhrSetup=t.xhrSetup)}return e.prototype.destroy=function(){this.abort(),this.loader=null},e.prototype.abort=function(){var e=this.loader;e&&4!==e.readyState&&(this.stats.aborted=!0,e.abort()),window.clearTimeout(this.requestTimeout),this.requestTimeout=null,window.clearTimeout(this.retryTimeout),this.retryTimeout=null},e.prototype.load=function(e,t,r){this.context=e,this.config=t,this.callbacks=r,this.stats={trequest:Dr.now(),retry:0},this.retryDelay=t.retryDelay,this.loadInternal()},e.prototype.loadInternal=function(){var e=void 0,t=this.context;e=this.loader=new Ir;var r=this.stats;r.tfirst=0,r.loaded=0;var n=this.xhrSetup;try{if(n)try{n(e,t.url)}catch(r){e.open("GET",t.url,!0),n(e,t.url)}e.readyState||e.open("GET",t.url,!0)}catch(r){return void this.callbacks.onError({code:e.status,text:r.message},t,e)}t.rangeEnd&&e.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=t.responseType,this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),this.config.timeout),e.send()},e.prototype.readystatechange=function(e){var t=e.currentTarget,r=t.readyState,n=this.stats,i=this.context,a=this.config;if(!n.aborted&&r>=2)if(window.clearTimeout(this.requestTimeout),0===n.tfirst&&(n.tfirst=Math.max(Dr.now(),n.trequest)),4===r){var o=t.status;if(o>=200&&o<300){n.tload=Math.max(n.tfirst,Dr.now());var s=void 0,u=void 0;"arraybuffer"===i.responseType?(s=t.response,u=s.byteLength):(s=t.responseText,u=s.length),n.loaded=n.total=u;var l={url:t.responseURL,data:s};this.callbacks.onSuccess(l,n,i,t)}else n.retry>=a.maxRetry||o>=400&&o<499?(Je.b.error(o+" while loading "+i.url),this.callbacks.onError({code:o,text:t.statusText},i,t)):(Je.b.warn(o+" while loading "+i.url+", retrying in "+this.retryDelay+"..."),this.destroy(),this.retryTimeout=window.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,a.maxRetryDelay),n.retry++)}else this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),a.timeout)},e.prototype.loadtimeout=function(){Je.b.warn("timeout while loading "+this.context.url),this.callbacks.onTimeout(this.stats,this.context,null)},e.prototype.loadprogress=function(e){var t=e.currentTarget,r=this.stats;r.loaded=e.loaded,e.lengthComputable&&(r.total=e.total);var n=this.callbacks.onProgress;n&&n(r,this.context,null,t)},e}(),Or=Pr,xr=function(){function e(e,t){for(var r=0;r=this.tracks.length)return void Je.b.warn("Invalid audio track id:",e.id);if(Je.b.log("audioTrack "+e.id+" loaded"),this.tracks[e.id].details=e.details,e.details.live&&!this.hasInterval()){var t=1e3*e.details.targetduration;this.setInterval(t)}!e.details.live&&this.hasInterval()&&this.clearInterval()},t.prototype.onAudioTrackSwitched=function(e){var t=this.tracks[e.id].groupId;t&&this.audioGroupId!==t&&(this.audioGroupId=t)},t.prototype.onLevelLoaded=function(e){var t=this.hls.levels[e.level];if(t.audioGroupIds){var r=t.audioGroupIds[t.urlId];this.audioGroupId!==r&&(this.audioGroupId=r,this._selectInitialAudioTrack())}},t.prototype.onError=function(e){e.type===Xe.b.NETWORK_ERROR&&(e.fatal&&this.clearInterval(),e.details===Xe.a.AUDIO_TRACK_LOAD_ERROR&&(Je.b.warn("Network failure on audio-track id:",e.context.id),this._handleLoadError()))},t.prototype.doTick=function(){this._updateTrack(this.trackId)},t.prototype._selectInitialAudioTrack=function(){var e=this,t=this.tracks;if(t.length){var r=this.tracks[this.trackId],n=null;r&&(n=r.name);var i=t.filter(function(e){return e.default});i.length?t=i:Je.b.warn("No default audio tracks defined");var a=!1,o=function(){t.forEach(function(t){a||e.audioGroupId&&t.groupId!==e.audioGroupId||n&&n!==t.name||(e.audioTrack=t.id,a=!0)})};o(),a||(n=null,o()),a||(Je.b.error("No track found for running audio group-ID: "+this.audioGroupId),this.hls.trigger(Qe.a.ERROR,{type:Xe.b.MEDIA_ERROR,details:Xe.a.AUDIO_TRACK_LOAD_ERROR,fatal:!0}))}},t.prototype._needsTrackLoading=function(e){var t=e.details;return!t||(!!t.live||void 0)},t.prototype._loadTrackDetailsIfNeeded=function(e){if(this._needsTrackLoading(e)){var t=e.url,r=e.id;Je.b.log("loading audio-track playlist for id: "+r),this.hls.trigger(Qe.a.AUDIO_TRACK_LOADING,{url:t,id:r})}},t.prototype._updateTrack=function(e){if(!(e<0||e>=this.tracks.length)){this.clearInterval(),this.trackId=e,Je.b.log("trying to update audio-track "+e);var t=this.tracks[e];this._loadTrackDetailsIfNeeded(t)}},t.prototype._handleLoadError=function(){this.trackIdBlacklist[this.trackId]=!0;var e=this.trackId,t=this.tracks[e],r=t.name,n=t.language,i=t.groupId;Je.b.warn("Loading failed on audio track id: "+e+", group-id: "+i+', name/language: "'+r+'" / "'+n+'"');for(var a=e,o=0;o no-op");if(e<0||e>=this.tracks.length)return void Je.b.warn("Invalid id passed to audio-track controller");var t=this.tracks[e];Je.b.log("Now switching to audio-track index "+e),this.clearInterval(),this.trackId=e;var r=t.url,n=t.type,i=t.id;this.hls.trigger(Qe.a.AUDIO_TRACK_SWITCHING,{id:i,type:n,url:r}),this._loadTrackDetailsIfNeeded(t)}}]),t}(Qt),Fr=Mr,Nr=function(){function e(e,t){for(var r=0;r0&&-1===e?(Je.b.log("audio:override startPosition with lastCurrentTime @"+t.toFixed(3)),this.state=Gr.IDLE):(this.lastCurrentTime=this.startPosition?this.startPosition:e,this.state=Gr.STARTING),this.nextLoadPosition=this.startPosition=this.lastCurrentTime,this.tick()}else this.startPosition=e,this.state=Gr.STOPPED},t.prototype.stopLoad=function(){var e=this.fragCurrent;e&&(e.loader&&e.loader.abort(),this.fragmentTracker.removeFragment(e),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=Gr.STOPPED},t.prototype.doTick=function(){var e=void 0,t=void 0,r=void 0,n=this.hls,i=n.config;switch(this.state){case Gr.ERROR:case Gr.PAUSED:case Gr.BUFFER_FLUSHING:break;case Gr.STARTING:this.state=Gr.WAITING_TRACK,this.loadedmetadata=!1;break;case Gr.IDLE:var a=this.tracks;if(!a)break;if(!this.media&&(this.startFragRequested||!i.startFragPrefetch))break;if(this.loadedmetadata)e=this.media.currentTime;else if(void 0===(e=this.nextLoadPosition))break;var o=this.mediaBuffer?this.mediaBuffer:this.media,s=this.videoBuffer?this.videoBuffer:this.media,u=Ft.bufferInfo(o,e,i.maxBufferHole),l=Ft.bufferInfo(s,e,i.maxBufferHole),c=u.len,d=u.end,f=this.fragPrevious,h=Math.min(i.maxBufferLength,i.maxMaxBufferLength),p=Math.max(h,l.len),g=this.audioSwitch,v=this.trackId;if((cb||u.nextStart))return;Je.b.log("alt audio track ahead of main track, seek to start of alt audio track"),this.media.currentTime=b+.05}if(r.initSegment&&!r.initSegment.data)E=r.initSegment;else if(d<=b){if(E=y[0],null!==this.videoTrackCC&&E.cc!==this.videoTrackCC&&(E=D(y,this.videoTrackCC)),r.live&&E.loadIdx&&E.loadIdx===this.fragLoadIdx){var w=u.nextStart?u.nextStart:b;return Je.b.log("no alt audio available @currentTime:"+this.media.currentTime+", seeking @"+(w+.05)),void(this.media.currentTime=w+.05)}}else{var T=void 0,S=i.maxFragLookUpTolerance,R=f?y[f.sn-y[0].sn+1]:void 0,A=function(e){var t=Math.min(S,e.duration);return e.start+e.duration-t<=d?1:e.start-t>d&&e.start?-1:0};d<_?(d>_-S&&(S=0),T=R&&!A(R)?R:Mt.search(y,A)):T=y[m-1],T&&(E=T,b=T.start,f&&E.level===f.level&&E.sn===f.sn&&(E.sn=C||k)&&(Je.b.log("audioStreamController: retryDate reached, switch back to IDLE state"),this.state=Gr.IDLE);break;case Gr.WAITING_INIT_PTS:var I=this.videoTrackCC;if(void 0===this.initPTS[I])break;var P=this.waitingFragment;if(P){var O=P.frag.cc;I!==O?(t=this.tracks[this.trackId],t.details&&t.details.live&&(Je.b.warn("Waiting fragment CC ("+O+") does not match video track CC ("+I+")"),this.waitingFragment=null,this.state=Gr.IDLE)):(this.state=Gr.FRAG_LOADING,this.onFragLoaded(this.waitingFragment),this.waitingFragment=null)}else this.state=Gr.IDLE;break;case Gr.STOPPED:case Gr.FRAG_LOADING:case Gr.PARSING:case Gr.PARSED:case Gr.ENDED:}},t.prototype.onMediaAttached=function(e){var t=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("ended",this.onvended);var r=this.config;this.tracks&&r.autoStartLoad&&this.startLoad(r.startPosition)},t.prototype.onMediaDetaching=function(){var e=this.media;e&&e.ended&&(Je.b.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1,this.stopLoad()},t.prototype.onMediaSeeking=function(){this.state===Gr.ENDED&&(this.state=Gr.IDLE),this.media&&(this.lastCurrentTime=this.media.currentTime),this.tick()},t.prototype.onMediaEnded=function(){this.startPosition=this.lastCurrentTime=0},t.prototype.onAudioTracksUpdated=function(e){Je.b.log("audio tracks updated"),this.tracks=e.audioTracks},t.prototype.onAudioTrackSwitching=function(e){var t=!!e.url;this.trackId=e.id,this.fragCurrent=null,this.state=Gr.PAUSED,this.waitingFragment=null,t?this.setInterval(100):this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),t&&(this.audioSwitch=!0,this.state=Gr.IDLE),this.tick()},t.prototype.onAudioTrackLoaded=function(e){var t=e.details,r=e.id,n=this.tracks[r],i=t.totalduration,a=0;if(Je.b.log("track "+r+" loaded ["+t.startSN+","+t.endSN+"],duration:"+i),t.live){var o=n.details;o&&t.fragments.length>0?(C(o,t),a=t.fragments[0].start,t.PTSKnown?Je.b.log("live audio playlist sliding:"+a.toFixed(3)):Je.b.log("live audio playlist - outdated PTS, unknown sliding")):(t.PTSKnown=!1,Je.b.log("live audio playlist - first load, unknown sliding"))}else t.PTSKnown=!1;if(n.details=t,!this.startFragRequested){if(-1===this.startPosition){var s=t.startTimeOffset;isNaN(s)?this.startPosition=0:(Je.b.log("start time offset found in playlist, adjust startPosition to "+s),this.startPosition=s)}this.nextLoadPosition=this.startPosition}this.state===Gr.WAITING_TRACK&&(this.state=Gr.IDLE),this.tick()},t.prototype.onKeyLoaded=function(){this.state===Gr.KEY_LOADING&&(this.state=Gr.IDLE,this.tick())},t.prototype.onFragLoaded=function(e){var t=this.fragCurrent,r=e.frag;if(this.state===Gr.FRAG_LOADING&&t&&"audio"===r.type&&r.level===t.level&&r.sn===t.sn){var n=this.tracks[this.trackId],i=n.details,a=i.totalduration,o=t.level,s=t.sn,u=t.cc,l=this.config.defaultAudioCodec||n.audioCodec||"mp4a.40.2",c=this.stats=e.stats;if("initSegment"===s)this.state=Gr.IDLE,c.tparsed=c.tbuffered=Br.now(),i.initSegment.data=e.payload,this.hls.trigger(Qe.a.FRAG_BUFFERED,{stats:c,frag:t,id:"audio"}),this.tick();else{this.state=Gr.PARSING,this.appended=!1,this.demuxer||(this.demuxer=new qt(this.hls,"audio"));var d=this.initPTS[u],f=i.initSegment?i.initSegment.data:[];if(i.initSegment||void 0!==d){this.pendingBuffering=!0,Je.b.log("Demuxing "+s+" of ["+i.startSN+" ,"+i.endSN+"],track "+o);this.demuxer.push(e.payload,f,l,null,t,a,!1,d)}else Je.b.log("unknown video PTS for continuity counter "+u+", waiting for video PTS before demuxing audio frag "+s+" of ["+i.startSN+" ,"+i.endSN+"],track "+o),this.waitingFragment=e,this.state=Gr.WAITING_INIT_PTS}}this.fragLoadError=0},t.prototype.onFragParsingInitSegment=function(e){var t=this.fragCurrent,r=e.frag;if(t&&"audio"===e.id&&r.sn===t.sn&&r.level===t.level&&this.state===Gr.PARSING){var n=e.tracks,i=void 0;if(n.video&&delete n.video,i=n.audio){i.levelCodec=i.codec,i.id=e.id,this.hls.trigger(Qe.a.BUFFER_CODECS,n),Je.b.log("audio track:audio,container:"+i.container+",codecs[level/parsed]=["+i.levelCodec+"/"+i.codec+"]");var a=i.initSegment;if(a){var o={type:"audio",data:a,parent:"audio",content:"initSegment"};this.audioSwitch?this.pendingData=[o]:(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(Qe.a.BUFFER_APPENDING,o))}this.tick()}}},t.prototype.onFragParsingData=function(e){var t=this,r=this.fragCurrent,n=e.frag;if(r&&"audio"===e.id&&"audio"===e.type&&n.sn===r.sn&&n.level===r.level&&this.state===Gr.PARSING){var i=this.trackId,a=this.tracks[i],o=this.hls;isNaN(e.endPTS)&&(e.endPTS=e.startPTS+r.duration,e.endDTS=e.startDTS+r.duration),r.addElementaryStream(ut.ElementaryStreamTypes.AUDIO),Je.b.log("parsed "+e.type+",PTS:["+e.startPTS.toFixed(3)+","+e.endPTS.toFixed(3)+"],DTS:["+e.startDTS.toFixed(3)+"/"+e.endDTS.toFixed(3)+"],nb:"+e.nb),L(a.details,r,e.startPTS,e.endPTS);var s=this.audioSwitch,u=this.media,l=!1;if(s&&u)if(u.readyState){var c=u.currentTime;Je.b.log("switching audio track : currentTime:"+c),c>=e.startPTS&&(Je.b.log("switching audio track : flushing all audio"),this.state=Gr.BUFFER_FLUSHING,o.trigger(Qe.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),l=!0,this.audioSwitch=!1,o.trigger(Qe.a.AUDIO_TRACK_SWITCHED,{id:i}))}else this.audioSwitch=!1,o.trigger(Qe.a.AUDIO_TRACK_SWITCHED,{id:i});var d=this.pendingData;if(!d)return Je.b.warn("Apparently attempt to enqueue media payload without codec initialization data upfront"),void o.trigger(Qe.a.ERROR,{type:Xe.b.MEDIA_ERROR,details:null,fatal:!0});this.audioSwitch||([e.data1,e.data2].forEach(function(t){t&&t.length&&d.push({type:e.type,data:t,parent:"audio",content:"data"})}),!l&&d.length&&(d.forEach(function(e){t.state===Gr.PARSING&&(t.pendingBuffering=!0,t.hls.trigger(Qe.a.BUFFER_APPENDING,e))}),this.pendingData=[],this.appended=!0)),this.tick()}},t.prototype.onFragParsed=function(e){var t=this.fragCurrent,r=e.frag;t&&"audio"===e.id&&r.sn===t.sn&&r.level===t.level&&this.state===Gr.PARSING&&(this.stats.tparsed=Br.now(),this.state=Gr.PARSED,this._checkAppendedParsed())},t.prototype.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},t.prototype.onBufferCreated=function(e){var t=e.tracks.audio;t&&(this.mediaBuffer=t.buffer,this.loadedmetadata=!0),e.tracks.video&&(this.videoBuffer=e.tracks.video.buffer)},t.prototype.onBufferAppended=function(e){if("audio"===e.parent){var t=this.state;t!==Gr.PARSING&&t!==Gr.PARSED||(this.pendingBuffering=e.pending>0,this._checkAppendedParsed())}},t.prototype._checkAppendedParsed=function(){if(!(this.state!==Gr.PARSED||this.appended&&this.pendingBuffering)){var e=this.fragCurrent,t=this.stats,r=this.hls;if(e){this.fragPrevious=e,t.tbuffered=Br.now(),r.trigger(Qe.a.FRAG_BUFFERED,{stats:t,frag:e,id:"audio"});var n=this.mediaBuffer?this.mediaBuffer:this.media;Je.b.log("audio buffered : "+zt.toString(n.buffered)),this.audioSwitch&&this.appended&&(this.audioSwitch=!1,r.trigger(Qe.a.AUDIO_TRACK_SWITCHED,{id:this.trackId})),this.state=Gr.IDLE}this.tick()}},t.prototype.onError=function(e){var t=e.frag;if(!t||"audio"===t.type)switch(e.details){case Xe.a.FRAG_LOAD_ERROR:case Xe.a.FRAG_LOAD_TIMEOUT:var r=e.frag;if(r&&"audio"!==r.type)break;if(!e.fatal){var n=this.fragLoadError;n?n++:n=1;var i=this.config;if(n<=i.fragLoadingMaxRetry){this.fragLoadError=n;var a=Math.min(Math.pow(2,n-1)*i.fragLoadingRetryDelay,i.fragLoadingMaxRetryTimeout);Je.b.warn("AudioStreamController: frag loading failed, retry in "+a+" ms"),this.retryDate=Br.now()+a,this.state=Gr.FRAG_LOADING_WAITING_RETRY}else Je.b.error("AudioStreamController: "+e.details+" reaches max retry, redispatch as fatal ..."),e.fatal=!0,this.state=Gr.ERROR}break;case Xe.a.AUDIO_TRACK_LOAD_ERROR:case Xe.a.AUDIO_TRACK_LOAD_TIMEOUT:case Xe.a.KEY_LOAD_ERROR:case Xe.a.KEY_LOAD_TIMEOUT:this.state!==Gr.ERROR&&(this.state=e.fatal?Gr.ERROR:Gr.IDLE,Je.b.warn("AudioStreamController: "+e.details+" while loading frag, now switching to "+this.state+" state ..."));break;case Xe.a.BUFFER_FULL_ERROR:if("audio"===e.parent&&(this.state===Gr.PARSING||this.state===Gr.PARSED)){var o=this.mediaBuffer,s=this.media.currentTime;if(o&&Ft.isBuffered(o,s)&&Ft.isBuffered(o,s+.5)){var u=this.config;u.maxMaxBufferLength>=u.maxBufferLength&&(u.maxMaxBufferLength/=2,Je.b.warn("AudioStreamController: reduce max buffer length to "+u.maxMaxBufferLength+"s")),this.state=Gr.IDLE}else Je.b.warn("AudioStreamController: buffer full error also media.currentTime is not buffered, flush audio buffer"),this.fragCurrent=null,this.state=Gr.BUFFER_FLUSHING,this.hls.trigger(Qe.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"})}}},t.prototype.onBufferFlushed=function(){var e=this,t=this.pendingData;t&&t.length?(Je.b.log("AudioStreamController: appending pending audio data after buffer flushed"),t.forEach(function(t){e.hls.trigger(Qe.a.BUFFER_APPENDING,t)}),this.appended=!0,this.pendingData=[],this.state=Gr.PARSED):(this.state=Gr.IDLE,this.fragPrevious=null,this.tick())},Nr(t,[{key:"state",set:function(e){if(this.state!==e){var t=this.state;this._state=e,Je.b.log("audio stream:"+t+"->"+e)}},get:function(){return this._state}}]),t}(Qt),Kr=jr,Hr=function(){function e(e){return"string"==typeof e&&(!!a[e.toLowerCase()]&&e.toLowerCase())}function t(e){return"string"==typeof e&&(!!o[e.toLowerCase()]&&e.toLowerCase())}function r(e){for(var t=1;t100)throw new Error("Position must be between 0 and 100.");_=e,this.hasBeenReset=!0}})),Object.defineProperty(s,"positionAlign",r({},l,{get:function(){return E},set:function(e){var r=t(e);if(!r)throw new SyntaxError("An invalid or illegal string was specified.");E=r,this.hasBeenReset=!0}})),Object.defineProperty(s,"size",r({},l,{get:function(){return w},set:function(e){if(e<0||e>100)throw new Error("Size must be between 0 and 100.");w=e,this.hasBeenReset=!0}})),Object.defineProperty(s,"align",r({},l,{get:function(){return T},set:function(e){var r=t(e);if(!r)throw new SyntaxError("An invalid or illegal string was specified.");T=r,this.hasBeenReset=!0}})),s.displayState=void 0,u)return s}if("undefined"!=typeof window&&window.VTTCue)return window.VTTCue;var i="auto",a={"":!0,lr:!0,rl:!0},o={start:!0,middle:!0,end:!0,left:!0,right:!0};return n.prototype.getCueAsHTML=function(){return window.WebVTT.convertCueToDOMTree(window,this.text)},n}(),Wr=function(){return{decode:function(e){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}};Te.prototype={set:function(e,t){this.get(e)||""===t||(this.values[e]=t)},get:function(e,t,r){return r?this.has(e)?this.values[e]:t[r]:this.has(e)?this.values[e]:t},has:function(e){return e in this.values},alt:function(e,t,r){for(var n=0;n=0&&t<=100)&&(this.set(e,t),!0)}};var Yr=new Hr(0,0,0),qr="middle"===Yr.align?"middle":"center";Ee.prototype={parse:function(e){function t(){var e=r.buffer,t=0;for(e=Ae(e);tJr&&(nn.log("ERROR","Too large cursor position "+this.pos),this.pos=Jr)},e.prototype.moveCursor=function(e){var t=this.pos+e;if(e>1)for(var r=this.pos+1;r=144&&this.backSpace();var t=Xr(e);if(this.pos>=Jr)return void nn.log("ERROR","Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!");this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1)},e.prototype.clearFromPos=function(e){var t=void 0;for(t=e;t0&&(r=e?"["+t.join(" | ")+"]":t.join("\n")),r},e.prototype.getTextAndFormat=function(){return this.rows},e}(),cn=function(){function e(t,r){Ce(this,e),this.chNr=t,this.outputFilter=r,this.mode=null,this.verbose=0,this.displayedMemory=new ln,this.nonDisplayedMemory=new ln,this.lastOutputScreen=new ln,this.currRollUpRow=this.displayedMemory.rows[Qr-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}return e.prototype.reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[Qr-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.lastCueEndTime=null},e.prototype.getHandler=function(){return this.outputFilter},e.prototype.setHandler=function(e){this.outputFilter=e},e.prototype.setPAC=function(e){this.writeScreen.setPAC(e)},e.prototype.setBkgData=function(e){this.writeScreen.setBkgData(e)},e.prototype.setMode=function(e){e!==this.mode&&(this.mode=e,nn.log("INFO","MODE="+e),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)},e.prototype.insertChars=function(e){for(var t=0;t=46,t.italics)t.foreground="white";else{var r=Math.floor(e/2)-16,n=["white","green","blue","cyan","red","yellow","magenta"];t.foreground=n[r]}nn.log("INFO","MIDROW: "+JSON.stringify(t)),this.writeScreen.setPen(t)},e.prototype.outputDataUpdate=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=nn.time;null!==t&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue&&(this.outputFilter.newCue(this.cueStartTime,t,this.lastOutputScreen),!0===e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue()),this.cueStartTime=this.displayedMemory.isEmpty()?null:t):this.cueStartTime=t,this.lastOutputScreen.copy(this.displayedMemory))},e.prototype.cueSplitAtTime=function(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))},e}(),dn=function(){function e(t,r,n){Ce(this,e),this.field=t||1,this.outputs=[r,n],this.channels=[new cn(1,r),new cn(2,n)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.bufferedData=[],this.startTime=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}}return e.prototype.getHandler=function(e){return this.channels[e].getHandler()},e.prototype.setHandler=function(e,t){this.channels[e].setHandler(t)},e.prototype.addData=function(e,t){var r=void 0,n=void 0,i=void 0,a=!1;this.lastTime=e,nn.setTime(e);for(var o=0;o ("+an([n,i])+")"),r=this.parseCmd(n,i),r||(r=this.parseMidrow(n,i)),r||(r=this.parsePAC(n,i)),r||(r=this.parseBackgroundAttributes(n,i)),!r&&(a=this.parseChars(n,i)))if(this.currChNr&&this.currChNr>=0){var s=this.channels[this.currChNr-1];s.insertChars(a)}else nn.log("WARNING","No channel found yet. TEXT-MODE?");r?this.dataCounters.cmd+=2:a?this.dataCounters.char+=2:(this.dataCounters.other+=2,nn.log("WARNING","Couldn't parse cleaned data "+an([n,i])+" orig: "+an([t[o],t[o+1]])))}else this.dataCounters.padding+=2},e.prototype.parseCmd=function(e,t){var r=null,n=(20===e||28===e)&&t>=32&&t<=47,i=(23===e||31===e)&&t>=33&&t<=35;if(!n&&!i)return!1;if(e===this.lastCmdA&&t===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,nn.log("DEBUG","Repeated command ("+an([e,t])+") is dropped"),!0;r=20===e||23===e?1:2;var a=this.channels[r-1];return 20===e||28===e?32===t?a.ccRCL():33===t?a.ccBS():34===t?a.ccAOF():35===t?a.ccAON():36===t?a.ccDER():37===t?a.ccRU(2):38===t?a.ccRU(3):39===t?a.ccRU(4):40===t?a.ccFON():41===t?a.ccRDC():42===t?a.ccTR():43===t?a.ccRTD():44===t?a.ccEDM():45===t?a.ccCR():46===t?a.ccENM():47===t&&a.ccEOC():a.ccTO(t-32),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=r,!0},e.prototype.parseMidrow=function(e,t){var r=null;if((17===e||25===e)&&t>=32&&t<=47){if((r=17===e?1:2)!==this.currChNr)return nn.log("ERROR","Mismatch channel in midrow parsing"),!1;return this.channels[r-1].ccMIDROW(t),nn.log("DEBUG","MIDROW ("+an([e,t])+")"),!0}return!1},e.prototype.parsePAC=function(e,t){var r=null,n=null,i=(e>=17&&e<=23||e>=25&&e<=31)&&t>=64&&t<=127,a=(16===e||24===e)&&t>=64&&t<=95;if(!i&&!a)return!1;if(e===this.lastCmdA&&t===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,!0;r=e<=23?1:2,n=t>=64&&t<=95?1===r?$r[e]:en[e]:1===r?Zr[e]:tn[e];var o=this.interpretPAC(n,t);return this.channels[r-1].setPAC(o),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=r,!0},e.prototype.interpretPAC=function(e,t){var r=t,n={color:null,italics:!1,indent:null,underline:!1,row:e};return r=t>95?t-96:t-64,n.underline=1==(1&r),r<=13?n.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(r/2)]:r<=15?(n.italics=!0,n.color="white"):n.indent=4*Math.floor((r-16)/2),n},e.prototype.parseChars=function(e,t){var r=null,n=null,i=null;if(e>=25?(r=2,i=e-8):(r=1,i=e),i>=17&&i<=19){var a=t;a=17===i?t+80:18===i?t+112:t+144,nn.log("INFO","Special char '"+Xr(a)+"' in channel "+r),n=[a]}else e>=32&&e<=127&&(n=0===t?[e]:[e,t]);if(n){var o=an(n);nn.log("DEBUG","Char codes = "+o.join(",")),this.lastCmdA=null,this.lastCmdB=null}return n},e.prototype.parseBackgroundAttributes=function(e,t){var r=void 0,n=void 0,i=void 0,a=void 0,o=(16===e||24===e)&&t>=32&&t<=47,s=(23===e||31===e)&&t>=45&&t<=47;return!(!o&&!s)&&(r={},16===e||24===e?(n=Math.floor((t-32)/2),r.background=rn[n],t%2==1&&(r.background=r.background+"_semi")):45===t?r.background="transparent":(r.foreground="black",47===t&&(r.underline=!0)),i=e<24?1:2,a=this.channels[i-1],a.setBkgData(r),this.lastCmdA=null,this.lastCmdB=null,!0)},e.prototype.reset=function(){for(var e=0;ee)&&(this.startTime=e),this.endTime=t,this.screen=r,this.timelineController.createCaptionsTrack(this.trackName)},e}(),pn=hn,gn=function(e,t,r){return e.substr(r||0,t.length)===t},vn=function(e){var t=parseInt(e.substr(-3)),r=parseInt(e.substr(-6,2)),n=parseInt(e.substr(-9,2)),i=e.length>9?parseInt(e.substr(0,e.indexOf(":"))):0;return isNaN(t)||isNaN(r)||isNaN(n)||isNaN(i)?-1:(t+=1e3*r,t+=6e4*n,t+=36e5*i)},yn=function(e){for(var t=5381,r=e.length;r;)t=33*t^e.charCodeAt(--r);return(t>>>0).toString()},mn=function(e,t,r){var n=e[t],i=e[n.prevCC];if(!i||!i.new&&n.new)return e.ccOffset=e.presentationOffset=n.start,void(n.new=!1);for(;i&&i.new;)e.ccOffset+=n.start-i.start,n.new=!1,n=i,i=e[n.prevCC];e.presentationOffset=r},bn={parse:function(e,t,r,n,i,a){var o=/\r\n|\n\r|\n|\r/g,s=Object(sr.b)(new Uint8Array(e)).trim().replace(o,"\n").split("\n"),u="00:00.000",l=0,c=0,d=0,f=[],h=void 0,p=!0,g=new Vr;g.oncue=function(e){var t=r[n],i=r.ccOffset;t&&t.new&&(void 0!==c?i=r.ccOffset=t.start:mn(r,n,d)),d&&(i=d+r.ccOffset-r.presentationOffset),e.startTime+=i-c,e.endTime+=i-c,e.id=yn(e.startTime.toString())+yn(e.endTime.toString())+yn(e.text),e.text=decodeURIComponent(encodeURIComponent(e.text)),e.endTime>0&&f.push(e)},g.onparsingerror=function(e){h=e},g.onflush=function(){if(h&&a)return void a(h);i(f)},s.forEach(function(e){if(p){if(gn(e,"X-TIMESTAMP-MAP=")){p=!1,e.substr(16).split(",").forEach(function(e){gn(e,"LOCAL:")?u=e.substr(6):gn(e,"MPEGTS:")&&(l=parseInt(e.substr(7)))});try{t=t<0?t+8589934592:t,l-=t,c=vn(u)/1e3,d=l/9e4,-1===c&&(h=new Error("Malformed X-TIMESTAMP-MAP: "+e))}catch(t){h=new Error("Malformed X-TIMESTAMP-MAP: "+e)}return}""===e&&(p=!1)}g.parse(e+"\n")}),g.flush()}},_n=bn,En=function(e){function t(r){De(this,t);var n=Ie(this,e.call(this,r,Qe.a.MEDIA_ATTACHING,Qe.a.MEDIA_DETACHING,Qe.a.FRAG_PARSING_USERDATA,Qe.a.FRAG_DECRYPTED,Qe.a.MANIFEST_LOADING,Qe.a.MANIFEST_LOADED,Qe.a.FRAG_LOADED,Qe.a.LEVEL_SWITCHING,Qe.a.INIT_PTS_FOUND));if(n.hls=r,n.config=r.config,n.enabled=!0,n.Cues=r.config.cueHandler,n.textTracks=[],n.tracks=[],n.unparsedVttFrags=[],n.initPTS=void 0,n.cueRanges=[],n.captionsTracks={},n.captionsProperties={textTrack1:{label:n.config.captionsTextTrack1Label,languageCode:n.config.captionsTextTrack1LanguageCode},textTrack2:{label:n.config.captionsTextTrack2Label,languageCode:n.config.captionsTextTrack2LanguageCode}},n.config.enableCEA708Captions){var i=new pn(n,"textTrack1"),a=new pn(n,"textTrack2");n.cea608Parser=new fn(0,i,a)}return n}return Pe(t,e),t.prototype.addCues=function(e,t,r,n){for(var i=this.cueRanges,a=!1,o=i.length;o--;){var s=i[o],u=xe(s[0],s[1],t,r);if(u>=0&&(s[0]=Math.min(s[0],t),s[1]=Math.max(s[1],r),a=!0,u/(r-t)>.5))return}a||i.push([t,r]),this.Cues.newCue(this.captionsTracks[e],t,r,n)},t.prototype.onInitPtsFound=function(e){var t=this;void 0===this.initPTS&&(this.initPTS=e.initPTS),this.unparsedVttFrags.length&&(this.unparsedVttFrags.forEach(function(e){t.onFragLoaded(e)}),this.unparsedVttFrags=[])},t.prototype.getExistingTrack=function(e){var t=this.media;if(t)for(var r=0;r=r.length)&&(this._stopTimer(),this.trackId=e,Je.b.log("switching to subtitle track "+e),t.trigger(Qe.a.SUBTITLE_TRACK_SWITCH,{id:e}),-1!==e)){var n=r[e],i=n.details;i&&!i.live||(Je.b.log("(re)loading playlist for subtitle track "+e),t.trigger(Qe.a.SUBTITLE_TRACK_LOADING,{url:n.url,id:e}))}},t.prototype._stopTimer=function(){this.timer&&(clearInterval(this.timer),this.timer=null)},t.prototype._toggleTrackModes=function(e){var t=this.media,r=this.subtitleDisplay,n=this.trackId;if(t){var i=Ue(t.textTracks);if(-1===e)[].slice.call(i).forEach(function(e){e.mode="disabled"});else{var a=i[n];a&&(a.mode="disabled")}var o=i[e];o&&(o.mode=r?"showing":"hidden")}},Tn(t,[{key:"subtitleTracks",get:function(){return this.tracks}},{key:"subtitleTrack",get:function(){return this.trackId},set:function(e){this.trackId!==e&&(this._toggleTrackModes(e),this.setSubtitleTrackInternal(e))}}]),t}(tt),Rn=Sn,An=r(7),Ln=window,Cn=Ln.performance,kn={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING"},Dn=function(e){function t(r){Be(this,t);var n=Ge(this,e.call(this,r,Qe.a.MEDIA_ATTACHED,Qe.a.ERROR,Qe.a.KEY_LOADED,Qe.a.FRAG_LOADED,Qe.a.SUBTITLE_TRACKS_UPDATED,Qe.a.SUBTITLE_TRACK_SWITCH,Qe.a.SUBTITLE_TRACK_LOADED,Qe.a.SUBTITLE_FRAG_PROCESSED));return n.config=r.config,n.vttFragSNsProcessed={},n.vttFragQueues=void 0,n.currentlyProcessing=null,n.state=kn.STOPPED,n.currentTrackId=-1,n.decrypter=new An.a(r.observer,r.config),n}return je(t,e),t.prototype.onHandlerDestroyed=function(){this.state=kn.STOPPED},t.prototype.clearVttFragQueues=function(){var e=this;this.vttFragQueues={},this.tracks.forEach(function(t){e.vttFragQueues[t.id]=[]})},t.prototype.nextFrag=function(){if(null===this.currentlyProcessing&&this.currentTrackId>-1&&this.vttFragQueues[this.currentTrackId].length){var e=this.currentlyProcessing=this.vttFragQueues[this.currentTrackId].shift();this.fragCurrent=e,this.hls.trigger(Qe.a.FRAG_LOADING,{frag:e}),this.state=kn.FRAG_LOADING}},t.prototype.onSubtitleFragProcessed=function(e){e.success&&this.vttFragSNsProcessed[e.frag.trackId].push(e.frag.sn),this.currentlyProcessing=null,this.state=kn.IDLE,this.nextFrag()},t.prototype.onMediaAttached=function(){this.state=kn.IDLE},t.prototype.onError=function(e){var t=e.frag;t&&"subtitle"!==t.type||this.currentlyProcessing&&(this.currentlyProcessing=null,this.nextFrag())},t.prototype.doTick=function(){var e=this;switch(this.state){case kn.IDLE:var t=this.tracks,r=this.currentTrackId,n=this.vttFragSNsProcessed[r],i=this.vttFragQueues[r],a=this.currentlyProcessing?this.currentlyProcessing.sn:-1,o=function(e){return n.indexOf(e.sn)>-1},s=function(e){return i.some(function(t){return t.sn===e.sn})};if(!t)break;var u;if(r0&&null!=r&&null!=r.key&&"AES-128"===r.method){var a=void 0;try{a=Cn.now()}catch(e){a=Date.now()}this.decrypter.decrypt(e.payload,r.key.buffer,r.iv.buffer,function(e){var t=void 0;try{t=Cn.now()}catch(e){t=Date.now()}i.trigger(Qe.a.FRAG_DECRYPTED,{frag:n,payload:e,stats:{tstart:a,tdecrypt:t}})})}},t}(Qt),In=Dn,Pn=function(){function e(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};Ye(this,e);var n=e.DefaultConfig;if((r.liveSyncDurationCount||r.liveMaxLatencyDurationCount)&&(r.liveSyncDuration||r.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");for(var i in n)i in r||(r[i]=n[i]);if(void 0!==r.liveMaxLatencyDurationCount&&r.liveMaxLatencyDurationCount<=r.liveSyncDurationCount)throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be gt "liveSyncDurationCount"');if(void 0!==r.liveMaxLatencyDuration&&(r.liveMaxLatencyDuration<=r.liveSyncDuration||void 0===r.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be gt "liveSyncDuration"');Object(Je.a)(r.debug),this.config=r,this._autoLevelCapping=-1;var a=this.observer=new Ut.a;a.trigger=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n1?t-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:-1;Je.b.log("startLoad("+e+")"),this.networkControllers.forEach(function(t){t.startLoad(e)})},e.prototype.stopLoad=function(){Je.b.log("stopLoad"),this.networkControllers.forEach(function(e){e.stopLoad()})},e.prototype.swapAudioCodec=function(){Je.b.log("swapAudioCodec"),this.streamController.swapAudioCodec()},e.prototype.recoverMediaError=function(){Je.b.log("recoverMediaError");var e=this.media;this.detachMedia(),this.attachMedia(e)},Kn(e,[{key:"levels",get:function(){return this.levelController.levels}},{key:"currentLevel",get:function(){return this.streamController.currentLevel},set:function(e){Je.b.log("set currentLevel:"+e),this.loadLevel=e,this.streamController.immediateLevelSwitch()}},{key:"nextLevel",get:function(){return this.streamController.nextLevel},set:function(e){Je.b.log("set nextLevel:"+e),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}},{key:"loadLevel",get:function(){return this.levelController.level},set:function(e){Je.b.log("set loadLevel:"+e),this.levelController.manualLevel=e}},{key:"nextLoadLevel",get:function(){return this.levelController.nextLoadLevel},set:function(e){this.levelController.nextLoadLevel=e}},{key:"firstLevel",get:function(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)},set:function(e){Je.b.log("set firstLevel:"+e),this.levelController.firstLevel=e}},{key:"startLevel",get:function(){return this.levelController.startLevel},set:function(e){Je.b.log("set startLevel:"+e);var t=this;-1!==e&&(e=Math.max(e,t.minAutoLevel)),t.levelController.startLevel=e}},{key:"autoLevelCapping",get:function(){return this._autoLevelCapping},set:function(e){Je.b.log("set autoLevelCapping:"+e),this._autoLevelCapping=e}},{key:"autoLevelEnabled",get:function(){return-1===this.levelController.manualLevel}},{key:"manualLevel",get:function(){return this.levelController.manualLevel}},{key:"minAutoLevel",get:function(){for(var e=this,t=e.levels,r=e.config.minAutoBitrate,n=t?t.length:0,i=0;ir)return i}return 0}},{key:"maxAutoLevel",get:function(){var e=this,t=e.levels,r=e.autoLevelCapping;return-1===r&&t&&t.length?t.length-1:r}},{key:"nextAutoLevel",get:function(){var e=this;return Math.min(Math.max(e.abrController.nextAutoLevel,e.minAutoLevel),e.maxAutoLevel)},set:function(e){var t=this;t.abrController.nextAutoLevel=Math.max(t.minAutoLevel,e)}},{key:"audioTracks",get:function(){var e=this.audioTrackController;return e?e.audioTracks:[]}},{key:"audioTrack",get:function(){var e=this.audioTrackController;return e?e.audioTrack:-1},set:function(e){var t=this.audioTrackController;t&&(t.audioTrack=e)}},{key:"liveSyncPosition",get:function(){return this.streamController.liveSyncPosition}},{key:"subtitleTracks",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTrack:-1},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}},{key:"subtitleDisplay",get:function(){var e=this.subtitleTrackController;return!!e&&e.subtitleDisplay},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}}]),e}();t.default=Hn},function(e,t,r){function n(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t.oe=function(e){throw console.error(e),e};var n=t(t.s=ENTRY_MODULE);return n.default||n}function i(e){return(e+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function a(e,t,n){var a={};a[n]=[];var o=t.toString(),s=o.match(/^function\s?\(\w+,\s*\w+,\s*(\w+)\)/);if(!s)return a;for(var c,d=s[1],f=new RegExp("(\\\\n|\\W)"+i(d)+l,"g");c=f.exec(o);)"dll-reference"!==c[3]&&a[n].push(c[3]);for(f=new RegExp("\\("+i(d)+'\\("(dll-reference\\s('+u+'))"\\)\\)'+l,"g");c=f.exec(o);)e[c[2]]||(a[n].push(c[1]),e[c[2]]=r(c[1]).m),a[c[2]]=a[c[2]]||[],a[c[2]].push(c[4]);return a}function o(e){return Object.keys(e).reduce(function(t,r){return t||e[r].length>0},!1)}function s(e,t){for(var r={main:[t]},n={main:[]},i={main:{}};o(r);)for(var s=Object.keys(r),u=0;u1?r-1:0),i=1;i1?r-1:0),i=1;i1){var s=arguments[1];void 0!==s&&(o=s?Number(s):0)!=o&&(o=0)}var u=Math.min(Math.max(o,0),n),l=u-a;if(l<0)return!1;for(var c=-1;++c