diff --git a/apps/com.awspaas.user.apps.managesite/monitor/css/308.6da27b04.css b/apps/com.awspaas.user.apps.managesite/monitor/css/308.6da27b04.css new file mode 100644 index 0000000..e27e578 --- /dev/null +++ b/apps/com.awspaas.user.apps.managesite/monitor/css/308.6da27b04.css @@ -0,0 +1 @@ +.camera-item[data-v-4d5cf730]{background-color:#fff;border-radius:1.33333vw;margin-bottom:2.66667vw;position:relative}.camera-item .camera-name[data-v-4d5cf730]{display:flex;justify-content:center;align-items:center;position:absolute;background-color:#c6c6c6;border-radius:1.33333vw 0 1.33333vw 0;color:#fff;top:0;left:0;font-size:2.66667vw;height:6.66667vw;width:21.33333vw;z-index:99}.camera-item .camera-player[data-v-4d5cf730]{width:100%;height:53.33333vw;border-radius:1.33333vw}.camera-item .overlay[data-v-4d5cf730]{width:100%;height:100%;position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;z-index:99}.camera-item .modal-overlay[data-v-4d5cf730]{width:100vw;height:100vh;position:fixed;left:0;top:0;z-index:999;background-color:hsla(0,0%,60%,.363)}.camera-item .modal-overlay .modal[data-v-4d5cf730]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;background-color:#fff;border-radius:2vw}page{background-color:#f6f6f6}.nav-bar[data-v-0dd6cab5]{top:0;width:100vw;z-index:9999;height:11.73333vw;background:linear-gradient(to top right,#496df6,#2e9ee8);display:flex;align-items:center;justify-content:center;color:#fff;font-size:4.26667vw;position:fixed}.camera-list[data-v-0dd6cab5]{padding:0 2.66667vw 0} \ No newline at end of file diff --git a/apps/com.awspaas.user.apps.managesite/monitor/css/403.f2146c4a.css b/apps/com.awspaas.user.apps.managesite/monitor/css/403.f2146c4a.css new file mode 100644 index 0000000..565773c --- /dev/null +++ b/apps/com.awspaas.user.apps.managesite/monitor/css/403.f2146c4a.css @@ -0,0 +1 @@ +.app-container[data-v-89e61e88]{height:100vh;display:flex;flex-direction:column}.nav-bar[data-v-89e61e88]{width:100vw;height:11.73333vw;background:linear-gradient(to top right,#496df6,#2e9ee8);display:flex;align-items:center;justify-content:center;color:#fff;font-size:4.26667vw;position:fixed}.site-list[data-v-89e61e88]{flex:1;margin-top:2.66667vw;padding-bottom:3.73333vw}.site-list .site-item[data-v-89e61e88]{margin-left:2.13333vw;margin-right:2.13333vw;border-radius:1.06667vw;background-color:#fff}.site-list .site-item[data-v-89e61e88]:not(:last-child){margin-bottom:5.33333vw}.site-list .site-item .site-title[data-v-89e61e88]{background-color:#949494;width:16vw;height:5.33333vw;line-height:2.66667vw;border-radius:1.06667vw 0 2.4vw 0;display:flex;justify-content:center;align-items:center}.site-list .site-item .site-title text[data-v-89e61e88]{font-family:YSBiaoTiHei-regular;color:#fff;font-size:2.66667vw}.site-list .site-item .camera-list[data-v-89e61e88]{padding:0 2.66667vw 0;margin-top:1.6vw;white-space:nowrap;display:flex;justify-content:space-between}.site-list .site-item .camera-list .camera-item .camera-image[data-v-89e61e88]{width:26.66667vw;height:18.66667vw}.site-list .site-item .camera-list .camera-item .camera-title[data-v-89e61e88]{font-size:2.66667vw;text-align:center}.site-list .site-item .site-time[data-v-89e61e88]{padding-right:2.66667vw;margin-top:3.46667vw;border-radius:0 0 1.06667vw 1.06667vw;text-align:right;height:4vw;font-size:2.66667vw;color:#fff;background-color:#d7d7d7}#proj-select[data-v-89e61e88]{border:none;box-shadow:inset 0 0 0 .013333rem #dcdfe6;height:10vw;border-radius:1vw;margin:2vw 2vw 5vw 2vw;outline:none}.empty[data-v-89e61e88]{flex-grow:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty img[data-v-89e61e88]{width:80%} \ No newline at end of file diff --git a/apps/com.awspaas.user.apps.managesite/monitor/css/app.917e69e6.css b/apps/com.awspaas.user.apps.managesite/monitor/css/app.917e69e6.css new file mode 100644 index 0000000..e9dc02c --- /dev/null +++ b/apps/com.awspaas.user.apps.managesite/monitor/css/app.917e69e6.css @@ -0,0 +1,2 @@ +#app{background-color:#f6f6f6} +/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,:after,:before{box-sizing:border-box}html{-moz-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-.26667vw}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item} \ No newline at end of file diff --git a/apps/com.awspaas.user.apps.managesite/monitor/img/empty.e6141d4d.png b/apps/com.awspaas.user.apps.managesite/monitor/img/empty.e6141d4d.png new file mode 100644 index 0000000..8b28751 Binary files /dev/null and b/apps/com.awspaas.user.apps.managesite/monitor/img/empty.e6141d4d.png differ diff --git a/apps/com.awspaas.user.apps.managesite/monitor/js/308.afcd382f.js b/apps/com.awspaas.user.apps.managesite/monitor/js/308.afcd382f.js new file mode 100644 index 0000000..18365fa --- /dev/null +++ b/apps/com.awspaas.user.apps.managesite/monitor/js/308.afcd382f.js @@ -0,0 +1,378 @@ +(self["webpackChunkmonitor"]=self["webpackChunkmonitor"]||[]).push([[308],{3013:function(e){e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},260:function(e,t,i){"use strict";var r,n,s,o=i(3013),a=i(9781),u=i(7854),l=i(614),d=i(111),h=i(2597),c=i(648),f=i(6330),_=i(8880),p=i(8052),m=i(3070).f,g=i(7976),v=i(9518),y=i(7674),E=i(5112),b=i(9711),S=i(9909),A=S.enforce,L=S.get,R=u.Int8Array,w=R&&R.prototype,T=u.Uint8ClampedArray,O=T&&T.prototype,C=R&&v(R),k=w&&v(w),I=Object.prototype,D=u.TypeError,x=E("toStringTag"),M=b("TYPED_ARRAY_TAG"),B="TypedArrayConstructor",P=o&&!!y&&"Opera"!==c(u.opera),U=!1,j={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},N={BigInt64Array:8,BigUint64Array:8},F=function(e){if(!d(e))return!1;var t=c(e);return"DataView"===t||h(j,t)||h(N,t)},G=function(e){var t=v(e);if(d(t)){var i=L(t);return i&&h(i,B)?i[B]:G(t)}},V=function(e){if(!d(e))return!1;var t=c(e);return h(j,t)||h(N,t)},z=function(e){if(V(e))return e;throw D("Target is not a typed array")},H=function(e){if(l(e)&&(!y||g(C,e)))return e;throw D(f(e)+" is not a typed array constructor")},K=function(e,t,i,r){if(a){if(i)for(var n in j){var s=u[n];if(s&&h(s.prototype,e))try{delete s.prototype[e]}catch(o){try{s.prototype[e]=t}catch(l){}}}k[e]&&!i||p(k,e,i?t:P&&w[e]||t,r)}},q=function(e,t,i){var r,n;if(a){if(y){if(i)for(r in j)if(n=u[r],n&&h(n,e))try{delete n[e]}catch(s){}if(C[e]&&!i)return;try{return p(C,e,i?t:P&&C[e]||t)}catch(s){}}for(r in j)n=u[r],!n||n[e]&&!i||p(n,e,t)}};for(r in j)n=u[r],s=n&&n.prototype,s?A(s)[B]=n:P=!1;for(r in N)n=u[r],s=n&&n.prototype,s&&(A(s)[B]=n);if((!P||!l(C)||C===Function.prototype)&&(C=function(){throw D("Incorrect invocation")},P))for(r in j)u[r]&&y(u[r],C);if((!P||!k||k===I)&&(k=C.prototype,P))for(r in j)u[r]&&y(u[r].prototype,k);if(P&&v(O)!==k&&y(O,k),a&&!h(k,x))for(r in U=!0,m(k,x,{get:function(){return d(this)?this[M]:void 0}}),j)u[r]&&_(u[r],M,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:P,TYPED_ARRAY_TAG:U&&M,aTypedArray:z,aTypedArrayConstructor:H,exportTypedArrayMethod:K,exportTypedArrayStaticMethod:q,getTypedArrayConstructor:G,isView:F,isTypedArray:V,TypedArray:C,TypedArrayPrototype:k}},9671:function(e,t,i){var r=i(9974),n=i(8361),s=i(7908),o=i(6244),a=function(e){var t=1==e;return function(i,a,u){var l,d,h=s(i),c=n(h),f=r(a,u),_=o(c);while(_-- >0)if(l=c[_],d=f(l,_,h),d)switch(e){case 0:return l;case 1:return _}return t?-1:void 0}};e.exports={findLast:a(0),findLastIndex:a(1)}},8544:function(e,t,i){var r=i(7293);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},7045:function(e,t,i){var r=i(6339),n=i(3070);e.exports=function(e,t,i){return i.get&&r(i.get,t,{getter:!0}),i.set&&r(i.set,t,{setter:!0}),n.f(e,t,i)}},9974:function(e,t,i){var r=i(1702),n=i(9662),s=i(4374),o=r(r.bind);e.exports=function(e,t){return n(e),void 0===t?e:s?o(e,t):function(){return e.apply(t,arguments)}}},9518:function(e,t,i){var r=i(2597),n=i(614),s=i(7908),o=i(6200),a=i(8544),u=o("IE_PROTO"),l=Object,d=l.prototype;e.exports=a?l.getPrototypeOf:function(e){var t=s(e);if(r(t,u))return t[u];var i=t.constructor;return n(i)&&t instanceof i?i.prototype:t instanceof l?d:null}},7066:function(e,t,i){"use strict";var r=i(9670);e.exports=function(){var e=r(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t}},2087:function(e,t,i){var r=i(7854),n=i(9781),s=i(7045),o=i(7066),a=i(7293),u=r.RegExp,l=u.prototype,d=n&&a((function(){var e=!0;try{u(".","d")}catch(d){e=!1}var t={},i="",r=e?"dgimsy":"gimsy",n=function(e,r){Object.defineProperty(t,e,{get:function(){return i+=r,!0}})},s={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var o in e&&(s.hasIndices="d"),s)n(o,s[o]);var a=Object.getOwnPropertyDescriptor(l,"flags").get.call(t);return a!==r||i!==r}));d&&s(l,"flags",{configurable:!0,get:o})},8675:function(e,t,i){"use strict";var r=i(260),n=i(6244),s=i(9303),o=r.aTypedArray,a=r.exportTypedArrayMethod;a("at",(function(e){var t=o(this),i=n(t),r=s(e),a=r>=0?r:i+r;return a<0||a>=i?void 0:t[a]}))},4590:function(e,t,i){"use strict";var r=i(260),n=i(9671).findLastIndex,s=r.aTypedArray,o=r.exportTypedArrayMethod;o("findLastIndex",(function(e){return n(s(this),e,arguments.length>1?arguments[1]:void 0)}))},3408:function(e,t,i){"use strict";var r=i(260),n=i(9671).findLast,s=r.aTypedArray,o=r.exportTypedArrayMethod;o("findLast",(function(e){return n(s(this),e,arguments.length>1?arguments[1]:void 0)}))},2747:function(e,t,i){i(8675),i(3408),i(4590),i(1703),i(7658),i(541),i(2087),function(t,i){e.exports=i()}(self,(function(){return function(){var e={"./node_modules/es6-promise/dist/es6-promise.js": +/*!******************************************************!*\ + !*** ./node_modules/es6-promise/dist/es6-promise.js ***! + \******************************************************/ +function(e,t,i){ +/*! + * @overview es6-promise - a tiny implementation of Promises/A+. + * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) + * @license Licensed under MIT license + * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE + * @version v4.2.8+1e68dce6 + */ +(function(t,i){e.exports=i()})(0,(function(){"use strict";function e(e){var t=typeof e;return null!==e&&("object"===t||"function"===t)}function t(e){return"function"===typeof e}var r=void 0;r=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var n=r,s=0,o=void 0,a=void 0,u=function(e,t){b[s]=e,b[s+1]=t,s+=2,2===s&&(a?a(S):L())};function l(e){a=e}function d(e){u=e}var h="undefined"!==typeof window?window:void 0,c=h||{},f=c.MutationObserver||c.WebKitMutationObserver,_="undefined"===typeof self&&"undefined"!==typeof process&&"[object process]"==={}.toString.call(process),p="undefined"!==typeof Uint8ClampedArray&&"undefined"!==typeof importScripts&&"undefined"!==typeof MessageChannel;function m(){return function(){return process.nextTick(S)}}function g(){return"undefined"!==typeof o?function(){o(S)}:E()}function v(){var e=0,t=new f(S),i=document.createTextNode("");return t.observe(i,{characterData:!0}),function(){i.data=e=++e%2}}function y(){var e=new MessageChannel;return e.port1.onmessage=S,function(){return e.port2.postMessage(0)}}function E(){var e=setTimeout;return function(){return e(S,1)}}var b=new Array(1e3);function S(){for(var e=0;e0&&a.length>s&&!a.warned){a.warned=!0;var d=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");d.name="MaxListenersExceededWarning",d.emitter=e,d.type=t,d.count=a.length,n(d)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function c(e,t,i){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:i},n=h.bind(r);return n.listener=i,r.wrapFn=n,n}function f(e,t,i){var r=e._events;if(void 0===r)return[];var n=r[t];return void 0===n?[]:"function"===typeof n?i?[n.listener||n]:[n]:i?g(n):p(n,n.length)}function _(e){var t=this._events;if(void 0!==t){var i=t[e];if("function"===typeof i)return 1;if(void 0!==i)return i.length}return 0}function p(e,t){for(var i=new Array(t),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var u=s[e];if(void 0===u)return!1;if("function"===typeof u)r(u,this,t);else{var l=u.length,d=p(u,l);for(i=0;i=0;s--)if(i[s]===t||i[s].listener===t){o=i[s].listener,n=s;break}if(n<0)return this;0===n?i.shift():m(i,n),1===i.length&&(r[e]=i[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,i,r;if(i=this._events,void 0===i)return this;if(void 0===i.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==i[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete i[e]),this;if(0===arguments.length){var n,s=Object.keys(i);for(r=0;r=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return f(this,e,!0)},o.prototype.rawListeners=function(e){return f(this,e,!1)},o.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):_.call(e,t)},o.prototype.listenerCount=_,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},"./node_modules/webworkify-webpack/index.js": +/*!**************************************************!*\ + !*** ./node_modules/webworkify-webpack/index.js ***! + \**************************************************/ +function(e,t,i){function r(e){var t={};function i(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=e,i.c=t,i.i=function(e){return e},i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},i.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var r=i(i.s=ENTRY_MODULE);return r.default||r}var n="[\\.|\\-|\\+|\\w|/|@]+",s="\\(\\s*(/\\*.*?\\*/)?\\s*.*?("+n+").*?\\)";function o(e){return(e+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function a(e){return!isNaN(1*e)}function u(e,t,r){var u={};u[r]=[];var l=t.toString(),d=l.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);if(!d)return u;var h,c=d[1],f=new RegExp("(\\\\n|\\W)"+o(c)+s,"g");while(h=f.exec(l))"dll-reference"!==h[3]&&u[r].push(h[3]);f=new RegExp("\\("+o(c)+'\\("(dll-reference\\s('+n+'))"\\)\\)'+s,"g");while(h=f.exec(l))e[h[2]]||(u[r].push(h[1]),e[h[2]]=i(h[1]).m),u[h[2]]=u[h[2]]||[],u[h[2]].push(h[4]);for(var _=Object.keys(u),p=0;p<_.length;p++)for(var m=0;m0}),!1)}function d(e,t){var i={main:[t]},r={main:[]},n={main:{}};while(l(i))for(var s=Object.keys(i),o=0;o=e[n]&&t0&&e[0].originalDts=t[n].dts&&et[r].lastSample.originalDts&&e=t[r].lastSample.originalDts&&(r===t.length-1||r0&&(n=this._searchNearestSegmentBefore(i.originalBeginDts)+1),this._lastAppendLocation=n,this._list.splice(n,0,i)},e.prototype.getLastSegmentBefore=function(e){var t=this._searchNearestSegmentBefore(e);return t>=0?this._list[t]:null},e.prototype.getLastSampleBefore=function(e){var t=this.getLastSegmentBefore(e);return null!=t?t.lastSample:null},e.prototype.getLastSyncPointBefore=function(e){var t=this._searchNearestSegmentBefore(e),i=this._list[t].syncPoints;while(0===i.length&&t>0)t--,i=this._list[t].syncPoints;return i.length>0?i[i.length-1]:null},e}()},"./src/core/mse-controller.js": +/*!************************************!*\ + !*** ./src/core/mse-controller.js ***! + \************************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! events */ +"./node_modules/events/events.js"),n=i.n(r),s=i( +/*! ../utils/logger.js */ +"./src/utils/logger.js"),o=i( +/*! ../utils/browser.js */ +"./src/utils/browser.js"),a=i( +/*! ./mse-events.js */ +"./src/core/mse-events.js"),u=i( +/*! ./media-segment-info.js */ +"./src/core/media-segment-info.js"),l=i( +/*! ../utils/exception.js */ +"./src/utils/exception.js"),d=function(){function e(e){this.TAG="MSEController",this._config=e,this._emitter=new(n()),this._config.isLive&&void 0==this._config.autoCleanupSourceBuffer&&(this._config.autoCleanupSourceBuffer=!0),this.e={onSourceOpen:this._onSourceOpen.bind(this),onSourceEnded:this._onSourceEnded.bind(this),onSourceClose:this._onSourceClose.bind(this),onSourceBufferError:this._onSourceBufferError.bind(this),onSourceBufferUpdateEnd:this._onSourceBufferUpdateEnd.bind(this)},this._mediaSource=null,this._mediaSourceObjectURL=null,this._mediaElement=null,this._isBufferFull=!1,this._hasPendingEos=!1,this._requireSetMediaDuration=!1,this._pendingMediaDuration=0,this._pendingSourceBufferInit=[],this._mimeTypes={video:null,audio:null},this._sourceBuffers={video:null,audio:null},this._lastInitSegments={video:null,audio:null},this._pendingSegments={video:[],audio:[]},this._pendingRemoveRanges={video:[],audio:[]},this._idrList=new u.IDRSampleList}return e.prototype.destroy=function(){(this._mediaElement||this._mediaSource)&&this.detachMediaElement(),this.e=null,this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.attachMediaElement=function(e){if(this._mediaSource)throw new l.IllegalStateException("MediaSource has been attached to an HTMLMediaElement!");var t=this._mediaSource=new window.MediaSource;t.addEventListener("sourceopen",this.e.onSourceOpen),t.addEventListener("sourceended",this.e.onSourceEnded),t.addEventListener("sourceclose",this.e.onSourceClose),this._mediaElement=e,this._mediaSourceObjectURL=window.URL.createObjectURL(this._mediaSource),e.src=this._mediaSourceObjectURL},e.prototype.detachMediaElement=function(){if(this._mediaSource){var e=this._mediaSource;for(var t in this._sourceBuffers){var i=this._pendingSegments[t];i.splice(0,i.length),this._pendingSegments[t]=null,this._pendingRemoveRanges[t]=null,this._lastInitSegments[t]=null;var r=this._sourceBuffers[t];if(r){if("closed"!==e.readyState){try{e.removeSourceBuffer(r)}catch(n){s.default.e(this.TAG,n.message)}r.removeEventListener("error",this.e.onSourceBufferError),r.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd)}this._mimeTypes[t]=null,this._sourceBuffers[t]=null}}if("open"===e.readyState)try{e.endOfStream()}catch(n){s.default.e(this.TAG,n.message)}e.removeEventListener("sourceopen",this.e.onSourceOpen),e.removeEventListener("sourceended",this.e.onSourceEnded),e.removeEventListener("sourceclose",this.e.onSourceClose),this._pendingSourceBufferInit=[],this._isBufferFull=!1,this._idrList.clear(),this._mediaSource=null}this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement=null),this._mediaSourceObjectURL&&(window.URL.revokeObjectURL(this._mediaSourceObjectURL),this._mediaSourceObjectURL=null)},e.prototype.appendInitSegment=function(e,t){if(!this._mediaSource||"open"!==this._mediaSource.readyState)return this._pendingSourceBufferInit.push(e),void this._pendingSegments[e.type].push(e);var i=e,r=""+i.container;i.codec&&i.codec.length>0&&(r+=";codecs="+i.codec);var n=!1;if(s.default.v(this.TAG,"Received Initialization Segment, mimeType: "+r),this._lastInitSegments[i.type]=i,r!==this._mimeTypes[i.type]){if(this._mimeTypes[i.type])s.default.v(this.TAG,"Notice: "+i.type+" mimeType changed, origin: "+this._mimeTypes[i.type]+", target: "+r);else{n=!0;try{var u=this._sourceBuffers[i.type]=this._mediaSource.addSourceBuffer(r);u.addEventListener("error",this.e.onSourceBufferError),u.addEventListener("updateend",this.e.onSourceBufferUpdateEnd)}catch(l){return s.default.e(this.TAG,l.message),void this._emitter.emit(a.default.ERROR,{code:l.code,msg:l.message})}}this._mimeTypes[i.type]=r}t||this._pendingSegments[i.type].push(i),n||this._sourceBuffers[i.type]&&!this._sourceBuffers[i.type].updating&&this._doAppendSegments(),o.default.safari&&"audio/mpeg"===i.container&&i.mediaDuration>0&&(this._requireSetMediaDuration=!0,this._pendingMediaDuration=i.mediaDuration/1e3,this._updateMediaSourceDuration())},e.prototype.appendMediaSegment=function(e){var t=e;this._pendingSegments[t.type].push(t),this._config.autoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanupSourceBuffer();var i=this._sourceBuffers[t.type];!i||i.updating||this._hasPendingRemoveRanges()||this._doAppendSegments()},e.prototype.seek=function(e){for(var t in this._sourceBuffers)if(this._sourceBuffers[t]){var i=this._sourceBuffers[t];if("open"===this._mediaSource.readyState)try{i.abort()}catch(d){s.default.e(this.TAG,d.message)}this._idrList.clear();var r=this._pendingSegments[t];if(r.splice(0,r.length),"closed"!==this._mediaSource.readyState){for(var n=0;n=1&&e-r.start(0)>=this._config.autoCleanupMaxBackwardDuration)return!0}}return!1},e.prototype._doCleanupSourceBuffer=function(){var e=this._mediaElement.currentTime;for(var t in this._sourceBuffers){var i=this._sourceBuffers[t];if(i){for(var r=i.buffered,n=!1,s=0;s=this._config.autoCleanupMaxBackwardDuration){n=!0;var u=e-this._config.autoCleanupMinBackwardDuration;this._pendingRemoveRanges[t].push({start:o,end:u})}}else a0&&(isNaN(t)||i>t)&&(s.default.v(this.TAG,"Update MediaSource duration from "+t+" to "+i),this._mediaSource.duration=i),this._requireSetMediaDuration=!1,this._pendingMediaDuration=0}},e.prototype._doRemoveRanges=function(){for(var e in this._pendingRemoveRanges)if(this._sourceBuffers[e]&&!this._sourceBuffers[e].updating){var t=this._sourceBuffers[e],i=this._pendingRemoveRanges[e];while(i.length&&!t.updating){var r=i.shift();t.remove(r.start,r.end)}}},e.prototype._doAppendSegments=function(){var e=this._pendingSegments;for(var t in e)if(this._sourceBuffers[t]&&!this._sourceBuffers[t].updating&&e[t].length>0){var i=e[t].shift();if(i.timestampOffset){var r=this._sourceBuffers[t].timestampOffset,n=i.timestampOffset/1e3,o=Math.abs(r-n);o>.1&&(s.default.v(this.TAG,"Update MPEG audio timestampOffset from "+r+" to "+n),this._sourceBuffers[t].timestampOffset=n),delete i.timestampOffset}if(!i.data||0===i.data.byteLength)continue;try{this._sourceBuffers[t].appendBuffer(i.data),this._isBufferFull=!1,"video"===t&&i.hasOwnProperty("info")&&this._idrList.appendArray(i.info.syncPoints)}catch(u){this._pendingSegments[t].unshift(i),22===u.code?(this._isBufferFull||this._emitter.emit(a.default.BUFFER_FULL),this._isBufferFull=!0):(s.default.e(this.TAG,u.message),this._emitter.emit(a.default.ERROR,{code:u.code,msg:u.message}))}}},e.prototype._onSourceOpen=function(){if(s.default.v(this.TAG,"MediaSource onSourceOpen"),this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._pendingSourceBufferInit.length>0){var e=this._pendingSourceBufferInit;while(e.length){var t=e.shift();this.appendInitSegment(t,!0)}}this._hasPendingSegments()&&this._doAppendSegments(),this._emitter.emit(a.default.SOURCE_OPEN)},e.prototype._onSourceEnded=function(){s.default.v(this.TAG,"MediaSource onSourceEnded")},e.prototype._onSourceClose=function(){s.default.v(this.TAG,"MediaSource onSourceClose"),this._mediaSource&&null!=this.e&&(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._mediaSource.removeEventListener("sourceended",this.e.onSourceEnded),this._mediaSource.removeEventListener("sourceclose",this.e.onSourceClose))},e.prototype._hasPendingSegments=function(){var e=this._pendingSegments;return e.video.length>0||e.audio.length>0},e.prototype._hasPendingRemoveRanges=function(){var e=this._pendingRemoveRanges;return e.video.length>0||e.audio.length>0},e.prototype._onSourceBufferUpdateEnd=function(){this._requireSetMediaDuration?this._updateMediaSourceDuration():this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()?this._doAppendSegments():this._hasPendingEos&&this.endOfStream(),this._emitter.emit(a.default.UPDATE_END)},e.prototype._onSourceBufferError=function(e){s.default.e(this.TAG,"SourceBuffer Error: "+e)},e}();t["default"]=d},"./src/core/mse-events.js": +/*!********************************!*\ + !*** ./src/core/mse-events.js ***! + \********************************/ +function(e,t,i){"use strict";i.r(t);var r={ERROR:"error",SOURCE_OPEN:"source_open",UPDATE_END:"update_end",BUFFER_FULL:"buffer_full"};t["default"]=r},"./src/core/transmuxer.js": +/*!********************************!*\ + !*** ./src/core/transmuxer.js ***! + \********************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! events */ +"./node_modules/events/events.js"),n=i.n(r),s=i( +/*! webworkify-webpack */ +"./node_modules/webworkify-webpack/index.js"),o=i.n(s),a=i( +/*! ../utils/logger.js */ +"./src/utils/logger.js"),u=i( +/*! ../utils/logging-control.js */ +"./src/utils/logging-control.js"),l=i( +/*! ./transmuxing-controller.js */ +"./src/core/transmuxing-controller.js"),d=i( +/*! ./transmuxing-events.js */ +"./src/core/transmuxing-events.js"),h=i( +/*! ./media-info.js */ +"./src/core/media-info.js"),c=function(){function e(e,t){if(this.TAG="Transmuxer",this._emitter=new(n()),t.enableWorker&&"undefined"!==typeof Worker)try{this._worker=o()( +/*! ./transmuxing-worker */ +"./src/core/transmuxing-worker.js"),this._workerDestroying=!1,this._worker.addEventListener("message",this._onWorkerMessage.bind(this)),this._worker.postMessage({cmd:"init",param:[e,t]}),this.e={onLoggingConfigChanged:this._onLoggingConfigChanged.bind(this)},u.default.registerListener(this.e.onLoggingConfigChanged),this._worker.postMessage({cmd:"logging_config",param:u.default.getConfig()})}catch(r){a.default.e(this.TAG,"Error while initialize transmuxing worker, fallback to inline transmuxing"),this._worker=null,this._controller=new l.default(e,t)}else this._controller=new l.default(e,t);if(this._controller){var i=this._controller;i.on(d.default.IO_ERROR,this._onIOError.bind(this)),i.on(d.default.DEMUX_ERROR,this._onDemuxError.bind(this)),i.on(d.default.INIT_SEGMENT,this._onInitSegment.bind(this)),i.on(d.default.MEDIA_SEGMENT,this._onMediaSegment.bind(this)),i.on(d.default.LOADING_COMPLETE,this._onLoadingComplete.bind(this)),i.on(d.default.RECOVERED_EARLY_EOF,this._onRecoveredEarlyEof.bind(this)),i.on(d.default.MEDIA_INFO,this._onMediaInfo.bind(this)),i.on(d.default.METADATA_ARRIVED,this._onMetaDataArrived.bind(this)),i.on(d.default.SCRIPTDATA_ARRIVED,this._onScriptDataArrived.bind(this)),i.on(d.default.STATISTICS_INFO,this._onStatisticsInfo.bind(this)),i.on(d.default.RECOMMEND_SEEKPOINT,this._onRecommendSeekpoint.bind(this))}}return e.prototype.destroy=function(){this._worker?this._workerDestroying||(this._workerDestroying=!0,this._worker.postMessage({cmd:"destroy"}),u.default.removeListener(this.e.onLoggingConfigChanged),this.e=null):(this._controller.destroy(),this._controller=null),this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.hasWorker=function(){return null!=this._worker},e.prototype.open=function(){this._worker?this._worker.postMessage({cmd:"start"}):this._controller.start()},e.prototype.close=function(){this._worker?this._worker.postMessage({cmd:"stop"}):this._controller.stop()},e.prototype.seek=function(e){this._worker?this._worker.postMessage({cmd:"seek",param:e}):this._controller.seek(e)},e.prototype.pause=function(){this._worker?this._worker.postMessage({cmd:"pause"}):this._controller.pause()},e.prototype.resume=function(){this._worker?this._worker.postMessage({cmd:"resume"}):this._controller.resume()},e.prototype._onInitSegment=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(d.default.INIT_SEGMENT,e,t)}))},e.prototype._onMediaSegment=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(d.default.MEDIA_SEGMENT,e,t)}))},e.prototype._onLoadingComplete=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(d.default.LOADING_COMPLETE)}))},e.prototype._onRecoveredEarlyEof=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(d.default.RECOVERED_EARLY_EOF)}))},e.prototype._onMediaInfo=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(d.default.MEDIA_INFO,e)}))},e.prototype._onMetaDataArrived=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(d.default.METADATA_ARRIVED,e)}))},e.prototype._onScriptDataArrived=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(d.default.SCRIPTDATA_ARRIVED,e)}))},e.prototype._onStatisticsInfo=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(d.default.STATISTICS_INFO,e)}))},e.prototype._onIOError=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(d.default.IO_ERROR,e,t)}))},e.prototype._onDemuxError=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(d.default.DEMUX_ERROR,e,t)}))},e.prototype._onRecommendSeekpoint=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(d.default.RECOMMEND_SEEKPOINT,e)}))},e.prototype._onLoggingConfigChanged=function(e){this._worker&&this._worker.postMessage({cmd:"logging_config",param:e})},e.prototype._onWorkerMessage=function(e){var t=e.data,i=t.data;if("destroyed"===t.msg||this._workerDestroying)return this._workerDestroying=!1,this._worker.terminate(),void(this._worker=null);switch(t.msg){case d.default.INIT_SEGMENT:case d.default.MEDIA_SEGMENT:this._emitter.emit(t.msg,i.type,i.data);break;case d.default.LOADING_COMPLETE:case d.default.RECOVERED_EARLY_EOF:this._emitter.emit(t.msg);break;case d.default.MEDIA_INFO:Object.setPrototypeOf(i,h.default.prototype),this._emitter.emit(t.msg,i);break;case d.default.METADATA_ARRIVED:case d.default.SCRIPTDATA_ARRIVED:case d.default.STATISTICS_INFO:this._emitter.emit(t.msg,i);break;case d.default.IO_ERROR:case d.default.DEMUX_ERROR:this._emitter.emit(t.msg,i.type,i.info);break;case d.default.RECOMMEND_SEEKPOINT:this._emitter.emit(t.msg,i);break;case"logcat_callback":a.default.emitter.emit("log",i.type,i.logcat);break;default:break}},e}();t["default"]=c},"./src/core/transmuxing-controller.js": +/*!********************************************!*\ + !*** ./src/core/transmuxing-controller.js ***! + \********************************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! events */ +"./node_modules/events/events.js"),n=i.n(r),s=i( +/*! ../utils/logger.js */ +"./src/utils/logger.js"),o=i( +/*! ../utils/browser.js */ +"./src/utils/browser.js"),a=i( +/*! ./media-info.js */ +"./src/core/media-info.js"),u=i( +/*! ../demux/flv-demuxer.js */ +"./src/demux/flv-demuxer.js"),l=i( +/*! ../remux/mp4-remuxer.js */ +"./src/remux/mp4-remuxer.js"),d=i( +/*! ../demux/demux-errors.js */ +"./src/demux/demux-errors.js"),h=i( +/*! ../io/io-controller.js */ +"./src/io/io-controller.js"),c=i( +/*! ./transmuxing-events.js */ +"./src/core/transmuxing-events.js"),f=function(){function e(e,t){this.TAG="TransmuxingController",this._emitter=new(n()),this._config=t,e.segments||(e.segments=[{duration:e.duration,filesize:e.filesize,url:e.url}]),"boolean"!==typeof e.cors&&(e.cors=!0),"boolean"!==typeof e.withCredentials&&(e.withCredentials=!1),this._mediaDataSource=e,this._currentSegmentIndex=0;var i=0;this._mediaDataSource.segments.forEach((function(r){r.timestampBase=i,i+=r.duration,r.cors=e.cors,r.withCredentials=e.withCredentials,t.referrerPolicy&&(r.referrerPolicy=t.referrerPolicy)})),isNaN(i)||this._mediaDataSource.duration===i||(this._mediaDataSource.duration=i),this._mediaInfo=null,this._demuxer=null,this._remuxer=null,this._ioctl=null,this._pendingSeekTime=null,this._pendingResolveSeekPoint=null,this._statisticsReporter=null}return e.prototype.destroy=function(){this._mediaInfo=null,this._mediaDataSource=null,this._statisticsReporter&&this._disableStatisticsReporter(),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null),this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.start=function(){this._loadSegment(0),this._enableStatisticsReporter()},e.prototype._loadSegment=function(e,t){this._currentSegmentIndex=e;var i=this._mediaDataSource.segments[e],r=this._ioctl=new h.default(i,this._config,e);r.onError=this._onIOException.bind(this),r.onSeeked=this._onIOSeeked.bind(this),r.onComplete=this._onIOComplete.bind(this),r.onRedirect=this._onIORedirect.bind(this),r.onRecoveredEarlyEof=this._onIORecoveredEarlyEof.bind(this),t?this._demuxer.bindDataSource(this._ioctl):r.onDataArrival=this._onInitChunkArrival.bind(this),r.open(t)},e.prototype.stop=function(){this._internalAbort(),this._disableStatisticsReporter()},e.prototype._internalAbort=function(){this._ioctl&&(this._ioctl.destroy(),this._ioctl=null)},e.prototype.pause=function(){this._ioctl&&this._ioctl.isWorking()&&(this._ioctl.pause(),this._disableStatisticsReporter())},e.prototype.resume=function(){this._ioctl&&this._ioctl.isPaused()&&(this._ioctl.resume(),this._enableStatisticsReporter())},e.prototype.seek=function(e){if(null!=this._mediaInfo&&this._mediaInfo.isSeekable()){var t=this._searchSegmentIndexContains(e);if(t===this._currentSegmentIndex){var i=this._mediaInfo.segments[t];if(void 0==i)this._pendingSeekTime=e;else{var r=i.getNearestKeyframe(e);this._remuxer.seek(r.milliseconds),this._ioctl.seek(r.fileposition),this._pendingResolveSeekPoint=r.milliseconds}}else{var n=this._mediaInfo.segments[t];if(void 0==n)this._pendingSeekTime=e,this._internalAbort(),this._remuxer.seek(),this._remuxer.insertDiscontinuity(),this._loadSegment(t);else{r=n.getNearestKeyframe(e);this._internalAbort(),this._remuxer.seek(e),this._remuxer.insertDiscontinuity(),this._demuxer.resetMediaInfo(),this._demuxer.timestampBase=this._mediaDataSource.segments[t].timestampBase,this._loadSegment(t,r.fileposition),this._pendingResolveSeekPoint=r.milliseconds,this._reportSegmentMediaInfo(t)}}this._enableStatisticsReporter()}},e.prototype._searchSegmentIndexContains=function(e){for(var t=this._mediaDataSource.segments,i=t.length-1,r=0;r0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,n=this._demuxer.parseChunks(e,t);else if((r=u.default.probe(e)).match){this._demuxer=new u.default(r,this._config),this._remuxer||(this._remuxer=new l.default(this._config));var o=this._mediaDataSource;void 0==o.duration||isNaN(o.duration)||(this._demuxer.overridedDuration=o.duration),"boolean"===typeof o.hasAudio&&(this._demuxer.overridedHasAudio=o.hasAudio),"boolean"===typeof o.hasVideo&&(this._demuxer.overridedHasVideo=o.hasVideo),this._demuxer.timestampBase=o.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),n=this._demuxer.parseChunks(e,t)}else r=null,s.default.e(this.TAG,"Non-FLV, Unsupported media type!"),Promise.resolve().then((function(){i._internalAbort()})),this._emitter.emit(c.default.DEMUX_ERROR,d.default.FORMAT_UNSUPPORTED,"Non-FLV, Unsupported media type"),n=0;return n},e.prototype._onMediaInfo=function(e){var t=this;null==this._mediaInfo&&(this._mediaInfo=Object.assign({},e),this._mediaInfo.keyframesIndex=null,this._mediaInfo.segments=[],this._mediaInfo.segmentCount=this._mediaDataSource.segments.length,Object.setPrototypeOf(this._mediaInfo,a.default.prototype));var i=Object.assign({},e);Object.setPrototypeOf(i,a.default.prototype),this._mediaInfo.segments[this._currentSegmentIndex]=i,this._reportSegmentMediaInfo(this._currentSegmentIndex),null!=this._pendingSeekTime&&Promise.resolve().then((function(){var e=t._pendingSeekTime;t._pendingSeekTime=null,t.seek(e)}))},e.prototype._onMetaDataArrived=function(e){this._emitter.emit(c.default.METADATA_ARRIVED,e)},e.prototype._onScriptDataArrived=function(e){this._emitter.emit(c.default.SCRIPTDATA_ARRIVED,e)},e.prototype._onIOSeeked=function(){this._remuxer.insertDiscontinuity()},e.prototype._onIOComplete=function(e){var t=e,i=t+1;i0&&i[0].originalDts===r&&(r=i[0].pts),this._emitter.emit(c.default.RECOMMEND_SEEKPOINT,r)}},e.prototype._enableStatisticsReporter=function(){null==this._statisticsReporter&&(this._statisticsReporter=self.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval))},e.prototype._disableStatisticsReporter=function(){this._statisticsReporter&&(self.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},e.prototype._reportSegmentMediaInfo=function(e){var t=this._mediaInfo.segments[e],i=Object.assign({},t);i.duration=this._mediaInfo.duration,i.segmentCount=this._mediaInfo.segmentCount,delete i.segments,delete i.keyframesIndex,this._emitter.emit(c.default.MEDIA_INFO,i)},e.prototype._reportStatisticsInfo=function(){var e={};e.url=this._ioctl.currentURL,e.hasRedirect=this._ioctl.hasRedirect,e.hasRedirect&&(e.redirectedURL=this._ioctl.currentRedirectedURL),e.speed=this._ioctl.currentSpeed,e.loaderType=this._ioctl.loaderType,e.currentSegmentIndex=this._currentSegmentIndex,e.totalSegmentCount=this._mediaDataSource.segments.length,this._emitter.emit(c.default.STATISTICS_INFO,e)},e}();t["default"]=f},"./src/core/transmuxing-events.js": +/*!****************************************!*\ + !*** ./src/core/transmuxing-events.js ***! + \****************************************/ +function(e,t,i){"use strict";i.r(t);var r={IO_ERROR:"io_error",DEMUX_ERROR:"demux_error",INIT_SEGMENT:"init_segment",MEDIA_SEGMENT:"media_segment",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info",RECOMMEND_SEEKPOINT:"recommend_seekpoint"};t["default"]=r},"./src/core/transmuxing-worker.js": +/*!****************************************!*\ + !*** ./src/core/transmuxing-worker.js ***! + \****************************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! ../utils/logging-control.js */ +"./src/utils/logging-control.js"),n=i( +/*! ../utils/polyfill.js */ +"./src/utils/polyfill.js"),s=i( +/*! ./transmuxing-controller.js */ +"./src/core/transmuxing-controller.js"),o=i( +/*! ./transmuxing-events.js */ +"./src/core/transmuxing-events.js"),a=function(e){var t=null,i=v.bind(this);function a(t,i){var r={msg:o.default.INIT_SEGMENT,data:{type:t,data:i}};e.postMessage(r,[i.data])}function u(t,i){var r={msg:o.default.MEDIA_SEGMENT,data:{type:t,data:i}};e.postMessage(r,[i.data])}function l(){var t={msg:o.default.LOADING_COMPLETE};e.postMessage(t)}function d(){var t={msg:o.default.RECOVERED_EARLY_EOF};e.postMessage(t)}function h(t){var i={msg:o.default.MEDIA_INFO,data:t};e.postMessage(i)}function c(t){var i={msg:o.default.METADATA_ARRIVED,data:t};e.postMessage(i)}function f(t){var i={msg:o.default.SCRIPTDATA_ARRIVED,data:t};e.postMessage(i)}function _(t){var i={msg:o.default.STATISTICS_INFO,data:t};e.postMessage(i)}function p(t,i){e.postMessage({msg:o.default.IO_ERROR,data:{type:t,info:i}})}function m(t,i){e.postMessage({msg:o.default.DEMUX_ERROR,data:{type:t,info:i}})}function g(t){e.postMessage({msg:o.default.RECOMMEND_SEEKPOINT,data:t})}function v(t,i){e.postMessage({msg:"logcat_callback",data:{type:t,logcat:i}})}n.default.install(),e.addEventListener("message",(function(n){switch(n.data.cmd){case"init":t=new s.default(n.data.param[0],n.data.param[1]),t.on(o.default.IO_ERROR,p.bind(this)),t.on(o.default.DEMUX_ERROR,m.bind(this)),t.on(o.default.INIT_SEGMENT,a.bind(this)),t.on(o.default.MEDIA_SEGMENT,u.bind(this)),t.on(o.default.LOADING_COMPLETE,l.bind(this)),t.on(o.default.RECOVERED_EARLY_EOF,d.bind(this)),t.on(o.default.MEDIA_INFO,h.bind(this)),t.on(o.default.METADATA_ARRIVED,c.bind(this)),t.on(o.default.SCRIPTDATA_ARRIVED,f.bind(this)),t.on(o.default.STATISTICS_INFO,_.bind(this)),t.on(o.default.RECOMMEND_SEEKPOINT,g.bind(this));break;case"destroy":t&&(t.destroy(),t=null),e.postMessage({msg:"destroyed"});break;case"start":t.start();break;case"stop":t.stop();break;case"seek":t.seek(n.data.param);break;case"pause":t.pause();break;case"resume":t.resume();break;case"logging_config":var v=n.data.param;r.default.applyConfig(v),!0===v.enableCallback?r.default.addLogListener(i):r.default.removeLogListener(i);break}}))};t["default"]=a},"./src/demux/amf-parser.js": +/*!*********************************!*\ + !*** ./src/demux/amf-parser.js ***! + \*********************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! ../utils/logger.js */ +"./src/utils/logger.js"),n=i( +/*! ../utils/utf8-conv.js */ +"./src/utils/utf8-conv.js"),s=i( +/*! ../utils/exception.js */ +"./src/utils/exception.js"),o=function(){var e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),256===new Int16Array(e)[0]}(),a=function(){function e(){}return e.parseScriptData=function(t,i,n){var s={};try{var o=e.parseValue(t,i,n),a=e.parseValue(t,i+o.size,n-o.size);s[o.data]=a.data}catch(u){r.default.e("AMF",u.toString())}return s},e.parseObject=function(t,i,r){if(r<3)throw new s.IllegalStateException("Data not enough when parse ScriptDataObject");var n=e.parseString(t,i,r),o=e.parseValue(t,i+n.size,r-n.size),a=o.objectEnd;return{data:{name:n.data,value:o.data},size:n.size+o.size,objectEnd:a}},e.parseVariable=function(t,i,r){return e.parseObject(t,i,r)},e.parseString=function(e,t,i){if(i<2)throw new s.IllegalStateException("Data not enough when parse String");var r,a=new DataView(e,t,i),u=a.getUint16(0,!o);return r=u>0?(0,n.default)(new Uint8Array(e,t+2,u)):"",{data:r,size:2+u}},e.parseLongString=function(e,t,i){if(i<4)throw new s.IllegalStateException("Data not enough when parse LongString");var r,a=new DataView(e,t,i),u=a.getUint32(0,!o);return r=u>0?(0,n.default)(new Uint8Array(e,t+4,u)):"",{data:r,size:4+u}},e.parseDate=function(e,t,i){if(i<10)throw new s.IllegalStateException("Data size invalid when parse Date");var r=new DataView(e,t,i),n=r.getFloat64(0,!o),a=r.getInt16(8,!o);return n+=60*a*1e3,{data:new Date(n),size:10}},e.parseValue=function(t,i,n){if(n<1)throw new s.IllegalStateException("Data not enough when parse Value");var a,u=new DataView(t,i,n),l=1,d=u.getUint8(0),h=!1;try{switch(d){case 0:a=u.getFloat64(1,!o),l+=8;break;case 1:var c=u.getUint8(1);a=!!c,l+=1;break;case 2:var f=e.parseString(t,i+1,n-1);a=f.data,l+=f.size;break;case 3:a={};var _=0;9===(16777215&u.getUint32(n-4,!o))&&(_=3);while(l32)throw new r.InvalidArgumentException("ExpGolomb: readBits() bits exceeded max 32bits!");if(e<=this._current_word_bits_left){var t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}var i=this._current_word_bits_left?this._current_word:0;i>>>=32-this._current_word_bits_left;var n=e-this._current_word_bits_left;this._fillCurrentWord();var s=Math.min(n,this._current_word_bits_left),o=this._current_word>>>32-s;return this._current_word<<=s,this._current_word_bits_left-=s,i=i<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()},e.prototype.readUEG=function(){var e=this._skipLeadingZero();return this.readBits(e+1)-1},e.prototype.readSEG=function(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)},e}();t["default"]=n},"./src/demux/flv-demuxer.js": +/*!**********************************!*\ + !*** ./src/demux/flv-demuxer.js ***! + \**********************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! ../utils/logger.js */ +"./src/utils/logger.js"),n=i( +/*! ./amf-parser.js */ +"./src/demux/amf-parser.js"),s=i( +/*! ./sps-parser.js */ +"./src/demux/sps-parser.js"),o=i( +/*! ./demux-errors.js */ +"./src/demux/demux-errors.js"),a=i( +/*! ../core/media-info.js */ +"./src/core/media-info.js"),u=i( +/*! ../utils/exception.js */ +"./src/utils/exception.js");function l(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}var d=function(){function e(e,t){this.TAG="FLVDemuxer",this._config=t,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._dataOffset=e.dataOffset,this._firstParse=!0,this._dispatch=!1,this._hasAudio=e.hasAudioTrack,this._hasVideo=e.hasVideoTrack,this._hasAudioFlagOverrided=!1,this._hasVideoFlagOverrided=!1,this._audioInitialMetadataDispatched=!1,this._videoInitialMetadataDispatched=!1,this._mediaInfo=new a.default,this._mediaInfo.hasAudio=this._hasAudio,this._mediaInfo.hasVideo=this._hasVideo,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._naluLengthSize=4,this._timestampBase=0,this._timescale=1e3,this._duration=0,this._durationOverrided=!1,this._referenceFrameRate={fixed:!0,fps:23.976,fps_num:23976,fps_den:1e3},this._flvSoundRateTable=[5500,11025,22050,44100,48e3],this._mpegSamplingRates=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],this._mpegAudioV10SampleRateTable=[44100,48e3,32e3,0],this._mpegAudioV20SampleRateTable=[22050,24e3,16e3,0],this._mpegAudioV25SampleRateTable=[11025,12e3,8e3,0],this._mpegAudioL1BitRateTable=[0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1],this._mpegAudioL2BitRateTable=[0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],this._mpegAudioL3BitRateTable=[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],this._videoTrack={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this._audioTrack={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._littleEndian=function(){var e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),256===new Int16Array(e)[0]}()}return e.prototype.destroy=function(){this._mediaInfo=null,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._videoTrack=null,this._audioTrack=null,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null},e.probe=function(e){var t=new Uint8Array(e),i={match:!1};if(70!==t[0]||76!==t[1]||86!==t[2]||1!==t[3])return i;var r=(4&t[4])>>>2!==0,n=0!==(1&t[4]),s=l(t,5);return s<9?i:{match:!0,consumed:s,dataOffset:s,hasAudioTrack:r,hasVideoTrack:n}},e.prototype.bindDataSource=function(e){return e.onDataArrival=this.parseChunks.bind(this),this},Object.defineProperty(e.prototype,"onTrackMetadata",{get:function(){return this._onTrackMetadata},set:function(e){this._onTrackMetadata=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMediaInfo",{get:function(){return this._onMediaInfo},set:function(e){this._onMediaInfo=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMetaDataArrived",{get:function(){return this._onMetaDataArrived},set:function(e){this._onMetaDataArrived=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onScriptDataArrived",{get:function(){return this._onScriptDataArrived},set:function(e){this._onScriptDataArrived=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{get:function(){return this._onError},set:function(e){this._onError=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDataAvailable",{get:function(){return this._onDataAvailable},set:function(e){this._onDataAvailable=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"timestampBase",{get:function(){return this._timestampBase},set:function(e){this._timestampBase=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedDuration",{get:function(){return this._duration},set:function(e){this._durationOverrided=!0,this._duration=e,this._mediaInfo.duration=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedHasAudio",{set:function(e){this._hasAudioFlagOverrided=!0,this._hasAudio=e,this._mediaInfo.hasAudio=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedHasVideo",{set:function(e){this._hasVideoFlagOverrided=!0,this._hasVideo=e,this._mediaInfo.hasVideo=e},enumerable:!1,configurable:!0}),e.prototype.resetMediaInfo=function(){this._mediaInfo=new a.default},e.prototype._isInitialMetadataDispatched=function(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!(this._hasAudio||!this._hasVideo)&&this._videoInitialMetadataDispatched},e.prototype.parseChunks=function(t,i){if(!this._onError||!this._onMediaInfo||!this._onTrackMetadata||!this._onDataAvailable)throw new u.IllegalStateException("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified");var n=0,s=this._littleEndian;if(0===i){if(!(t.byteLength>13))return 0;var o=e.probe(t);n=o.dataOffset}if(this._firstParse){this._firstParse=!1,i+n!==this._dataOffset&&r.default.w(this.TAG,"First time parsing but chunk byteStart invalid!");var a=new DataView(t,n),l=a.getUint32(0,!s);0!==l&&r.default.w(this.TAG,"PrevTagSize0 !== 0 !!!"),n+=4}while(nt.byteLength)break;var d=a.getUint8(0),h=16777215&a.getUint32(0,!s);if(n+11+h+4>t.byteLength)break;if(8===d||9===d||18===d){var c=a.getUint8(4),f=a.getUint8(5),_=a.getUint8(6),p=a.getUint8(7),m=_|f<<8|c<<16|p<<24,g=16777215&a.getUint32(7,!s);0!==g&&r.default.w(this.TAG,"Meet tag which has StreamID != 0!");var v=n+11;switch(d){case 8:this._parseAudioData(t,v,h,m);break;case 9:this._parseVideoData(t,v,h,m,i+n);break;case 18:this._parseScriptData(t,v,h);break}var y=a.getUint32(11+h,!s);y!==11+h&&r.default.w(this.TAG,"Invalid PrevTagSize "+y),n+=11+h+4}else r.default.w(this.TAG,"Unsupported tag type "+d+", skipped"),n+=11+h+4}return this._isInitialMetadataDispatched()&&this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack),n},e.prototype._parseScriptData=function(e,t,i){var s=n.default.parseScriptData(e,t,i);if(s.hasOwnProperty("onMetaData")){if(null==s.onMetaData||"object"!==typeof s.onMetaData)return void r.default.w(this.TAG,"Invalid onMetaData structure!");this._metadata&&r.default.w(this.TAG,"Found another onMetaData tag!"),this._metadata=s;var o=this._metadata.onMetaData;if(this._onMetaDataArrived&&this._onMetaDataArrived(Object.assign({},o)),"boolean"===typeof o.hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=o.hasAudio,this._mediaInfo.hasAudio=this._hasAudio),"boolean"===typeof o.hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=o.hasVideo,this._mediaInfo.hasVideo=this._hasVideo),"number"===typeof o.audiodatarate&&(this._mediaInfo.audioDataRate=o.audiodatarate),"number"===typeof o.videodatarate&&(this._mediaInfo.videoDataRate=o.videodatarate),"number"===typeof o.width&&(this._mediaInfo.width=o.width),"number"===typeof o.height&&(this._mediaInfo.height=o.height),"number"===typeof o.duration){if(!this._durationOverrided){var a=Math.floor(o.duration*this._timescale);this._duration=a,this._mediaInfo.duration=a}}else this._mediaInfo.duration=0;if("number"===typeof o.framerate){var u=Math.floor(1e3*o.framerate);if(u>0){var l=u/1e3;this._referenceFrameRate.fixed=!0,this._referenceFrameRate.fps=l,this._referenceFrameRate.fps_num=u,this._referenceFrameRate.fps_den=1e3,this._mediaInfo.fps=l}}if("object"===typeof o.keyframes){this._mediaInfo.hasKeyframesIndex=!0;var d=o.keyframes;this._mediaInfo.keyframesIndex=this._parseKeyframesIndex(d),o.keyframes=null}else this._mediaInfo.hasKeyframesIndex=!1;this._dispatch=!1,this._mediaInfo.metadata=o,r.default.v(this.TAG,"Parsed onMetaData"),this._mediaInfo.isComplete()&&this._onMediaInfo(this._mediaInfo)}Object.keys(s).length>0&&this._onScriptDataArrived&&this._onScriptDataArrived(Object.assign({},s))},e.prototype._parseKeyframesIndex=function(e){for(var t=[],i=[],r=1;r>>4;if(2===u||10===u){var l=0,d=(12&a)>>>2;if(d>=0&&d<=4){l=this._flvSoundRateTable[d];var h=1&a,c=this._audioMetadata,f=this._audioTrack;if(c||(!1===this._hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),c=this._audioMetadata={},c.type="audio",c.id=f.id,c.timescale=this._timescale,c.duration=this._duration,c.audioSampleRate=l,c.channelCount=0===h?1:2),10===u){var _=this._parseAACAudioData(e,t+1,i-1);if(void 0==_)return;if(0===_.packetType){c.config&&r.default.w(this.TAG,"Found another AudioSpecificConfig!");var p=_.data;c.audioSampleRate=p.samplingRate,c.channelCount=p.channelCount,c.codec=p.codec,c.originalCodec=p.originalCodec,c.config=p.config,c.refSampleDuration=1024/c.audioSampleRate*c.timescale,r.default.v(this.TAG,"Parsed AudioSpecificConfig"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",c);var m=this._mediaInfo;m.audioCodec=c.originalCodec,m.audioSampleRate=c.audioSampleRate,m.audioChannelCount=c.channelCount,m.hasVideo?null!=m.videoCodec&&(m.mimeType='video/x-flv; codecs="'+m.videoCodec+","+m.audioCodec+'"'):m.mimeType='video/x-flv; codecs="'+m.audioCodec+'"',m.isComplete()&&this._onMediaInfo(m)}else if(1===_.packetType){var g=this._timestampBase+n,v={unit:_.data,length:_.data.byteLength,dts:g,pts:g};f.samples.push(v),f.length+=_.data.length}else r.default.e(this.TAG,"Flv: Unsupported AAC data type "+_.packetType)}else if(2===u){if(!c.codec){p=this._parseMP3AudioData(e,t+1,i-1,!0);if(void 0==p)return;c.audioSampleRate=p.samplingRate,c.channelCount=p.channelCount,c.codec=p.codec,c.originalCodec=p.originalCodec,c.refSampleDuration=1152/c.audioSampleRate*c.timescale,r.default.v(this.TAG,"Parsed MPEG Audio Frame Header"),this._audioInitialMetadataDispatched=!0,this._onTrackMetadata("audio",c);m=this._mediaInfo;m.audioCodec=c.codec,m.audioSampleRate=c.audioSampleRate,m.audioChannelCount=c.channelCount,m.audioDataRate=p.bitRate,m.hasVideo?null!=m.videoCodec&&(m.mimeType='video/x-flv; codecs="'+m.videoCodec+","+m.audioCodec+'"'):m.mimeType='video/x-flv; codecs="'+m.audioCodec+'"',m.isComplete()&&this._onMediaInfo(m)}var y=this._parseMP3AudioData(e,t+1,i-1,!1);if(void 0==y)return;g=this._timestampBase+n;var E={unit:y,length:y.byteLength,dts:g,pts:g};f.samples.push(E),f.length+=y.length}}else this._onError(o.default.FORMAT_ERROR,"Flv: Invalid audio sample rate idx: "+d)}else this._onError(o.default.CODEC_UNSUPPORTED,"Flv: Unsupported audio codec idx: "+u)}},e.prototype._parseAACAudioData=function(e,t,i){if(!(i<=1)){var n={},s=new Uint8Array(e,t,i);return n.packetType=s[0],0===s[0]?n.data=this._parseAACAudioSpecificConfig(e,t+1,i-1):n.data=s.subarray(1),n}r.default.w(this.TAG,"Flv: Invalid AAC packet, missing AACPacketType or/and Data!")},e.prototype._parseAACAudioSpecificConfig=function(e,t,i){var r=new Uint8Array(e,t,i),n=null,s=0,a=0,u=0,l=null;if(s=a=r[0]>>>3,u=(7&r[0])<<1|r[1]>>>7,u<0||u>=this._mpegSamplingRates.length)this._onError(o.default.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!");else{var d=this._mpegSamplingRates[u],h=(120&r[1])>>>3;if(!(h<0||h>=8)){5===s&&(l=(7&r[1])<<1|r[2]>>>7,(124&r[2])>>>2);var c=self.navigator.userAgent.toLowerCase();return-1!==c.indexOf("firefox")?u>=6?(s=5,n=new Array(4),l=u-3):(s=2,n=new Array(2),l=u):-1!==c.indexOf("android")?(s=2,n=new Array(2),l=u):(s=5,l=u,n=new Array(4),u>=6?l=u-3:1===h&&(s=2,n=new Array(2),l=u)),n[0]=s<<3,n[0]|=(15&u)>>>1,n[1]=(15&u)<<7,n[1]|=(15&h)<<3,5===s&&(n[1]|=(15&l)>>>1,n[2]=(1&l)<<7,n[2]|=8,n[3]=0),{config:n,samplingRate:d,channelCount:h,codec:"mp4a.40."+s,originalCodec:"mp4a.40."+a}}this._onError(o.default.FORMAT_ERROR,"Flv: AAC invalid channel configuration")}},e.prototype._parseMP3AudioData=function(e,t,i,n){if(!(i<4)){this._littleEndian;var s=new Uint8Array(e,t,i),o=null;if(n){if(255!==s[0])return;var a=s[1]>>>3&3,u=(6&s[1])>>1,l=(240&s[2])>>>4,d=(12&s[2])>>>2,h=s[3]>>>6&3,c=3!==h?2:1,f=0,_=0,p="mp3";switch(a){case 0:f=this._mpegAudioV25SampleRateTable[d];break;case 2:f=this._mpegAudioV20SampleRateTable[d];break;case 3:f=this._mpegAudioV10SampleRateTable[d];break}switch(u){case 1:34,l>>4,l=15&a;7===l?this._parseAVCVideoPacket(e,t+1,i-1,n,s,u):this._onError(o.default.CODEC_UNSUPPORTED,"Flv: Unsupported codec in video frame: "+l)}},e.prototype._parseAVCVideoPacket=function(e,t,i,n,s,a){if(i<4)r.default.w(this.TAG,"Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime");else{var u=this._littleEndian,l=new DataView(e,t,i),d=l.getUint8(0),h=16777215&l.getUint32(0,!u),c=h<<8>>8;if(0===d)this._parseAVCDecoderConfigurationRecord(e,t+4,i-4);else if(1===d)this._parseAVCVideoData(e,t+4,i-4,n,s,a,c);else if(2!==d)return void this._onError(o.default.FORMAT_ERROR,"Flv: Invalid video packet type "+d)}},e.prototype._parseAVCDecoderConfigurationRecord=function(e,t,i){if(i<7)r.default.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");else{var n=this._videoMetadata,a=this._videoTrack,u=this._littleEndian,l=new DataView(e,t,i);n?"undefined"!==typeof n.avcc&&r.default.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),n=this._videoMetadata={},n.type="video",n.id=a.id,n.timescale=this._timescale,n.duration=this._duration);var d=l.getUint8(0),h=l.getUint8(1);l.getUint8(2),l.getUint8(3);if(1===d&&0!==h)if(this._naluLengthSize=1+(3&l.getUint8(4)),3===this._naluLengthSize||4===this._naluLengthSize){var c=31&l.getUint8(5);if(0!==c){c>1&&r.default.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = "+c);for(var f=6,_=0;_1&&r.default.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = "+R),f++;for(_=0;_=i){r.default.w(this.TAG,"Malformed Nalu near timestamp "+_+", offset = "+c+", dataSize = "+i);break}var m=l.getUint32(c,!u);if(3===f&&(m>>>=8),m>i-f)return void r.default.w(this.TAG,"Malformed Nalus near timestamp "+_+", NaluSize > DataSize!");var g=31&l.getUint8(c+f);5===g&&(p=!0);var v=new Uint8Array(e,t+c,f+m),y={type:g,data:v};d.push(y),h+=v.byteLength,c+=f+m}if(d.length){var E=this._videoTrack,b={units:d,length:h,isKeyframe:p,dts:_,cts:a,pts:_+a};p&&(b.fileposition=s),E.samples.push(b),E.length+=h}},e}();t["default"]=d},"./src/demux/sps-parser.js": +/*!*********************************!*\ + !*** ./src/demux/sps-parser.js ***! + \*********************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! ./exp-golomb.js */ +"./src/demux/exp-golomb.js"),n=function(){function e(){}return e._ebsp2rbsp=function(e){for(var t=e,i=t.byteLength,r=new Uint8Array(i),n=0,s=0;s=2&&3===t[s]&&0===t[s-1]&&0===t[s-2]||(r[n]=t[s],n++);return new Uint8Array(r.buffer,0,n)},e.parseSPS=function(t){var i=e._ebsp2rbsp(t),n=new r.default(i);n.readByte();var s=n.readByte();n.readByte();var o=n.readByte();n.readUEG();var a=e.getProfileString(s),u=e.getLevelString(o),l=1,d=420,h=[0,420,422,444],c=8;if((100===s||110===s||122===s||244===s||44===s||83===s||86===s||118===s||128===s||138===s||144===s)&&(l=n.readUEG(),3===l&&n.readBits(1),l<=3&&(d=h[l]),c=n.readUEG()+8,n.readUEG(),n.readBits(1),n.readBool()))for(var f=3!==l?8:12,_=0;_0&&x<16?(w=M[x-1],T=B[x-1]):255===x&&(w=n.readByte()<<8|n.readByte(),T=n.readByte()<<8|n.readByte())}if(n.readBool()&&n.readBool(),n.readBool()&&(n.readBits(4),n.readBool()&&n.readBits(24)),n.readBool()&&(n.readUEG(),n.readUEG()),n.readBool()){var P=n.readBits(32),U=n.readBits(32);C=n.readBool(),k=U,I=2*P,O=k/I}}var j=1;1===w&&1===T||(j=w/T);var N=0,F=0;if(0===l)N=1,F=2-E;else{var G=3===l?1:2,V=1===l?2:1;N=G,F=V*(2-E)}var z=16*(v+1),H=16*(y+1)*(2-E);z-=(b+S)*N,H-=(A+L)*F;var K=Math.ceil(z*j);return n.destroy(),n=null,{profile_string:a,level_string:u,bit_depth:c,ref_frames:g,chroma_format:d,chroma_format_string:e.getChromaFormatString(d),frame_rate:{fixed:C,fps:O,fps_den:I,fps_num:k},sar_ratio:{width:w,height:T},codec_size:{width:z,height:H},present_size:{width:K,height:H}}},e._skipScalingList=function(e,t){for(var i=8,r=8,n=0,s=0;s=15048,t=!r.default.msedge||e;return self.fetch&&self.ReadableStream&&t}catch(i){return!1}},t.prototype.destroy=function(){this.isWorking()&&this.abort(),e.prototype.destroy.call(this)},t.prototype.open=function(e,t){var i=this;this._dataSource=e,this._range=t;var r=e.url;this._config.reuseRedirectedURL&&void 0!=e.redirectedURL&&(r=e.redirectedURL);var o=this._seekHandler.getConfig(r,t),a=new self.Headers;if("object"===typeof o.headers){var u=o.headers;for(var l in u)u.hasOwnProperty(l)&&a.append(l,u[l])}var d={method:"GET",headers:a,mode:"cors",cache:"default",referrerPolicy:"no-referrer-when-downgrade"};if("object"===typeof this._config.headers)for(var l in this._config.headers)a.append(l,this._config.headers[l]);!1===e.cors&&(d.mode="same-origin"),e.withCredentials&&(d.credentials="include"),e.referrerPolicy&&(d.referrerPolicy=e.referrerPolicy),self.AbortController&&(this._abortController=new self.AbortController,d.signal=this._abortController.signal),this._status=n.LoaderStatus.kConnecting,self.fetch(o.url,d).then((function(e){if(i._requestAbort)return i._status=n.LoaderStatus.kIdle,void e.body.cancel();if(e.ok&&e.status>=200&&e.status<=299){if(e.url!==o.url&&i._onURLRedirect){var t=i._seekHandler.removeURLParameters(e.url);i._onURLRedirect(t)}var r=e.headers.get("Content-Length");return null!=r&&(i._contentLength=parseInt(r),0!==i._contentLength&&i._onContentLengthKnown&&i._onContentLengthKnown(i._contentLength)),i._pump.call(i,e.body.getReader())}if(i._status=n.LoaderStatus.kError,!i._onError)throw new s.RuntimeException("FetchStreamLoader: Http code invalid, "+e.status+" "+e.statusText);i._onError(n.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:e.status,msg:e.statusText})})).catch((function(e){if(!i._abortController||!i._abortController.signal.aborted){if(i._status=n.LoaderStatus.kError,!i._onError)throw e;i._onError(n.LoaderErrors.EXCEPTION,{code:-1,msg:e.message})}}))},t.prototype.abort=function(){if(this._requestAbort=!0,(this._status!==n.LoaderStatus.kBuffering||!r.default.chrome)&&this._abortController)try{this._abortController.abort()}catch(e){}},t.prototype._pump=function(e){var t=this;return e.read().then((function(i){if(i.done)if(null!==t._contentLength&&t._receivedLength0&&(this._stashInitialSize=t.stashInitialSize),this._stashUsed=0,this._stashSize=this._stashInitialSize,this._bufferSize=3145728,this._stashBuffer=new ArrayBuffer(this._bufferSize),this._stashByteStart=0,this._enableStash=!0,!1===t.enableStashBuffer&&(this._enableStash=!1),this._loader=null,this._loaderClass=null,this._seekHandler=null,this._dataSource=e,this._isWebSocketURL=/wss?:\/\/(.+?)/.test(e.url),this._refTotalLength=e.filesize?e.filesize:null,this._totalLength=this._refTotalLength,this._fullRequestFlag=!1,this._currentRange=null,this._redirectedURL=null,this._speedNormalized=0,this._speedSampler=new n.default,this._speedNormalizeList=[64,128,256,384,512,768,1024,1536,2048,3072,4096],this._isEarlyEofReconnecting=!1,this._paused=!1,this._resumeFrom=0,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._selectSeekHandler(),this._selectLoader(),this._createLoader()}return e.prototype.destroy=function(){this._loader.isWorking()&&this._loader.abort(),this._loader.destroy(),this._loader=null,this._loaderClass=null,this._dataSource=null,this._stashBuffer=null,this._stashUsed=this._stashSize=this._bufferSize=this._stashByteStart=0,this._currentRange=null,this._speedSampler=null,this._isEarlyEofReconnecting=!1,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._extraData=null},e.prototype.isWorking=function(){return this._loader&&this._loader.isWorking()&&!this._paused},e.prototype.isPaused=function(){return this._paused},Object.defineProperty(e.prototype,"status",{get:function(){return this._loader.status},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"extraData",{get:function(){return this._extraData},set:function(e){this._extraData=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDataArrival",{get:function(){return this._onDataArrival},set:function(e){this._onDataArrival=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onSeeked",{get:function(){return this._onSeeked},set:function(e){this._onSeeked=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{get:function(){return this._onError},set:function(e){this._onError=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onComplete",{get:function(){return this._onComplete},set:function(e){this._onComplete=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onRedirect",{get:function(){return this._onRedirect},set:function(e){this._onRedirect=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onRecoveredEarlyEof",{get:function(){return this._onRecoveredEarlyEof},set:function(e){this._onRecoveredEarlyEof=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentURL",{get:function(){return this._dataSource.url},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasRedirect",{get:function(){return null!=this._redirectedURL||void 0!=this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentRedirectedURL",{get:function(){return this._redirectedURL||this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentSpeed",{get:function(){return this._loaderClass===u.default?this._loader.currentSpeed:this._speedSampler.lastSecondKBps},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"loaderType",{get:function(){return this._loader.type},enumerable:!1,configurable:!0}),e.prototype._selectSeekHandler=function(){var e=this._config;if("range"===e.seekType)this._seekHandler=new d.default(this._config.rangeLoadZeroStart);else if("param"===e.seekType){var t=e.seekParamStart||"bstart",i=e.seekParamEnd||"bend";this._seekHandler=new h.default(t,i)}else{if("custom"!==e.seekType)throw new c.InvalidArgumentException("Invalid seekType in config: "+e.seekType);if("function"!==typeof e.customSeekHandler)throw new c.InvalidArgumentException("Custom seekType specified in config but invalid customSeekHandler!");this._seekHandler=new e.customSeekHandler}},e.prototype._selectLoader=function(){if(null!=this._config.customLoader)this._loaderClass=this._config.customLoader;else if(this._isWebSocketURL)this._loaderClass=l.default;else if(o.default.isSupported())this._loaderClass=o.default;else if(a.default.isSupported())this._loaderClass=a.default;else{if(!u.default.isSupported())throw new c.RuntimeException("Your browser doesn't support xhr with arraybuffer responseType!");this._loaderClass=u.default}},e.prototype._createLoader=function(){this._loader=new this._loaderClass(this._seekHandler,this._config),!1===this._loader.needStashBuffer&&(this._enableStash=!1),this._loader.onContentLengthKnown=this._onContentLengthKnown.bind(this),this._loader.onURLRedirect=this._onURLRedirect.bind(this),this._loader.onDataArrival=this._onLoaderChunkArrival.bind(this),this._loader.onComplete=this._onLoaderComplete.bind(this),this._loader.onError=this._onLoaderError.bind(this)},e.prototype.open=function(e){this._currentRange={from:0,to:-1},e&&(this._currentRange.from=e),this._speedSampler.reset(),e||(this._fullRequestFlag=!0),this._loader.open(this._dataSource,Object.assign({},this._currentRange))},e.prototype.abort=function(){this._loader.abort(),this._paused&&(this._paused=!1,this._resumeFrom=0)},e.prototype.pause=function(){this.isWorking()&&(this._loader.abort(),0!==this._stashUsed?(this._resumeFrom=this._stashByteStart,this._currentRange.to=this._stashByteStart-1):this._resumeFrom=this._currentRange.to+1,this._stashUsed=0,this._stashByteStart=0,this._paused=!0)},e.prototype.resume=function(){if(this._paused){this._paused=!1;var e=this._resumeFrom;this._resumeFrom=0,this._internalSeek(e,!0)}},e.prototype.seek=function(e){this._paused=!1,this._stashUsed=0,this._stashByteStart=0,this._internalSeek(e,!0)},e.prototype._internalSeek=function(e,t){this._loader.isWorking()&&this._loader.abort(),this._flushStashBuffer(t),this._loader.destroy(),this._loader=null;var i={from:e,to:-1};this._currentRange={from:i.from,to:-1},this._speedSampler.reset(),this._stashSize=this._stashInitialSize,this._createLoader(),this._loader.open(this._dataSource,i),this._onSeeked&&this._onSeeked()},e.prototype.updateUrl=function(e){if(!e||"string"!==typeof e||0===e.length)throw new c.InvalidArgumentException("Url must be a non-empty string!");this._dataSource.url=e},e.prototype._expandBuffer=function(e){var t=this._stashSize;while(t+10485760){var r=new Uint8Array(this._stashBuffer,0,this._stashUsed),n=new Uint8Array(i,0,t);n.set(r,0)}this._stashBuffer=i,this._bufferSize=t}},e.prototype._normalizeSpeed=function(e){var t=this._speedNormalizeList,i=t.length-1,r=0,n=0,s=i;if(e=t[r]&&e=512&&e<=1024?Math.floor(1.5*e):2*e,t>8192&&(t=8192);var i=1024*t+1048576;this._bufferSize0){var s=this._stashBuffer.slice(0,this._stashUsed);o=this._dispatchChunks(s,this._stashByteStart);if(o0){l=new Uint8Array(s,o);u.set(l,0),this._stashUsed=l.byteLength,this._stashByteStart+=o}}else this._stashUsed=0,this._stashByteStart+=o;this._stashUsed+e.byteLength>this._bufferSize&&(this._expandBuffer(this._stashUsed+e.byteLength),u=new Uint8Array(this._stashBuffer,0,this._bufferSize)),u.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength}else{o=this._dispatchChunks(e,t);if(othis._bufferSize&&(this._expandBuffer(a),u=new Uint8Array(this._stashBuffer,0,this._bufferSize)),u.set(new Uint8Array(e,o),0),this._stashUsed+=a,this._stashByteStart=t+o}}}else if(0===this._stashUsed){var o=this._dispatchChunks(e,t);if(othis._bufferSize&&this._expandBuffer(a);var u=new Uint8Array(this._stashBuffer,0,this._bufferSize);u.set(new Uint8Array(e,o),0),this._stashUsed+=a,this._stashByteStart=t+o}}else{this._stashUsed+e.byteLength>this._bufferSize&&this._expandBuffer(this._stashUsed+e.byteLength);var u=new Uint8Array(this._stashBuffer,0,this._bufferSize);u.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength;var o=this._dispatchChunks(this._stashBuffer.slice(0,this._stashUsed),this._stashByteStart);if(o0){var l=new Uint8Array(this._stashBuffer,o);u.set(l,0)}this._stashUsed-=o,this._stashByteStart+=o}}},e.prototype._flushStashBuffer=function(e){if(this._stashUsed>0){var t=this._stashBuffer.slice(0,this._stashUsed),i=this._dispatchChunks(t,this._stashByteStart),n=t.byteLength-i;if(i0){var s=new Uint8Array(this._stashBuffer,0,this._bufferSize),o=new Uint8Array(t,i);s.set(o,0),this._stashUsed=o.byteLength,this._stashByteStart+=i}return 0}r.default.w(this.TAG,n+" bytes unconsumed data remain when flush buffer, dropped")}return this._stashUsed=0,this._stashByteStart=0,n}return 0},e.prototype._onLoaderComplete=function(e,t){this._flushStashBuffer(!0),this._onComplete&&this._onComplete(this._extraData)},e.prototype._onLoaderError=function(e,t){switch(r.default.e(this.TAG,"Loader error, code = "+t.code+", msg = "+t.msg),this._flushStashBuffer(!1),this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,e=s.LoaderErrors.UNRECOVERABLE_EARLY_EOF),e){case s.LoaderErrors.EARLY_EOF:if(!this._config.isLive&&this._totalLength){var i=this._currentRange.to+1;return void(i0)for(var s=i.split("&"),o=0;o0;a[0]!==this._startName&&a[0]!==this._endName&&(u&&(n+="&"),n+=s[o])}return 0===n.length?t:t+"?"+n},e}();t["default"]=r},"./src/io/range-seek-handler.js": +/*!**************************************!*\ + !*** ./src/io/range-seek-handler.js ***! + \**************************************/ +function(e,t,i){"use strict";i.r(t);var r=function(){function e(e){this._zeroStart=e||!1}return e.prototype.getConfig=function(e,t){var i={};if(0!==t.from||-1!==t.to){var r=void 0;r=-1!==t.to?"bytes="+t.from.toString()+"-"+t.to.toString():"bytes="+t.from.toString()+"-",i["Range"]=r}else this._zeroStart&&(i["Range"]="bytes=0-");return{url:e,headers:i}},e.prototype.removeURLParameters=function(e){return e},e}();t["default"]=r},"./src/io/speed-sampler.js": +/*!*********************************!*\ + !*** ./src/io/speed-sampler.js ***! + \*********************************/ +function(e,t,i){"use strict";i.r(t);var r=function(){function e(){this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._totalBytes=0,this._lastSecondBytes=0,self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now}return e.prototype.reset=function(){this._firstCheckpoint=this._lastCheckpoint=0,this._totalBytes=this._intervalBytes=0,this._lastSecondBytes=0},e.prototype.addBytes=function(e){0===this._firstCheckpoint?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=e,this._totalBytes+=e):this._now()-this._lastCheckpoint<1e3?(this._intervalBytes+=e,this._totalBytes+=e):(this._lastSecondBytes=this._intervalBytes,this._intervalBytes=e,this._totalBytes+=e,this._lastCheckpoint=this._now())},Object.defineProperty(e.prototype,"currentKBps",{get:function(){this.addBytes(0);var e=(this._now()-this._lastCheckpoint)/1e3;return 0==e&&(e=1),this._intervalBytes/e/1024},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastSecondKBps",{get:function(){return this.addBytes(0),0!==this._lastSecondBytes?this._lastSecondBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"averageKBps",{get:function(){var e=(this._now()-this._firstCheckpoint)/1e3;return this._totalBytes/e/1024},enumerable:!1,configurable:!0}),e}();t["default"]=r},"./src/io/websocket-loader.js": +/*!************************************!*\ + !*** ./src/io/websocket-loader.js ***! + \************************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! ./loader.js */ +"./src/io/loader.js"),n=i( +/*! ../utils/exception.js */ +"./src/utils/exception.js"),s=function(){var e=function(t,i){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},e(t,i)};return function(t,i){if("function"!==typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function r(){this.constructor=t}e(t,i),t.prototype=null===i?Object.create(i):(r.prototype=i.prototype,new r)}}(),o=function(e){function t(){var t=e.call(this,"websocket-loader")||this;return t.TAG="WebSocketLoader",t._needStash=!0,t._ws=null,t._requestAbort=!1,t._receivedLength=0,t}return s(t,e),t.isSupported=function(){try{return"undefined"!==typeof self.WebSocket}catch(e){return!1}},t.prototype.destroy=function(){this._ws&&this.abort(),e.prototype.destroy.call(this)},t.prototype.open=function(e){try{var t=this._ws=new self.WebSocket(e.url);t.binaryType="arraybuffer",t.onopen=this._onWebSocketOpen.bind(this),t.onclose=this._onWebSocketClose.bind(this),t.onmessage=this._onWebSocketMessage.bind(this),t.onerror=this._onWebSocketError.bind(this),this._status=r.LoaderStatus.kConnecting}catch(s){this._status=r.LoaderStatus.kError;var i={code:s.code,msg:s.message};if(!this._onError)throw new n.RuntimeException(i.msg);this._onError(r.LoaderErrors.EXCEPTION,i)}},t.prototype.abort=function(){var e=this._ws;!e||0!==e.readyState&&1!==e.readyState||(this._requestAbort=!0,e.close()),this._ws=null,this._status=r.LoaderStatus.kComplete},t.prototype._onWebSocketOpen=function(e){this._status=r.LoaderStatus.kBuffering},t.prototype._onWebSocketClose=function(e){!0!==this._requestAbort?(this._status=r.LoaderStatus.kComplete,this._onComplete&&this._onComplete(0,this._receivedLength-1)):this._requestAbort=!1},t.prototype._onWebSocketMessage=function(e){var t=this;if(e.data instanceof ArrayBuffer)this._dispatchArrayBuffer(e.data);else if(e.data instanceof Blob){var i=new FileReader;i.onload=function(){t._dispatchArrayBuffer(i.result)},i.readAsArrayBuffer(e.data)}else{this._status=r.LoaderStatus.kError;var s={code:-1,msg:"Unsupported WebSocket message type: "+e.data.constructor.name};if(!this._onError)throw new n.RuntimeException(s.msg);this._onError(r.LoaderErrors.EXCEPTION,s)}},t.prototype._dispatchArrayBuffer=function(e){var t=e,i=this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,i,this._receivedLength)},t.prototype._onWebSocketError=function(e){this._status=r.LoaderStatus.kError;var t={code:e.code,msg:e.message};if(!this._onError)throw new n.RuntimeException(t.msg);this._onError(r.LoaderErrors.EXCEPTION,t)},t}(r.BaseLoader);t["default"]=o},"./src/io/xhr-moz-chunked-loader.js": +/*!******************************************!*\ + !*** ./src/io/xhr-moz-chunked-loader.js ***! + \******************************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! ../utils/logger.js */ +"./src/utils/logger.js"),n=i( +/*! ./loader.js */ +"./src/io/loader.js"),s=i( +/*! ../utils/exception.js */ +"./src/utils/exception.js"),o=function(){var e=function(t,i){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},e(t,i)};return function(t,i){if("function"!==typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function r(){this.constructor=t}e(t,i),t.prototype=null===i?Object.create(i):(r.prototype=i.prototype,new r)}}(),a=function(e){function t(t,i){var r=e.call(this,"xhr-moz-chunked-loader")||this;return r.TAG="MozChunkedLoader",r._seekHandler=t,r._config=i,r._needStash=!0,r._xhr=null,r._requestAbort=!1,r._contentLength=null,r._receivedLength=0,r}return o(t,e),t.isSupported=function(){try{var e=new XMLHttpRequest;return e.open("GET","https://example.com",!0),e.responseType="moz-chunked-arraybuffer","moz-chunked-arraybuffer"===e.responseType}catch(t){return r.default.w("MozChunkedLoader",t.message),!1}},t.prototype.destroy=function(){this.isWorking()&&this.abort(),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onloadend=null,this._xhr.onerror=null,this._xhr=null),e.prototype.destroy.call(this)},t.prototype.open=function(e,t){this._dataSource=e,this._range=t;var i=e.url;this._config.reuseRedirectedURL&&void 0!=e.redirectedURL&&(i=e.redirectedURL);var r=this._seekHandler.getConfig(i,t);this._requestURL=r.url;var s=this._xhr=new XMLHttpRequest;if(s.open("GET",r.url,!0),s.responseType="moz-chunked-arraybuffer",s.onreadystatechange=this._onReadyStateChange.bind(this),s.onprogress=this._onProgress.bind(this),s.onloadend=this._onLoadEnd.bind(this),s.onerror=this._onXhrError.bind(this),e.withCredentials&&(s.withCredentials=!0),"object"===typeof r.headers){var o=r.headers;for(var a in o)o.hasOwnProperty(a)&&s.setRequestHeader(a,o[a])}if("object"===typeof this._config.headers){o=this._config.headers;for(var a in o)o.hasOwnProperty(a)&&s.setRequestHeader(a,o[a])}this._status=n.LoaderStatus.kConnecting,s.send()},t.prototype.abort=function(){this._requestAbort=!0,this._xhr&&this._xhr.abort(),this._status=n.LoaderStatus.kComplete},t.prototype._onReadyStateChange=function(e){var t=e.target;if(2===t.readyState){if(void 0!=t.responseURL&&t.responseURL!==this._requestURL&&this._onURLRedirect){var i=this._seekHandler.removeURLParameters(t.responseURL);this._onURLRedirect(i)}if(0!==t.status&&(t.status<200||t.status>299)){if(this._status=n.LoaderStatus.kError,!this._onError)throw new s.RuntimeException("MozChunkedLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(n.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}else this._status=n.LoaderStatus.kBuffering}},t.prototype._onProgress=function(e){if(this._status!==n.LoaderStatus.kError){null===this._contentLength&&null!==e.total&&0!==e.total&&(this._contentLength=e.total,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength));var t=e.target.response,i=this._range.from+this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,i,this._receivedLength)}},t.prototype._onLoadEnd=function(e){!0!==this._requestAbort?this._status!==n.LoaderStatus.kError&&(this._status=n.LoaderStatus.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1)):this._requestAbort=!1},t.prototype._onXhrError=function(e){this._status=n.LoaderStatus.kError;var t=0,i=null;if(this._contentLength&&e.loaded=this._contentLength&&(i=this._range.from+this._contentLength-1),this._currentRequestRange={from:t,to:i},this._internalOpen(this._dataSource,this._currentRequestRange)},t.prototype._internalOpen=function(e,t){this._lastTimeLoaded=0;var i=e.url;this._config.reuseRedirectedURL&&(void 0!=this._currentRedirectedURL?i=this._currentRedirectedURL:void 0!=e.redirectedURL&&(i=e.redirectedURL));var r=this._seekHandler.getConfig(i,t);this._currentRequestURL=r.url;var n=this._xhr=new XMLHttpRequest;if(n.open("GET",r.url,!0),n.responseType="arraybuffer",n.onreadystatechange=this._onReadyStateChange.bind(this),n.onprogress=this._onProgress.bind(this),n.onload=this._onLoad.bind(this),n.onerror=this._onXhrError.bind(this),e.withCredentials&&(n.withCredentials=!0),"object"===typeof r.headers){var s=r.headers;for(var o in s)s.hasOwnProperty(o)&&n.setRequestHeader(o,s[o])}if("object"===typeof this._config.headers){s=this._config.headers;for(var o in s)s.hasOwnProperty(o)&&n.setRequestHeader(o,s[o])}n.send()},t.prototype.abort=function(){this._requestAbort=!0,this._internalAbort(),this._status=s.LoaderStatus.kComplete},t.prototype._internalAbort=function(){this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr.abort(),this._xhr=null)},t.prototype._onReadyStateChange=function(e){var t=e.target;if(2===t.readyState){if(void 0!=t.responseURL){var i=this._seekHandler.removeURLParameters(t.responseURL);t.responseURL!==this._currentRequestURL&&i!==this._currentRedirectedURL&&(this._currentRedirectedURL=i,this._onURLRedirect&&this._onURLRedirect(i))}if(t.status>=200&&t.status<=299){if(this._waitForTotalLength)return;this._status=s.LoaderStatus.kBuffering}else{if(this._status=s.LoaderStatus.kError,!this._onError)throw new o.RuntimeException("RangeLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(s.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}}},t.prototype._onProgress=function(e){if(this._status!==s.LoaderStatus.kError){if(null===this._contentLength){var t=!1;if(this._waitForTotalLength){this._waitForTotalLength=!1,this._totalLengthReceived=!0,t=!0;var i=e.total;this._internalAbort(),null!=i&0!==i&&(this._totalLength=i)}if(-1===this._range.to?this._contentLength=this._totalLength-this._range.from:this._contentLength=this._range.to-this._range.from+1,t)return void this._openSubRange();this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)}var r=e.loaded-this._lastTimeLoaded;this._lastTimeLoaded=e.loaded,this._speedSampler.addBytes(r)}},t.prototype._normalizeSpeed=function(e){var t=this._chunkSizeKBList,i=t.length-1,r=0,n=0,s=i;if(e=t[r]&&e=3&&(t=this._speedSampler.currentKBps)),0!==t){var i=this._normalizeSpeed(t);this._currentSpeedNormalized!==i&&(this._currentSpeedNormalized=i,this._currentChunkSizeKB=i)}var r=e.target.response,n=this._range.from+this._receivedLength;this._receivedLength+=r.byteLength;var o=!1;null!=this._contentLength&&this._receivedLength0&&this._receivedLength0&&(this._requestSetTime=!0,this._mediaElement.currentTime=0),this._transmuxer=new u.default(this._mediaDataSource,this._config),this._transmuxer.on(l.default.INIT_SEGMENT,(function(t,i){e._msectl.appendInitSegment(i)})),this._transmuxer.on(l.default.MEDIA_SEGMENT,(function(t,i){if(e._msectl.appendMediaSegment(i),e._config.lazyLoad&&!e._config.isLive){var r=e._mediaElement.currentTime;i.info.endDts>=1e3*(r+e._config.lazyLoadMaxDuration)&&null==e._progressChecker&&(s.default.v(e.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),e._suspendTransmuxer())}})),this._transmuxer.on(l.default.LOADING_COMPLETE,(function(){e._msectl.endOfStream(),e._emitter.emit(a.default.LOADING_COMPLETE)})),this._transmuxer.on(l.default.RECOVERED_EARLY_EOF,(function(){e._emitter.emit(a.default.RECOVERED_EARLY_EOF)})),this._transmuxer.on(l.default.IO_ERROR,(function(t,i){e._emitter.emit(a.default.ERROR,c.ErrorTypes.NETWORK_ERROR,t,i)})),this._transmuxer.on(l.default.DEMUX_ERROR,(function(t,i){e._emitter.emit(a.default.ERROR,c.ErrorTypes.MEDIA_ERROR,t,{code:-1,msg:i})})),this._transmuxer.on(l.default.MEDIA_INFO,(function(t){e._mediaInfo=t,e._emitter.emit(a.default.MEDIA_INFO,Object.assign({},t))})),this._transmuxer.on(l.default.METADATA_ARRIVED,(function(t){e._emitter.emit(a.default.METADATA_ARRIVED,t)})),this._transmuxer.on(l.default.SCRIPTDATA_ARRIVED,(function(t){e._emitter.emit(a.default.SCRIPTDATA_ARRIVED,t)})),this._transmuxer.on(l.default.STATISTICS_INFO,(function(t){e._statisticsInfo=e._fillStatisticsInfo(t),e._emitter.emit(a.default.STATISTICS_INFO,Object.assign({},e._statisticsInfo))})),this._transmuxer.on(l.default.RECOMMEND_SEEKPOINT,(function(t){e._mediaElement&&!e._config.accurateSeek&&(e._requestSetTime=!0,e._mediaElement.currentTime=t/1e3)})),this._transmuxer.open()))},e.prototype.unload=function(){this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.seek(0),this._transmuxer&&(this._transmuxer.close(),this._transmuxer.destroy(),this._transmuxer=null)},e.prototype.play=function(){return this._mediaElement.play()},e.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(e){this._mediaElement.volume=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(e){this._mediaElement.muted=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(e){this._mediaElement?this._internalSeek(e):this._pendingSeekTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"mediaInfo",{get:function(){return Object.assign({},this._mediaInfo)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"statisticsInfo",{get:function(){return null==this._statisticsInfo&&(this._statisticsInfo={}),this._statisticsInfo=this._fillStatisticsInfo(this._statisticsInfo),Object.assign({},this._statisticsInfo)},enumerable:!1,configurable:!0}),e.prototype._fillStatisticsInfo=function(e){if(e.playerType=this._type,!(this._mediaElement instanceof HTMLVideoElement))return e;var t=!0,i=0,r=0;if(this._mediaElement.getVideoPlaybackQuality){var n=this._mediaElement.getVideoPlaybackQuality();i=n.totalVideoFrames,r=n.droppedVideoFrames}else void 0!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,r=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=i,e.droppedFrames=r),e},e.prototype._onmseUpdateEnd=function(){if(this._config.lazyLoad&&!this._config.isLive){for(var e=this._mediaElement.buffered,t=this._mediaElement.currentTime,i=0,r=0;r=t+this._config.lazyLoadMaxDuration&&null==this._progressChecker&&(s.default.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}},e.prototype._onmseBufferFull=function(){s.default.v(this.TAG,"MSE SourceBuffer is full, suspend transmuxing task"),null==this._progressChecker&&this._suspendTransmuxer()},e.prototype._suspendTransmuxer=function(){this._transmuxer&&(this._transmuxer.pause(),null==this._progressChecker&&(this._progressChecker=window.setInterval(this._checkProgressAndResume.bind(this),1e3)))},e.prototype._checkProgressAndResume=function(){for(var e=this._mediaElement.currentTime,t=this._mediaElement.buffered,i=!1,r=0;r=n&&e=o-this._config.lazyLoadRecoverDuration&&(i=!0);break}}i&&(window.clearInterval(this._progressChecker),this._progressChecker=null,i&&(s.default.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))},e.prototype._isTimepointBuffered=function(e){for(var t=this._mediaElement.buffered,i=0;i=r&&e0){var n=this._mediaElement.buffered.start(0);(n<1&&e0&&t.currentTime0){var r=i.start(0);if(r<1&&t0&&(this._mediaElement.currentTime=0),this._mediaElement.preload="auto",this._mediaElement.load(),this._statisticsReporter=window.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval)},e.prototype.unload=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src")),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},e.prototype.play=function(){return this._mediaElement.play()},e.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(e){this._mediaElement.volume=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(e){this._mediaElement.muted=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(e){this._mediaElement?this._mediaElement.currentTime=e:this._pendingSeekTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"mediaInfo",{get:function(){var e=this._mediaElement instanceof HTMLAudioElement?"audio/":"video/",t={mimeType:e+this._mediaDataSource.type};return this._mediaElement&&(t.duration=Math.floor(1e3*this._mediaElement.duration),this._mediaElement instanceof HTMLVideoElement&&(t.width=this._mediaElement.videoWidth,t.height=this._mediaElement.videoHeight)),t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"statisticsInfo",{get:function(){var e={playerType:this._type,url:this._mediaDataSource.url};if(!(this._mediaElement instanceof HTMLVideoElement))return e;var t=!0,i=0,r=0;if(this._mediaElement.getVideoPlaybackQuality){var n=this._mediaElement.getVideoPlaybackQuality();i=n.totalVideoFrames,r=n.droppedVideoFrames}else void 0!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,r=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=i,e.droppedFrames=r),e},enumerable:!1,configurable:!0}),e.prototype._onvLoadedMetadata=function(e){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null),this._emitter.emit(s.default.MEDIA_INFO,this.mediaInfo)},e.prototype._reportStatisticsInfo=function(){this._emitter.emit(s.default.STATISTICS_INFO,this.statisticsInfo)},e}();t["default"]=u},"./src/player/player-errors.js": +/*!*************************************!*\ + !*** ./src/player/player-errors.js ***! + \*************************************/ +function(e,t,i){"use strict";i.r(t),i.d(t,{ErrorTypes:function(){return s},ErrorDetails:function(){return o}});var r=i( +/*! ../io/loader.js */ +"./src/io/loader.js"),n=i( +/*! ../demux/demux-errors.js */ +"./src/demux/demux-errors.js"),s={NETWORK_ERROR:"NetworkError",MEDIA_ERROR:"MediaError",OTHER_ERROR:"OtherError"},o={NETWORK_EXCEPTION:r.LoaderErrors.EXCEPTION,NETWORK_STATUS_CODE_INVALID:r.LoaderErrors.HTTP_STATUS_CODE_INVALID,NETWORK_TIMEOUT:r.LoaderErrors.CONNECTING_TIMEOUT,NETWORK_UNRECOVERABLE_EARLY_EOF:r.LoaderErrors.UNRECOVERABLE_EARLY_EOF,MEDIA_MSE_ERROR:"MediaMSEError",MEDIA_FORMAT_ERROR:n.default.FORMAT_ERROR,MEDIA_FORMAT_UNSUPPORTED:n.default.FORMAT_UNSUPPORTED,MEDIA_CODEC_UNSUPPORTED:n.default.CODEC_UNSUPPORTED}},"./src/player/player-events.js": +/*!*************************************!*\ + !*** ./src/player/player-events.js ***! + \*************************************/ +function(e,t,i){"use strict";i.r(t);var r={ERROR:"error",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info"};t["default"]=r},"./src/remux/aac-silent.js": +/*!*********************************!*\ + !*** ./src/remux/aac-silent.js ***! + \*********************************/ +function(e,t,i){"use strict";i.r(t);var r=function(){function e(){}return e.getSilentFrame=function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null},e}();t["default"]=r},"./src/remux/mp4-generator.js": +/*!************************************!*\ + !*** ./src/remux/mp4-generator.js ***! + \************************************/ +function(e,t,i){"use strict";i.r(t);var r=function(){function e(){}return e.init=function(){for(var t in e.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[]},e.types)e.types.hasOwnProperty(t)&&(e.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);var i=e.constants={};i.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),i.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),i.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),i.STSC=i.STCO=i.STTS,i.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),i.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),i.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),i.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),i.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])},e.box=function(e){for(var t=8,i=null,r=Array.prototype.slice.call(arguments,1),n=r.length,s=0;s>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);var o=8;for(s=0;s>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,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]))},e.trak=function(t){return e.box(e.types.trak,e.tkhd(t),e.mdia(t))},e.tkhd=function(t){var i=t.id,r=t.duration,n=t.presentWidth,s=t.presentHeight;return e.box(e.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,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,n>>>8&255,255&n,0,0,s>>>8&255,255&s,0,0]))},e.mdia=function(t){return e.box(e.types.mdia,e.mdhd(t),e.hdlr(t),e.minf(t))},e.mdhd=function(t){var i=t.timescale,r=t.duration;return e.box(e.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,r>>>24&255,r>>>16&255,r>>>8&255,255&r,85,196,0,0]))},e.hdlr=function(t){var i=null;return i="audio"===t.type?e.constants.HDLR_AUDIO:e.constants.HDLR_VIDEO,e.box(e.types.hdlr,i)},e.minf=function(t){var i=null;return i="audio"===t.type?e.box(e.types.smhd,e.constants.SMHD):e.box(e.types.vmhd,e.constants.VMHD),e.box(e.types.minf,i,e.dinf(),e.stbl(t))},e.dinf=function(){var t=e.box(e.types.dinf,e.box(e.types.dref,e.constants.DREF));return t},e.stbl=function(t){var i=e.box(e.types.stbl,e.stsd(t),e.box(e.types.stts,e.constants.STTS),e.box(e.types.stsc,e.constants.STSC),e.box(e.types.stsz,e.constants.STSZ),e.box(e.types.stco,e.constants.STCO));return i},e.stsd=function(t){return"audio"===t.type?"mp3"===t.codec?e.box(e.types.stsd,e.constants.STSD_PREFIX,e.mp3(t)):e.box(e.types.stsd,e.constants.STSD_PREFIX,e.mp4a(t)):e.box(e.types.stsd,e.constants.STSD_PREFIX,e.avc1(t))},e.mp3=function(t){var i=t.channelCount,r=t.audioSampleRate,n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,i,0,16,0,0,0,0,r>>>8&255,255&r,0,0]);return e.box(e.types[".mp3"],n)},e.mp4a=function(t){var i=t.channelCount,r=t.audioSampleRate,n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,i,0,16,0,0,0,0,r>>>8&255,255&r,0,0]);return e.box(e.types.mp4a,n,e.esds(t))},e.esds=function(t){var i=t.config||[],r=i.length,n=new Uint8Array([0,0,0,0,3,23+r,0,1,0,4,15+r,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([r]).concat(i).concat([6,1,2]));return e.box(e.types.esds,n)},e.avc1=function(t){var i=t.avcc,r=t.codecWidth,n=t.codecHeight,s=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,r>>>8&255,255&r,n>>>8&255,255&n,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return e.box(e.types.avc1,s,e.box(e.types.avcC,i))},e.mvex=function(t){return e.box(e.types.mvex,e.trex(t))},e.trex=function(t){var i=t.id,r=new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return e.box(e.types.trex,r)},e.moof=function(t,i){return e.box(e.types.moof,e.mfhd(t.sequenceNumber),e.traf(t,i))},e.mfhd=function(t){var i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t]);return e.box(e.types.mfhd,i)},e.traf=function(t,i){var r=t.id,n=e.box(e.types.tfhd,new Uint8Array([0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r])),s=e.box(e.types.tfdt,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),o=e.sdtp(t),a=e.trun(t,o.byteLength+16+16+8+16+8+8);return e.box(e.types.traf,n,s,a,o)},e.sdtp=function(t){for(var i=t.samples||[],r=i.length,n=new Uint8Array(4+r),s=0;s>>24&255,n>>>16&255,n>>>8&255,255&n,i>>>24&255,i>>>16&255,i>>>8&255,255&i],0);for(var a=0;a>>24&255,u>>>16&255,u>>>8&255,255&u,l>>>24&255,l>>>16&255,l>>>8&255,255&l,d.isLeading<<2|d.dependsOn,d.isDependedOn<<6|d.hasRedundancy<<4|d.isNonSync,0,0,h>>>24&255,h>>>16&255,h>>>8&255,255&h],12+16*a)}return e.box(e.types.trun,o)},e.mdat=function(t){return e.box(e.types.mdat,t)},e}();r.init(),t["default"]=r},"./src/remux/mp4-remuxer.js": +/*!**********************************!*\ + !*** ./src/remux/mp4-remuxer.js ***! + \**********************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! ../utils/logger.js */ +"./src/utils/logger.js"),n=i( +/*! ./mp4-generator.js */ +"./src/remux/mp4-generator.js"),s=i( +/*! ./aac-silent.js */ +"./src/remux/aac-silent.js"),o=i( +/*! ../utils/browser.js */ +"./src/utils/browser.js"),a=i( +/*! ../core/media-segment-info.js */ +"./src/core/media-segment-info.js"),u=i( +/*! ../utils/exception.js */ +"./src/utils/exception.js"),l=function(){function e(e){this.TAG="MP4Remuxer",this._config=e,this._isLive=!0===e.isLive,this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList=new a.MediaSegmentInfoList("audio"),this._videoSegmentInfoList=new a.MediaSegmentInfoList("video"),this._onInitSegment=null,this._onMediaSegment=null,this._forceFirstIDR=!(!o.default.chrome||!(o.default.version.major<50||50===o.default.version.major&&o.default.version.build<2661)),this._fillSilentAfterSeek=o.default.msedge||o.default.msie,this._mp3UseMpegAudio=!o.default.firefox,this._fillAudioTimestampGap=this._config.fixAudioTimestampGap}return e.prototype.destroy=function(){this._dtsBase=-1,this._dtsBaseInited=!1,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList.clear(),this._audioSegmentInfoList=null,this._videoSegmentInfoList.clear(),this._videoSegmentInfoList=null,this._onInitSegment=null,this._onMediaSegment=null},e.prototype.bindDataSource=function(e){return e.onDataAvailable=this.remux.bind(this),e.onTrackMetadata=this._onTrackMetadataReceived.bind(this),this},Object.defineProperty(e.prototype,"onInitSegment",{get:function(){return this._onInitSegment},set:function(e){this._onInitSegment=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMediaSegment",{get:function(){return this._onMediaSegment},set:function(e){this._onMediaSegment=e},enumerable:!1,configurable:!0}),e.prototype.insertDiscontinuity=function(){this._audioNextDts=this._videoNextDts=void 0},e.prototype.seek=function(e){this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._videoSegmentInfoList.clear(),this._audioSegmentInfoList.clear()},e.prototype.remux=function(e,t){if(!this._onMediaSegment)throw new u.IllegalStateException("MP4Remuxer: onMediaSegment callback must be specificed!");this._dtsBaseInited||this._calculateDtsBase(e,t),this._remuxVideo(t),this._remuxAudio(e)},e.prototype._onTrackMetadataReceived=function(e,t){var i=null,r="mp4",s=t.codec;if("audio"===e)this._audioMeta=t,"mp3"===t.codec&&this._mp3UseMpegAudio?(r="mpeg",s="",i=new Uint8Array):i=n.default.generateInitSegment(t);else{if("video"!==e)return;this._videoMeta=t,i=n.default.generateInitSegment(t)}if(!this._onInitSegment)throw new u.IllegalStateException("MP4Remuxer: onInitSegment callback must be specified!");this._onInitSegment(e,{type:e,data:i.buffer,codec:s,container:e+"/"+r,mediaDuration:t.duration})},e.prototype._calculateDtsBase=function(e,t){this._dtsBaseInited||(e.samples&&e.samples.length&&(this._audioDtsBase=e.samples[0].dts),t.samples&&t.samples.length&&(this._videoDtsBase=t.samples[0].dts),this._dtsBase=Math.min(this._audioDtsBase,this._videoDtsBase),this._dtsBaseInited=!0)},e.prototype.flushStashedSamples=function(){var e=this._videoStashedLastSample,t=this._audioStashedLastSample,i={type:"video",id:1,sequenceNumber:0,samples:[],length:0};null!=e&&(i.samples.push(e),i.length=e.length);var r={type:"audio",id:2,sequenceNumber:0,samples:[],length:0};null!=t&&(r.samples.push(t),r.length=t.length),this._videoStashedLastSample=null,this._audioStashedLastSample=null,this._remuxVideo(i,!0),this._remuxAudio(r,!0)},e.prototype._remuxAudio=function(e,t){if(null!=this._audioMeta){var i=e,u=i.samples,l=void 0,d=-1,h=-1,c=this._audioMeta.refSampleDuration,f="mp3"===this._audioMeta.codec&&this._mp3UseMpegAudio,_=this._dtsBaseInited&&void 0===this._audioNextDts,p=!1;if(u&&0!==u.length&&(1!==u.length||t)){var m=0,g=null,v=0;f?(m=0,v=i.length):(m=8,v=8+i.length);var y=null;if(u.length>1&&(y=u.pop(),v-=y.length),null!=this._audioStashedLastSample){var E=this._audioStashedLastSample;this._audioStashedLastSample=null,u.unshift(E),v+=E.length}null!=y&&(this._audioStashedLastSample=y);var b=u[0].dts-this._dtsBase;if(this._audioNextDts)l=b-this._audioNextDts;else if(this._audioSegmentInfoList.isEmpty())l=0,this._fillSilentAfterSeek&&!this._videoSegmentInfoList.isEmpty()&&"mp3"!==this._audioMeta.originalCodec&&(p=!0);else{var S=this._audioSegmentInfoList.getLastSampleBefore(b);if(null!=S){var A=b-(S.originalDts+S.duration);A<=3&&(A=0);var L=S.dts+S.duration+A;l=b-L}else l=0}if(p){var R=b-l,w=this._videoSegmentInfoList.getLastSegmentBefore(b);if(null!=w&&w.beginDts=j*c&&this._fillAudioTimestampGap&&!o.default.safari){M=!0;var N=Math.floor(l/c);r.default.w(this.TAG,"Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\noriginalDts: "+x+" ms, curRefDts: "+U+" ms, dtsCorrection: "+Math.round(l)+" ms, generate: "+N+" frames"),O=Math.floor(U),P=Math.floor(U+c)-O;T=s.default.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount);null==T&&(r.default.w(this.TAG,"Unable to generate silent frame for "+this._audioMeta.originalCodec+" with "+this._audioMeta.channelCount+" channels, repeat last frame"),T=D),B=[];for(var F=0;F=1?k[k.length-1].duration:Math.floor(c);this._audioNextDts=O+P}-1===d&&(d=O),k.push({dts:O,pts:O,cts:0,unit:E.unit,size:E.unit.byteLength,duration:P,originalDts:x,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),M&&k.push.apply(k,B)}}if(0===k.length)return i.samples=[],void(i.length=0);f?g=new Uint8Array(v):(g=new Uint8Array(v),g[0]=v>>>24&255,g[1]=v>>>16&255,g[2]=v>>>8&255,g[3]=255&v,g.set(n.default.types.mdat,4));for(I=0;I1&&(_=r.pop(),f-=_.length),null!=this._videoStashedLastSample){var p=this._videoStashedLastSample;this._videoStashedLastSample=null,r.unshift(p),f+=p.length}null!=_&&(this._videoStashedLastSample=_);var m=r[0].dts-this._dtsBase;if(this._videoNextDts)s=m-this._videoNextDts;else if(this._videoSegmentInfoList.isEmpty())s=0;else{var g=this._videoSegmentInfoList.getLastSampleBefore(m);if(null!=g){var v=m-(g.originalDts+g.duration);v<=3&&(v=0);var y=g.dts+g.duration+v;s=m-y}else s=0}for(var E=new a.MediaSegmentInfo,b=[],S=0;S=1?b[b.length-1].duration:Math.floor(this._videoMeta.refSampleDuration);if(L){var k=new a.SampleInfo(R,T,O,p.dts,!0);k.fileposition=p.fileposition,E.appendSyncPoint(k)}b.push({dts:R,pts:T,cts:w,units:p.units,size:p.length,isKeyframe:L,duration:O,originalDts:A,flags:{isLeading:0,dependsOn:L?2:1,isDependedOn:L?1:0,hasRedundancy:0,isNonSync:L?0:1}})}c=new Uint8Array(f),c[0]=f>>>24&255,c[1]=f>>>16&255,c[2]=f>>>8&255,c[3]=255&f,c.set(n.default.types.mdat,4);for(S=0;S=0&&/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(firefox)[ \/]([\w.]+)/.exec(e)||[],i=/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(windows phone)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(android)/.exec(e)||/(windows)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||[],n={browser:t[5]||t[3]||t[1]||"",version:t[2]||t[4]||"0",majorVersion:t[4]||t[2]||"0",platform:i[0]||""},s={};if(n.browser){s[n.browser]=!0;var o=n.majorVersion.split(".");s.version={major:parseInt(n.majorVersion,10),string:n.version},o.length>1&&(s.version.minor=parseInt(o[1],10)),o.length>2&&(s.version.build=parseInt(o[2],10))}if(n.platform&&(s[n.platform]=!0),(s.chrome||s.opr||s.safari)&&(s.webkit=!0),s.rv||s.iemobile){s.rv&&delete s.rv;var a="msie";n.browser=a,s[a]=!0}if(s.edge){delete s.edge;var u="msedge";n.browser=u,s[u]=!0}if(s.opr){var l="opera";n.browser=l,s[l]=!0}if(s.safari&&s.android){var d="android";n.browser=d,s[d]=!0}for(var h in s.name=n.browser,s.platform=n.platform,r)r.hasOwnProperty(h)&&delete r[h];Object.assign(r,s)}n(),t["default"]=r},"./src/utils/exception.js": +/*!********************************!*\ + !*** ./src/utils/exception.js ***! + \********************************/ +function(e,t,i){"use strict";i.r(t),i.d(t,{RuntimeException:function(){return n},IllegalStateException:function(){return s},InvalidArgumentException:function(){return o},NotImplementedException:function(){return a}});var r=function(){var e=function(t,i){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},e(t,i)};return function(t,i){if("function"!==typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function r(){this.constructor=t}e(t,i),t.prototype=null===i?Object.create(i):(r.prototype=i.prototype,new r)}}(),n=function(){function e(e){this._message=e}return Object.defineProperty(e.prototype,"name",{get:function(){return"RuntimeException"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this._message},enumerable:!1,configurable:!0}),e.prototype.toString=function(){return this.name+": "+this.message},e}(),s=function(e){function t(t){return e.call(this,t)||this}return r(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"IllegalStateException"},enumerable:!1,configurable:!0}),t}(n),o=function(e){function t(t){return e.call(this,t)||this}return r(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"InvalidArgumentException"},enumerable:!1,configurable:!0}),t}(n),a=function(e){function t(t){return e.call(this,t)||this}return r(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"NotImplementedException"},enumerable:!1,configurable:!0}),t}(n)},"./src/utils/logger.js": +/*!*****************************!*\ + !*** ./src/utils/logger.js ***! + \*****************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! events */ +"./node_modules/events/events.js"),n=i.n(r),s=function(){function e(){}return e.e=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var r="["+t+"] > "+i;e.ENABLE_CALLBACK&&e.emitter.emit("log","error",r),e.ENABLE_ERROR&&(console.error?console.error(r):console.warn?console.warn(r):console.log(r))},e.i=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var r="["+t+"] > "+i;e.ENABLE_CALLBACK&&e.emitter.emit("log","info",r),e.ENABLE_INFO&&(console.info?console.info(r):console.log(r))},e.w=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var r="["+t+"] > "+i;e.ENABLE_CALLBACK&&e.emitter.emit("log","warn",r),e.ENABLE_WARN&&(console.warn?console.warn(r):console.log(r))},e.d=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var r="["+t+"] > "+i;e.ENABLE_CALLBACK&&e.emitter.emit("log","debug",r),e.ENABLE_DEBUG&&(console.debug?console.debug(r):console.log(r))},e.v=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var r="["+t+"] > "+i;e.ENABLE_CALLBACK&&e.emitter.emit("log","verbose",r),e.ENABLE_VERBOSE&&console.log(r)},e}();s.GLOBAL_TAG="flv.js",s.FORCE_GLOBAL_TAG=!1,s.ENABLE_ERROR=!0,s.ENABLE_INFO=!0,s.ENABLE_WARN=!0,s.ENABLE_DEBUG=!0,s.ENABLE_VERBOSE=!0,s.ENABLE_CALLBACK=!1,s.emitter=new(n()),t["default"]=s},"./src/utils/logging-control.js": +/*!**************************************!*\ + !*** ./src/utils/logging-control.js ***! + \**************************************/ +function(e,t,i){"use strict";i.r(t);var r=i( +/*! events */ +"./node_modules/events/events.js"),n=i.n(r),s=i( +/*! ./logger.js */ +"./src/utils/logger.js"),o=function(){function e(){}return Object.defineProperty(e,"forceGlobalTag",{get:function(){return s.default.FORCE_GLOBAL_TAG},set:function(t){s.default.FORCE_GLOBAL_TAG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"globalTag",{get:function(){return s.default.GLOBAL_TAG},set:function(t){s.default.GLOBAL_TAG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableAll",{get:function(){return s.default.ENABLE_VERBOSE&&s.default.ENABLE_DEBUG&&s.default.ENABLE_INFO&&s.default.ENABLE_WARN&&s.default.ENABLE_ERROR},set:function(t){s.default.ENABLE_VERBOSE=t,s.default.ENABLE_DEBUG=t,s.default.ENABLE_INFO=t,s.default.ENABLE_WARN=t,s.default.ENABLE_ERROR=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableDebug",{get:function(){return s.default.ENABLE_DEBUG},set:function(t){s.default.ENABLE_DEBUG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableVerbose",{get:function(){return s.default.ENABLE_VERBOSE},set:function(t){s.default.ENABLE_VERBOSE=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableInfo",{get:function(){return s.default.ENABLE_INFO},set:function(t){s.default.ENABLE_INFO=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableWarn",{get:function(){return s.default.ENABLE_WARN},set:function(t){s.default.ENABLE_WARN=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableError",{get:function(){return s.default.ENABLE_ERROR},set:function(t){s.default.ENABLE_ERROR=t,e._notifyChange()},enumerable:!1,configurable:!0}),e.getConfig=function(){return{globalTag:s.default.GLOBAL_TAG,forceGlobalTag:s.default.FORCE_GLOBAL_TAG,enableVerbose:s.default.ENABLE_VERBOSE,enableDebug:s.default.ENABLE_DEBUG,enableInfo:s.default.ENABLE_INFO,enableWarn:s.default.ENABLE_WARN,enableError:s.default.ENABLE_ERROR,enableCallback:s.default.ENABLE_CALLBACK}},e.applyConfig=function(e){s.default.GLOBAL_TAG=e.globalTag,s.default.FORCE_GLOBAL_TAG=e.forceGlobalTag,s.default.ENABLE_VERBOSE=e.enableVerbose,s.default.ENABLE_DEBUG=e.enableDebug,s.default.ENABLE_INFO=e.enableInfo,s.default.ENABLE_WARN=e.enableWarn,s.default.ENABLE_ERROR=e.enableError,s.default.ENABLE_CALLBACK=e.enableCallback},e._notifyChange=function(){var t=e.emitter;if(t.listenerCount("change")>0){var i=e.getConfig();t.emit("change",i)}},e.registerListener=function(t){e.emitter.addListener("change",t)},e.removeListener=function(t){e.emitter.removeListener("change",t)},e.addLogListener=function(t){s.default.emitter.addListener("log",t),s.default.emitter.listenerCount("log")>0&&(s.default.ENABLE_CALLBACK=!0,e._notifyChange())},e.removeLogListener=function(t){s.default.emitter.removeListener("log",t),0===s.default.emitter.listenerCount("log")&&(s.default.ENABLE_CALLBACK=!1,e._notifyChange())},e}();o.emitter=new(n()),t["default"]=o},"./src/utils/polyfill.js": +/*!*******************************!*\ + !*** ./src/utils/polyfill.js ***! + \*******************************/ +function(e,t,i){"use strict";i.r(t);var r=function(){function e(){}return e.install=function(){Object.setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Object.assign=Object.assign||function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;i=128){t.push(String.fromCharCode(65535&o)),n+=2;continue}}}else if(i[n]<240){if(r(i,n,2)){o=(15&i[n])<<12|(63&i[n+1])<<6|63&i[n+2];if(o>=2048&&55296!==(63488&o)){t.push(String.fromCharCode(65535&o)),n+=3;continue}}}else if(i[n]<248&&r(i,n,3)){o=(7&i[n])<<18|(63&i[n+1])<<12|(63&i[n+2])<<6|63&i[n+3];if(o>65536&&o<1114112){o-=65536,t.push(String.fromCharCode(o>>>10|55296)),t.push(String.fromCharCode(1023&o|56320)),n+=4;continue}}t.push(String.fromCharCode(65533)),++n}return t.join("")}i.r(t),t["default"]=n}},t={};function i(r){var n=t[r];if(void 0!==n)return n.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,i),s.exports}i.m=e,function(){i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,{a:t}),t}}(),function(){i.d=function(e,t){for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){i.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}();var r=i("./src/index.js");return r}()}))},3308:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return w}});var r=i(3396),n=i(4870),s=i(7139),o=i(9242),a="data:image/png;base64,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",u=i(2747),l=i.n(u),d=i(2483);const h=e=>((0,r.dD)("data-v-4d5cf730"),e=e(),(0,r.Cn)(),e),c={class:"camera-item"},f={class:"camera-name"},_=h((()=>(0,r._)("video",{class:"camera-player"},null,-1))),p=h((()=>(0,r._)("img",{src:a,alt:"",width:"40",height:"40"},null,-1))),m=[p],g={class:"modal"},v=["onClick"];var y={__name:"camera",props:{name:{type:String}},setup(e){const t=e,i=(0,d.yj)();document.title=i.query.proname;const a=(0,n.iH)(!1),u=()=>{a.value=!0;let e=l().createPlayer({type:"flv",url:"https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv"});(0,r.Y3)((()=>{l().isSupported()&&(console.log("load"),e.attachMediaElement(h.value),e.load(),e.on("ERROR",p),e.play())}))},h=(0,n.iH)(),p=((0,n.iH)(),e=>{console.log(e)}),y=()=>{h.value&&(h.value.paused?(console.log(flvPlayer),flvPlayer.play()):flvPlayer.pause())};return(0,r.bv)((()=>{})),(e,i)=>((0,r.wg)(),(0,r.iD)("div",c,[(0,r._)("div",f,(0,s.zw)(t.name),1),_,(0,r._)("div",{class:"overlay",onClick:u},m),a.value?((0,r.wg)(),(0,r.iD)("div",{key:0,class:"modal-overlay",onClick:i[0]||(i[0]=e=>a.value=!1)},[(0,r._)("div",g,[(0,r._)("video",{class:"camera-player",ref_key:"videoElementRef",ref:h},null,512),(0,r._)("div",{class:"overlay",onClick:(0,o.iM)(y,["stop"])},null,8,v)])])):(0,r.kq)("",!0)]))}},E=i(89);const b=(0,E.Z)(y,[["__scopeId","data-v-4d5cf730"]]);var S=b;const A={class:"camera-list"};var L={__name:"site-detail",setup(e){const t=(0,n.iH)([{name:"CAMERA01"},{name:"CAMERA02"},{name:"CAMERA03"},{name:"CAMERA04"},{name:"CAMERA06"},{name:"CAMERA07"}]);return(e,i)=>((0,r.wg)(),(0,r.iD)("div",null,[(0,r._)("div",A,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.value,((e,t)=>((0,r.wg)(),(0,r.j4)(S,{key:t,name:e.name},null,8,["name"])))),128))])]))}};const R=(0,E.Z)(L,[["__scopeId","data-v-0dd6cab5"]]);var w=R}}]); +//# sourceMappingURL=308.afcd382f.js.map \ No newline at end of file diff --git a/apps/com.awspaas.user.apps.managesite/monitor/js/308.afcd382f.js.map b/apps/com.awspaas.user.apps.managesite/monitor/js/308.afcd382f.js.map new file mode 100644 index 0000000..6309184 --- /dev/null +++ b/apps/com.awspaas.user.apps.managesite/monitor/js/308.afcd382f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"../apps/com.awspaas.user.apps.managesite/monitor/js/308.afcd382f.js","mappings":"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","sources":["webpack://monitor/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://monitor/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://monitor/./node_modules/core-js/internals/array-iteration-from-last.js","webpack://monitor/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://monitor/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://monitor/./node_modules/core-js/internals/function-bind-context.js","webpack://monitor/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://monitor/./node_modules/core-js/internals/regexp-flags.js","webpack://monitor/./node_modules/core-js/modules/es.regexp.flags.js","webpack://monitor/./node_modules/core-js/modules/es.typed-array.at.js","webpack://monitor/./node_modules/core-js/modules/es.typed-array.find-last-index.js","webpack://monitor/./node_modules/core-js/modules/es.typed-array.find-last.js","webpack://monitor/flvjs/webpack/universalModuleDefinition","webpack://monitor/flvjs/node_modules/es6-promise/dist/es6-promise.js","webpack://monitor/flvjs/node_modules/events/events.js","webpack://monitor/flvjs/node_modules/webworkify-webpack/index.js","webpack://monitor/flvjs/src/config.js","webpack://monitor/flvjs/src/core/features.js","webpack://monitor/flvjs/src/core/media-info.js","webpack://monitor/flvjs/src/core/media-segment-info.js","webpack://monitor/flvjs/src/core/mse-controller.js","webpack://monitor/flvjs/src/core/mse-events.js","webpack://monitor/flvjs/src/core/transmuxer.js","webpack://monitor/flvjs/src/core/transmuxing-controller.js","webpack://monitor/flvjs/src/core/transmuxing-events.js","webpack://monitor/flvjs/src/core/transmuxing-worker.js","webpack://monitor/flvjs/src/demux/amf-parser.js","webpack://monitor/flvjs/src/demux/demux-errors.js","webpack://monitor/flvjs/src/demux/exp-golomb.js","webpack://monitor/flvjs/src/demux/flv-demuxer.js","webpack://monitor/flvjs/src/demux/sps-parser.js","webpack://monitor/flvjs/src/flv.js","webpack://monitor/flvjs/src/index.js","webpack://monitor/flvjs/src/io/fetch-stream-loader.js","webpack://monitor/flvjs/src/io/io-controller.js","webpack://monitor/flvjs/src/io/loader.js","webpack://monitor/flvjs/src/io/param-seek-handler.js","webpack://monitor/flvjs/src/io/range-seek-handler.js","webpack://monitor/flvjs/src/io/speed-sampler.js","webpack://monitor/flvjs/src/io/websocket-loader.js","webpack://monitor/flvjs/src/io/xhr-moz-chunked-loader.js","webpack://monitor/flvjs/src/io/xhr-range-loader.js","webpack://monitor/flvjs/src/player/flv-player.js","webpack://monitor/flvjs/src/player/native-player.js","webpack://monitor/flvjs/src/player/player-errors.js","webpack://monitor/flvjs/src/player/player-events.js","webpack://monitor/flvjs/src/remux/aac-silent.js","webpack://monitor/flvjs/src/remux/mp4-generator.js","webpack://monitor/flvjs/src/remux/mp4-remuxer.js","webpack://monitor/flvjs/src/utils/browser.js","webpack://monitor/flvjs/src/utils/exception.js","webpack://monitor/flvjs/src/utils/logger.js","webpack://monitor/flvjs/src/utils/logging-control.js","webpack://monitor/flvjs/src/utils/polyfill.js","webpack://monitor/flvjs/src/utils/utf8-conv.js","webpack://monitor/flvjs/webpack/bootstrap","webpack://monitor/flvjs/webpack/runtime/compat get default export","webpack://monitor/flvjs/webpack/runtime/define property getters","webpack://monitor/flvjs/webpack/runtime/global","webpack://monitor/flvjs/webpack/runtime/hasOwnProperty shorthand","webpack://monitor/flvjs/webpack/runtime/make namespace object","webpack://monitor/flvjs/webpack/startup","webpack://monitor/./src/components/camera.vue","webpack://monitor/./src/components/camera.vue?6e62","webpack://monitor/./src/components/site-detail.vue","webpack://monitor/./src/components/site-detail.vue?dca6"],"sourcesContent":["// eslint-disable-next-line es-x/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_FIND_LAST_INDEX = TYPE == 1;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var index = lengthOfArrayLike(self);\n var value, result;\n while (index-- > 0) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (result) switch (TYPE) {\n case 0: return value; // findLast\n case 1: return index; // findLastIndex\n }\n }\n return IS_FIND_LAST_INDEX ? -1 : undefined;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.findLast` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLast: createMethod(0),\n // `Array.prototype.findLastIndex` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLastIndex: createMethod(1)\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = global.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://github.com/tc39/proposal-array-find-from-last\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://github.com/tc39/proposal-array-find-from-last\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"flvjs\"] = factory();\n\telse\n\t\troot[\"flvjs\"] = factory();\n})(self, function() {\nreturn ","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","function webpackBootstrapFunc (modules) {\n/******/ // The module cache\n/******/ var installedModules = {};\n\n/******/ // The require function\n/******/ function __webpack_require__(moduleId) {\n\n/******/ // Check if module is in cache\n/******/ if(installedModules[moduleId])\n/******/ return installedModules[moduleId].exports;\n\n/******/ // Create a new module (and put it into the cache)\n/******/ var module = installedModules[moduleId] = {\n/******/ i: moduleId,\n/******/ l: false,\n/******/ exports: {}\n/******/ };\n\n/******/ // Execute the module function\n/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ // Flag the module as loaded\n/******/ module.l = true;\n\n/******/ // Return the exports of the module\n/******/ return module.exports;\n/******/ }\n\n/******/ // expose the modules object (__webpack_modules__)\n/******/ __webpack_require__.m = modules;\n\n/******/ // expose the module cache\n/******/ __webpack_require__.c = installedModules;\n\n/******/ // identity function for calling harmony imports with the correct context\n/******/ __webpack_require__.i = function(value) { return value; };\n\n/******/ // define getter function for harmony exports\n/******/ __webpack_require__.d = function(exports, name, getter) {\n/******/ if(!__webpack_require__.o(exports, name)) {\n/******/ Object.defineProperty(exports, name, {\n/******/ configurable: false,\n/******/ enumerable: true,\n/******/ get: getter\n/******/ });\n/******/ }\n/******/ };\n\n/******/ // define __esModule on exports\n/******/ __webpack_require__.r = function(exports) {\n/******/ Object.defineProperty(exports, '__esModule', { value: true });\n/******/ };\n\n/******/ // getDefaultExport function for compatibility with non-harmony modules\n/******/ __webpack_require__.n = function(module) {\n/******/ var getter = module && module.__esModule ?\n/******/ function getDefault() { return module['default']; } :\n/******/ function getModuleExports() { return module; };\n/******/ __webpack_require__.d(getter, 'a', getter);\n/******/ return getter;\n/******/ };\n\n/******/ // Object.prototype.hasOwnProperty.call\n/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n/******/ // __webpack_public_path__\n/******/ __webpack_require__.p = \"/\";\n\n/******/ // on error function for async loading\n/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n var f = __webpack_require__(__webpack_require__.s = ENTRY_MODULE)\n return f.default || f // try to call default if defined to also support babel esmodule exports\n}\n\nvar moduleNameReqExp = '[\\\\.|\\\\-|\\\\+|\\\\w|\\/|@]+'\nvar dependencyRegExp = '\\\\(\\\\s*(\\/\\\\*.*?\\\\*\\/)?\\\\s*.*?(' + moduleNameReqExp + ').*?\\\\)' // additional chars when output.pathinfo is true\n\n// http://stackoverflow.com/a/2593661/130442\nfunction quoteRegExp (str) {\n return (str + '').replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&')\n}\n\nfunction isNumeric(n) {\n return !isNaN(1 * n); // 1 * n converts integers, integers as string (\"123\"), 1e3 and \"1e3\" to integers and strings to NaN\n}\n\nfunction getModuleDependencies (sources, module, queueName) {\n var retval = {}\n retval[queueName] = []\n\n var fnString = module.toString()\n var wrapperSignature = fnString.match(/^function\\s?\\w*\\(\\w+,\\s*\\w+,\\s*(\\w+)\\)/)\n if (!wrapperSignature) return retval\n var webpackRequireName = wrapperSignature[1]\n\n // main bundle deps\n var re = new RegExp('(\\\\\\\\n|\\\\W)' + quoteRegExp(webpackRequireName) + dependencyRegExp, 'g')\n var match\n while ((match = re.exec(fnString))) {\n if (match[3] === 'dll-reference') continue\n retval[queueName].push(match[3])\n }\n\n // dll deps\n re = new RegExp('\\\\(' + quoteRegExp(webpackRequireName) + '\\\\(\"(dll-reference\\\\s(' + moduleNameReqExp + '))\"\\\\)\\\\)' + dependencyRegExp, 'g')\n while ((match = re.exec(fnString))) {\n if (!sources[match[2]]) {\n retval[queueName].push(match[1])\n sources[match[2]] = __webpack_require__(match[1]).m\n }\n retval[match[2]] = retval[match[2]] || []\n retval[match[2]].push(match[4])\n }\n\n // convert 1e3 back to 1000 - this can be important after uglify-js converted 1000 to 1e3\n var keys = Object.keys(retval);\n for (var i = 0; i < keys.length; i++) {\n for (var j = 0; j < retval[keys[i]].length; j++) {\n if (isNumeric(retval[keys[i]][j])) {\n retval[keys[i]][j] = 1 * retval[keys[i]][j];\n }\n }\n }\n\n return retval\n}\n\nfunction hasValuesInQueues (queues) {\n var keys = Object.keys(queues)\n return keys.reduce(function (hasValues, key) {\n return hasValues || queues[key].length > 0\n }, false)\n}\n\nfunction getRequiredModules (sources, moduleId) {\n var modulesQueue = {\n main: [moduleId]\n }\n var requiredModules = {\n main: []\n }\n var seenModules = {\n main: {}\n }\n\n while (hasValuesInQueues(modulesQueue)) {\n var queues = Object.keys(modulesQueue)\n for (var i = 0; i < queues.length; i++) {\n var queueName = queues[i]\n var queue = modulesQueue[queueName]\n var moduleToCheck = queue.pop()\n seenModules[queueName] = seenModules[queueName] || {}\n if (seenModules[queueName][moduleToCheck] || !sources[queueName][moduleToCheck]) continue\n seenModules[queueName][moduleToCheck] = true\n requiredModules[queueName] = requiredModules[queueName] || []\n requiredModules[queueName].push(moduleToCheck)\n var newModules = getModuleDependencies(sources, sources[queueName][moduleToCheck], queueName)\n var newModulesKeys = Object.keys(newModules)\n for (var j = 0; j < newModulesKeys.length; j++) {\n modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]] || []\n modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]].concat(newModules[newModulesKeys[j]])\n }\n }\n }\n\n return requiredModules\n}\n\nmodule.exports = function (moduleId, options) {\n options = options || {}\n var sources = {\n main: __webpack_modules__\n }\n\n var requiredModules = options.all ? { main: Object.keys(sources.main) } : getRequiredModules(sources, moduleId)\n\n var src = ''\n\n Object.keys(requiredModules).filter(function (m) { return m !== 'main' }).forEach(function (module) {\n var entryModule = 0\n while (requiredModules[module][entryModule]) {\n entryModule++\n }\n requiredModules[module].push(entryModule)\n sources[module][entryModule] = '(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })'\n src = src + 'var ' + module + ' = (' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(entryModule)) + ')({' + requiredModules[module].map(function (id) { return '' + JSON.stringify(id) + ': ' + sources[module][id].toString() }).join(',') + '});\\n'\n })\n\n src = src + 'new ((' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(moduleId)) + ')({' + requiredModules.main.map(function (id) { return '' + JSON.stringify(id) + ': ' + sources.main[id].toString() }).join(',') + '}))(self);'\n\n var blob = new window.Blob([src], { type: 'text/javascript' })\n if (options.bare) { return blob }\n\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL\n\n var workerUrl = URL.createObjectURL(blob)\n var worker = new window.Worker(workerUrl)\n worker.objectURL = workerUrl\n\n return worker\n}\n","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const defaultConfig = {\n enableWorker: false,\n enableStashBuffer: true,\n stashInitialSize: undefined,\n\n isLive: false,\n\n lazyLoad: true,\n lazyLoadMaxDuration: 3 * 60,\n lazyLoadRecoverDuration: 30,\n deferLoadAfterSourceOpen: true,\n\n // autoCleanupSourceBuffer: default as false, leave unspecified\n autoCleanupMaxBackwardDuration: 3 * 60,\n autoCleanupMinBackwardDuration: 2 * 60,\n\n statisticsInfoReportInterval: 600,\n\n fixAudioTimestampGap: true,\n\n accurateSeek: false,\n seekType: 'range', // [range, param, custom]\n seekParamStart: 'bstart',\n seekParamEnd: 'bend',\n rangeLoadZeroStart: false,\n customSeekHandler: undefined,\n reuseRedirectedURL: false,\n // referrerPolicy: leave as unspecified\n\n headers: undefined,\n customLoader: undefined\n};\n\nexport function createDefaultConfig() {\n return Object.assign({}, defaultConfig);\n}","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport IOController from '../io/io-controller.js';\nimport {createDefaultConfig} from '../config.js';\n\nclass Features {\n\n static supportMSEH264Playback() {\n return window.MediaSource &&\n window.MediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"');\n }\n\n static supportNetworkStreamIO() {\n let ioctl = new IOController({}, createDefaultConfig());\n let loaderType = ioctl.loaderType;\n ioctl.destroy();\n return loaderType == 'fetch-stream-loader' || loaderType == 'xhr-moz-chunked-loader';\n }\n\n static getNetworkLoaderTypeName() {\n let ioctl = new IOController({}, createDefaultConfig());\n let loaderType = ioctl.loaderType;\n ioctl.destroy();\n return loaderType;\n }\n\n static supportNativeMediaPlayback(mimeType) {\n if (Features.videoElement == undefined) {\n Features.videoElement = window.document.createElement('video');\n }\n let canPlay = Features.videoElement.canPlayType(mimeType);\n return canPlay === 'probably' || canPlay == 'maybe';\n }\n\n static getFeatureList() {\n let features = {\n mseFlvPlayback: false,\n mseLiveFlvPlayback: false,\n networkStreamIO: false,\n networkLoaderName: '',\n nativeMP4H264Playback: false,\n nativeWebmVP8Playback: false,\n nativeWebmVP9Playback: false\n };\n\n features.mseFlvPlayback = Features.supportMSEH264Playback();\n features.networkStreamIO = Features.supportNetworkStreamIO();\n features.networkLoaderName = Features.getNetworkLoaderTypeName();\n features.mseLiveFlvPlayback = features.mseFlvPlayback && features.networkStreamIO;\n features.nativeMP4H264Playback = Features.supportNativeMediaPlayback('video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"');\n features.nativeWebmVP8Playback = Features.supportNativeMediaPlayback('video/webm; codecs=\"vp8.0, vorbis\"');\n features.nativeWebmVP9Playback = Features.supportNativeMediaPlayback('video/webm; codecs=\"vp9\"');\n\n return features;\n }\n\n}\n\nexport default Features;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass MediaInfo {\n\n constructor() {\n this.mimeType = null;\n this.duration = null;\n\n this.hasAudio = null;\n this.hasVideo = null;\n this.audioCodec = null;\n this.videoCodec = null;\n this.audioDataRate = null;\n this.videoDataRate = null;\n\n this.audioSampleRate = null;\n this.audioChannelCount = null;\n\n this.width = null;\n this.height = null;\n this.fps = null;\n this.profile = null;\n this.level = null;\n this.refFrames = null;\n this.chromaFormat = null;\n this.sarNum = null;\n this.sarDen = null;\n\n this.metadata = null;\n this.segments = null; // MediaInfo[]\n this.segmentCount = null;\n this.hasKeyframesIndex = null;\n this.keyframesIndex = null;\n }\n\n isComplete() {\n let audioInfoComplete = (this.hasAudio === false) ||\n (this.hasAudio === true &&\n this.audioCodec != null &&\n this.audioSampleRate != null &&\n this.audioChannelCount != null);\n\n let videoInfoComplete = (this.hasVideo === false) ||\n (this.hasVideo === true &&\n this.videoCodec != null &&\n this.width != null &&\n this.height != null &&\n this.fps != null &&\n this.profile != null &&\n this.level != null &&\n this.refFrames != null &&\n this.chromaFormat != null &&\n this.sarNum != null &&\n this.sarDen != null);\n\n // keyframesIndex may not be present\n return this.mimeType != null &&\n this.duration != null &&\n this.metadata != null &&\n this.hasKeyframesIndex != null &&\n audioInfoComplete &&\n videoInfoComplete;\n }\n\n isSeekable() {\n return this.hasKeyframesIndex === true;\n }\n\n getNearestKeyframe(milliseconds) {\n if (this.keyframesIndex == null) {\n return null;\n }\n\n let table = this.keyframesIndex;\n let keyframeIdx = this._search(table.times, milliseconds);\n\n return {\n index: keyframeIdx,\n milliseconds: table.times[keyframeIdx],\n fileposition: table.filepositions[keyframeIdx]\n };\n }\n\n _search(list, value) {\n let idx = 0;\n\n let last = list.length - 1;\n let mid = 0;\n let lbound = 0;\n let ubound = last;\n\n if (value < list[0]) {\n idx = 0;\n lbound = ubound + 1; // skip search\n }\n\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n if (mid === last || (value >= list[mid] && value < list[mid + 1])) {\n idx = mid;\n break;\n } else if (list[mid] < value) {\n lbound = mid + 1;\n } else {\n ubound = mid - 1;\n }\n }\n\n return idx;\n }\n\n}\n\nexport default MediaInfo;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Represents an media sample (audio / video)\nexport class SampleInfo {\n\n constructor(dts, pts, duration, originalDts, isSync) {\n this.dts = dts;\n this.pts = pts;\n this.duration = duration;\n this.originalDts = originalDts;\n this.isSyncPoint = isSync;\n this.fileposition = null;\n }\n\n}\n\n// Media Segment concept is defined in Media Source Extensions spec.\n// Particularly in ISO BMFF format, an Media Segment contains a moof box followed by a mdat box.\nexport class MediaSegmentInfo {\n\n constructor() {\n this.beginDts = 0;\n this.endDts = 0;\n this.beginPts = 0;\n this.endPts = 0;\n this.originalBeginDts = 0;\n this.originalEndDts = 0;\n this.syncPoints = []; // SampleInfo[n], for video IDR frames only\n this.firstSample = null; // SampleInfo\n this.lastSample = null; // SampleInfo\n }\n\n appendSyncPoint(sampleInfo) { // also called Random Access Point\n sampleInfo.isSyncPoint = true;\n this.syncPoints.push(sampleInfo);\n }\n\n}\n\n// Ordered list for recording video IDR frames, sorted by originalDts\nexport class IDRSampleList {\n\n constructor() {\n this._list = [];\n }\n\n clear() {\n this._list = [];\n }\n\n appendArray(syncPoints) {\n let list = this._list;\n\n if (syncPoints.length === 0) {\n return;\n }\n\n if (list.length > 0 && syncPoints[0].originalDts < list[list.length - 1].originalDts) {\n this.clear();\n }\n\n Array.prototype.push.apply(list, syncPoints);\n }\n\n getLastSyncPointBeforeDts(dts) {\n if (this._list.length == 0) {\n return null;\n }\n\n let list = this._list;\n let idx = 0;\n let last = list.length - 1;\n let mid = 0;\n let lbound = 0;\n let ubound = last;\n\n if (dts < list[0].dts) {\n idx = 0;\n lbound = ubound + 1;\n }\n\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n if (mid === last || (dts >= list[mid].dts && dts < list[mid + 1].dts)) {\n idx = mid;\n break;\n } else if (list[mid].dts < dts) {\n lbound = mid + 1;\n } else {\n ubound = mid - 1;\n }\n }\n return this._list[idx];\n }\n\n}\n\n// Data structure for recording information of media segments in single track.\nexport class MediaSegmentInfoList {\n\n constructor(type) {\n this._type = type;\n this._list = [];\n this._lastAppendLocation = -1; // cached last insert location\n }\n\n get type() {\n return this._type;\n }\n\n get length() {\n return this._list.length;\n }\n\n isEmpty() {\n return this._list.length === 0;\n }\n\n clear() {\n this._list = [];\n this._lastAppendLocation = -1;\n }\n\n _searchNearestSegmentBefore(originalBeginDts) {\n let list = this._list;\n if (list.length === 0) {\n return -2;\n }\n let last = list.length - 1;\n let mid = 0;\n let lbound = 0;\n let ubound = last;\n\n let idx = 0;\n\n if (originalBeginDts < list[0].originalBeginDts) {\n idx = -1;\n return idx;\n }\n\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n if (mid === last || (originalBeginDts > list[mid].lastSample.originalDts &&\n (originalBeginDts < list[mid + 1].originalBeginDts))) {\n idx = mid;\n break;\n } else if (list[mid].originalBeginDts < originalBeginDts) {\n lbound = mid + 1;\n } else {\n ubound = mid - 1;\n }\n }\n return idx;\n }\n\n _searchNearestSegmentAfter(originalBeginDts) {\n return this._searchNearestSegmentBefore(originalBeginDts) + 1;\n }\n\n append(mediaSegmentInfo) {\n let list = this._list;\n let msi = mediaSegmentInfo;\n let lastAppendIdx = this._lastAppendLocation;\n let insertIdx = 0;\n\n if (lastAppendIdx !== -1 && lastAppendIdx < list.length &&\n msi.originalBeginDts >= list[lastAppendIdx].lastSample.originalDts &&\n ((lastAppendIdx === list.length - 1) ||\n (lastAppendIdx < list.length - 1 &&\n msi.originalBeginDts < list[lastAppendIdx + 1].originalBeginDts))) {\n insertIdx = lastAppendIdx + 1; // use cached location idx\n } else {\n if (list.length > 0) {\n insertIdx = this._searchNearestSegmentBefore(msi.originalBeginDts) + 1;\n }\n }\n\n this._lastAppendLocation = insertIdx;\n this._list.splice(insertIdx, 0, msi);\n }\n\n getLastSegmentBefore(originalBeginDts) {\n let idx = this._searchNearestSegmentBefore(originalBeginDts);\n if (idx >= 0) {\n return this._list[idx];\n } else { // -1\n return null;\n }\n }\n\n getLastSampleBefore(originalBeginDts) {\n let segment = this.getLastSegmentBefore(originalBeginDts);\n if (segment != null) {\n return segment.lastSample;\n } else {\n return null;\n }\n }\n\n getLastSyncPointBefore(originalBeginDts) {\n let segmentIdx = this._searchNearestSegmentBefore(originalBeginDts);\n let syncPoints = this._list[segmentIdx].syncPoints;\n while (syncPoints.length === 0 && segmentIdx > 0) {\n segmentIdx--;\n syncPoints = this._list[segmentIdx].syncPoints;\n }\n if (syncPoints.length > 0) {\n return syncPoints[syncPoints.length - 1];\n } else {\n return null;\n }\n }\n\n}","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport EventEmitter from 'events';\nimport Log from '../utils/logger.js';\nimport Browser from '../utils/browser.js';\nimport MSEEvents from './mse-events.js';\nimport {SampleInfo, IDRSampleList} from './media-segment-info.js';\nimport {IllegalStateException} from '../utils/exception.js';\n\n// Media Source Extensions controller\nclass MSEController {\n\n constructor(config) {\n this.TAG = 'MSEController';\n\n this._config = config;\n this._emitter = new EventEmitter();\n\n if (this._config.isLive && this._config.autoCleanupSourceBuffer == undefined) {\n // For live stream, do auto cleanup by default\n this._config.autoCleanupSourceBuffer = true;\n }\n\n this.e = {\n onSourceOpen: this._onSourceOpen.bind(this),\n onSourceEnded: this._onSourceEnded.bind(this),\n onSourceClose: this._onSourceClose.bind(this),\n onSourceBufferError: this._onSourceBufferError.bind(this),\n onSourceBufferUpdateEnd: this._onSourceBufferUpdateEnd.bind(this)\n };\n\n this._mediaSource = null;\n this._mediaSourceObjectURL = null;\n this._mediaElement = null;\n\n this._isBufferFull = false;\n this._hasPendingEos = false;\n\n this._requireSetMediaDuration = false;\n this._pendingMediaDuration = 0;\n\n this._pendingSourceBufferInit = [];\n this._mimeTypes = {\n video: null,\n audio: null\n };\n this._sourceBuffers = {\n video: null,\n audio: null\n };\n this._lastInitSegments = {\n video: null,\n audio: null\n };\n this._pendingSegments = {\n video: [],\n audio: []\n };\n this._pendingRemoveRanges = {\n video: [],\n audio: []\n };\n this._idrList = new IDRSampleList();\n }\n\n destroy() {\n if (this._mediaElement || this._mediaSource) {\n this.detachMediaElement();\n }\n this.e = null;\n this._emitter.removeAllListeners();\n this._emitter = null;\n }\n\n on(event, listener) {\n this._emitter.addListener(event, listener);\n }\n\n off(event, listener) {\n this._emitter.removeListener(event, listener);\n }\n\n attachMediaElement(mediaElement) {\n if (this._mediaSource) {\n throw new IllegalStateException('MediaSource has been attached to an HTMLMediaElement!');\n }\n let ms = this._mediaSource = new window.MediaSource();\n ms.addEventListener('sourceopen', this.e.onSourceOpen);\n ms.addEventListener('sourceended', this.e.onSourceEnded);\n ms.addEventListener('sourceclose', this.e.onSourceClose);\n\n this._mediaElement = mediaElement;\n this._mediaSourceObjectURL = window.URL.createObjectURL(this._mediaSource);\n mediaElement.src = this._mediaSourceObjectURL;\n }\n\n detachMediaElement() {\n if (this._mediaSource) {\n let ms = this._mediaSource;\n for (let type in this._sourceBuffers) {\n // pending segments should be discard\n let ps = this._pendingSegments[type];\n ps.splice(0, ps.length);\n this._pendingSegments[type] = null;\n this._pendingRemoveRanges[type] = null;\n this._lastInitSegments[type] = null;\n\n // remove all sourcebuffers\n let sb = this._sourceBuffers[type];\n if (sb) {\n if (ms.readyState !== 'closed') {\n // ms edge can throw an error: Unexpected call to method or property access\n try {\n ms.removeSourceBuffer(sb);\n } catch (error) {\n Log.e(this.TAG, error.message);\n }\n sb.removeEventListener('error', this.e.onSourceBufferError);\n sb.removeEventListener('updateend', this.e.onSourceBufferUpdateEnd);\n }\n this._mimeTypes[type] = null;\n this._sourceBuffers[type] = null;\n }\n }\n if (ms.readyState === 'open') {\n try {\n ms.endOfStream();\n } catch (error) {\n Log.e(this.TAG, error.message);\n }\n }\n ms.removeEventListener('sourceopen', this.e.onSourceOpen);\n ms.removeEventListener('sourceended', this.e.onSourceEnded);\n ms.removeEventListener('sourceclose', this.e.onSourceClose);\n this._pendingSourceBufferInit = [];\n this._isBufferFull = false;\n this._idrList.clear();\n this._mediaSource = null;\n }\n\n if (this._mediaElement) {\n this._mediaElement.src = '';\n this._mediaElement.removeAttribute('src');\n this._mediaElement = null;\n }\n if (this._mediaSourceObjectURL) {\n window.URL.revokeObjectURL(this._mediaSourceObjectURL);\n this._mediaSourceObjectURL = null;\n }\n }\n\n appendInitSegment(initSegment, deferred) {\n if (!this._mediaSource || this._mediaSource.readyState !== 'open') {\n // sourcebuffer creation requires mediaSource.readyState === 'open'\n // so we defer the sourcebuffer creation, until sourceopen event triggered\n this._pendingSourceBufferInit.push(initSegment);\n // make sure that this InitSegment is in the front of pending segments queue\n this._pendingSegments[initSegment.type].push(initSegment);\n return;\n }\n\n let is = initSegment;\n let mimeType = `${is.container}`;\n if (is.codec && is.codec.length > 0) {\n mimeType += `;codecs=${is.codec}`;\n }\n\n let firstInitSegment = false;\n\n Log.v(this.TAG, 'Received Initialization Segment, mimeType: ' + mimeType);\n this._lastInitSegments[is.type] = is;\n\n if (mimeType !== this._mimeTypes[is.type]) {\n if (!this._mimeTypes[is.type]) { // empty, first chance create sourcebuffer\n firstInitSegment = true;\n try {\n let sb = this._sourceBuffers[is.type] = this._mediaSource.addSourceBuffer(mimeType);\n sb.addEventListener('error', this.e.onSourceBufferError);\n sb.addEventListener('updateend', this.e.onSourceBufferUpdateEnd);\n } catch (error) {\n Log.e(this.TAG, error.message);\n this._emitter.emit(MSEEvents.ERROR, {code: error.code, msg: error.message});\n return;\n }\n } else {\n Log.v(this.TAG, `Notice: ${is.type} mimeType changed, origin: ${this._mimeTypes[is.type]}, target: ${mimeType}`);\n }\n this._mimeTypes[is.type] = mimeType;\n }\n\n if (!deferred) {\n // deferred means this InitSegment has been pushed to pendingSegments queue\n this._pendingSegments[is.type].push(is);\n }\n if (!firstInitSegment) { // append immediately only if init segment in subsequence\n if (this._sourceBuffers[is.type] && !this._sourceBuffers[is.type].updating) {\n this._doAppendSegments();\n }\n }\n if (Browser.safari && is.container === 'audio/mpeg' && is.mediaDuration > 0) {\n // 'audio/mpeg' track under Safari may cause MediaElement's duration to be NaN\n // Manually correct MediaSource.duration to make progress bar seekable, and report right duration\n this._requireSetMediaDuration = true;\n this._pendingMediaDuration = is.mediaDuration / 1000; // in seconds\n this._updateMediaSourceDuration();\n }\n }\n\n appendMediaSegment(mediaSegment) {\n let ms = mediaSegment;\n this._pendingSegments[ms.type].push(ms);\n\n if (this._config.autoCleanupSourceBuffer && this._needCleanupSourceBuffer()) {\n this._doCleanupSourceBuffer();\n }\n\n let sb = this._sourceBuffers[ms.type];\n if (sb && !sb.updating && !this._hasPendingRemoveRanges()) {\n this._doAppendSegments();\n }\n }\n\n seek(seconds) {\n // remove all appended buffers\n for (let type in this._sourceBuffers) {\n if (!this._sourceBuffers[type]) {\n continue;\n }\n\n // abort current buffer append algorithm\n let sb = this._sourceBuffers[type];\n if (this._mediaSource.readyState === 'open') {\n try {\n // If range removal algorithm is running, InvalidStateError will be throwed\n // Ignore it.\n sb.abort();\n } catch (error) {\n Log.e(this.TAG, error.message);\n }\n }\n\n // IDRList should be clear\n this._idrList.clear();\n\n // pending segments should be discard\n let ps = this._pendingSegments[type];\n ps.splice(0, ps.length);\n\n if (this._mediaSource.readyState === 'closed') {\n // Parent MediaSource object has been detached from HTMLMediaElement\n continue;\n }\n\n // record ranges to be remove from SourceBuffer\n for (let i = 0; i < sb.buffered.length; i++) {\n let start = sb.buffered.start(i);\n let end = sb.buffered.end(i);\n this._pendingRemoveRanges[type].push({start, end});\n }\n\n // if sb is not updating, let's remove ranges now!\n if (!sb.updating) {\n this._doRemoveRanges();\n }\n\n // Safari 10 may get InvalidStateError in the later appendBuffer() after SourceBuffer.remove() call\n // Internal parser's state may be invalid at this time. Re-append last InitSegment to workaround.\n // Related issue: https://bugs.webkit.org/show_bug.cgi?id=159230\n if (Browser.safari) {\n let lastInitSegment = this._lastInitSegments[type];\n if (lastInitSegment) {\n this._pendingSegments[type].push(lastInitSegment);\n if (!sb.updating) {\n this._doAppendSegments();\n }\n }\n }\n }\n }\n\n endOfStream() {\n let ms = this._mediaSource;\n let sb = this._sourceBuffers;\n if (!ms || ms.readyState !== 'open') {\n if (ms && ms.readyState === 'closed' && this._hasPendingSegments()) {\n // If MediaSource hasn't turned into open state, and there're pending segments\n // Mark pending endOfStream, defer call until all pending segments appended complete\n this._hasPendingEos = true;\n }\n return;\n }\n if (sb.video && sb.video.updating || sb.audio && sb.audio.updating) {\n // If any sourcebuffer is updating, defer endOfStream operation\n // See _onSourceBufferUpdateEnd()\n this._hasPendingEos = true;\n } else {\n this._hasPendingEos = false;\n // Notify media data loading complete\n // This is helpful for correcting total duration to match last media segment\n // Otherwise MediaElement's ended event may not be triggered\n ms.endOfStream();\n }\n }\n\n getNearestKeyframe(dts) {\n return this._idrList.getLastSyncPointBeforeDts(dts);\n }\n\n _needCleanupSourceBuffer() {\n if (!this._config.autoCleanupSourceBuffer) {\n return false;\n }\n\n let currentTime = this._mediaElement.currentTime;\n\n for (let type in this._sourceBuffers) {\n let sb = this._sourceBuffers[type];\n if (sb) {\n let buffered = sb.buffered;\n if (buffered.length >= 1) {\n if (currentTime - buffered.start(0) >= this._config.autoCleanupMaxBackwardDuration) {\n return true;\n }\n }\n }\n }\n\n return false;\n }\n\n _doCleanupSourceBuffer() {\n let currentTime = this._mediaElement.currentTime;\n\n for (let type in this._sourceBuffers) {\n let sb = this._sourceBuffers[type];\n if (sb) {\n let buffered = sb.buffered;\n let doRemove = false;\n\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n\n if (start <= currentTime && currentTime < end + 3) { // padding 3 seconds\n if (currentTime - start >= this._config.autoCleanupMaxBackwardDuration) {\n doRemove = true;\n let removeEnd = currentTime - this._config.autoCleanupMinBackwardDuration;\n this._pendingRemoveRanges[type].push({start: start, end: removeEnd});\n }\n } else if (end < currentTime) {\n doRemove = true;\n this._pendingRemoveRanges[type].push({start: start, end: end});\n }\n }\n\n if (doRemove && !sb.updating) {\n this._doRemoveRanges();\n }\n }\n }\n }\n\n _updateMediaSourceDuration() {\n let sb = this._sourceBuffers;\n if (this._mediaElement.readyState === 0 || this._mediaSource.readyState !== 'open') {\n return;\n }\n if ((sb.video && sb.video.updating) || (sb.audio && sb.audio.updating)) {\n return;\n }\n\n let current = this._mediaSource.duration;\n let target = this._pendingMediaDuration;\n\n if (target > 0 && (isNaN(current) || target > current)) {\n Log.v(this.TAG, `Update MediaSource duration from ${current} to ${target}`);\n this._mediaSource.duration = target;\n }\n\n this._requireSetMediaDuration = false;\n this._pendingMediaDuration = 0;\n }\n\n _doRemoveRanges() {\n for (let type in this._pendingRemoveRanges) {\n if (!this._sourceBuffers[type] || this._sourceBuffers[type].updating) {\n continue;\n }\n let sb = this._sourceBuffers[type];\n let ranges = this._pendingRemoveRanges[type];\n while (ranges.length && !sb.updating) {\n let range = ranges.shift();\n sb.remove(range.start, range.end);\n }\n }\n }\n\n _doAppendSegments() {\n let pendingSegments = this._pendingSegments;\n\n for (let type in pendingSegments) {\n if (!this._sourceBuffers[type] || this._sourceBuffers[type].updating) {\n continue;\n }\n\n if (pendingSegments[type].length > 0) {\n let segment = pendingSegments[type].shift();\n\n if (segment.timestampOffset) {\n // For MPEG audio stream in MSE, if unbuffered-seeking occurred\n // We need explicitly set timestampOffset to the desired point in timeline for mpeg SourceBuffer.\n let currentOffset = this._sourceBuffers[type].timestampOffset;\n let targetOffset = segment.timestampOffset / 1000; // in seconds\n\n let delta = Math.abs(currentOffset - targetOffset);\n if (delta > 0.1) { // If time delta > 100ms\n Log.v(this.TAG, `Update MPEG audio timestampOffset from ${currentOffset} to ${targetOffset}`);\n this._sourceBuffers[type].timestampOffset = targetOffset;\n }\n delete segment.timestampOffset;\n }\n\n if (!segment.data || segment.data.byteLength === 0) {\n // Ignore empty buffer\n continue;\n }\n\n try {\n this._sourceBuffers[type].appendBuffer(segment.data);\n this._isBufferFull = false;\n if (type === 'video' && segment.hasOwnProperty('info')) {\n this._idrList.appendArray(segment.info.syncPoints);\n }\n } catch (error) {\n this._pendingSegments[type].unshift(segment);\n if (error.code === 22) { // QuotaExceededError\n /* Notice that FireFox may not throw QuotaExceededError if SourceBuffer is full\n * Currently we can only do lazy-load to avoid SourceBuffer become scattered.\n * SourceBuffer eviction policy may be changed in future version of FireFox.\n *\n * Related issues:\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1279885\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1280023\n */\n\n // report buffer full, abort network IO\n if (!this._isBufferFull) {\n this._emitter.emit(MSEEvents.BUFFER_FULL);\n }\n this._isBufferFull = true;\n } else {\n Log.e(this.TAG, error.message);\n this._emitter.emit(MSEEvents.ERROR, {code: error.code, msg: error.message});\n }\n }\n }\n }\n }\n\n _onSourceOpen() {\n Log.v(this.TAG, 'MediaSource onSourceOpen');\n this._mediaSource.removeEventListener('sourceopen', this.e.onSourceOpen);\n // deferred sourcebuffer creation / initialization\n if (this._pendingSourceBufferInit.length > 0) {\n let pendings = this._pendingSourceBufferInit;\n while (pendings.length) {\n let segment = pendings.shift();\n this.appendInitSegment(segment, true);\n }\n }\n // there may be some pending media segments, append them\n if (this._hasPendingSegments()) {\n this._doAppendSegments();\n }\n this._emitter.emit(MSEEvents.SOURCE_OPEN);\n }\n\n _onSourceEnded() {\n // fired on endOfStream\n Log.v(this.TAG, 'MediaSource onSourceEnded');\n }\n\n _onSourceClose() {\n // fired on detaching from media element\n Log.v(this.TAG, 'MediaSource onSourceClose');\n if (this._mediaSource && this.e != null) {\n this._mediaSource.removeEventListener('sourceopen', this.e.onSourceOpen);\n this._mediaSource.removeEventListener('sourceended', this.e.onSourceEnded);\n this._mediaSource.removeEventListener('sourceclose', this.e.onSourceClose);\n }\n }\n\n _hasPendingSegments() {\n let ps = this._pendingSegments;\n return ps.video.length > 0 || ps.audio.length > 0;\n }\n\n _hasPendingRemoveRanges() {\n let prr = this._pendingRemoveRanges;\n return prr.video.length > 0 || prr.audio.length > 0;\n }\n\n _onSourceBufferUpdateEnd() {\n if (this._requireSetMediaDuration) {\n this._updateMediaSourceDuration();\n } else if (this._hasPendingRemoveRanges()) {\n this._doRemoveRanges();\n } else if (this._hasPendingSegments()) {\n this._doAppendSegments();\n } else if (this._hasPendingEos) {\n this.endOfStream();\n }\n this._emitter.emit(MSEEvents.UPDATE_END);\n }\n\n _onSourceBufferError(e) {\n Log.e(this.TAG, `SourceBuffer Error: ${e}`);\n // this error might not always be fatal, just ignore it\n }\n\n}\n\nexport default MSEController;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst MSEEvents = {\n ERROR: 'error',\n SOURCE_OPEN: 'source_open',\n UPDATE_END: 'update_end',\n BUFFER_FULL: 'buffer_full'\n};\n\nexport default MSEEvents;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport EventEmitter from 'events';\nimport work from 'webworkify-webpack';\nimport Log from '../utils/logger.js';\nimport LoggingControl from '../utils/logging-control.js';\nimport TransmuxingController from './transmuxing-controller.js';\nimport TransmuxingEvents from './transmuxing-events.js';\nimport TransmuxingWorker from './transmuxing-worker.js';\nimport MediaInfo from './media-info.js';\n\nclass Transmuxer {\n\n constructor(mediaDataSource, config) {\n this.TAG = 'Transmuxer';\n this._emitter = new EventEmitter();\n\n if (config.enableWorker && typeof (Worker) !== 'undefined') {\n try {\n this._worker = work(require.resolve('./transmuxing-worker'));\n this._workerDestroying = false;\n this._worker.addEventListener('message', this._onWorkerMessage.bind(this));\n this._worker.postMessage({cmd: 'init', param: [mediaDataSource, config]});\n this.e = {\n onLoggingConfigChanged: this._onLoggingConfigChanged.bind(this)\n };\n LoggingControl.registerListener(this.e.onLoggingConfigChanged);\n this._worker.postMessage({cmd: 'logging_config', param: LoggingControl.getConfig()});\n } catch (error) {\n Log.e(this.TAG, 'Error while initialize transmuxing worker, fallback to inline transmuxing');\n this._worker = null;\n this._controller = new TransmuxingController(mediaDataSource, config);\n }\n } else {\n this._controller = new TransmuxingController(mediaDataSource, config);\n }\n\n if (this._controller) {\n let ctl = this._controller;\n ctl.on(TransmuxingEvents.IO_ERROR, this._onIOError.bind(this));\n ctl.on(TransmuxingEvents.DEMUX_ERROR, this._onDemuxError.bind(this));\n ctl.on(TransmuxingEvents.INIT_SEGMENT, this._onInitSegment.bind(this));\n ctl.on(TransmuxingEvents.MEDIA_SEGMENT, this._onMediaSegment.bind(this));\n ctl.on(TransmuxingEvents.LOADING_COMPLETE, this._onLoadingComplete.bind(this));\n ctl.on(TransmuxingEvents.RECOVERED_EARLY_EOF, this._onRecoveredEarlyEof.bind(this));\n ctl.on(TransmuxingEvents.MEDIA_INFO, this._onMediaInfo.bind(this));\n ctl.on(TransmuxingEvents.METADATA_ARRIVED, this._onMetaDataArrived.bind(this));\n ctl.on(TransmuxingEvents.SCRIPTDATA_ARRIVED, this._onScriptDataArrived.bind(this));\n ctl.on(TransmuxingEvents.STATISTICS_INFO, this._onStatisticsInfo.bind(this));\n ctl.on(TransmuxingEvents.RECOMMEND_SEEKPOINT, this._onRecommendSeekpoint.bind(this));\n }\n }\n\n destroy() {\n if (this._worker) {\n if (!this._workerDestroying) {\n this._workerDestroying = true;\n this._worker.postMessage({cmd: 'destroy'});\n LoggingControl.removeListener(this.e.onLoggingConfigChanged);\n this.e = null;\n }\n } else {\n this._controller.destroy();\n this._controller = null;\n }\n this._emitter.removeAllListeners();\n this._emitter = null;\n }\n\n on(event, listener) {\n this._emitter.addListener(event, listener);\n }\n\n off(event, listener) {\n this._emitter.removeListener(event, listener);\n }\n\n hasWorker() {\n return this._worker != null;\n }\n\n open() {\n if (this._worker) {\n this._worker.postMessage({cmd: 'start'});\n } else {\n this._controller.start();\n }\n }\n\n close() {\n if (this._worker) {\n this._worker.postMessage({cmd: 'stop'});\n } else {\n this._controller.stop();\n }\n }\n\n seek(milliseconds) {\n if (this._worker) {\n this._worker.postMessage({cmd: 'seek', param: milliseconds});\n } else {\n this._controller.seek(milliseconds);\n }\n }\n\n pause() {\n if (this._worker) {\n this._worker.postMessage({cmd: 'pause'});\n } else {\n this._controller.pause();\n }\n }\n\n resume() {\n if (this._worker) {\n this._worker.postMessage({cmd: 'resume'});\n } else {\n this._controller.resume();\n }\n }\n\n _onInitSegment(type, initSegment) {\n // do async invoke\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.INIT_SEGMENT, type, initSegment);\n });\n }\n\n _onMediaSegment(type, mediaSegment) {\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.MEDIA_SEGMENT, type, mediaSegment);\n });\n }\n\n _onLoadingComplete() {\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.LOADING_COMPLETE);\n });\n }\n\n _onRecoveredEarlyEof() {\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.RECOVERED_EARLY_EOF);\n });\n }\n\n _onMediaInfo(mediaInfo) {\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.MEDIA_INFO, mediaInfo);\n });\n }\n\n _onMetaDataArrived(metadata) {\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.METADATA_ARRIVED, metadata);\n });\n }\n\n _onScriptDataArrived(data) {\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.SCRIPTDATA_ARRIVED, data);\n });\n }\n\n _onStatisticsInfo(statisticsInfo) {\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.STATISTICS_INFO, statisticsInfo);\n });\n }\n\n _onIOError(type, info) {\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.IO_ERROR, type, info);\n });\n }\n\n _onDemuxError(type, info) {\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.DEMUX_ERROR, type, info);\n });\n }\n\n _onRecommendSeekpoint(milliseconds) {\n Promise.resolve().then(() => {\n this._emitter.emit(TransmuxingEvents.RECOMMEND_SEEKPOINT, milliseconds);\n });\n }\n\n _onLoggingConfigChanged(config) {\n if (this._worker) {\n this._worker.postMessage({cmd: 'logging_config', param: config});\n }\n }\n\n _onWorkerMessage(e) {\n let message = e.data;\n let data = message.data;\n\n if (message.msg === 'destroyed' || this._workerDestroying) {\n this._workerDestroying = false;\n this._worker.terminate();\n this._worker = null;\n return;\n }\n\n switch (message.msg) {\n case TransmuxingEvents.INIT_SEGMENT:\n case TransmuxingEvents.MEDIA_SEGMENT:\n this._emitter.emit(message.msg, data.type, data.data);\n break;\n case TransmuxingEvents.LOADING_COMPLETE:\n case TransmuxingEvents.RECOVERED_EARLY_EOF:\n this._emitter.emit(message.msg);\n break;\n case TransmuxingEvents.MEDIA_INFO:\n Object.setPrototypeOf(data, MediaInfo.prototype);\n this._emitter.emit(message.msg, data);\n break;\n case TransmuxingEvents.METADATA_ARRIVED:\n case TransmuxingEvents.SCRIPTDATA_ARRIVED:\n case TransmuxingEvents.STATISTICS_INFO:\n this._emitter.emit(message.msg, data);\n break;\n case TransmuxingEvents.IO_ERROR:\n case TransmuxingEvents.DEMUX_ERROR:\n this._emitter.emit(message.msg, data.type, data.info);\n break;\n case TransmuxingEvents.RECOMMEND_SEEKPOINT:\n this._emitter.emit(message.msg, data);\n break;\n case 'logcat_callback':\n Log.emitter.emit('log', data.type, data.logcat);\n break;\n default:\n break;\n }\n }\n\n}\n\nexport default Transmuxer;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport EventEmitter from 'events';\nimport Log from '../utils/logger.js';\nimport Browser from '../utils/browser.js';\nimport MediaInfo from './media-info.js';\nimport FLVDemuxer from '../demux/flv-demuxer.js';\nimport MP4Remuxer from '../remux/mp4-remuxer.js';\nimport DemuxErrors from '../demux/demux-errors.js';\nimport IOController from '../io/io-controller.js';\nimport TransmuxingEvents from './transmuxing-events.js';\nimport {LoaderStatus, LoaderErrors} from '../io/loader.js';\n\n// Transmuxing (IO, Demuxing, Remuxing) controller, with multipart support\nclass TransmuxingController {\n\n constructor(mediaDataSource, config) {\n this.TAG = 'TransmuxingController';\n this._emitter = new EventEmitter();\n\n this._config = config;\n\n // treat single part media as multipart media, which has only one segment\n if (!mediaDataSource.segments) {\n mediaDataSource.segments = [{\n duration: mediaDataSource.duration,\n filesize: mediaDataSource.filesize,\n url: mediaDataSource.url\n }];\n }\n\n // fill in default IO params if not exists\n if (typeof mediaDataSource.cors !== 'boolean') {\n mediaDataSource.cors = true;\n }\n if (typeof mediaDataSource.withCredentials !== 'boolean') {\n mediaDataSource.withCredentials = false;\n }\n\n this._mediaDataSource = mediaDataSource;\n this._currentSegmentIndex = 0;\n let totalDuration = 0;\n\n this._mediaDataSource.segments.forEach((segment) => {\n // timestampBase for each segment, and calculate total duration\n segment.timestampBase = totalDuration;\n totalDuration += segment.duration;\n // params needed by IOController\n segment.cors = mediaDataSource.cors;\n segment.withCredentials = mediaDataSource.withCredentials;\n // referrer policy control, if exist\n if (config.referrerPolicy) {\n segment.referrerPolicy = config.referrerPolicy;\n }\n });\n\n if (!isNaN(totalDuration) && this._mediaDataSource.duration !== totalDuration) {\n this._mediaDataSource.duration = totalDuration;\n }\n\n this._mediaInfo = null;\n this._demuxer = null;\n this._remuxer = null;\n this._ioctl = null;\n\n this._pendingSeekTime = null;\n this._pendingResolveSeekPoint = null;\n\n this._statisticsReporter = null;\n }\n\n destroy() {\n this._mediaInfo = null;\n this._mediaDataSource = null;\n\n if (this._statisticsReporter) {\n this._disableStatisticsReporter();\n }\n if (this._ioctl) {\n this._ioctl.destroy();\n this._ioctl = null;\n }\n if (this._demuxer) {\n this._demuxer.destroy();\n this._demuxer = null;\n }\n if (this._remuxer) {\n this._remuxer.destroy();\n this._remuxer = null;\n }\n\n this._emitter.removeAllListeners();\n this._emitter = null;\n }\n\n on(event, listener) {\n this._emitter.addListener(event, listener);\n }\n\n off(event, listener) {\n this._emitter.removeListener(event, listener);\n }\n\n start() {\n this._loadSegment(0);\n this._enableStatisticsReporter();\n }\n\n _loadSegment(segmentIndex, optionalFrom) {\n this._currentSegmentIndex = segmentIndex;\n let dataSource = this._mediaDataSource.segments[segmentIndex];\n\n let ioctl = this._ioctl = new IOController(dataSource, this._config, segmentIndex);\n ioctl.onError = this._onIOException.bind(this);\n ioctl.onSeeked = this._onIOSeeked.bind(this);\n ioctl.onComplete = this._onIOComplete.bind(this);\n ioctl.onRedirect = this._onIORedirect.bind(this);\n ioctl.onRecoveredEarlyEof = this._onIORecoveredEarlyEof.bind(this);\n\n if (optionalFrom) {\n this._demuxer.bindDataSource(this._ioctl);\n } else {\n ioctl.onDataArrival = this._onInitChunkArrival.bind(this);\n }\n\n ioctl.open(optionalFrom);\n }\n\n stop() {\n this._internalAbort();\n this._disableStatisticsReporter();\n }\n\n _internalAbort() {\n if (this._ioctl) {\n this._ioctl.destroy();\n this._ioctl = null;\n }\n }\n\n pause() { // take a rest\n if (this._ioctl && this._ioctl.isWorking()) {\n this._ioctl.pause();\n this._disableStatisticsReporter();\n }\n }\n\n resume() {\n if (this._ioctl && this._ioctl.isPaused()) {\n this._ioctl.resume();\n this._enableStatisticsReporter();\n }\n }\n\n seek(milliseconds) {\n if (this._mediaInfo == null || !this._mediaInfo.isSeekable()) {\n return;\n }\n\n let targetSegmentIndex = this._searchSegmentIndexContains(milliseconds);\n\n if (targetSegmentIndex === this._currentSegmentIndex) {\n // intra-segment seeking\n let segmentInfo = this._mediaInfo.segments[targetSegmentIndex];\n\n if (segmentInfo == undefined) {\n // current segment loading started, but mediainfo hasn't received yet\n // wait for the metadata loaded, then seek to expected position\n this._pendingSeekTime = milliseconds;\n } else {\n let keyframe = segmentInfo.getNearestKeyframe(milliseconds);\n this._remuxer.seek(keyframe.milliseconds);\n this._ioctl.seek(keyframe.fileposition);\n // Will be resolved in _onRemuxerMediaSegmentArrival()\n this._pendingResolveSeekPoint = keyframe.milliseconds;\n }\n } else {\n // cross-segment seeking\n let targetSegmentInfo = this._mediaInfo.segments[targetSegmentIndex];\n\n if (targetSegmentInfo == undefined) {\n // target segment hasn't been loaded. We need metadata then seek to expected time\n this._pendingSeekTime = milliseconds;\n this._internalAbort();\n this._remuxer.seek();\n this._remuxer.insertDiscontinuity();\n this._loadSegment(targetSegmentIndex);\n // Here we wait for the metadata loaded, then seek to expected position\n } else {\n // We have target segment's metadata, direct seek to target position\n let keyframe = targetSegmentInfo.getNearestKeyframe(milliseconds);\n this._internalAbort();\n this._remuxer.seek(milliseconds);\n this._remuxer.insertDiscontinuity();\n this._demuxer.resetMediaInfo();\n this._demuxer.timestampBase = this._mediaDataSource.segments[targetSegmentIndex].timestampBase;\n this._loadSegment(targetSegmentIndex, keyframe.fileposition);\n this._pendingResolveSeekPoint = keyframe.milliseconds;\n this._reportSegmentMediaInfo(targetSegmentIndex);\n }\n }\n\n this._enableStatisticsReporter();\n }\n\n _searchSegmentIndexContains(milliseconds) {\n let segments = this._mediaDataSource.segments;\n let idx = segments.length - 1;\n\n for (let i = 0; i < segments.length; i++) {\n if (milliseconds < segments[i].timestampBase) {\n idx = i - 1;\n break;\n }\n }\n return idx;\n }\n\n _onInitChunkArrival(data, byteStart) {\n let probeData = null;\n let consumed = 0;\n\n if (byteStart > 0) {\n // IOController seeked immediately after opened, byteStart > 0 callback may received\n this._demuxer.bindDataSource(this._ioctl);\n this._demuxer.timestampBase = this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase;\n\n consumed = this._demuxer.parseChunks(data, byteStart);\n } else if ((probeData = FLVDemuxer.probe(data)).match) {\n // Always create new FLVDemuxer\n this._demuxer = new FLVDemuxer(probeData, this._config);\n\n if (!this._remuxer) {\n this._remuxer = new MP4Remuxer(this._config);\n }\n\n let mds = this._mediaDataSource;\n if (mds.duration != undefined && !isNaN(mds.duration)) {\n this._demuxer.overridedDuration = mds.duration;\n }\n if (typeof mds.hasAudio === 'boolean') {\n this._demuxer.overridedHasAudio = mds.hasAudio;\n }\n if (typeof mds.hasVideo === 'boolean') {\n this._demuxer.overridedHasVideo = mds.hasVideo;\n }\n\n this._demuxer.timestampBase = mds.segments[this._currentSegmentIndex].timestampBase;\n\n this._demuxer.onError = this._onDemuxException.bind(this);\n this._demuxer.onMediaInfo = this._onMediaInfo.bind(this);\n this._demuxer.onMetaDataArrived = this._onMetaDataArrived.bind(this);\n this._demuxer.onScriptDataArrived = this._onScriptDataArrived.bind(this);\n\n this._remuxer.bindDataSource(this._demuxer\n .bindDataSource(this._ioctl\n ));\n\n this._remuxer.onInitSegment = this._onRemuxerInitSegmentArrival.bind(this);\n this._remuxer.onMediaSegment = this._onRemuxerMediaSegmentArrival.bind(this);\n\n consumed = this._demuxer.parseChunks(data, byteStart);\n } else {\n probeData = null;\n Log.e(this.TAG, 'Non-FLV, Unsupported media type!');\n Promise.resolve().then(() => {\n this._internalAbort();\n });\n this._emitter.emit(TransmuxingEvents.DEMUX_ERROR, DemuxErrors.FORMAT_UNSUPPORTED, 'Non-FLV, Unsupported media type');\n\n consumed = 0;\n }\n\n return consumed;\n }\n\n _onMediaInfo(mediaInfo) {\n if (this._mediaInfo == null) {\n // Store first segment's mediainfo as global mediaInfo\n this._mediaInfo = Object.assign({}, mediaInfo);\n this._mediaInfo.keyframesIndex = null;\n this._mediaInfo.segments = [];\n this._mediaInfo.segmentCount = this._mediaDataSource.segments.length;\n Object.setPrototypeOf(this._mediaInfo, MediaInfo.prototype);\n }\n\n let segmentInfo = Object.assign({}, mediaInfo);\n Object.setPrototypeOf(segmentInfo, MediaInfo.prototype);\n this._mediaInfo.segments[this._currentSegmentIndex] = segmentInfo;\n\n // notify mediaInfo update\n this._reportSegmentMediaInfo(this._currentSegmentIndex);\n\n if (this._pendingSeekTime != null) {\n Promise.resolve().then(() => {\n let target = this._pendingSeekTime;\n this._pendingSeekTime = null;\n this.seek(target);\n });\n }\n }\n\n _onMetaDataArrived(metadata) {\n this._emitter.emit(TransmuxingEvents.METADATA_ARRIVED, metadata);\n }\n\n _onScriptDataArrived(data) {\n this._emitter.emit(TransmuxingEvents.SCRIPTDATA_ARRIVED, data);\n }\n\n _onIOSeeked() {\n this._remuxer.insertDiscontinuity();\n }\n\n _onIOComplete(extraData) {\n let segmentIndex = extraData;\n let nextSegmentIndex = segmentIndex + 1;\n\n if (nextSegmentIndex < this._mediaDataSource.segments.length) {\n this._internalAbort();\n this._remuxer.flushStashedSamples();\n this._loadSegment(nextSegmentIndex);\n } else {\n this._remuxer.flushStashedSamples();\n this._emitter.emit(TransmuxingEvents.LOADING_COMPLETE);\n this._disableStatisticsReporter();\n }\n }\n\n _onIORedirect(redirectedURL) {\n let segmentIndex = this._ioctl.extraData;\n this._mediaDataSource.segments[segmentIndex].redirectedURL = redirectedURL;\n }\n\n _onIORecoveredEarlyEof() {\n this._emitter.emit(TransmuxingEvents.RECOVERED_EARLY_EOF);\n }\n\n _onIOException(type, info) {\n Log.e(this.TAG, `IOException: type = ${type}, code = ${info.code}, msg = ${info.msg}`);\n this._emitter.emit(TransmuxingEvents.IO_ERROR, type, info);\n this._disableStatisticsReporter();\n }\n\n _onDemuxException(type, info) {\n Log.e(this.TAG, `DemuxException: type = ${type}, info = ${info}`);\n this._emitter.emit(TransmuxingEvents.DEMUX_ERROR, type, info);\n }\n\n _onRemuxerInitSegmentArrival(type, initSegment) {\n this._emitter.emit(TransmuxingEvents.INIT_SEGMENT, type, initSegment);\n }\n\n _onRemuxerMediaSegmentArrival(type, mediaSegment) {\n if (this._pendingSeekTime != null) {\n // Media segments after new-segment cross-seeking should be dropped.\n return;\n }\n this._emitter.emit(TransmuxingEvents.MEDIA_SEGMENT, type, mediaSegment);\n\n // Resolve pending seekPoint\n if (this._pendingResolveSeekPoint != null && type === 'video') {\n let syncPoints = mediaSegment.info.syncPoints;\n let seekpoint = this._pendingResolveSeekPoint;\n this._pendingResolveSeekPoint = null;\n\n // Safari: Pass PTS for recommend_seekpoint\n if (Browser.safari && syncPoints.length > 0 && syncPoints[0].originalDts === seekpoint) {\n seekpoint = syncPoints[0].pts;\n }\n // else: use original DTS (keyframe.milliseconds)\n\n this._emitter.emit(TransmuxingEvents.RECOMMEND_SEEKPOINT, seekpoint);\n }\n }\n\n _enableStatisticsReporter() {\n if (this._statisticsReporter == null) {\n this._statisticsReporter = self.setInterval(\n this._reportStatisticsInfo.bind(this),\n this._config.statisticsInfoReportInterval);\n }\n }\n\n _disableStatisticsReporter() {\n if (this._statisticsReporter) {\n self.clearInterval(this._statisticsReporter);\n this._statisticsReporter = null;\n }\n }\n\n _reportSegmentMediaInfo(segmentIndex) {\n let segmentInfo = this._mediaInfo.segments[segmentIndex];\n let exportInfo = Object.assign({}, segmentInfo);\n\n exportInfo.duration = this._mediaInfo.duration;\n exportInfo.segmentCount = this._mediaInfo.segmentCount;\n delete exportInfo.segments;\n delete exportInfo.keyframesIndex;\n\n this._emitter.emit(TransmuxingEvents.MEDIA_INFO, exportInfo);\n }\n\n _reportStatisticsInfo() {\n let info = {};\n\n info.url = this._ioctl.currentURL;\n info.hasRedirect = this._ioctl.hasRedirect;\n if (info.hasRedirect) {\n info.redirectedURL = this._ioctl.currentRedirectedURL;\n }\n\n info.speed = this._ioctl.currentSpeed;\n info.loaderType = this._ioctl.loaderType;\n info.currentSegmentIndex = this._currentSegmentIndex;\n info.totalSegmentCount = this._mediaDataSource.segments.length;\n\n this._emitter.emit(TransmuxingEvents.STATISTICS_INFO, info);\n }\n\n}\n\nexport default TransmuxingController;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst TransmuxingEvents = {\n IO_ERROR: 'io_error',\n DEMUX_ERROR: 'demux_error',\n INIT_SEGMENT: 'init_segment',\n MEDIA_SEGMENT: 'media_segment',\n LOADING_COMPLETE: 'loading_complete',\n RECOVERED_EARLY_EOF: 'recovered_early_eof',\n MEDIA_INFO: 'media_info',\n METADATA_ARRIVED: 'metadata_arrived',\n SCRIPTDATA_ARRIVED: 'scriptdata_arrived',\n STATISTICS_INFO: 'statistics_info',\n RECOMMEND_SEEKPOINT: 'recommend_seekpoint'\n};\n\nexport default TransmuxingEvents;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Log from '../utils/logger.js';\nimport LoggingControl from '../utils/logging-control.js';\nimport Polyfill from '../utils/polyfill.js';\nimport TransmuxingController from './transmuxing-controller.js';\nimport TransmuxingEvents from './transmuxing-events.js';\n\n/* post message to worker:\n data: {\n cmd: string\n param: any\n }\n\n receive message from worker:\n data: {\n msg: string,\n data: any\n }\n */\n\nlet TransmuxingWorker = function (self) {\n\n let TAG = 'TransmuxingWorker';\n let controller = null;\n let logcatListener = onLogcatCallback.bind(this);\n\n Polyfill.install();\n\n self.addEventListener('message', function (e) {\n switch (e.data.cmd) {\n case 'init':\n controller = new TransmuxingController(e.data.param[0], e.data.param[1]);\n controller.on(TransmuxingEvents.IO_ERROR, onIOError.bind(this));\n controller.on(TransmuxingEvents.DEMUX_ERROR, onDemuxError.bind(this));\n controller.on(TransmuxingEvents.INIT_SEGMENT, onInitSegment.bind(this));\n controller.on(TransmuxingEvents.MEDIA_SEGMENT, onMediaSegment.bind(this));\n controller.on(TransmuxingEvents.LOADING_COMPLETE, onLoadingComplete.bind(this));\n controller.on(TransmuxingEvents.RECOVERED_EARLY_EOF, onRecoveredEarlyEof.bind(this));\n controller.on(TransmuxingEvents.MEDIA_INFO, onMediaInfo.bind(this));\n controller.on(TransmuxingEvents.METADATA_ARRIVED, onMetaDataArrived.bind(this));\n controller.on(TransmuxingEvents.SCRIPTDATA_ARRIVED, onScriptDataArrived.bind(this));\n controller.on(TransmuxingEvents.STATISTICS_INFO, onStatisticsInfo.bind(this));\n controller.on(TransmuxingEvents.RECOMMEND_SEEKPOINT, onRecommendSeekpoint.bind(this));\n break;\n case 'destroy':\n if (controller) {\n controller.destroy();\n controller = null;\n }\n self.postMessage({msg: 'destroyed'});\n break;\n case 'start':\n controller.start();\n break;\n case 'stop':\n controller.stop();\n break;\n case 'seek':\n controller.seek(e.data.param);\n break;\n case 'pause':\n controller.pause();\n break;\n case 'resume':\n controller.resume();\n break;\n case 'logging_config': {\n let config = e.data.param;\n LoggingControl.applyConfig(config);\n\n if (config.enableCallback === true) {\n LoggingControl.addLogListener(logcatListener);\n } else {\n LoggingControl.removeLogListener(logcatListener);\n }\n break;\n }\n }\n });\n\n function onInitSegment(type, initSegment) {\n let obj = {\n msg: TransmuxingEvents.INIT_SEGMENT,\n data: {\n type: type,\n data: initSegment\n }\n };\n self.postMessage(obj, [initSegment.data]); // data: ArrayBuffer\n }\n\n function onMediaSegment(type, mediaSegment) {\n let obj = {\n msg: TransmuxingEvents.MEDIA_SEGMENT,\n data: {\n type: type,\n data: mediaSegment\n }\n };\n self.postMessage(obj, [mediaSegment.data]); // data: ArrayBuffer\n }\n\n function onLoadingComplete() {\n let obj = {\n msg: TransmuxingEvents.LOADING_COMPLETE\n };\n self.postMessage(obj);\n }\n\n function onRecoveredEarlyEof() {\n let obj = {\n msg: TransmuxingEvents.RECOVERED_EARLY_EOF\n };\n self.postMessage(obj);\n }\n\n function onMediaInfo(mediaInfo) {\n let obj = {\n msg: TransmuxingEvents.MEDIA_INFO,\n data: mediaInfo\n };\n self.postMessage(obj);\n }\n\n function onMetaDataArrived(metadata) {\n let obj = {\n msg: TransmuxingEvents.METADATA_ARRIVED,\n data: metadata\n };\n self.postMessage(obj);\n }\n\n function onScriptDataArrived(data) {\n let obj = {\n msg: TransmuxingEvents.SCRIPTDATA_ARRIVED,\n data: data\n };\n self.postMessage(obj);\n }\n\n function onStatisticsInfo(statInfo) {\n let obj = {\n msg: TransmuxingEvents.STATISTICS_INFO,\n data: statInfo\n };\n self.postMessage(obj);\n }\n\n function onIOError(type, info) {\n self.postMessage({\n msg: TransmuxingEvents.IO_ERROR,\n data: {\n type: type,\n info: info\n }\n });\n }\n\n function onDemuxError(type, info) {\n self.postMessage({\n msg: TransmuxingEvents.DEMUX_ERROR,\n data: {\n type: type,\n info: info\n }\n });\n }\n\n function onRecommendSeekpoint(milliseconds) {\n self.postMessage({\n msg: TransmuxingEvents.RECOMMEND_SEEKPOINT,\n data: milliseconds\n });\n }\n\n function onLogcatCallback(type, str) {\n self.postMessage({\n msg: 'logcat_callback',\n data: {\n type: type,\n logcat: str\n }\n });\n }\n\n};\n\nexport default TransmuxingWorker;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Log from '../utils/logger.js';\nimport decodeUTF8 from '../utils/utf8-conv.js';\nimport {IllegalStateException} from '../utils/exception.js';\n\nlet le = (function () {\n let buf = new ArrayBuffer(2);\n (new DataView(buf)).setInt16(0, 256, true); // little-endian write\n return (new Int16Array(buf))[0] === 256; // platform-spec read, if equal then LE\n})();\n\nclass AMF {\n\n static parseScriptData(arrayBuffer, dataOffset, dataSize) {\n let data = {};\n\n try {\n let name = AMF.parseValue(arrayBuffer, dataOffset, dataSize);\n let value = AMF.parseValue(arrayBuffer, dataOffset + name.size, dataSize - name.size);\n\n data[name.data] = value.data;\n } catch (e) {\n Log.e('AMF', e.toString());\n }\n\n return data;\n }\n\n static parseObject(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 3) {\n throw new IllegalStateException('Data not enough when parse ScriptDataObject');\n }\n let name = AMF.parseString(arrayBuffer, dataOffset, dataSize);\n let value = AMF.parseValue(arrayBuffer, dataOffset + name.size, dataSize - name.size);\n let isObjectEnd = value.objectEnd;\n\n return {\n data: {\n name: name.data,\n value: value.data\n },\n size: name.size + value.size,\n objectEnd: isObjectEnd\n };\n }\n\n static parseVariable(arrayBuffer, dataOffset, dataSize) {\n return AMF.parseObject(arrayBuffer, dataOffset, dataSize);\n }\n\n static parseString(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 2) {\n throw new IllegalStateException('Data not enough when parse String');\n }\n let v = new DataView(arrayBuffer, dataOffset, dataSize);\n let length = v.getUint16(0, !le);\n\n let str;\n if (length > 0) {\n str = decodeUTF8(new Uint8Array(arrayBuffer, dataOffset + 2, length));\n } else {\n str = '';\n }\n\n return {\n data: str,\n size: 2 + length\n };\n }\n\n static parseLongString(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 4) {\n throw new IllegalStateException('Data not enough when parse LongString');\n }\n let v = new DataView(arrayBuffer, dataOffset, dataSize);\n let length = v.getUint32(0, !le);\n\n let str;\n if (length > 0) {\n str = decodeUTF8(new Uint8Array(arrayBuffer, dataOffset + 4, length));\n } else {\n str = '';\n }\n\n return {\n data: str,\n size: 4 + length\n };\n }\n\n static parseDate(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 10) {\n throw new IllegalStateException('Data size invalid when parse Date');\n }\n let v = new DataView(arrayBuffer, dataOffset, dataSize);\n let timestamp = v.getFloat64(0, !le);\n let localTimeOffset = v.getInt16(8, !le);\n timestamp += localTimeOffset * 60 * 1000; // get UTC time\n\n return {\n data: new Date(timestamp),\n size: 8 + 2\n };\n }\n\n static parseValue(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 1) {\n throw new IllegalStateException('Data not enough when parse Value');\n }\n\n let v = new DataView(arrayBuffer, dataOffset, dataSize);\n\n let offset = 1;\n let type = v.getUint8(0);\n let value;\n let objectEnd = false;\n\n try {\n switch (type) {\n case 0: // Number(Double) type\n value = v.getFloat64(1, !le);\n offset += 8;\n break;\n case 1: { // Boolean type\n let b = v.getUint8(1);\n value = b ? true : false;\n offset += 1;\n break;\n }\n case 2: { // String type\n let amfstr = AMF.parseString(arrayBuffer, dataOffset + 1, dataSize - 1);\n value = amfstr.data;\n offset += amfstr.size;\n break;\n }\n case 3: { // Object(s) type\n value = {};\n let terminal = 0; // workaround for malformed Objects which has missing ScriptDataObjectEnd\n if ((v.getUint32(dataSize - 4, !le) & 0x00FFFFFF) === 9) {\n terminal = 3;\n }\n while (offset < dataSize - 4) { // 4 === type(UI8) + ScriptDataObjectEnd(UI24)\n let amfobj = AMF.parseObject(arrayBuffer, dataOffset + offset, dataSize - offset - terminal);\n if (amfobj.objectEnd)\n break;\n value[amfobj.data.name] = amfobj.data.value;\n offset += amfobj.size;\n }\n if (offset <= dataSize - 3) {\n let marker = v.getUint32(offset - 1, !le) & 0x00FFFFFF;\n if (marker === 9) {\n offset += 3;\n }\n }\n break;\n }\n case 8: { // ECMA array type (Mixed array)\n value = {};\n offset += 4; // ECMAArrayLength(UI32)\n let terminal = 0; // workaround for malformed MixedArrays which has missing ScriptDataObjectEnd\n if ((v.getUint32(dataSize - 4, !le) & 0x00FFFFFF) === 9) {\n terminal = 3;\n }\n while (offset < dataSize - 8) { // 8 === type(UI8) + ECMAArrayLength(UI32) + ScriptDataVariableEnd(UI24)\n let amfvar = AMF.parseVariable(arrayBuffer, dataOffset + offset, dataSize - offset - terminal);\n if (amfvar.objectEnd)\n break;\n value[amfvar.data.name] = amfvar.data.value;\n offset += amfvar.size;\n }\n if (offset <= dataSize - 3) {\n let marker = v.getUint32(offset - 1, !le) & 0x00FFFFFF;\n if (marker === 9) {\n offset += 3;\n }\n }\n break;\n }\n case 9: // ScriptDataObjectEnd\n value = undefined;\n offset = 1;\n objectEnd = true;\n break;\n case 10: { // Strict array type\n // ScriptDataValue[n]. NOTE: according to video_file_format_spec_v10_1.pdf\n value = [];\n let strictArrayLength = v.getUint32(1, !le);\n offset += 4;\n for (let i = 0; i < strictArrayLength; i++) {\n let val = AMF.parseValue(arrayBuffer, dataOffset + offset, dataSize - offset);\n value.push(val.data);\n offset += val.size;\n }\n break;\n }\n case 11: { // Date type\n let date = AMF.parseDate(arrayBuffer, dataOffset + 1, dataSize - 1);\n value = date.data;\n offset += date.size;\n break;\n }\n case 12: { // Long string type\n let amfLongStr = AMF.parseString(arrayBuffer, dataOffset + 1, dataSize - 1);\n value = amfLongStr.data;\n offset += amfLongStr.size;\n break;\n }\n default:\n // ignore and skip\n offset = dataSize;\n Log.w('AMF', 'Unsupported AMF value type ' + type);\n }\n } catch (e) {\n Log.e('AMF', e.toString());\n }\n\n return {\n data: value,\n size: offset,\n objectEnd: objectEnd\n };\n }\n\n}\n\nexport default AMF;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst DemuxErrors = {\n OK: 'OK',\n FORMAT_ERROR: 'FormatError',\n FORMAT_UNSUPPORTED: 'FormatUnsupported',\n CODEC_UNSUPPORTED: 'CodecUnsupported'\n};\n\nexport default DemuxErrors;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {IllegalStateException, InvalidArgumentException} from '../utils/exception.js';\n\n// Exponential-Golomb buffer decoder\nclass ExpGolomb {\n\n constructor(uint8array) {\n this.TAG = 'ExpGolomb';\n\n this._buffer = uint8array;\n this._buffer_index = 0;\n this._total_bytes = uint8array.byteLength;\n this._total_bits = uint8array.byteLength * 8;\n this._current_word = 0;\n this._current_word_bits_left = 0;\n }\n\n destroy() {\n this._buffer = null;\n }\n\n _fillCurrentWord() {\n let buffer_bytes_left = this._total_bytes - this._buffer_index;\n if (buffer_bytes_left <= 0)\n throw new IllegalStateException('ExpGolomb: _fillCurrentWord() but no bytes available');\n\n let bytes_read = Math.min(4, buffer_bytes_left);\n let word = new Uint8Array(4);\n word.set(this._buffer.subarray(this._buffer_index, this._buffer_index + bytes_read));\n this._current_word = new DataView(word.buffer).getUint32(0, false);\n\n this._buffer_index += bytes_read;\n this._current_word_bits_left = bytes_read * 8;\n }\n\n readBits(bits) {\n if (bits > 32)\n throw new InvalidArgumentException('ExpGolomb: readBits() bits exceeded max 32bits!');\n\n if (bits <= this._current_word_bits_left) {\n let result = this._current_word >>> (32 - bits);\n this._current_word <<= bits;\n this._current_word_bits_left -= bits;\n return result;\n }\n\n let result = this._current_word_bits_left ? this._current_word : 0;\n result = result >>> (32 - this._current_word_bits_left);\n let bits_need_left = bits - this._current_word_bits_left;\n\n this._fillCurrentWord();\n let bits_read_next = Math.min(bits_need_left, this._current_word_bits_left);\n\n let result2 = this._current_word >>> (32 - bits_read_next);\n this._current_word <<= bits_read_next;\n this._current_word_bits_left -= bits_read_next;\n\n result = (result << bits_read_next) | result2;\n return result;\n }\n\n readBool() {\n return this.readBits(1) === 1;\n }\n\n readByte() {\n return this.readBits(8);\n }\n\n _skipLeadingZero() {\n let zero_count;\n for (zero_count = 0; zero_count < this._current_word_bits_left; zero_count++) {\n if (0 !== (this._current_word & (0x80000000 >>> zero_count))) {\n this._current_word <<= zero_count;\n this._current_word_bits_left -= zero_count;\n return zero_count;\n }\n }\n this._fillCurrentWord();\n return zero_count + this._skipLeadingZero();\n }\n\n readUEG() { // unsigned exponential golomb\n let leading_zeros = this._skipLeadingZero();\n return this.readBits(leading_zeros + 1) - 1;\n }\n\n readSEG() { // signed exponential golomb\n let value = this.readUEG();\n if (value & 0x01) {\n return (value + 1) >>> 1;\n } else {\n return -1 * (value >>> 1);\n }\n }\n\n}\n\nexport default ExpGolomb;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Log from '../utils/logger.js';\nimport AMF from './amf-parser.js';\nimport SPSParser from './sps-parser.js';\nimport DemuxErrors from './demux-errors.js';\nimport MediaInfo from '../core/media-info.js';\nimport {IllegalStateException} from '../utils/exception.js';\n\nfunction Swap16(src) {\n return (((src >>> 8) & 0xFF) |\n ((src & 0xFF) << 8));\n}\n\nfunction Swap32(src) {\n return (((src & 0xFF000000) >>> 24) |\n ((src & 0x00FF0000) >>> 8) |\n ((src & 0x0000FF00) << 8) |\n ((src & 0x000000FF) << 24));\n}\n\nfunction ReadBig32(array, index) {\n return ((array[index] << 24) |\n (array[index + 1] << 16) |\n (array[index + 2] << 8) |\n (array[index + 3]));\n}\n\n\nclass FLVDemuxer {\n\n constructor(probeData, config) {\n this.TAG = 'FLVDemuxer';\n\n this._config = config;\n\n this._onError = null;\n this._onMediaInfo = null;\n this._onMetaDataArrived = null;\n this._onScriptDataArrived = null;\n this._onTrackMetadata = null;\n this._onDataAvailable = null;\n\n this._dataOffset = probeData.dataOffset;\n this._firstParse = true;\n this._dispatch = false;\n\n this._hasAudio = probeData.hasAudioTrack;\n this._hasVideo = probeData.hasVideoTrack;\n\n this._hasAudioFlagOverrided = false;\n this._hasVideoFlagOverrided = false;\n\n this._audioInitialMetadataDispatched = false;\n this._videoInitialMetadataDispatched = false;\n\n this._mediaInfo = new MediaInfo();\n this._mediaInfo.hasAudio = this._hasAudio;\n this._mediaInfo.hasVideo = this._hasVideo;\n this._metadata = null;\n this._audioMetadata = null;\n this._videoMetadata = null;\n\n this._naluLengthSize = 4;\n this._timestampBase = 0; // int32, in milliseconds\n this._timescale = 1000;\n this._duration = 0; // int32, in milliseconds\n this._durationOverrided = false;\n this._referenceFrameRate = {\n fixed: true,\n fps: 23.976,\n fps_num: 23976,\n fps_den: 1000\n };\n\n this._flvSoundRateTable = [5500, 11025, 22050, 44100, 48000];\n\n this._mpegSamplingRates = [\n 96000, 88200, 64000, 48000, 44100, 32000,\n 24000, 22050, 16000, 12000, 11025, 8000, 7350\n ];\n\n this._mpegAudioV10SampleRateTable = [44100, 48000, 32000, 0];\n this._mpegAudioV20SampleRateTable = [22050, 24000, 16000, 0];\n this._mpegAudioV25SampleRateTable = [11025, 12000, 8000, 0];\n\n this._mpegAudioL1BitRateTable = [0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, -1];\n this._mpegAudioL2BitRateTable = [0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, -1];\n this._mpegAudioL3BitRateTable = [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1];\n\n this._videoTrack = {type: 'video', id: 1, sequenceNumber: 0, samples: [], length: 0};\n this._audioTrack = {type: 'audio', id: 2, sequenceNumber: 0, samples: [], length: 0};\n\n this._littleEndian = (function () {\n let buf = new ArrayBuffer(2);\n (new DataView(buf)).setInt16(0, 256, true); // little-endian write\n return (new Int16Array(buf))[0] === 256; // platform-spec read, if equal then LE\n })();\n }\n\n destroy() {\n this._mediaInfo = null;\n this._metadata = null;\n this._audioMetadata = null;\n this._videoMetadata = null;\n this._videoTrack = null;\n this._audioTrack = null;\n\n this._onError = null;\n this._onMediaInfo = null;\n this._onMetaDataArrived = null;\n this._onScriptDataArrived = null;\n this._onTrackMetadata = null;\n this._onDataAvailable = null;\n }\n\n static probe(buffer) {\n let data = new Uint8Array(buffer);\n let mismatch = {match: false};\n\n if (data[0] !== 0x46 || data[1] !== 0x4C || data[2] !== 0x56 || data[3] !== 0x01) {\n return mismatch;\n }\n\n let hasAudio = ((data[4] & 4) >>> 2) !== 0;\n let hasVideo = (data[4] & 1) !== 0;\n\n let offset = ReadBig32(data, 5);\n\n if (offset < 9) {\n return mismatch;\n }\n\n return {\n match: true,\n consumed: offset,\n dataOffset: offset,\n hasAudioTrack: hasAudio,\n hasVideoTrack: hasVideo\n };\n }\n\n bindDataSource(loader) {\n loader.onDataArrival = this.parseChunks.bind(this);\n return this;\n }\n\n // prototype: function(type: string, metadata: any): void\n get onTrackMetadata() {\n return this._onTrackMetadata;\n }\n\n set onTrackMetadata(callback) {\n this._onTrackMetadata = callback;\n }\n\n // prototype: function(mediaInfo: MediaInfo): void\n get onMediaInfo() {\n return this._onMediaInfo;\n }\n\n set onMediaInfo(callback) {\n this._onMediaInfo = callback;\n }\n\n get onMetaDataArrived() {\n return this._onMetaDataArrived;\n }\n\n set onMetaDataArrived(callback) {\n this._onMetaDataArrived = callback;\n }\n\n get onScriptDataArrived() {\n return this._onScriptDataArrived;\n }\n\n set onScriptDataArrived(callback) {\n this._onScriptDataArrived = callback;\n }\n\n // prototype: function(type: number, info: string): void\n get onError() {\n return this._onError;\n }\n\n set onError(callback) {\n this._onError = callback;\n }\n\n // prototype: function(videoTrack: any, audioTrack: any): void\n get onDataAvailable() {\n return this._onDataAvailable;\n }\n\n set onDataAvailable(callback) {\n this._onDataAvailable = callback;\n }\n\n // timestamp base for output samples, must be in milliseconds\n get timestampBase() {\n return this._timestampBase;\n }\n\n set timestampBase(base) {\n this._timestampBase = base;\n }\n\n get overridedDuration() {\n return this._duration;\n }\n\n // Force-override media duration. Must be in milliseconds, int32\n set overridedDuration(duration) {\n this._durationOverrided = true;\n this._duration = duration;\n this._mediaInfo.duration = duration;\n }\n\n // Force-override audio track present flag, boolean\n set overridedHasAudio(hasAudio) {\n this._hasAudioFlagOverrided = true;\n this._hasAudio = hasAudio;\n this._mediaInfo.hasAudio = hasAudio;\n }\n\n // Force-override video track present flag, boolean\n set overridedHasVideo(hasVideo) {\n this._hasVideoFlagOverrided = true;\n this._hasVideo = hasVideo;\n this._mediaInfo.hasVideo = hasVideo;\n }\n\n resetMediaInfo() {\n this._mediaInfo = new MediaInfo();\n }\n\n _isInitialMetadataDispatched() {\n if (this._hasAudio && this._hasVideo) { // both audio & video\n return this._audioInitialMetadataDispatched && this._videoInitialMetadataDispatched;\n }\n if (this._hasAudio && !this._hasVideo) { // audio only\n return this._audioInitialMetadataDispatched;\n }\n if (!this._hasAudio && this._hasVideo) { // video only\n return this._videoInitialMetadataDispatched;\n }\n return false;\n }\n\n // function parseChunks(chunk: ArrayBuffer, byteStart: number): number;\n parseChunks(chunk, byteStart) {\n if (!this._onError || !this._onMediaInfo || !this._onTrackMetadata || !this._onDataAvailable) {\n throw new IllegalStateException('Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified');\n }\n\n let offset = 0;\n let le = this._littleEndian;\n\n if (byteStart === 0) { // buffer with FLV header\n if (chunk.byteLength > 13) {\n let probeData = FLVDemuxer.probe(chunk);\n offset = probeData.dataOffset;\n } else {\n return 0;\n }\n }\n\n if (this._firstParse) { // handle PreviousTagSize0 before Tag1\n this._firstParse = false;\n if (byteStart + offset !== this._dataOffset) {\n Log.w(this.TAG, 'First time parsing but chunk byteStart invalid!');\n }\n\n let v = new DataView(chunk, offset);\n let prevTagSize0 = v.getUint32(0, !le);\n if (prevTagSize0 !== 0) {\n Log.w(this.TAG, 'PrevTagSize0 !== 0 !!!');\n }\n offset += 4;\n }\n\n while (offset < chunk.byteLength) {\n this._dispatch = true;\n\n let v = new DataView(chunk, offset);\n\n if (offset + 11 + 4 > chunk.byteLength) {\n // data not enough for parsing an flv tag\n break;\n }\n\n let tagType = v.getUint8(0);\n let dataSize = v.getUint32(0, !le) & 0x00FFFFFF;\n\n if (offset + 11 + dataSize + 4 > chunk.byteLength) {\n // data not enough for parsing actual data body\n break;\n }\n\n if (tagType !== 8 && tagType !== 9 && tagType !== 18) {\n Log.w(this.TAG, `Unsupported tag type ${tagType}, skipped`);\n // consume the whole tag (skip it)\n offset += 11 + dataSize + 4;\n continue;\n }\n\n let ts2 = v.getUint8(4);\n let ts1 = v.getUint8(5);\n let ts0 = v.getUint8(6);\n let ts3 = v.getUint8(7);\n\n let timestamp = ts0 | (ts1 << 8) | (ts2 << 16) | (ts3 << 24);\n\n let streamId = v.getUint32(7, !le) & 0x00FFFFFF;\n if (streamId !== 0) {\n Log.w(this.TAG, 'Meet tag which has StreamID != 0!');\n }\n\n let dataOffset = offset + 11;\n\n switch (tagType) {\n case 8: // Audio\n this._parseAudioData(chunk, dataOffset, dataSize, timestamp);\n break;\n case 9: // Video\n this._parseVideoData(chunk, dataOffset, dataSize, timestamp, byteStart + offset);\n break;\n case 18: // ScriptDataObject\n this._parseScriptData(chunk, dataOffset, dataSize);\n break;\n }\n\n let prevTagSize = v.getUint32(11 + dataSize, !le);\n if (prevTagSize !== 11 + dataSize) {\n Log.w(this.TAG, `Invalid PrevTagSize ${prevTagSize}`);\n }\n\n offset += 11 + dataSize + 4; // tagBody + dataSize + prevTagSize\n }\n\n // dispatch parsed frames to consumer (typically, the remuxer)\n if (this._isInitialMetadataDispatched()) {\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n }\n\n return offset; // consumed bytes, just equals latest offset index\n }\n\n _parseScriptData(arrayBuffer, dataOffset, dataSize) {\n let scriptData = AMF.parseScriptData(arrayBuffer, dataOffset, dataSize);\n\n if (scriptData.hasOwnProperty('onMetaData')) {\n if (scriptData.onMetaData == null || typeof scriptData.onMetaData !== 'object') {\n Log.w(this.TAG, 'Invalid onMetaData structure!');\n return;\n }\n if (this._metadata) {\n Log.w(this.TAG, 'Found another onMetaData tag!');\n }\n this._metadata = scriptData;\n let onMetaData = this._metadata.onMetaData;\n\n if (this._onMetaDataArrived) {\n this._onMetaDataArrived(Object.assign({}, onMetaData));\n }\n\n if (typeof onMetaData.hasAudio === 'boolean') { // hasAudio\n if (this._hasAudioFlagOverrided === false) {\n this._hasAudio = onMetaData.hasAudio;\n this._mediaInfo.hasAudio = this._hasAudio;\n }\n }\n if (typeof onMetaData.hasVideo === 'boolean') { // hasVideo\n if (this._hasVideoFlagOverrided === false) {\n this._hasVideo = onMetaData.hasVideo;\n this._mediaInfo.hasVideo = this._hasVideo;\n }\n }\n if (typeof onMetaData.audiodatarate === 'number') { // audiodatarate\n this._mediaInfo.audioDataRate = onMetaData.audiodatarate;\n }\n if (typeof onMetaData.videodatarate === 'number') { // videodatarate\n this._mediaInfo.videoDataRate = onMetaData.videodatarate;\n }\n if (typeof onMetaData.width === 'number') { // width\n this._mediaInfo.width = onMetaData.width;\n }\n if (typeof onMetaData.height === 'number') { // height\n this._mediaInfo.height = onMetaData.height;\n }\n if (typeof onMetaData.duration === 'number') { // duration\n if (!this._durationOverrided) {\n let duration = Math.floor(onMetaData.duration * this._timescale);\n this._duration = duration;\n this._mediaInfo.duration = duration;\n }\n } else {\n this._mediaInfo.duration = 0;\n }\n if (typeof onMetaData.framerate === 'number') { // framerate\n let fps_num = Math.floor(onMetaData.framerate * 1000);\n if (fps_num > 0) {\n let fps = fps_num / 1000;\n this._referenceFrameRate.fixed = true;\n this._referenceFrameRate.fps = fps;\n this._referenceFrameRate.fps_num = fps_num;\n this._referenceFrameRate.fps_den = 1000;\n this._mediaInfo.fps = fps;\n }\n }\n if (typeof onMetaData.keyframes === 'object') { // keyframes\n this._mediaInfo.hasKeyframesIndex = true;\n let keyframes = onMetaData.keyframes;\n this._mediaInfo.keyframesIndex = this._parseKeyframesIndex(keyframes);\n onMetaData.keyframes = null; // keyframes has been extracted, remove it\n } else {\n this._mediaInfo.hasKeyframesIndex = false;\n }\n this._dispatch = false;\n this._mediaInfo.metadata = onMetaData;\n Log.v(this.TAG, 'Parsed onMetaData');\n if (this._mediaInfo.isComplete()) {\n this._onMediaInfo(this._mediaInfo);\n }\n }\n\n if (Object.keys(scriptData).length > 0) {\n if (this._onScriptDataArrived) {\n this._onScriptDataArrived(Object.assign({}, scriptData));\n }\n }\n }\n\n _parseKeyframesIndex(keyframes) {\n let times = [];\n let filepositions = [];\n\n // ignore first keyframe which is actually AVC Sequence Header (AVCDecoderConfigurationRecord)\n for (let i = 1; i < keyframes.times.length; i++) {\n let time = this._timestampBase + Math.floor(keyframes.times[i] * 1000);\n times.push(time);\n filepositions.push(keyframes.filepositions[i]);\n }\n\n return {\n times: times,\n filepositions: filepositions\n };\n }\n\n _parseAudioData(arrayBuffer, dataOffset, dataSize, tagTimestamp) {\n if (dataSize <= 1) {\n Log.w(this.TAG, 'Flv: Invalid audio packet, missing SoundData payload!');\n return;\n }\n\n if (this._hasAudioFlagOverrided === true && this._hasAudio === false) {\n // If hasAudio: false indicated explicitly in MediaDataSource,\n // Ignore all the audio packets\n return;\n }\n\n let le = this._littleEndian;\n let v = new DataView(arrayBuffer, dataOffset, dataSize);\n\n let soundSpec = v.getUint8(0);\n\n let soundFormat = soundSpec >>> 4;\n if (soundFormat !== 2 && soundFormat !== 10) { // MP3 or AAC\n this._onError(DemuxErrors.CODEC_UNSUPPORTED, 'Flv: Unsupported audio codec idx: ' + soundFormat);\n return;\n }\n\n let soundRate = 0;\n let soundRateIndex = (soundSpec & 12) >>> 2;\n if (soundRateIndex >= 0 && soundRateIndex <= 4) {\n soundRate = this._flvSoundRateTable[soundRateIndex];\n } else {\n this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: Invalid audio sample rate idx: ' + soundRateIndex);\n return;\n }\n\n let soundSize = (soundSpec & 2) >>> 1; // unused\n let soundType = (soundSpec & 1);\n\n\n let meta = this._audioMetadata;\n let track = this._audioTrack;\n\n if (!meta) {\n if (this._hasAudio === false && this._hasAudioFlagOverrided === false) {\n this._hasAudio = true;\n this._mediaInfo.hasAudio = true;\n }\n\n // initial metadata\n meta = this._audioMetadata = {};\n meta.type = 'audio';\n meta.id = track.id;\n meta.timescale = this._timescale;\n meta.duration = this._duration;\n meta.audioSampleRate = soundRate;\n meta.channelCount = (soundType === 0 ? 1 : 2);\n }\n\n if (soundFormat === 10) { // AAC\n let aacData = this._parseAACAudioData(arrayBuffer, dataOffset + 1, dataSize - 1);\n if (aacData == undefined) {\n return;\n }\n\n if (aacData.packetType === 0) { // AAC sequence header (AudioSpecificConfig)\n if (meta.config) {\n Log.w(this.TAG, 'Found another AudioSpecificConfig!');\n }\n let misc = aacData.data;\n meta.audioSampleRate = misc.samplingRate;\n meta.channelCount = misc.channelCount;\n meta.codec = misc.codec;\n meta.originalCodec = misc.originalCodec;\n meta.config = misc.config;\n // The decode result of an aac sample is 1024 PCM samples\n meta.refSampleDuration = 1024 / meta.audioSampleRate * meta.timescale;\n Log.v(this.TAG, 'Parsed AudioSpecificConfig');\n\n if (this._isInitialMetadataDispatched()) {\n // Non-initial metadata, force dispatch (or flush) parsed frames to remuxer\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {\n this._audioInitialMetadataDispatched = true;\n }\n // then notify new metadata\n this._dispatch = false;\n this._onTrackMetadata('audio', meta);\n\n let mi = this._mediaInfo;\n mi.audioCodec = meta.originalCodec;\n mi.audioSampleRate = meta.audioSampleRate;\n mi.audioChannelCount = meta.channelCount;\n if (mi.hasVideo) {\n if (mi.videoCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n } else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.audioCodec + '\"';\n }\n if (mi.isComplete()) {\n this._onMediaInfo(mi);\n }\n } else if (aacData.packetType === 1) { // AAC raw frame data\n let dts = this._timestampBase + tagTimestamp;\n let aacSample = {unit: aacData.data, length: aacData.data.byteLength, dts: dts, pts: dts};\n track.samples.push(aacSample);\n track.length += aacData.data.length;\n } else {\n Log.e(this.TAG, `Flv: Unsupported AAC data type ${aacData.packetType}`);\n }\n } else if (soundFormat === 2) { // MP3\n if (!meta.codec) {\n // We need metadata for mp3 audio track, extract info from frame header\n let misc = this._parseMP3AudioData(arrayBuffer, dataOffset + 1, dataSize - 1, true);\n if (misc == undefined) {\n return;\n }\n meta.audioSampleRate = misc.samplingRate;\n meta.channelCount = misc.channelCount;\n meta.codec = misc.codec;\n meta.originalCodec = misc.originalCodec;\n // The decode result of an mp3 sample is 1152 PCM samples\n meta.refSampleDuration = 1152 / meta.audioSampleRate * meta.timescale;\n Log.v(this.TAG, 'Parsed MPEG Audio Frame Header');\n\n this._audioInitialMetadataDispatched = true;\n this._onTrackMetadata('audio', meta);\n\n let mi = this._mediaInfo;\n mi.audioCodec = meta.codec;\n mi.audioSampleRate = meta.audioSampleRate;\n mi.audioChannelCount = meta.channelCount;\n mi.audioDataRate = misc.bitRate;\n if (mi.hasVideo) {\n if (mi.videoCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n } else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.audioCodec + '\"';\n }\n if (mi.isComplete()) {\n this._onMediaInfo(mi);\n }\n }\n\n // This packet is always a valid audio packet, extract it\n let data = this._parseMP3AudioData(arrayBuffer, dataOffset + 1, dataSize - 1, false);\n if (data == undefined) {\n return;\n }\n let dts = this._timestampBase + tagTimestamp;\n let mp3Sample = {unit: data, length: data.byteLength, dts: dts, pts: dts};\n track.samples.push(mp3Sample);\n track.length += data.length;\n }\n }\n\n _parseAACAudioData(arrayBuffer, dataOffset, dataSize) {\n if (dataSize <= 1) {\n Log.w(this.TAG, 'Flv: Invalid AAC packet, missing AACPacketType or/and Data!');\n return;\n }\n\n let result = {};\n let array = new Uint8Array(arrayBuffer, dataOffset, dataSize);\n\n result.packetType = array[0];\n\n if (array[0] === 0) {\n result.data = this._parseAACAudioSpecificConfig(arrayBuffer, dataOffset + 1, dataSize - 1);\n } else {\n result.data = array.subarray(1);\n }\n\n return result;\n }\n\n _parseAACAudioSpecificConfig(arrayBuffer, dataOffset, dataSize) {\n let array = new Uint8Array(arrayBuffer, dataOffset, dataSize);\n let config = null;\n\n /* Audio Object Type:\n 0: Null\n 1: AAC Main\n 2: AAC LC\n 3: AAC SSR (Scalable Sample Rate)\n 4: AAC LTP (Long Term Prediction)\n 5: HE-AAC / SBR (Spectral Band Replication)\n 6: AAC Scalable\n */\n\n let audioObjectType = 0;\n let originalAudioObjectType = 0;\n let audioExtensionObjectType = null;\n let samplingIndex = 0;\n let extensionSamplingIndex = null;\n\n // 5 bits\n audioObjectType = originalAudioObjectType = array[0] >>> 3;\n // 4 bits\n samplingIndex = ((array[0] & 0x07) << 1) | (array[1] >>> 7);\n if (samplingIndex < 0 || samplingIndex >= this._mpegSamplingRates.length) {\n this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: AAC invalid sampling frequency index!');\n return;\n }\n\n let samplingFrequence = this._mpegSamplingRates[samplingIndex];\n\n // 4 bits\n let channelConfig = (array[1] & 0x78) >>> 3;\n if (channelConfig < 0 || channelConfig >= 8) {\n this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: AAC invalid channel configuration');\n return;\n }\n\n if (audioObjectType === 5) { // HE-AAC?\n // 4 bits\n extensionSamplingIndex = ((array[1] & 0x07) << 1) | (array[2] >>> 7);\n // 5 bits\n audioExtensionObjectType = (array[2] & 0x7C) >>> 2;\n }\n\n // workarounds for various browsers\n let userAgent = self.navigator.userAgent.toLowerCase();\n\n if (userAgent.indexOf('firefox') !== -1) {\n // firefox: use SBR (HE-AAC) if freq less than 24kHz\n if (samplingIndex >= 6) {\n audioObjectType = 5;\n config = new Array(4);\n extensionSamplingIndex = samplingIndex - 3;\n } else { // use LC-AAC\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n }\n } else if (userAgent.indexOf('android') !== -1) {\n // android: always use LC-AAC\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n } else {\n // for other browsers, e.g. chrome...\n // Always use HE-AAC to make it easier to switch aac codec profile\n audioObjectType = 5;\n extensionSamplingIndex = samplingIndex;\n config = new Array(4);\n\n if (samplingIndex >= 6) {\n extensionSamplingIndex = samplingIndex - 3;\n } else if (channelConfig === 1) { // Mono channel\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n }\n }\n\n config[0] = audioObjectType << 3;\n config[0] |= (samplingIndex & 0x0F) >>> 1;\n config[1] = (samplingIndex & 0x0F) << 7;\n config[1] |= (channelConfig & 0x0F) << 3;\n if (audioObjectType === 5) {\n config[1] |= ((extensionSamplingIndex & 0x0F) >>> 1);\n config[2] = (extensionSamplingIndex & 0x01) << 7;\n // extended audio object type: force to 2 (LC-AAC)\n config[2] |= (2 << 2);\n config[3] = 0;\n }\n\n return {\n config: config,\n samplingRate: samplingFrequence,\n channelCount: channelConfig,\n codec: 'mp4a.40.' + audioObjectType,\n originalCodec: 'mp4a.40.' + originalAudioObjectType\n };\n }\n\n _parseMP3AudioData(arrayBuffer, dataOffset, dataSize, requestHeader) {\n if (dataSize < 4) {\n Log.w(this.TAG, 'Flv: Invalid MP3 packet, header missing!');\n return;\n }\n\n let le = this._littleEndian;\n let array = new Uint8Array(arrayBuffer, dataOffset, dataSize);\n let result = null;\n\n if (requestHeader) {\n if (array[0] !== 0xFF) {\n return;\n }\n let ver = (array[1] >>> 3) & 0x03;\n let layer = (array[1] & 0x06) >> 1;\n\n let bitrate_index = (array[2] & 0xF0) >>> 4;\n let sampling_freq_index = (array[2] & 0x0C) >>> 2;\n\n let channel_mode = (array[3] >>> 6) & 0x03;\n let channel_count = channel_mode !== 3 ? 2 : 1;\n\n let sample_rate = 0;\n let bit_rate = 0;\n let object_type = 34; // Layer-3, listed in MPEG-4 Audio Object Types\n\n let codec = 'mp3';\n\n switch (ver) {\n case 0: // MPEG 2.5\n sample_rate = this._mpegAudioV25SampleRateTable[sampling_freq_index];\n break;\n case 2: // MPEG 2\n sample_rate = this._mpegAudioV20SampleRateTable[sampling_freq_index];\n break;\n case 3: // MPEG 1\n sample_rate = this._mpegAudioV10SampleRateTable[sampling_freq_index];\n break;\n }\n\n switch (layer) {\n case 1: // Layer 3\n object_type = 34;\n if (bitrate_index < this._mpegAudioL3BitRateTable.length) {\n bit_rate = this._mpegAudioL3BitRateTable[bitrate_index];\n }\n break;\n case 2: // Layer 2\n object_type = 33;\n if (bitrate_index < this._mpegAudioL2BitRateTable.length) {\n bit_rate = this._mpegAudioL2BitRateTable[bitrate_index];\n }\n break;\n case 3: // Layer 1\n object_type = 32;\n if (bitrate_index < this._mpegAudioL1BitRateTable.length) {\n bit_rate = this._mpegAudioL1BitRateTable[bitrate_index];\n }\n break;\n }\n\n result = {\n bitRate: bit_rate,\n samplingRate: sample_rate,\n channelCount: channel_count,\n codec: codec,\n originalCodec: codec\n };\n } else {\n result = array;\n }\n\n return result;\n }\n\n _parseVideoData(arrayBuffer, dataOffset, dataSize, tagTimestamp, tagPosition) {\n if (dataSize <= 1) {\n Log.w(this.TAG, 'Flv: Invalid video packet, missing VideoData payload!');\n return;\n }\n\n if (this._hasVideoFlagOverrided === true && this._hasVideo === false) {\n // If hasVideo: false indicated explicitly in MediaDataSource,\n // Ignore all the video packets\n return;\n }\n\n let spec = (new Uint8Array(arrayBuffer, dataOffset, dataSize))[0];\n\n let frameType = (spec & 240) >>> 4;\n let codecId = spec & 15;\n\n if (codecId !== 7) {\n this._onError(DemuxErrors.CODEC_UNSUPPORTED, `Flv: Unsupported codec in video frame: ${codecId}`);\n return;\n }\n\n this._parseAVCVideoPacket(arrayBuffer, dataOffset + 1, dataSize - 1, tagTimestamp, tagPosition, frameType);\n }\n\n _parseAVCVideoPacket(arrayBuffer, dataOffset, dataSize, tagTimestamp, tagPosition, frameType) {\n if (dataSize < 4) {\n Log.w(this.TAG, 'Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime');\n return;\n }\n\n let le = this._littleEndian;\n let v = new DataView(arrayBuffer, dataOffset, dataSize);\n\n let packetType = v.getUint8(0);\n let cts_unsigned = v.getUint32(0, !le) & 0x00FFFFFF;\n let cts = (cts_unsigned << 8) >> 8; // convert to 24-bit signed int\n\n if (packetType === 0) { // AVCDecoderConfigurationRecord\n this._parseAVCDecoderConfigurationRecord(arrayBuffer, dataOffset + 4, dataSize - 4);\n } else if (packetType === 1) { // One or more Nalus\n this._parseAVCVideoData(arrayBuffer, dataOffset + 4, dataSize - 4, tagTimestamp, tagPosition, frameType, cts);\n } else if (packetType === 2) {\n // empty, AVC end of sequence\n } else {\n this._onError(DemuxErrors.FORMAT_ERROR, `Flv: Invalid video packet type ${packetType}`);\n return;\n }\n }\n\n _parseAVCDecoderConfigurationRecord(arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 7) {\n Log.w(this.TAG, 'Flv: Invalid AVCDecoderConfigurationRecord, lack of data!');\n return;\n }\n\n let meta = this._videoMetadata;\n let track = this._videoTrack;\n let le = this._littleEndian;\n let v = new DataView(arrayBuffer, dataOffset, dataSize);\n\n if (!meta) {\n if (this._hasVideo === false && this._hasVideoFlagOverrided === false) {\n this._hasVideo = true;\n this._mediaInfo.hasVideo = true;\n }\n\n meta = this._videoMetadata = {};\n meta.type = 'video';\n meta.id = track.id;\n meta.timescale = this._timescale;\n meta.duration = this._duration;\n } else {\n if (typeof meta.avcc !== 'undefined') {\n Log.w(this.TAG, 'Found another AVCDecoderConfigurationRecord!');\n }\n }\n\n let version = v.getUint8(0); // configurationVersion\n let avcProfile = v.getUint8(1); // avcProfileIndication\n let profileCompatibility = v.getUint8(2); // profile_compatibility\n let avcLevel = v.getUint8(3); // AVCLevelIndication\n\n if (version !== 1 || avcProfile === 0) {\n this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord');\n return;\n }\n\n this._naluLengthSize = (v.getUint8(4) & 3) + 1; // lengthSizeMinusOne\n if (this._naluLengthSize !== 3 && this._naluLengthSize !== 4) { // holy shit!!!\n this._onError(DemuxErrors.FORMAT_ERROR, `Flv: Strange NaluLengthSizeMinusOne: ${this._naluLengthSize - 1}`);\n return;\n }\n\n let spsCount = v.getUint8(5) & 31; // numOfSequenceParameterSets\n if (spsCount === 0) {\n this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No SPS');\n return;\n } else if (spsCount > 1) {\n Log.w(this.TAG, `Flv: Strange AVCDecoderConfigurationRecord: SPS Count = ${spsCount}`);\n }\n\n let offset = 6;\n\n for (let i = 0; i < spsCount; i++) {\n let len = v.getUint16(offset, !le); // sequenceParameterSetLength\n offset += 2;\n\n if (len === 0) {\n continue;\n }\n\n // Notice: Nalu without startcode header (00 00 00 01)\n let sps = new Uint8Array(arrayBuffer, dataOffset + offset, len);\n offset += len;\n\n let config = SPSParser.parseSPS(sps);\n if (i !== 0) {\n // ignore other sps's config\n continue;\n }\n\n meta.codecWidth = config.codec_size.width;\n meta.codecHeight = config.codec_size.height;\n meta.presentWidth = config.present_size.width;\n meta.presentHeight = config.present_size.height;\n\n meta.profile = config.profile_string;\n meta.level = config.level_string;\n meta.bitDepth = config.bit_depth;\n meta.chromaFormat = config.chroma_format;\n meta.sarRatio = config.sar_ratio;\n meta.frameRate = config.frame_rate;\n\n if (config.frame_rate.fixed === false ||\n config.frame_rate.fps_num === 0 ||\n config.frame_rate.fps_den === 0) {\n meta.frameRate = this._referenceFrameRate;\n }\n\n let fps_den = meta.frameRate.fps_den;\n let fps_num = meta.frameRate.fps_num;\n meta.refSampleDuration = meta.timescale * (fps_den / fps_num);\n\n let codecArray = sps.subarray(1, 4);\n let codecString = 'avc1.';\n for (let j = 0; j < 3; j++) {\n let h = codecArray[j].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n codecString += h;\n }\n meta.codec = codecString;\n\n let mi = this._mediaInfo;\n mi.width = meta.codecWidth;\n mi.height = meta.codecHeight;\n mi.fps = meta.frameRate.fps;\n mi.profile = meta.profile;\n mi.level = meta.level;\n mi.refFrames = config.ref_frames;\n mi.chromaFormat = config.chroma_format_string;\n mi.sarNum = meta.sarRatio.width;\n mi.sarDen = meta.sarRatio.height;\n mi.videoCodec = codecString;\n\n if (mi.hasAudio) {\n if (mi.audioCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n } else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + '\"';\n }\n if (mi.isComplete()) {\n this._onMediaInfo(mi);\n }\n }\n\n let ppsCount = v.getUint8(offset); // numOfPictureParameterSets\n if (ppsCount === 0) {\n this._onError(DemuxErrors.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No PPS');\n return;\n } else if (ppsCount > 1) {\n Log.w(this.TAG, `Flv: Strange AVCDecoderConfigurationRecord: PPS Count = ${ppsCount}`);\n }\n\n offset++;\n\n for (let i = 0; i < ppsCount; i++) {\n let len = v.getUint16(offset, !le); // pictureParameterSetLength\n offset += 2;\n\n if (len === 0) {\n continue;\n }\n\n // pps is useless for extracting video information\n offset += len;\n }\n\n meta.avcc = new Uint8Array(dataSize);\n meta.avcc.set(new Uint8Array(arrayBuffer, dataOffset, dataSize), 0);\n Log.v(this.TAG, 'Parsed AVCDecoderConfigurationRecord');\n\n if (this._isInitialMetadataDispatched()) {\n // flush parsed frames\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n } else {\n this._videoInitialMetadataDispatched = true;\n }\n // notify new metadata\n this._dispatch = false;\n this._onTrackMetadata('video', meta);\n }\n\n _parseAVCVideoData(arrayBuffer, dataOffset, dataSize, tagTimestamp, tagPosition, frameType, cts) {\n let le = this._littleEndian;\n let v = new DataView(arrayBuffer, dataOffset, dataSize);\n\n let units = [], length = 0;\n\n let offset = 0;\n const lengthSize = this._naluLengthSize;\n let dts = this._timestampBase + tagTimestamp;\n let keyframe = (frameType === 1); // from FLV Frame Type constants\n\n while (offset < dataSize) {\n if (offset + 4 >= dataSize) {\n Log.w(this.TAG, `Malformed Nalu near timestamp ${dts}, offset = ${offset}, dataSize = ${dataSize}`);\n break; // data not enough for next Nalu\n }\n // Nalu with length-header (AVC1)\n let naluSize = v.getUint32(offset, !le); // Big-Endian read\n if (lengthSize === 3) {\n naluSize >>>= 8;\n }\n if (naluSize > dataSize - lengthSize) {\n Log.w(this.TAG, `Malformed Nalus near timestamp ${dts}, NaluSize > DataSize!`);\n return;\n }\n\n let unitType = v.getUint8(offset + lengthSize) & 0x1F;\n\n if (unitType === 5) { // IDR\n keyframe = true;\n }\n\n let data = new Uint8Array(arrayBuffer, dataOffset + offset, lengthSize + naluSize);\n let unit = {type: unitType, data: data};\n units.push(unit);\n length += data.byteLength;\n\n offset += lengthSize + naluSize;\n }\n\n if (units.length) {\n let track = this._videoTrack;\n let avcSample = {\n units: units,\n length: length,\n isKeyframe: keyframe,\n dts: dts,\n cts: cts,\n pts: (dts + cts)\n };\n if (keyframe) {\n avcSample.fileposition = tagPosition;\n }\n track.samples.push(avcSample);\n track.length += length;\n }\n }\n\n}\n\nexport default FLVDemuxer;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ExpGolomb from './exp-golomb.js';\n\nclass SPSParser {\n\n static _ebsp2rbsp(uint8array) {\n let src = uint8array;\n let src_length = src.byteLength;\n let dst = new Uint8Array(src_length);\n let dst_idx = 0;\n\n for (let i = 0; i < src_length; i++) {\n if (i >= 2) {\n // Unescape: Skip 0x03 after 00 00\n if (src[i] === 0x03 && src[i - 1] === 0x00 && src[i - 2] === 0x00) {\n continue;\n }\n }\n dst[dst_idx] = src[i];\n dst_idx++;\n }\n\n return new Uint8Array(dst.buffer, 0, dst_idx);\n }\n\n static parseSPS(uint8array) {\n let rbsp = SPSParser._ebsp2rbsp(uint8array);\n let gb = new ExpGolomb(rbsp);\n\n gb.readByte();\n let profile_idc = gb.readByte(); // profile_idc\n gb.readByte(); // constraint_set_flags[5] + reserved_zero[3]\n let level_idc = gb.readByte(); // level_idc\n gb.readUEG(); // seq_parameter_set_id\n\n let profile_string = SPSParser.getProfileString(profile_idc);\n let level_string = SPSParser.getLevelString(level_idc);\n let chroma_format_idc = 1;\n let chroma_format = 420;\n let chroma_format_table = [0, 420, 422, 444];\n let bit_depth = 8;\n\n if (profile_idc === 100 || profile_idc === 110 || profile_idc === 122 ||\n profile_idc === 244 || profile_idc === 44 || profile_idc === 83 ||\n profile_idc === 86 || profile_idc === 118 || profile_idc === 128 ||\n profile_idc === 138 || profile_idc === 144) {\n\n chroma_format_idc = gb.readUEG();\n if (chroma_format_idc === 3) {\n gb.readBits(1); // separate_colour_plane_flag\n }\n if (chroma_format_idc <= 3) {\n chroma_format = chroma_format_table[chroma_format_idc];\n }\n\n bit_depth = gb.readUEG() + 8; // bit_depth_luma_minus8\n gb.readUEG(); // bit_depth_chroma_minus8\n gb.readBits(1); // qpprime_y_zero_transform_bypass_flag\n if (gb.readBool()) { // seq_scaling_matrix_present_flag\n let scaling_list_count = (chroma_format_idc !== 3) ? 8 : 12;\n for (let i = 0; i < scaling_list_count; i++) {\n if (gb.readBool()) { // seq_scaling_list_present_flag\n if (i < 6) {\n SPSParser._skipScalingList(gb, 16);\n } else {\n SPSParser._skipScalingList(gb, 64);\n }\n }\n }\n }\n }\n gb.readUEG(); // log2_max_frame_num_minus4\n let pic_order_cnt_type = gb.readUEG();\n if (pic_order_cnt_type === 0) {\n gb.readUEG(); // log2_max_pic_order_cnt_lsb_minus_4\n } else if (pic_order_cnt_type === 1) {\n gb.readBits(1); // delta_pic_order_always_zero_flag\n gb.readSEG(); // offset_for_non_ref_pic\n gb.readSEG(); // offset_for_top_to_bottom_field\n let num_ref_frames_in_pic_order_cnt_cycle = gb.readUEG();\n for (let i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++) {\n gb.readSEG(); // offset_for_ref_frame\n }\n }\n let ref_frames = gb.readUEG(); // max_num_ref_frames\n gb.readBits(1); // gaps_in_frame_num_value_allowed_flag\n\n let pic_width_in_mbs_minus1 = gb.readUEG();\n let pic_height_in_map_units_minus1 = gb.readUEG();\n\n let frame_mbs_only_flag = gb.readBits(1);\n if (frame_mbs_only_flag === 0) {\n gb.readBits(1); // mb_adaptive_frame_field_flag\n }\n gb.readBits(1); // direct_8x8_inference_flag\n\n let frame_crop_left_offset = 0;\n let frame_crop_right_offset = 0;\n let frame_crop_top_offset = 0;\n let frame_crop_bottom_offset = 0;\n\n let frame_cropping_flag = gb.readBool();\n if (frame_cropping_flag) {\n frame_crop_left_offset = gb.readUEG();\n frame_crop_right_offset = gb.readUEG();\n frame_crop_top_offset = gb.readUEG();\n frame_crop_bottom_offset = gb.readUEG();\n }\n\n let sar_width = 1, sar_height = 1;\n let fps = 0, fps_fixed = true, fps_num = 0, fps_den = 0;\n\n let vui_parameters_present_flag = gb.readBool();\n if (vui_parameters_present_flag) {\n if (gb.readBool()) { // aspect_ratio_info_present_flag\n let aspect_ratio_idc = gb.readByte();\n let sar_w_table = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2];\n let sar_h_table = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1];\n\n if (aspect_ratio_idc > 0 && aspect_ratio_idc < 16) {\n sar_width = sar_w_table[aspect_ratio_idc - 1];\n sar_height = sar_h_table[aspect_ratio_idc - 1];\n } else if (aspect_ratio_idc === 255) {\n sar_width = gb.readByte() << 8 | gb.readByte();\n sar_height = gb.readByte() << 8 | gb.readByte();\n }\n }\n\n if (gb.readBool()) { // overscan_info_present_flag\n gb.readBool(); // overscan_appropriate_flag\n }\n if (gb.readBool()) { // video_signal_type_present_flag\n gb.readBits(4); // video_format & video_full_range_flag\n if (gb.readBool()) { // colour_description_present_flag\n gb.readBits(24); // colour_primaries & transfer_characteristics & matrix_coefficients\n }\n }\n if (gb.readBool()) { // chroma_loc_info_present_flag\n gb.readUEG(); // chroma_sample_loc_type_top_field\n gb.readUEG(); // chroma_sample_loc_type_bottom_field\n }\n if (gb.readBool()) { // timing_info_present_flag\n let num_units_in_tick = gb.readBits(32);\n let time_scale = gb.readBits(32);\n fps_fixed = gb.readBool(); // fixed_frame_rate_flag\n\n fps_num = time_scale;\n fps_den = num_units_in_tick * 2;\n fps = fps_num / fps_den;\n }\n }\n\n let sarScale = 1;\n if (sar_width !== 1 || sar_height !== 1) {\n sarScale = sar_width / sar_height;\n }\n\n let crop_unit_x = 0, crop_unit_y = 0;\n if (chroma_format_idc === 0) {\n crop_unit_x = 1;\n crop_unit_y = 2 - frame_mbs_only_flag;\n } else {\n let sub_wc = (chroma_format_idc === 3) ? 1 : 2;\n let sub_hc = (chroma_format_idc === 1) ? 2 : 1;\n crop_unit_x = sub_wc;\n crop_unit_y = sub_hc * (2 - frame_mbs_only_flag);\n }\n\n let codec_width = (pic_width_in_mbs_minus1 + 1) * 16;\n let codec_height = (2 - frame_mbs_only_flag) * ((pic_height_in_map_units_minus1 + 1) * 16);\n\n codec_width -= (frame_crop_left_offset + frame_crop_right_offset) * crop_unit_x;\n codec_height -= (frame_crop_top_offset + frame_crop_bottom_offset) * crop_unit_y;\n\n let present_width = Math.ceil(codec_width * sarScale);\n\n gb.destroy();\n gb = null;\n\n return {\n profile_string: profile_string, // baseline, high, high10, ...\n level_string: level_string, // 3, 3.1, 4, 4.1, 5, 5.1, ...\n bit_depth: bit_depth, // 8bit, 10bit, ...\n ref_frames: ref_frames,\n chroma_format: chroma_format, // 4:2:0, 4:2:2, ...\n chroma_format_string: SPSParser.getChromaFormatString(chroma_format),\n\n frame_rate: {\n fixed: fps_fixed,\n fps: fps,\n fps_den: fps_den,\n fps_num: fps_num\n },\n\n sar_ratio: {\n width: sar_width,\n height: sar_height\n },\n\n codec_size: {\n width: codec_width,\n height: codec_height\n },\n\n present_size: {\n width: present_width,\n height: codec_height\n }\n };\n }\n\n static _skipScalingList(gb, count) {\n let last_scale = 8, next_scale = 8;\n let delta_scale = 0;\n for (let i = 0; i < count; i++) {\n if (next_scale !== 0) {\n delta_scale = gb.readSEG();\n next_scale = (last_scale + delta_scale + 256) % 256;\n }\n last_scale = (next_scale === 0) ? last_scale : next_scale;\n }\n }\n\n static getProfileString(profile_idc) {\n switch (profile_idc) {\n case 66:\n return 'Baseline';\n case 77:\n return 'Main';\n case 88:\n return 'Extended';\n case 100:\n return 'High';\n case 110:\n return 'High10';\n case 122:\n return 'High422';\n case 244:\n return 'High444';\n default:\n return 'Unknown';\n }\n }\n\n static getLevelString(level_idc) {\n return (level_idc / 10).toFixed(1);\n }\n\n static getChromaFormatString(chroma) {\n switch (chroma) {\n case 420:\n return '4:2:0';\n case 422:\n return '4:2:2';\n case 444:\n return '4:4:4';\n default:\n return 'Unknown';\n }\n }\n\n}\n\nexport default SPSParser;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Polyfill from './utils/polyfill.js';\nimport Features from './core/features.js';\nimport {BaseLoader, LoaderStatus, LoaderErrors} from './io/loader.js';\nimport FlvPlayer from './player/flv-player.js';\nimport NativePlayer from './player/native-player.js';\nimport PlayerEvents from './player/player-events.js';\nimport {ErrorTypes, ErrorDetails} from './player/player-errors.js';\nimport LoggingControl from './utils/logging-control.js';\nimport {InvalidArgumentException} from './utils/exception.js';\n\n// here are all the interfaces\n\n// install polyfills\nPolyfill.install();\n\n\n// factory method\nfunction createPlayer(mediaDataSource, optionalConfig) {\n let mds = mediaDataSource;\n if (mds == null || typeof mds !== 'object') {\n throw new InvalidArgumentException('MediaDataSource must be an javascript object!');\n }\n\n if (!mds.hasOwnProperty('type')) {\n throw new InvalidArgumentException('MediaDataSource must has type field to indicate video file type!');\n }\n\n switch (mds.type) {\n case 'flv':\n return new FlvPlayer(mds, optionalConfig);\n default:\n return new NativePlayer(mds, optionalConfig);\n }\n}\n\n\n// feature detection\nfunction isSupported() {\n return Features.supportMSEH264Playback();\n}\n\nfunction getFeatureList() {\n return Features.getFeatureList();\n}\n\n\n// interfaces\nlet flvjs = {};\n\nflvjs.createPlayer = createPlayer;\nflvjs.isSupported = isSupported;\nflvjs.getFeatureList = getFeatureList;\n\nflvjs.BaseLoader = BaseLoader;\nflvjs.LoaderStatus = LoaderStatus;\nflvjs.LoaderErrors = LoaderErrors;\n\nflvjs.Events = PlayerEvents;\nflvjs.ErrorTypes = ErrorTypes;\nflvjs.ErrorDetails = ErrorDetails;\n\nflvjs.FlvPlayer = FlvPlayer;\nflvjs.NativePlayer = NativePlayer;\nflvjs.LoggingControl = LoggingControl;\n\nObject.defineProperty(flvjs, 'version', {\n enumerable: true,\n get: function () {\n // replace by webpack.DefinePlugin\n return __VERSION__;\n }\n});\n\nexport default flvjs;","// entry/index file\n\n// make it compatible with browserify's umd wrapper\nmodule.exports = require('./flv.js').default;\n","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Log from '../utils/logger.js';\nimport Browser from '../utils/browser.js';\nimport {BaseLoader, LoaderStatus, LoaderErrors} from './loader.js';\nimport {RuntimeException} from '../utils/exception.js';\n\n/* fetch + stream IO loader. Currently working on chrome 43+.\n * fetch provides a better alternative http API to XMLHttpRequest\n *\n * fetch spec https://fetch.spec.whatwg.org/\n * stream spec https://streams.spec.whatwg.org/\n */\nclass FetchStreamLoader extends BaseLoader {\n\n static isSupported() {\n try {\n // fetch + stream is broken on Microsoft Edge. Disable before build 15048.\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8196907/\n // Fixed in Jan 10, 2017. Build 15048+ removed from blacklist.\n let isWorkWellEdge = Browser.msedge && Browser.version.minor >= 15048;\n let browserNotBlacklisted = Browser.msedge ? isWorkWellEdge : true;\n return (self.fetch && self.ReadableStream && browserNotBlacklisted);\n } catch (e) {\n return false;\n }\n }\n\n constructor(seekHandler, config) {\n super('fetch-stream-loader');\n this.TAG = 'FetchStreamLoader';\n\n this._seekHandler = seekHandler;\n this._config = config;\n this._needStash = true;\n\n this._requestAbort = false;\n this._contentLength = null;\n this._receivedLength = 0;\n }\n\n destroy() {\n if (this.isWorking()) {\n this.abort();\n }\n super.destroy();\n }\n\n open(dataSource, range) {\n this._dataSource = dataSource;\n this._range = range;\n\n let sourceURL = dataSource.url;\n if (this._config.reuseRedirectedURL && dataSource.redirectedURL != undefined) {\n sourceURL = dataSource.redirectedURL;\n }\n\n let seekConfig = this._seekHandler.getConfig(sourceURL, range);\n\n let headers = new self.Headers();\n\n if (typeof seekConfig.headers === 'object') {\n let configHeaders = seekConfig.headers;\n for (let key in configHeaders) {\n if (configHeaders.hasOwnProperty(key)) {\n headers.append(key, configHeaders[key]);\n }\n }\n }\n\n let params = {\n method: 'GET',\n headers: headers,\n mode: 'cors',\n cache: 'default',\n // The default policy of Fetch API in the whatwg standard\n // Safari incorrectly indicates 'no-referrer' as default policy, fuck it\n referrerPolicy: 'no-referrer-when-downgrade'\n };\n\n // add additional headers\n if (typeof this._config.headers === 'object') {\n for (let key in this._config.headers) {\n headers.append(key, this._config.headers[key]);\n }\n }\n\n // cors is enabled by default\n if (dataSource.cors === false) {\n // no-cors means 'disregard cors policy', which can only be used in ServiceWorker\n params.mode = 'same-origin';\n }\n\n // withCredentials is disabled by default\n if (dataSource.withCredentials) {\n params.credentials = 'include';\n }\n\n // referrerPolicy from config\n if (dataSource.referrerPolicy) {\n params.referrerPolicy = dataSource.referrerPolicy;\n }\n\n // add abort controller, by wmlgl 2019-5-10 12:21:27\n if (self.AbortController) {\n this._abortController = new self.AbortController();\n params.signal = this._abortController.signal; \n }\n\n this._status = LoaderStatus.kConnecting;\n self.fetch(seekConfig.url, params).then((res) => {\n if (this._requestAbort) {\n this._status = LoaderStatus.kIdle;\n res.body.cancel();\n return;\n }\n if (res.ok && (res.status >= 200 && res.status <= 299)) {\n if (res.url !== seekConfig.url) {\n if (this._onURLRedirect) {\n let redirectedURL = this._seekHandler.removeURLParameters(res.url);\n this._onURLRedirect(redirectedURL);\n }\n }\n\n let lengthHeader = res.headers.get('Content-Length');\n if (lengthHeader != null) {\n this._contentLength = parseInt(lengthHeader);\n if (this._contentLength !== 0) {\n if (this._onContentLengthKnown) {\n this._onContentLengthKnown(this._contentLength);\n }\n }\n }\n\n return this._pump.call(this, res.body.getReader());\n } else {\n this._status = LoaderStatus.kError;\n if (this._onError) {\n this._onError(LoaderErrors.HTTP_STATUS_CODE_INVALID, {code: res.status, msg: res.statusText});\n } else {\n throw new RuntimeException('FetchStreamLoader: Http code invalid, ' + res.status + ' ' + res.statusText);\n }\n }\n }).catch((e) => {\n if (this._abortController && this._abortController.signal.aborted) {\n return;\n }\n\n this._status = LoaderStatus.kError;\n if (this._onError) {\n this._onError(LoaderErrors.EXCEPTION, {code: -1, msg: e.message});\n } else {\n throw e;\n }\n });\n }\n\n abort() {\n this._requestAbort = true;\n\n if (this._status !== LoaderStatus.kBuffering || !Browser.chrome) {\n // Chrome may throw Exception-like things here, avoid using if is buffering\n if (this._abortController) {\n try {\n this._abortController.abort();\n } catch (e) {}\n }\n }\n }\n\n _pump(reader) { // ReadableStreamReader\n return reader.read().then((result) => {\n if (result.done) {\n // First check received length\n if (this._contentLength !== null && this._receivedLength < this._contentLength) {\n // Report Early-EOF\n this._status = LoaderStatus.kError;\n let type = LoaderErrors.EARLY_EOF;\n let info = {code: -1, msg: 'Fetch stream meet Early-EOF'};\n if (this._onError) {\n this._onError(type, info);\n } else {\n throw new RuntimeException(info.msg);\n }\n } else {\n // OK. Download complete\n this._status = LoaderStatus.kComplete;\n if (this._onComplete) {\n this._onComplete(this._range.from, this._range.from + this._receivedLength - 1);\n }\n }\n } else {\n if (this._abortController && this._abortController.signal.aborted) {\n this._status = LoaderStatus.kComplete;\n return;\n } else if (this._requestAbort === true) {\n this._status = LoaderStatus.kComplete;\n return reader.cancel();\n }\n\n this._status = LoaderStatus.kBuffering;\n\n let chunk = result.value.buffer;\n let byteStart = this._range.from + this._receivedLength;\n this._receivedLength += chunk.byteLength;\n\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n }\n\n this._pump(reader);\n }\n }).catch((e) => {\n if (this._abortController && this._abortController.signal.aborted) {\n this._status = LoaderStatus.kComplete;\n return;\n }\n\n if (e.code === 11 && Browser.msedge) { // InvalidStateError on Microsoft Edge\n // Workaround: Edge may throw InvalidStateError after ReadableStreamReader.cancel() call\n // Ignore the unknown exception.\n // Related issue: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11265202/\n return;\n }\n\n this._status = LoaderStatus.kError;\n let type = 0;\n let info = null;\n\n if ((e.code === 19 || e.message === 'network error') && // NETWORK_ERR\n (this._contentLength === null ||\n (this._contentLength !== null && this._receivedLength < this._contentLength))) {\n type = LoaderErrors.EARLY_EOF;\n info = {code: e.code, msg: 'Fetch stream meet Early-EOF'};\n } else {\n type = LoaderErrors.EXCEPTION;\n info = {code: e.code, msg: e.message};\n }\n\n if (this._onError) {\n this._onError(type, info);\n } else {\n throw new RuntimeException(info.msg);\n }\n });\n }\n\n}\n\nexport default FetchStreamLoader;\n","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Log from '../utils/logger.js';\nimport SpeedSampler from './speed-sampler.js';\nimport {LoaderStatus, LoaderErrors} from './loader.js';\nimport FetchStreamLoader from './fetch-stream-loader.js';\nimport MozChunkedLoader from './xhr-moz-chunked-loader.js';\nimport MSStreamLoader from './xhr-msstream-loader.js';\nimport RangeLoader from './xhr-range-loader.js';\nimport WebSocketLoader from './websocket-loader.js';\nimport RangeSeekHandler from './range-seek-handler.js';\nimport ParamSeekHandler from './param-seek-handler.js';\nimport {RuntimeException, IllegalStateException, InvalidArgumentException} from '../utils/exception.js';\n\n/**\n * DataSource: {\n * url: string,\n * filesize: number,\n * cors: boolean,\n * withCredentials: boolean\n * }\n * \n */\n\n// Manage IO Loaders\nclass IOController {\n\n constructor(dataSource, config, extraData) {\n this.TAG = 'IOController';\n\n this._config = config;\n this._extraData = extraData;\n\n this._stashInitialSize = 1024 * 384; // default initial size: 384KB\n if (config.stashInitialSize != undefined && config.stashInitialSize > 0) {\n // apply from config\n this._stashInitialSize = config.stashInitialSize;\n }\n\n this._stashUsed = 0;\n this._stashSize = this._stashInitialSize;\n this._bufferSize = 1024 * 1024 * 3; // initial size: 3MB\n this._stashBuffer = new ArrayBuffer(this._bufferSize);\n this._stashByteStart = 0;\n this._enableStash = true;\n if (config.enableStashBuffer === false) {\n this._enableStash = false;\n }\n\n this._loader = null;\n this._loaderClass = null;\n this._seekHandler = null;\n\n this._dataSource = dataSource;\n this._isWebSocketURL = /wss?:\\/\\/(.+?)/.test(dataSource.url);\n this._refTotalLength = dataSource.filesize ? dataSource.filesize : null;\n this._totalLength = this._refTotalLength;\n this._fullRequestFlag = false;\n this._currentRange = null;\n this._redirectedURL = null;\n\n this._speedNormalized = 0;\n this._speedSampler = new SpeedSampler();\n this._speedNormalizeList = [64, 128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096];\n\n this._isEarlyEofReconnecting = false;\n\n this._paused = false;\n this._resumeFrom = 0;\n\n this._onDataArrival = null;\n this._onSeeked = null;\n this._onError = null;\n this._onComplete = null;\n this._onRedirect = null;\n this._onRecoveredEarlyEof = null;\n\n this._selectSeekHandler();\n this._selectLoader();\n this._createLoader();\n }\n\n destroy() {\n if (this._loader.isWorking()) {\n this._loader.abort();\n }\n this._loader.destroy();\n this._loader = null;\n this._loaderClass = null;\n this._dataSource = null;\n this._stashBuffer = null;\n this._stashUsed = this._stashSize = this._bufferSize = this._stashByteStart = 0;\n this._currentRange = null;\n this._speedSampler = null;\n\n this._isEarlyEofReconnecting = false;\n\n this._onDataArrival = null;\n this._onSeeked = null;\n this._onError = null;\n this._onComplete = null;\n this._onRedirect = null;\n this._onRecoveredEarlyEof = null;\n\n this._extraData = null;\n }\n\n isWorking() {\n return this._loader && this._loader.isWorking() && !this._paused;\n }\n\n isPaused() {\n return this._paused;\n }\n\n get status() {\n return this._loader.status;\n }\n\n get extraData() {\n return this._extraData;\n }\n\n set extraData(data) {\n this._extraData = data;\n }\n\n // prototype: function onDataArrival(chunks: ArrayBuffer, byteStart: number): number\n get onDataArrival() {\n return this._onDataArrival;\n }\n\n set onDataArrival(callback) {\n this._onDataArrival = callback;\n }\n\n get onSeeked() {\n return this._onSeeked;\n }\n\n set onSeeked(callback) {\n this._onSeeked = callback;\n }\n\n // prototype: function onError(type: number, info: {code: number, msg: string}): void\n get onError() {\n return this._onError;\n }\n\n set onError(callback) {\n this._onError = callback;\n }\n\n get onComplete() {\n return this._onComplete;\n }\n\n set onComplete(callback) {\n this._onComplete = callback;\n }\n\n get onRedirect() {\n return this._onRedirect;\n }\n\n set onRedirect(callback) {\n this._onRedirect = callback;\n }\n\n get onRecoveredEarlyEof() {\n return this._onRecoveredEarlyEof;\n }\n\n set onRecoveredEarlyEof(callback) {\n this._onRecoveredEarlyEof = callback;\n }\n\n get currentURL() {\n return this._dataSource.url;\n }\n\n get hasRedirect() {\n return (this._redirectedURL != null || this._dataSource.redirectedURL != undefined);\n }\n\n get currentRedirectedURL() {\n return this._redirectedURL || this._dataSource.redirectedURL;\n }\n\n // in KB/s\n get currentSpeed() {\n if (this._loaderClass === RangeLoader) {\n // SpeedSampler is inaccuracy if loader is RangeLoader\n return this._loader.currentSpeed;\n }\n return this._speedSampler.lastSecondKBps;\n }\n\n get loaderType() {\n return this._loader.type;\n }\n\n _selectSeekHandler() {\n let config = this._config;\n\n if (config.seekType === 'range') {\n this._seekHandler = new RangeSeekHandler(this._config.rangeLoadZeroStart);\n } else if (config.seekType === 'param') {\n let paramStart = config.seekParamStart || 'bstart';\n let paramEnd = config.seekParamEnd || 'bend';\n\n this._seekHandler = new ParamSeekHandler(paramStart, paramEnd);\n } else if (config.seekType === 'custom') {\n if (typeof config.customSeekHandler !== 'function') {\n throw new InvalidArgumentException('Custom seekType specified in config but invalid customSeekHandler!');\n }\n this._seekHandler = new config.customSeekHandler();\n } else {\n throw new InvalidArgumentException(`Invalid seekType in config: ${config.seekType}`);\n }\n }\n\n _selectLoader() {\n if (this._config.customLoader != null) {\n this._loaderClass = this._config.customLoader;\n } else if (this._isWebSocketURL) {\n this._loaderClass = WebSocketLoader;\n } else if (FetchStreamLoader.isSupported()) {\n this._loaderClass = FetchStreamLoader;\n } else if (MozChunkedLoader.isSupported()) {\n this._loaderClass = MozChunkedLoader;\n } else if (RangeLoader.isSupported()) {\n this._loaderClass = RangeLoader;\n } else {\n throw new RuntimeException('Your browser doesn\\'t support xhr with arraybuffer responseType!');\n }\n }\n\n _createLoader() {\n this._loader = new this._loaderClass(this._seekHandler, this._config);\n if (this._loader.needStashBuffer === false) {\n this._enableStash = false;\n }\n this._loader.onContentLengthKnown = this._onContentLengthKnown.bind(this);\n this._loader.onURLRedirect = this._onURLRedirect.bind(this);\n this._loader.onDataArrival = this._onLoaderChunkArrival.bind(this);\n this._loader.onComplete = this._onLoaderComplete.bind(this);\n this._loader.onError = this._onLoaderError.bind(this);\n }\n\n open(optionalFrom) {\n this._currentRange = {from: 0, to: -1};\n if (optionalFrom) {\n this._currentRange.from = optionalFrom;\n }\n\n this._speedSampler.reset();\n if (!optionalFrom) {\n this._fullRequestFlag = true;\n }\n\n this._loader.open(this._dataSource, Object.assign({}, this._currentRange));\n }\n\n abort() {\n this._loader.abort();\n\n if (this._paused) {\n this._paused = false;\n this._resumeFrom = 0;\n }\n }\n\n pause() {\n if (this.isWorking()) {\n this._loader.abort();\n\n if (this._stashUsed !== 0) {\n this._resumeFrom = this._stashByteStart;\n this._currentRange.to = this._stashByteStart - 1;\n } else {\n this._resumeFrom = this._currentRange.to + 1;\n }\n this._stashUsed = 0;\n this._stashByteStart = 0;\n this._paused = true;\n }\n }\n\n resume() {\n if (this._paused) {\n this._paused = false;\n let bytes = this._resumeFrom;\n this._resumeFrom = 0;\n this._internalSeek(bytes, true);\n }\n }\n\n seek(bytes) {\n this._paused = false;\n this._stashUsed = 0;\n this._stashByteStart = 0;\n this._internalSeek(bytes, true);\n }\n\n /**\n * When seeking request is from media seeking, unconsumed stash data should be dropped\n * However, stash data shouldn't be dropped if seeking requested from http reconnection\n *\n * @dropUnconsumed: Ignore and discard all unconsumed data in stash buffer\n */\n _internalSeek(bytes, dropUnconsumed) {\n if (this._loader.isWorking()) {\n this._loader.abort();\n }\n\n // dispatch & flush stash buffer before seek\n this._flushStashBuffer(dropUnconsumed);\n\n this._loader.destroy();\n this._loader = null;\n\n let requestRange = {from: bytes, to: -1};\n this._currentRange = {from: requestRange.from, to: -1};\n\n this._speedSampler.reset();\n this._stashSize = this._stashInitialSize;\n this._createLoader();\n this._loader.open(this._dataSource, requestRange);\n\n if (this._onSeeked) {\n this._onSeeked();\n }\n }\n\n updateUrl(url) {\n if (!url || typeof url !== 'string' || url.length === 0) {\n throw new InvalidArgumentException('Url must be a non-empty string!');\n }\n\n this._dataSource.url = url;\n\n // TODO: replace with new url\n }\n\n _expandBuffer(expectedBytes) {\n let bufferNewSize = this._stashSize;\n while (bufferNewSize + 1024 * 1024 * 1 < expectedBytes) {\n bufferNewSize *= 2;\n }\n\n bufferNewSize += 1024 * 1024 * 1; // bufferSize = stashSize + 1MB\n if (bufferNewSize === this._bufferSize) {\n return;\n }\n\n let newBuffer = new ArrayBuffer(bufferNewSize);\n\n if (this._stashUsed > 0) { // copy existing data into new buffer\n let stashOldArray = new Uint8Array(this._stashBuffer, 0, this._stashUsed);\n let stashNewArray = new Uint8Array(newBuffer, 0, bufferNewSize);\n stashNewArray.set(stashOldArray, 0);\n }\n\n this._stashBuffer = newBuffer;\n this._bufferSize = bufferNewSize;\n }\n\n _normalizeSpeed(input) {\n let list = this._speedNormalizeList;\n let last = list.length - 1;\n let mid = 0;\n let lbound = 0;\n let ubound = last;\n\n if (input < list[0]) {\n return list[0];\n }\n\n // binary search\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n if (mid === last || (input >= list[mid] && input < list[mid + 1])) {\n return list[mid];\n } else if (list[mid] < input) {\n lbound = mid + 1;\n } else {\n ubound = mid - 1;\n }\n }\n }\n\n _adjustStashSize(normalized) {\n let stashSizeKB = 0;\n\n if (this._config.isLive) {\n // live stream: always use single normalized speed for size of stashSizeKB\n stashSizeKB = normalized;\n } else {\n if (normalized < 512) {\n stashSizeKB = normalized;\n } else if (normalized >= 512 && normalized <= 1024) {\n stashSizeKB = Math.floor(normalized * 1.5);\n } else {\n stashSizeKB = normalized * 2;\n }\n }\n\n if (stashSizeKB > 8192) {\n stashSizeKB = 8192;\n }\n\n let bufferSize = stashSizeKB * 1024 + 1024 * 1024 * 1; // stashSize + 1MB\n if (this._bufferSize < bufferSize) {\n this._expandBuffer(bufferSize);\n }\n this._stashSize = stashSizeKB * 1024;\n }\n\n _dispatchChunks(chunks, byteStart) {\n this._currentRange.to = byteStart + chunks.byteLength - 1;\n return this._onDataArrival(chunks, byteStart);\n }\n\n _onURLRedirect(redirectedURL) {\n this._redirectedURL = redirectedURL;\n if (this._onRedirect) {\n this._onRedirect(redirectedURL);\n }\n }\n\n _onContentLengthKnown(contentLength) {\n if (contentLength && this._fullRequestFlag) {\n this._totalLength = contentLength;\n this._fullRequestFlag = false;\n }\n }\n\n _onLoaderChunkArrival(chunk, byteStart, receivedLength) {\n if (!this._onDataArrival) {\n throw new IllegalStateException('IOController: No existing consumer (onDataArrival) callback!');\n }\n if (this._paused) {\n return;\n }\n if (this._isEarlyEofReconnecting) {\n // Auto-reconnect for EarlyEof succeed, notify to upper-layer by callback\n this._isEarlyEofReconnecting = false;\n if (this._onRecoveredEarlyEof) {\n this._onRecoveredEarlyEof();\n }\n }\n\n this._speedSampler.addBytes(chunk.byteLength);\n\n // adjust stash buffer size according to network speed dynamically\n let KBps = this._speedSampler.lastSecondKBps;\n if (KBps !== 0) {\n let normalized = this._normalizeSpeed(KBps);\n if (this._speedNormalized !== normalized) {\n this._speedNormalized = normalized;\n this._adjustStashSize(normalized);\n }\n }\n\n if (!this._enableStash) { // disable stash\n if (this._stashUsed === 0) {\n // dispatch chunk directly to consumer;\n // check ret value (consumed bytes) and stash unconsumed to stashBuffer\n let consumed = this._dispatchChunks(chunk, byteStart);\n if (consumed < chunk.byteLength) { // unconsumed data remain.\n let remain = chunk.byteLength - consumed;\n if (remain > this._bufferSize) {\n this._expandBuffer(remain);\n }\n let stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n stashArray.set(new Uint8Array(chunk, consumed), 0);\n this._stashUsed += remain;\n this._stashByteStart = byteStart + consumed;\n }\n } else {\n // else: Merge chunk into stashBuffer, and dispatch stashBuffer to consumer.\n if (this._stashUsed + chunk.byteLength > this._bufferSize) {\n this._expandBuffer(this._stashUsed + chunk.byteLength);\n }\n let stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n stashArray.set(new Uint8Array(chunk), this._stashUsed);\n this._stashUsed += chunk.byteLength;\n let consumed = this._dispatchChunks(this._stashBuffer.slice(0, this._stashUsed), this._stashByteStart);\n if (consumed < this._stashUsed && consumed > 0) { // unconsumed data remain\n let remainArray = new Uint8Array(this._stashBuffer, consumed);\n stashArray.set(remainArray, 0);\n }\n this._stashUsed -= consumed;\n this._stashByteStart += consumed;\n }\n } else { // enable stash\n if (this._stashUsed === 0 && this._stashByteStart === 0) { // seeked? or init chunk?\n // This is the first chunk after seek action\n this._stashByteStart = byteStart;\n }\n if (this._stashUsed + chunk.byteLength <= this._stashSize) {\n // just stash\n let stashArray = new Uint8Array(this._stashBuffer, 0, this._stashSize);\n stashArray.set(new Uint8Array(chunk), this._stashUsed);\n this._stashUsed += chunk.byteLength;\n } else { // stashUsed + chunkSize > stashSize, size limit exceeded\n let stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n if (this._stashUsed > 0) { // There're stash datas in buffer\n // dispatch the whole stashBuffer, and stash remain data\n // then append chunk to stashBuffer (stash)\n let buffer = this._stashBuffer.slice(0, this._stashUsed);\n let consumed = this._dispatchChunks(buffer, this._stashByteStart);\n if (consumed < buffer.byteLength) {\n if (consumed > 0) {\n let remainArray = new Uint8Array(buffer, consumed);\n stashArray.set(remainArray, 0);\n this._stashUsed = remainArray.byteLength;\n this._stashByteStart += consumed;\n }\n } else {\n this._stashUsed = 0;\n this._stashByteStart += consumed;\n }\n if (this._stashUsed + chunk.byteLength > this._bufferSize) {\n this._expandBuffer(this._stashUsed + chunk.byteLength);\n stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n }\n stashArray.set(new Uint8Array(chunk), this._stashUsed);\n this._stashUsed += chunk.byteLength;\n } else { // stash buffer empty, but chunkSize > stashSize (oh, holy shit)\n // dispatch chunk directly and stash remain data\n let consumed = this._dispatchChunks(chunk, byteStart);\n if (consumed < chunk.byteLength) {\n let remain = chunk.byteLength - consumed;\n if (remain > this._bufferSize) {\n this._expandBuffer(remain);\n stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n }\n stashArray.set(new Uint8Array(chunk, consumed), 0);\n this._stashUsed += remain;\n this._stashByteStart = byteStart + consumed;\n }\n }\n }\n }\n }\n\n _flushStashBuffer(dropUnconsumed) {\n if (this._stashUsed > 0) {\n let buffer = this._stashBuffer.slice(0, this._stashUsed);\n let consumed = this._dispatchChunks(buffer, this._stashByteStart);\n let remain = buffer.byteLength - consumed;\n\n if (consumed < buffer.byteLength) {\n if (dropUnconsumed) {\n Log.w(this.TAG, `${remain} bytes unconsumed data remain when flush buffer, dropped`);\n } else {\n if (consumed > 0) {\n let stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n let remainArray = new Uint8Array(buffer, consumed);\n stashArray.set(remainArray, 0);\n this._stashUsed = remainArray.byteLength;\n this._stashByteStart += consumed;\n }\n return 0;\n }\n }\n this._stashUsed = 0;\n this._stashByteStart = 0;\n return remain;\n }\n return 0;\n }\n\n _onLoaderComplete(from, to) {\n // Force-flush stash buffer, and drop unconsumed data\n this._flushStashBuffer(true);\n\n if (this._onComplete) {\n this._onComplete(this._extraData);\n }\n }\n\n _onLoaderError(type, data) {\n Log.e(this.TAG, `Loader error, code = ${data.code}, msg = ${data.msg}`);\n\n this._flushStashBuffer(false);\n\n if (this._isEarlyEofReconnecting) {\n // Auto-reconnect for EarlyEof failed, throw UnrecoverableEarlyEof error to upper-layer\n this._isEarlyEofReconnecting = false;\n type = LoaderErrors.UNRECOVERABLE_EARLY_EOF;\n }\n\n switch (type) {\n case LoaderErrors.EARLY_EOF: {\n if (!this._config.isLive) {\n // Do internal http reconnect if not live stream\n if (this._totalLength) {\n let nextFrom = this._currentRange.to + 1;\n if (nextFrom < this._totalLength) {\n Log.w(this.TAG, 'Connection lost, trying reconnect...');\n this._isEarlyEofReconnecting = true;\n this._internalSeek(nextFrom, false);\n }\n return;\n }\n // else: We don't know totalLength, throw UnrecoverableEarlyEof\n }\n // live stream: throw UnrecoverableEarlyEof error to upper-layer\n type = LoaderErrors.UNRECOVERABLE_EARLY_EOF;\n break;\n }\n case LoaderErrors.UNRECOVERABLE_EARLY_EOF:\n case LoaderErrors.CONNECTING_TIMEOUT:\n case LoaderErrors.HTTP_STATUS_CODE_INVALID:\n case LoaderErrors.EXCEPTION:\n break;\n }\n\n if (this._onError) {\n this._onError(type, data);\n } else {\n throw new RuntimeException('IOException: ' + data.msg);\n }\n }\n\n}\n\nexport default IOController;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NotImplementedException} from '../utils/exception.js';\n\nexport const LoaderStatus = {\n kIdle: 0,\n kConnecting: 1,\n kBuffering: 2,\n kError: 3,\n kComplete: 4\n};\n\nexport const LoaderErrors = {\n OK: 'OK',\n EXCEPTION: 'Exception',\n HTTP_STATUS_CODE_INVALID: 'HttpStatusCodeInvalid',\n CONNECTING_TIMEOUT: 'ConnectingTimeout',\n EARLY_EOF: 'EarlyEof',\n UNRECOVERABLE_EARLY_EOF: 'UnrecoverableEarlyEof'\n};\n\n/* Loader has callbacks which have following prototypes:\n * function onContentLengthKnown(contentLength: number): void\n * function onURLRedirect(url: string): void\n * function onDataArrival(chunk: ArrayBuffer, byteStart: number, receivedLength: number): void\n * function onError(errorType: number, errorInfo: {code: number, msg: string}): void\n * function onComplete(rangeFrom: number, rangeTo: number): void\n */\nexport class BaseLoader {\n\n constructor(typeName) {\n this._type = typeName || 'undefined';\n this._status = LoaderStatus.kIdle;\n this._needStash = false;\n // callbacks\n this._onContentLengthKnown = null;\n this._onURLRedirect = null;\n this._onDataArrival = null;\n this._onError = null;\n this._onComplete = null;\n }\n\n destroy() {\n this._status = LoaderStatus.kIdle;\n this._onContentLengthKnown = null;\n this._onURLRedirect = null;\n this._onDataArrival = null;\n this._onError = null;\n this._onComplete = null;\n }\n\n isWorking() {\n return this._status === LoaderStatus.kConnecting || this._status === LoaderStatus.kBuffering;\n }\n\n get type() {\n return this._type;\n }\n\n get status() {\n return this._status;\n }\n\n get needStashBuffer() {\n return this._needStash;\n }\n\n get onContentLengthKnown() {\n return this._onContentLengthKnown;\n }\n\n set onContentLengthKnown(callback) {\n this._onContentLengthKnown = callback;\n }\n\n get onURLRedirect() {\n return this._onURLRedirect;\n }\n\n set onURLRedirect(callback) {\n this._onURLRedirect = callback;\n }\n\n get onDataArrival() {\n return this._onDataArrival;\n }\n\n set onDataArrival(callback) {\n this._onDataArrival = callback;\n }\n\n get onError() {\n return this._onError;\n }\n\n set onError(callback) {\n this._onError = callback;\n }\n\n get onComplete() {\n return this._onComplete;\n }\n\n set onComplete(callback) {\n this._onComplete = callback;\n }\n\n // pure virtual\n open(dataSource, range) {\n throw new NotImplementedException('Unimplemented abstract function!');\n }\n\n abort() {\n throw new NotImplementedException('Unimplemented abstract function!');\n }\n\n\n}","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass ParamSeekHandler {\n\n constructor(paramStart, paramEnd) {\n this._startName = paramStart;\n this._endName = paramEnd;\n }\n\n getConfig(baseUrl, range) {\n let url = baseUrl;\n\n if (range.from !== 0 || range.to !== -1) {\n let needAnd = true;\n if (url.indexOf('?') === -1) {\n url += '?';\n needAnd = false;\n }\n\n if (needAnd) {\n url += '&';\n }\n\n url += `${this._startName}=${range.from.toString()}`;\n\n if (range.to !== -1) {\n url += `&${this._endName}=${range.to.toString()}`;\n }\n }\n\n return {\n url: url,\n headers: {}\n };\n }\n\n removeURLParameters(seekedURL) {\n let baseURL = seekedURL.split('?')[0];\n let params = undefined;\n\n let queryIndex = seekedURL.indexOf('?');\n if (queryIndex !== -1) {\n params = seekedURL.substring(queryIndex + 1);\n }\n\n let resultParams = '';\n\n if (params != undefined && params.length > 0) {\n let pairs = params.split('&');\n\n for (let i = 0; i < pairs.length; i++) {\n let pair = pairs[i].split('=');\n let requireAnd = (i > 0);\n\n if (pair[0] !== this._startName && pair[0] !== this._endName) {\n if (requireAnd) {\n resultParams += '&';\n }\n resultParams += pairs[i];\n }\n }\n }\n\n return (resultParams.length === 0) ? baseURL : baseURL + '?' + resultParams;\n }\n\n}\n\nexport default ParamSeekHandler;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass RangeSeekHandler {\n\n constructor(zeroStart) {\n this._zeroStart = zeroStart || false;\n }\n\n getConfig(url, range) {\n let headers = {};\n\n if (range.from !== 0 || range.to !== -1) {\n let param;\n if (range.to !== -1) {\n param = `bytes=${range.from.toString()}-${range.to.toString()}`;\n } else {\n param = `bytes=${range.from.toString()}-`;\n }\n headers['Range'] = param;\n } else if (this._zeroStart) {\n headers['Range'] = 'bytes=0-';\n }\n\n return {\n url: url,\n headers: headers\n };\n }\n\n removeURLParameters(seekedURL) {\n return seekedURL;\n }\n\n}\n\nexport default RangeSeekHandler;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Utility class to calculate realtime network I/O speed\nclass SpeedSampler {\n\n constructor() {\n // milliseconds\n this._firstCheckpoint = 0;\n this._lastCheckpoint = 0;\n this._intervalBytes = 0;\n this._totalBytes = 0;\n this._lastSecondBytes = 0;\n\n // compatibility detection\n if (self.performance && self.performance.now) {\n this._now = self.performance.now.bind(self.performance);\n } else {\n this._now = Date.now;\n }\n }\n\n reset() {\n this._firstCheckpoint = this._lastCheckpoint = 0;\n this._totalBytes = this._intervalBytes = 0;\n this._lastSecondBytes = 0;\n }\n\n addBytes(bytes) {\n if (this._firstCheckpoint === 0) {\n this._firstCheckpoint = this._now();\n this._lastCheckpoint = this._firstCheckpoint;\n this._intervalBytes += bytes;\n this._totalBytes += bytes;\n } else if (this._now() - this._lastCheckpoint < 1000) {\n this._intervalBytes += bytes;\n this._totalBytes += bytes;\n } else { // duration >= 1000\n this._lastSecondBytes = this._intervalBytes;\n this._intervalBytes = bytes;\n this._totalBytes += bytes;\n this._lastCheckpoint = this._now();\n }\n }\n\n get currentKBps() {\n this.addBytes(0);\n\n let durationSeconds = (this._now() - this._lastCheckpoint) / 1000;\n if (durationSeconds == 0) durationSeconds = 1;\n return (this._intervalBytes / durationSeconds) / 1024;\n }\n\n get lastSecondKBps() {\n this.addBytes(0);\n\n if (this._lastSecondBytes !== 0) {\n return this._lastSecondBytes / 1024;\n } else { // lastSecondBytes === 0\n if (this._now() - this._lastCheckpoint >= 500) {\n // if time interval since last checkpoint has exceeded 500ms\n // the speed is nearly accurate\n return this.currentKBps;\n } else {\n // We don't know\n return 0;\n }\n }\n }\n\n get averageKBps() {\n let durationSeconds = (this._now() - this._firstCheckpoint) / 1000;\n return (this._totalBytes / durationSeconds) / 1024;\n }\n\n}\n\nexport default SpeedSampler;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Log from '../utils/logger.js';\nimport {BaseLoader, LoaderStatus, LoaderErrors} from './loader.js';\nimport {RuntimeException} from '../utils/exception.js';\n\n// For FLV over WebSocket live stream\nclass WebSocketLoader extends BaseLoader {\n\n static isSupported() {\n try {\n return (typeof self.WebSocket !== 'undefined');\n } catch (e) {\n return false;\n }\n }\n\n constructor() {\n super('websocket-loader');\n this.TAG = 'WebSocketLoader';\n\n this._needStash = true;\n\n this._ws = null;\n this._requestAbort = false;\n this._receivedLength = 0;\n }\n\n destroy() {\n if (this._ws) {\n this.abort();\n }\n super.destroy();\n }\n\n open(dataSource) {\n try {\n let ws = this._ws = new self.WebSocket(dataSource.url);\n ws.binaryType = 'arraybuffer';\n ws.onopen = this._onWebSocketOpen.bind(this);\n ws.onclose = this._onWebSocketClose.bind(this);\n ws.onmessage = this._onWebSocketMessage.bind(this);\n ws.onerror = this._onWebSocketError.bind(this);\n\n this._status = LoaderStatus.kConnecting;\n } catch (e) {\n this._status = LoaderStatus.kError;\n\n let info = {code: e.code, msg: e.message};\n\n if (this._onError) {\n this._onError(LoaderErrors.EXCEPTION, info);\n } else {\n throw new RuntimeException(info.msg);\n }\n }\n }\n\n abort() {\n let ws = this._ws;\n if (ws && (ws.readyState === 0 || ws.readyState === 1)) { // CONNECTING || OPEN\n this._requestAbort = true;\n ws.close();\n }\n\n this._ws = null;\n this._status = LoaderStatus.kComplete;\n }\n\n _onWebSocketOpen(e) {\n this._status = LoaderStatus.kBuffering;\n }\n\n _onWebSocketClose(e) {\n if (this._requestAbort === true) {\n this._requestAbort = false;\n return;\n }\n\n this._status = LoaderStatus.kComplete;\n\n if (this._onComplete) {\n this._onComplete(0, this._receivedLength - 1);\n }\n }\n\n _onWebSocketMessage(e) {\n if (e.data instanceof ArrayBuffer) {\n this._dispatchArrayBuffer(e.data);\n } else if (e.data instanceof Blob) {\n let reader = new FileReader();\n reader.onload = () => {\n this._dispatchArrayBuffer(reader.result);\n };\n reader.readAsArrayBuffer(e.data);\n } else {\n this._status = LoaderStatus.kError;\n let info = {code: -1, msg: 'Unsupported WebSocket message type: ' + e.data.constructor.name};\n\n if (this._onError) {\n this._onError(LoaderErrors.EXCEPTION, info);\n } else {\n throw new RuntimeException(info.msg);\n }\n }\n }\n\n _dispatchArrayBuffer(arraybuffer) {\n let chunk = arraybuffer;\n let byteStart = this._receivedLength;\n this._receivedLength += chunk.byteLength;\n\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n }\n }\n\n _onWebSocketError(e) {\n this._status = LoaderStatus.kError;\n\n let info = {\n code: e.code,\n msg: e.message\n };\n\n if (this._onError) {\n this._onError(LoaderErrors.EXCEPTION, info);\n } else {\n throw new RuntimeException(info.msg);\n }\n }\n\n}\n\nexport default WebSocketLoader;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Log from '../utils/logger.js';\nimport {BaseLoader, LoaderStatus, LoaderErrors} from './loader.js';\nimport {RuntimeException} from '../utils/exception.js';\n\n// For FireFox browser which supports `xhr.responseType = 'moz-chunked-arraybuffer'`\nclass MozChunkedLoader extends BaseLoader {\n\n static isSupported() {\n try {\n let xhr = new XMLHttpRequest();\n // Firefox 37- requires .open() to be called before setting responseType\n xhr.open('GET', 'https://example.com', true);\n xhr.responseType = 'moz-chunked-arraybuffer';\n return (xhr.responseType === 'moz-chunked-arraybuffer');\n } catch (e) {\n Log.w('MozChunkedLoader', e.message);\n return false;\n }\n }\n\n constructor(seekHandler, config) {\n super('xhr-moz-chunked-loader');\n this.TAG = 'MozChunkedLoader';\n\n this._seekHandler = seekHandler;\n this._config = config;\n this._needStash = true;\n\n this._xhr = null;\n this._requestAbort = false;\n this._contentLength = null;\n this._receivedLength = 0;\n }\n\n destroy() {\n if (this.isWorking()) {\n this.abort();\n }\n if (this._xhr) {\n this._xhr.onreadystatechange = null;\n this._xhr.onprogress = null;\n this._xhr.onloadend = null;\n this._xhr.onerror = null;\n this._xhr = null;\n }\n super.destroy();\n }\n\n open(dataSource, range) {\n this._dataSource = dataSource;\n this._range = range;\n\n let sourceURL = dataSource.url;\n if (this._config.reuseRedirectedURL && dataSource.redirectedURL != undefined) {\n sourceURL = dataSource.redirectedURL;\n }\n\n let seekConfig = this._seekHandler.getConfig(sourceURL, range);\n this._requestURL = seekConfig.url;\n\n let xhr = this._xhr = new XMLHttpRequest();\n xhr.open('GET', seekConfig.url, true);\n xhr.responseType = 'moz-chunked-arraybuffer';\n xhr.onreadystatechange = this._onReadyStateChange.bind(this);\n xhr.onprogress = this._onProgress.bind(this);\n xhr.onloadend = this._onLoadEnd.bind(this);\n xhr.onerror = this._onXhrError.bind(this);\n\n // cors is auto detected and enabled by xhr\n\n // withCredentials is disabled by default\n if (dataSource.withCredentials) {\n xhr.withCredentials = true;\n }\n\n if (typeof seekConfig.headers === 'object') {\n let headers = seekConfig.headers;\n\n for (let key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n }\n\n // add additional headers\n if (typeof this._config.headers === 'object') {\n let headers = this._config.headers;\n\n for (let key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n }\n\n this._status = LoaderStatus.kConnecting;\n xhr.send();\n }\n\n abort() {\n this._requestAbort = true;\n if (this._xhr) {\n this._xhr.abort();\n }\n this._status = LoaderStatus.kComplete;\n }\n\n _onReadyStateChange(e) {\n let xhr = e.target;\n\n if (xhr.readyState === 2) { // HEADERS_RECEIVED\n if (xhr.responseURL != undefined && xhr.responseURL !== this._requestURL) {\n if (this._onURLRedirect) {\n let redirectedURL = this._seekHandler.removeURLParameters(xhr.responseURL);\n this._onURLRedirect(redirectedURL);\n }\n }\n\n if (xhr.status !== 0 && (xhr.status < 200 || xhr.status > 299)) {\n this._status = LoaderStatus.kError;\n if (this._onError) {\n this._onError(LoaderErrors.HTTP_STATUS_CODE_INVALID, {code: xhr.status, msg: xhr.statusText});\n } else {\n throw new RuntimeException('MozChunkedLoader: Http code invalid, ' + xhr.status + ' ' + xhr.statusText);\n }\n } else {\n this._status = LoaderStatus.kBuffering;\n }\n }\n }\n\n _onProgress(e) {\n if (this._status === LoaderStatus.kError) {\n // Ignore error response\n return;\n }\n\n if (this._contentLength === null) {\n if (e.total !== null && e.total !== 0) {\n this._contentLength = e.total;\n if (this._onContentLengthKnown) {\n this._onContentLengthKnown(this._contentLength);\n }\n }\n }\n\n let chunk = e.target.response;\n let byteStart = this._range.from + this._receivedLength;\n this._receivedLength += chunk.byteLength;\n\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n }\n }\n\n _onLoadEnd(e) {\n if (this._requestAbort === true) {\n this._requestAbort = false;\n return;\n } else if (this._status === LoaderStatus.kError) {\n return;\n }\n\n this._status = LoaderStatus.kComplete;\n if (this._onComplete) {\n this._onComplete(this._range.from, this._range.from + this._receivedLength - 1);\n }\n }\n\n _onXhrError(e) {\n this._status = LoaderStatus.kError;\n let type = 0;\n let info = null;\n\n if (this._contentLength && e.loaded < this._contentLength) {\n type = LoaderErrors.EARLY_EOF;\n info = {code: -1, msg: 'Moz-Chunked stream meet Early-Eof'};\n } else {\n type = LoaderErrors.EXCEPTION;\n info = {code: -1, msg: e.constructor.name + ' ' + e.type};\n }\n\n if (this._onError) {\n this._onError(type, info);\n } else {\n throw new RuntimeException(info.msg);\n }\n }\n\n}\n\nexport default MozChunkedLoader;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Log from '../utils/logger.js';\nimport SpeedSampler from './speed-sampler.js';\nimport {BaseLoader, LoaderStatus, LoaderErrors} from './loader.js';\nimport {RuntimeException} from '../utils/exception.js';\n\n// Universal IO Loader, implemented by adding Range header in xhr's request header\nclass RangeLoader extends BaseLoader {\n\n static isSupported() {\n try {\n let xhr = new XMLHttpRequest();\n xhr.open('GET', 'https://example.com', true);\n xhr.responseType = 'arraybuffer';\n return (xhr.responseType === 'arraybuffer');\n } catch (e) {\n Log.w('RangeLoader', e.message);\n return false;\n }\n }\n\n constructor(seekHandler, config) {\n super('xhr-range-loader');\n this.TAG = 'RangeLoader';\n\n this._seekHandler = seekHandler;\n this._config = config;\n this._needStash = false;\n\n this._chunkSizeKBList = [\n 128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192\n ];\n this._currentChunkSizeKB = 384;\n this._currentSpeedNormalized = 0;\n this._zeroSpeedChunkCount = 0;\n\n this._xhr = null;\n this._speedSampler = new SpeedSampler();\n\n this._requestAbort = false;\n this._waitForTotalLength = false;\n this._totalLengthReceived = false;\n\n this._currentRequestURL = null;\n this._currentRedirectedURL = null;\n this._currentRequestRange = null;\n this._totalLength = null; // size of the entire file\n this._contentLength = null; // Content-Length of entire request range\n this._receivedLength = 0; // total received bytes\n this._lastTimeLoaded = 0; // received bytes of current request sub-range\n }\n\n destroy() {\n if (this.isWorking()) {\n this.abort();\n }\n if (this._xhr) {\n this._xhr.onreadystatechange = null;\n this._xhr.onprogress = null;\n this._xhr.onload = null;\n this._xhr.onerror = null;\n this._xhr = null;\n }\n super.destroy();\n }\n\n get currentSpeed() {\n return this._speedSampler.lastSecondKBps;\n }\n\n open(dataSource, range) {\n this._dataSource = dataSource;\n this._range = range;\n this._status = LoaderStatus.kConnecting;\n\n let useRefTotalLength = false;\n if (this._dataSource.filesize != undefined && this._dataSource.filesize !== 0) {\n useRefTotalLength = true;\n this._totalLength = this._dataSource.filesize;\n }\n\n if (!this._totalLengthReceived && !useRefTotalLength) {\n // We need total filesize\n this._waitForTotalLength = true;\n this._internalOpen(this._dataSource, {from: 0, to: -1});\n } else {\n // We have filesize, start loading\n this._openSubRange();\n }\n }\n\n _openSubRange() {\n let chunkSize = this._currentChunkSizeKB * 1024;\n\n let from = this._range.from + this._receivedLength;\n let to = from + chunkSize;\n\n if (this._contentLength != null) {\n if (to - this._range.from >= this._contentLength) {\n to = this._range.from + this._contentLength - 1;\n }\n }\n\n this._currentRequestRange = {from, to};\n this._internalOpen(this._dataSource, this._currentRequestRange);\n }\n\n _internalOpen(dataSource, range) {\n this._lastTimeLoaded = 0;\n\n let sourceURL = dataSource.url;\n if (this._config.reuseRedirectedURL) {\n if (this._currentRedirectedURL != undefined) {\n sourceURL = this._currentRedirectedURL;\n } else if (dataSource.redirectedURL != undefined) {\n sourceURL = dataSource.redirectedURL;\n }\n }\n\n let seekConfig = this._seekHandler.getConfig(sourceURL, range);\n this._currentRequestURL = seekConfig.url;\n\n let xhr = this._xhr = new XMLHttpRequest();\n xhr.open('GET', seekConfig.url, true);\n xhr.responseType = 'arraybuffer';\n xhr.onreadystatechange = this._onReadyStateChange.bind(this);\n xhr.onprogress = this._onProgress.bind(this);\n xhr.onload = this._onLoad.bind(this);\n xhr.onerror = this._onXhrError.bind(this);\n\n if (dataSource.withCredentials) {\n xhr.withCredentials = true;\n }\n\n if (typeof seekConfig.headers === 'object') {\n let headers = seekConfig.headers;\n\n for (let key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n }\n\n // add additional headers\n if (typeof this._config.headers === 'object') {\n let headers = this._config.headers;\n\n for (let key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n }\n\n xhr.send();\n }\n\n abort() {\n this._requestAbort = true;\n this._internalAbort();\n this._status = LoaderStatus.kComplete;\n }\n\n _internalAbort() {\n if (this._xhr) {\n this._xhr.onreadystatechange = null;\n this._xhr.onprogress = null;\n this._xhr.onload = null;\n this._xhr.onerror = null;\n this._xhr.abort();\n this._xhr = null;\n }\n }\n\n _onReadyStateChange(e) {\n let xhr = e.target;\n\n if (xhr.readyState === 2) { // HEADERS_RECEIVED\n if (xhr.responseURL != undefined) { // if the browser support this property\n let redirectedURL = this._seekHandler.removeURLParameters(xhr.responseURL);\n if (xhr.responseURL !== this._currentRequestURL && redirectedURL !== this._currentRedirectedURL) {\n this._currentRedirectedURL = redirectedURL;\n if (this._onURLRedirect) {\n this._onURLRedirect(redirectedURL);\n }\n }\n }\n\n if ((xhr.status >= 200 && xhr.status <= 299)) {\n if (this._waitForTotalLength) {\n return;\n }\n this._status = LoaderStatus.kBuffering;\n } else {\n this._status = LoaderStatus.kError;\n if (this._onError) {\n this._onError(LoaderErrors.HTTP_STATUS_CODE_INVALID, {code: xhr.status, msg: xhr.statusText});\n } else {\n throw new RuntimeException('RangeLoader: Http code invalid, ' + xhr.status + ' ' + xhr.statusText);\n }\n }\n }\n }\n\n _onProgress(e) {\n if (this._status === LoaderStatus.kError) {\n // Ignore error response\n return;\n }\n\n if (this._contentLength === null) {\n let openNextRange = false;\n\n if (this._waitForTotalLength) {\n this._waitForTotalLength = false;\n this._totalLengthReceived = true;\n openNextRange = true;\n\n let total = e.total;\n this._internalAbort();\n if (total != null & total !== 0) {\n this._totalLength = total;\n }\n }\n\n // calculate currrent request range's contentLength\n if (this._range.to === -1) {\n this._contentLength = this._totalLength - this._range.from;\n } else { // to !== -1\n this._contentLength = this._range.to - this._range.from + 1;\n }\n\n if (openNextRange) {\n this._openSubRange();\n return;\n }\n if (this._onContentLengthKnown) {\n this._onContentLengthKnown(this._contentLength);\n }\n }\n\n let delta = e.loaded - this._lastTimeLoaded;\n this._lastTimeLoaded = e.loaded;\n this._speedSampler.addBytes(delta);\n }\n\n _normalizeSpeed(input) {\n let list = this._chunkSizeKBList;\n let last = list.length - 1;\n let mid = 0;\n let lbound = 0;\n let ubound = last;\n\n if (input < list[0]) {\n return list[0];\n }\n\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n if (mid === last || (input >= list[mid] && input < list[mid + 1])) {\n return list[mid];\n } else if (list[mid] < input) {\n lbound = mid + 1;\n } else {\n ubound = mid - 1;\n }\n }\n }\n\n _onLoad(e) {\n if (this._status === LoaderStatus.kError) {\n // Ignore error response\n return;\n }\n\n if (this._waitForTotalLength) {\n this._waitForTotalLength = false;\n return;\n }\n\n this._lastTimeLoaded = 0;\n let KBps = this._speedSampler.lastSecondKBps;\n if (KBps === 0) {\n this._zeroSpeedChunkCount++;\n if (this._zeroSpeedChunkCount >= 3) {\n // Try get currentKBps after 3 chunks\n KBps = this._speedSampler.currentKBps;\n }\n }\n\n if (KBps !== 0) {\n let normalized = this._normalizeSpeed(KBps);\n if (this._currentSpeedNormalized !== normalized) {\n this._currentSpeedNormalized = normalized;\n this._currentChunkSizeKB = normalized;\n }\n }\n\n let chunk = e.target.response;\n let byteStart = this._range.from + this._receivedLength;\n this._receivedLength += chunk.byteLength;\n\n let reportComplete = false;\n\n if (this._contentLength != null && this._receivedLength < this._contentLength) {\n // continue load next chunk\n this._openSubRange();\n } else {\n reportComplete = true;\n }\n\n // dispatch received chunk\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n }\n\n if (reportComplete) {\n this._status = LoaderStatus.kComplete;\n if (this._onComplete) {\n this._onComplete(this._range.from, this._range.from + this._receivedLength - 1);\n }\n }\n }\n\n _onXhrError(e) {\n this._status = LoaderStatus.kError;\n let type = 0;\n let info = null;\n\n if (this._contentLength && this._receivedLength > 0\n && this._receivedLength < this._contentLength) {\n type = LoaderErrors.EARLY_EOF;\n info = {code: -1, msg: 'RangeLoader meet Early-Eof'};\n } else {\n type = LoaderErrors.EXCEPTION;\n info = {code: -1, msg: e.constructor.name + ' ' + e.type};\n }\n\n if (this._onError) {\n this._onError(type, info);\n } else {\n throw new RuntimeException(info.msg);\n }\n }\n\n}\n\nexport default RangeLoader;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport EventEmitter from 'events';\nimport Log from '../utils/logger.js';\nimport Browser from '../utils/browser.js';\nimport PlayerEvents from './player-events.js';\nimport Transmuxer from '../core/transmuxer.js';\nimport TransmuxingEvents from '../core/transmuxing-events.js';\nimport MSEController from '../core/mse-controller.js';\nimport MSEEvents from '../core/mse-events.js';\nimport {ErrorTypes, ErrorDetails} from './player-errors.js';\nimport {createDefaultConfig} from '../config.js';\nimport {InvalidArgumentException, IllegalStateException} from '../utils/exception.js';\n\nclass FlvPlayer {\n\n constructor(mediaDataSource, config) {\n this.TAG = 'FlvPlayer';\n this._type = 'FlvPlayer';\n this._emitter = new EventEmitter();\n\n this._config = createDefaultConfig();\n if (typeof config === 'object') {\n Object.assign(this._config, config);\n }\n\n if (mediaDataSource.type.toLowerCase() !== 'flv') {\n throw new InvalidArgumentException('FlvPlayer requires an flv MediaDataSource input!');\n }\n\n if (mediaDataSource.isLive === true) {\n this._config.isLive = true;\n }\n\n this.e = {\n onvLoadedMetadata: this._onvLoadedMetadata.bind(this),\n onvSeeking: this._onvSeeking.bind(this),\n onvCanPlay: this._onvCanPlay.bind(this),\n onvStalled: this._onvStalled.bind(this),\n onvProgress: this._onvProgress.bind(this)\n };\n\n if (self.performance && self.performance.now) {\n this._now = self.performance.now.bind(self.performance);\n } else {\n this._now = Date.now;\n }\n\n this._pendingSeekTime = null; // in seconds\n this._requestSetTime = false;\n this._seekpointRecord = null;\n this._progressChecker = null;\n\n this._mediaDataSource = mediaDataSource;\n this._mediaElement = null;\n this._msectl = null;\n this._transmuxer = null;\n\n this._mseSourceOpened = false;\n this._hasPendingLoad = false;\n this._receivedCanPlay = false;\n\n this._mediaInfo = null;\n this._statisticsInfo = null;\n\n let chromeNeedIDRFix = (Browser.chrome &&\n (Browser.version.major < 50 ||\n (Browser.version.major === 50 && Browser.version.build < 2661)));\n this._alwaysSeekKeyframe = (chromeNeedIDRFix || Browser.msedge || Browser.msie) ? true : false;\n\n if (this._alwaysSeekKeyframe) {\n this._config.accurateSeek = false;\n }\n }\n\n destroy() {\n if (this._progressChecker != null) {\n window.clearInterval(this._progressChecker);\n this._progressChecker = null;\n }\n if (this._transmuxer) {\n this.unload();\n }\n if (this._mediaElement) {\n this.detachMediaElement();\n }\n this.e = null;\n this._mediaDataSource = null;\n\n this._emitter.removeAllListeners();\n this._emitter = null;\n }\n\n on(event, listener) {\n if (event === PlayerEvents.MEDIA_INFO) {\n if (this._mediaInfo != null) {\n Promise.resolve().then(() => {\n this._emitter.emit(PlayerEvents.MEDIA_INFO, this.mediaInfo);\n });\n }\n } else if (event === PlayerEvents.STATISTICS_INFO) {\n if (this._statisticsInfo != null) {\n Promise.resolve().then(() => {\n this._emitter.emit(PlayerEvents.STATISTICS_INFO, this.statisticsInfo);\n });\n }\n }\n this._emitter.addListener(event, listener);\n }\n\n off(event, listener) {\n this._emitter.removeListener(event, listener);\n }\n\n attachMediaElement(mediaElement) {\n this._mediaElement = mediaElement;\n mediaElement.addEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n mediaElement.addEventListener('seeking', this.e.onvSeeking);\n mediaElement.addEventListener('canplay', this.e.onvCanPlay);\n mediaElement.addEventListener('stalled', this.e.onvStalled);\n mediaElement.addEventListener('progress', this.e.onvProgress);\n\n this._msectl = new MSEController(this._config);\n\n this._msectl.on(MSEEvents.UPDATE_END, this._onmseUpdateEnd.bind(this));\n this._msectl.on(MSEEvents.BUFFER_FULL, this._onmseBufferFull.bind(this));\n this._msectl.on(MSEEvents.SOURCE_OPEN, () => {\n this._mseSourceOpened = true;\n if (this._hasPendingLoad) {\n this._hasPendingLoad = false;\n this.load();\n }\n });\n this._msectl.on(MSEEvents.ERROR, (info) => {\n this._emitter.emit(PlayerEvents.ERROR,\n ErrorTypes.MEDIA_ERROR,\n ErrorDetails.MEDIA_MSE_ERROR,\n info\n );\n });\n\n this._msectl.attachMediaElement(mediaElement);\n\n if (this._pendingSeekTime != null) {\n try {\n mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n } catch (e) {\n // IE11 may throw InvalidStateError if readyState === 0\n // We can defer set currentTime operation after loadedmetadata\n }\n }\n }\n\n detachMediaElement() {\n if (this._mediaElement) {\n this._msectl.detachMediaElement();\n this._mediaElement.removeEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n this._mediaElement.removeEventListener('seeking', this.e.onvSeeking);\n this._mediaElement.removeEventListener('canplay', this.e.onvCanPlay);\n this._mediaElement.removeEventListener('stalled', this.e.onvStalled);\n this._mediaElement.removeEventListener('progress', this.e.onvProgress);\n this._mediaElement = null;\n }\n if (this._msectl) {\n this._msectl.destroy();\n this._msectl = null;\n }\n }\n\n load() {\n if (!this._mediaElement) {\n throw new IllegalStateException('HTMLMediaElement must be attached before load()!');\n }\n if (this._transmuxer) {\n throw new IllegalStateException('FlvPlayer.load() has been called, please call unload() first!');\n }\n if (this._hasPendingLoad) {\n return;\n }\n\n if (this._config.deferLoadAfterSourceOpen && this._mseSourceOpened === false) {\n this._hasPendingLoad = true;\n return;\n }\n\n if (this._mediaElement.readyState > 0) {\n this._requestSetTime = true;\n // IE11 may throw InvalidStateError if readyState === 0\n this._mediaElement.currentTime = 0;\n }\n\n this._transmuxer = new Transmuxer(this._mediaDataSource, this._config);\n\n this._transmuxer.on(TransmuxingEvents.INIT_SEGMENT, (type, is) => {\n this._msectl.appendInitSegment(is);\n });\n this._transmuxer.on(TransmuxingEvents.MEDIA_SEGMENT, (type, ms) => {\n this._msectl.appendMediaSegment(ms);\n\n // lazyLoad check\n if (this._config.lazyLoad && !this._config.isLive) {\n let currentTime = this._mediaElement.currentTime;\n if (ms.info.endDts >= (currentTime + this._config.lazyLoadMaxDuration) * 1000) {\n if (this._progressChecker == null) {\n Log.v(this.TAG, 'Maximum buffering duration exceeded, suspend transmuxing task');\n this._suspendTransmuxer();\n }\n }\n }\n });\n this._transmuxer.on(TransmuxingEvents.LOADING_COMPLETE, () => {\n this._msectl.endOfStream();\n this._emitter.emit(PlayerEvents.LOADING_COMPLETE);\n });\n this._transmuxer.on(TransmuxingEvents.RECOVERED_EARLY_EOF, () => {\n this._emitter.emit(PlayerEvents.RECOVERED_EARLY_EOF);\n });\n this._transmuxer.on(TransmuxingEvents.IO_ERROR, (detail, info) => {\n this._emitter.emit(PlayerEvents.ERROR, ErrorTypes.NETWORK_ERROR, detail, info);\n });\n this._transmuxer.on(TransmuxingEvents.DEMUX_ERROR, (detail, info) => {\n this._emitter.emit(PlayerEvents.ERROR, ErrorTypes.MEDIA_ERROR, detail, {code: -1, msg: info});\n });\n this._transmuxer.on(TransmuxingEvents.MEDIA_INFO, (mediaInfo) => {\n this._mediaInfo = mediaInfo;\n this._emitter.emit(PlayerEvents.MEDIA_INFO, Object.assign({}, mediaInfo));\n });\n this._transmuxer.on(TransmuxingEvents.METADATA_ARRIVED, (metadata) => {\n this._emitter.emit(PlayerEvents.METADATA_ARRIVED, metadata);\n });\n this._transmuxer.on(TransmuxingEvents.SCRIPTDATA_ARRIVED, (data) => {\n this._emitter.emit(PlayerEvents.SCRIPTDATA_ARRIVED, data);\n });\n this._transmuxer.on(TransmuxingEvents.STATISTICS_INFO, (statInfo) => {\n this._statisticsInfo = this._fillStatisticsInfo(statInfo);\n this._emitter.emit(PlayerEvents.STATISTICS_INFO, Object.assign({}, this._statisticsInfo));\n });\n this._transmuxer.on(TransmuxingEvents.RECOMMEND_SEEKPOINT, (milliseconds) => {\n if (this._mediaElement && !this._config.accurateSeek) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = milliseconds / 1000;\n }\n });\n\n this._transmuxer.open();\n }\n\n unload() {\n if (this._mediaElement) {\n this._mediaElement.pause();\n }\n if (this._msectl) {\n this._msectl.seek(0);\n }\n if (this._transmuxer) {\n this._transmuxer.close();\n this._transmuxer.destroy();\n this._transmuxer = null;\n }\n }\n\n play() {\n return this._mediaElement.play();\n }\n\n pause() {\n this._mediaElement.pause();\n }\n\n get type() {\n return this._type;\n }\n\n get buffered() {\n return this._mediaElement.buffered;\n }\n\n get duration() {\n return this._mediaElement.duration;\n }\n\n get volume() {\n return this._mediaElement.volume;\n }\n\n set volume(value) {\n this._mediaElement.volume = value;\n }\n\n get muted() {\n return this._mediaElement.muted;\n }\n\n set muted(muted) {\n this._mediaElement.muted = muted;\n }\n\n get currentTime() {\n if (this._mediaElement) {\n return this._mediaElement.currentTime;\n }\n return 0;\n }\n\n set currentTime(seconds) {\n if (this._mediaElement) {\n this._internalSeek(seconds);\n } else {\n this._pendingSeekTime = seconds;\n }\n }\n\n get mediaInfo() {\n return Object.assign({}, this._mediaInfo);\n }\n\n get statisticsInfo() {\n if (this._statisticsInfo == null) {\n this._statisticsInfo = {};\n }\n this._statisticsInfo = this._fillStatisticsInfo(this._statisticsInfo);\n return Object.assign({}, this._statisticsInfo);\n }\n\n _fillStatisticsInfo(statInfo) {\n statInfo.playerType = this._type;\n\n if (!(this._mediaElement instanceof HTMLVideoElement)) {\n return statInfo;\n }\n\n let hasQualityInfo = true;\n let decoded = 0;\n let dropped = 0;\n\n if (this._mediaElement.getVideoPlaybackQuality) {\n let quality = this._mediaElement.getVideoPlaybackQuality();\n decoded = quality.totalVideoFrames;\n dropped = quality.droppedVideoFrames;\n } else if (this._mediaElement.webkitDecodedFrameCount != undefined) {\n decoded = this._mediaElement.webkitDecodedFrameCount;\n dropped = this._mediaElement.webkitDroppedFrameCount;\n } else {\n hasQualityInfo = false;\n }\n\n if (hasQualityInfo) {\n statInfo.decodedFrames = decoded;\n statInfo.droppedFrames = dropped;\n }\n\n return statInfo;\n }\n\n _onmseUpdateEnd() {\n if (!this._config.lazyLoad || this._config.isLive) {\n return;\n }\n\n let buffered = this._mediaElement.buffered;\n let currentTime = this._mediaElement.currentTime;\n let currentRangeStart = 0;\n let currentRangeEnd = 0;\n\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n if (start <= currentTime && currentTime < end) {\n currentRangeStart = start;\n currentRangeEnd = end;\n break;\n }\n }\n\n if (currentRangeEnd >= currentTime + this._config.lazyLoadMaxDuration && this._progressChecker == null) {\n Log.v(this.TAG, 'Maximum buffering duration exceeded, suspend transmuxing task');\n this._suspendTransmuxer();\n }\n }\n\n _onmseBufferFull() {\n Log.v(this.TAG, 'MSE SourceBuffer is full, suspend transmuxing task');\n if (this._progressChecker == null) {\n this._suspendTransmuxer();\n }\n }\n\n _suspendTransmuxer() {\n if (this._transmuxer) {\n this._transmuxer.pause();\n\n if (this._progressChecker == null) {\n this._progressChecker = window.setInterval(this._checkProgressAndResume.bind(this), 1000);\n }\n }\n }\n\n _checkProgressAndResume() {\n let currentTime = this._mediaElement.currentTime;\n let buffered = this._mediaElement.buffered;\n\n let needResume = false;\n\n for (let i = 0; i < buffered.length; i++) {\n let from = buffered.start(i);\n let to = buffered.end(i);\n if (currentTime >= from && currentTime < to) {\n if (currentTime >= to - this._config.lazyLoadRecoverDuration) {\n needResume = true;\n }\n break;\n }\n }\n\n if (needResume) {\n window.clearInterval(this._progressChecker);\n this._progressChecker = null;\n if (needResume) {\n Log.v(this.TAG, 'Continue loading from paused position');\n this._transmuxer.resume();\n }\n }\n }\n\n _isTimepointBuffered(seconds) {\n let buffered = this._mediaElement.buffered;\n\n for (let i = 0; i < buffered.length; i++) {\n let from = buffered.start(i);\n let to = buffered.end(i);\n if (seconds >= from && seconds < to) {\n return true;\n }\n }\n return false;\n }\n\n _internalSeek(seconds) {\n let directSeek = this._isTimepointBuffered(seconds);\n\n let directSeekBegin = false;\n let directSeekBeginTime = 0;\n\n if (seconds < 1.0 && this._mediaElement.buffered.length > 0) {\n let videoBeginTime = this._mediaElement.buffered.start(0);\n if ((videoBeginTime < 1.0 && seconds < videoBeginTime) || Browser.safari) {\n directSeekBegin = true;\n // also workaround for Safari: Seek to 0 may cause video stuck, use 0.1 to avoid\n directSeekBeginTime = Browser.safari ? 0.1 : videoBeginTime;\n }\n }\n\n if (directSeekBegin) { // seek to video begin, set currentTime directly if beginPTS buffered\n this._requestSetTime = true;\n this._mediaElement.currentTime = directSeekBeginTime;\n } else if (directSeek) { // buffered position\n if (!this._alwaysSeekKeyframe) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = seconds;\n } else {\n let idr = this._msectl.getNearestKeyframe(Math.floor(seconds * 1000));\n this._requestSetTime = true;\n if (idr != null) {\n this._mediaElement.currentTime = idr.dts / 1000;\n } else {\n this._mediaElement.currentTime = seconds;\n }\n }\n if (this._progressChecker != null) {\n this._checkProgressAndResume();\n }\n } else {\n if (this._progressChecker != null) {\n window.clearInterval(this._progressChecker);\n this._progressChecker = null;\n }\n this._msectl.seek(seconds);\n this._transmuxer.seek(Math.floor(seconds * 1000)); // in milliseconds\n // no need to set mediaElement.currentTime if non-accurateSeek,\n // just wait for the recommend_seekpoint callback\n if (this._config.accurateSeek) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = seconds;\n }\n }\n }\n\n _checkAndApplyUnbufferedSeekpoint() {\n if (this._seekpointRecord) {\n if (this._seekpointRecord.recordTime <= this._now() - 100) {\n let target = this._mediaElement.currentTime;\n this._seekpointRecord = null;\n if (!this._isTimepointBuffered(target)) {\n if (this._progressChecker != null) {\n window.clearTimeout(this._progressChecker);\n this._progressChecker = null;\n }\n // .currentTime is consists with .buffered timestamp\n // Chrome/Edge use DTS, while FireFox/Safari use PTS\n this._msectl.seek(target);\n this._transmuxer.seek(Math.floor(target * 1000));\n // set currentTime if accurateSeek, or wait for recommend_seekpoint callback\n if (this._config.accurateSeek) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = target;\n }\n }\n } else {\n window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this), 50);\n }\n }\n }\n\n _checkAndResumeStuckPlayback(stalled) {\n let media = this._mediaElement;\n if (stalled || !this._receivedCanPlay || media.readyState < 2) { // HAVE_CURRENT_DATA\n let buffered = media.buffered;\n if (buffered.length > 0 && media.currentTime < buffered.start(0)) {\n Log.w(this.TAG, `Playback seems stuck at ${media.currentTime}, seek to ${buffered.start(0)}`);\n this._requestSetTime = true;\n this._mediaElement.currentTime = buffered.start(0);\n this._mediaElement.removeEventListener('progress', this.e.onvProgress);\n }\n } else {\n // Playback didn't stuck, remove progress event listener\n this._mediaElement.removeEventListener('progress', this.e.onvProgress);\n }\n }\n\n _onvLoadedMetadata(e) {\n if (this._pendingSeekTime != null) {\n this._mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n }\n }\n\n _onvSeeking(e) { // handle seeking request from browser's progress bar\n let target = this._mediaElement.currentTime;\n let buffered = this._mediaElement.buffered;\n\n if (this._requestSetTime) {\n this._requestSetTime = false;\n return;\n }\n\n if (target < 1.0 && buffered.length > 0) {\n // seek to video begin, set currentTime directly if beginPTS buffered\n let videoBeginTime = buffered.start(0);\n if ((videoBeginTime < 1.0 && target < videoBeginTime) || Browser.safari) {\n this._requestSetTime = true;\n // also workaround for Safari: Seek to 0 may cause video stuck, use 0.1 to avoid\n this._mediaElement.currentTime = Browser.safari ? 0.1 : videoBeginTime;\n return;\n }\n }\n\n if (this._isTimepointBuffered(target)) {\n if (this._alwaysSeekKeyframe) {\n let idr = this._msectl.getNearestKeyframe(Math.floor(target * 1000));\n if (idr != null) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = idr.dts / 1000;\n }\n }\n if (this._progressChecker != null) {\n this._checkProgressAndResume();\n }\n return;\n }\n\n this._seekpointRecord = {\n seekPoint: target,\n recordTime: this._now()\n };\n window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this), 50);\n }\n\n _onvCanPlay(e) {\n this._receivedCanPlay = true;\n this._mediaElement.removeEventListener('canplay', this.e.onvCanPlay);\n }\n\n _onvStalled(e) {\n this._checkAndResumeStuckPlayback(true);\n }\n\n _onvProgress(e) {\n this._checkAndResumeStuckPlayback();\n }\n\n}\n\nexport default FlvPlayer;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport EventEmitter from 'events';\nimport PlayerEvents from './player-events.js';\nimport {createDefaultConfig} from '../config.js';\nimport {InvalidArgumentException, IllegalStateException} from '../utils/exception.js';\n\n// Player wrapper for browser's native player (HTMLVideoElement) without MediaSource src. \nclass NativePlayer {\n\n constructor(mediaDataSource, config) {\n this.TAG = 'NativePlayer';\n this._type = 'NativePlayer';\n this._emitter = new EventEmitter();\n\n this._config = createDefaultConfig();\n if (typeof config === 'object') {\n Object.assign(this._config, config);\n }\n\n if (mediaDataSource.type.toLowerCase() === 'flv') {\n throw new InvalidArgumentException('NativePlayer does\\'t support flv MediaDataSource input!');\n }\n if (mediaDataSource.hasOwnProperty('segments')) {\n throw new InvalidArgumentException(`NativePlayer(${mediaDataSource.type}) doesn't support multipart playback!`);\n }\n\n this.e = {\n onvLoadedMetadata: this._onvLoadedMetadata.bind(this)\n };\n\n this._pendingSeekTime = null;\n this._statisticsReporter = null;\n\n this._mediaDataSource = mediaDataSource;\n this._mediaElement = null;\n }\n\n destroy() {\n if (this._mediaElement) {\n this.unload();\n this.detachMediaElement();\n }\n this.e = null;\n this._mediaDataSource = null;\n this._emitter.removeAllListeners();\n this._emitter = null;\n }\n\n on(event, listener) {\n if (event === PlayerEvents.MEDIA_INFO) {\n if (this._mediaElement != null && this._mediaElement.readyState !== 0) { // HAVE_NOTHING\n Promise.resolve().then(() => {\n this._emitter.emit(PlayerEvents.MEDIA_INFO, this.mediaInfo);\n });\n }\n } else if (event === PlayerEvents.STATISTICS_INFO) {\n if (this._mediaElement != null && this._mediaElement.readyState !== 0) {\n Promise.resolve().then(() => {\n this._emitter.emit(PlayerEvents.STATISTICS_INFO, this.statisticsInfo);\n });\n }\n }\n this._emitter.addListener(event, listener);\n }\n\n off(event, listener) {\n this._emitter.removeListener(event, listener);\n }\n\n attachMediaElement(mediaElement) {\n this._mediaElement = mediaElement;\n mediaElement.addEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n\n if (this._pendingSeekTime != null) {\n try {\n mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n } catch (e) {\n // IE11 may throw InvalidStateError if readyState === 0\n // Defer set currentTime operation after loadedmetadata\n }\n }\n }\n\n detachMediaElement() {\n if (this._mediaElement) {\n this._mediaElement.src = '';\n this._mediaElement.removeAttribute('src');\n this._mediaElement.removeEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n this._mediaElement = null;\n }\n if (this._statisticsReporter != null) {\n window.clearInterval(this._statisticsReporter);\n this._statisticsReporter = null;\n }\n }\n\n load() {\n if (!this._mediaElement) {\n throw new IllegalStateException('HTMLMediaElement must be attached before load()!');\n }\n this._mediaElement.src = this._mediaDataSource.url;\n\n if (this._mediaElement.readyState > 0) {\n this._mediaElement.currentTime = 0;\n }\n\n this._mediaElement.preload = 'auto';\n this._mediaElement.load();\n this._statisticsReporter = window.setInterval(\n this._reportStatisticsInfo.bind(this),\n this._config.statisticsInfoReportInterval);\n }\n\n unload() {\n if (this._mediaElement) {\n this._mediaElement.src = '';\n this._mediaElement.removeAttribute('src');\n }\n if (this._statisticsReporter != null) {\n window.clearInterval(this._statisticsReporter);\n this._statisticsReporter = null;\n }\n }\n\n play() {\n return this._mediaElement.play();\n }\n\n pause() {\n this._mediaElement.pause();\n }\n\n get type() {\n return this._type;\n }\n\n get buffered() {\n return this._mediaElement.buffered;\n }\n\n get duration() {\n return this._mediaElement.duration;\n }\n\n get volume() {\n return this._mediaElement.volume;\n }\n\n set volume(value) {\n this._mediaElement.volume = value;\n }\n\n get muted() {\n return this._mediaElement.muted;\n }\n\n set muted(muted) {\n this._mediaElement.muted = muted;\n }\n\n get currentTime() {\n if (this._mediaElement) {\n return this._mediaElement.currentTime;\n }\n return 0;\n }\n\n set currentTime(seconds) {\n if (this._mediaElement) {\n this._mediaElement.currentTime = seconds;\n } else {\n this._pendingSeekTime = seconds;\n }\n }\n\n get mediaInfo() {\n let mediaPrefix = (this._mediaElement instanceof HTMLAudioElement) ? 'audio/' : 'video/';\n let info = {\n mimeType: mediaPrefix + this._mediaDataSource.type\n };\n if (this._mediaElement) {\n info.duration = Math.floor(this._mediaElement.duration * 1000);\n if (this._mediaElement instanceof HTMLVideoElement) {\n info.width = this._mediaElement.videoWidth;\n info.height = this._mediaElement.videoHeight;\n }\n }\n return info;\n }\n\n get statisticsInfo() {\n let info = {\n playerType: this._type,\n url: this._mediaDataSource.url\n };\n\n if (!(this._mediaElement instanceof HTMLVideoElement)) {\n return info;\n }\n\n let hasQualityInfo = true;\n let decoded = 0;\n let dropped = 0;\n\n if (this._mediaElement.getVideoPlaybackQuality) {\n let quality = this._mediaElement.getVideoPlaybackQuality();\n decoded = quality.totalVideoFrames;\n dropped = quality.droppedVideoFrames;\n } else if (this._mediaElement.webkitDecodedFrameCount != undefined) {\n decoded = this._mediaElement.webkitDecodedFrameCount;\n dropped = this._mediaElement.webkitDroppedFrameCount;\n } else {\n hasQualityInfo = false;\n }\n\n if (hasQualityInfo) {\n info.decodedFrames = decoded;\n info.droppedFrames = dropped;\n }\n \n return info;\n }\n\n _onvLoadedMetadata(e) {\n if (this._pendingSeekTime != null) {\n this._mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n }\n this._emitter.emit(PlayerEvents.MEDIA_INFO, this.mediaInfo);\n }\n\n _reportStatisticsInfo() {\n this._emitter.emit(PlayerEvents.STATISTICS_INFO, this.statisticsInfo);\n }\n\n}\n\nexport default NativePlayer;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {LoaderErrors} from '../io/loader.js';\nimport DemuxErrors from '../demux/demux-errors.js';\n\nexport const ErrorTypes = {\n NETWORK_ERROR: 'NetworkError',\n MEDIA_ERROR: 'MediaError',\n OTHER_ERROR: 'OtherError'\n};\n\nexport const ErrorDetails = {\n NETWORK_EXCEPTION: LoaderErrors.EXCEPTION,\n NETWORK_STATUS_CODE_INVALID: LoaderErrors.HTTP_STATUS_CODE_INVALID,\n NETWORK_TIMEOUT: LoaderErrors.CONNECTING_TIMEOUT,\n NETWORK_UNRECOVERABLE_EARLY_EOF: LoaderErrors.UNRECOVERABLE_EARLY_EOF,\n\n MEDIA_MSE_ERROR: 'MediaMSEError',\n\n MEDIA_FORMAT_ERROR: DemuxErrors.FORMAT_ERROR,\n MEDIA_FORMAT_UNSUPPORTED: DemuxErrors.FORMAT_UNSUPPORTED,\n MEDIA_CODEC_UNSUPPORTED: DemuxErrors.CODEC_UNSUPPORTED\n};","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst PlayerEvents = {\n ERROR: 'error',\n LOADING_COMPLETE: 'loading_complete',\n RECOVERED_EARLY_EOF: 'recovered_early_eof',\n MEDIA_INFO: 'media_info',\n METADATA_ARRIVED: 'metadata_arrived',\n SCRIPTDATA_ARRIVED: 'scriptdata_arrived',\n STATISTICS_INFO: 'statistics_info'\n};\n\nexport default PlayerEvents;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * This file is modified from dailymotion's hls.js library (hls.js/src/helper/aac.js)\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass AAC {\n\n static getSilentFrame(codec, channelCount) {\n if (codec === 'mp4a.40.2') {\n // handle LC-AAC\n if (channelCount === 1) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x23, 0x80]);\n } else if (channelCount === 2) {\n return new Uint8Array([0x21, 0x00, 0x49, 0x90, 0x02, 0x19, 0x00, 0x23, 0x80]);\n } else if (channelCount === 3) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x8e]);\n } else if (channelCount === 4) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x80, 0x2c, 0x80, 0x08, 0x02, 0x38]);\n } else if (channelCount === 5) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x38]);\n } else if (channelCount === 6) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x00, 0xb2, 0x00, 0x20, 0x08, 0xe0]);\n }\n } else {\n // handle HE-AAC (mp4a.40.5 / mp4a.40.29)\n if (channelCount === 1) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0:d=0.05\" -c:a libfdk_aac -profile:a aac_he -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x4e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x1c, 0x6, 0xf1, 0xc1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 2) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 3) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n }\n }\n return null;\n }\n\n}\n\nexport default AAC;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * This file is derived from dailymotion's hls.js library (hls.js/src/remux/mp4-generator.js)\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// MP4 boxes generator for ISO BMFF (ISO Base Media File Format, defined in ISO/IEC 14496-12)\nclass MP4 {\n\n static init() {\n MP4.types = {\n avc1: [], avcC: [], btrt: [], dinf: [],\n dref: [], esds: [], ftyp: [], hdlr: [],\n mdat: [], mdhd: [], mdia: [], mfhd: [],\n minf: [], moof: [], moov: [], mp4a: [],\n mvex: [], mvhd: [], sdtp: [], stbl: [],\n stco: [], stsc: [], stsd: [], stsz: [],\n stts: [], tfdt: [], tfhd: [], traf: [],\n trak: [], trun: [], trex: [], tkhd: [],\n vmhd: [], smhd: [], '.mp3': []\n };\n\n for (let name in MP4.types) {\n if (MP4.types.hasOwnProperty(name)) {\n MP4.types[name] = [\n name.charCodeAt(0),\n name.charCodeAt(1),\n name.charCodeAt(2),\n name.charCodeAt(3)\n ];\n }\n }\n\n let constants = MP4.constants = {};\n\n constants.FTYP = new Uint8Array([\n 0x69, 0x73, 0x6F, 0x6D, // major_brand: isom\n 0x0, 0x0, 0x0, 0x1, // minor_version: 0x01\n 0x69, 0x73, 0x6F, 0x6D, // isom\n 0x61, 0x76, 0x63, 0x31 // avc1\n ]);\n\n constants.STSD_PREFIX = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x01 // entry_count\n ]);\n\n constants.STTS = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n\n constants.STSC = constants.STCO = constants.STTS;\n\n constants.STSZ = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // sample_size\n 0x00, 0x00, 0x00, 0x00 // sample_count\n ]);\n\n constants.HDLR_VIDEO = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x76, 0x69, 0x64, 0x65, // handler_type: 'vide'\n 0x00, 0x00, 0x00, 0x00, // reserved: 3 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x56, 0x69, 0x64, 0x65,\n 0x6F, 0x48, 0x61, 0x6E,\n 0x64, 0x6C, 0x65, 0x72, 0x00 // name: VideoHandler\n ]);\n\n constants.HDLR_AUDIO = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x73, 0x6F, 0x75, 0x6E, // handler_type: 'soun'\n 0x00, 0x00, 0x00, 0x00, // reserved: 3 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x53, 0x6F, 0x75, 0x6E,\n 0x64, 0x48, 0x61, 0x6E,\n 0x64, 0x6C, 0x65, 0x72, 0x00 // name: SoundHandler\n ]);\n\n constants.DREF = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x01, // entry_count\n 0x00, 0x00, 0x00, 0x0C, // entry_size\n 0x75, 0x72, 0x6C, 0x20, // type 'url '\n 0x00, 0x00, 0x00, 0x01 // version(0) + flags\n ]);\n\n // Sound media header\n constants.SMHD = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00 // balance(2) + reserved(2)\n ]);\n\n // video media header\n constants.VMHD = new Uint8Array([\n 0x00, 0x00, 0x00, 0x01, // version(0) + flags\n 0x00, 0x00, // graphicsmode: 2 bytes\n 0x00, 0x00, 0x00, 0x00, // opcolor: 3 * 2 bytes\n 0x00, 0x00\n ]);\n }\n\n // Generate a box\n static box(type) {\n let size = 8;\n let result = null;\n let datas = Array.prototype.slice.call(arguments, 1);\n let arrayCount = datas.length;\n\n for (let i = 0; i < arrayCount; i++) {\n size += datas[i].byteLength;\n }\n\n result = new Uint8Array(size);\n result[0] = (size >>> 24) & 0xFF; // size\n result[1] = (size >>> 16) & 0xFF;\n result[2] = (size >>> 8) & 0xFF;\n result[3] = (size) & 0xFF;\n\n result.set(type, 4); // type\n\n let offset = 8;\n for (let i = 0; i < arrayCount; i++) { // data body\n result.set(datas[i], offset);\n offset += datas[i].byteLength;\n }\n\n return result;\n }\n\n // emit ftyp & moov\n static generateInitSegment(meta) {\n let ftyp = MP4.box(MP4.types.ftyp, MP4.constants.FTYP);\n let moov = MP4.moov(meta);\n\n let result = new Uint8Array(ftyp.byteLength + moov.byteLength);\n result.set(ftyp, 0);\n result.set(moov, ftyp.byteLength);\n return result;\n }\n\n // Movie metadata box\n static moov(meta) {\n let mvhd = MP4.mvhd(meta.timescale, meta.duration);\n let trak = MP4.trak(meta);\n let mvex = MP4.mvex(meta);\n return MP4.box(MP4.types.moov, mvhd, trak, mvex);\n }\n\n // Movie header box\n static mvhd(timescale, duration) {\n return MP4.box(MP4.types.mvhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (timescale >>> 24) & 0xFF, // timescale: 4 bytes\n (timescale >>> 16) & 0xFF,\n (timescale >>> 8) & 0xFF,\n (timescale) & 0xFF,\n (duration >>> 24) & 0xFF, // duration: 4 bytes\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x00, 0x01, 0x00, 0x00, // Preferred rate: 1.0\n 0x01, 0x00, 0x00, 0x00, // PreferredVolume(1.0, 2bytes) + reserved(2bytes)\n 0x00, 0x00, 0x00, 0x00, // reserved: 4 + 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00, // ----begin composition matrix----\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00, // ----end composition matrix----\n 0x00, 0x00, 0x00, 0x00, // ----begin pre_defined 6 * 4 bytes----\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // ----end pre_defined 6 * 4 bytes----\n 0xFF, 0xFF, 0xFF, 0xFF // next_track_ID\n ]));\n }\n\n // Track box\n static trak(meta) {\n return MP4.box(MP4.types.trak, MP4.tkhd(meta), MP4.mdia(meta));\n }\n\n // Track header box\n static tkhd(meta) {\n let trackId = meta.id, duration = meta.duration;\n let width = meta.presentWidth, height = meta.presentHeight;\n\n return MP4.box(MP4.types.tkhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x07, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (trackId >>> 24) & 0xFF, // track_ID: 4 bytes\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF,\n 0x00, 0x00, 0x00, 0x00, // reserved: 4 bytes\n (duration >>> 24) & 0xFF, // duration: 4 bytes\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // layer(2bytes) + alternate_group(2bytes)\n 0x00, 0x00, 0x00, 0x00, // volume(2bytes) + reserved(2bytes)\n 0x00, 0x01, 0x00, 0x00, // ----begin composition matrix----\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00, // ----end composition matrix----\n (width >>> 8) & 0xFF, // width and height\n (width) & 0xFF,\n 0x00, 0x00,\n (height >>> 8) & 0xFF,\n (height) & 0xFF,\n 0x00, 0x00\n ]));\n }\n\n // Media Box\n static mdia(meta) {\n return MP4.box(MP4.types.mdia, MP4.mdhd(meta), MP4.hdlr(meta), MP4.minf(meta));\n }\n\n // Media header box\n static mdhd(meta) {\n let timescale = meta.timescale;\n let duration = meta.duration;\n return MP4.box(MP4.types.mdhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n 0x00, 0x00, 0x00, 0x00, // creation_time\n 0x00, 0x00, 0x00, 0x00, // modification_time\n (timescale >>> 24) & 0xFF, // timescale: 4 bytes\n (timescale >>> 16) & 0xFF,\n (timescale >>> 8) & 0xFF,\n (timescale) & 0xFF,\n (duration >>> 24) & 0xFF, // duration: 4 bytes\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x55, 0xC4, // language: und (undetermined)\n 0x00, 0x00 // pre_defined = 0\n ]));\n }\n\n // Media handler reference box\n static hdlr(meta) {\n let data = null;\n if (meta.type === 'audio') {\n data = MP4.constants.HDLR_AUDIO;\n } else {\n data = MP4.constants.HDLR_VIDEO;\n }\n return MP4.box(MP4.types.hdlr, data);\n }\n\n // Media infomation box\n static minf(meta) {\n let xmhd = null;\n if (meta.type === 'audio') {\n xmhd = MP4.box(MP4.types.smhd, MP4.constants.SMHD);\n } else {\n xmhd = MP4.box(MP4.types.vmhd, MP4.constants.VMHD);\n }\n return MP4.box(MP4.types.minf, xmhd, MP4.dinf(), MP4.stbl(meta));\n }\n\n // Data infomation box\n static dinf() {\n let result = MP4.box(MP4.types.dinf,\n MP4.box(MP4.types.dref, MP4.constants.DREF)\n );\n return result;\n }\n\n // Sample table box\n static stbl(meta) {\n let result = MP4.box(MP4.types.stbl, // type: stbl\n MP4.stsd(meta), // Sample Description Table\n MP4.box(MP4.types.stts, MP4.constants.STTS), // Time-To-Sample\n MP4.box(MP4.types.stsc, MP4.constants.STSC), // Sample-To-Chunk\n MP4.box(MP4.types.stsz, MP4.constants.STSZ), // Sample size\n MP4.box(MP4.types.stco, MP4.constants.STCO) // Chunk offset\n ); \n return result; \n }\n\n // Sample description box\n static stsd(meta) {\n if (meta.type === 'audio') {\n if (meta.codec === 'mp3') {\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.mp3(meta));\n }\n // else: aac -> mp4a\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.mp4a(meta));\n } else {\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.avc1(meta));\n }\n }\n\n static mp3(meta) {\n let channelCount = meta.channelCount;\n let sampleRate = meta.audioSampleRate;\n\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n 0x00, 0x00, 0x00, 0x01, // reserved(2) + data_reference_index(2)\n 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, channelCount, // channelCount(2)\n 0x00, 0x10, // sampleSize(2)\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n (sampleRate >>> 8) & 0xFF, // Audio sample rate\n (sampleRate) & 0xFF,\n 0x00, 0x00\n ]);\n\n return MP4.box(MP4.types['.mp3'], data);\n }\n\n static mp4a(meta) {\n let channelCount = meta.channelCount;\n let sampleRate = meta.audioSampleRate;\n\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n 0x00, 0x00, 0x00, 0x01, // reserved(2) + data_reference_index(2)\n 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, channelCount, // channelCount(2)\n 0x00, 0x10, // sampleSize(2)\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n (sampleRate >>> 8) & 0xFF, // Audio sample rate\n (sampleRate) & 0xFF,\n 0x00, 0x00\n ]);\n\n return MP4.box(MP4.types.mp4a, data, MP4.esds(meta));\n }\n\n static esds(meta) {\n let config = meta.config || [];\n let configSize = config.length;\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version 0 + flags\n\n 0x03, // descriptor_type\n 0x17 + configSize, // length3\n 0x00, 0x01, // es_id\n 0x00, // stream_priority\n\n 0x04, // descriptor_type\n 0x0F + configSize, // length\n 0x40, // codec: mpeg4_audio\n 0x15, // stream_type: Audio\n 0x00, 0x00, 0x00, // buffer_size\n 0x00, 0x00, 0x00, 0x00, // maxBitrate\n 0x00, 0x00, 0x00, 0x00, // avgBitrate\n\n 0x05 // descriptor_type\n ].concat([\n configSize\n ]).concat(\n config\n ).concat([\n 0x06, 0x01, 0x02 // GASpecificConfig\n ]));\n return MP4.box(MP4.types.esds, data);\n }\n\n static avc1(meta) {\n let avcc = meta.avcc;\n let width = meta.codecWidth, height = meta.codecHeight;\n\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // reserved(4)\n 0x00, 0x00, 0x00, 0x01, // reserved(2) + data_reference_index(2)\n 0x00, 0x00, 0x00, 0x00, // pre_defined(2) + reserved(2)\n 0x00, 0x00, 0x00, 0x00, // pre_defined: 3 * 4 bytes\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n (width >>> 8) & 0xFF, // width: 2 bytes\n (width) & 0xFF,\n (height >>> 8) & 0xFF, // height: 2 bytes\n (height) & 0xFF,\n 0x00, 0x48, 0x00, 0x00, // horizresolution: 4 bytes\n 0x00, 0x48, 0x00, 0x00, // vertresolution: 4 bytes\n 0x00, 0x00, 0x00, 0x00, // reserved: 4 bytes\n 0x00, 0x01, // frame_count\n 0x0A, // strlen\n 0x78, 0x71, 0x71, 0x2F, // compressorname: 32 bytes\n 0x66, 0x6C, 0x76, 0x2E,\n 0x6A, 0x73, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00,\n 0x00, 0x18, // depth\n 0xFF, 0xFF // pre_defined = -1\n ]);\n return MP4.box(MP4.types.avc1, data, MP4.box(MP4.types.avcC, avcc));\n }\n\n // Movie Extends box\n static mvex(meta) {\n return MP4.box(MP4.types.mvex, MP4.trex(meta));\n }\n\n // Track Extends box\n static trex(meta) {\n let trackId = meta.id;\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) + flags\n (trackId >>> 24) & 0xFF, // track_ID\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF,\n 0x00, 0x00, 0x00, 0x01, // default_sample_description_index\n 0x00, 0x00, 0x00, 0x00, // default_sample_duration\n 0x00, 0x00, 0x00, 0x00, // default_sample_size\n 0x00, 0x01, 0x00, 0x01 // default_sample_flags\n ]);\n return MP4.box(MP4.types.trex, data);\n }\n\n // Movie fragment box\n static moof(track, baseMediaDecodeTime) {\n return MP4.box(MP4.types.moof, MP4.mfhd(track.sequenceNumber), MP4.traf(track, baseMediaDecodeTime));\n }\n\n static mfhd(sequenceNumber) {\n let data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n (sequenceNumber >>> 24) & 0xFF, // sequence_number: int32\n (sequenceNumber >>> 16) & 0xFF,\n (sequenceNumber >>> 8) & 0xFF,\n (sequenceNumber) & 0xFF\n ]);\n return MP4.box(MP4.types.mfhd, data);\n }\n\n // Track fragment box\n static traf(track, baseMediaDecodeTime) {\n let trackId = track.id;\n\n // Track fragment header box\n let tfhd = MP4.box(MP4.types.tfhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) & flags\n (trackId >>> 24) & 0xFF, // track_ID\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF\n ]));\n // Track Fragment Decode Time\n let tfdt = MP4.box(MP4.types.tfdt, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00, // version(0) & flags\n (baseMediaDecodeTime >>> 24) & 0xFF, // baseMediaDecodeTime: int32\n (baseMediaDecodeTime >>> 16) & 0xFF,\n (baseMediaDecodeTime >>> 8) & 0xFF,\n (baseMediaDecodeTime) & 0xFF\n ]));\n let sdtp = MP4.sdtp(track);\n let trun = MP4.trun(track, sdtp.byteLength + 16 + 16 + 8 + 16 + 8 + 8);\n\n return MP4.box(MP4.types.traf, tfhd, tfdt, trun, sdtp);\n }\n\n // Sample Dependency Type box\n static sdtp(track) {\n let samples = track.samples || [];\n let sampleCount = samples.length;\n let data = new Uint8Array(4 + sampleCount);\n // 0~4 bytes: version(0) & flags\n for (let i = 0; i < sampleCount; i++) {\n let flags = samples[i].flags;\n data[i + 4] = (flags.isLeading << 6) // is_leading: 2 (bit)\n | (flags.dependsOn << 4) // sample_depends_on\n | (flags.isDependedOn << 2) // sample_is_depended_on\n | (flags.hasRedundancy); // sample_has_redundancy\n }\n return MP4.box(MP4.types.sdtp, data);\n }\n\n // Track fragment run box\n static trun(track, offset) {\n let samples = track.samples || [];\n let sampleCount = samples.length;\n let dataSize = 12 + 16 * sampleCount;\n let data = new Uint8Array(dataSize);\n offset += 8 + dataSize;\n\n data.set([\n 0x00, 0x00, 0x0F, 0x01, // version(0) & flags\n (sampleCount >>> 24) & 0xFF, // sample_count\n (sampleCount >>> 16) & 0xFF,\n (sampleCount >>> 8) & 0xFF,\n (sampleCount) & 0xFF,\n (offset >>> 24) & 0xFF, // data_offset\n (offset >>> 16) & 0xFF,\n (offset >>> 8) & 0xFF,\n (offset) & 0xFF\n ], 0);\n\n for (let i = 0; i < sampleCount; i++) {\n let duration = samples[i].duration;\n let size = samples[i].size;\n let flags = samples[i].flags;\n let cts = samples[i].cts;\n data.set([\n (duration >>> 24) & 0xFF, // sample_duration\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n (size >>> 24) & 0xFF, // sample_size\n (size >>> 16) & 0xFF,\n (size >>> 8) & 0xFF,\n (size) & 0xFF,\n (flags.isLeading << 2) | flags.dependsOn, // sample_flags\n (flags.isDependedOn << 6) | (flags.hasRedundancy << 4) | flags.isNonSync,\n 0x00, 0x00, // sample_degradation_priority\n (cts >>> 24) & 0xFF, // sample_composition_time_offset\n (cts >>> 16) & 0xFF,\n (cts >>> 8) & 0xFF,\n (cts) & 0xFF\n ], 12 + 16 * i);\n }\n return MP4.box(MP4.types.trun, data);\n }\n\n static mdat(data) {\n return MP4.box(MP4.types.mdat, data);\n }\n\n}\n\nMP4.init();\n\nexport default MP4;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Log from '../utils/logger.js';\nimport MP4 from './mp4-generator.js';\nimport AAC from './aac-silent.js';\nimport Browser from '../utils/browser.js';\nimport { SampleInfo, MediaSegmentInfo, MediaSegmentInfoList } from '../core/media-segment-info.js';\nimport { IllegalStateException } from '../utils/exception.js';\n\n\n// Fragmented mp4 remuxer\nclass MP4Remuxer {\n\n constructor(config) {\n this.TAG = 'MP4Remuxer';\n\n this._config = config;\n this._isLive = (config.isLive === true) ? true : false;\n\n this._dtsBase = -1;\n this._dtsBaseInited = false;\n this._audioDtsBase = Infinity;\n this._videoDtsBase = Infinity;\n this._audioNextDts = undefined;\n this._videoNextDts = undefined;\n this._audioStashedLastSample = null;\n this._videoStashedLastSample = null;\n\n this._audioMeta = null;\n this._videoMeta = null;\n\n this._audioSegmentInfoList = new MediaSegmentInfoList('audio');\n this._videoSegmentInfoList = new MediaSegmentInfoList('video');\n\n this._onInitSegment = null;\n this._onMediaSegment = null;\n\n // Workaround for chrome < 50: Always force first sample as a Random Access Point in media segment\n // see https://bugs.chromium.org/p/chromium/issues/detail?id=229412\n this._forceFirstIDR = (Browser.chrome &&\n (Browser.version.major < 50 ||\n (Browser.version.major === 50 && Browser.version.build < 2661))) ? true : false;\n\n // Workaround for IE11/Edge: Fill silent aac frame after keyframe-seeking\n // Make audio beginDts equals with video beginDts, in order to fix seek freeze\n this._fillSilentAfterSeek = (Browser.msedge || Browser.msie);\n\n // While only FireFox supports 'audio/mp4, codecs=\"mp3\"', use 'audio/mpeg' for chrome, safari, ...\n this._mp3UseMpegAudio = !Browser.firefox;\n\n this._fillAudioTimestampGap = this._config.fixAudioTimestampGap;\n }\n\n destroy() {\n this._dtsBase = -1;\n this._dtsBaseInited = false;\n this._audioMeta = null;\n this._videoMeta = null;\n this._audioSegmentInfoList.clear();\n this._audioSegmentInfoList = null;\n this._videoSegmentInfoList.clear();\n this._videoSegmentInfoList = null;\n this._onInitSegment = null;\n this._onMediaSegment = null;\n }\n\n bindDataSource(producer) {\n producer.onDataAvailable = this.remux.bind(this);\n producer.onTrackMetadata = this._onTrackMetadataReceived.bind(this);\n return this;\n }\n\n /* prototype: function onInitSegment(type: string, initSegment: ArrayBuffer): void\n InitSegment: {\n type: string,\n data: ArrayBuffer,\n codec: string,\n container: string\n }\n */\n get onInitSegment() {\n return this._onInitSegment;\n }\n\n set onInitSegment(callback) {\n this._onInitSegment = callback;\n }\n\n /* prototype: function onMediaSegment(type: string, mediaSegment: MediaSegment): void\n MediaSegment: {\n type: string,\n data: ArrayBuffer,\n sampleCount: int32\n info: MediaSegmentInfo\n }\n */\n get onMediaSegment() {\n return this._onMediaSegment;\n }\n\n set onMediaSegment(callback) {\n this._onMediaSegment = callback;\n }\n\n insertDiscontinuity() {\n this._audioNextDts = this._videoNextDts = undefined;\n }\n\n seek(originalDts) {\n this._audioStashedLastSample = null;\n this._videoStashedLastSample = null;\n this._videoSegmentInfoList.clear();\n this._audioSegmentInfoList.clear();\n }\n\n remux(audioTrack, videoTrack) {\n if (!this._onMediaSegment) {\n throw new IllegalStateException('MP4Remuxer: onMediaSegment callback must be specificed!');\n }\n if (!this._dtsBaseInited) {\n this._calculateDtsBase(audioTrack, videoTrack);\n }\n this._remuxVideo(videoTrack);\n this._remuxAudio(audioTrack);\n }\n\n _onTrackMetadataReceived(type, metadata) {\n let metabox = null;\n\n let container = 'mp4';\n let codec = metadata.codec;\n\n if (type === 'audio') {\n this._audioMeta = metadata;\n if (metadata.codec === 'mp3' && this._mp3UseMpegAudio) {\n // 'audio/mpeg' for MP3 audio track\n container = 'mpeg';\n codec = '';\n metabox = new Uint8Array();\n } else {\n // 'audio/mp4, codecs=\"codec\"'\n metabox = MP4.generateInitSegment(metadata);\n }\n } else if (type === 'video') {\n this._videoMeta = metadata;\n metabox = MP4.generateInitSegment(metadata);\n } else {\n return;\n }\n\n // dispatch metabox (Initialization Segment)\n if (!this._onInitSegment) {\n throw new IllegalStateException('MP4Remuxer: onInitSegment callback must be specified!');\n }\n this._onInitSegment(type, {\n type: type,\n data: metabox.buffer,\n codec: codec,\n container: `${type}/${container}`,\n mediaDuration: metadata.duration // in timescale 1000 (milliseconds)\n });\n }\n\n _calculateDtsBase(audioTrack, videoTrack) {\n if (this._dtsBaseInited) {\n return;\n }\n\n if (audioTrack.samples && audioTrack.samples.length) {\n this._audioDtsBase = audioTrack.samples[0].dts;\n }\n if (videoTrack.samples && videoTrack.samples.length) {\n this._videoDtsBase = videoTrack.samples[0].dts;\n }\n\n this._dtsBase = Math.min(this._audioDtsBase, this._videoDtsBase);\n this._dtsBaseInited = true;\n }\n\n flushStashedSamples() {\n let videoSample = this._videoStashedLastSample;\n let audioSample = this._audioStashedLastSample;\n\n let videoTrack = {\n type: 'video',\n id: 1,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n\n if (videoSample != null) {\n videoTrack.samples.push(videoSample);\n videoTrack.length = videoSample.length;\n }\n\n let audioTrack = {\n type: 'audio',\n id: 2,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n\n if (audioSample != null) {\n audioTrack.samples.push(audioSample);\n audioTrack.length = audioSample.length;\n }\n\n this._videoStashedLastSample = null;\n this._audioStashedLastSample = null;\n\n this._remuxVideo(videoTrack, true);\n this._remuxAudio(audioTrack, true);\n }\n\n _remuxAudio(audioTrack, force) {\n if (this._audioMeta == null) {\n return;\n }\n\n let track = audioTrack;\n let samples = track.samples;\n let dtsCorrection = undefined;\n let firstDts = -1, lastDts = -1, lastPts = -1;\n let refSampleDuration = this._audioMeta.refSampleDuration;\n\n let mpegRawTrack = this._audioMeta.codec === 'mp3' && this._mp3UseMpegAudio;\n let firstSegmentAfterSeek = this._dtsBaseInited && this._audioNextDts === undefined;\n\n let insertPrefixSilentFrame = false;\n\n if (!samples || samples.length === 0) {\n return;\n }\n if (samples.length === 1 && !force) {\n // If [sample count in current batch] === 1 && (force != true)\n // Ignore and keep in demuxer's queue\n return;\n } // else if (force === true) do remux\n\n let offset = 0;\n let mdatbox = null;\n let mdatBytes = 0;\n\n // calculate initial mdat size\n if (mpegRawTrack) {\n // for raw mpeg buffer\n offset = 0;\n mdatBytes = track.length;\n } else {\n // for fmp4 mdat box\n offset = 8; // size + type\n mdatBytes = 8 + track.length;\n }\n\n\n let lastSample = null;\n\n // Pop the lastSample and waiting for stash\n if (samples.length > 1) {\n lastSample = samples.pop();\n mdatBytes -= lastSample.length;\n }\n\n // Insert [stashed lastSample in the previous batch] to the front\n if (this._audioStashedLastSample != null) {\n let sample = this._audioStashedLastSample;\n this._audioStashedLastSample = null;\n samples.unshift(sample);\n mdatBytes += sample.length;\n }\n\n // Stash the lastSample of current batch, waiting for next batch\n if (lastSample != null) {\n this._audioStashedLastSample = lastSample;\n }\n\n\n let firstSampleOriginalDts = samples[0].dts - this._dtsBase;\n\n // calculate dtsCorrection\n if (this._audioNextDts) {\n dtsCorrection = firstSampleOriginalDts - this._audioNextDts;\n } else { // this._audioNextDts == undefined\n if (this._audioSegmentInfoList.isEmpty()) {\n dtsCorrection = 0;\n if (this._fillSilentAfterSeek && !this._videoSegmentInfoList.isEmpty()) {\n if (this._audioMeta.originalCodec !== 'mp3') {\n insertPrefixSilentFrame = true;\n }\n }\n } else {\n let lastSample = this._audioSegmentInfoList.getLastSampleBefore(firstSampleOriginalDts);\n if (lastSample != null) {\n let distance = (firstSampleOriginalDts - (lastSample.originalDts + lastSample.duration));\n if (distance <= 3) {\n distance = 0;\n }\n let expectedDts = lastSample.dts + lastSample.duration + distance;\n dtsCorrection = firstSampleOriginalDts - expectedDts;\n } else { // lastSample == null, cannot found\n dtsCorrection = 0;\n }\n }\n }\n\n if (insertPrefixSilentFrame) {\n // align audio segment beginDts to match with current video segment's beginDts\n let firstSampleDts = firstSampleOriginalDts - dtsCorrection;\n let videoSegment = this._videoSegmentInfoList.getLastSegmentBefore(firstSampleOriginalDts);\n if (videoSegment != null && videoSegment.beginDts < firstSampleDts) {\n let silentUnit = AAC.getSilentFrame(this._audioMeta.originalCodec, this._audioMeta.channelCount);\n if (silentUnit) {\n let dts = videoSegment.beginDts;\n let silentFrameDuration = firstSampleDts - videoSegment.beginDts;\n Log.v(this.TAG, `InsertPrefixSilentAudio: dts: ${dts}, duration: ${silentFrameDuration}`);\n samples.unshift({ unit: silentUnit, dts: dts, pts: dts });\n mdatBytes += silentUnit.byteLength;\n } // silentUnit == null: Cannot generate, skip\n } else {\n insertPrefixSilentFrame = false;\n }\n }\n\n let mp4Samples = [];\n\n // Correct dts for each sample, and calculate sample duration. Then output to mp4Samples\n for (let i = 0; i < samples.length; i++) {\n let sample = samples[i];\n let unit = sample.unit;\n let originalDts = sample.dts - this._dtsBase;\n let dts = originalDts;\n let needFillSilentFrames = false;\n let silentFrames = null;\n let sampleDuration = 0;\n\n if (originalDts < -0.001) {\n continue; //pass the first sample with the invalid dts\n }\n\n if (this._audioMeta.codec !== 'mp3') {\n // for AAC codec, we need to keep dts increase based on refSampleDuration\n let curRefDts = originalDts;\n const maxAudioFramesDrift = 3;\n if (this._audioNextDts) {\n curRefDts = this._audioNextDts;\n }\n\n dtsCorrection = originalDts - curRefDts;\n if (dtsCorrection <= -maxAudioFramesDrift * refSampleDuration) {\n // If we're overlapping by more than maxAudioFramesDrift number of frame, drop this sample\n Log.w(this.TAG, `Dropping 1 audio frame (originalDts: ${originalDts} ms ,curRefDts: ${curRefDts} ms) due to dtsCorrection: ${dtsCorrection} ms overlap.`);\n continue;\n }\n else if (dtsCorrection >= maxAudioFramesDrift * refSampleDuration && this._fillAudioTimestampGap && !Browser.safari) {\n // Silent frame generation, if large timestamp gap detected && config.fixAudioTimestampGap\n needFillSilentFrames = true;\n // We need to insert silent frames to fill timestamp gap\n let frameCount = Math.floor(dtsCorrection / refSampleDuration);\n Log.w(this.TAG, 'Large audio timestamp gap detected, may cause AV sync to drift. ' +\n 'Silent frames will be generated to avoid unsync.\\n' +\n `originalDts: ${originalDts} ms, curRefDts: ${curRefDts} ms, ` +\n `dtsCorrection: ${Math.round(dtsCorrection)} ms, generate: ${frameCount} frames`);\n\n\n dts = Math.floor(curRefDts);\n sampleDuration = Math.floor(curRefDts + refSampleDuration) - dts;\n\n let silentUnit = AAC.getSilentFrame(this._audioMeta.originalCodec, this._audioMeta.channelCount);\n if (silentUnit == null) {\n Log.w(this.TAG, 'Unable to generate silent frame for ' +\n `${this._audioMeta.originalCodec} with ${this._audioMeta.channelCount} channels, repeat last frame`);\n // Repeat last frame\n silentUnit = unit;\n }\n silentFrames = [];\n\n for (let j = 0; j < frameCount; j++) {\n curRefDts = curRefDts + refSampleDuration;\n let intDts = Math.floor(curRefDts); // change to integer\n let intDuration = Math.floor(curRefDts + refSampleDuration) - intDts;\n let frame = {\n dts: intDts,\n pts: intDts,\n cts: 0,\n unit: silentUnit,\n size: silentUnit.byteLength,\n duration: intDuration, // wait for next sample\n originalDts: originalDts,\n flags: {\n isLeading: 0,\n dependsOn: 1,\n isDependedOn: 0,\n hasRedundancy: 0\n }\n };\n silentFrames.push(frame);\n mdatBytes += frame.size;;\n\n }\n\n this._audioNextDts = curRefDts + refSampleDuration;\n\n } else {\n\n dts = Math.floor(curRefDts);\n sampleDuration = Math.floor(curRefDts + refSampleDuration) - dts;\n this._audioNextDts = curRefDts + refSampleDuration;\n\n }\n } else {\n // keep the original dts calculate algorithm for mp3\n dts = originalDts - dtsCorrection;\n\n\n if (i !== samples.length - 1) {\n let nextDts = samples[i + 1].dts - this._dtsBase - dtsCorrection;\n sampleDuration = nextDts - dts;\n } else { // the last sample\n if (lastSample != null) { // use stashed sample's dts to calculate sample duration\n let nextDts = lastSample.dts - this._dtsBase - dtsCorrection;\n sampleDuration = nextDts - dts;\n } else if (mp4Samples.length >= 1) { // use second last sample duration\n sampleDuration = mp4Samples[mp4Samples.length - 1].duration;\n } else { // the only one sample, use reference sample duration\n sampleDuration = Math.floor(refSampleDuration);\n }\n }\n this._audioNextDts = dts + sampleDuration;\n }\n\n if (firstDts === -1) {\n firstDts = dts;\n }\n mp4Samples.push({\n dts: dts,\n pts: dts,\n cts: 0,\n unit: sample.unit,\n size: sample.unit.byteLength,\n duration: sampleDuration,\n originalDts: originalDts,\n flags: {\n isLeading: 0,\n dependsOn: 1,\n isDependedOn: 0,\n hasRedundancy: 0\n }\n });\n\n if (needFillSilentFrames) {\n // Silent frames should be inserted after wrong-duration frame\n mp4Samples.push.apply(mp4Samples, silentFrames);\n }\n }\n\n if (mp4Samples.length === 0) {\n //no samples need to remux\n track.samples = [];\n track.length = 0;\n return;\n }\n\n // allocate mdatbox\n if (mpegRawTrack) {\n // allocate for raw mpeg buffer\n mdatbox = new Uint8Array(mdatBytes);\n } else {\n // allocate for fmp4 mdat box\n mdatbox = new Uint8Array(mdatBytes);\n // size field\n mdatbox[0] = (mdatBytes >>> 24) & 0xFF;\n mdatbox[1] = (mdatBytes >>> 16) & 0xFF;\n mdatbox[2] = (mdatBytes >>> 8) & 0xFF;\n mdatbox[3] = (mdatBytes) & 0xFF;\n // type field (fourCC)\n mdatbox.set(MP4.types.mdat, 4);\n }\n\n // Write samples into mdatbox\n for (let i = 0; i < mp4Samples.length; i++) {\n let unit = mp4Samples[i].unit;\n mdatbox.set(unit, offset);\n offset += unit.byteLength;\n }\n\n let latest = mp4Samples[mp4Samples.length - 1];\n lastDts = latest.dts + latest.duration;\n //this._audioNextDts = lastDts;\n\n // fill media segment info & add to info list\n let info = new MediaSegmentInfo();\n info.beginDts = firstDts;\n info.endDts = lastDts;\n info.beginPts = firstDts;\n info.endPts = lastDts;\n info.originalBeginDts = mp4Samples[0].originalDts;\n info.originalEndDts = latest.originalDts + latest.duration;\n info.firstSample = new SampleInfo(mp4Samples[0].dts,\n mp4Samples[0].pts,\n mp4Samples[0].duration,\n mp4Samples[0].originalDts,\n false);\n info.lastSample = new SampleInfo(latest.dts,\n latest.pts,\n latest.duration,\n latest.originalDts,\n false);\n if (!this._isLive) {\n this._audioSegmentInfoList.append(info);\n }\n\n track.samples = mp4Samples;\n track.sequenceNumber++;\n\n let moofbox = null;\n\n if (mpegRawTrack) {\n // Generate empty buffer, because useless for raw mpeg\n moofbox = new Uint8Array();\n } else {\n // Generate moof for fmp4 segment\n moofbox = MP4.moof(track, firstDts);\n }\n\n track.samples = [];\n track.length = 0;\n\n let segment = {\n type: 'audio',\n data: this._mergeBoxes(moofbox, mdatbox).buffer,\n sampleCount: mp4Samples.length,\n info: info\n };\n\n if (mpegRawTrack && firstSegmentAfterSeek) {\n // For MPEG audio stream in MSE, if seeking occurred, before appending new buffer\n // We need explicitly set timestampOffset to the desired point in timeline for mpeg SourceBuffer.\n segment.timestampOffset = firstDts;\n }\n\n this._onMediaSegment('audio', segment);\n }\n\n _remuxVideo(videoTrack, force) {\n if (this._videoMeta == null) {\n return;\n }\n\n let track = videoTrack;\n let samples = track.samples;\n let dtsCorrection = undefined;\n let firstDts = -1, lastDts = -1;\n let firstPts = -1, lastPts = -1;\n\n if (!samples || samples.length === 0) {\n return;\n }\n if (samples.length === 1 && !force) {\n // If [sample count in current batch] === 1 && (force != true)\n // Ignore and keep in demuxer's queue\n return;\n } // else if (force === true) do remux\n\n let offset = 8;\n let mdatbox = null;\n let mdatBytes = 8 + videoTrack.length;\n\n\n let lastSample = null;\n\n // Pop the lastSample and waiting for stash\n if (samples.length > 1) {\n lastSample = samples.pop();\n mdatBytes -= lastSample.length;\n }\n\n // Insert [stashed lastSample in the previous batch] to the front\n if (this._videoStashedLastSample != null) {\n let sample = this._videoStashedLastSample;\n this._videoStashedLastSample = null;\n samples.unshift(sample);\n mdatBytes += sample.length;\n }\n\n // Stash the lastSample of current batch, waiting for next batch\n if (lastSample != null) {\n this._videoStashedLastSample = lastSample;\n }\n\n\n let firstSampleOriginalDts = samples[0].dts - this._dtsBase;\n\n // calculate dtsCorrection\n if (this._videoNextDts) {\n dtsCorrection = firstSampleOriginalDts - this._videoNextDts;\n } else { // this._videoNextDts == undefined\n if (this._videoSegmentInfoList.isEmpty()) {\n dtsCorrection = 0;\n } else {\n let lastSample = this._videoSegmentInfoList.getLastSampleBefore(firstSampleOriginalDts);\n if (lastSample != null) {\n let distance = (firstSampleOriginalDts - (lastSample.originalDts + lastSample.duration));\n if (distance <= 3) {\n distance = 0;\n }\n let expectedDts = lastSample.dts + lastSample.duration + distance;\n dtsCorrection = firstSampleOriginalDts - expectedDts;\n } else { // lastSample == null, cannot found\n dtsCorrection = 0;\n }\n }\n }\n\n let info = new MediaSegmentInfo();\n let mp4Samples = [];\n\n // Correct dts for each sample, and calculate sample duration. Then output to mp4Samples\n for (let i = 0; i < samples.length; i++) {\n let sample = samples[i];\n let originalDts = sample.dts - this._dtsBase;\n let isKeyframe = sample.isKeyframe;\n let dts = originalDts - dtsCorrection;\n let cts = sample.cts;\n let pts = dts + cts;\n\n if (firstDts === -1) {\n firstDts = dts;\n firstPts = pts;\n }\n\n let sampleDuration = 0;\n\n if (i !== samples.length - 1) {\n let nextDts = samples[i + 1].dts - this._dtsBase - dtsCorrection;\n sampleDuration = nextDts - dts;\n } else { // the last sample\n if (lastSample != null) { // use stashed sample's dts to calculate sample duration\n let nextDts = lastSample.dts - this._dtsBase - dtsCorrection;\n sampleDuration = nextDts - dts;\n } else if (mp4Samples.length >= 1) { // use second last sample duration\n sampleDuration = mp4Samples[mp4Samples.length - 1].duration;\n } else { // the only one sample, use reference sample duration\n sampleDuration = Math.floor(this._videoMeta.refSampleDuration);\n }\n }\n\n if (isKeyframe) {\n let syncPoint = new SampleInfo(dts, pts, sampleDuration, sample.dts, true);\n syncPoint.fileposition = sample.fileposition;\n info.appendSyncPoint(syncPoint);\n }\n\n mp4Samples.push({\n dts: dts,\n pts: pts,\n cts: cts,\n units: sample.units,\n size: sample.length,\n isKeyframe: isKeyframe,\n duration: sampleDuration,\n originalDts: originalDts,\n flags: {\n isLeading: 0,\n dependsOn: isKeyframe ? 2 : 1,\n isDependedOn: isKeyframe ? 1 : 0,\n hasRedundancy: 0,\n isNonSync: isKeyframe ? 0 : 1\n }\n });\n }\n\n // allocate mdatbox\n mdatbox = new Uint8Array(mdatBytes);\n mdatbox[0] = (mdatBytes >>> 24) & 0xFF;\n mdatbox[1] = (mdatBytes >>> 16) & 0xFF;\n mdatbox[2] = (mdatBytes >>> 8) & 0xFF;\n mdatbox[3] = (mdatBytes) & 0xFF;\n mdatbox.set(MP4.types.mdat, 4);\n\n // Write samples into mdatbox\n for (let i = 0; i < mp4Samples.length; i++) {\n let units = mp4Samples[i].units;\n while (units.length) {\n let unit = units.shift();\n let data = unit.data;\n mdatbox.set(data, offset);\n offset += data.byteLength;\n }\n }\n\n let latest = mp4Samples[mp4Samples.length - 1];\n lastDts = latest.dts + latest.duration;\n lastPts = latest.pts + latest.duration;\n this._videoNextDts = lastDts;\n\n // fill media segment info & add to info list\n info.beginDts = firstDts;\n info.endDts = lastDts;\n info.beginPts = firstPts;\n info.endPts = lastPts;\n info.originalBeginDts = mp4Samples[0].originalDts;\n info.originalEndDts = latest.originalDts + latest.duration;\n info.firstSample = new SampleInfo(mp4Samples[0].dts,\n mp4Samples[0].pts,\n mp4Samples[0].duration,\n mp4Samples[0].originalDts,\n mp4Samples[0].isKeyframe);\n info.lastSample = new SampleInfo(latest.dts,\n latest.pts,\n latest.duration,\n latest.originalDts,\n latest.isKeyframe);\n if (!this._isLive) {\n this._videoSegmentInfoList.append(info);\n }\n\n track.samples = mp4Samples;\n track.sequenceNumber++;\n\n // workaround for chrome < 50: force first sample as a random access point\n // see https://bugs.chromium.org/p/chromium/issues/detail?id=229412\n if (this._forceFirstIDR) {\n let flags = mp4Samples[0].flags;\n flags.dependsOn = 2;\n flags.isNonSync = 0;\n }\n\n let moofbox = MP4.moof(track, firstDts);\n track.samples = [];\n track.length = 0;\n\n this._onMediaSegment('video', {\n type: 'video',\n data: this._mergeBoxes(moofbox, mdatbox).buffer,\n sampleCount: mp4Samples.length,\n info: info\n });\n }\n\n _mergeBoxes(moof, mdat) {\n let result = new Uint8Array(moof.byteLength + mdat.byteLength);\n result.set(moof, 0);\n result.set(mdat, moof.byteLength);\n return result;\n }\n\n}\n\nexport default MP4Remuxer;\n","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nlet Browser = {};\n\nfunction detect() {\n // modified from jquery-browser-plugin\n\n let ua = self.navigator.userAgent.toLowerCase();\n\n let match = /(edge)\\/([\\w.]+)/.exec(ua) ||\n /(opr)[\\/]([\\w.]+)/.exec(ua) ||\n /(chrome)[ \\/]([\\w.]+)/.exec(ua) ||\n /(iemobile)[\\/]([\\w.]+)/.exec(ua) ||\n /(version)(applewebkit)[ \\/]([\\w.]+).*(safari)[ \\/]([\\w.]+)/.exec(ua) ||\n /(webkit)[ \\/]([\\w.]+).*(version)[ \\/]([\\w.]+).*(safari)[ \\/]([\\w.]+)/.exec(ua) ||\n /(webkit)[ \\/]([\\w.]+)/.exec(ua) ||\n /(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec(ua) ||\n /(msie) ([\\w.]+)/.exec(ua) ||\n ua.indexOf('trident') >= 0 && /(rv)(?::| )([\\w.]+)/.exec(ua) ||\n ua.indexOf('compatible') < 0 && /(firefox)[ \\/]([\\w.]+)/.exec(ua) ||\n [];\n\n let platform_match = /(ipad)/.exec(ua) ||\n /(ipod)/.exec(ua) ||\n /(windows phone)/.exec(ua) ||\n /(iphone)/.exec(ua) ||\n /(kindle)/.exec(ua) ||\n /(android)/.exec(ua) ||\n /(windows)/.exec(ua) ||\n /(mac)/.exec(ua) ||\n /(linux)/.exec(ua) ||\n /(cros)/.exec(ua) ||\n [];\n\n let matched = {\n browser: match[5] || match[3] || match[1] || '',\n version: match[2] || match[4] || '0',\n majorVersion: match[4] || match[2] || '0',\n platform: platform_match[0] || ''\n };\n\n let browser = {};\n if (matched.browser) {\n browser[matched.browser] = true;\n\n let versionArray = matched.majorVersion.split('.');\n browser.version = {\n major: parseInt(matched.majorVersion, 10),\n string: matched.version\n };\n if (versionArray.length > 1) {\n browser.version.minor = parseInt(versionArray[1], 10);\n }\n if (versionArray.length > 2) {\n browser.version.build = parseInt(versionArray[2], 10);\n }\n }\n\n if (matched.platform) {\n browser[matched.platform] = true;\n }\n\n if (browser.chrome || browser.opr || browser.safari) {\n browser.webkit = true;\n }\n\n // MSIE. IE11 has 'rv' identifer\n if (browser.rv || browser.iemobile) {\n if (browser.rv) {\n delete browser.rv;\n }\n let msie = 'msie';\n matched.browser = msie;\n browser[msie] = true;\n }\n\n // Microsoft Edge\n if (browser.edge) {\n delete browser.edge;\n let msedge = 'msedge';\n matched.browser = msedge;\n browser[msedge] = true;\n }\n\n // Opera 15+\n if (browser.opr) {\n let opera = 'opera';\n matched.browser = opera;\n browser[opera] = true;\n }\n\n // Stock android browsers are marked as Safari\n if (browser.safari && browser.android) {\n let android = 'android';\n matched.browser = android;\n browser[android] = true;\n }\n\n browser.name = matched.browser;\n browser.platform = matched.platform;\n\n for (let key in Browser) {\n if (Browser.hasOwnProperty(key)) {\n delete Browser[key];\n }\n }\n Object.assign(Browser, browser);\n}\n\ndetect();\n\nexport default Browser;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class RuntimeException {\n\n constructor(message) {\n this._message = message;\n }\n\n get name() {\n return 'RuntimeException';\n }\n\n get message() {\n return this._message;\n }\n\n toString() {\n return this.name + ': ' + this.message;\n }\n\n}\n\nexport class IllegalStateException extends RuntimeException {\n\n constructor(message) {\n super(message);\n }\n\n get name() {\n return 'IllegalStateException';\n }\n\n}\n\nexport class InvalidArgumentException extends RuntimeException {\n\n constructor(message) {\n super(message);\n }\n\n get name() {\n return 'InvalidArgumentException';\n }\n\n}\n\nexport class NotImplementedException extends RuntimeException {\n\n constructor(message) {\n super(message);\n }\n\n get name() {\n return 'NotImplementedException';\n }\n\n}\n","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport EventEmitter from 'events';\n\nclass Log {\n\n static e(tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG)\n tag = Log.GLOBAL_TAG;\n\n let str = `[${tag}] > ${msg}`;\n\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'error', str);\n }\n\n if (!Log.ENABLE_ERROR) {\n return;\n }\n\n if (console.error) {\n console.error(str);\n } else if (console.warn) {\n console.warn(str);\n } else {\n console.log(str);\n }\n }\n\n static i(tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG)\n tag = Log.GLOBAL_TAG;\n\n let str = `[${tag}] > ${msg}`;\n\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'info', str);\n }\n\n if (!Log.ENABLE_INFO) {\n return;\n }\n\n if (console.info) {\n console.info(str);\n } else {\n console.log(str);\n }\n }\n\n static w(tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG)\n tag = Log.GLOBAL_TAG;\n\n let str = `[${tag}] > ${msg}`;\n\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'warn', str);\n }\n\n if (!Log.ENABLE_WARN) {\n return;\n }\n\n if (console.warn) {\n console.warn(str);\n } else {\n console.log(str);\n }\n }\n\n static d(tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG)\n tag = Log.GLOBAL_TAG;\n\n let str = `[${tag}] > ${msg}`;\n\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'debug', str);\n }\n\n if (!Log.ENABLE_DEBUG) {\n return;\n }\n\n if (console.debug) {\n console.debug(str);\n } else {\n console.log(str);\n }\n }\n\n static v(tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG)\n tag = Log.GLOBAL_TAG;\n\n let str = `[${tag}] > ${msg}`;\n\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'verbose', str);\n }\n\n if (!Log.ENABLE_VERBOSE) {\n return;\n }\n\n console.log(str);\n }\n\n}\n\nLog.GLOBAL_TAG = 'flv.js';\nLog.FORCE_GLOBAL_TAG = false;\nLog.ENABLE_ERROR = true;\nLog.ENABLE_INFO = true;\nLog.ENABLE_WARN = true;\nLog.ENABLE_DEBUG = true;\nLog.ENABLE_VERBOSE = true;\n\nLog.ENABLE_CALLBACK = false;\n\nLog.emitter = new EventEmitter();\n\nexport default Log;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport EventEmitter from 'events';\nimport Log from './logger.js';\n\nclass LoggingControl {\n\n static get forceGlobalTag() {\n return Log.FORCE_GLOBAL_TAG;\n }\n\n static set forceGlobalTag(enable) {\n Log.FORCE_GLOBAL_TAG = enable;\n LoggingControl._notifyChange();\n }\n\n static get globalTag() {\n return Log.GLOBAL_TAG;\n }\n\n static set globalTag(tag) {\n Log.GLOBAL_TAG = tag;\n LoggingControl._notifyChange();\n }\n\n static get enableAll() {\n return Log.ENABLE_VERBOSE\n && Log.ENABLE_DEBUG\n && Log.ENABLE_INFO\n && Log.ENABLE_WARN\n && Log.ENABLE_ERROR;\n }\n\n static set enableAll(enable) {\n Log.ENABLE_VERBOSE = enable;\n Log.ENABLE_DEBUG = enable;\n Log.ENABLE_INFO = enable;\n Log.ENABLE_WARN = enable;\n Log.ENABLE_ERROR = enable;\n LoggingControl._notifyChange();\n }\n\n static get enableDebug() {\n return Log.ENABLE_DEBUG;\n }\n\n static set enableDebug(enable) {\n Log.ENABLE_DEBUG = enable;\n LoggingControl._notifyChange();\n }\n\n static get enableVerbose() {\n return Log.ENABLE_VERBOSE;\n }\n\n static set enableVerbose(enable) {\n Log.ENABLE_VERBOSE = enable;\n LoggingControl._notifyChange();\n }\n\n static get enableInfo() {\n return Log.ENABLE_INFO;\n }\n\n static set enableInfo(enable) {\n Log.ENABLE_INFO = enable;\n LoggingControl._notifyChange();\n }\n\n static get enableWarn() {\n return Log.ENABLE_WARN;\n }\n\n static set enableWarn(enable) {\n Log.ENABLE_WARN = enable;\n LoggingControl._notifyChange();\n }\n\n static get enableError() {\n return Log.ENABLE_ERROR;\n }\n\n static set enableError(enable) {\n Log.ENABLE_ERROR = enable;\n LoggingControl._notifyChange();\n }\n\n static getConfig() {\n return {\n globalTag: Log.GLOBAL_TAG,\n forceGlobalTag: Log.FORCE_GLOBAL_TAG,\n enableVerbose: Log.ENABLE_VERBOSE,\n enableDebug: Log.ENABLE_DEBUG,\n enableInfo: Log.ENABLE_INFO,\n enableWarn: Log.ENABLE_WARN,\n enableError: Log.ENABLE_ERROR,\n enableCallback: Log.ENABLE_CALLBACK\n };\n }\n\n static applyConfig(config) {\n Log.GLOBAL_TAG = config.globalTag;\n Log.FORCE_GLOBAL_TAG = config.forceGlobalTag;\n Log.ENABLE_VERBOSE = config.enableVerbose;\n Log.ENABLE_DEBUG = config.enableDebug;\n Log.ENABLE_INFO = config.enableInfo;\n Log.ENABLE_WARN = config.enableWarn;\n Log.ENABLE_ERROR = config.enableError;\n Log.ENABLE_CALLBACK = config.enableCallback;\n }\n\n static _notifyChange() {\n let emitter = LoggingControl.emitter;\n\n if (emitter.listenerCount('change') > 0) {\n let config = LoggingControl.getConfig();\n emitter.emit('change', config);\n }\n }\n\n static registerListener(listener) {\n LoggingControl.emitter.addListener('change', listener);\n }\n\n static removeListener(listener) {\n LoggingControl.emitter.removeListener('change', listener);\n }\n\n static addLogListener(listener) {\n Log.emitter.addListener('log', listener);\n if (Log.emitter.listenerCount('log') > 0) {\n Log.ENABLE_CALLBACK = true;\n LoggingControl._notifyChange();\n }\n }\n\n static removeLogListener(listener) {\n Log.emitter.removeListener('log', listener);\n if (Log.emitter.listenerCount('log') === 0) {\n Log.ENABLE_CALLBACK = false;\n LoggingControl._notifyChange();\n }\n }\n\n}\n\nLoggingControl.emitter = new EventEmitter();\n\nexport default LoggingControl;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass Polyfill {\n\n static install() {\n // ES6 Object.setPrototypeOf\n Object.setPrototypeOf = Object.setPrototypeOf || function (obj, proto) {\n obj.__proto__ = proto;\n return obj;\n };\n\n // ES6 Object.assign\n Object.assign = Object.assign || function (target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n let output = Object(target);\n for (let i = 1; i < arguments.length; i++) {\n let source = arguments[i];\n if (source !== undefined && source !== null) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n output[key] = source[key];\n }\n }\n }\n }\n return output;\n };\n\n // ES6 Promise (missing support in IE11)\n if (typeof self.Promise !== 'function') {\n require('es6-promise').polyfill();\n }\n }\n\n}\n\nPolyfill.install();\n\nexport default Polyfill;","/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * This file is derived from C++ project libWinTF8 (https://github.com/m13253/libWinTF8)\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nfunction checkContinuation(uint8array, start, checkLength) {\n let array = uint8array;\n if (start + checkLength < array.length) {\n while (checkLength--) {\n if ((array[++start] & 0xC0) !== 0x80)\n return false;\n }\n return true;\n } else {\n return false;\n }\n}\n\nfunction decodeUTF8(uint8array) {\n let out = [];\n let input = uint8array;\n let i = 0;\n let length = uint8array.length;\n\n while (i < length) {\n if (input[i] < 0x80) {\n out.push(String.fromCharCode(input[i]));\n ++i;\n continue;\n } else if (input[i] < 0xC0) {\n // fallthrough\n } else if (input[i] < 0xE0) {\n if (checkContinuation(input, i, 1)) {\n let ucs4 = (input[i] & 0x1F) << 6 | (input[i + 1] & 0x3F);\n if (ucs4 >= 0x80) {\n out.push(String.fromCharCode(ucs4 & 0xFFFF));\n i += 2;\n continue;\n }\n }\n } else if (input[i] < 0xF0) {\n if (checkContinuation(input, i, 2)) {\n let ucs4 = (input[i] & 0xF) << 12 | (input[i + 1] & 0x3F) << 6 | input[i + 2] & 0x3F;\n if (ucs4 >= 0x800 && (ucs4 & 0xF800) !== 0xD800) {\n out.push(String.fromCharCode(ucs4 & 0xFFFF));\n i += 3;\n continue;\n }\n }\n } else if (input[i] < 0xF8) {\n if (checkContinuation(input, i, 3)) {\n let ucs4 = (input[i] & 0x7) << 18 | (input[i + 1] & 0x3F) << 12\n | (input[i + 2] & 0x3F) << 6 | (input[i + 3] & 0x3F);\n if (ucs4 > 0x10000 && ucs4 < 0x110000) {\n ucs4 -= 0x10000;\n out.push(String.fromCharCode((ucs4 >>> 10) | 0xD800));\n out.push(String.fromCharCode((ucs4 & 0x3FF) | 0xDC00));\n i += 4;\n continue;\n }\n }\n }\n out.push(String.fromCharCode(0xFFFD));\n ++i;\n }\n\n return out.join('');\n}\n\nexport default decodeUTF8;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// module factories are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(\"./src/index.js\");\n","\r\n\r\n\r\n","import script from \"./camera.vue?vue&type=script&setup=true&name=camera&lang=js\"\nexport * from \"./camera.vue?vue&type=script&setup=true&name=camera&lang=js\"\n\nimport \"./camera.vue?vue&type=style&index=0&id=4d5cf730&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\quant\\\\Documents\\\\monitor\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4d5cf730\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","import script from \"./site-detail.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./site-detail.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./site-detail.vue?vue&type=style&index=0&id=0dd6cab5&lang=css\"\nimport \"./site-detail.vue?vue&type=style&index=1&id=0dd6cab5&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\quant\\\\Documents\\\\monitor\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0dd6cab5\"]])\n\nexport default __exports__"],"names":["module","exports","ArrayBuffer","DataView","NAME","Constructor","Prototype","NATIVE_ARRAY_BUFFER","DESCRIPTORS","global","isCallable","isObject","hasOwn","classof","tryToString","createNonEnumerableProperty","defineBuiltIn","defineProperty","isPrototypeOf","getPrototypeOf","setPrototypeOf","wellKnownSymbol","uid","InternalStateModule","enforceInternalState","enforce","getInternalState","get","Int8Array","Int8ArrayPrototype","prototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","Object","TypeError","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","it","klass","getTypedArrayConstructor","proto","state","isTypedArray","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","options","ARRAY","TypedArrayConstructor","error","error2","exportTypedArrayStaticMethod","Function","this","undefined","bind","IndexedObject","toObject","lengthOfArrayLike","createMethod","TYPE","IS_FIND_LAST_INDEX","$this","callbackfn","that","value","result","O","self","boundFunction","index","findLast","findLastIndex","fails","F","constructor","makeBuiltIn","target","name","descriptor","getter","set","setter","f","uncurryThis","aCallable","NATIVE_BIND","fn","apply","arguments","sharedKey","CORRECT_PROTOTYPE_GETTER","IE_PROTO","$Object","object","anObject","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","defineBuiltInAccessor","regExpFlags","RegExp","RegExpPrototype","FORCED","INDICES_SUPPORT","calls","expected","addGetter","key","chr","pairs","getOwnPropertyDescriptor","call","configurable","ArrayBufferViewCore","toIntegerOrInfinity","len","relativeIndex","k","$findLastIndex","predicate","length","$findLast","root","factory","objectOrFunction","x","type","isFunction","_isArray","Array","isArray","toString","vertxNext","customSchedulerFn","asap","callback","arg","queue","flush","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","window","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","process","isWorker","importScripts","MessageChannel","useNextTick","nextTick","useVertxTimer","useSetTimeout","useMutationObserver","iterations","observer","node","document","createTextNode","observe","characterData","data","useMessageChannel","channel","port1","onmessage","port2","postMessage","globalSetTimeout","setTimeout","i","attemptVertx","vertx","require","runOnLoop","runOnContext","e","then","onFulfillment","onRejection","parent","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","resolve","Math","random","substring","PENDING","FULFILLED","REJECTED","selfFulfillment","cannotReturnOwn","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","reject","_label","handleOwnThenable","handleMaybeThenable","maybeThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","initializePromise","resolver","id","nextId","validationError","Error","Enumerator","input","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","c","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","enumerator","all","entries","race","_","reject$1","needsResolver","needsNew","Promise","catch","finally","polyfill","local","__webpack_require__","P","promiseToString","cast","_setScheduler","_setAsap","_asap","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","args","ProcessEmitWarning","warning","console","warn","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","isNaN","EventEmitter","init","once","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","m","events","existing","create","newListener","emit","unshift","push","warned","w","String","emitter","count","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","arr","n","copy","spliceOne","list","pop","ret","errorListener","err","slice","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","on","addEventListener","wrapListener","removeEventListener","enumerable","RangeError","setMaxListeners","getMaxListeners","doError","er","message","context","listeners","addListener","prependListener","prependOnceListener","position","originalListener","shift","off","removeAllListeners","keys","rawListeners","eventNames","webpackBootstrapFunc","modules","installedModules","__nested_webpack_require_164__","moduleId","l","d","o","r","__esModule","hasOwnProperty","p","oe","s","ENTRY_MODULE","default","moduleNameReqExp","dependencyRegExp","quoteRegExp","str","replace","isNumeric","getModuleDependencies","sources","queueName","retval","fnString","wrapperSignature","match","webpackRequireName","re","exec","j","hasValuesInQueues","queues","reduce","hasValues","getRequiredModules","modulesQueue","main","requiredModules","seenModules","moduleToCheck","newModules","newModulesKeys","src","filter","forEach","entryModule","JSON","stringify","map","join","blob","Blob","bare","URL","webkitURL","mozURL","msURL","workerUrl","createObjectURL","worker","Worker","objectURL","defaultConfig","enableWorker","enableStashBuffer","stashInitialSize","isLive","lazyLoad","lazyLoadMaxDuration","lazyLoadRecoverDuration","deferLoadAfterSourceOpen","autoCleanupMaxBackwardDuration","autoCleanupMinBackwardDuration","statisticsInfoReportInterval","fixAudioTimestampGap","accurateSeek","seekType","seekParamStart","seekParamEnd","rangeLoadZeroStart","customSeekHandler","reuseRedirectedURL","headers","customLoader","createDefaultConfig","assign","Features","MediaSource","isTypeSupported","ioctl","_io_io_controller_js__WEBPACK_IMPORTED_MODULE_0__","loaderType","destroy","mimeType","videoElement","createElement","canPlay","canPlayType","features","mseFlvPlayback","mseLiveFlvPlayback","networkStreamIO","networkLoaderName","nativeMP4H264Playback","nativeWebmVP8Playback","nativeWebmVP9Playback","supportMSEH264Playback","supportNetworkStreamIO","getNetworkLoaderTypeName","supportNativeMediaPlayback","__webpack_exports__","duration","hasAudio","hasVideo","audioCodec","videoCodec","audioDataRate","videoDataRate","audioSampleRate","audioChannelCount","width","height","fps","profile","level","refFrames","chromaFormat","sarNum","sarDen","metadata","segments","segmentCount","hasKeyframesIndex","keyframesIndex","MediaInfo","audioInfoComplete","videoInfoComplete","milliseconds","table","keyframeIdx","_search","times","fileposition","filepositions","idx","last","mid","lbound","ubound","floor","dts","pts","originalDts","isSync","isSyncPoint","beginDts","endDts","beginPts","endPts","originalBeginDts","originalEndDts","syncPoints","firstSample","lastSample","MediaSegmentInfo","sampleInfo","_list","IDRSampleList","clear","_type","_lastAppendLocation","MediaSegmentInfoList","_searchNearestSegmentBefore","mediaSegmentInfo","msi","lastAppendIdx","insertIdx","splice","segment","getLastSegmentBefore","segmentIdx","config","TAG","_config","_emitter","events__WEBPACK_IMPORTED_MODULE_0___default","autoCleanupSourceBuffer","onSourceOpen","_onSourceOpen","onSourceEnded","_onSourceEnded","onSourceClose","_onSourceClose","onSourceBufferError","_onSourceBufferError","onSourceBufferUpdateEnd","_onSourceBufferUpdateEnd","_mediaSource","_mediaSourceObjectURL","_mediaElement","_isBufferFull","_hasPendingEos","_requireSetMediaDuration","_pendingMediaDuration","_pendingSourceBufferInit","_mimeTypes","video","audio","_sourceBuffers","_lastInitSegments","_pendingSegments","_pendingRemoveRanges","_idrList","_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__","MSEController","detachMediaElement","event","mediaElement","_utils_exception_js__WEBPACK_IMPORTED_MODULE_5__","ms","ps","sb","readyState","removeSourceBuffer","_utils_logger_js__WEBPACK_IMPORTED_MODULE_1__","endOfStream","removeAttribute","revokeObjectURL","initSegment","deferred","is","container","codec","firstInitSegment","addSourceBuffer","_mse_events_js__WEBPACK_IMPORTED_MODULE_3__","code","msg","updating","_doAppendSegments","_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__","mediaDuration","_updateMediaSourceDuration","mediaSegment","_needCleanupSourceBuffer","_doCleanupSourceBuffer","_hasPendingRemoveRanges","seconds","abort","buffered","start","end","_doRemoveRanges","lastInitSegment","_hasPendingSegments","getLastSyncPointBeforeDts","currentTime","doRemove","removeEnd","current","ranges","range","remove","pendingSegments","timestampOffset","currentOffset","targetOffset","delta","abs","byteLength","appendBuffer","appendArray","info","pendings","appendInitSegment","prr","MSEEvents","ERROR","SOURCE_OPEN","UPDATE_END","BUFFER_FULL","mediaDataSource","_worker","webworkify_webpack__WEBPACK_IMPORTED_MODULE_1___default","_workerDestroying","_onWorkerMessage","cmd","param","onLoggingConfigChanged","_onLoggingConfigChanged","_utils_logging_control_js__WEBPACK_IMPORTED_MODULE_3__","_utils_logger_js__WEBPACK_IMPORTED_MODULE_2__","_controller","_transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_4__","ctl","_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__","_onIOError","_onDemuxError","_onInitSegment","_onMediaSegment","_onLoadingComplete","_onRecoveredEarlyEof","_onMediaInfo","_onMetaDataArrived","_onScriptDataArrived","_onStatisticsInfo","_onRecommendSeekpoint","Transmuxer","stop","seek","pause","resume","_this","mediaInfo","statisticsInfo","terminate","_media_info_js__WEBPACK_IMPORTED_MODULE_6__","logcat","filesize","url","cors","withCredentials","_mediaDataSource","_currentSegmentIndex","totalDuration","timestampBase","referrerPolicy","_mediaInfo","_demuxer","_remuxer","_ioctl","_pendingSeekTime","_pendingResolveSeekPoint","_statisticsReporter","TransmuxingController","_disableStatisticsReporter","_loadSegment","_enableStatisticsReporter","segmentIndex","optionalFrom","dataSource","_io_io_controller_js__WEBPACK_IMPORTED_MODULE_7__","onError","_onIOException","onSeeked","_onIOSeeked","onComplete","_onIOComplete","onRedirect","_onIORedirect","onRecoveredEarlyEof","_onIORecoveredEarlyEof","bindDataSource","onDataArrival","_onInitChunkArrival","open","_internalAbort","isWorking","isPaused","isSeekable","targetSegmentIndex","_searchSegmentIndexContains","segmentInfo","keyframe","getNearestKeyframe","targetSegmentInfo","insertDiscontinuity","resetMediaInfo","_reportSegmentMediaInfo","byteStart","probeData","consumed","parseChunks","_demux_flv_demuxer_js__WEBPACK_IMPORTED_MODULE_4__","_remux_mp4_remuxer_js__WEBPACK_IMPORTED_MODULE_5__","mds","overridedDuration","overridedHasAudio","overridedHasVideo","_onDemuxException","onMediaInfo","onMetaDataArrived","onScriptDataArrived","onInitSegment","_onRemuxerInitSegmentArrival","onMediaSegment","_onRemuxerMediaSegmentArrival","_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__","_demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_6__","_media_info_js__WEBPACK_IMPORTED_MODULE_3__","extraData","nextSegmentIndex","flushStashedSamples","redirectedURL","seekpoint","setInterval","_reportStatisticsInfo","clearInterval","exportInfo","currentURL","hasRedirect","currentRedirectedURL","speed","currentSpeed","currentSegmentIndex","totalSegmentCount","TransmuxingEvents","IO_ERROR","DEMUX_ERROR","INIT_SEGMENT","MEDIA_SEGMENT","LOADING_COMPLETE","RECOVERED_EARLY_EOF","MEDIA_INFO","METADATA_ARRIVED","SCRIPTDATA_ARRIVED","STATISTICS_INFO","RECOMMEND_SEEKPOINT","TransmuxingWorker","controller","logcatListener","onLogcatCallback","obj","_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__","onLoadingComplete","onStatisticsInfo","statInfo","onIOError","onDemuxError","onRecommendSeekpoint","_utils_polyfill_js__WEBPACK_IMPORTED_MODULE_1__","_transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_2__","_utils_logging_control_js__WEBPACK_IMPORTED_MODULE_0__","enableCallback","le","buf","setInt16","AMF","arrayBuffer","dataOffset","dataSize","name_1","parseValue","size","_utils_logger_js__WEBPACK_IMPORTED_MODULE_0__","_utils_exception_js__WEBPACK_IMPORTED_MODULE_2__","parseString","isObjectEnd","objectEnd","parseObject","v","getUint16","getUint32","timestamp","getFloat64","localTimeOffset","getInt16","Date","offset","getUint8","b","amfstr","terminal","amfobj","marker","amfvar","parseVariable","strictArrayLength","val","date","parseDate","amfLongStr","DemuxErrors","OK","FORMAT_ERROR","FORMAT_UNSUPPORTED","CODEC_UNSUPPORTED","uint8array","_buffer","_buffer_index","_total_bytes","_total_bits","_current_word","_current_word_bits_left","ExpGolomb","buffer_bytes_left","_utils_exception_js__WEBPACK_IMPORTED_MODULE_0__","bytes_read","min","word","subarray","buffer","bits","result_1","bits_need_left","_fillCurrentWord","bits_read_next","result2","readBits","zero_count","_skipLeadingZero","leading_zeros","readUEG","ReadBig32","array","_onError","_onTrackMetadata","_onDataAvailable","_dataOffset","_firstParse","_dispatch","_hasAudio","hasAudioTrack","_hasVideo","hasVideoTrack","_hasAudioFlagOverrided","_hasVideoFlagOverrided","_audioInitialMetadataDispatched","_videoInitialMetadataDispatched","_core_media_info_js__WEBPACK_IMPORTED_MODULE_4__","_metadata","_audioMetadata","_videoMetadata","_naluLengthSize","_timestampBase","_timescale","_duration","_durationOverrided","_referenceFrameRate","fixed","fps_num","fps_den","_flvSoundRateTable","_mpegSamplingRates","_mpegAudioV10SampleRateTable","_mpegAudioV20SampleRateTable","_mpegAudioV25SampleRateTable","_mpegAudioL1BitRateTable","_mpegAudioL2BitRateTable","_mpegAudioL3BitRateTable","_videoTrack","sequenceNumber","samples","_audioTrack","_littleEndian","FLVDemuxer","mismatch","loader","base","chunk","probe","prevTagSize0","tagType","ts2","ts1","ts0","ts3","streamId","_parseAudioData","_parseVideoData","_parseScriptData","prevTagSize","_isInitialMetadataDispatched","scriptData","_amf_parser_js__WEBPACK_IMPORTED_MODULE_1__","onMetaData","audiodatarate","videodatarate","framerate","keyframes","_parseKeyframesIndex","isComplete","time","tagTimestamp","soundSpec","soundFormat","soundRate","soundRateIndex","soundType","meta","track","timescale","channelCount","aacData","_parseAACAudioData","packetType","misc","samplingRate","originalCodec","refSampleDuration","mi","aacSample","unit","_parseMP3AudioData","bitRate","mp3Sample","_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__","_parseAACAudioSpecificConfig","audioObjectType","originalAudioObjectType","samplingIndex","extensionSamplingIndex","samplingFrequence","channelConfig","userAgent","navigator","toLowerCase","indexOf","requestHeader","ver","layer","bitrate_index","sampling_freq_index","channel_mode","channel_count","sample_rate","bit_rate","tagPosition","spec","frameType","codecId","_parseAVCVideoPacket","cts_unsigned","cts","_parseAVCDecoderConfigurationRecord","_parseAVCVideoData","avcc","version","avcProfile","spsCount","sps","_sps_parser_js__WEBPACK_IMPORTED_MODULE_2__","codecWidth","codec_size","codecHeight","presentWidth","present_size","presentHeight","profile_string","level_string","bitDepth","bit_depth","chroma_format","sarRatio","sar_ratio","frameRate","frame_rate","codecArray","codecString","h","ref_frames","chroma_format_string","ppsCount","units","lengthSize","naluSize","unitType","avcSample","isKeyframe","SPSParser","src_length","dst","dst_idx","rbsp","_ebsp2rbsp","gb","_exp_golomb_js__WEBPACK_IMPORTED_MODULE_0__","readByte","profile_idc","level_idc","getProfileString","getLevelString","chroma_format_idc","chroma_format_table","readBool","scaling_list_count","_skipScalingList","pic_order_cnt_type","readSEG","num_ref_frames_in_pic_order_cnt_cycle","pic_width_in_mbs_minus1","pic_height_in_map_units_minus1","frame_mbs_only_flag","frame_crop_left_offset","frame_crop_right_offset","frame_crop_top_offset","frame_crop_bottom_offset","frame_cropping_flag","sar_width","sar_height","fps_fixed","vui_parameters_present_flag","aspect_ratio_idc","sar_w_table","sar_h_table","num_units_in_tick","time_scale","sarScale","crop_unit_x","crop_unit_y","sub_wc","sub_hc","codec_width","codec_height","present_width","ceil","getChromaFormatString","last_scale","next_scale","delta_scale","toFixed","chroma","createPlayer","optionalConfig","_utils_exception_js__WEBPACK_IMPORTED_MODULE_8__","_player_flv_player_js__WEBPACK_IMPORTED_MODULE_3__","_player_native_player_js__WEBPACK_IMPORTED_MODULE_4__","isSupported","_core_features_js__WEBPACK_IMPORTED_MODULE_1__","getFeatureList","_utils_polyfill_js__WEBPACK_IMPORTED_MODULE_0__","flvjs","BaseLoader","_io_loader_js__WEBPACK_IMPORTED_MODULE_2__","LoaderStatus","LoaderErrors","Events","_player_player_events_js__WEBPACK_IMPORTED_MODULE_5__","ErrorTypes","_player_player_errors_js__WEBPACK_IMPORTED_MODULE_6__","ErrorDetails","FlvPlayer","NativePlayer","LoggingControl","_utils_logging_control_js__WEBPACK_IMPORTED_MODULE_7__","seekHandler","_super","_seekHandler","_needStash","_requestAbort","_contentLength","_receivedLength","__extends","FetchStreamLoader","isWorkWellEdge","_utils_browser_js__WEBPACK_IMPORTED_MODULE_0__","browserNotBlacklisted","fetch","ReadableStream","_dataSource","_range","sourceURL","seekConfig","getConfig","Headers","configHeaders","append","params","method","mode","cache","credentials","AbortController","_abortController","signal","_status","_loader_js__WEBPACK_IMPORTED_MODULE_1__","res","body","cancel","ok","status","_onURLRedirect","removeURLParameters","lengthHeader","parseInt","_onContentLengthKnown","_pump","getReader","statusText","aborted","reader","read","done","_onComplete","from","_onDataArrival","_extraData","_stashInitialSize","_stashUsed","_stashSize","_bufferSize","_stashBuffer","_stashByteStart","_enableStash","_loader","_loaderClass","_isWebSocketURL","test","_refTotalLength","_totalLength","_fullRequestFlag","_currentRange","_redirectedURL","_speedNormalized","_speedSampler","_speed_sampler_js__WEBPACK_IMPORTED_MODULE_1__","_speedNormalizeList","_isEarlyEofReconnecting","_paused","_resumeFrom","_onSeeked","_onRedirect","_selectSeekHandler","_selectLoader","_createLoader","IOController","_xhr_range_loader_js__WEBPACK_IMPORTED_MODULE_5__","lastSecondKBps","_range_seek_handler_js__WEBPACK_IMPORTED_MODULE_7__","paramStart","paramEnd","_param_seek_handler_js__WEBPACK_IMPORTED_MODULE_8__","_utils_exception_js__WEBPACK_IMPORTED_MODULE_9__","_websocket_loader_js__WEBPACK_IMPORTED_MODULE_6__","_fetch_stream_loader_js__WEBPACK_IMPORTED_MODULE_3__","_xhr_moz_chunked_loader_js__WEBPACK_IMPORTED_MODULE_4__","needStashBuffer","onContentLengthKnown","onURLRedirect","_onLoaderChunkArrival","_onLoaderComplete","_onLoaderError","to","reset","bytes","_internalSeek","dropUnconsumed","_flushStashBuffer","requestRange","expectedBytes","bufferNewSize","newBuffer","stashOldArray","stashNewArray","normalized","stashSizeKB","bufferSize","_expandBuffer","chunks","contentLength","receivedLength","addBytes","KBps","_normalizeSpeed","_adjustStashSize","stashArray","_dispatchChunks","remainArray","remain","_loader_js__WEBPACK_IMPORTED_MODULE_2__","nextFrom","kIdle","kConnecting","kBuffering","kError","kComplete","EXCEPTION","HTTP_STATUS_CODE_INVALID","CONNECTING_TIMEOUT","EARLY_EOF","UNRECOVERABLE_EARLY_EOF","typeName","_startName","_endName","ParamSeekHandler","baseUrl","needAnd","seekedURL","baseURL","split","queryIndex","resultParams","pair","requireAnd","zeroStart","_zeroStart","RangeSeekHandler","_firstCheckpoint","_lastCheckpoint","_intervalBytes","_totalBytes","_lastSecondBytes","performance","now","_now","SpeedSampler","durationSeconds","currentKBps","_ws","WebSocketLoader","WebSocket","ws","binaryType","onopen","_onWebSocketOpen","onclose","_onWebSocketClose","_onWebSocketMessage","onerror","_onWebSocketError","_loader_js__WEBPACK_IMPORTED_MODULE_0__","_utils_exception_js__WEBPACK_IMPORTED_MODULE_1__","close","_dispatchArrayBuffer","reader_1","FileReader","onload","readAsArrayBuffer","arraybuffer","_xhr","MozChunkedLoader","xhr","XMLHttpRequest","responseType","onreadystatechange","onprogress","onloadend","_requestURL","_onReadyStateChange","_onProgress","_onLoadEnd","_onXhrError","setRequestHeader","send","responseURL","total","response","loaded","_chunkSizeKBList","_currentChunkSizeKB","_currentSpeedNormalized","_zeroSpeedChunkCount","_waitForTotalLength","_totalLengthReceived","_currentRequestURL","_currentRedirectedURL","_currentRequestRange","_lastTimeLoaded","RangeLoader","useRefTotalLength","_openSubRange","_internalOpen","chunkSize","_onLoad","_utils_exception_js__WEBPACK_IMPORTED_MODULE_3__","openNextRange","reportComplete","_utils_exception_js__WEBPACK_IMPORTED_MODULE_10__","onvLoadedMetadata","_onvLoadedMetadata","onvSeeking","_onvSeeking","onvCanPlay","_onvCanPlay","onvStalled","_onvStalled","onvProgress","_onvProgress","_requestSetTime","_seekpointRecord","_progressChecker","_msectl","_transmuxer","_mseSourceOpened","_hasPendingLoad","_receivedCanPlay","_statisticsInfo","chromeNeedIDRFix","_alwaysSeekKeyframe","unload","_player_events_js__WEBPACK_IMPORTED_MODULE_3__","_core_mse_controller_js__WEBPACK_IMPORTED_MODULE_6__","_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__","_onmseUpdateEnd","_onmseBufferFull","load","_player_errors_js__WEBPACK_IMPORTED_MODULE_8__","attachMediaElement","_core_transmuxer_js__WEBPACK_IMPORTED_MODULE_4__","_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__","appendMediaSegment","_suspendTransmuxer","_fillStatisticsInfo","play","volume","muted","playerType","HTMLVideoElement","hasQualityInfo","decoded","dropped","getVideoPlaybackQuality","quality","totalVideoFrames","droppedVideoFrames","webkitDecodedFrameCount","webkitDroppedFrameCount","decodedFrames","droppedFrames","currentRangeEnd","_checkProgressAndResume","needResume","directSeek","_isTimepointBuffered","directSeekBegin","directSeekBeginTime","videoBeginTime","idr","recordTime","clearTimeout","_checkAndApplyUnbufferedSeekpoint","stalled","media","seekPoint","_checkAndResumeStuckPlayback","_player_events_js__WEBPACK_IMPORTED_MODULE_1__","preload","mediaPrefix","HTMLAudioElement","videoWidth","videoHeight","NETWORK_ERROR","MEDIA_ERROR","OTHER_ERROR","NETWORK_EXCEPTION","_io_loader_js__WEBPACK_IMPORTED_MODULE_0__","NETWORK_STATUS_CODE_INVALID","NETWORK_TIMEOUT","NETWORK_UNRECOVERABLE_EARLY_EOF","MEDIA_MSE_ERROR","MEDIA_FORMAT_ERROR","_demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_1__","MEDIA_FORMAT_UNSUPPORTED","MEDIA_CODEC_UNSUPPORTED","PlayerEvents","AAC","MP4","types","avc1","avcC","btrt","dinf","dref","esds","ftyp","hdlr","mdat","mdhd","mdia","mfhd","minf","moof","moov","mp4a","mvex","mvhd","sdtp","stbl","stco","stsc","stsd","stsz","stts","tfdt","tfhd","traf","trak","trun","trex","tkhd","vmhd","smhd","charCodeAt","constants","FTYP","STSD_PREFIX","STTS","STSC","STCO","STSZ","HDLR_VIDEO","HDLR_AUDIO","DREF","SMHD","VMHD","datas","arrayCount","box","trackId","xmhd","mp3","sampleRate","configSize","baseMediaDecodeTime","sampleCount","isLeading","dependsOn","isDependedOn","hasRedundancy","isNonSync","_isLive","_dtsBase","_dtsBaseInited","_audioDtsBase","Infinity","_videoDtsBase","_audioNextDts","_videoNextDts","_audioStashedLastSample","_videoStashedLastSample","_audioMeta","_videoMeta","_audioSegmentInfoList","_core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__","_videoSegmentInfoList","_forceFirstIDR","_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__","_fillSilentAfterSeek","_mp3UseMpegAudio","_fillAudioTimestampGap","MP4Remuxer","producer","onDataAvailable","remux","onTrackMetadata","_onTrackMetadataReceived","audioTrack","videoTrack","_calculateDtsBase","_remuxVideo","_remuxAudio","metabox","_mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__","videoSample","audioSample","force","dtsCorrection","firstDts","lastDts","mpegRawTrack","firstSegmentAfterSeek","insertPrefixSilentFrame","mdatbox","mdatBytes","sample","firstSampleOriginalDts","isEmpty","lastSample_1","getLastSampleBefore","distance","expectedDts","firstSampleDts","videoSegment","silentUnit","_aac_silent_js__WEBPACK_IMPORTED_MODULE_2__","silentFrameDuration","mp4Samples","needFillSilentFrames","silentFrames","sampleDuration","curRefDts","maxAudioFramesDrift","frameCount","round","intDts","intDuration","frame","nextDts","latest","moofbox","_mergeBoxes","firstPts","lastPts","lastSample_2","syncPoint","appendSyncPoint","Browser","detect","ua","platform_match","matched","browser","majorVersion","platform","versionArray","major","string","minor","build","chrome","opr","safari","webkit","rv","iemobile","msie","edge","msedge","android","_message","RuntimeException","IllegalStateException","InvalidArgumentException","NotImplementedException","Log","tag","FORCE_GLOBAL_TAG","GLOBAL_TAG","ENABLE_CALLBACK","ENABLE_ERROR","log","ENABLE_INFO","ENABLE_WARN","ENABLE_DEBUG","debug","ENABLE_VERBOSE","_logger_js__WEBPACK_IMPORTED_MODULE_1__","enable","_notifyChange","globalTag","forceGlobalTag","enableVerbose","enableDebug","enableInfo","enableWarn","enableError","Polyfill","__proto__","output","source","install","checkContinuation","checkLength","decodeUTF8","out","fromCharCode","ucs4","__webpack_module_cache__","__webpack_modules__","a","g","route","useRoute","title","query","proname","showModal","ref","openPlayModal","flvPlayer","videoElementRef","flvPlayerEventHandler","switchPlayStatus","paused","onMounted","__exports__","cameraList"],"sourceRoot":""} \ No newline at end of file diff --git a/apps/com.awspaas.user.apps.managesite/monitor/js/403.38924796.js b/apps/com.awspaas.user.apps.managesite/monitor/js/403.38924796.js new file mode 100644 index 0000000..076d058 --- /dev/null +++ b/apps/com.awspaas.user.apps.managesite/monitor/js/403.38924796.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkmonitor"]=self["webpackChunkmonitor"]||[]).push([[403],{2980:function(a,e,m){m.r(e),m.d(e,{default:function(){return k}});var A=m(3396),i=m(7139),t=m(9242),n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATsAAADbCAMAAAAlMcbDAAAAQlBMVEXo6OgzMzOOjo53d3eCgoJVVVXd3d0+Pj6ZmZlKSkrGxsavr6+7u7vR0dGkpKRsbGxgYGBzc3M3NzdHR0dmZmZAQEDQm3gvAAABrUlEQVR4nO3aya6iQABA0Yc8mUR7/v9fbYpS5AFVJvYCOjlno4YNuSmtAT8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgP9P1TentMvet3dk3bnIaru97/CwqhfpiqLe+xYP6/IqXVE0e9/jUTVDnHOZFEbl5973eFSnIU6ZvvypXZp279PufbN2XbW+rF3G1C6s89YDULuMqd24zlvF0y7j0a7bXgdrl/FoV43tzsvL2mVM39lvm1sI7TKe82zZnte7L+0yrO/et9Wu6m/9/a12GRvt+jbMGtfxvXYZ63ZNHY+ebuGDdhmrdo90sZl2Gct24TxvWCPH1V6nXc6iXWgVasXXotEu40u7qpwO2fs49H5plzZvF9PV4yTxUX2f/+6xYdauGrdl9fRENlzSLuPZbpluOFsJCz3tkqZ21/EAb55uMH6JtUuYzu/GMdbG3cRT+NHTLuHeLqa7b8RmrFEyQru2/P0zpPvzY/VsOyTVLsF/Kv5BnEsz6o1Hj4yuL+ItZl6+uGT+uni6GXUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAXyLwB69VN3R2AAAAAElFTkSuQmCC",r=m.p+"../apps/com.awspaas.user.apps.managesite/monitor/img/empty.e6141d4d.png";const s=a=>((0,A.dD)("data-v-89e61e88"),a=a(),(0,A.Cn)(),a),c={class:"app-container"},l=s((()=>(0,A._)("option",{value:""},"请选择项目",-1))),d=["value"],o={key:0,class:"site-list"},u={class:"site-title"},p={class:"camera-list"},v=s((()=>(0,A._)("img",{class:"camera-image",src:n,mode:""},null,-1))),g={class:"camera-title"},w={class:"site-time"},_={key:1,class:"empty"},b=s((()=>(0,A._)("img",{src:r,alt:""},null,-1))),z=(0,A.Uk)(" 请选择项目 "),G=[b,z];function V(a,e,m,n,r,s){return(0,A.wg)(),(0,A.iD)("div",c,[(0,A.wy)((0,A._)("select",{name:"pets","onUpdate:modelValue":e[0]||(e[0]=a=>r.proid=a),id:"proj-select"},[l,((0,A.wg)(!0),(0,A.iD)(A.HY,null,(0,A.Ko)(r.projectList,(a=>((0,A.wg)(),(0,A.iD)("option",{value:a.id},(0,i.zw)(a.name),9,d)))),256))],512),[[t.bM,r.proid]]),r.proid?((0,A.wg)(),(0,A.iD)("div",o,[((0,A.wg)(!0),(0,A.iD)(A.HY,null,(0,A.Ko)(r.siteList,(a=>((0,A.wg)(),(0,A.iD)("div",{class:"site-item",key:a.id,onClick:e[1]||(e[1]=(...a)=>s.routerGo&&s.routerGo(...a))},[(0,A._)("div",u,[(0,A._)("text",null,(0,i.zw)(a.name),1)]),(0,A._)("div",p,[((0,A.wg)(!0),(0,A.iD)(A.HY,null,(0,A.Ko)(a.camera_list,((a,e)=>((0,A.wg)(),(0,A.iD)("div",{class:"camera-item",key:e},[v,(0,A._)("div",g,(0,i.zw)(a.name),1)])))),128))]),(0,A._)("div",w,[(0,A._)("text",null,(0,i.zw)(a.time),1)])])))),128))])):((0,A.wg)(),(0,A.iD)("div",_,G))])}m(7658);var y={components:{},mounted(){},data(){return{proid:"",projectList:[{name:"测试办公楼扩建",id:1},{name:"项目二",id:2},{name:"项目三",id:3}],siteList:[{id:1,name:"项目场地1",time:"2022-09-12 12:12:12",camera_list:[{name:"camera1"},{name:"camera1"},{name:"camera1"}]},{id:2,name:"项目场地2",time:"2022-09-12 12:12:12",camera_list:[{name:"camera1"},{name:"camera1"},{name:"camera1"}]},{id:3,name:"项目场地2",time:"2022-09-12 12:12:12",camera_list:[{name:"camera1"},{name:"camera1"},{name:"camera1"}]},{id:4,name:"项目场地2",time:"2022-09-12 12:12:12",camera_list:[{name:"camera1"},{name:"camera1"},{name:"camera1"}]},{id:5,name:"项目场地2",time:"2022-09-12 12:12:12",camera_list:[{name:"camera1"},{name:"camera1"},{name:"camera1"}]},{id:6,name:"项目场地2",time:"2022-09-12 12:12:12",camera_list:[{name:"camera1"},{name:"camera1"},{name:"camera1"}]},{id:7,name:"项目场地2",time:"2022-09-12 12:12:12",camera_list:[{name:"camera1"},{name:"camera1"},{name:"camera1"}]},{id:8,name:"项目场地2",time:"2022-09-12 12:12:12",camera_list:[{name:"camera1"},{name:"camera1"},{name:"camera1"}]}]}},methods:{routerGo(){console.log("detail"),this.$router.push({path:"/detail",query:{proname:this.projectList.find((a=>a.id==this.proid)).name}})}}},D=m(89);const Z=(0,D.Z)(y,[["render",V],["__scopeId","data-v-89e61e88"]]);var k=Z}}]); +//# sourceMappingURL=403.38924796.js.map \ No newline at end of file diff --git a/apps/com.awspaas.user.apps.managesite/monitor/js/403.38924796.js.map b/apps/com.awspaas.user.apps.managesite/monitor/js/403.38924796.js.map new file mode 100644 index 0000000..7f7c083 --- /dev/null +++ b/apps/com.awspaas.user.apps.managesite/monitor/js/403.38924796.js.map @@ -0,0 +1 @@ +{"version":3,"file":"../apps/com.awspaas.user.apps.managesite/monitor/js/403.38924796.js","mappings":"slCACOA,MAAM,iB,UAgCPC,EAAAA,EAAAA,GAA+B,UAAvBC,MAAM,IAAG,SAAK,K,qBAKNF,MAAM,a,GAQfA,MAAM,c,GAGNA,MAAM,e,UAMPC,EAAAA,EAAAA,GAIE,OAHAD,MAAM,eACNG,IAAAC,EACAC,KAAK,IAHP,W,GAKKL,MAAM,gB,GAKVA,MAAM,a,SAMHA,MAAM,S,UAChBC,EAAAA,EAAAA,GAAwC,OAAnCE,IAAAG,EAA0BC,IAAI,IAAnC,W,WAAwC,W,GAAxCC,EAAAA,G,0CAvEJC,EAAAA,EAAAA,IA0EM,MA1EN,EA0EM,WA3CJR,EAAAA,EAAAA,GAKS,UALDS,KAAK,O,qCAAgBC,EAAAA,MAAKC,GAAEC,GAAG,eAAvC,CACEC,IAAAA,EAAAA,EAAAA,KAAAA,IACAL,EAAAA,EAAAA,IAESM,EAAAA,GAAA,MAAAC,EAAAA,EAAAA,IAFcL,EAAAA,aAARM,K,WAAfR,EAAAA,EAAAA,IAES,UAF4BP,MAAOe,EAAKJ,KAAjD,QACKI,EAAKP,MAAI,EAAAQ,MADd,OAFF,YAA6BP,EAAAA,SAMlBA,EAAAA,QAAAA,EAAAA,EAAAA,OAAXF,EAAAA,EAAAA,IAgCM,MAhCN,EAgCM,gBA9BJA,EAAAA,EAAAA,IA4BMM,EAAAA,GAAA,MAAAC,EAAAA,EAAAA,IA1BWL,EAAAA,UAARM,K,WAFTR,EAAAA,EAAAA,IA4BM,OA3BJT,MAAM,YAELmB,IAAKF,EAAKJ,GACVO,QAAK,oBAAEC,EAAAA,UAAAA,EAAAA,YAAAA,KAJV,EAMEpB,EAAAA,EAAAA,GAEM,MAFN,EAEM,EADJA,EAAAA,EAAAA,GAA4B,aAAAqB,EAAAA,EAAAA,IAAnBL,EAAKP,MAAI,MAEpBT,EAAAA,EAAAA,GAeM,MAfN,EAeM,gBAdJQ,EAAAA,EAAAA,IAaMM,EAAAA,GAAA,MAAAC,EAAAA,EAAAA,IAX0BC,EAAKM,aAAW,CAAtCC,EAAYC,M,WAFtBhB,EAAAA,EAAAA,IAaM,OAZJT,MAAM,cAELmB,IAAKM,GAHR,CAKEC,GAKAzB,EAAAA,EAAAA,GAEM,MAFN,GAEMqB,EAAAA,EAAAA,IADDE,EAAWd,MAAI,QAXtB,SAeFT,EAAAA,EAAAA,GAEM,MAFN,EAEM,EADJA,EAAAA,EAAAA,GAA4B,aAAAqB,EAAAA,EAAAA,IAAnBL,EAAKU,MAAI,UA1BtB,WAFF,WAiCAlB,EAAAA,EAAAA,IAGM,MAHN,EAGMmB,K,aAWV,GACEC,WAAY,GAIZC,UAAY,EACZC,OACE,MAAO,CACLC,MAAO,GACPC,YAAa,CACX,CACEvB,KAAM,UACNG,GAAI,GAEN,CACEH,KAAM,MACNG,GAAI,GAEN,CACEH,KAAM,MACNG,GAAI,IAGRqB,SAAU,CACR,CACErB,GAAI,EACJH,KAAM,QACNiB,KAAM,sBACNJ,YAAa,CACX,CACEb,KAAM,WAER,CACEA,KAAM,WAER,CACEA,KAAM,aAIZ,CACEG,GAAI,EACJH,KAAM,QACNiB,KAAM,sBACNJ,YAAa,CACX,CACEb,KAAM,WAER,CACEA,KAAM,WAER,CACEA,KAAM,aAIZ,CACEG,GAAI,EACJH,KAAM,QACNiB,KAAM,sBACNJ,YAAa,CACX,CACEb,KAAM,WAER,CACEA,KAAM,WAER,CACEA,KAAM,aAIZ,CACEG,GAAI,EACJH,KAAM,QACNiB,KAAM,sBACNJ,YAAa,CACX,CACEb,KAAM,WAER,CACEA,KAAM,WAER,CACEA,KAAM,aAIZ,CACEG,GAAI,EACJH,KAAM,QACNiB,KAAM,sBACNJ,YAAa,CACX,CACEb,KAAM,WAER,CACEA,KAAM,WAER,CACEA,KAAM,aAIZ,CACEG,GAAI,EACJH,KAAM,QACNiB,KAAM,sBACNJ,YAAa,CACX,CACEb,KAAM,WAER,CACEA,KAAM,WAER,CACEA,KAAM,aAIZ,CACEG,GAAI,EACJH,KAAM,QACNiB,KAAM,sBACNJ,YAAa,CACX,CACEb,KAAM,WAER,CACEA,KAAM,WAER,CACEA,KAAM,aAIZ,CACEG,GAAI,EACJH,KAAM,QACNiB,KAAM,sBACNJ,YAAa,CACX,CACEb,KAAM,WAER,CACEA,KAAM,WAER,CACEA,KAAM,cAMjB,EACDyB,QAAS,CACPC,WACEC,QAAQC,IAAI,UAEZC,KAAKC,QAAQC,KAAK,CAChBC,KAAM,UACNC,MAAO,CACLC,QAASL,KAAKN,YAAYY,MAAMC,GAAOA,EAAGjC,IAAM0B,KAAKP,QAAOtB,OAOjE,I,QCtPL,MAAMqC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O","sources":["webpack://monitor/./src/components/HelloWorld.vue","webpack://monitor/./src/components/HelloWorld.vue?bd04"],"sourcesContent":["\n\n\n\n\n","import { render } from \"./HelloWorld.vue?vue&type=template&id=89e61e88&scoped=true\"\nimport script from \"./HelloWorld.vue?vue&type=script&lang=js\"\nexport * from \"./HelloWorld.vue?vue&type=script&lang=js\"\n\nimport \"./HelloWorld.vue?vue&type=style&index=0&id=89e61e88&lang=css\"\nimport \"./HelloWorld.vue?vue&type=style&index=1&id=89e61e88&scoped=true&lang=scss\"\n\nimport exportComponent from \"C:\\\\Users\\\\quant\\\\Documents\\\\monitor\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-89e61e88\"]])\n\nexport default __exports__"],"names":["class","_createElementVNode","value","src","_imports_0","mode","_imports_1","alt","_hoisted_11","_createElementBlock","name","$data","$event","id","_hoisted_2","_Fragment","_renderList","item","_hoisted_3","key","onClick","$options","_toDisplayString","camera_list","cameraItem","index","_hoisted_7","time","_hoisted_13","components","mounted","data","proid","projectList","siteList","methods","routerGo","console","log","this","$router","push","path","query","proname","find","el","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/apps/com.awspaas.user.apps.managesite/monitor/js/app.b413f5f8.js b/apps/com.awspaas.user.apps.managesite/monitor/js/app.b413f5f8.js new file mode 100644 index 0000000..e9a1843 --- /dev/null +++ b/apps/com.awspaas.user.apps.managesite/monitor/js/app.b413f5f8.js @@ -0,0 +1,2 @@ +(function(){"use strict";var e={2763:function(e,n,t){var r=t(9242),o=t(3396);function i(e,n,t,r,i,u){const a=(0,o.up)("router-view");return(0,o.wg)(),(0,o.j4)(a)}var u={name:"App",components:{}},a=t(89);const c=(0,a.Z)(u,[["render",i]]);var f=c,s=t(2483);const l=[{path:"/",component:()=>t.e(403).then(t.bind(t,2980))},{path:"/detail",component:()=>t.e(308).then(t.bind(t,3308))}],d=(0,s.p7)({history:(0,s.r5)(),routes:l});(0,r.ri)(f).use(d).mount("#app")}},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={exports:{}};return e[r](i,i.exports,t),i.exports}t.m=e,function(){var e=[];t.O=function(n,r,o,i){if(!r){var u=1/0;for(s=0;s=i)&&Object.keys(t.O).every((function(e){return t.O[e](r[c])}))?r.splice(c--,1):(a=!1,i0&&e[s-1][2]>i;s--)e[s]=e[s-1];e[s]=[r,o,i]}}(),function(){t.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(n,{a:n}),n}}(),function(){t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})}}(),function(){t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))}}(),function(){t.u=function(e){return"../apps/com.awspaas.user.apps.managesite/monitor/js/"+e+"."+{308:"afcd382f",403:"38924796"}[e]+".js"}}(),function(){t.miniCssF=function(e){return"../apps/com.awspaas.user.apps.managesite/monitor/css/"+e+"."+{308:"6da27b04",403:"f2146c4a"}[e]+".css"}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){var e={},n="monitor:";t.l=function(r,o,i,u){if(e[r])e[r].push(o);else{var a,c;if(void 0!==i)for(var f=document.getElementsByTagName("script"),s=0;s\n \n \n \n \n\n\n\n\n\n","import { render } from \"./App.vue?vue&type=template&id=2ff58470\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=2ff58470&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\quant\\\\Documents\\\\monitor\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from \"vue\";\n// import \"vant/lib/index.css\";\nimport App from \"./App.vue\";\nimport \"modern-normalize/modern-normalize.css\";\nimport { createWebHashHistory, createRouter } from \"vue-router\";\n// import { apply } from \"core-js/fn/reflect\";\n\n// const Home = { template: \"
Home
\" };\n// const About = { template: \"
About
\" };\n\n// 2. 定义一些路由\n// 每个路由都需要映射到一个组件。\n// 我们后面再讨论嵌套路由。\nconst routes = [\n { path: \"/\", component: () => import(\"./components/HelloWorld.vue\") },\n { path: \"/detail\", component: () => import(\"./components/site-detail.vue\") },\n];\n\n// 3. 创建路由实例并传递 `routes` 配置\n// 你可以在这里输入更多的配置,但我们在这里\n// 暂时保持简单\nconst router = createRouter({\n // 4. 内部提供了 history 模式的实现。为了简单起见,我们在这里使用 hash 模式。\n history: createWebHashHistory(),\n routes, // `routes: routes` 的缩写\n});\n\ncreateApp(App).use(router).mount(\"#app\");\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"../apps/com.awspaas.user.apps.managesite/monitor/js/\" + chunkId + \".\" + {\"308\":\"afcd382f\",\"403\":\"38924796\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"../apps/com.awspaas.user.apps.managesite/monitor/css/\" + chunkId + \".\" + {\"308\":\"6da27b04\",\"403\":\"f2146c4a\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"monitor:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"308\":1,\"403\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmonitor\"] = self[\"webpackChunkmonitor\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(2763); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_createBlock","_component_router_view","name","components","__exports__","render","routes","path","component","router","createRouter","history","createWebHashHistory","createApp","App","use","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","call","inProgress","dataWebpackPrefix","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","p","createStylesheet","fullhref","resolve","reject","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","request","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","then","installedChunks","installedChunkData","promise","error","loadingEnded","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/apps/com.awspaas.user.apps.managesite/monitor/js/chunk-vendors.cfba557b.js b/apps/com.awspaas.user.apps.managesite/monitor/js/chunk-vendors.cfba557b.js new file mode 100644 index 0000000..96575dd --- /dev/null +++ b/apps/com.awspaas.user.apps.managesite/monitor/js/chunk-vendors.cfba557b.js @@ -0,0 +1,8 @@ +(self["webpackChunkmonitor"]=self["webpackChunkmonitor"]||[]).push([[998],{9662:function(e,t,n){var r=n(614),o=n(6330),i=TypeError;e.exports=function(e){if(r(e))return e;throw i(o(e)+" is not a function")}},6077:function(e,t,n){var r=n(614),o=String,i=TypeError;e.exports=function(e){if("object"==typeof e||r(e))return e;throw i("Can't set "+o(e)+" as a prototype")}},9670:function(e,t,n){var r=n(111),o=String,i=TypeError;e.exports=function(e){if(r(e))return e;throw i(o(e)+" is not an object")}},1318:function(e,t,n){var r=n(5656),o=n(1400),i=n(6244),s=function(e){return function(t,n,s){var c,u=r(t),l=i(u),a=o(s,l);if(e&&n!=n){while(l>a)if(c=u[a++],c!=c)return!0}else for(;l>a;a++)if((e||a in u)&&u[a]===n)return e||a||0;return!e&&-1}};e.exports={includes:s(!0),indexOf:s(!1)}},3658:function(e,t,n){"use strict";var r=n(9781),o=n(3157),i=TypeError,s=Object.getOwnPropertyDescriptor,c=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=c?function(e,t){if(o(e)&&!s(e,"length").writable)throw i("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},4326:function(e,t,n){var r=n(1702),o=r({}.toString),i=r("".slice);e.exports=function(e){return i(o(e),8,-1)}},648:function(e,t,n){var r=n(1694),o=n(614),i=n(4326),s=n(5112),c=s("toStringTag"),u=Object,l="Arguments"==i(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(n){}};e.exports=r?i:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=a(t=u(e),c))?n:l?i(t):"Object"==(r=i(t))&&o(t.callee)?"Arguments":r}},9920:function(e,t,n){var r=n(2597),o=n(3887),i=n(1236),s=n(3070);e.exports=function(e,t,n){for(var c=o(t),u=s.f,l=i.f,a=0;an)throw t("Maximum allowed index exceeded");return e}},8113:function(e,t,n){var r=n(5005);e.exports=r("navigator","userAgent")||""},7392:function(e,t,n){var r,o,i=n(7854),s=n(8113),c=i.process,u=i.Deno,l=c&&c.versions||u&&u.version,a=l&&l.v8;a&&(r=a.split("."),o=r[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&s&&(r=s.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/),r&&(o=+r[1]))),e.exports=o},748:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},1060:function(e,t,n){var r=n(1702),o=Error,i=r("".replace),s=function(e){return String(o(e).stack)}("zxcasd"),c=/\n\s*at [^:]*:[^\n]*/,u=c.test(s);e.exports=function(e,t){if(u&&"string"==typeof e&&!o.prepareStackTrace)while(t--)e=i(e,c,"");return e}},2914:function(e,t,n){var r=n(7293),o=n(9114);e.exports=!r((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",o(1,7)),7!==e.stack)}))},2109:function(e,t,n){var r=n(7854),o=n(1236).f,i=n(8880),s=n(8052),c=n(3072),u=n(9920),l=n(4705);e.exports=function(e,t){var n,a,f,p,d,h,v=e.target,m=e.global,g=e.stat;if(a=m?r:g?r[v]||c(v,{}):(r[v]||{}).prototype,a)for(f in t){if(d=t[f],e.dontCallGetSet?(h=o(a,f),p=h&&h.value):p=a[f],n=l(m?f:v+(g?".":"#")+f,e.forced),!n&&void 0!==p){if(typeof d==typeof p)continue;u(d,p)}(e.sham||p&&p.sham)&&i(d,"sham",!0),s(a,f,d,e)}}},7293:function(e){e.exports=function(e){try{return!!e()}catch(t){return!0}}},2104:function(e,t,n){var r=n(4374),o=Function.prototype,i=o.apply,s=o.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?s.bind(i):function(){return s.apply(i,arguments)})},4374:function(e,t,n){var r=n(7293);e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},6916:function(e,t,n){var r=n(4374),o=Function.prototype.call;e.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},6530:function(e,t,n){var r=n(9781),o=n(2597),i=Function.prototype,s=r&&Object.getOwnPropertyDescriptor,c=o(i,"name"),u=c&&"something"===function(){}.name,l=c&&(!r||r&&s(i,"name").configurable);e.exports={EXISTS:c,PROPER:u,CONFIGURABLE:l}},1702:function(e,t,n){var r=n(4374),o=Function.prototype,i=o.bind,s=o.call,c=r&&i.bind(s,s);e.exports=r?function(e){return e&&c(e)}:function(e){return e&&function(){return s.apply(e,arguments)}}},5005:function(e,t,n){var r=n(7854),o=n(614),i=function(e){return o(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e]):r[e]&&r[e][t]}},8173:function(e,t,n){var r=n(9662),o=n(8554);e.exports=function(e,t){var n=e[t];return o(n)?void 0:r(n)}},7854:function(e,t,n){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},2597:function(e,t,n){var r=n(1702),o=n(7908),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return i(o(e),t)}},3501:function(e){e.exports={}},4664:function(e,t,n){var r=n(9781),o=n(7293),i=n(317);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},8361:function(e,t,n){var r=n(1702),o=n(7293),i=n(4326),s=Object,c=r("".split);e.exports=o((function(){return!s("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?c(e,""):s(e)}:s},9587:function(e,t,n){var r=n(614),o=n(111),i=n(7674);e.exports=function(e,t,n){var s,c;return i&&r(s=t.constructor)&&s!==n&&o(c=s.prototype)&&c!==n.prototype&&i(e,c),e}},2788:function(e,t,n){var r=n(1702),o=n(614),i=n(5465),s=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return s(e)}),e.exports=i.inspectSource},8340:function(e,t,n){var r=n(111),o=n(8880);e.exports=function(e,t){r(t)&&"cause"in t&&o(e,"cause",t.cause)}},9909:function(e,t,n){var r,o,i,s=n(4811),c=n(7854),u=n(1702),l=n(111),a=n(8880),f=n(2597),p=n(5465),d=n(6200),h=n(3501),v="Object already initialized",m=c.TypeError,g=c.WeakMap,y=function(e){return i(e)?o(e):r(e,{})},b=function(e){return function(t){var n;if(!l(t)||(n=o(t)).type!==e)throw m("Incompatible receiver, "+e+" required");return n}};if(s||p.state){var _=p.state||(p.state=new g),w=u(_.get),x=u(_.has),k=u(_.set);r=function(e,t){if(x(_,e))throw m(v);return t.facade=e,k(_,e,t),t},o=function(e){return w(_,e)||{}},i=function(e){return x(_,e)}}else{var S=d("state");h[S]=!0,r=function(e,t){if(f(e,S))throw m(v);return t.facade=e,a(e,S,t),t},o=function(e){return f(e,S)?e[S]:{}},i=function(e){return f(e,S)}}e.exports={set:r,get:o,has:i,enforce:y,getterFor:b}},3157:function(e,t,n){var r=n(4326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},614:function(e){e.exports=function(e){return"function"==typeof e}},4705:function(e,t,n){var r=n(7293),o=n(614),i=/#|\.prototype\./,s=function(e,t){var n=u[c(e)];return n==a||n!=l&&(o(t)?r(t):!!t)},c=s.normalize=function(e){return String(e).replace(i,".").toLowerCase()},u=s.data={},l=s.NATIVE="N",a=s.POLYFILL="P";e.exports=s},8554:function(e){e.exports=function(e){return null===e||void 0===e}},111:function(e,t,n){var r=n(614),o="object"==typeof document&&document.all,i="undefined"==typeof o&&void 0!==o;e.exports=i?function(e){return"object"==typeof e?null!==e:r(e)||e===o}:function(e){return"object"==typeof e?null!==e:r(e)}},1913:function(e){e.exports=!1},2190:function(e,t,n){var r=n(5005),o=n(614),i=n(7976),s=n(3307),c=Object;e.exports=s?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return o(t)&&i(t.prototype,c(e))}},6244:function(e,t,n){var r=n(7466);e.exports=function(e){return r(e.length)}},6339:function(e,t,n){var r=n(7293),o=n(614),i=n(2597),s=n(9781),c=n(6530).CONFIGURABLE,u=n(2788),l=n(9909),a=l.enforce,f=l.get,p=Object.defineProperty,d=s&&!r((function(){return 8!==p((function(){}),"length",{value:8}).length})),h=String(String).split("String"),v=e.exports=function(e,t,n){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!i(e,"name")||c&&e.name!==t)&&(s?p(e,"name",{value:t,configurable:!0}):e.name=t),d&&n&&i(n,"arity")&&e.length!==n.arity&&p(e,"length",{value:n.arity});try{n&&i(n,"constructor")&&n.constructor?s&&p(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(o){}var r=a(e);return i(r,"source")||(r.source=h.join("string"==typeof t?t:"")),e};Function.prototype.toString=v((function(){return o(this)&&f(this).source||u(this)}),"toString")},4758:function(e){var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?n:t)(r)}},6277:function(e,t,n){var r=n(1340);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:r(e)}},3070:function(e,t,n){var r=n(9781),o=n(4664),i=n(3353),s=n(9670),c=n(4948),u=TypeError,l=Object.defineProperty,a=Object.getOwnPropertyDescriptor,f="enumerable",p="configurable",d="writable";t.f=r?i?function(e,t,n){if(s(e),t=c(t),s(n),"function"===typeof e&&"prototype"===t&&"value"in n&&d in n&&!n[d]){var r=a(e,t);r&&r[d]&&(e[t]=n.value,n={configurable:p in n?n[p]:r[p],enumerable:f in n?n[f]:r[f],writable:!1})}return l(e,t,n)}:l:function(e,t,n){if(s(e),t=c(t),s(n),o)try{return l(e,t,n)}catch(r){}if("get"in n||"set"in n)throw u("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},1236:function(e,t,n){var r=n(9781),o=n(6916),i=n(5296),s=n(9114),c=n(5656),u=n(4948),l=n(2597),a=n(4664),f=Object.getOwnPropertyDescriptor;t.f=r?f:function(e,t){if(e=c(e),t=u(t),a)try{return f(e,t)}catch(n){}if(l(e,t))return s(!o(i.f,e,t),e[t])}},8006:function(e,t,n){var r=n(6324),o=n(748),i=o.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},5181:function(e,t){t.f=Object.getOwnPropertySymbols},7976:function(e,t,n){var r=n(1702);e.exports=r({}.isPrototypeOf)},6324:function(e,t,n){var r=n(1702),o=n(2597),i=n(5656),s=n(1318).indexOf,c=n(3501),u=r([].push);e.exports=function(e,t){var n,r=i(e),l=0,a=[];for(n in r)!o(c,n)&&o(r,n)&&u(a,n);while(t.length>l)o(r,n=t[l++])&&(~s(a,n)||u(a,n));return a}},5296:function(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);t.f=o?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},7674:function(e,t,n){var r=n(1702),o=n(9670),i=n(6077);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{e=r(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set),e(n,[]),t=n instanceof Array}catch(s){}return function(n,r){return o(n),i(r),t?e(n,r):n.__proto__=r,n}}():void 0)},2140:function(e,t,n){var r=n(6916),o=n(614),i=n(111),s=TypeError;e.exports=function(e,t){var n,c;if("string"===t&&o(n=e.toString)&&!i(c=r(n,e)))return c;if(o(n=e.valueOf)&&!i(c=r(n,e)))return c;if("string"!==t&&o(n=e.toString)&&!i(c=r(n,e)))return c;throw s("Can't convert object to primitive value")}},3887:function(e,t,n){var r=n(5005),o=n(1702),i=n(8006),s=n(5181),c=n(9670),u=o([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(c(e)),n=s.f;return n?u(t,n(e)):t}},2626:function(e,t,n){var r=n(3070).f;e.exports=function(e,t,n){n in e||r(e,n,{configurable:!0,get:function(){return t[n]},set:function(e){t[n]=e}})}},4488:function(e,t,n){var r=n(8554),o=TypeError;e.exports=function(e){if(r(e))throw o("Can't call method on "+e);return e}},6200:function(e,t,n){var r=n(2309),o=n(9711),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},5465:function(e,t,n){var r=n(7854),o=n(3072),i="__core-js_shared__",s=r[i]||o(i,{});e.exports=s},2309:function(e,t,n){var r=n(1913),o=n(5465);(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.25.1",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.25.1/LICENSE",source:"https://github.com/zloirock/core-js"})},6293:function(e,t,n){var r=n(7392),o=n(7293);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},1400:function(e,t,n){var r=n(9303),o=Math.max,i=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):i(n,t)}},5656:function(e,t,n){var r=n(8361),o=n(4488);e.exports=function(e){return r(o(e))}},9303:function(e,t,n){var r=n(4758);e.exports=function(e){var t=+e;return t!==t||0===t?0:r(t)}},7466:function(e,t,n){var r=n(9303),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},7908:function(e,t,n){var r=n(4488),o=Object;e.exports=function(e){return o(r(e))}},7593:function(e,t,n){var r=n(6916),o=n(111),i=n(2190),s=n(8173),c=n(2140),u=n(5112),l=TypeError,a=u("toPrimitive");e.exports=function(e,t){if(!o(e)||i(e))return e;var n,u=s(e,a);if(u){if(void 0===t&&(t="default"),n=r(u,e,t),!o(n)||i(n))return n;throw l("Can't convert object to primitive value")}return void 0===t&&(t="number"),c(e,t)}},4948:function(e,t,n){var r=n(7593),o=n(2190);e.exports=function(e){var t=r(e,"string");return o(t)?t:t+""}},1694:function(e,t,n){var r=n(5112),o=r("toStringTag"),i={};i[o]="z",e.exports="[object z]"===String(i)},1340:function(e,t,n){var r=n(648),o=String;e.exports=function(e){if("Symbol"===r(e))throw TypeError("Cannot convert a Symbol value to a string");return o(e)}},6330:function(e){var t=String;e.exports=function(e){try{return t(e)}catch(n){return"Object"}}},9711:function(e,t,n){var r=n(1702),o=0,i=Math.random(),s=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+s(++o+i,36)}},3307:function(e,t,n){var r=n(6293);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:function(e,t,n){var r=n(9781),o=n(7293);e.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},4811:function(e,t,n){var r=n(7854),o=n(614),i=r.WeakMap;e.exports=o(i)&&/native code/.test(String(i))},5112:function(e,t,n){var r=n(7854),o=n(2309),i=n(2597),s=n(9711),c=n(6293),u=n(3307),l=o("wks"),a=r.Symbol,f=a&&a["for"],p=u?a:a&&a.withoutSetter||s;e.exports=function(e){if(!i(l,e)||!c&&"string"!=typeof l[e]){var t="Symbol."+e;c&&i(a,e)?l[e]=a[e]:l[e]=u&&f?f(t):p(t)}return l[e]}},9191:function(e,t,n){"use strict";var r=n(5005),o=n(2597),i=n(8880),s=n(7976),c=n(7674),u=n(9920),l=n(2626),a=n(9587),f=n(6277),p=n(8340),d=n(1060),h=n(2914),v=n(9781),m=n(1913);e.exports=function(e,t,n,g){var y="stackTraceLimit",b=g?2:1,_=e.split("."),w=_[_.length-1],x=r.apply(null,_);if(x){var k=x.prototype;if(!m&&o(k,"cause")&&delete k.cause,!n)return x;var S=r("Error"),C=t((function(e,t){var n=f(g?t:e,void 0),r=g?new x(e):new x;return void 0!==n&&i(r,"message",n),h&&i(r,"stack",d(r.stack,2)),this&&s(k,this)&&a(r,this,C),arguments.length>b&&p(r,arguments[b]),r}));if(C.prototype=k,"Error"!==w?c?c(C,S):u(C,S,{name:!0}):v&&y in x&&(l(C,x,y),l(C,x,"prepareStackTrace")),u(C,x),!m)try{k.name!==w&&i(k,"name",w),k.constructor=C}catch(E){}return C}}},7658:function(e,t,n){"use strict";var r=n(2109),o=n(7908),i=n(6244),s=n(3658),c=n(7207),u=n(7293),l=u((function(){return 4294967297!==[].push.call({length:4294967296},1)})),a=!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}();r({target:"Array",proto:!0,arity:1,forced:l||a},{push:function(e){var t=o(this),n=i(t),r=arguments.length;c(n+r);for(var u=0;u{const t=new Set(e);return t.w=0,t.n=0,t},u=e=>(e.w&h)>0,l=e=>(e.n&h)>0,a=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{("length"===t||t>=o)&&l.push(e)}));else switch(void 0!==n&&l.push(u.get(n)),t){case"add":(0,r.kJ)(e)?(0,r.S0)(n)&&l.push(u.get("length")):(l.push(u.get(g)),(0,r._N)(e)&&l.push(u.get(y)));break;case"delete":(0,r.kJ)(e)||(l.push(u.get(g)),(0,r._N)(e)&&l.push(u.get(y)));break;case"set":(0,r._N)(e)&&l.push(u.get(g));break}if(1===l.length)l[0]&&R(l[0]);else{const e=[];for(const t of l)t&&e.push(...t);R(c(e))}}function R(e,t){const n=(0,r.kJ)(e)?e:[...e];for(const r of n)r.computed&&j(r,t);for(const r of n)r.computed||j(r,t)}function j(e,t){(e!==m||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const P=(0,r.fY)("__proto__,__v_isRef,__isVue"),T=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(r.yk)),A=$(),F=$(!1,!0),I=$(!0),M=L();function L(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=Re(this);for(let t=0,o=this.length;t{e[t]=function(...e){k();const n=Re(this)[t].apply(this,e);return S(),n}})),e}function $(e=!1,t=!1){return function(n,o,i){if("__v_isReactive"===o)return!e;if("__v_isReadonly"===o)return e;if("__v_isShallow"===o)return t;if("__v_raw"===o&&i===(e?t?ge:me:t?ve:he).get(n))return n;const s=(0,r.kJ)(n);if(!e&&s&&(0,r.RI)(M,o))return Reflect.get(M,o,i);const c=Reflect.get(n,o,i);return((0,r.yk)(o)?T.has(o):P(o))?c:(e||C(n,"get",o),t?c:Ie(c)?s&&(0,r.S0)(o)?c:c.value:(0,r.Kn)(c)?e?xe(c):_e(c):c)}}const U=J(),N=J(!0);function J(e=!1){return function(t,n,o,i){let s=t[n];if(Ce(s)&&Ie(s)&&!Ie(o))return!1;if(!e&&(Ee(o)||Ce(o)||(s=Re(s),o=Re(o)),!(0,r.kJ)(t)&&Ie(s)&&!Ie(o)))return s.value=o,!0;const c=(0,r.kJ)(t)&&(0,r.S0)(n)?Number(n)e,W=e=>Reflect.getPrototypeOf(e);function z(e,t,n=!1,r=!1){e=e["__v_raw"];const o=Re(e),i=Re(t);n||(t!==i&&C(o,"get",t),C(o,"get",i));const{has:s}=W(o),c=r?H:n?Te:Pe;return s.call(o,t)?c(e.get(t)):s.call(o,i)?c(e.get(i)):void(e!==o&&e.get(t))}function X(e,t=!1){const n=this["__v_raw"],r=Re(n),o=Re(e);return t||(e!==o&&C(r,"has",e),C(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function Z(e,t=!1){return e=e["__v_raw"],!t&&C(Re(e),"iterate",g),Reflect.get(e,"size",e)}function Y(e){e=Re(e);const t=Re(this),n=W(t),r=n.has.call(t,e);return r||(t.add(e),O(t,"add",e,e)),this}function Q(e,t){t=Re(t);const n=Re(this),{has:o,get:i}=W(n);let s=o.call(n,e);s||(e=Re(e),s=o.call(n,e));const c=i.call(n,e);return n.set(e,t),s?(0,r.aU)(t,c)&&O(n,"set",e,t,c):O(n,"add",e,t),this}function ee(e){const t=Re(this),{has:n,get:r}=W(t);let o=n.call(t,e);o||(e=Re(e),o=n.call(t,e));const i=r?r.call(t,e):void 0,s=t.delete(e);return o&&O(t,"delete",e,void 0,i),s}function te(){const e=Re(this),t=0!==e.size,n=void 0,r=e.clear();return t&&O(e,"clear",void 0,void 0,n),r}function ne(e,t){return function(n,r){const o=this,i=o["__v_raw"],s=Re(i),c=t?H:e?Te:Pe;return!e&&C(s,"iterate",g),i.forEach(((e,t)=>n.call(r,c(e),c(t),o)))}}function re(e,t,n){return function(...o){const i=this["__v_raw"],s=Re(i),c=(0,r._N)(s),u="entries"===e||e===Symbol.iterator&&c,l="keys"===e&&c,a=i[e](...o),f=n?H:t?Te:Pe;return!t&&C(s,"iterate",l?y:g),{next(){const{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:u?[f(e[0]),f(e[1])]:f(e),done:t}},[Symbol.iterator](){return this}}}}function oe(e){return function(...t){return"delete"!==e&&this}}function ie(){const e={get(e){return z(this,e)},get size(){return Z(this)},has:X,add:Y,set:Q,delete:ee,clear:te,forEach:ne(!1,!1)},t={get(e){return z(this,e,!1,!0)},get size(){return Z(this)},has:X,add:Y,set:Q,delete:ee,clear:te,forEach:ne(!1,!0)},n={get(e){return z(this,e,!0)},get size(){return Z(this,!0)},has(e){return X.call(this,e,!0)},add:oe("add"),set:oe("set"),delete:oe("delete"),clear:oe("clear"),forEach:ne(!0,!1)},r={get(e){return z(this,e,!0,!0)},get size(){return Z(this,!0)},has(e){return X.call(this,e,!0)},add:oe("add"),set:oe("set"),delete:oe("delete"),clear:oe("clear"),forEach:ne(!0,!0)},o=["keys","values","entries",Symbol.iterator];return o.forEach((o=>{e[o]=re(o,!1,!1),n[o]=re(o,!0,!1),t[o]=re(o,!1,!0),r[o]=re(o,!0,!0)})),[e,n,t,r]}const[se,ce,ue,le]=ie();function ae(e,t){const n=t?e?le:ue:e?ce:se;return(t,o,i)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get((0,r.RI)(n,o)&&o in t?n:t,o,i)}const fe={get:ae(!1,!1)},pe={get:ae(!1,!0)},de={get:ae(!0,!1)};const he=new WeakMap,ve=new WeakMap,me=new WeakMap,ge=new WeakMap;function ye(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function be(e){return e["__v_skip"]||!Object.isExtensible(e)?0:ye((0,r.W7)(e))}function _e(e){return Ce(e)?e:ke(e,!1,V,fe,he)}function we(e){return ke(e,!1,G,pe,ve)}function xe(e){return ke(e,!0,K,de,me)}function ke(e,t,n,o,i){if(!(0,r.Kn)(e))return e;if(e["__v_raw"]&&(!t||!e["__v_isReactive"]))return e;const s=i.get(e);if(s)return s;const c=be(e);if(0===c)return e;const u=new Proxy(e,2===c?o:n);return i.set(e,u),u}function Se(e){return Ce(e)?Se(e["__v_raw"]):!(!e||!e["__v_isReactive"])}function Ce(e){return!(!e||!e["__v_isReadonly"])}function Ee(e){return!(!e||!e["__v_isShallow"])}function Oe(e){return Se(e)||Ce(e)}function Re(e){const t=e&&e["__v_raw"];return t?Re(t):e}function je(e){return(0,r.Nj)(e,"__v_skip",!0),e}const Pe=e=>(0,r.Kn)(e)?_e(e):e,Te=e=>(0,r.Kn)(e)?xe(e):e;function Ae(e){w&&m&&(e=Re(e),E(e.dep||(e.dep=c())))}function Fe(e,t){e=Re(e),e.dep&&R(e.dep)}function Ie(e){return!(!e||!0!==e.__v_isRef)}function Me(e){return $e(e,!1)}function Le(e){return $e(e,!0)}function $e(e,t){return Ie(e)?e:new Ue(e,t)}class Ue{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:Re(e),this._value=t?e:Pe(e)}get value(){return Ae(this),this._value}set value(e){const t=this.__v_isShallow||Ee(e)||Ce(e);e=t?e:Re(e),(0,r.aU)(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:Pe(e),Fe(this,e))}}function Ne(e){return Ie(e)?e.value:e}const Je={get:(e,t,n)=>Ne(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Ie(o)&&!Ie(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function De(e){return Se(e)?e:new Proxy(e,Je)}var Be;class qe{constructor(e,t,n,r){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[Be]=!1,this._dirty=!0,this.effect=new b(e,(()=>{this._dirty||(this._dirty=!0,Fe(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!r,this["__v_isReadonly"]=n}get value(){const e=Re(this);return Ae(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}function Ve(e,t,n=!1){let o,i;const s=(0,r.mf)(e);s?(o=e,i=r.dG):(o=e.get,i=e.set);const c=new qe(o,i,s||!i,n);return c}Be="__v_isReadonly"},3396:function(e,t,n){"use strict";n.d(t,{$d:function(){return s},Cn:function(){return L},FN:function(){return pn},Fl:function(){return Rn},HY:function(){return Tt},JJ:function(){return G},Ko:function(){return Ne},P$:function(){return re},Q6:function(){return le},U2:function(){return ie},Uk:function(){return en},Us:function(){return Ct},Wm:function(){return Xt},Y3:function(){return y},Y8:function(){return ee},YP:function(){return z},_:function(){return zt},aZ:function(){return ae},bv:function(){return ke},dD:function(){return M},f3:function(){return H},h:function(){return jn},iD:function(){return Bt},ic:function(){return Ce},j4:function(){return qt},kq:function(){return tn},nK:function(){return ue},up:function(){return Me},wg:function(){return $t},wy:function(){return Ae}});n(7658),n(1703),n(541);var r=n(4870),o=n(7139);function i(e,t,n,r){let o;try{o=r?e(...r):e()}catch(i){c(i,t,n)}return o}function s(e,t,n,r){if((0,o.mf)(e)){const s=i(e,t,n,r);return s&&(0,o.tI)(s)&&s.catch((e=>{c(e,t,n)})),s}const u=[];for(let o=0;o>>1,o=E(f[r]);op&&f.splice(t,1)}function k(e){(0,o.kJ)(e)?d.push(...e):h&&h.includes(e,e.allowRecurse?v+1:v)||d.push(e),w()}function S(e,t=(l?p+1:0)){for(0;tE(e)-E(t))),v=0;vnull==e.id?1/0:e.id,O=(e,t)=>{const n=E(e)-E(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function R(e){a=!1,l=!0,f.sort(O);o.dG;try{for(p=0;pe.trim()))),t&&(i=n.map(o.He))}let l;let a=r[l=(0,o.hR)(t)]||r[l=(0,o.hR)((0,o._A)(t))];!a&&c&&(a=r[l=(0,o.hR)((0,o.rs)(t))]),a&&s(a,e,6,i);const f=r[l+"Once"];if(f){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,s(f,e,6,i)}}function P(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(void 0!==i)return i;const s=e.emits;let c={},u=!1;if(!(0,o.mf)(e)){const r=e=>{const n=P(e,t,!0);n&&(u=!0,(0,o.l7)(c,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return s||u?((0,o.kJ)(s)?s.forEach((e=>c[e]=null)):(0,o.l7)(c,s),(0,o.Kn)(e)&&r.set(e,c),c):((0,o.Kn)(e)&&r.set(e,null),null)}function T(e,t){return!(!e||!(0,o.F7)(t))&&(t=t.slice(2).replace(/Once$/,""),(0,o.RI)(e,t[0].toLowerCase()+t.slice(1))||(0,o.RI)(e,(0,o.rs)(t))||(0,o.RI)(e,t))}let A=null,F=null;function I(e){const t=A;return A=e,F=e&&e.type.__scopeId||null,t}function M(e){F=e}function L(){F=null}function $(e,t=A,n){if(!t)return e;if(e._n)return e;const r=(...n)=>{r._d&&Jt(-1);const o=I(t),i=e(...n);return I(o),r._d&&Jt(1),i};return r._n=!0,r._c=!0,r._d=!0,r}function U(e){const{type:t,vnode:n,proxy:r,withProxy:i,props:s,propsOptions:[u],slots:l,attrs:a,emit:f,render:p,renderCache:d,data:h,setupState:v,ctx:m,inheritAttrs:g}=e;let y,b;const _=I(e);try{if(4&n.shapeFlag){const e=i||r;y=nn(p.call(e,e,d,s,v,h,m)),b=a}else{const e=t;0,y=nn(e.length>1?e(s,{attrs:a,slots:l,emit:f}):e(s,null)),b=t.props?a:N(a)}}catch(x){Mt.length=0,c(x,e,1),y=Xt(Ft)}let w=y;if(b&&!1!==g){const e=Object.keys(b),{shapeFlag:t}=w;e.length&&7&t&&(u&&e.some(o.tR)&&(b=J(b,u)),w=Qt(w,b))}return n.dirs&&(w=Qt(w),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&(w.transition=n.transition),y=w,I(_),y}const N=e=>{let t;for(const n in e)("class"===n||"style"===n||(0,o.F7)(n))&&((t||(t={}))[n]=e[n]);return t},J=(e,t)=>{const n={};for(const r in e)(0,o.tR)(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function D(e,t,n){const{props:r,children:o,component:i}=e,{props:s,children:c,patchFlag:u}=t,l=i.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&u>=0))return!(!o&&!c||c&&c.$stable)||r!==s&&(r?!s||B(r,s,l):!!s);if(1024&u)return!0;if(16&u)return r?B(r,s,l):!!s;if(8&u){const e=t.dynamicProps;for(let t=0;te.__isSuspense;function K(e,t){t&&t.pendingBranch?(0,o.kJ)(e)?t.effects.push(...e):t.effects.push(e):k(e)}function G(e,t){if(fn){let n=fn.provides;const r=fn.parent&&fn.parent.provides;r===n&&(n=fn.provides=Object.create(r)),n[e]=t}else 0}function H(e,t,n=!1){const r=fn||A;if(r){const i=null==r.parent?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return n&&(0,o.mf)(t)?t.call(r.proxy):t}else 0}const W={};function z(e,t,n){return X(e,t,n)}function X(e,t,{immediate:n,deep:c,flush:u,onTrack:l,onTrigger:a}=o.kT){const f=fn;let p,d,h=!1,v=!1;if((0,r.dq)(e)?(p=()=>e.value,h=(0,r.yT)(e)):(0,r.PG)(e)?(p=()=>e,c=!0):(0,o.kJ)(e)?(v=!0,h=e.some((e=>(0,r.PG)(e)||(0,r.yT)(e))),p=()=>e.map((e=>(0,r.dq)(e)?e.value:(0,r.PG)(e)?Q(e):(0,o.mf)(e)?i(e,f,2):void 0))):p=(0,o.mf)(e)?t?()=>i(e,f,2):()=>{if(!f||!f.isUnmounted)return d&&d(),s(e,f,3,[m])}:o.dG,t&&c){const e=p;p=()=>Q(e())}let m=e=>{d=w.onStop=()=>{i(e,f,4)}};if(yn)return m=o.dG,t?n&&s(t,f,3,[p(),v?[]:void 0,m]):p(),o.dG;let g=v?[]:W;const y=()=>{if(w.active)if(t){const e=w.run();(c||h||(v?e.some(((e,t)=>(0,o.aU)(e,g[t]))):(0,o.aU)(e,g)))&&(d&&d(),s(t,f,3,[e,g===W?void 0:g,m]),g=e)}else w.run()};let b;y.allowRecurse=!!t,"sync"===u?b=y:"post"===u?b=()=>St(y,f&&f.suspense):(y.pre=!0,f&&(y.id=f.uid),b=()=>_(y));const w=new r.qq(p,b);return t?n?y():g=w.run():"post"===u?St(w.run.bind(w),f&&f.suspense):w.run(),()=>{w.stop(),f&&f.scope&&(0,o.Od)(f.scope.effects,w)}}function Z(e,t,n){const r=this.proxy,i=(0,o.HD)(e)?e.includes(".")?Y(r,e):()=>r[e]:e.bind(r,r);let s;(0,o.mf)(t)?s=t:(s=t.handler,n=t);const c=fn;dn(this);const u=X(i,s.bind(r),n);return c?dn(c):hn(),u}function Y(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e{Q(e,t)}));else if((0,o.PO)(e))for(const n in e)Q(e[n],t);return e}function ee(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return ke((()=>{e.isMounted=!0})),Ee((()=>{e.isUnmounting=!0})),e}const te=[Function,Array],ne={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:te,onEnter:te,onAfterEnter:te,onEnterCancelled:te,onBeforeLeave:te,onLeave:te,onAfterLeave:te,onLeaveCancelled:te,onBeforeAppear:te,onAppear:te,onAfterAppear:te,onAppearCancelled:te},setup(e,{slots:t}){const n=pn(),o=ee();let i;return()=>{const s=t.default&&le(t.default(),!0);if(!s||!s.length)return;let c=s[0];if(s.length>1){let e=!1;for(const t of s)if(t.type!==Ft){0,c=t,e=!0;break}}const u=(0,r.IU)(e),{mode:l}=u;if(o.isLeaving)return se(c);const a=ce(c);if(!a)return se(c);const f=ie(a,u,o,n);ue(a,f);const p=n.subTree,d=p&&ce(p);let h=!1;const{getTransitionKey:v}=a.type;if(v){const e=v();void 0===i?i=e:e!==i&&(i=e,h=!0)}if(d&&d.type!==Ft&&(!Kt(a,d)||h)){const e=ie(d,u,o,n);if(ue(d,e),"out-in"===l)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,n.update()},se(c);"in-out"===l&&a.type!==Ft&&(e.delayLeave=(e,t,n)=>{const r=oe(o,d);r[String(d.key)]=d,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=n})}return c}}},re=ne;function oe(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ie(e,t,n,r){const{appear:i,mode:c,persisted:u=!1,onBeforeEnter:l,onEnter:a,onAfterEnter:f,onEnterCancelled:p,onBeforeLeave:d,onLeave:h,onAfterLeave:v,onLeaveCancelled:m,onBeforeAppear:g,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,w=String(e.key),x=oe(n,e),k=(e,t)=>{e&&s(e,r,9,t)},S=(e,t)=>{const n=t[1];k(e,t),(0,o.kJ)(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},C={mode:c,persisted:u,beforeEnter(t){let r=l;if(!n.isMounted){if(!i)return;r=g||l}t._leaveCb&&t._leaveCb(!0);const o=x[w];o&&Kt(e,o)&&o.el._leaveCb&&o.el._leaveCb(),k(r,[t])},enter(e){let t=a,r=f,o=p;if(!n.isMounted){if(!i)return;t=y||a,r=b||f,o=_||p}let s=!1;const c=e._enterCb=t=>{s||(s=!0,k(t?o:r,[e]),C.delayedLeave&&C.delayedLeave(),e._enterCb=void 0)};t?S(t,[e,c]):c()},leave(t,r){const o=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return r();k(d,[t]);let i=!1;const s=t._leaveCb=n=>{i||(i=!0,r(),k(n?m:v,[t]),t._leaveCb=void 0,x[o]===e&&delete x[o])};x[o]=e,h?S(h,[t,s]):s()},clone(e){return ie(e,t,n,r)}};return C}function se(e){if(pe(e))return e=Qt(e),e.children=null,e}function ce(e){return pe(e)?e.children?e.children[0]:void 0:e}function ue(e,t){6&e.shapeFlag&&e.component?ue(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function le(e,t=!1,n){let r=[],o=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader;const pe=e=>e.type.__isKeepAlive;RegExp,RegExp;function de(e,t){return(0,o.kJ)(e)?e.some((e=>de(e,t))):(0,o.HD)(e)?e.split(",").includes(t):!!e.test&&e.test(t)}function he(e,t){me(e,"a",t)}function ve(e,t){me(e,"da",t)}function me(e,t,n=fn){const r=e.__wdc||(e.__wdc=()=>{let t=n;while(t){if(t.isDeactivated)return;t=t.parent}return e()});if(_e(t,r,n),n){let e=n.parent;while(e&&e.parent)pe(e.parent.vnode)&&ge(r,t,n,e),e=e.parent}}function ge(e,t,n,r){const i=_e(t,e,r,!0);Oe((()=>{(0,o.Od)(r[t],i)}),n)}function ye(e){let t=e.shapeFlag;256&t&&(t-=256),512&t&&(t-=512),e.shapeFlag=t}function be(e){return 128&e.shapeFlag?e.ssContent:e}function _e(e,t,n=fn,o=!1){if(n){const i=n[e]||(n[e]=[]),c=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;(0,r.Jd)(),dn(n);const i=s(t,n,e,o);return hn(),(0,r.lk)(),i});return o?i.unshift(c):i.push(c),c}}const we=e=>(t,n=fn)=>(!yn||"sp"===e)&&_e(e,t,n),xe=we("bm"),ke=we("m"),Se=we("bu"),Ce=we("u"),Ee=we("bum"),Oe=we("um"),Re=we("sp"),je=we("rtg"),Pe=we("rtc");function Te(e,t=fn){_e("ec",e,t)}function Ae(e,t){const n=A;if(null===n)return e;const r=Cn(n)||n.proxy,i=e.dirs||(e.dirs=[]);for(let s=0;st(e,n,void 0,s&&s[n])));else{const n=Object.keys(e);i=new Array(n.length);for(let r=0,o=n.length;re?vn(e)?Cn(e)||e.proxy:Je(e.parent):null,De=(0,o.l7)(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Je(e.parent),$root:e=>Je(e.root),$emit:e=>e.emit,$options:e=>We(e),$forceUpdate:e=>e.f||(e.f=()=>_(e.update)),$nextTick:e=>e.n||(e.n=y.bind(e.proxy)),$watch:e=>Z.bind(e)}),Be={get({_:e},t){const{ctx:n,setupState:i,data:s,props:c,accessCache:u,type:l,appContext:a}=e;let f;if("$"!==t[0]){const r=u[t];if(void 0!==r)switch(r){case 1:return i[t];case 2:return s[t];case 4:return n[t];case 3:return c[t]}else{if(i!==o.kT&&(0,o.RI)(i,t))return u[t]=1,i[t];if(s!==o.kT&&(0,o.RI)(s,t))return u[t]=2,s[t];if((f=e.propsOptions[0])&&(0,o.RI)(f,t))return u[t]=3,c[t];if(n!==o.kT&&(0,o.RI)(n,t))return u[t]=4,n[t];qe&&(u[t]=0)}}const p=De[t];let d,h;return p?("$attrs"===t&&(0,r.j)(e,"get",t),p(e)):(d=l.__cssModules)&&(d=d[t])?d:n!==o.kT&&(0,o.RI)(n,t)?(u[t]=4,n[t]):(h=a.config.globalProperties,(0,o.RI)(h,t)?h[t]:void 0)},set({_:e},t,n){const{data:r,setupState:i,ctx:s}=e;return i!==o.kT&&(0,o.RI)(i,t)?(i[t]=n,!0):r!==o.kT&&(0,o.RI)(r,t)?(r[t]=n,!0):!(0,o.RI)(e.props,t)&&(("$"!==t[0]||!(t.slice(1)in e))&&(s[t]=n,!0))},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:s}},c){let u;return!!n[c]||e!==o.kT&&(0,o.RI)(e,c)||t!==o.kT&&(0,o.RI)(t,c)||(u=s[0])&&(0,o.RI)(u,c)||(0,o.RI)(r,c)||(0,o.RI)(De,c)||(0,o.RI)(i.config.globalProperties,c)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:(0,o.RI)(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let qe=!0;function Ve(e){const t=We(e),n=e.proxy,i=e.ctx;qe=!1,t.beforeCreate&&Ge(t.beforeCreate,e,"bc");const{data:s,computed:c,methods:u,watch:l,provide:a,inject:f,created:p,beforeMount:d,mounted:h,beforeUpdate:v,updated:m,activated:g,deactivated:y,beforeDestroy:b,beforeUnmount:_,destroyed:w,unmounted:x,render:k,renderTracked:S,renderTriggered:C,errorCaptured:E,serverPrefetch:O,expose:R,inheritAttrs:j,components:P,directives:T,filters:A}=t,F=null;if(f&&Ke(f,i,F,e.appContext.config.unwrapInjectedRef),u)for(const r in u){const e=u[r];(0,o.mf)(e)&&(i[r]=e.bind(n))}if(s){0;const t=s.call(n,n);0,(0,o.Kn)(t)&&(e.data=(0,r.qj)(t))}if(qe=!0,c)for(const r in c){const e=c[r],t=(0,o.mf)(e)?e.bind(n,n):(0,o.mf)(e.get)?e.get.bind(n,n):o.dG;0;const s=!(0,o.mf)(e)&&(0,o.mf)(e.set)?e.set.bind(n):o.dG,u=Rn({get:t,set:s});Object.defineProperty(i,r,{enumerable:!0,configurable:!0,get:()=>u.value,set:e=>u.value=e})}if(l)for(const r in l)He(l[r],i,n,r);if(a){const e=(0,o.mf)(a)?a.call(n):a;Reflect.ownKeys(e).forEach((t=>{G(t,e[t])}))}function I(e,t){(0,o.kJ)(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(p&&Ge(p,e,"c"),I(xe,d),I(ke,h),I(Se,v),I(Ce,m),I(he,g),I(ve,y),I(Te,E),I(Pe,S),I(je,C),I(Ee,_),I(Oe,x),I(Re,O),(0,o.kJ)(R))if(R.length){const t=e.exposed||(e.exposed={});R.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});k&&e.render===o.dG&&(e.render=k),null!=j&&(e.inheritAttrs=j),P&&(e.components=P),T&&(e.directives=T)}function Ke(e,t,n=o.dG,i=!1){(0,o.kJ)(e)&&(e=Qe(e));for(const s in e){const n=e[s];let c;c=(0,o.Kn)(n)?"default"in n?H(n.from||s,n.default,!0):H(n.from||s):H(n),(0,r.dq)(c)&&i?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>c.value,set:e=>c.value=e}):t[s]=c}}function Ge(e,t,n){s((0,o.kJ)(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function He(e,t,n,r){const i=r.includes(".")?Y(n,r):()=>n[r];if((0,o.HD)(e)){const n=t[e];(0,o.mf)(n)&&z(i,n)}else if((0,o.mf)(e))z(i,e.bind(n));else if((0,o.Kn)(e))if((0,o.kJ)(e))e.forEach((e=>He(e,t,n,r)));else{const r=(0,o.mf)(e.handler)?e.handler.bind(n):t[e.handler];(0,o.mf)(r)&&z(i,r,e)}else 0}function We(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:s,config:{optionMergeStrategies:c}}=e.appContext,u=s.get(t);let l;return u?l=u:i.length||n||r?(l={},i.length&&i.forEach((e=>ze(l,e,c,!0))),ze(l,t,c)):l=t,(0,o.Kn)(t)&&s.set(t,l),l}function ze(e,t,n,r=!1){const{mixins:o,extends:i}=t;i&&ze(e,i,n,!0),o&&o.forEach((t=>ze(e,t,n,!0)));for(const s in t)if(r&&"expose"===s);else{const r=Xe[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}const Xe={data:Ze,props:tt,emits:tt,methods:tt,computed:tt,beforeCreate:et,created:et,beforeMount:et,mounted:et,beforeUpdate:et,updated:et,beforeDestroy:et,beforeUnmount:et,destroyed:et,unmounted:et,activated:et,deactivated:et,errorCaptured:et,serverPrefetch:et,components:tt,directives:tt,watch:nt,provide:Ze,inject:Ye};function Ze(e,t){return t?e?function(){return(0,o.l7)((0,o.mf)(e)?e.call(this,this):e,(0,o.mf)(t)?t.call(this,this):t)}:t:e}function Ye(e,t){return tt(Qe(e),Qe(t))}function Qe(e){if((0,o.kJ)(e)){const t={};for(let n=0;n0)||16&u){let r;it(e,t,s,c)&&(f=!0);for(const i in l)t&&((0,o.RI)(t,i)||(r=(0,o.rs)(i))!==i&&(0,o.RI)(t,r))||(a?!n||void 0===n[i]&&void 0===n[r]||(s[i]=st(a,l,i,void 0,e,!0)):delete s[i]);if(c!==l)for(const e in c)t&&(0,o.RI)(t,e)||(delete c[e],f=!0)}else if(8&u){const n=e.vnode.dynamicProps;for(let r=0;r{l=!0;const[n,r]=ct(e,t,!0);(0,o.l7)(c,n),r&&u.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!s&&!l)return(0,o.Kn)(e)&&r.set(e,o.Z6),o.Z6;if((0,o.kJ)(s))for(let f=0;f-1,r[1]=n<0||e-1||(0,o.RI)(r,"default"))&&u.push(t)}}}}const a=[c,u];return(0,o.Kn)(e)&&r.set(e,a),a}function ut(e){return"$"!==e[0]}function lt(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:null===e?"null":""}function at(e,t){return lt(e)===lt(t)}function ft(e,t){return(0,o.kJ)(t)?t.findIndex((t=>at(t,e))):(0,o.mf)(t)&&at(t,e)?0:-1}const pt=e=>"_"===e[0]||"$stable"===e,dt=e=>(0,o.kJ)(e)?e.map(nn):[nn(e)],ht=(e,t,n)=>{if(t._n)return t;const r=$(((...e)=>dt(t(...e))),n);return r._c=!1,r},vt=(e,t,n)=>{const r=e._ctx;for(const i in e){if(pt(i))continue;const n=e[i];if((0,o.mf)(n))t[i]=ht(i,n,r);else if(null!=n){0;const e=dt(n);t[i]=()=>e}}},mt=(e,t)=>{const n=dt(t);e.slots.default=()=>n},gt=(e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=(0,r.IU)(t),(0,o.Nj)(t,"_",n)):vt(t,e.slots={})}else e.slots={},t&&mt(e,t);(0,o.Nj)(e.slots,Gt,1)},yt=(e,t,n)=>{const{vnode:r,slots:i}=e;let s=!0,c=o.kT;if(32&r.shapeFlag){const e=t._;e?n&&1===e?s=!1:((0,o.l7)(i,t),n||1!==e||delete i._):(s=!t.$stable,vt(t,i)),c=t}else t&&(mt(e,t),c={default:1});if(s)for(const o in i)pt(o)||o in c||delete i[o]};function bt(){return{app:null,config:{isNativeTag:o.NO,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let _t=0;function wt(e,t){return function(n,r=null){(0,o.mf)(n)||(n=Object.assign({},n)),null==r||(0,o.Kn)(r)||(r=null);const i=bt(),s=new Set;let c=!1;const u=i.app={_uid:_t++,_component:n,_props:r,_container:null,_context:i,_instance:null,version:Pn,get config(){return i.config},set config(e){0},use(e,...t){return s.has(e)||(e&&(0,o.mf)(e.install)?(s.add(e),e.install(u,...t)):(0,o.mf)(e)&&(s.add(e),e(u,...t))),u},mixin(e){return i.mixins.includes(e)||i.mixins.push(e),u},component(e,t){return t?(i.components[e]=t,u):i.components[e]},directive(e,t){return t?(i.directives[e]=t,u):i.directives[e]},mount(o,s,l){if(!c){0;const a=Xt(n,r);return a.appContext=i,s&&t?t(a,o):e(a,o,l),c=!0,u._container=o,o.__vue_app__=u,Cn(a.component)||a.component.proxy}},unmount(){c&&(e(null,u._container),delete u._container.__vue_app__)},provide(e,t){return i.provides[e]=t,u}};return u}}function xt(e,t,n,s,c=!1){if((0,o.kJ)(e))return void e.forEach(((e,r)=>xt(e,t&&((0,o.kJ)(t)?t[r]:t),n,s,c)));if(fe(s)&&!c)return;const u=4&s.shapeFlag?Cn(s.component)||s.component.proxy:s.el,l=c?null:u,{i:a,r:f}=e;const p=t&&t.r,d=a.refs===o.kT?a.refs={}:a.refs,h=a.setupState;if(null!=p&&p!==f&&((0,o.HD)(p)?(d[p]=null,(0,o.RI)(h,p)&&(h[p]=null)):(0,r.dq)(p)&&(p.value=null)),(0,o.mf)(f))i(f,a,12,[l,d]);else{const t=(0,o.HD)(f),i=(0,r.dq)(f);if(t||i){const r=()=>{if(e.f){const n=t?d[f]:f.value;c?(0,o.kJ)(n)&&(0,o.Od)(n,u):(0,o.kJ)(n)?n.includes(u)||n.push(u):t?(d[f]=[u],(0,o.RI)(h,f)&&(h[f]=d[f])):(f.value=[u],e.k&&(d[e.k]=f.value))}else t?(d[f]=l,(0,o.RI)(h,f)&&(h[f]=l)):i&&(f.value=l,e.k&&(d[e.k]=l))};l?(r.id=-1,St(r,n)):r()}else 0}}function kt(){}const St=K;function Ct(e){return Et(e)}function Et(e,t){kt();const n=(0,o.E9)();n.__VUE__=!0;const{insert:i,remove:s,patchProp:c,createElement:u,createText:l,createComment:a,setText:f,setElementText:p,parentNode:d,nextSibling:h,setScopeId:v=o.dG,cloneNode:m,insertStaticContent:g}=e,y=(e,t,n,r=null,o=null,i=null,s=!1,c=null,u=!!t.dynamicChildren)=>{if(e===t)return;e&&!Kt(e,t)&&(r=Q(e),W(e,o,i,!0),e=null),-2===t.patchFlag&&(u=!1,t.dynamicChildren=null);const{type:l,ref:a,shapeFlag:f}=t;switch(l){case At:b(e,t,n,r);break;case Ft:w(e,t,n,r);break;case It:null==e&&k(t,n,r,s);break;case Tt:M(e,t,n,r,o,i,s,c,u);break;default:1&f?R(e,t,n,r,o,i,s,c,u):6&f?L(e,t,n,r,o,i,s,c,u):(64&f||128&f)&&l.process(e,t,n,r,o,i,s,c,u,te)}null!=a&&o&&xt(a,e&&e.ref,i,t||e,!t)},b=(e,t,n,r)=>{if(null==e)i(t.el=l(t.children),n,r);else{const n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},w=(e,t,n,r)=>{null==e?i(t.el=a(t.children||""),n,r):t.el=e.el},k=(e,t,n,r)=>{[e.el,e.anchor]=g(e.children,t,n,r,e.el,e.anchor)},E=({el:e,anchor:t},n,r)=>{let o;while(e&&e!==t)o=h(e),i(e,n,r),e=o;i(t,n,r)},O=({el:e,anchor:t})=>{let n;while(e&&e!==t)n=h(e),s(e),e=n;s(t)},R=(e,t,n,r,o,i,s,c,u)=>{s=s||"svg"===t.type,null==e?j(t,n,r,o,i,s,c,u):A(e,t,o,i,s,c,u)},j=(e,t,n,r,s,l,a,f)=>{let d,h;const{type:v,props:g,shapeFlag:y,transition:b,patchFlag:_,dirs:w}=e;if(e.el&&void 0!==m&&-1===_)d=e.el=m(e.el);else{if(d=e.el=u(e.type,l,g&&g.is,g),8&y?p(d,e.children):16&y&&T(e.children,d,null,r,s,l&&"foreignObject"!==v,a,f),w&&Fe(e,null,r,"created"),g){for(const t in g)"value"===t||(0,o.Gg)(t)||c(d,t,null,g[t],l,e.children,r,s,Y);"value"in g&&c(d,"value",null,g.value),(h=g.onVnodeBeforeMount)&&cn(h,r,e)}P(d,e,e.scopeId,a,r)}w&&Fe(e,null,r,"beforeMount");const x=(!s||s&&!s.pendingBranch)&&b&&!b.persisted;x&&b.beforeEnter(d),i(d,t,n),((h=g&&g.onVnodeMounted)||x||w)&&St((()=>{h&&cn(h,r,e),x&&b.enter(d),w&&Fe(e,null,r,"mounted")}),s)},P=(e,t,n,r,o)=>{if(n&&v(e,n),r)for(let i=0;i{for(let l=u;l{const l=t.el=e.el;let{patchFlag:a,dynamicChildren:f,dirs:d}=t;a|=16&e.patchFlag;const h=e.props||o.kT,v=t.props||o.kT;let m;n&&Ot(n,!1),(m=v.onVnodeBeforeUpdate)&&cn(m,n,t,e),d&&Fe(t,e,n,"beforeUpdate"),n&&Ot(n,!0);const g=i&&"foreignObject"!==t.type;if(f?F(e.dynamicChildren,f,l,n,r,g,s):u||V(e,t,l,null,n,r,g,s,!1),a>0){if(16&a)I(l,t,h,v,n,r,i);else if(2&a&&h.class!==v.class&&c(l,"class",null,v.class,i),4&a&&c(l,"style",h.style,v.style,i),8&a){const o=t.dynamicProps;for(let t=0;t{m&&cn(m,n,t,e),d&&Fe(t,e,n,"updated")}),r)},F=(e,t,n,r,o,i,s)=>{for(let c=0;c{if(n!==r){for(const l in r){if((0,o.Gg)(l))continue;const a=r[l],f=n[l];a!==f&&"value"!==l&&c(e,l,f,a,u,t.children,i,s,Y)}if(n!==o.kT)for(const l in n)(0,o.Gg)(l)||l in r||c(e,l,n[l],null,u,t.children,i,s,Y);"value"in r&&c(e,"value",n.value,r.value)}},M=(e,t,n,r,o,s,c,u,a)=>{const f=t.el=e?e.el:l(""),p=t.anchor=e?e.anchor:l("");let{patchFlag:d,dynamicChildren:h,slotScopeIds:v}=t;v&&(u=u?u.concat(v):v),null==e?(i(f,n,r),i(p,n,r),T(t.children,n,p,o,s,c,u,a)):d>0&&64&d&&h&&e.dynamicChildren?(F(e.dynamicChildren,h,n,o,s,c,u),(null!=t.key||o&&t===o.subTree)&&Rt(e,t,!0)):V(e,t,n,p,o,s,c,u,a)},L=(e,t,n,r,o,i,s,c,u)=>{t.slotScopeIds=c,null==e?512&t.shapeFlag?o.ctx.activate(t,n,r,s,u):$(t,n,r,o,i,s,u):N(e,t,u)},$=(e,t,n,r,o,i,s)=>{const c=e.component=an(e,r,o);if(pe(e)&&(c.ctx.renderer=te),bn(c),c.asyncDep){if(o&&o.registerDep(c,J),!e.el){const e=c.subTree=Xt(Ft);w(null,e,t,n)}}else J(c,e,t,n,o,i,s)},N=(e,t,n)=>{const r=t.component=e.component;if(D(e,t,n)){if(r.asyncDep&&!r.asyncResolved)return void B(r,t,n);r.next=t,x(r.update),r.update()}else t.el=e.el,r.vnode=t},J=(e,t,n,i,s,c,u)=>{const l=()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:l,vnode:a}=e,f=n;0,Ot(e,!1),n?(n.el=a.el,B(e,n,u)):n=a,r&&(0,o.ir)(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&cn(t,l,n,a),Ot(e,!0);const p=U(e);0;const h=e.subTree;e.subTree=p,y(h,p,d(h.el),Q(h),e,s,c),n.el=p.el,null===f&&q(e,p.el),i&&St(i,s),(t=n.props&&n.props.onVnodeUpdated)&&St((()=>cn(t,l,n,a)),s)}else{let r;const{el:u,props:l}=t,{bm:a,m:f,parent:p}=e,d=fe(t);if(Ot(e,!1),a&&(0,o.ir)(a),!d&&(r=l&&l.onVnodeBeforeMount)&&cn(r,p,t),Ot(e,!0),u&&re){const n=()=>{e.subTree=U(e),re(u,e.subTree,e,s,null)};d?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{0;const r=e.subTree=U(e);0,y(null,r,n,i,e,s,c),t.el=r.el}if(f&&St(f,s),!d&&(r=l&&l.onVnodeMounted)){const e=t;St((()=>cn(r,p,e)),s)}(256&t.shapeFlag||p&&fe(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&St(e.a,s),e.isMounted=!0,t=n=i=null}},a=e.effect=new r.qq(l,(()=>_(f)),e.scope),f=e.update=()=>a.run();f.id=e.uid,Ot(e,!0),f()},B=(e,t,n)=>{t.component=e;const o=e.vnode.props;e.vnode=t,e.next=null,ot(e,t.props,o,n),yt(e,t.children,n),(0,r.Jd)(),S(),(0,r.lk)()},V=(e,t,n,r,o,i,s,c,u=!1)=>{const l=e&&e.children,a=e?e.shapeFlag:0,f=t.children,{patchFlag:d,shapeFlag:h}=t;if(d>0){if(128&d)return void G(l,f,n,r,o,i,s,c,u);if(256&d)return void K(l,f,n,r,o,i,s,c,u)}8&h?(16&a&&Y(l,o,i),f!==l&&p(n,f)):16&a?16&h?G(l,f,n,r,o,i,s,c,u):Y(l,o,i,!0):(8&a&&p(n,""),16&h&&T(f,n,r,o,i,s,c,u))},K=(e,t,n,r,i,s,c,u,l)=>{e=e||o.Z6,t=t||o.Z6;const a=e.length,f=t.length,p=Math.min(a,f);let d;for(d=0;df?Y(e,i,s,!0,!1,p):T(t,n,r,i,s,c,u,l,p)},G=(e,t,n,r,i,s,c,u,l)=>{let a=0;const f=t.length;let p=e.length-1,d=f-1;while(a<=p&&a<=d){const r=e[a],o=t[a]=l?rn(t[a]):nn(t[a]);if(!Kt(r,o))break;y(r,o,n,null,i,s,c,u,l),a++}while(a<=p&&a<=d){const r=e[p],o=t[d]=l?rn(t[d]):nn(t[d]);if(!Kt(r,o))break;y(r,o,n,null,i,s,c,u,l),p--,d--}if(a>p){if(a<=d){const e=d+1,o=ed)while(a<=p)W(e[a],i,s,!0),a++;else{const h=a,v=a,m=new Map;for(a=v;a<=d;a++){const e=t[a]=l?rn(t[a]):nn(t[a]);null!=e.key&&m.set(e.key,a)}let g,b=0;const _=d-v+1;let w=!1,x=0;const k=new Array(_);for(a=0;a<_;a++)k[a]=0;for(a=h;a<=p;a++){const r=e[a];if(b>=_){W(r,i,s,!0);continue}let o;if(null!=r.key)o=m.get(r.key);else for(g=v;g<=d;g++)if(0===k[g-v]&&Kt(r,t[g])){o=g;break}void 0===o?W(r,i,s,!0):(k[o-v]=a+1,o>=x?x=o:w=!0,y(r,t[o],n,null,i,s,c,u,l),b++)}const S=w?jt(k):o.Z6;for(g=S.length-1,a=_-1;a>=0;a--){const e=v+a,o=t[e],p=e+1{const{el:s,type:c,transition:u,children:l,shapeFlag:a}=e;if(6&a)return void H(e.component.subTree,t,n,r);if(128&a)return void e.suspense.move(t,n,r);if(64&a)return void c.move(e,t,n,te);if(c===Tt){i(s,t,n);for(let e=0;eu.enter(s)),o);else{const{leave:e,delayLeave:r,afterLeave:o}=u,c=()=>i(s,t,n),l=()=>{e(s,(()=>{c(),o&&o()}))};r?r(s,c,l):l()}else i(s,t,n)},W=(e,t,n,r=!1,o=!1)=>{const{type:i,props:s,ref:c,children:u,dynamicChildren:l,shapeFlag:a,patchFlag:f,dirs:p}=e;if(null!=c&&xt(c,null,n,e,!0),256&a)return void t.ctx.deactivate(e);const d=1&a&&p,h=!fe(e);let v;if(h&&(v=s&&s.onVnodeBeforeUnmount)&&cn(v,t,e),6&a)Z(e.component,n,r);else{if(128&a)return void e.suspense.unmount(n,r);d&&Fe(e,null,t,"beforeUnmount"),64&a?e.type.remove(e,t,n,o,te,r):l&&(i!==Tt||f>0&&64&f)?Y(l,t,n,!1,!0):(i===Tt&&384&f||!o&&16&a)&&Y(u,t,n),r&&z(e)}(h&&(v=s&&s.onVnodeUnmounted)||d)&&St((()=>{v&&cn(v,t,e),d&&Fe(e,null,t,"unmounted")}),n)},z=e=>{const{type:t,el:n,anchor:r,transition:o}=e;if(t===Tt)return void X(n,r);if(t===It)return void O(e);const i=()=>{s(n),o&&!o.persisted&&o.afterLeave&&o.afterLeave()};if(1&e.shapeFlag&&o&&!o.persisted){const{leave:t,delayLeave:r}=o,s=()=>t(n,i);r?r(e.el,i,s):s()}else i()},X=(e,t)=>{let n;while(e!==t)n=h(e),s(e),e=n;s(t)},Z=(e,t,n)=>{const{bum:r,scope:i,update:s,subTree:c,um:u}=e;r&&(0,o.ir)(r),i.stop(),s&&(s.active=!1,W(c,e,t,n)),u&&St(u,t),St((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},Y=(e,t,n,r=!1,o=!1,i=0)=>{for(let s=i;s6&e.shapeFlag?Q(e.component.subTree):128&e.shapeFlag?e.suspense.next():h(e.anchor||e.el),ee=(e,t,n)=>{null==e?t._vnode&&W(t._vnode,null,null,!0):y(t._vnode||null,e,t,null,null,null,n),S(),C(),t._vnode=e},te={p:y,um:W,m:H,r:z,mt:$,mc:T,pc:V,pbc:F,n:Q,o:e};let ne,re;return t&&([ne,re]=t(te)),{render:ee,hydrate:ne,createApp:wt(ee,ne)}}function Ot({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Rt(e,t,n=!1){const r=e.children,i=t.children;if((0,o.kJ)(r)&&(0,o.kJ)(i))for(let o=0;o>1,e[n[c]]0&&(t[r]=n[i-1]),n[i]=r)}}i=n.length,s=n[i-1];while(i-- >0)n[i]=s,s=t[s];return n}const Pt=e=>e.__isTeleport;const Tt=Symbol(void 0),At=Symbol(void 0),Ft=Symbol(void 0),It=Symbol(void 0),Mt=[];let Lt=null;function $t(e=!1){Mt.push(Lt=e?null:[])}function Ut(){Mt.pop(),Lt=Mt[Mt.length-1]||null}let Nt=1;function Jt(e){Nt+=e}function Dt(e){return e.dynamicChildren=Nt>0?Lt||o.Z6:null,Ut(),Nt>0&&Lt&&Lt.push(e),e}function Bt(e,t,n,r,o,i){return Dt(zt(e,t,n,r,o,i,!0))}function qt(e,t,n,r,o){return Dt(Xt(e,t,n,r,o,!0))}function Vt(e){return!!e&&!0===e.__v_isVNode}function Kt(e,t){return e.type===t.type&&e.key===t.key}const Gt="__vInternal",Ht=({key:e})=>null!=e?e:null,Wt=({ref:e,ref_key:t,ref_for:n})=>null!=e?(0,o.HD)(e)||(0,r.dq)(e)||(0,o.mf)(e)?{i:A,r:e,k:t,f:!!n}:e:null;function zt(e,t=null,n=null,r=0,i=null,s=(e===Tt?0:1),c=!1,u=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ht(t),ref:t&&Wt(t),scopeId:F,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null};return u?(on(l,n),128&s&&e.normalize(l)):n&&(l.shapeFlag|=(0,o.HD)(n)?8:16),Nt>0&&!c&&Lt&&(l.patchFlag>0||6&s)&&32!==l.patchFlag&&Lt.push(l),l}const Xt=Zt;function Zt(e,t=null,n=null,i=0,s=null,c=!1){if(e&&e!==Le||(e=Ft),Vt(e)){const r=Qt(e,t,!0);return n&&on(r,n),Nt>0&&!c&&Lt&&(6&r.shapeFlag?Lt[Lt.indexOf(e)]=r:Lt.push(r)),r.patchFlag|=-2,r}if(On(e)&&(e=e.__vccOpts),t){t=Yt(t);let{class:e,style:n}=t;e&&!(0,o.HD)(e)&&(t.class=(0,o.C_)(e)),(0,o.Kn)(n)&&((0,r.X3)(n)&&!(0,o.kJ)(n)&&(n=(0,o.l7)({},n)),t.style=(0,o.j5)(n))}const u=(0,o.HD)(e)?1:V(e)?128:Pt(e)?64:(0,o.Kn)(e)?4:(0,o.mf)(e)?2:0;return zt(e,t,n,i,s,u,c,!0)}function Yt(e){return e?(0,r.X3)(e)||Gt in e?(0,o.l7)({},e):e:null}function Qt(e,t,n=!1){const{props:r,ref:i,patchFlag:s,children:c}=e,u=t?sn(r||{},t):r,l={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Ht(u),ref:t&&t.ref?n&&i?(0,o.kJ)(i)?i.concat(Wt(t)):[i,Wt(t)]:Wt(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:c,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Tt?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Qt(e.ssContent),ssFallback:e.ssFallback&&Qt(e.ssFallback),el:e.el,anchor:e.anchor};return l}function en(e=" ",t=0){return Xt(At,null,e,t)}function tn(e="",t=!1){return t?($t(),qt(Ft,null,e)):Xt(Ft,null,e)}function nn(e){return null==e||"boolean"===typeof e?Xt(Ft):(0,o.kJ)(e)?Xt(Tt,null,e.slice()):"object"===typeof e?rn(e):Xt(At,null,String(e))}function rn(e){return null===e.el||e.memo?e:Qt(e)}function on(e,t){let n=0;const{shapeFlag:r}=e;if(null==t)t=null;else if((0,o.kJ)(t))n=16;else if("object"===typeof t){if(65&r){const n=t.default;return void(n&&(n._c&&(n._d=!1),on(e,n()),n._c&&(n._d=!0)))}{n=32;const r=t._;r||Gt in t?3===r&&A&&(1===A.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=A}}else(0,o.mf)(t)?(t={default:t,_ctx:A},n=32):(t=String(t),64&r?(n=16,t=[en(t)]):n=8);e.children=t,e.shapeFlag|=n}function sn(...e){const t={};for(let n=0;nfn||A,dn=e=>{fn=e,e.scope.on()},hn=()=>{fn&&fn.scope.off(),fn=null};function vn(e){return 4&e.vnode.shapeFlag}let mn,gn,yn=!1;function bn(e,t=!1){yn=t;const{props:n,children:r}=e.vnode,o=vn(e);rt(e,n,o,t),gt(e,r);const i=o?_n(e,t):void 0;return yn=!1,i}function _n(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=(0,r.Xl)(new Proxy(e.ctx,Be));const{setup:s}=n;if(s){const n=e.setupContext=s.length>1?Sn(e):null;dn(e),(0,r.Jd)();const u=i(s,e,0,[e.props,n]);if((0,r.lk)(),hn(),(0,o.tI)(u)){if(u.then(hn,hn),t)return u.then((n=>{wn(e,n,t)})).catch((t=>{c(t,e,0)}));e.asyncDep=u}else wn(e,u,t)}else xn(e,t)}function wn(e,t,n){(0,o.mf)(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:(0,o.Kn)(t)&&(e.setupState=(0,r.WL)(t)),xn(e,n)}function xn(e,t,n){const i=e.type;if(!e.render){if(!t&&mn&&!i.render){const t=i.template||We(e).template;if(t){0;const{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:s,compilerOptions:c}=i,u=(0,o.l7)((0,o.l7)({isCustomElement:n,delimiters:s},r),c);i.render=mn(t,u)}}e.render=i.render||o.dG,gn&&gn(e)}dn(e),(0,r.Jd)(),Ve(e),(0,r.lk)(),hn()}function kn(e){return new Proxy(e.attrs,{get(t,n){return(0,r.j)(e,"get","$attrs"),t[n]}})}function Sn(e){const t=t=>{e.exposed=t||{}};let n;return{get attrs(){return n||(n=kn(e))},slots:e.slots,emit:e.emit,expose:t}}function Cn(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy((0,r.WL)((0,r.Xl)(e.exposed)),{get(t,n){return n in t?t[n]:n in De?De[n](e):void 0}}))}function En(e,t=!0){return(0,o.mf)(e)?e.displayName||e.name:e.name||t&&e.__name}function On(e){return(0,o.mf)(e)&&"__vccOpts"in e}const Rn=(e,t)=>(0,r.Fl)(e,t,yn);function jn(e,t,n){const r=arguments.length;return 2===r?(0,o.Kn)(t)&&!(0,o.kJ)(t)?Vt(t)?Xt(e,null,[t]):Xt(e,t):Xt(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&Vt(n)&&(n=[n]),Xt(e,t,n))}Symbol("");const Pn="3.2.39"},9242:function(e,t,n){"use strict";n.d(t,{bM:function(){return ee},iM:function(){return ie},ri:function(){return le}});n(7658);var r=n(7139),o=n(3396);n(4870);const i="http://www.w3.org/2000/svg",s="undefined"!==typeof document?document:null,c=s&&s.createElement("template"),u={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?s.createElementNS(i,e):s.createElement(e,n?{is:n}:void 0);return"select"===e&&r&&null!=r.multiple&&o.setAttribute("multiple",r.multiple),o},createText:e=>s.createTextNode(e),createComment:e=>s.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>s.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,r,o,i){const s=n?n.previousSibling:t.lastChild;if(o&&(o===i||o.nextSibling)){while(1)if(t.insertBefore(o.cloneNode(!0),n),o===i||!(o=o.nextSibling))break}else{c.innerHTML=r?`${e}`:e;const o=c.content;if(r){const e=o.firstChild;while(e.firstChild)o.appendChild(e.firstChild);o.removeChild(e)}t.insertBefore(o,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function l(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function a(e,t,n){const o=e.style,i=(0,r.HD)(n);if(n&&!i){for(const e in n)p(o,e,n[e]);if(t&&!(0,r.HD)(t))for(const e in t)null==n[e]&&p(o,e,"")}else{const r=o.display;i?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(o.display=r)}}const f=/\s*!important$/;function p(e,t,n){if((0,r.kJ)(n))n.forEach((n=>p(e,t,n)));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=v(e,t);f.test(n)?e.setProperty((0,r.rs)(o),n.replace(f,""),"important"):e[o]=n}}const d=["Webkit","Moz","ms"],h={};function v(e,t){const n=h[t];if(n)return n;let o=(0,r._A)(t);if("filter"!==o&&o in e)return h[t]=o;o=(0,r.kC)(o);for(let r=0;r{let e=Date.now,t=!1;if("undefined"!==typeof window){Date.now()>document.createEvent("Event").timeStamp&&(e=performance.now.bind(performance));const n=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(n&&Number(n[1])<=53)}return[e,t]})();let w=0;const x=Promise.resolve(),k=()=>{w=0},S=()=>w||(x.then(k),w=b());function C(e,t,n,r){e.addEventListener(t,n,r)}function E(e,t,n,r){e.removeEventListener(t,n,r)}function O(e,t,n,r,o=null){const i=e._vei||(e._vei={}),s=i[t];if(r&&s)s.value=r;else{const[n,c]=j(t);if(r){const s=i[t]=P(r,o);C(e,n,s,c)}else s&&(E(e,n,s,c),i[t]=void 0)}}const R=/(?:Once|Passive|Capture)$/;function j(e){let t;if(R.test(e)){let n;t={};while(n=e.match(R))e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}const n=":"===e[2]?e.slice(3):(0,r.rs)(e.slice(2));return[n,t]}function P(e,t){const n=e=>{const r=e.timeStamp||b();(_||r>=n.attached-1)&&(0,o.$d)(T(e,n.value),t,5,[e])};return n.value=e,n.attached=S(),n}function T(e,t){if((0,r.kJ)(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}const A=/^on[a-z]/,F=(e,t,n,o,i=!1,s,c,u,f)=>{"class"===t?l(e,o,i):"style"===t?a(e,n,o):(0,r.F7)(t)?(0,r.tR)(t)||O(e,t,n,o,c):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):I(e,t,o,i))?y(e,t,o,s,c,u,f):("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),g(e,t,o,i))};function I(e,t,n,o){return o?"innerHTML"===t||"textContent"===t||!!(t in e&&A.test(t)&&(0,r.mf)(n)):"spellcheck"!==t&&"draggable"!==t&&"translate"!==t&&("form"!==t&&(("list"!==t||"INPUT"!==e.tagName)&&(("type"!==t||"TEXTAREA"!==e.tagName)&&((!A.test(t)||!(0,r.HD)(n))&&t in e))))}"undefined"!==typeof HTMLElement&&HTMLElement;const M="transition",L="animation",$=(e,{slots:t})=>(0,o.h)(o.P$,D(e),t);$.displayName="Transition";const U={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},N=($.props=(0,r.l7)({},o.P$.props,U),(e,t=[])=>{(0,r.kJ)(e)?e.forEach((e=>e(...t))):e&&e(...t)}),J=e=>!!e&&((0,r.kJ)(e)?e.some((e=>e.length>1)):e.length>1);function D(e){const t={};for(const r in e)r in U||(t[r]=e[r]);if(!1===e.css)return t;const{name:n="v",type:o,duration:i,enterFromClass:s=`${n}-enter-from`,enterActiveClass:c=`${n}-enter-active`,enterToClass:u=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:a=c,appearToClass:f=u,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,v=B(i),m=v&&v[0],g=v&&v[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:w,onLeaveCancelled:x,onBeforeAppear:k=y,onAppear:S=b,onAppearCancelled:C=_}=t,E=(e,t,n)=>{K(e,t?f:u),K(e,t?a:c),n&&n()},O=(e,t)=>{e._isLeaving=!1,K(e,p),K(e,h),K(e,d),t&&t()},R=e=>(t,n)=>{const r=e?S:b,i=()=>E(t,e,n);N(r,[t,i]),G((()=>{K(t,e?l:s),V(t,e?f:u),J(r)||W(t,o,m,i)}))};return(0,r.l7)(t,{onBeforeEnter(e){N(y,[e]),V(e,s),V(e,c)},onBeforeAppear(e){N(k,[e]),V(e,l),V(e,a)},onEnter:R(!1),onAppear:R(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>O(e,t);V(e,p),Y(),V(e,d),G((()=>{e._isLeaving&&(K(e,p),V(e,h),J(w)||W(e,o,g,n))})),N(w,[e,n])},onEnterCancelled(e){E(e,!1),N(_,[e])},onAppearCancelled(e){E(e,!0),N(C,[e])},onLeaveCancelled(e){O(e),N(x,[e])}})}function B(e){if(null==e)return null;if((0,r.Kn)(e))return[q(e.enter),q(e.leave)];{const t=q(e);return[t,t]}}function q(e){const t=(0,r.He)(e);return t}function V(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function K(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function G(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let H=0;function W(e,t,n,r){const o=e._endId=++H,i=()=>{o===e._endId&&r()};if(n)return setTimeout(i,n);const{type:s,timeout:c,propCount:u}=z(e,t);if(!s)return r();const l=s+"end";let a=0;const f=()=>{e.removeEventListener(l,p),i()},p=t=>{t.target===e&&++a>=u&&f()};setTimeout((()=>{a(n[e]||"").split(", "),o=r(M+"Delay"),i=r(M+"Duration"),s=X(o,i),c=r(L+"Delay"),u=r(L+"Duration"),l=X(c,u);let a=null,f=0,p=0;t===M?s>0&&(a=M,f=s,p=i.length):t===L?l>0&&(a=L,f=l,p=u.length):(f=Math.max(s,l),a=f>0?s>l?M:L:null,p=a?a===M?i.length:u.length:0);const d=a===M&&/\b(transform|all)(,|$)/.test(n[M+"Property"]);return{type:a,timeout:f,propCount:p,hasTransform:d}}function X(e,t){while(e.lengthZ(t)+Z(e[n]))))}function Z(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function Y(){return document.body.offsetHeight}new WeakMap,new WeakMap;const Q=e=>{const t=e.props["onUpdate:modelValue"]||!1;return(0,r.kJ)(t)?e=>(0,r.ir)(t,e):t};const ee={deep:!0,created(e,{value:t,modifiers:{number:n}},o){const i=(0,r.DM)(t);C(e,"change",(()=>{const t=Array.prototype.filter.call(e.options,(e=>e.selected)).map((e=>n?(0,r.He)(ne(e)):ne(e)));e._assign(e.multiple?i?new Set(t):t:t[0])})),e._assign=Q(o)},mounted(e,{value:t}){te(e,t)},beforeUpdate(e,t,n){e._assign=Q(n)},updated(e,{value:t}){te(e,t)}};function te(e,t){const n=e.multiple;if(!n||(0,r.kJ)(t)||(0,r.DM)(t)){for(let o=0,i=e.options.length;o-1:i.selected=t.has(s);else if((0,r.WV)(ne(i),t))return void(e.selectedIndex!==o&&(e.selectedIndex=o))}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function ne(e){return"_value"in e?e._value:e.value}const re=["ctrl","shift","alt","meta"],oe={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>re.some((n=>e[`${n}Key`]&&!t.includes(n)))},ie=(e,t)=>(n,...r)=>{for(let e=0;e{const t=ue().createApp(...e);const{mount:n}=t;return t.mount=e=>{const o=ae(e);if(!o)return;const i=t._component;(0,r.mf)(i)||i.render||i.template||(i.template=o.innerHTML),o.innerHTML="";const s=n(o,!1,o instanceof SVGElement);return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),s},t};function ae(e){if((0,r.HD)(e)){const t=document.querySelector(e);return t}return e}},7139:function(e,t,n){"use strict";n.d(t,{C_:function(){return d},DM:function(){return A},E9:function(){return re},F7:function(){return S},Gg:function(){return V},HD:function(){return M},He:function(){return te},Kn:function(){return $},NO:function(){return x},Nj:function(){return ee},Od:function(){return O},PO:function(){return B},Pq:function(){return c},RI:function(){return j},S0:function(){return q},W7:function(){return D},WV:function(){return v},Z6:function(){return _},_A:function(){return H},_N:function(){return T},aU:function(){return Y},dG:function(){return w},e1:function(){return i},fY:function(){return r},hR:function(){return Z},hq:function(){return m},ir:function(){return Q},j5:function(){return l},kC:function(){return X},kJ:function(){return P},kT:function(){return b},l7:function(){return E},mf:function(){return I},rs:function(){return z},tI:function(){return U},tR:function(){return C},yA:function(){return u},yk:function(){return L},zw:function(){return g}});n(7658);function r(e,t){const n=Object.create(null),r=e.split(",");for(let o=0;o!!n[e.toLowerCase()]:e=>!!n[e]}const o="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",i=r(o);const s="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",c=r(s);function u(e){return!!e||""===e}function l(e){if(P(e)){const t={};for(let n=0;n{if(e){const n=e.split(f);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function d(e){let t="";if(M(e))t=e;else if(P(e))for(let n=0;nv(e,t)))}const g=e=>M(e)?e:null==e?"":P(e)||$(e)&&(e.toString===N||!I(e.toString))?JSON.stringify(e,y,2):String(e),y=(e,t)=>t&&t.__v_isRef?y(e,t.value):T(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:A(t)?{[`Set(${t.size})`]:[...t.values()]}:!$(t)||P(t)||B(t)?t:String(t),b={},_=[],w=()=>{},x=()=>!1,k=/^on[^a-z]/,S=e=>k.test(e),C=e=>e.startsWith("onUpdate:"),E=Object.assign,O=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},R=Object.prototype.hasOwnProperty,j=(e,t)=>R.call(e,t),P=Array.isArray,T=e=>"[object Map]"===J(e),A=e=>"[object Set]"===J(e),F=e=>"[object Date]"===J(e),I=e=>"function"===typeof e,M=e=>"string"===typeof e,L=e=>"symbol"===typeof e,$=e=>null!==e&&"object"===typeof e,U=e=>$(e)&&I(e.then)&&I(e.catch),N=Object.prototype.toString,J=e=>N.call(e),D=e=>J(e).slice(8,-1),B=e=>"[object Object]"===J(e),q=e=>M(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,V=r(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),K=e=>{const t=Object.create(null);return n=>{const r=t[n];return r||(t[n]=e(n))}},G=/-(\w)/g,H=K((e=>e.replace(G,((e,t)=>t?t.toUpperCase():"")))),W=/\B([A-Z])/g,z=K((e=>e.replace(W,"-$1").toLowerCase())),X=K((e=>e.charAt(0).toUpperCase()+e.slice(1))),Z=K((e=>e?`on${X(e)}`:"")),Y=(e,t)=>!Object.is(e,t),Q=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},te=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ne;const re=()=>ne||(ne="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:{})},89:function(e,t){"use strict";t.Z=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n}},2483:function(e,t,n){"use strict";n.d(t,{p7:function(){return nt},r5:function(){return J},yj:function(){return it}});n(7658),n(1703),n(541);var r=n(3396),o=n(4870); +/*! + * vue-router v4.1.5 + * (c) 2022 Eduardo San Martin Morote + * @license MIT + */ +const i="undefined"!==typeof window;function s(e){return e.__esModule||"Module"===e[Symbol.toStringTag]}const c=Object.assign;function u(e,t){const n={};for(const r in t){const o=t[r];n[r]=a(o)?o.map(e):e(o)}return n}const l=()=>{},a=Array.isArray;const f=/\/$/,p=e=>e.replace(f,"");function d(e,t,n="/"){let r,o={},i="",s="";const c=t.indexOf("#");let u=t.indexOf("?");return c=0&&(u=-1),u>-1&&(r=t.slice(0,u),i=t.slice(u+1,c>-1?c:t.length),o=e(i)),c>-1&&(r=r||t.slice(0,c),s=t.slice(c,t.length)),r=w(null!=r?r:t,n),{fullPath:r+(i&&"?")+i+s,path:r,query:o,hash:s}}function h(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function v(e,t){return t&&e.toLowerCase().startsWith(t.toLowerCase())?e.slice(t.length)||"/":e}function m(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&g(t.matched[r],n.matched[o])&&y(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function g(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function y(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!b(e[n],t[n]))return!1;return!0}function b(e,t){return a(e)?_(e,t):a(t)?_(t,e):e===t}function _(e,t){return a(t)?e.length===t.length&&e.every(((e,n)=>e===t[n])):1===e.length&&e[0]===t}function w(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/");let o,i,s=n.length-1;for(o=0;o1&&s--}return n.slice(0,s).join("/")+"/"+r.slice(o-(o===r.length?1:0)).join("/")}var x,k;(function(e){e["pop"]="pop",e["push"]="push"})(x||(x={})),function(e){e["back"]="back",e["forward"]="forward",e["unknown"]=""}(k||(k={}));function S(e){if(!e)if(i){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return"/"!==e[0]&&"#"!==e[0]&&(e="/"+e),p(e)}const C=/^[^#]+#/;function E(e,t){return e.replace(C,"#")+t}function O(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const R=()=>({left:window.pageXOffset,top:window.pageYOffset});function j(e){let t;if("el"in e){const n=e.el,r="string"===typeof n&&n.startsWith("#");0;const o="string"===typeof n?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=O(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(null!=t.left?t.left:window.pageXOffset,null!=t.top?t.top:window.pageYOffset)}function P(e,t){const n=history.state?history.state.position-t:-1;return n+e}const T=new Map;function A(e,t){T.set(e,t)}function F(e){const t=T.get(e);return T.delete(e),t}let I=()=>location.protocol+"//"+location.host;function M(e,t){const{pathname:n,search:r,hash:o}=t,i=e.indexOf("#");if(i>-1){let t=o.includes(e.slice(i))?e.slice(i).length:1,n=o.slice(t);return"/"!==n[0]&&(n="/"+n),v(n,"")}const s=v(n,e);return s+r+o}function L(e,t,n,r){let o=[],i=[],s=null;const u=({state:i})=>{const c=M(e,location),u=n.value,l=t.value;let a=0;if(i){if(n.value=c,t.value=i,s&&s===u)return void(s=null);a=l?i.position-l.position:0}else r(c);o.forEach((e=>{e(n.value,u,{delta:a,type:x.pop,direction:a?a>0?k.forward:k.back:k.unknown})}))};function l(){s=n.value}function a(e){o.push(e);const t=()=>{const t=o.indexOf(e);t>-1&&o.splice(t,1)};return i.push(t),t}function f(){const{history:e}=window;e.state&&e.replaceState(c({},e.state,{scroll:R()}),"")}function p(){for(const e of i)e();i=[],window.removeEventListener("popstate",u),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",u),window.addEventListener("beforeunload",f),{pauseListeners:l,listen:a,destroy:p}}function $(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?R():null}}function U(e){const{history:t,location:n}=window,r={value:M(e,n)},o={value:t.state};function i(r,i,s){const c=e.indexOf("#"),u=c>-1?(n.host&&document.querySelector("base")?e:e.slice(c))+r:I()+e+r;try{t[s?"replaceState":"pushState"](i,"",u),o.value=i}catch(l){console.error(l),n[s?"replace":"assign"](u)}}function s(e,n){const s=c({},t.state,$(o.value.back,e,o.value.forward,!0),n,{position:o.value.position});i(e,s,!0),r.value=e}function u(e,n){const s=c({},o.value,t.state,{forward:e,scroll:R()});i(s.current,s,!0);const u=c({},$(r.value,e,null),{position:s.position+1},n);i(e,u,!1),r.value=e}return o.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0),{location:r,state:o,push:u,replace:s}}function N(e){e=S(e);const t=U(e),n=L(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}const o=c({location:"",base:e,go:r,createHref:E.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function J(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),N(e)}function D(e){return"string"===typeof e||e&&"object"===typeof e}function B(e){return"string"===typeof e||"symbol"===typeof e}const q={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},V=Symbol("");var K;(function(e){e[e["aborted"]=4]="aborted",e[e["cancelled"]=8]="cancelled",e[e["duplicated"]=16]="duplicated"})(K||(K={}));function G(e,t){return c(new Error,{type:e,[V]:!0},t)}function H(e,t){return e instanceof Error&&V in e&&(null==t||!!(e.type&t))}const W="[^/]+?",z={sensitive:!1,strict:!1,start:!0,end:!0},X=/[.+*?^${}()[\]/\\]/g;function Z(e,t){const n=c({},z,t),r=[];let o=n.start?"^":"";const i=[];for(const c of e){const e=c.length?[]:[90];n.strict&&!c.length&&(o+="/");for(let t=0;tt.length?1===t.length&&80===t[0]?1:-1:0}function Q(e,t){let n=0;const r=e.score,o=t.score;while(n0&&t[t.length-1]<0}const te={type:0,value:""},ne=/[a-zA-Z0-9_]/;function re(e){if(!e)return[[]];if("/"===e)return[[te]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(e){throw new Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n;const o=[];let i;function s(){i&&o.push(i),i=[]}let c,u=0,l="",a="";function f(){l&&(0===n?i.push({type:0,value:l}):1===n||2===n||3===n?(i.length>1&&("*"===c||"+"===c)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:l,regexp:a,repeatable:"*"===c||"+"===c,optional:"*"===c||"?"===c})):t("Invalid state to consume buffer"),l="")}function p(){l+=c}while(u{s(h)}:l}function s(e){if(B(e)){const t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(s),t.alias.forEach(s))}else{const t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(s),e.alias.forEach(s))}}function u(){return n}function a(e){let t=0;while(t=0&&(e.record.path!==n[t].record.path||!pe(e,n[t])))t++;n.splice(t,0,e),e.record.name&&!le(e)&&r.set(e.record.name,e)}function f(e,t){let o,i,s,u={};if("name"in e&&e.name){if(o=r.get(e.name),!o)throw G(1,{location:e});0,s=o.record.name,u=c(se(t.params,o.keys.filter((e=>!e.optional)).map((e=>e.name))),e.params&&se(e.params,o.keys.map((e=>e.name)))),i=o.stringify(u)}else if("path"in e)i=e.path,o=n.find((e=>e.re.test(i))),o&&(u=o.parse(i),s=o.record.name);else{if(o=t.name?r.get(t.name):n.find((e=>e.re.test(t.path))),!o)throw G(1,{location:e,currentLocation:t});s=o.record.name,u=c({},t.params,e.params),i=o.stringify(u)}const l=[];let a=o;while(a)l.unshift(a.record),a=a.parent;return{name:s,path:i,params:u,matched:l,meta:ae(l)}}return t=fe({strict:!1,end:!0,sensitive:!1},t),e.forEach((e=>i(e))),{addRoute:i,resolve:f,removeRoute:s,getRoutes:u,getRecordMatcher:o}}function se(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ce(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:ue(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function ue(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]="boolean"===typeof n?n:n[r];return t}function le(e){while(e){if(e.record.aliasOf)return!0;e=e.parent}return!1}function ae(e){return e.reduce(((e,t)=>c(e,t.meta)),{})}function fe(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function pe(e,t){return t.children.some((t=>t===e||pe(e,t)))}const de=/#/g,he=/&/g,ve=/\//g,me=/=/g,ge=/\?/g,ye=/\+/g,be=/%5B/g,_e=/%5D/g,we=/%5E/g,xe=/%60/g,ke=/%7B/g,Se=/%7C/g,Ce=/%7D/g,Ee=/%20/g;function Oe(e){return encodeURI(""+e).replace(Se,"|").replace(be,"[").replace(_e,"]")}function Re(e){return Oe(e).replace(ke,"{").replace(Ce,"}").replace(we,"^")}function je(e){return Oe(e).replace(ye,"%2B").replace(Ee,"+").replace(de,"%23").replace(he,"%26").replace(xe,"`").replace(ke,"{").replace(Ce,"}").replace(we,"^")}function Pe(e){return je(e).replace(me,"%3D")}function Te(e){return Oe(e).replace(de,"%23").replace(ge,"%3F")}function Ae(e){return null==e?"":Te(e).replace(ve,"%2F")}function Fe(e){try{return decodeURIComponent(""+e)}catch(t){}return""+e}function Ie(e){const t={};if(""===e||"?"===e)return t;const n="?"===e[0],r=(n?e.slice(1):e).split("&");for(let o=0;oe&&je(e))):[r&&je(r)];o.forEach((e=>{void 0!==e&&(t+=(t.length?"&":"")+n,null!=e&&(t+="="+e))}))}return t}function Le(e){const t={};for(const n in e){const r=e[n];void 0!==r&&(t[n]=a(r)?r.map((e=>null==e?null:""+e)):null==r?r:""+r)}return t}const $e=Symbol(""),Ue=Symbol(""),Ne=Symbol(""),Je=Symbol(""),De=Symbol("");function Be(){let e=[];function t(t){return e.push(t),()=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function qe(e,t,n,r,o){const i=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise(((s,c)=>{const u=e=>{!1===e?c(G(4,{from:n,to:t})):e instanceof Error?c(e):D(e)?c(G(2,{from:t,to:e})):(i&&r.enterCallbacks[o]===i&&"function"===typeof e&&i.push(e),s())},l=e.call(r&&r.instances[o],t,n,u);let a=Promise.resolve(l);e.length<3&&(a=a.then(u)),a.catch((e=>c(e)))}))}function Ve(e,t,n,r){const o=[];for(const i of e){0;for(const e in i.components){let c=i.components[e];if("beforeRouteEnter"===t||i.instances[e])if(Ke(c)){const s=c.__vccOpts||c,u=s[t];u&&o.push(qe(u,n,r,i,e))}else{let u=c();0,o.push((()=>u.then((o=>{if(!o)return Promise.reject(new Error(`Couldn't resolve component "${e}" at "${i.path}"`));const c=s(o)?o.default:o;i.components[e]=c;const u=c.__vccOpts||c,l=u[t];return l&&qe(l,n,r,i,e)()}))))}}}return o}function Ke(e){return"object"===typeof e||"displayName"in e||"props"in e||"__vccOpts"in e}function Ge(e){const t=(0,r.f3)(Ne),n=(0,r.f3)(Je),i=(0,r.Fl)((()=>t.resolve((0,o.SU)(e.to)))),s=(0,r.Fl)((()=>{const{matched:e}=i.value,{length:t}=e,r=e[t-1],o=n.matched;if(!r||!o.length)return-1;const s=o.findIndex(g.bind(null,r));if(s>-1)return s;const c=Ze(e[t-2]);return t>1&&Ze(r)===c&&o[o.length-1].path!==c?o.findIndex(g.bind(null,e[t-2])):s})),c=(0,r.Fl)((()=>s.value>-1&&Xe(n.params,i.value.params))),u=(0,r.Fl)((()=>s.value>-1&&s.value===n.matched.length-1&&y(n.params,i.value.params)));function a(n={}){return ze(n)?t[(0,o.SU)(e.replace)?"replace":"push"]((0,o.SU)(e.to)).catch(l):Promise.resolve()}return{route:i,href:(0,r.Fl)((()=>i.value.href)),isActive:c,isExactActive:u,navigate:a}}const He=(0,r.aZ)({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Ge,setup(e,{slots:t}){const n=(0,o.qj)(Ge(e)),{options:i}=(0,r.f3)(Ne),s=(0,r.Fl)((()=>({[Ye(e.activeClass,i.linkActiveClass,"router-link-active")]:n.isActive,[Ye(e.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive})));return()=>{const o=t.default&&t.default(n);return e.custom?o:(0,r.h)("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),We=He;function ze(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(void 0===e.button||0===e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Xe(e,t){for(const n in t){const r=t[n],o=e[n];if("string"===typeof r){if(r!==o)return!1}else if(!a(o)||o.length!==r.length||r.some(((e,t)=>e!==o[t])))return!1}return!0}function Ze(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ye=(e,t,n)=>null!=e?e:null!=t?t:n,Qe=(0,r.aZ)({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const i=(0,r.f3)(De),s=(0,r.Fl)((()=>e.route||i.value)),u=(0,r.f3)(Ue,0),l=(0,r.Fl)((()=>{let e=(0,o.SU)(u);const{matched:t}=s.value;let n;while((n=t[e])&&!n.components)e++;return e})),a=(0,r.Fl)((()=>s.value.matched[l.value]));(0,r.JJ)(Ue,(0,r.Fl)((()=>l.value+1))),(0,r.JJ)($e,a),(0,r.JJ)(De,s);const f=(0,o.iH)();return(0,r.YP)((()=>[f.value,a.value,e.name]),(([e,t,n],[r,o,i])=>{t&&(t.instances[n]=e,o&&o!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=o.leaveGuards),t.updateGuards.size||(t.updateGuards=o.updateGuards))),!e||!t||o&&g(t,o)&&r||(t.enterCallbacks[n]||[]).forEach((t=>t(e)))}),{flush:"post"}),()=>{const o=s.value,i=e.name,u=a.value,l=u&&u.components[i];if(!l)return et(n.default,{Component:l,route:o});const p=u.props[i],d=p?!0===p?o.params:"function"===typeof p?p(o):p:null,h=e=>{e.component.isUnmounted&&(u.instances[i]=null)},v=(0,r.h)(l,c({},d,t,{onVnodeUnmounted:h,ref:f}));return et(n.default,{Component:v,route:o})||v}}});function et(e,t){if(!e)return null;const n=e(t);return 1===n.length?n[0]:n}const tt=Qe;function nt(e){const t=ie(e.routes,e),n=e.parseQuery||Ie,s=e.stringifyQuery||Me,f=e.history;const p=Be(),v=Be(),g=Be(),y=(0,o.XI)(q);let b=q;i&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const _=u.bind(null,(e=>""+e)),w=u.bind(null,Ae),k=u.bind(null,Fe);function S(e,n){let r,o;return B(e)?(r=t.getRecordMatcher(e),o=n):o=e,t.addRoute(o,r)}function C(e){const n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function E(){return t.getRoutes().map((e=>e.record))}function O(e){return!!t.getRecordMatcher(e)}function T(e,r){if(r=c({},r||y.value),"string"===typeof e){const o=d(n,e,r.path),i=t.resolve({path:o.path},r),s=f.createHref(o.fullPath);return c(o,i,{params:k(i.params),hash:Fe(o.hash),redirectedFrom:void 0,href:s})}let o;if("path"in e)o=c({},e,{path:d(n,e.path,r.path).path});else{const t=c({},e.params);for(const e in t)null==t[e]&&delete t[e];o=c({},e,{params:w(e.params)}),r.params=w(r.params)}const i=t.resolve(o,r),u=e.hash||"";i.params=_(k(i.params));const l=h(s,c({},e,{hash:Re(u),path:i.path})),a=f.createHref(l);return c({fullPath:l,hash:u,query:s===Me?Le(e.query):e.query||{}},i,{redirectedFrom:void 0,href:a})}function I(e){return"string"===typeof e?d(n,e,y.value.path):c({},e)}function M(e,t){if(b!==e)return G(8,{from:t,to:e})}function L(e){return N(e)}function $(e){return L(c(I(e),{replace:!0}))}function U(e){const t=e.matched[e.matched.length-1];if(t&&t.redirect){const{redirect:n}=t;let r="function"===typeof n?n(e):n;return"string"===typeof r&&(r=r.includes("?")||r.includes("#")?r=I(r):{path:r},r.params={}),c({query:e.query,hash:e.hash,params:"path"in r?{}:e.params},r)}}function N(e,t){const n=b=T(e),r=y.value,o=e.state,i=e.force,u=!0===e.replace,l=U(n);if(l)return N(c(I(l),{state:"object"===typeof l?c({},o,l.state):o,force:i,replace:u}),t||n);const a=n;let f;return a.redirectedFrom=t,!i&&m(s,r,n)&&(f=G(16,{to:a,from:r}),ne(r,r,!0,!1)),(f?Promise.resolve(f):D(a,r)).catch((e=>H(e)?H(e,2)?e:te(e):Q(e,a,r))).then((e=>{if(e){if(H(e,2))return N(c({replace:u},I(e.to),{state:"object"===typeof e.to?c({},o,e.to.state):o,force:i}),t||a)}else e=K(a,r,!0,u,o);return V(a,r,e),e}))}function J(e,t){const n=M(e,t);return n?Promise.reject(n):Promise.resolve()}function D(e,t){let n;const[r,o,i]=ot(e,t);n=Ve(r.reverse(),"beforeRouteLeave",e,t);for(const c of r)c.leaveGuards.forEach((r=>{n.push(qe(r,e,t))}));const s=J.bind(null,e,t);return n.push(s),rt(n).then((()=>{n=[];for(const r of p.list())n.push(qe(r,e,t));return n.push(s),rt(n)})).then((()=>{n=Ve(o,"beforeRouteUpdate",e,t);for(const r of o)r.updateGuards.forEach((r=>{n.push(qe(r,e,t))}));return n.push(s),rt(n)})).then((()=>{n=[];for(const r of e.matched)if(r.beforeEnter&&!t.matched.includes(r))if(a(r.beforeEnter))for(const o of r.beforeEnter)n.push(qe(o,e,t));else n.push(qe(r.beforeEnter,e,t));return n.push(s),rt(n)})).then((()=>(e.matched.forEach((e=>e.enterCallbacks={})),n=Ve(i,"beforeRouteEnter",e,t),n.push(s),rt(n)))).then((()=>{n=[];for(const r of v.list())n.push(qe(r,e,t));return n.push(s),rt(n)})).catch((e=>H(e,8)?e:Promise.reject(e)))}function V(e,t,n){for(const r of g.list())r(e,t,n)}function K(e,t,n,r,o){const s=M(e,t);if(s)return s;const u=t===q,l=i?history.state:{};n&&(r||u?f.replace(e.fullPath,c({scroll:u&&l&&l.scroll},o)):f.push(e.fullPath,o)),y.value=e,ne(e,t,n,u),te()}let W;function z(){W||(W=f.listen(((e,t,n)=>{if(!ce.listening)return;const r=T(e),o=U(r);if(o)return void N(c(o,{replace:!0}),r).catch(l);b=r;const s=y.value;i&&A(P(s.fullPath,n.delta),R()),D(r,s).catch((e=>H(e,12)?e:H(e,2)?(N(e.to,r).then((e=>{H(e,20)&&!n.delta&&n.type===x.pop&&f.go(-1,!1)})).catch(l),Promise.reject()):(n.delta&&f.go(-n.delta,!1),Q(e,r,s)))).then((e=>{e=e||K(r,s,!1),e&&(n.delta&&!H(e,8)?f.go(-n.delta,!1):n.type===x.pop&&H(e,20)&&f.go(-1,!1)),V(r,s,e)})).catch(l)})))}let X,Z=Be(),Y=Be();function Q(e,t,n){te(e);const r=Y.list();return r.length?r.forEach((r=>r(e,t,n))):console.error(e),Promise.reject(e)}function ee(){return X&&y.value!==q?Promise.resolve():new Promise(((e,t)=>{Z.add([e,t])}))}function te(e){return X||(X=!e,z(),Z.list().forEach((([t,n])=>e?n(e):t())),Z.reset()),e}function ne(t,n,o,s){const{scrollBehavior:c}=e;if(!i||!c)return Promise.resolve();const u=!o&&F(P(t.fullPath,0))||(s||!o)&&history.state&&history.state.scroll||null;return(0,r.Y3)().then((()=>c(t,n,u))).then((e=>e&&j(e))).catch((e=>Q(e,t,n)))}const re=e=>f.go(e);let oe;const se=new Set,ce={currentRoute:y,listening:!0,addRoute:S,removeRoute:C,hasRoute:O,getRoutes:E,resolve:T,options:e,push:L,replace:$,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:p.add,beforeResolve:v.add,afterEach:g.add,onError:Y.add,isReady:ee,install(e){const t=this;e.component("RouterLink",We),e.component("RouterView",tt),e.config.globalProperties.$router=t,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>(0,o.SU)(y)}),i&&!oe&&y.value===q&&(oe=!0,L(f.location).catch((e=>{0})));const n={};for(const o in q)n[o]=(0,r.Fl)((()=>y.value[o]));e.provide(Ne,t),e.provide(Je,(0,o.qj)(n)),e.provide(De,y);const s=e.unmount;se.add(e),e.unmount=function(){se.delete(e),se.size<1&&(b=q,W&&W(),W=null,y.value=q,oe=!1,X=!1),s()}}};return ce}function rt(e){return e.reduce(((e,t)=>e.then((()=>t()))),Promise.resolve())}function ot(e,t){const n=[],r=[],o=[],i=Math.max(t.matched.length,e.matched.length);for(let s=0;sg(e,i)))?r.push(i):n.push(i));const c=e.matched[s];c&&(t.matched.find((e=>g(e,c)))||o.push(c))}return[n,r,o]}function it(){return(0,r.f3)(Je)}}}]); +//# sourceMappingURL=chunk-vendors.cfba557b.js.map \ No newline at end of file diff --git a/apps/com.awspaas.user.apps.managesite/monitor/js/chunk-vendors.cfba557b.js.map b/apps/com.awspaas.user.apps.managesite/monitor/js/chunk-vendors.cfba557b.js.map new file mode 100644 index 0000000..7a7155b --- /dev/null +++ b/apps/com.awspaas.user.apps.managesite/monitor/js/chunk-vendors.cfba557b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"../apps/com.awspaas.user.apps.managesite/monitor/js/chunk-vendors.cfba557b.js","mappings":"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","sources":["webpack://monitor/./node_modules/core-js/internals/a-callable.js","webpack://monitor/./node_modules/core-js/internals/a-possible-prototype.js","webpack://monitor/./node_modules/core-js/internals/an-object.js","webpack://monitor/./node_modules/core-js/internals/array-includes.js","webpack://monitor/./node_modules/core-js/internals/array-set-length.js","webpack://monitor/./node_modules/core-js/internals/classof-raw.js","webpack://monitor/./node_modules/core-js/internals/classof.js","webpack://monitor/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://monitor/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://monitor/./node_modules/core-js/internals/create-property-descriptor.js","webpack://monitor/./node_modules/core-js/internals/define-built-in.js","webpack://monitor/./node_modules/core-js/internals/define-global-property.js","webpack://monitor/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://monitor/./node_modules/core-js/internals/descriptors.js","webpack://monitor/./node_modules/core-js/internals/document-create-element.js","webpack://monitor/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://monitor/./node_modules/core-js/internals/engine-user-agent.js","webpack://monitor/./node_modules/core-js/internals/engine-v8-version.js","webpack://monitor/./node_modules/core-js/internals/enum-bug-keys.js","webpack://monitor/./node_modules/core-js/internals/error-stack-clear.js","webpack://monitor/./node_modules/core-js/internals/error-stack-installable.js","webpack://monitor/./node_modules/core-js/internals/export.js","webpack://monitor/./node_modules/core-js/internals/fails.js","webpack://monitor/./node_modules/core-js/internals/function-apply.js","webpack://monitor/./node_modules/core-js/internals/function-bind-native.js","webpack://monitor/./node_modules/core-js/internals/function-call.js","webpack://monitor/./node_modules/core-js/internals/function-name.js","webpack://monitor/./node_modules/core-js/internals/function-uncurry-this.js","webpack://monitor/./node_modules/core-js/internals/get-built-in.js","webpack://monitor/./node_modules/core-js/internals/get-method.js","webpack://monitor/./node_modules/core-js/internals/global.js","webpack://monitor/./node_modules/core-js/internals/has-own-property.js","webpack://monitor/./node_modules/core-js/internals/hidden-keys.js","webpack://monitor/./node_modules/core-js/internals/ie8-dom-define.js","webpack://monitor/./node_modules/core-js/internals/indexed-object.js","webpack://monitor/./node_modules/core-js/internals/inherit-if-required.js","webpack://monitor/./node_modules/core-js/internals/inspect-source.js","webpack://monitor/./node_modules/core-js/internals/install-error-cause.js","webpack://monitor/./node_modules/core-js/internals/internal-state.js","webpack://monitor/./node_modules/core-js/internals/is-array.js","webpack://monitor/./node_modules/core-js/internals/is-callable.js","webpack://monitor/./node_modules/core-js/internals/is-forced.js","webpack://monitor/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://monitor/./node_modules/core-js/internals/is-object.js","webpack://monitor/./node_modules/core-js/internals/is-pure.js","webpack://monitor/./node_modules/core-js/internals/is-symbol.js","webpack://monitor/./node_modules/core-js/internals/length-of-array-like.js","webpack://monitor/./node_modules/core-js/internals/make-built-in.js","webpack://monitor/./node_modules/core-js/internals/math-trunc.js","webpack://monitor/./node_modules/core-js/internals/normalize-string-argument.js","webpack://monitor/./node_modules/core-js/internals/object-define-property.js","webpack://monitor/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://monitor/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://monitor/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://monitor/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://monitor/./node_modules/core-js/internals/object-keys-internal.js","webpack://monitor/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://monitor/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://monitor/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://monitor/./node_modules/core-js/internals/own-keys.js","webpack://monitor/./node_modules/core-js/internals/proxy-accessor.js","webpack://monitor/./node_modules/core-js/internals/require-object-coercible.js","webpack://monitor/./node_modules/core-js/internals/shared-key.js","webpack://monitor/./node_modules/core-js/internals/shared-store.js","webpack://monitor/./node_modules/core-js/internals/shared.js","webpack://monitor/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://monitor/./node_modules/core-js/internals/to-absolute-index.js","webpack://monitor/./node_modules/core-js/internals/to-indexed-object.js","webpack://monitor/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://monitor/./node_modules/core-js/internals/to-length.js","webpack://monitor/./node_modules/core-js/internals/to-object.js","webpack://monitor/./node_modules/core-js/internals/to-primitive.js","webpack://monitor/./node_modules/core-js/internals/to-property-key.js","webpack://monitor/./node_modules/core-js/internals/to-string-tag-support.js","webpack://monitor/./node_modules/core-js/internals/to-string.js","webpack://monitor/./node_modules/core-js/internals/try-to-string.js","webpack://monitor/./node_modules/core-js/internals/uid.js","webpack://monitor/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://monitor/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://monitor/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://monitor/./node_modules/core-js/internals/well-known-symbol.js","webpack://monitor/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://monitor/./node_modules/core-js/modules/es.array.push.js","webpack://monitor/./node_modules/core-js/modules/es.array.unshift.js","webpack://monitor/./node_modules/core-js/modules/es.error.cause.js","webpack://monitor/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://monitor/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://monitor/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://monitor/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://monitor/./node_modules/vue-loader/dist/exportHelper.js","webpack://monitor/./node_modules/vue-router/dist/vue-router.mjs"],"sourcesContent":["var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es-x/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\n\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar SPECIAL_DOCUMENT_ALL = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = SPECIAL_DOCUMENT_ALL ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.25.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(result, 'stack', clearErrorStack(result.stack, 2));\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_TO_LENGTH || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_RESULT || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n /**\r\n * @internal\r\n */\r\n this.active = true;\r\n /**\r\n * @internal\r\n */\r\n this.effects = [];\r\n /**\r\n * @internal\r\n */\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n const currentEffectScope = activeEffectScope;\r\n try {\r\n activeEffectScope = this;\r\n return fn();\r\n }\r\n finally {\r\n activeEffectScope = currentEffectScope;\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n on() {\r\n activeEffectScope = this;\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n off() {\r\n activeEffectScope = this.parent;\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n let i, l;\r\n for (i = 0, l = this.effects.length; i < l; i++) {\r\n this.effects[i].stop();\r\n }\r\n for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n this.cleanups[i]();\r\n }\r\n if (this.scopes) {\r\n for (i = 0, l = this.scopes.length; i < l; i++) {\r\n this.scopes[i].stop(true);\r\n }\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope = activeEffectScope) {\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels of recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n this.parent = undefined;\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n let parent = activeEffect;\r\n let lastShouldTrack = shouldTrack;\r\n while (parent) {\r\n if (parent === this) {\r\n return;\r\n }\r\n parent = parent.parent;\r\n }\r\n try {\r\n this.parent = activeEffect;\r\n activeEffect = this;\r\n shouldTrack = true;\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n activeEffect = this.parent;\r\n shouldTrack = lastShouldTrack;\r\n this.parent = undefined;\r\n if (this.deferStop) {\r\n this.stop();\r\n }\r\n }\r\n }\r\n stop() {\r\n // stopped while running itself - defer the cleanup\r\n if (activeEffect === this) {\r\n this.deferStop = true;\r\n }\r\n else if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (shouldTrack && activeEffect) {\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n }\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* TriggerOpTypes.CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* TriggerOpTypes.ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* TriggerOpTypes.DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* TriggerOpTypes.SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n const effects = isArray(dep) ? dep : [...dep];\r\n for (const effect of effects) {\r\n if (effect.computed) {\r\n triggerEffect(effect, debuggerEventExtraInfo);\r\n }\r\n }\r\n for (const effect of effects) {\r\n if (!effect.computed) {\r\n triggerEffect(effect, debuggerEventExtraInfo);\r\n }\r\n }\r\n}\r\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(\r\n/*#__PURE__*/\r\nObject.getOwnPropertyNames(Symbol)\r\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\r\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\r\n // function\r\n .filter(key => key !== 'arguments' && key !== 'caller')\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* TrackOpTypes.GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */) {\r\n return shallow;\r\n }\r\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* TrackOpTypes.GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - skip unwrap for Array + integer key.\r\n return targetIsArray && isIntegerKey(key) ? res : res.value;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\r\n return false;\r\n }\r\n if (!shallow) {\r\n if (!isShallow(value) && !isReadonly(value)) {\r\n oldValue = toRaw(oldValue);\r\n value = toRaw(value);\r\n }\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* TrackOpTypes.HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* TrackOpTypes.ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (key !== rawKey) {\r\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, key);\r\n }\r\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, rawKey);\r\n }\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (key !== rawKey) {\r\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, key);\r\n }\r\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, rawKey);\r\n }\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* TriggerOpTypes.CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* ReactiveFlags.RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* TriggerOpTypes.DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\r\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\r\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\r\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\r\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* TargetType.COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* TargetType.COLLECTION */;\r\n default:\r\n return 0 /* TargetType.INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* ReactiveFlags.SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* TargetType.INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (isReadonly(target)) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* ReactiveFlags.RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only specific value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* TargetType.INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* TargetType.COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */]);\r\n}\r\nfunction isShallow(value) {\r\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\r\n if (shouldTrack && activeEffect) {\r\n ref = toRaw(ref);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep || (ref.dep = createDep()), {\r\n target: ref,\r\n type: \"get\" /* TrackOpTypes.GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep || (ref.dep = createDep()));\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* TriggerOpTypes.SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, __v_isShallow) {\r\n this.__v_isShallow = __v_isShallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = __v_isShallow ? value : toRaw(value);\r\n this._value = __v_isShallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\r\n newVal = useDirectValue ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = useDirectValue ? newVal : toReactive(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key, _defaultValue) {\r\n this._object = _object;\r\n this._key = _key;\r\n this._defaultValue = _defaultValue;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n const val = this._object[this._key];\r\n return val === undefined ? this._defaultValue : val;\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n const val = object[key];\r\n return isRef(val)\r\n ? val\r\n : new ObjectRefImpl(object, key, defaultValue);\r\n}\n\nvar _a;\r\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly, isSSR) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this[_a] = false;\r\n this._dirty = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this.effect.computed = this;\r\n this.effect.active = this._cacheable = !isSSR;\r\n this[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty || !self._cacheable) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\r\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a$1;\r\nconst tick = /*#__PURE__*/ Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a$1] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed instanceof DeferredComputedRefImpl) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = this;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a$1 = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, hasChanged, remove, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* ErrorCodes.APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"sp\" /* LifecycleHooks.SERVER_PREFETCH */]: 'serverPrefetch hook',\r\n [\"bc\" /* LifecycleHooks.BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* LifecycleHooks.CREATED */]: 'created hook',\r\n [\"bm\" /* LifecycleHooks.BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* LifecycleHooks.MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* LifecycleHooks.BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* LifecycleHooks.UPDATED */]: 'updated',\r\n [\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* LifecycleHooks.UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* LifecycleHooks.ACTIVATED */]: 'activated hook',\r\n [\"da\" /* LifecycleHooks.DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* LifecycleHooks.ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* LifecycleHooks.RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* ErrorCodes.SETUP_FUNCTION */]: 'setup function',\r\n [1 /* ErrorCodes.RENDER_FUNCTION */]: 'render function',\r\n [2 /* ErrorCodes.WATCH_GETTER */]: 'watcher getter',\r\n [3 /* ErrorCodes.WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* ErrorCodes.WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* ErrorCodes.NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* ErrorCodes.VNODE_HOOK */]: 'vnode hook',\r\n [8 /* ErrorCodes.DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* ErrorCodes.TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* ErrorCodes.APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* ErrorCodes.APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* ErrorCodes.FUNCTION_REF */]: 'ref function',\r\n [13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* ErrorCodes.SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* ErrorCodes.APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\r\nlet currentFlushPromise = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(id) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < id ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if (!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {\r\n if (job.id == null) {\r\n queue.push(job);\r\n }\r\n else {\r\n queue.splice(findInsertionIndex(job.id), 0, job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > flushIndex) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n if (!isArray(cb)) {\r\n if (!activePostFlushCbs ||\r\n !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {\r\n pendingPostFlushCbs.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingPostFlushCbs.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction flushPreFlushCbs(seen, \r\n// if currently flushing, skip the current job itself\r\ni = isFlushing ? flushIndex + 1 : 0) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (; i < queue.length; i++) {\r\n const cb = queue[i];\r\n if (cb && cb.pre) {\r\n if ((process.env.NODE_ENV !== 'production') && checkRecursiveUpdates(seen, cb)) {\r\n continue;\r\n }\r\n queue.splice(i, 1);\r\n i--;\r\n cb();\r\n }\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\r\n continue;\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nconst comparator = (a, b) => {\r\n const diff = getId(a) - getId(b);\r\n if (diff === 0) {\r\n if (a.pre && !b.pre)\r\n return -1;\r\n if (b.pre && !a.pre)\r\n return 1;\r\n }\r\n return diff;\r\n};\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n queue.sort(comparator);\r\n // conditional usage of checkRecursiveUpdate must be determined out of\r\n // try ... catch block since Rollup by default de-optimizes treeshaking\r\n // inside try-catch. This can leave all warning code unshaked. Although\r\n // they would get eventually shaken by a minifier like terser, some minifiers\r\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\r\n const check = (process.env.NODE_ENV !== 'production')\r\n ? (job) => checkRecursiveUpdates(seen, job)\r\n : NOOP;\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job && job.active !== false) {\r\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\r\n continue;\r\n }\r\n // console.log(`running:`, job.id)\r\n callWithErrorHandling(job, null, 14 /* ErrorCodes.SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length || pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n const instance = fn.ownerInstance;\r\n const componentName = instance && getComponentName(instance.type);\r\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n return true;\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n var _a, _b;\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n typeof window !== 'undefined' &&\r\n // some envs mock window but not fully\r\n window.HTMLElement &&\r\n // also exclude jsdom\r\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* DevtoolsHooks.APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* DevtoolsHooks.APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* DevtoolsHooks.COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* DevtoolsHooks.COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* DevtoolsHooks.COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* DevtoolsHooks.PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* DevtoolsHooks.PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* DevtoolsHooks.COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n if (instance.isUnmounted)\r\n return;\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n if (isObject(comp)) {\r\n cache.set(comp, null);\r\n }\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n if (isObject(comp)) {\r\n cache.set(comp, normalized);\r\n }\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* ErrorCodes.RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 6 /* ShapeFlags.COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n // clone before mutating since the root may be a hoisted vnode\r\n root = cloneVNode(root);\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 1 /* ShapeFlags.ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* PatchFlags.DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PatchFlags.PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the instance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\nfunction watchPostEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\r\n}\r\nfunction watchSyncEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n const instance = currentInstance;\r\n let getter;\r\n let forceTrigger = false;\r\n let isMultiSource = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = isShallow$1(source);\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n isMultiSource = true;\r\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* ErrorCodes.WATCH_GETTER */);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* ErrorCodes.WATCH_GETTER */);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithAsyncErrorHandling(source, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [onCleanup]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n let onCleanup = (fn) => {\r\n cleanup = effect.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);\r\n };\r\n };\r\n // in SSR there is no need to setup an actual effect, and it should be noop\r\n // unless it's eager\r\n if (isInSSRComponentSetup) {\r\n // we will also not call the invalidate callback (+ runner is not set up)\r\n onCleanup = NOOP;\r\n if (!cb) {\r\n getter();\r\n }\r\n else if (immediate) {\r\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\r\n getter(),\r\n isMultiSource ? [] : undefined,\r\n onCleanup\r\n ]);\r\n }\r\n return NOOP;\r\n }\r\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!effect.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = effect.run();\r\n if (deep ||\r\n forceTrigger ||\r\n (isMultiSource\r\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\r\n : hasChanged(newValue, oldValue)) ||\r\n (false )) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onCleanup\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n effect.run();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job; // the scheduler function gets called directly\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n job.pre = true;\r\n if (instance)\r\n job.id = instance.uid;\r\n scheduler = () => queueJob(job);\r\n }\r\n const effect = new ReactiveEffect(getter, scheduler);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n effect.onTrack = onTrack;\r\n effect.onTrigger = onTrigger;\r\n }\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = effect.run();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\r\n }\r\n else {\r\n effect.run();\r\n }\r\n return () => {\r\n effect.stop();\r\n if (instance && instance.scope) {\r\n remove(instance.scope.effects, effect);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, value, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? source.includes('.')\r\n ? createPathGetter(publicThis, source)\r\n : () => publicThis[source]\r\n : source.bind(publicThis, publicThis);\r\n let cb;\r\n if (isFunction(value)) {\r\n cb = value;\r\n }\r\n else {\r\n cb = value.handler;\r\n options = value;\r\n }\r\n const cur = currentInstance;\r\n setCurrentInstance(this);\r\n const res = doWatch(getter, cb.bind(publicThis), options);\r\n if (cur) {\r\n setCurrentInstance(cur);\r\n }\r\n else {\r\n unsetCurrentInstance();\r\n }\r\n return res;\r\n}\r\nfunction createPathGetter(ctx, path) {\r\n const segments = path.split('.');\r\n return () => {\r\n let cur = ctx;\r\n for (let i = 0; i < segments.length && cur; i++) {\r\n cur = cur[segments[i]];\r\n }\r\n return cur;\r\n };\r\n}\r\nfunction traverse(value, seen) {\r\n if (!isObject(value) || value[\"__v_skip\" /* ReactiveFlags.SKIP */]) {\r\n return value;\r\n }\r\n seen = seen || new Set();\r\n if (seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else if (isPlainObject(value)) {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n let child = children[0];\r\n if (children.length > 1) {\r\n let hasFound = false;\r\n // locate first non-comment child\r\n for (const c of children) {\r\n if (c.type !== Comment) {\r\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\r\n // warn more than one non-comment child\r\n warn(' can only be used on a single element or component. ' +\r\n 'Use for lists.');\r\n break;\r\n }\r\n child = c;\r\n hasFound = true;\r\n if (!(process.env.NODE_ENV !== 'production'))\r\n break;\r\n }\r\n }\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n mode &&\r\n mode !== 'in-out' &&\r\n mode !== 'out-in' &&\r\n mode !== 'default') {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* ErrorCodes.TRANSITION_HOOK */, args);\r\n };\r\n const callAsyncHook = (hook, args) => {\r\n const done = args[1];\r\n callHook(hook, args);\r\n if (isArray(hook)) {\r\n if (hook.every(hook => hook.length <= 1))\r\n done();\r\n }\r\n else if (hook.length <= 1) {\r\n done();\r\n }\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n callAsyncHook(hook, [el, done]);\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n callAsyncHook(onLeave, [el, done]);\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n // #5360 inherit parent key in case of