!function(e){if("object"==typeofexports&&"undefined"!=typeofmodule)module.exports=e();elseif("function"==typeofdefine&&define.amd)define([],e);else{vart;t="undefined"!=typeofwindow?window:"undefined"!=typeofglobal?global:"undefined"!=typeofself?self:this,t.Hls=e()}}(function(){returnfunctions(e,t,r){functioni(n,d){if(!t[n]){if(!e[n]){varl="function"==typeofrequire&&require;if(!d&&l)returnl(n,!0);if(a)returna(n,!0);varu=newError("Cannot find module '"+n+"'");throwu.code="MODULE_NOT_FOUND",u}varo=t[n]={exports:{}};e[n][0].call(o.exports,function(t){varr=e[n][1][t];returni(r?r:t)},o,o.exports,s,e,t,r)}returnt[n].exports}for(vara="function"==typeofrequire&&require,n=0;n<r.length;n++)i(r[n]);returni}({1:[function(s,n,o){functione(){this._events=this._events||{},this._maxListeners=this._maxListeners||void0}functiont(e){return"function"==typeofe}functiona(e){return"number"==typeofe}functionr(e){return"object"==typeofe&&null!==e}functioni(e){returnvoid0===e}n.exports=e,e.EventEmitter=e,e.prototype._events=void0,e.prototype._maxListeners=void0,e.defaultMaxListeners=10,e.prototype.setMaxListeners=function(e){if(!a(e)||0>e||isNaN(e))throwTypeError("n must be a positive number");returnthis._maxListeners=e,this},e.prototype.emit=function(l){vars,e,u,n,a,o;if(this._events||(this._events={}),"error"===l&&(!this._events.error||r(this._events.error)&&!this._events.error.length)){if(s=arguments[1],sinstanceofError)throws;throwTypeError('Uncaught, unspecified "error" event.')}if(e=this._events[l],i(e))return!1;if(t(e))switch(arguments.length){case1:e.call(this);break;case2:e.call(this,arguments[1]);break;case3:e.call(this,arguments[1],arguments[2]);break;default:n=Array.prototype.slice.call(arguments,1),e.apply(this,n)}elseif(r(e))for(n=Array.prototype.slice.call(arguments,1),o=e.slice(),u=o.length,a=0;u>a;a++)o[a].apply(this,n);return!0},e.prototype.addListener=function(n,a){vars;if(!t(a))throwTypeError("listener must be a function");returnthis._events||(this._events={}),this._events.newListener&&this.emit("newListener",n,t(a.listener)?a.listener:a),this._events[n]?r(this._events[n])?this._events[n].push(a):this._events[n]=[this._events[n],a]:this._events[n]=a,r(this._events[n])&&!this._events[n].warned&&(s=i(this._maxListeners)?e.defaultMaxListeners:this._maxListeners,s&&s>0&&this._events[n].length>s&&(this._events[n].warned=!0,"function"==typeofconsole.trace)),this},e.prototype.on=e.prototype.addListener,e.prototype.once=function(i,e){functionr(){this.removeListener(i,r),n||(n=!0,e.apply(this,arguments))}if(!t(e))throwTypeError("listener must be a function");varn=!1;returnr.listener=e,this.on(i,r),this},e.prototype.removeListener=function(n,i){vare,s,o,a;if(!t(i))throwTypeError("listener must be a function");if(!this._events||!this._events[n])returnthis;if(e=this._events[n],o=e.length,s=-1,e===i||t(e.listener)&&e.listener===i)deletethis._events[n],this._events.removeListener&&this.emit("removeListener",n,i);elseif(r(e)){for(a=o;a-->0;)if(e[a]===i||e[a].listener&&e[a].listener===i){s=a;break}if(0>s)returnthis;1===e.length?(e.length=0,deletethis._events[n]):e.splice(s,1),this._events.removeListener&&this.emit("removeListener",n,i)}returnthis},e.prototype.removeAllListeners=function(r){vari,e;if(!this._events)returnthis;if(!this._events.removeListener)return0===arguments.length?this._events={}:this._events[r]&&deletethis._events[r],this;if(0===arguments.length){for(iinthis._events)"removeListener"!==i&&this.removeAllListeners(i);returnthis.removeAllListeners("removeListener"),this._events={},this}if(e=this._events[r],t(e))this.removeListener(r,e);elseif(e)for(;e.length;)this.removeListener(r,e[e.length-1]);returndeletethis._events[r],this},e.prototype.listeners=function(e){varr;returnr=this._events&&this._events[e]?t(this._events[e])?[this._events[e]]:this._events[e].slice():[]},e.prototype.listenerCount=function(r){if(this._events){vare=this._events[r];if(t(e))return1;if(e)returne.length}return0},e.listenerCount=function(e,t){returne.listenerCount(t)}},{}]
frag:n}),this.state=e.FRAG_LOADING}}break;casee.WAITING_LEVEL:l=this.levels[this.level],l&&l.details&&(this.state=e.IDLE);break;casee.FRAG_LOADING_WAITING_RETRY:varO=performance.now(),L=this.retryDate,k=this.media,D=k&&k.seeking;(!L||O>=L||D)&&(t.logger.log("mediaController: retryDate reached, switch back to IDLE state"),this.state=e.IDLE);break;casee.STOPPED:casee.FRAG_LOADING:casee.PARSING:casee.PARSED:casee.ENDED:}this._checkBuffer(),this._checkFragmentChanged()}},{key:"getBufferRange",value:function(i){vare,t,r=this.bufferRange;if(r)for(e=r.length-1;e>=0;e--)if(t=r[e],i>=t.start&&i<=t.end)returnt;returnnull}},{key:"followingBufferRange",value:function(e){returne?this.getBufferRange(e.end+.5):null}},{key:"isBuffered",value:function(r){vari=this.media;if(i)for(vart=i.buffered,e=0;e<t.length;e++)if(r>=t.start(e)&&r<=t.end(e))return!0;return!1}},{key:"_checkFragmentChanged",value:function(){vart,e,i=this.media;if(i&&i.seeking===!1&&(e=i.currentTime,e>i.playbackRate*this.lastCurrentTime&&(this.lastCurrentTime=e),this.isBuffered(e)?t=this.getBufferRange(e):this.isBuffered(e+.1)&&(t=this.getBufferRange(e+.1)),t)){varn=t.frag;n!==this.fragPlaying&&(this.fragPlaying=n,this.hls.trigger(r.default.FRAG_CHANGED,{frag:n}))}}},{key:"immediateLevelSwitch",value:function(){t.logger.log("immediateLevelSwitch"),this.immediateSwitch||(this.immediateSwitch=!0,this.previouslyPaused=this.media.paused,this.media.pause());vari=this.fragCurrent;i&&i.loader&&i.loader.abort(),this.fragCurrent=null,this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold,this.state=e.PAUSED,this.hls.trigger(r.default.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY})}},{key:"immediateLevelSwitchEnd",value:function(){this.immediateSwitch=!1;vare=this.media;e&&e.readyState&&(e.currentTime-=1e-4,this.previouslyPaused||e.play())}},{key:"nextLevelSwitch",value:function(){vart=this.media;if(t&&t.readyState){vara=void0,n=void0,i=void0;if(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold,n=this.getBufferRange(t.currentTime),n&&n.start>1&&(this.state=e.PAUSED,this.hls.trigger(r.default.BUFFER_FLUSHING,{startOffset:0,endOffset:n.start-1})),t.paused)a=0;else{varl=this.hls.nextLoadLevel,u=this.levels[l],o=this.fragLastKbps;a=o&&this.fragCurrent?this.fragCurrent.duration*u.bitrate/(1e3*o)+1:0}if(i=this.getBufferRange(t.currentTime+a),i&&(i=this.followingBufferRange(i))){vars=this.fragCurrent;s&&s.loader&&s.loader.abort(),this.fragCurrent=null,this.state=e.PAUSED,this.hls.trigger(r.default.BUFFER_FLUSHING,{startOffset:i.start,endOffset:Number.POSITIVE_INFINITY})}}}},{key:"onMediaAttached",value:function(t){vare=this.media=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvended=this.onMediaEnded.bind(this),e.addEventListener("seeking",this.onvseeking),e.addEventListener("seeked",this.onvseeked),e.addEventListener("ended",this.onvended),this.levels&&this.config.autoStartLoad&&this.hls.startLoad()}},{key:"onMediaDetaching",value:function(){vare=this.media;e&&e.ended&&(t.logger.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);varr=this.levels;r&&r.forEach(function(e){e.details&&e.details.fragments.forEach(function(e){e.loadCounter=void0})}),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=null,this.loadedmetadata=!1,this.stopLoad()}},{key:"onMediaSeeking",value:function(){if(this.state===e.FRAG_LOADING){if(0===s.default.bufferInfo(this.media,this.media.currentTime,this.config.maxBufferHole).len){t.logger.log("seeking outside of buffer while fragment load in progress, cancel fragment load");varr=this.fragCurrent;r&&(r.loader&&r.loader.abort(),this.fragCurrent=null),this.fragPrevious=null,this.state=e.IDLE}}elsethis.state===e.ENDED&&(this.state=e.IDLE);this.media&&(this.lastCurrentTime=this.media.currentTime),void0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.co
e=t-e,e>0?r<<e|this.readBits(e):r}},{key:"skipLZ",value:function(){vare;for(e=0;e<this.bitsAvailable;++e)if(0!==(this.word&2147483648>>>e))returnthis.word<<=e,this.bitsAvailable-=e,e;returnthis.loadWord(),e+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"skipEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){vare=this.skipLZ();returnthis.readBits(e+1)-1}},{key:"readEG",value:function(){vare=this.readUEG();return1&e?1+e>>>1:-1*(e>>>1)}},{key:"readBoolean",value:function(){return1===this.readBits(1)}},{key:"readUByte",value:function(){returnthis.readBits(8)}},{key:"readUShort",value:function(){returnthis.readBits(16)}},{key:"readUInt",value:function(){returnthis.readBits(32)}},{key:"skipScalingList",value:function(n){vart,i,r=8,e=8;for(t=0;n>t;t++)0!==e&&(i=this.readEG(),e=(r+i+256)%256),r=0===e?r:e}},{key:"readSPS",value:function(){vart,v,p,l,n,a,i,o,r,s=0,d=0,f=0,h=0,c=1;if(this.readUByte(),t=this.readUByte(),v=this.readBits(5),this.skipBits(3),p=this.readUByte(),this.skipUEG(),100===t||110===t||122===t||244===t||44===t||83===t||86===t||118===t||128===t){varg=this.readUEG();if(3===g&&this.skipBits(1),this.skipUEG(),this.skipUEG(),this.skipBits(1),this.readBoolean())for(o=3!==g?8:12,r=0;o>r;r++)this.readBoolean()&&(6>r?this.skipScalingList(16):this.skipScalingList(64))}this.skipUEG();varu=this.readUEG();if(0===u)this.readUEG();elseif(1===u)for(this.skipBits(1),this.skipEG(),this.skipEG(),l=this.readUEG(),r=0;l>r;r++)this.skipEG();if(this.skipUEG(),this.skipBits(1),n=this.readUEG(),a=this.readUEG(),i=this.readBits(1),0===i&&this.skipBits(1),this.skipBits(1),this.readBoolean()&&(s=this.readUEG(),d=this.readUEG(),f=this.readUEG(),h=this.readUEG()),this.readBoolean()&&this.readBoolean()){vare=void0,y=this.readUByte();switch(y){case1:e=[1,1];break;case2:e=[12,11];break;case3:e=[10,11];break;case4:e=[16,11];break;case5:e=[40,33];break;case6:e=[24,11];break;case7:e=[20,11];break;case8:e=[32,11];break;case9:e=[80,33];break;case10:e=[18,11];break;case11:e=[15,11];break;case12:e=[64,33];break;case13:e=[160,99];break;case14:e=[4,3];break;case15:e=[3,2];break;case16:e=[2,1];break;case255:e=[this.readUByte()<<8|this.readUByte(),this.readUByte()<<8|this.readUByte()]}e&&(c=e[0]/e[1])}return{width:Math.ceil((16*(n+1)-2*s-2*d)*c),height:(2-i)*(a+1)*16-(i?2:4)*(f+h)}}},{key:"readSliceType",value:function(){returnthis.readUByte(),this.readUEG(),this.readUEG()}}]),e}();e.default=a},{"../utils/logger":38}],19:[function(r,s,t){"use strict";functioni(e,t){if(!(einstanceoft))thrownewTypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});varn=function(){functione(i,r){for(vart=0;t<r.length;t++){vare=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"ine&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}returnfunction(t,r,i){returnr&&e(t.prototype,r),i&&e(t,i),t}}(),e=r("../utils/logger"),a=function(){functiont(n){i(this,t),this._hasTimeStamp=!1;for(varl,u,d,f,h,s,o,a,r=0;;)if(o=this.readUTF(n,r,3),r+=3,"ID3"===o)r+=3,l=127&n[r++],u=127&n[r++],d=127&n[r++],f=127&n[r++],h=(l<<21)+(u<<14)+(d<<7)+f,s=r+h,this._parseID3Frames(n,r,s),r=s;else{if("3DI"!==o)returnr-=3,a=r,void(a&&(this.hasTimeStamp||e.logger.warn("ID3 tag found, but no timestamp"),this._length=a,this._payload=n.subarray(0,a)));r+=7,e.logger.log("3DI footer found, end: "+r)}}returnn(t,[{key:"readUTF",value:function(i,e,n){vart="",r=e,a=e+n;dot+=String.fromCharCode(i[r++]);while(a>r);returnt}},{key:"_parseID3Frames",value:function(r,t,a){for(varn,s,o,l,i;a>=t+8;)switch(n=this.readUTF(r,t,4),t+=4,s=r[t++]<<24+r[t++]<<16+r[t++]<<8+r[t++],l=r[t++]<<8+r[t++],o=t,n){case"PRIV":if("com.apple.streaming.transportStreamTimestamp"===this.readUTF(r,t,44)){t+=44,t+=4;varu=1&r[t++];this._hasTimeStamp=!0,i=((r[t++]<<23)+(r[t++]<<15)+(r[t++]<<7)+r[t++])/45,u&&(i+=47721858.84),i=Math.round(i),e.logger.trace("ID3 timestamp found: "+i),this._timeStamp=i}}}},{key:"hasTimeStamp",get:function(){returnthis._hasTimeStamp}},{key:"ti
frag:t})}},{key:"loaderror",value:function(r){this.loader&&this.loader.abort(),this.hls.trigger(e.default.ERROR,{type:t.ErrorTypes.NETWORK_ERROR,details:t.ErrorDetails.KEY_LOAD_ERROR,fatal:!1,frag:this.frag,response:r})}},{key:"loadtimeout",value:function(){this.loader&&this.loader.abort(),this.hls.trigger(e.default.ERROR,{type:t.ErrorTypes.NETWORK_ERROR,details:t.ErrorDetails.KEY_LOAD_TIMEOUT,fatal:!1,frag:this.frag})}},{key:"loadprogress",value:function(){}}]),r}(a.default);i.default=o},{"../errors":21,"../event-handler":22,"../events":23}],30:[function(r,y,s){"use strict";functioni(e){returne&&e.__esModule?e:{default:e}}functiond(e,t){if(!(einstanceoft))thrownewTypeError("Cannot call a class as a function")}functionf(t,e){if(!t)thrownewReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeofe&&"function"!=typeofe?t:e}functionh(t,e){if("function"!=typeofe&&null!==e)thrownewTypeError("Super expression must either be null or a function, not "+typeofe);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(s,"__esModule",{value:!0});varo=function(){functione(i,r){for(vart=0;t<r.length;t++){vare=r[t];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"ine&&(e.writable=!0),Object.defineProperty(i,e.key,e)}}returnfunction(t,r,i){returnr&&e(t.prototype,r),i&&e(t,i),t}}(),l=r("../events"),t=i(l),p=r("../event-handler"),a=i(p),e=r("../errors"),c=r("../utils/url"),g=i(c),v=r("../utils/attr-list"),n=i(v),u=function(i){functionr(e){returnd(this,r),f(this,Object.getPrototypeOf(r).call(this,e,t.default.MANIFEST_LOADING,t.default.LEVEL_LOADING))}returnh(r,i),o(r,[{key:"destroy",value:function(){this.loader&&(this.loader.destroy(),this.loader=null),this.url=this.id=null,a.default.prototype.destroy.call(this)}},{key:"onManifestLoading",value:function(e){this.load(e.url,null)}},{key:"onLevelLoading",value:function(e){this.load(e.url,e.level,e.id)}},{key:"load",value:function(t,a,s){varr,i,n,e=this.hls.config;if(this.loading&&this.loader){if(this.url===t&&this.id===a&&this.id2===s)return;this.loader.abort()}this.url=t,this.id=a,this.id2=s,null===this.id?(r=e.manifestLoadingMaxRetry,i=e.manifestLoadingTimeOut,n=e.manifestLoadingRetryDelay):(r=e.levelLoadingMaxRetry,i=e.levelLoadingTimeOut,n=e.levelLoadingRetryDelay),this.loader="undefined"!=typeofe.pLoader?newe.pLoader(e):newe.loader(e),this.loading=!0,this.loader.load(t,"",this.loadsuccess.bind(this),this.loaderror.bind(this),this.loadtimeout.bind(this),i,r,n)}},{key:"resolve",value:function(e,t){returng.default.buildAbsoluteURL(t,e)}},{key:"parseMasterPlaylist",value:function(f,u){for(varl=[],i=void0,d=/#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g;null!=(i=d.exec(f));){vare={},r=e.attrs=newn.default(i[1]);e.url=this.resolve(i[2],u);vars=r.decimalResolution("RESOLUTION");s&&(e.width=s.width,e.height=s.height),e.bitrate=r.decimalInteger("AVERAGE-BANDWIDTH")||r.decimalInteger("BANDWIDTH"),e.name=r.NAME;vart=r.CODECS;if(t){t=t.split(",");for(varo=0;o<t.length;o++){vara=t[o];-1!==a.indexOf("avc1")?e.videoCodec=this.avc1toavcoti(a):e.audioCodec=a}}l.push(e)}returnl}},{key:"avc1toavcoti",value:function(r){vare,t=r.split(".");returnt.length>2?(e=t.shift()+".",e+=parseInt(t.shift()).toString(16),e+=("000"+parseInt(t.shift()).toString(16)).substr(-4)):e=r,e}},{key:"cloneObj",value:function(e){returnJSON.parse(JSON.stringify(e))}},{key:"parseLevelPlaylist",value:function(L,s,A){vare,b,u,a,g=0,o=0,i={url:s,fragments:[],live:!0,startSN:0},r={method:null,key:null,iv:null,uri:null},y=0,d=null,t=null;for(b=/(?:#EXT-X-(MEDIA-SEQUENCE):(\d+))|(?:#EXT-X-(TARGETDURATION):(\d+))|(?:#EXT-X-(KEY):(.*))|(?:#EXT(INF):([\d\.]+)[^\r\n]*([\r\n]+[^#|\r\n]+)?)|(?:#EXT-X-(BYTERANGE):([\d]+[@[\d]*)]*[\r\n]+([^#|\r\n]+)?|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(PROGRAM-DATE-TIME):(.*)[\r\n]+([^#|\r\n]+)?)/g;null!==(e=b.exec(L));)switch(e.shift(),e=e.filter(functio
this.destroy(),window.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,64e3),t.retry++):(window.clearTimeout(this.timeoutHandle),e.logger.error(r+" while loading "+this.url),this.onError(i)))}},{key:"loadtimeout",value:function(t){e.logger.warn("timeout while loading "+this.url),this.onTimeout(t,this.stats)}},{key:"loadprogress",value:function(t){vare=this.stats;null===e.tfirst&&(e.tfirst=performance.now()),e.loaded=t.loaded,this.onProgress&&this.onProgress(t,e)}}]),t}();t.default=a},{"../utils/logger":38}]},{},[27])(27)});