!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("path"),require("fs"),require("crypto")):"function"==typeof define&&define.amd?define(["path","fs","crypto"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).path,e.fs,e.crypto$1)}(this,function(e,_,g){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var Ut=t(e),xt=t(_),Bt=t(g);function r(e,t){return e(t={exports:{}},t.exports),t.exports}var y=r(function(z){var _;(_=void 0!==(_=void 0!==_?_:{})?_:{}).locateFile=function(e){return"decoder-pro.wasm"==e&&"undefined"!=typeof JESSIBUCA_PRO_WASM_URL&&""!=JESSIBUCA_PRO_WASM_URL?JESSIBUCA_PRO_WASM_URL:e};var t,m,R,M,N,O,s,G=Object.assign({},_),H="./this.program",V="object"==typeof window,h="function"==typeof importScripts,$="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,e="",j=($?(e=h?Ut.default.dirname(e)+"/":__dirname+"/",O=()=>{N||(M=xt.default,N=Ut.default)},t=function(e,t){return O(),e=N.normalize(e),M.readFileSync(e,t?void 0:"utf8")},R=e=>{e=t(e,!0);return e=e.buffer?e:new Uint8Array(e)},m=(e,r,i)=>{O(),e=N.normalize(e),M.readFile(e,function(e,t){e?i(e):r(t.buffer)})},1{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},h&&(R=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),m=(e,t,r)=>{var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=()=>{200==i.status||0==i.status&&i.response?t(i.response):r()},i.onerror=r,i.send(null)}),_.print||console.log.bind(console)),o=_.printErr||console.warn.bind(console),W=(Object.assign(_,G),_.arguments&&_.arguments,_.thisProgram&&(H=_.thisProgram),_.quit&&_.quit,_.wasmBinary&&(s=_.wasmBinary),_.noExitRuntime,"object"!=typeof WebAssembly&&b("no native wasm support detected"),!1);function Y(e,t){e||b(t)}var q,u,f,l,X,d,p,K,Z,J,Q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function a(e,t,r){for(var i=t+r,n=t;e[n]&&!(i<=n);)++n;if(16>10,56320|1023&o))):s+=String.fromCharCode((31&l)<<6|a)):s+=String.fromCharCode(l)}return s}function ee(e,t){return e?a(f,e,t):""}function te(e,t,r,i){if(!(0>6,t[r++]=128|63&o}else if(o<=65535){if(s<=r+2)break;t[r++]=224|o>>12,t[r++]=128|o>>6&63,t[r++]=128|63&o}else{if(s<=r+3)break;t[r++]=240|o>>18,t[r++]=128|o>>12&63,t[r++]=128|o>>6&63,t[r++]=128|63&o}}return t[r]=0,r-n}function re(e){for(var t=0,r=0;r>2]=e},this.get_type=function(){return p[this.ptr+4>>2]},this.set_destructor=function(e){p[this.ptr+8>>2]=e},this.get_destructor=function(){return p[this.ptr+8>>2]},this.set_refcount=function(e){d[this.ptr>>2]=e},this.set_caught=function(e){u[this.ptr+12>>0]=e=e?1:0},this.get_caught=function(){return 0!=u[this.ptr+12>>0]},this.set_rethrown=function(e){u[this.ptr+13>>0]=e=e?1:0},this.get_rethrown=function(){return 0!=u[this.ptr+13>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=d[this.ptr>>2];d[this.ptr>>2]=e+1},this.release_ref=function(){var e=d[this.ptr>>2];return d[this.ptr>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){p[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return p[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Et(this.get_type()))return p[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}le(c="decoder-pro.wasm")||(G=c,c=_.locateFile?_.locateFile(G,e):e+G);var v={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,i=e.length-1;0<=i;i--){var n=e[i];"."===n?e.splice(i,1):".."===n?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=v.isAbs(e),r="/"===e.substr(-1);return(e=(e=v.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/"))||t?e:".")&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var e=v.splitPath(e),t=e[0],e=e[1];return t||e?t+(e=e&&e.substr(0,e.length-1)):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=v.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments,0);return v.normalize(e.join("/"))},join2:(e,t)=>v.normalize(e+"/"+t)},w={resolve:function(){for(var e="",t=!1,r=arguments.length-1;-1<=r&&!t;r--){var i=0<=r?arguments[r]:S.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t=v.isAbs(i)}return(t?"/":"")+v.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/")||"."},relative:(e,t)=>{function r(e){for(var t=0;t>>0),0!=r&&(t=Math.max(t,256)),r=e.contents,e.contents=new Uint8Array(t),0=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-n,i);if(8!!e),!1),i=S.root,n="/",s=0;s{for(var t,r;;){if(S.isRoot(e))return r=e.mount.mountpoint,t?"/"!==r[r.length-1]?r+"/"+t:r+t:r;t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var r=0,i=0;i>>0)%S.nameTable.length},hashAddNode:e=>{var t=S.hashName(e.parent.id,e.name);e.name_next=S.nameTable[t],S.nameTable[t]=e},hashRemoveNode:e=>{var t=S.hashName(e.parent.id,e.name);if(S.nameTable[t]===e)S.nameTable[t]=e.name_next;else for(var r=S.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=S.mayLookup(e);if(r)throw new S.ErrnoError(r,e);for(var r=S.hashName(e.id,t),i=S.nameTable[r];i;i=i.name_next){var n=i.name;if(i.parent.id===e.id&&n===t)return i}return S.lookup(e,t)},createNode:(e,t,r,i)=>{e=new S.FSNode(e,t,r,i);return S.hashAddNode(e),e},destroyNode:e=>{S.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=S.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>S.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{return S.nodePermissions(e,"x")||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return S.lookupNode(e,t),20}catch(e){}return S.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{var i;try{i=S.lookupNode(e,t)}catch(e){return e.errno}t=S.nodePermissions(e,"wx");if(t)return t;if(r){if(!S.isDir(i.mode))return 54;if(S.isRoot(i)||S.getPath(i)===S.cwd())return 10}else if(S.isDir(i.mode))return 31;return 0},mayOpen:(e,t)=>e?S.isLink(e.mode)?32:S.isDir(e.mode)&&("r"!==S.flagsToPermissionString(t)||512&t)?31:S.nodePermissions(e,S.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:function(){for(var e=0S.streams[e],createStream:(e,t,r)=>{S.FSStream||(S.FSStream=function(){this.shared={}},S.FSStream.prototype={},Object.defineProperties(S.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new S.FSStream,e);t=S.nextfd(t,r);return e.fd=t,S.streams[t]=e},closeStream:e=>{S.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=S.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new S.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{S.devices[e]={stream_ops:t}},getDevice:e=>S.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var i=r.pop();t.push(i),r.push.apply(r,i.mounts)}return t},syncfs:(t,r)=>{"function"==typeof t&&(r=t,t=!1),S.syncFSRequests++,1=i.length&&s(null)}i.forEach(e=>{if(!e.type.syncfs)return a(null);e.type.syncfs(e,t,a)})},mount:(e,t,r)=>{var i,n="/"===r,s=!r;if(n&&S.root)throw new S.ErrnoError(10);if(!n&&!s){s=S.lookupPath(r,{follow_mount:!1});if(r=s.path,i=s.node,S.isMountpoint(i))throw new S.ErrnoError(10);if(!S.isDir(i.mode))throw new S.ErrnoError(54)}s={type:e,opts:t,mountpoint:r,mounts:[]},t=e.mount(s);return(t.mount=s).root=t,n?S.root=t:i&&(i.mounted=s,i.mount&&i.mount.mounts.push(s)),t},unmount:e=>{e=S.lookupPath(e,{follow_mount:!1});if(!S.isMountpoint(e.node))throw new S.ErrnoError(28);var e=e.node,t=e.mounted,i=S.getMounts(t),t=(Object.keys(S.nameTable).forEach(e=>{for(var t=S.nameTable[e];t;){var r=t.name_next;i.includes(t.mount)&&S.destroyNode(t),t=r}}),e.mounted=null,e.mount.mounts.indexOf(t));e.mount.mounts.splice(t,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var i=S.lookupPath(e,{parent:!0}).node,e=v.basename(e);if(!e||"."===e||".."===e)throw new S.ErrnoError(28);var n=S.mayCreate(i,e);if(n)throw new S.ErrnoError(n);if(i.node_ops.mknod)return i.node_ops.mknod(i,e,t,r);throw new S.ErrnoError(63)},create:(e,t)=>S.mknod(e,t=(t=void 0!==t?t:438)&4095|32768,0),mkdir:(e,t)=>S.mknod(e,t=(t=void 0!==t?t:511)&1023|16384,0),mkdirTree:(e,t)=>{for(var r=e.split("/"),i="",n=0;n(void 0===r&&(r=t,t=438),S.mknod(e,t|=8192,r)),symlink:(e,t)=>{if(!w.resolve(e))throw new S.ErrnoError(44);var r=S.lookupPath(t,{parent:!0}).node;if(!r)throw new S.ErrnoError(44);var t=v.basename(t),i=S.mayCreate(r,t);if(i)throw new S.ErrnoError(i);if(r.node_ops.symlink)return r.node_ops.symlink(r,t,e);throw new S.ErrnoError(63)},rename:(e,t)=>{var r=v.dirname(e),i=v.dirname(t),n=v.basename(e),s=v.basename(t),a=S.lookupPath(e,{parent:!0}).node,o=S.lookupPath(t,{parent:!0}).node;if(!a||!o)throw new S.ErrnoError(44);if(a.mount!==o.mount)throw new S.ErrnoError(75);var l,d=S.lookupNode(a,n);if("."!==w.relative(e,i).charAt(0))throw new S.ErrnoError(28);if("."!==w.relative(t,r).charAt(0))throw new S.ErrnoError(55);try{l=S.lookupNode(o,s)}catch(e){}if(d!==l){i=S.isDir(d.mode),t=S.mayDelete(a,n,i);if(t)throw new S.ErrnoError(t);if(t=l?S.mayDelete(o,s,i):S.mayCreate(o,s))throw new S.ErrnoError(t);if(!a.node_ops.rename)throw new S.ErrnoError(63);if(S.isMountpoint(d)||l&&S.isMountpoint(l))throw new S.ErrnoError(10);if(o!==a&&(t=S.nodePermissions(a,"w")))throw new S.ErrnoError(t);S.hashRemoveNode(d);try{a.node_ops.rename(d,o,s)}catch(e){throw e}finally{S.hashAddNode(d)}}},rmdir:e=>{var t=S.lookupPath(e,{parent:!0}).node,e=v.basename(e),r=S.lookupNode(t,e),i=S.mayDelete(t,e,!0);if(i)throw new S.ErrnoError(i);if(!t.node_ops.rmdir)throw new S.ErrnoError(63);if(S.isMountpoint(r))throw new S.ErrnoError(10);t.node_ops.rmdir(t,e),S.destroyNode(r)},readdir:e=>{e=S.lookupPath(e,{follow:!0}).node;if(e.node_ops.readdir)return e.node_ops.readdir(e);throw new S.ErrnoError(54)},unlink:e=>{var t=S.lookupPath(e,{parent:!0}).node;if(!t)throw new S.ErrnoError(44);var e=v.basename(e),r=S.lookupNode(t,e),i=S.mayDelete(t,e,!1);if(i)throw new S.ErrnoError(i);if(!t.node_ops.unlink)throw new S.ErrnoError(63);if(S.isMountpoint(r))throw new S.ErrnoError(10);t.node_ops.unlink(t,e),S.destroyNode(r)},readlink:e=>{e=S.lookupPath(e).node;if(!e)throw new S.ErrnoError(44);if(e.node_ops.readlink)return w.resolve(S.getPath(e.parent),e.node_ops.readlink(e));throw new S.ErrnoError(28)},stat:(e,t)=>{e=S.lookupPath(e,{follow:!t}).node;if(!e)throw new S.ErrnoError(44);if(e.node_ops.getattr)return e.node_ops.getattr(e);throw new S.ErrnoError(63)},lstat:e=>S.stat(e,!0),chmod:(e,t,r)=>{r="string"==typeof e?S.lookupPath(e,{follow:!r}).node:e;if(!r.node_ops.setattr)throw new S.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&t|-4096&r.mode,timestamp:Date.now()})},lchmod:(e,t)=>{S.chmod(e,t,!0)},fchmod:(e,t)=>{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);S.chmod(e.node,t)},chown:(e,t,r,i)=>{i="string"==typeof e?S.lookupPath(e,{follow:!i}).node:e;if(!i.node_ops.setattr)throw new S.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:(e,t,r)=>{S.chown(e,t,r,!0)},fchown:(e,t,r)=>{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);S.chown(e.node,t,r)},truncate:(e,t)=>{if(t<0)throw new S.ErrnoError(28);e="string"==typeof e?S.lookupPath(e,{follow:!0}).node:e;if(!e.node_ops.setattr)throw new S.ErrnoError(63);if(S.isDir(e.mode))throw new S.ErrnoError(31);if(!S.isFile(e.mode))throw new S.ErrnoError(28);var r=S.nodePermissions(e,"w");if(r)throw new S.ErrnoError(r);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);if(0==(2097155&e.flags))throw new S.ErrnoError(28);S.truncate(e.node,t)},utime:(e,t,r)=>{e=S.lookupPath(e,{follow:!0}).node;e.node_ops.setattr(e,{timestamp:Math.max(t,r)})},open:(e,t,r)=>{if(""===e)throw new S.ErrnoError(44);var i;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?S.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)i=e;else{e=v.normalize(e);try{i=S.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var n=!1;if(64&t)if(i){if(128&t)throw new S.ErrnoError(20)}else i=S.mknod(e,r,0),n=!0;if(!i)throw new S.ErrnoError(44);if(S.isChrdev(i.mode)&&(t&=-513),65536&t&&!S.isDir(i.mode))throw new S.ErrnoError(54);if(!n){r=S.mayOpen(i,t);if(r)throw new S.ErrnoError(r)}512&t&&!n&&S.truncate(i,0),t&=-131713;r=S.createStream({node:i,path:S.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return r.stream_ops.open&&r.stream_ops.open(r),!_.logReadFiles||1&t||(S.readFiles||(S.readFiles={}),e in S.readFiles||(S.readFiles[e]=1)),r},close:e=>{if(S.isClosed(e))throw new S.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{S.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(S.isClosed(e))throw new S.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new S.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new S.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,i,n)=>{if(i<0||n<0)throw new S.ErrnoError(28);if(S.isClosed(e))throw new S.ErrnoError(8);if(1==(2097155&e.flags))throw new S.ErrnoError(8);if(S.isDir(e.node.mode))throw new S.ErrnoError(31);if(!e.stream_ops.read)throw new S.ErrnoError(28);var s=void 0!==n;if(s){if(!e.seekable)throw new S.ErrnoError(70)}else n=e.position;t=e.stream_ops.read(e,t,r,i,n);return s||(e.position+=t),t},write:(e,t,r,i,n,s)=>{if(i<0||n<0)throw new S.ErrnoError(28);if(S.isClosed(e))throw new S.ErrnoError(8);if(0==(2097155&e.flags))throw new S.ErrnoError(8);if(S.isDir(e.node.mode))throw new S.ErrnoError(31);if(!e.stream_ops.write)throw new S.ErrnoError(28);e.seekable&&1024&e.flags&&S.llseek(e,0,2);var a=void 0!==n;if(a){if(!e.seekable)throw new S.ErrnoError(70)}else n=e.position;t=e.stream_ops.write(e,t,r,i,n,s);return a||(e.position+=t),t},allocate:(e,t,r)=>{if(S.isClosed(e))throw new S.ErrnoError(8);if(t<0||r<=0)throw new S.ErrnoError(28);if(0==(2097155&e.flags))throw new S.ErrnoError(8);if(!S.isFile(e.node.mode)&&!S.isDir(e.node.mode))throw new S.ErrnoError(43);if(!e.stream_ops.allocate)throw new S.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,i,n)=>{if(0!=(2&i)&&0==(2&n)&&2!=(2097155&e.flags))throw new S.ErrnoError(2);if(1==(2097155&e.flags))throw new S.ErrnoError(2);if(e.stream_ops.mmap)return e.stream_ops.mmap(e,t,r,i,n);throw new S.ErrnoError(43)},msync:(e,t,r,i,n)=>e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,i,n):0,munmap:e=>0,ioctl:(e,t,r)=>{if(e.stream_ops.ioctl)return e.stream_ops.ioctl(e,t,r);throw new S.ErrnoError(59)},readFile:function(e){let t=1S.currentPath,chdir:e=>{e=S.lookupPath(e,{follow:!0});if(null===e.node)throw new S.ErrnoError(44);if(!S.isDir(e.node.mode))throw new S.ErrnoError(54);var t=S.nodePermissions(e.node,"x");if(t)throw new S.ErrnoError(t);S.currentPath=e.path},createDefaultDirectories:()=>{S.mkdir("/tmp"),S.mkdir("/home"),S.mkdir("/home/web_user")},createDefaultDevices:()=>{S.mkdir("/dev"),S.registerDevice(S.makedev(1,3),{read:()=>0,write:(e,t,r,i,n)=>i}),S.mkdev("/dev/null",S.makedev(1,3)),n.register(S.makedev(5,0),n.default_tty_ops),n.register(S.makedev(6,0),n.default_tty1_ops),S.mkdev("/dev/tty",S.makedev(5,0)),S.mkdev("/dev/tty1",S.makedev(6,0));var e=function(){var e;if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=new Uint8Array(1),()=>(crypto.getRandomValues(e),e[0]);if($)try{var t=Bt.default;return()=>t.randomBytes(1)[0]}catch(e){}return()=>b("randomDevice")}();S.createDevice("/dev","random",e),S.createDevice("/dev","urandom",e),S.mkdir("/dev/shm"),S.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{S.mkdir("/proc");var t=S.mkdir("/proc/self");S.mkdir("/proc/self/fd"),S.mount({mount:()=>{var e=S.createNode(t,"fd",16895,73);return e.node_ops={lookup:(e,t)=>{var r=S.getStream(+t);if(!r)throw new S.ErrnoError(8);t={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>r.path}};return t.parent=t}},e}},{},"/proc/self/fd")},createStandardStreams:()=>{_.stdin?S.createDevice("/dev","stdin",_.stdin):S.symlink("/dev/tty","/dev/stdin"),_.stdout?S.createDevice("/dev","stdout",null,_.stdout):S.symlink("/dev/tty","/dev/stdout"),_.stderr?S.createDevice("/dev","stderr",null,_.stderr):S.symlink("/dev/tty1","/dev/stderr"),S.open("/dev/stdin",0),S.open("/dev/stdout",1),S.open("/dev/stderr",1)},ensureErrnoError:()=>{S.ErrnoError||(S.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},S.ErrnoError.prototype=new Error,S.ErrnoError.prototype.constructor=S.ErrnoError,[44].forEach(e=>{S.genericErrors[e]=new S.ErrnoError(e),S.genericErrors[e].stack=""}))},staticInit:()=>{S.ensureErrnoError(),S.nameTable=new Array(4096),S.mount(E,{},"/"),S.createDefaultDirectories(),S.createDefaultDevices(),S.createSpecialDirectories(),S.filesystems={MEMFS:E}},init:(e,t,r)=>{S.init.initialized=!0,S.ensureErrnoError(),_.stdin=e||_.stdin,_.stdout=t||_.stdout,_.stderr=r||_.stderr,S.createStandardStreams()},quit:()=>{S.init.initialized=!1;for(var e=0;e{var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:(e,t)=>{e=S.analyzePath(e,t);return e.exists?e.object:null},analyzePath:(e,t)=>{try{e=(i=S.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var i=S.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=i.path,r.parentObject=i.node,r.name=v.basename(e),i=S.lookupPath(e,{follow:!t}),r.exists=!0,r.path=i.path,r.object=i.node,r.name=i.node.name,r.isRoot="/"===i.path}catch(e){r.error=e.errno}return r},createPath:(e,t,r,i)=>{e="string"==typeof e?e:S.getPath(e);for(var n=t.split("/").reverse();n.length;){var s=n.pop();if(s){var a=v.join2(e,s);try{S.mkdir(a)}catch(e){}e=a}}return a},createFile:(e,t,r,i,n)=>{e=v.join2("string"==typeof e?e:S.getPath(e),t),t=S.getMode(i,n);return S.create(e,t)},createDataFile:(e,t,r,i,n,s)=>{var a=t,t=(e&&(e="string"==typeof e?e:S.getPath(e),a=t?v.join2(e,t):e),S.getMode(i,n)),e=S.create(a,t);if(r){if("string"==typeof r){for(var o=new Array(r.length),l=0,d=r.length;l{var e=v.join2("string"==typeof e?e:S.getPath(e),t),t=S.getMode(!!l,!!a),r=(S.createDevice.major||(S.createDevice.major=64),S.makedev(S.createDevice.major++,0));return S.registerDevice(r,{open:e=>{e.seekable=!1},close:e=>{a&&a.buffer&&a.buffer.length&&a(10)},read:(e,t,r,i,n)=>{for(var s,a=0,o=0;o{for(var s=0;s{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!t)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=pe(t(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new S.ErrnoError(29)}},createLazyFile:(e,t,a,r,i)=>{function n(){this.lengthKnown=!1,this.chunks=[]}if(n.prototype.get=function(e){var t;if(!(e>this.length-1||e<0))return t=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[t]},n.prototype.setDataGetter=function(e){this.getter=e},n.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",a,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+a+". Status: "+e.status);var t,i=Number(e.getResponseHeader("Content-length")),r=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,e=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,n=1048576,s=(r||(n=i),this);s.setDataGetter(e=>{var t=e*n,r=(e+1)*n-1,r=Math.min(r,i-1);if(void 0===s.chunks[e]&&(s.chunks[e]=((e,t)=>{if(t=s.length)return 0;var a=Math.min(s.length-n,i);if(s.slice)for(var o=0;o{var t=o.stream_ops[e];l[e]=function(){return S.forceLoadFile(o),t.apply(null,arguments)}}),l.read=(e,t,r,i,n)=>(S.forceLoadFile(o),d(e,t,r,i,n)),l.mmap=(e,t,r,i,n)=>{S.forceLoadFile(o);var s=ce(t);if(s)return d(e,u,s,t,r),{ptr:s,allocated:!0};throw new S.ErrnoError(48)},o.stream_ops=l,o},createPreloadedFile:(r,i,e,n,s,a,o,l,d,h)=>{var t,u,f,p=i?w.resolve(v.join2(r,i)):r;function c(e){function t(e){h&&h(),l||S.createDataFile(r,i,e,n,s,d),a&&a(),oe()}Browser.handledByPreloadPlugin(e,p,t,()=>{o&&o(),oe()})||t(e)}ae(),"string"==typeof e?(u=o,f="al "+(t=e),m(t,e=>{Y(e,'Loading data file "'+t+'" failed (no arrayBuffer).'),c(new Uint8Array(e)),f&&oe()},e=>{if(!u)throw'Loading data file "'+t+'" failed.';u()}),f&&ae()):c(e)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(a,o,l)=>{o=o||(()=>{}),l=l||(()=>{});var e=S.indexedDB();try{var d=e.open(S.DB_NAME(),S.DB_VERSION)}catch(a){return l(a)}d.onupgradeneeded=()=>{j("creating db"),d.result.createObjectStore(S.DB_STORE_NAME)},d.onsuccess=()=>{var e=d.result.transaction([S.DB_STORE_NAME],"readwrite"),t=e.objectStore(S.DB_STORE_NAME),r=0,i=0,n=a.length;function s(){(0==i?o:l)()}a.forEach(e=>{e=t.put(S.analyzePath(e).object.contents,e);e.onsuccess=()=>{++r+i==n&&s()},e.onerror=()=>{r+ ++i==n&&s()}}),e.onerror=l},d.onerror=l},loadFilesFromDB:(o,l,d)=>{l=l||(()=>{}),d=d||(()=>{});var e=S.indexedDB();try{var h=e.open(S.DB_NAME(),S.DB_VERSION)}catch(o){return d(o)}h.onupgradeneeded=d,h.onsuccess=()=>{var e=h.result;try{var t=e.transaction([S.DB_STORE_NAME],"readonly")}catch(e){return void d(e)}var r=t.objectStore(S.DB_STORE_NAME),i=0,n=0,s=o.length;function a(){(0==n?l:d)()}o.forEach(e=>{var t=r.get(e);t.onsuccess=()=>{S.analyzePath(e).exists&&S.unlink(e),S.createDataFile(v.dirname(e),v.basename(e),t.result,!0,!0,!0),++i+n==s&&a()},t.onerror=()=>{i+ ++n==s&&a()}}),t.onerror=d},h.onerror=d}},U={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if(v.isAbs(t))return t;var i;if(-100===e)i=S.cwd();else{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);i=e.path}if(0!=t.length)return v.join2(i,t);if(r)return i;throw new S.ErrnoError(44)},doStat:function(e,t,r){try{var i=e(t)}catch(e){if(e&&e.node&&v.normalize(t)!==v.normalize(S.getPath(e.node)))return-54;throw e}return d[r>>2]=i.dev,d[r+4>>2]=0,d[r+8>>2]=i.ino,d[r+12>>2]=i.mode,d[r+16>>2]=i.nlink,d[r+20>>2]=i.uid,d[r+24>>2]=i.gid,d[r+28>>2]=i.rdev,d[r+32>>2]=0,y=[i.size>>>0,(g=i.size,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+40>>2]=y[0],d[r+44>>2]=y[1],d[r+48>>2]=4096,d[r+52>>2]=i.blocks,y=[Math.floor(i.atime.getTime()/1e3)>>>0,(g=Math.floor(i.atime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+56>>2]=y[0],d[r+60>>2]=y[1],d[r+64>>2]=0,y=[Math.floor(i.mtime.getTime()/1e3)>>>0,(g=Math.floor(i.mtime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+72>>2]=y[0],d[r+76>>2]=y[1],d[r+80>>2]=0,y=[Math.floor(i.ctime.getTime()/1e3)>>>0,(g=Math.floor(i.ctime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+88>>2]=y[0],d[r+92>>2]=y[1],d[r+96>>2]=0,y=[i.ino>>>0,(g=i.ino,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+104>>2]=y[0],d[r+108>>2]=y[1],0},doMsync:function(e,t,r,i,n){e=f.slice(e,e+r);S.msync(t,e,n,r,i)},varargs:void 0,get:function(){return U.varargs+=4,d[U.varargs-4>>2]},getStr:function(e){return ee(e)},getStreamFromFD:function(e){e=S.getStream(e);if(e)return e;throw new S.ErrnoError(8)}};function me(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var _e=void 0;function x(e){for(var t="",r=e;f[r];)t+=_e[f[r++]];return t}var B={},A={},ge={};function ye(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&t<=57?"_"+e:e}function be(e,t){return e=ye(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function ve(e,t){var r=be(t,function(e){this.name=t,this.message=e;e=new Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});return r.prototype=Object.create(e.prototype),(r.prototype.constructor=r).prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var T=void 0;function k(e){throw new T(e)}var we=void 0;function Ee(e){throw new we(e)}function Se(i,t,n){function r(e){var t=n(e);t.length!==i.length&&Ee("Mismatched type converter count");for(var r=0;r{A.hasOwnProperty(e)?s[t]=A[e]:(a.push(e),B.hasOwnProperty(e)||(B[e]=[]),B[e].push(()=>{s[t]=A[e],++o===a.length&&r(s)}))}),0===a.length&&r(s)}function C(e,t,r){r=2e()))}function Ue(e){k(e.$$.ptrType.registeredClass.name+" instance already deleted")}var xe=!1;function Be(e){}function Ae(e){--e.count.value,0===e.count.value&&((e=e).smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr))}var Te={};var ke=[];function Ce(){for(;ke.length;){var e=ke.pop();e.$$.deleteScheduled=!1,e.delete()}}var Fe=void 0;var Ie={};function De(e,t){return t.ptrType&&t.ptr||Ee("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&Ee("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Pe(Object.create(e,{$$:{value:t}}))}function Pe(e){return"undefined"==typeof FinalizationRegistry?(Pe=e=>e,e):(xe=new FinalizationRegistry(e=>{Ae(e.$$)}),Be=e=>xe.unregister(e),(Pe=e=>{var t=e.$$;return t.smartPtr&&xe.register(e,{$$:t},e),e})(e))}function F(){}function Le(e,t,r){var i;void 0===e[t].overloadTable&&(i=e[t],e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||k("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[i.argCount]=i)}function ze(e,t,r,i,n,s,a,o){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=i,this.baseClass=n,this.getActualType=s,this.upcast=a,this.downcast=o,this.pureVirtualFunctions=[]}function Re(e,t,r){for(;t!==r;)t.upcast||k("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Me(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Re(t.$$.ptr,r,this.registeredClass)}function Ne(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),this.isSmartPointer?(i=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,i),i):0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&k("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);var r,i,n=t.$$.ptrType.registeredClass;if(i=Re(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&k("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?i=t.$$.smartPtr:k("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);break;case 1:i=t.$$.smartPtr;break;case 2:t.$$.smartPtrType===this?i=t.$$.smartPtr:(r=t.clone(),i=this.rawShare(i,Qe.toHandle(function(){r.delete()})),null!==e&&e.push(this.rawDestructor,i));break;default:k("Unsupporting sharing policy")}return i}function Oe(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&k("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Re(t.$$.ptr,r,this.registeredClass)}function Ge(e){return this.fromWireType(d[e>>2])}function I(e,t,r,i,n,s,a,o,l,d,h){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=i,this.isSmartPointer=n,this.pointeeType=s,this.sharingPolicy=a,this.rawGetPointee=o,this.rawConstructor=l,this.rawShare=d,this.rawDestructor=h,n||void 0!==t.baseClass?this.toWireType=Ne:(this.toWireType=i?Me:Oe,this.destructorFunction=null)}var He=[];function Ve(e){var t=He[e];return t||(e>=He.length&&(He.length=e+1),He[e]=t=J.get(e)),t}function D(e,t){var n,s,a,r=(e=x(e)).includes("j")?(n=e,s=t,a=[],function(){return a.length=0,Object.assign(a,arguments),t=s,r=a,(e=n).includes("j")?(i=t,e=_["dynCall_"+e],r&&r.length?e.apply(null,[i].concat(r)):e.call(null,i)):Ve(t).apply(null,r);var e,t,r,i}):Ve(t);return"function"!=typeof r&&k("unknown function pointer with signature "+e+": "+t),r}var $e=void 0;function je(e){var e=bt(e),t=x(e);return L(e),t}function We(e,t){var r=[],i={};throw t.forEach(function e(t){i[t]||A[t]||(ge[t]?ge[t].forEach(e):(r.push(t),i[t]=!0))}),new $e(e+": "+r.map(je).join([", "]))}function Ye(e,t){for(var r=[],i=0;i>2]);return r}function qe(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Xe(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=be(e.name||"unknownFunctionName",function(){}),r=(r.prototype=e.prototype,new r),e=e.apply(r,t);return e instanceof Object?e:r}function Ke(e,t,r,i,n){var s=t.length;s<2&&k("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==t[1]&&null!==r,a=!1,o=1;o(e||k("Cannot use deleted val. handle = "+e),P[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Ze.length?Ze.pop():P.length;return P[t]={refcount:1,value:e},t}}};function et(e){if(null===e)return"null";var t=typeof e;return"object"==t||"array"==t||"function"==t?e.toString():""+e}var tt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function rt(e,t){for(var r,i=e>>1,n=i+t/2;!(n<=i)&&X[i];)++i;if(32<(r=i<<1)-e&&tt)return tt.decode(f.subarray(e,r));for(var s="",a=0;!(t/2<=a);++a){var o=l[e+2*a>>1];if(0==o)break;s+=String.fromCharCode(o)}return s}function it(e,t,r){if((r=void 0===r?2147483647:r)<2)return 0;for(var i=t,n=(r-=2)<2*e.length?r/2:e.length,s=0;s>1]=a,t+=2}return l[t>>1]=0,t-i}function nt(e){return 2*e.length}function st(e,t){for(var r=0,i="";!(t/4<=r);){var n,s=d[e+4*r>>2];if(0==s)break;++r,65536<=s?(n=s-65536,i+=String.fromCharCode(55296|n>>10,56320|1023&n)):i+=String.fromCharCode(s)}return i}function at(e,t,r){if((r=void 0===r?2147483647:r)<4)return 0;for(var i=t,n=i+r-4,s=0;s>2]=a,(t+=4)+4>n)break}return d[t>>2]=0,t-i}function ot(e){for(var t=0,r=0;r>1]=2,0;case 16:case 8:default:return-28;case 9:return d[yt()>>2]=28,-1}}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return-e.errno;throw e}},w:function(e,t,r,i){U.varargs=i;try{t=U.getStr(t),t=U.calculateAt(e,t);var n=i?U.get():0;return S.open(t,r,n).fd}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return-e.errno;throw e}},u:function(e,t,r,i,n){},E:function(e,r,i,n,s){var a=me(i);C(e,{name:r=x(r),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:s},argPackAdvance:8,readValueFromPointer:function(e){var t;if(1===i)t=u;else if(2===i)t=l;else{if(4!==i)throw new TypeError("Unknown boolean type size: "+r);t=d}return this.fromWireType(t[e>>a])},destructorFunction:null})},l:function(l,e,t,d,r,h,i,u,n,f,p,s,c){p=x(p),h=D(r,h),u=u&&D(i,u),f=f&&D(n,f),c=D(s,c);var a,m=ye(p);r=m,i=function(){We("Cannot construct "+p+" due to unbound types",[d])},_.hasOwnProperty(r)?(k("Cannot register public name '"+r+"' twice"),Le(_,r,r),_.hasOwnProperty(a)&&k("Cannot register multiple overloads of a function with the same number of arguments ("+a+")!"),_[r].overloadTable[a]=i):_[r]=i,Se([l,e,t],d?[d]:[],function(e){e=e[0],e=d?(a=e.registeredClass).instancePrototype:F.prototype;var t,r,i=be(m,function(){if(Object.getPrototypeOf(this)!==n)throw new T("Use 'new' to construct "+p);if(void 0===s.constructor_body)throw new T(p+" has no accessible constructor");var e=s.constructor_body[arguments.length];if(void 0===e)throw new T("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(s.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)}),n=Object.create(e,{constructor:{value:i}}),s=(i.prototype=n,new ze(p,i,n,c,a,h,u,f)),e=new I(p,s,!0,!1,!1),a=new I(p+"*",s,!1,!1,!1),o=new I(p+" const*",s,!1,!0,!1);return Te[l]={pointerType:a,constPointerType:o},t=m,i=i,_.hasOwnProperty(t)||Ee("Replacing nonexistant public symbol"),_[t].overloadTable,_[t]=i,_[t].argCount=r,[e,a,o]})},k:function(e,i,t,r,n,s){Y(0{We("Cannot construct "+t.name+" due to unbound types",a)},Se([],a,function(e){return e.splice(1,0,null),t.registeredClass.constructor_body[i-1]=Ke(r,e,null,n,s),[]}),[]})},f:function(e,s,a,t,r,o,l,d){var h=Ye(a,t);s=x(s),o=D(r,o),Se([],[e],function(t){var r=(t=t[0]).name+"."+s;function e(){We("Cannot call "+r+" due to unbound types",h)}s.startsWith("@@")&&(s=Symbol[s.substring(2)]),d&&t.registeredClass.pureVirtualFunctions.push(s);var i=t.registeredClass.instancePrototype,n=i[s];return void 0===n||void 0===n.overloadTable&&n.className!==t.name&&n.argCount===a-2?(e.argCount=a-2,e.className=t.name,i[s]=e):(Le(i,s,r),i[s].overloadTable[a-2]=e),Se([],h,function(e){e=Ke(r,e,t,o,l);return void 0===i[s].overloadTable?(e.argCount=a-2,i[s]=e):i[s].overloadTable[a-2]=e,[]}),[]})},D:function(e,t){C(e,{name:t=x(t),fromWireType:function(e){var t=Qe.toValue(e);return Je(e),t},toWireType:function(e,t){return Qe.toHandle(t)},argPackAdvance:8,readValueFromPointer:Ge,destructorFunction:null})},p:function(e,t,r){r=me(r);C(e,{name:t=x(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:function(e,t){switch(t){case 2:return function(e){return this.fromWireType(K[e>>2])};case 3:return function(e){return this.fromWireType(Z[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}(t,r),destructorFunction:null})},c:function(e,t,r,i,n){t=x(t);var s,a=me(r),o=e=>e,r=(0===i&&(s=32-8*r,o=e=>e<>>s),t.includes("unsigned"));C(e,{name:t,fromWireType:o,toWireType:r?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:function(e,t,r){switch(t){case 0:return r?function(e){return u[e]}:function(e){return f[e]};case 1:return r?function(e){return l[e>>1]}:function(e){return X[e>>1]};case 2:return r?function(e){return d[e>>2]}:function(e){return p[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}(t,a,0!==i),destructorFunction:null})},b:function(e,t,r){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function n(e){var t=p,r=t[e>>=2],t=t[e+1];return new i(q,t,r)}C(e,{name:r=x(r),fromWireType:n,argPackAdvance:8,readValueFromPointer:n},{ignoreDuplicateRegistrations:!0})},o:function(e,t){var d="std::string"===(t=x(t));C(e,{name:t,fromWireType:function(e){var t,r=p[e>>2],i=e+4;if(d)for(var n=i,s=0;s<=r;++s){var a,o=i+s;s!=r&&0!=f[o]||(a=ee(n,o-n),void 0===t?t=a:t=t+String.fromCharCode(0)+a,n=o+1)}else{for(var l=new Array(r),s=0;s>2]=r,d&&i)te(t,f,s,r+1);else if(i)for(var a=0;aX,u=1):4===l&&(d=st,s=at,a=ot,h=()=>p,u=2),C(e,{name:n,fromWireType:function(e){for(var t,r=p[e>>2],i=h(),n=e+4,s=0;s<=r;++s){var a,o=e+4+s*l;s!=r&&0!=i[o>>u]||(a=d(n,o-n),void 0===t?t=a:t=t+String.fromCharCode(0)+a,n=o+l)}return L(e),t},toWireType:function(e,t){"string"!=typeof t&&k("Cannot pass non-string to C++ string type "+n);var r=a(t),i=gt(4+r+l);return p[i>>2]=r>>u,s(t,i+4,r+l),null!==e&&e.push(L,i),i},argPackAdvance:8,readValueFromPointer:Ge,destructorFunction:function(e){L(e)}})},q:function(e,t){C(e,{isVoid:!0,name:t=x(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},i:function(){return Date.now()},d:function(e,t,r,i){(e=dt[e])(t=Qe.toValue(t),r=void 0===(t=lt[e=r])?x(e):t,null,i)},g:Je,e:function(e,t){var r=function(e,t){for(var r,i,n=new Array(e),s=0;s>2],void 0===(i=A[r])&&k("parameter "+s+" has unknown type "+je(r)),i);return n}(e,t),t=r[0],i=t.name+"_$"+r.slice(1).map(function(e){return e.name}).join("_")+"$",n=ht[i];if(void 0!==n)return n;for(var s=["retType"],a=[t],o="",l=0;l>2]=r,e),n=r,s=0;s>0]=i.charCodeAt(s);u[n>>0]=0,l+=e.length+1}),0},z:function(e,t){var r=ft(),i=(p[e>>2]=r.length,0);return r.forEach(function(e){i+=e.length+1}),p[t>>2]=i,0},n:function(e){try{var t=U.getStreamFromFD(e);return S.close(t),0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},x:function(e,t){try{var r=U.getStreamFromFD(e),i=r.tty?2:S.isDir(r.mode)?3:S.isLink(r.mode)?7:4;return u[t>>0]=i,0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},B:function(e,t,r,i){try{var n=function(e,t,r){for(var i=0,n=0;n>2],a=p[t+4>>2],s=(t+=8,S.read(e,u,s,a,void 0));if(s<0)return-1;if(i+=s,s>2]=n,0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},t:function(e,t,r,i,n){try{var s=r+2097152>>>0<4194305-!!t?(t>>>0)+4294967296*r:NaN;if(isNaN(s))return 61;var a=U.getStreamFromFD(e);return S.llseek(a,s,i),y=[a.position>>>0,(g=a.position,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[n>>2]=y[0],d[n+4>>2]=y[1],a.getdents&&0===s&&0===i&&(a.getdents=null),0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},m:function(e,t,r,i){try{var n=function(e,t,r){for(var i=0,n=0;n>2],a=p[t+4>>2],s=(t+=8,S.write(e,u,s,a,void 0));if(s<0)return-1;i+=s}return i}(U.getStreamFromFD(e),t,r);return p[i>>2]=n,0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},h:function(e){}},L=(!function(){var t={a:_t};function r(e,t){var e=e.exports;_.asm=e,e=_.asm.F.buffer,q=e,_.HEAP8=u=new Int8Array(e),_.HEAP16=l=new Int16Array(e),_.HEAP32=d=new Int32Array(e),_.HEAPU8=f=new Uint8Array(e),_.HEAPU16=X=new Uint16Array(e),_.HEAPU32=p=new Uint32Array(e),_.HEAPF32=K=new Float32Array(e),_.HEAPF64=Z=new Float64Array(e),J=_.asm.J,e=_.asm.G,ne.unshift(e),oe()}function i(e){r(e.instance)}function n(e){return function(){if(!s&&(V||h)){if("function"==typeof fetch&&!de(c))return fetch(c,{credentials:"same-origin"}).then(function(e){if(e.ok)return e.arrayBuffer();throw"failed to load wasm binary file at '"+c+"'"}).catch(function(){return he(c)});if(m)return new Promise(function(t,e){m(c,function(e){t(new Uint8Array(e))},e)})}return Promise.resolve().then(function(){return he(c)})}().then(function(e){return WebAssembly.instantiate(e,t)}).then(function(e){return e}).then(e,function(e){o("failed to asynchronously prepare wasm: "+e),b(e)})}if(ae(),_.instantiateWasm)try{return _.instantiateWasm(t,r)}catch(t){return o("Module.instantiateWasm callback failed with error: "+t)}s||"function"!=typeof WebAssembly.instantiateStreaming||le(c)||de(c)||$||"function"!=typeof fetch?n(i):fetch(c,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,t).then(i,function(e){return o("wasm streaming compile failed: "+e),o("falling back to ArrayBuffer instantiation"),n(i)})})}(),_.___wasm_call_ctors=function(){return(_.___wasm_call_ctors=_.asm.G).apply(null,arguments)},_._free=function(){return(L=_._free=_.asm.H).apply(null,arguments)}),gt=_._malloc=function(){return(gt=_._malloc=_.asm.I).apply(null,arguments)},yt=_.___errno_location=function(){return(yt=_.___errno_location=_.asm.K).apply(null,arguments)},bt=_.___getTypeName=function(){return(bt=_.___getTypeName=_.asm.L).apply(null,arguments)};_.___embind_register_native_and_builtin_types=function(){return(_.___embind_register_native_and_builtin_types=_.asm.M).apply(null,arguments)};var vt,wt=_._emscripten_builtin_memalign=function(){return(wt=_._emscripten_builtin_memalign=_.asm.N).apply(null,arguments)},Et=_.___cxa_is_pointer_type=function(){return(Et=_.___cxa_is_pointer_type=_.asm.O).apply(null,arguments)};function St(){function e(){if(!vt&&(vt=!0,_.calledRun=!0,!W)){if(_.noFSInit||S.init.initialized||S.init(),S.ignorePermissions=!1,ue(ne),_.onRuntimeInitialized&&_.onRuntimeInitialized(),_.postRun)for("function"==typeof _.postRun&&(_.postRun=[_.postRun]);_.postRun.length;)e=_.postRun.shift(),se.unshift(e);var e;ue(se)}}if(!(0{e&&g.pixelStorei(g.UNPACK_ALIGNMENT,1);e=s(g.VERTEX_SHADER,"\n attribute vec4 aVertexPosition;\n attribute vec2 aTexturePosition;\n uniform mat4 uModelMatrix;\n uniform mat4 uViewMatrix;\n uniform mat4 uProjectionMatrix;\n varying lowp vec2 vTexturePosition;\n void main(void) {\n gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * aVertexPosition;\n vTexturePosition = aTexturePosition;\n }\n "),t=s(g.FRAGMENT_SHADER,"\n precision highp float;\n varying highp vec2 vTexturePosition;\n uniform int isyuv;\n uniform sampler2D rgbaTexture;\n uniform sampler2D yTexture;\n uniform sampler2D uTexture;\n uniform sampler2D vTexture;\n\n const mat4 YUV2RGB = mat4( 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n\n\n void main(void) {\n\n if (isyuv>0) {\n\n highp float y = texture2D(yTexture, vTexturePosition).r;\n highp float u = texture2D(uTexture, vTexturePosition).r;\n highp float v = texture2D(vTexture, vTexturePosition).r;\n gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;\n\n } else {\n gl_FragColor = texture2D(rgbaTexture, vTexturePosition);\n }\n }\n "),r=g.createProgram(),g.attachShader(r,e),g.attachShader(r,t),g.linkProgram(r);var t,r,e=g.getProgramParameter(r,g.LINK_STATUS)?r:(console.log("Unable to initialize the shader program: "+g.getProgramInfoLog(r)),null);let y={program:e,attribLocations:{vertexPosition:g.getAttribLocation(e,"aVertexPosition"),texturePosition:g.getAttribLocation(e,"aTexturePosition")},uniformLocations:{projectionMatrix:g.getUniformLocation(e,"uProjectionMatrix"),modelMatrix:g.getUniformLocation(e,"uModelMatrix"),viewMatrix:g.getUniformLocation(e,"uViewMatrix"),rgbatexture:g.getUniformLocation(e,"rgbaTexture"),ytexture:g.getUniformLocation(e,"yTexture"),utexture:g.getUniformLocation(e,"uTexture"),vtexture:g.getUniformLocation(e,"vTexture"),isyuv:g.getUniformLocation(e,"isyuv")}},b=(t=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,t),g.bufferData(g.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1]),g.STATIC_DRAW),r=(r=[]).concat([0,1],[1,1],[1,0],[0,0]),e=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,e),g.bufferData(g.ARRAY_BUFFER,new Float32Array(r),g.STATIC_DRAW),r=g.createBuffer(),g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,r),g.bufferData(g.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),g.STATIC_DRAW),{position:t,texPosition:e,indices:r}),i=n(),v=n(),w=n(),E=n();function n(){var e=g.createTexture();return g.bindTexture(g.TEXTURE_2D,e),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),e}function s(e,t){e=g.createShader(e);return g.shaderSource(e,t),g.compileShader(e),g.getShaderParameter(e,g.COMPILE_STATUS)?e:(console.log("An error occurred compiling the shaders: "+g.getShaderInfoLog(e)),g.deleteShader(e),null)}function a(e,t){g.viewport(0,0,e,t),g.clearColor(0,0,0,0),g.clearDepth(1),g.enable(g.DEPTH_TEST),g.depthFunc(g.LEQUAL),g.clear(g.COLOR_BUFFER_BIT|g.DEPTH_BUFFER_BIT);const r=U();A(r,-1,1,-1,1,.1,100);var i,n,s,a,o,l,d,h,u,f,p,c,m,_,e=U(),t=(B(e),U());i=t,n=x(0,0,0),s=x(0,0,-1),a=x(0,1,0),u=n[0],f=n[1],n=n[2],p=a[0],c=a[1],a=a[2],m=s[0],_=s[1],s=s[2],Math.abs(u-m)>4===G&&e[1]===fe}r(function(e){var a,t,o,r,i;a="undefined"!=typeof window&&void 0!==window.document?window.document:{},t=e.exports,o=function(){for(var e,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,i=t.length,n={};re.type===i):r)[0],s=null,e=1;var t;if(0{this.reject=e,this.resolve=e=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(e)},this.demand(r,!0)||null==(e=this.pull)||e.call(this,r)})},new(o=(o=a=void 0)||Promise)(function(r,t){function i(e){try{s(l.next(e))}catch(e){t(e)}}function n(e){try{s(l.throw(e))}catch(e){t(e)}}function s(e){var t;e.done?r(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(i,n)}s((l=l.apply(e,a||[])).next())});var e,a,o,l}readU32(){return this.read(k)}readU16(){return this.read(C)}readU8(){return this.read(F)}close(){var e;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),null!=(e=this.reject)&&e.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(this.buffer&&this.need){let e=null;const i=this.buffer.subarray(this.consumed);let t=0;var r=e=>i.length<(t=e);if("number"==typeof this.need){if(r(this.need))return;e=i.subarray(0,t)}else if(this.need===k){if(r(4))return;e=i[0]<<24|i[1]<<16|i[2]<<8|i[3]}else if(this.need===C){if(r(2))return;e=i[0]<<8|i[1]}else if(this.need===F){if(r(1))return;e=i[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(i.subarray(0,t)),e=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(i.subarray(0,t)),e=this.need}return this.consumed+=t,this.g?this.demand(this.g.next(e).value,!0):this.resolve&&this.resolve(e),e}}write(e){if(e instanceof Uint8Array?this.malloc(e.length).set(e):"buffer"in e?this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):this.malloc(e.byteLength).set(new Uint8Array(e)),!this.g&&!this.resolve)return new Promise(e=>this.pull=e);this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){var t=this.buffer.length,r=t+e;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{const e=new Uint8Array(r);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,r)}return this.buffer=new Uint8Array(e),this.buffer}}Y.U32=k,Y.U16=C,Y.U8=F;class be{constructor(s){this.log=function(e){if(s._opt.debug&&s._opt.debugLevel==b){for(var t=s._opt.debugUuid?`[${s._opt.debugUuid}]`:"",r=arguments.length,i=new Array(1>>32-e,this._current_word<<=e,this._current_word_bits_left-=e,t;var t=this._current_word_bits_left?this._current_word:0,e=(t>>>=32-this._current_word_bits_left,e-this._current_word_bits_left),e=(this._fillCurrentWord(),Math.min(e,this._current_word_bits_left)),r=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){var e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}class D{static _ebsp2rbsp(e){let t=e,r=t.byteLength,i=new Uint8Array(r),n=0;for(let e=0;e=this.buflen)return this.iserro=!0,0;this.iserro=!1,r=8>8-this.bufoff-r&255>>8-r),this.bufoff+=r,e-=r,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return t}look(e){var t=this.bufpos,r=this.bufoff,e=this.read(e);return this.bufpos=t,this.bufoff=r,e}read_golomb(){let e;for(e=0;0===this.read(1)&&!this.iserro;e++);return(1<>>24&255,r>>>16&255,r>>>8&255,255&r]),e=new Uint8Array(r+4);e.set(i,0),e.set(n.sps,4),n.sps=e}if(n.pps){const r=n.pps.byteLength,i=new Uint8Array([r>>>24&255,r>>>16&255,r>>>8&255,255&r]),e=new Uint8Array(r+4);e.set(i,0),e.set(n.pps,4),n.pps=e}return n}function Ee(e,t){let r=[];r[0]=t?23:39,r[1]=1,r[2]=0,r[3]=0,r[4]=0;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}function Se(e){const t=e.byteLength,r=new Uint8Array(4),i=(r[0]=t>>>24&255,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,new Uint8Array(t+4));return i.set(r,0),i.set(e,4),i}function X(e){return 31&e[0]}function Ue(e){return e===E}function xe(e){return(t=e)!==H&&t!==V&&!Ue(e);var t}function Be(e){return e===w}const Ae=e=>{let t=e,r=t.byteLength,i=new Uint8Array(r),n=0;for(let e=0;e{switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}};function ke(e){return(126&e[0])>>1}function I(e){return parseInt(e)===e}function P(e){if(I(e.length)){for(var t=0;t>4]+Ce[15&i])}return t.join("")}}),Fe={16:10,24:12,32:14},Ie=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],u=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],d=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],De=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Pe=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Le=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],ze=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Re=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Me=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],Ne=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],Oe=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],Ge=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],He=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Ve=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],$e=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function je(e){for(var t=[],r=0;r>2][t%4]=s[t],this._Kd[e-r][t%4]=s[t];for(var a,o=0,l=n;l>16&255]<<24^u[a>>8&255]<<16^u[255&a]<<8^u[a>>24&255]^Ie[o]<<24,o+=1,8!=n)for(t=1;t>8&255]<<8^u[a>>16&255]<<16^u[a>>24&255]<<24,t=n/2+1;t>2][h=l%4]=s[t],this._Kd[e-d][h]=s[t++],l++}for(var d=1;d>24&255]^He[a>>16&255]^Ve[a>>8&255]^$e[255&a]},i.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],i=je(e),n=0;n<4;n++)i[n]^=this._Ke[0][n];for(var s=1;s>24&255]^Pe[i[(n+1)%4]>>16&255]^Le[i[(n+2)%4]>>8&255]^ze[255&i[(n+3)%4]]^this._Ke[s][n];i=r.slice()}for(var a,o=l(16),n=0;n<4;n++)a=this._Ke[t][n],o[4*n]=255&(u[i[n]>>24&255]^a>>24),o[4*n+1]=255&(u[i[(n+1)%4]>>16&255]^a>>16),o[4*n+2]=255&(u[i[(n+2)%4]>>8&255]^a>>8),o[4*n+3]=255&(u[255&i[(n+3)%4]]^a);return o},i.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],i=je(e),n=0;n<4;n++)i[n]^=this._Kd[0][n];for(var s=1;s>24&255]^Me[i[(n+3)%4]>>16&255]^Ne[i[(n+2)%4]>>8&255]^Oe[255&i[(n+1)%4]]^this._Kd[s][n];i=r.slice()}for(var a,o=l(16),n=0;n<4;n++)a=this._Kd[t][n],o[4*n]=255&(d[i[n]>>24&255]^a>>24),o[4*n+1]=255&(d[i[(n+3)%4]>>16&255]^a>>16),o[4*n+2]=255&(d[i[(n+2)%4]>>8&255]^a>>8),o[4*n+3]=255&(d[255&i[(n+1)%4]]^a);return o},o.prototype.encrypt=function(e){if((e=s(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=l(e.length),r=l(16),i=0;iNumber.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;0<=t;--t)this._counter[t]=e%256,e=parseInt(e/256)},c.prototype.setBytes=function(e){if(16!=(e=s(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},c.prototype.increment=function(){for(var e=15;0<=e;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};m.prototype.decrypt=m.prototype.encrypt=function(e){for(var t=s(e,!0),r=0;r>3)&&2<=t.data.length?32+((7&t.data[0])<<3)+((224&t.data[1])>>5):r:null},s.DecoderConfigDescriptor=function(e){s.Descriptor.call(this,4,e)},s.DecoderConfigDescriptor.prototype=new s.Descriptor,s.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readUint8(),this.streamType=e.readUint8(),this.bufferSize=e.readUint24(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32(),this.size-=13,this.parseRemainingDescriptors(e)},s.DecoderSpecificInfo=function(e){s.Descriptor.call(this,5,e)},s.DecoderSpecificInfo.prototype=new s.Descriptor,s.SLConfigDescriptor=function(e){s.Descriptor.call(this,6,e)},s.SLConfigDescriptor.prototype=new s.Descriptor,this}function n(){}function s(){}function B(e){this.stream=e||new r,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.onSidx=null,this.sidxSent=!1}a=new Date,o=4;var a,o,f={setLogLevel:function(e){o=e==this.debug?1:e==this.info?2:e==this.warn?3:(this.error,4)},debug:function(e,t){void 0===console.debug&&(console.debug=console.log),o<=1&&console.debug("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},log:function(e,t){this.debug(e.msg)},info:function(e,t){o<=2&&console.info("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},warn:function(e,t){o<=3&&console.warn("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},error:function(e,t){o<=4&&console.error("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)}},d=(f.getDurationString=function(e,t){var r;function i(e,t){for(var r=(""+e).split(".");r[0].length=this.getEndPosition()},u.prototype.readAnyInt=function(e,t){var r=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:r=t?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:r=t?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(t)throw"No method for reading signed 24 bits values";r=this.dataview.getUint8(this.position)<<16,r=(r|=this.dataview.getUint8(this.position+1)<<8)|this.dataview.getUint8(this.position+2);break;case 4:r=t?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(t)throw"No method for reading signed 64 bits values";r=this.dataview.getUint32(this.position)<<32,r|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+e}return this.position+=e,r}throw"Not enough bytes in buffer"},u.prototype.readUint8=function(){return this.readAnyInt(1,!1)},u.prototype.readUint16=function(){return this.readAnyInt(2,!1)},u.prototype.readUint24=function(){return this.readAnyInt(3,!1)},u.prototype.readUint32=function(){return this.readAnyInt(4,!1)},u.prototype.readUint64=function(){return this.readAnyInt(8,!1)},u.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t="",r=0;rthis._byteLength&&(this._byteLength=t);else{for(r<1&&(r=1);r=this._byteLength},l.prototype.mapUint8Array=function(e){this._realloc(+e);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},l.prototype.readInt32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Int32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var r=new Int16Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Int8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readUint32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Uint32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readUint16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var r=new Uint16Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readUint8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Uint8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readFloat64Array=function(e,t){e=null==e?this.byteLength-this.position/8:e;var r=new Float64Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readFloat32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Float32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt32=function(e){e=this._dataView.getInt32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readInt16=function(e){e=this._dataView.getInt16(this.position,null==e?this.endianness:e);return this.position+=2,e},l.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},l.prototype.readUint32=function(e){e=this._dataView.getUint32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readUint16=function(e){e=this._dataView.getUint16(this.position,null==e?this.endianness:e);return this.position+=2,e},l.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},l.prototype.readFloat32=function(e){e=this._dataView.getFloat32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readFloat64=function(e){e=this._dataView.getFloat64(this.position,null==e?this.endianness:e);return this.position+=8,e},l.endianness=0>16),this.writeUint8((65280&e)>>8),this.writeUint8(255&e)},l.prototype.adjustUint32=function(e,t){var r=this.position;this.seek(e),this.writeUint32(t),this.seek(r)},l.prototype.mapInt32Array=function(e,t){this._realloc(4*e);var r=new Int32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},l.prototype.mapInt16Array=function(e,t){this._realloc(2*e);var r=new Int16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=2*e,r},l.prototype.mapInt8Array=function(e){this._realloc(+e);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},l.prototype.mapUint32Array=function(e,t){this._realloc(4*e);var r=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},l.prototype.mapUint16Array=function(e,t){this._realloc(2*e);var r=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=2*e,r},l.prototype.mapFloat64Array=function(e,t){this._realloc(8*e);var r=new Float64Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=8*e,r},l.prototype.mapFloat32Array=function(e,t){this._realloc(4*e);var r=new Float32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},(r.prototype=new l(new ArrayBuffer,0,l.BIG_ENDIAN)).initialized=function(){var e;return-1i.byteLength){this.buffers.splice(r,1),r--;continue}f.warn("MultiBufferStream","Buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+") already appended, ignoring")}else e.fileStart+e.byteLength<=i.fileStart||(e=this.reduceBuffer(e,0,i.fileStart-e.fileStart)),f.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.splice(r,0,e),0===r&&(this.buffer=e);t=!1;break}if(e.fileStart"+this.buffer.byteLength+")"),!0))},r.prototype.findPosition=function(e,t,r){for(var i=null,n=-1,s=!0===e?0:this.bufferIndex;s=t?(f.debug("MultiBufferStream","Found position in existing buffer #"+n),n):-1},r.prototype.findEndContiguousBuf=function(e){var t,r,e=void 0!==e?e:this.bufferIndex,i=this.buffers[e];if(this.buffers.length>e+1)for(t=e+1;te.getEndPosition()?(e.seek(s),f.info("BoxParser","Not enough data in stream to parse the entire '"+l+"' box"),{code:b.ERR_NOT_ENOUGH_DATA,type:l,size:o,hdr_size:a,start:s}):t?{code:b.OK,type:l,size:o,hdr_size:a,start:s}:(b[l+"Box"]?i=new b[l+"Box"](o):"uuid"!==l?(f.warn("BoxParser","Unknown box type: '"+l+"'"),(i=new b.Box(l,o)).has_unparsed_data=!0):b.UUIDBoxes[n]?i=new b.UUIDBoxes[n](o):(f.warn("BoxParser","Unknown uuid type: '"+n+"'"),(i=new b.Box(l,o)).uuid=n,i.has_unparsed_data=!0),i.hdr_size=a,i.start=s,i.write===b.Box.prototype.write&&"mdat"!==i.type&&(f.info("BoxParser","'"+d+"' box writing not yet implemented, keeping unparsed data in memory for later write"),i.parseDataAndRewind(e)),i.parse(e),(r=e.getPosition()-(i.start+i.size))<0?(f.warn("BoxParser","Parsing of box '"+d+"' did not read the entire indicated box data size (missing "+-r+" bytes), seeking forward"),e.seek(i.start+i.size)):0>10&31,e[1]=this.language>>5&31,e[2]=31&this.language,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)},b.SAMPLE_ENTRY_TYPE_VISUAL="Visual",b.SAMPLE_ENTRY_TYPE_AUDIO="Audio",b.SAMPLE_ENTRY_TYPE_HINT="Hint",b.SAMPLE_ENTRY_TYPE_METADATA="Metadata",b.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",b.SAMPLE_ENTRY_TYPE_SYSTEM="System",b.SAMPLE_ENTRY_TYPE_TEXT="Text",b.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},b.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},b.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},b.SampleEntry.prototype.parseFooter=function(e){b.ContainerBox.prototype.parse.call(this,e)},b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_HINT),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_METADATA),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SUBTITLE),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SYSTEM),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_TEXT),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)}),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)}),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_TEXT,"enct"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_METADATA,"encm"),b.createBoxCtor("a1lx",function(e){var t=16*(1+(1&e.readUint8()));this.layer_size=[];for(var r=0;r<3;r++)this.layer_size[r]=16==t?e.readUint16():e.readUint32()}),b.createBoxCtor("a1op",function(e){this.op_index=e.readUint8()}),b.createFullBoxCtor("auxC",function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)}),b.createBoxCtor("av1C",function(e){var t=e.readUint8();if(t>>7&!1)f.error("av1C marker problem");else if(this.version=127&t,1===this.version)if(t=e.readUint8(),this.seq_profile=t>>5&7,this.seq_level_idx_0=31&t,t=e.readUint8(),this.seq_tier_0=t>>7&1,this.high_bitdepth=t>>6&1,this.twelve_bit=t>>5&1,this.monochrome=t>>4&1,this.chroma_subsampling_x=t>>3&1,this.chroma_subsampling_y=t>>2&1,this.chroma_sample_position=3&t,t=e.readUint8(),this.reserved_1=t>>5&7,0===this.reserved_1){if(this.initial_presentation_delay_present=t>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&t;else if(this.reserved_2=15&t,0!==this.reserved_2)return void f.error("av1C reserved_2 parsing problem");t=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(t)}else f.error("av1C reserved_1 parsing problem");else f.error("av1C version "+this.version+" not supported")}),b.createBoxCtor("avcC",function(e){var t,r;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=3&e.readUint8(),this.nb_SPS_nalus=31&e.readUint8(),r=this.size-this.hdr_size-6,this.SPS=[],t=0;t>7):"rICC"!==this.colour_type&&"prof"!==this.colour_type||(this.ICC_profile=e.readUint8Array(this.size-4))}),b.createFullBoxCtor("cprt",function(e){this.parseLanguage(e),this.notice=e.readCString()}),b.createFullBoxCtor("cslg",function(e){0===this.version&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())}),b.createFullBoxCtor("ctts",function(e){var t,r=e.readUint32();if(this.sample_counts=[],this.sample_offsets=[],0===this.version)for(t=0;t>6,this.bsid=t>>1&31,this.bsmod=(1&t)<<2|r>>6&3,this.acmod=r>>3&7,this.lfeon=r>>2&1,this.bit_rate_code=3&r|e>>5&7}),b.createBoxCtor("dec3",function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=7&t,this.ind_subs=[];for(var r=0;r>6,i.bsid=n>>1&31,i.bsmod=(1&n)<<4|s>>4&15,i.acmod=s>>1&7,i.lfeon=1&s,i.num_dep_sub=a>>1&15,0>12,e.readUint8Array(20)),t.push(r[n]),128&i)break}this.numMetadataBlocks=t.length+" ("+t.join(", ")+")"}),b.createBoxCtor("dimm",function(e){this.bytessent=e.readUint64()}),b.createBoxCtor("dmax",function(e){this.time=e.readUint32()}),b.createBoxCtor("dmed",function(e){this.bytessent=e.readUint64()}),b.createBoxCtor("dOps",function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t>6,this.general_tier_flag=(32&r)>>5,this.general_profile_idc=31&r,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=4095&e.readUint16(),this.parallelismType=3&e.readUint8(),this.chroma_format_idc=3&e.readUint8(),this.bit_depth_luma_minus8=7&e.readUint8(),this.bit_depth_chroma_minus8=7&e.readUint8(),this.avgFrameRate=e.readUint16(),r=e.readUint8(),this.constantFrameRate=r>>6,this.numTemporalLayers=(13&r)>>3,this.temporalIdNested=(4&r)>>2,this.lengthSizeMinusOne=3&r,this.nalu_arrays=[];for(var t,r,i=e.readUint8(),n=0;n>7,s.nalu_type=63&r,e.readUint16()),o=0;o>4&15,this.length_size=15&t,t=e.readUint8(),this.base_offset_size=t>>4&15,1===this.version||2===this.version?this.index_size=15&t:this.index_size=0,this.items=[],0);if(this.version<2)r=e.readUint16();else{if(2!==this.version)throw"version of iloc box not supported";r=e.readUint32()}for(var i=0;i>7,this.axis=1&e}),b.createFullBoxCtor("infe",function(e){if(0!==this.version&&1!==this.version||(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),1===this.version)return this.extension_type=e.readString(4),f.warn("BoxParser","Cannot parse extension type"),void e.seek(this.start+this.size);2<=this.version&&(2===this.version?this.item_ID=e.readUint16():3===this.version&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),"mime"===this.item_type?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):"uri "===this.item_type&&(this.item_uri_type=e.readCString()))}),b.createFullBoxCtor("ipma",function(e){var t,r;for(entry_count=e.readUint32(),this.associations=[],t=0;t>7==1,1&this.flags?a.property_index=(127&s)<<8|e.readUint8():a.property_index=127&s}}}),b.createFullBoxCtor("iref",function(e){var t;for(this.references=[];e.getPosition()>7,i.assignment_type=127&n,i.assignment_type){case 0:i.grouping_type=e.readString(4);break;case 1:i.grouping_type=e.readString(4),i.grouping_type_parameter=e.readUint32();break;case 2:case 3:break;case 4:i.sub_track_id=e.readUint32();break;default:f.warn("BoxParser","Unknown leva assignement type")}}}),b.createBoxCtor("lsel",function(e){this.layer_id=e.readUint16()}),b.createBoxCtor("maxr",function(e){this.period=e.readUint32(),this.bytes=e.readUint32()}),b.createBoxCtor("mdcv",function(e){this.display_primaries=[],this.display_primaries[0]={},this.display_primaries[0].x=e.readUint16(),this.display_primaries[0].y=e.readUint16(),this.display_primaries[1]={},this.display_primaries[1].x=e.readUint16(),this.display_primaries[1].y=e.readUint16(),this.display_primaries[2]={},this.display_primaries[2].x=e.readUint16(),this.display_primaries[2].y=e.readUint16(),this.white_point={},this.white_point.x=e.readUint16(),this.white_point.y=e.readUint16(),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()}),b.createFullBoxCtor("mdhd",function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()}),b.createFullBoxCtor("mehd",function(e){1&this.flags&&(f.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1==this.version?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()}),b.createFullBoxCtor("meta",function(e){this.boxes=[],b.ContainerBox.prototype.parse.call(this,e)}),b.createFullBoxCtor("mfhd",function(e){this.sequence_number=e.readUint32()}),b.createFullBoxCtor("mfro",function(e){this._size=e.readUint32()}),b.createFullBoxCtor("mvhd",function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()}),b.createBoxCtor("npck",function(e){this.packetssent=e.readUint32()}),b.createBoxCtor("nump",function(e){this.packetssent=e.readUint64()}),b.createFullBoxCtor("padb",function(e){var t=e.readUint32();this.padbits=[];for(var r=0;r>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var r=e.readUint8(),i=0;i>7,this.num_leading_samples=127&e}),b.createSampleGroupCtor("rash",function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)f.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=e.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var t=0;t>4,this.skip_byte_block=15&t,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=b.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))}),b.createSampleGroupCtor("stsa",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("sync",function(e){e=e.readUint8();this.NAL_unit_type=63&e}),b.createSampleGroupCtor("tele",function(e){e=e.readUint8();this.level_independently_decodable=e>>7}),b.createSampleGroupCtor("tsas",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("tscl",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("vipr",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createFullBoxCtor("sbgp",function(e){this.grouping_type=e.readString(4),1===this.version?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),r=0;r>6,this.sample_depends_on[i]=t>>4&3,this.sample_is_depended_on[i]=t>>2&3,this.sample_has_redundancy[i]=3&t}),b.createFullBoxCtor("senc"),b.createFullBoxCtor("sgpd",function(e){this.grouping_type=e.readString(4),f.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=e.readUint32():this.default_length=0,2<=this.version&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var t=e.readUint32(),r=0;r>31&1,i.referenced_size=2147483647&n,i.subsegment_duration=e.readUint32(),n=e.readUint32(),i.starts_with_SAP=n>>31&1,i.SAP_type=n>>28&7,i.SAP_delta_time=268435455&n}}),b.SingleItemTypeReferenceBox=function(e,t,r,i){b.Box.call(this,e,t),this.hdr_size=r,this.start=i},b.SingleItemTypeReferenceBox.prototype=new b.Box,b.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var r=0;r>4&15,this.sample_sizes[t+1]=15&i}else if(8===this.field_size)for(t=0;t>4&15,this.default_skip_byte_block=15&t),this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=b.parseHex16(e),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))}),b.createFullBoxCtor("tfdt",function(e){1==this.version?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()}),b.createFullBoxCtor("tfhd",function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_FLAGS?this.default_sample_flags=e.readUint32():this.default_sample_flags=0}),b.createFullBoxCtor("tfra",function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=3&t,this.entries=[];for(var r=e.readUint32(),i=0;i>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()}),b.createBoxCtor("tmax",function(e){this.time=e.readUint32()}),b.createBoxCtor("tmin",function(e){this.time=e.readUint32()}),b.createBoxCtor("totl",function(e){this.bytessent=e.readUint32()}),b.createBoxCtor("tpay",function(e){this.bytessent=e.readUint32()}),b.createBoxCtor("tpyl",function(e){this.bytessent=e.readUint64()}),b.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},b.createTrackGroupCtor("msrc"),b.TrackReferenceTypeBox=function(e,t,r,i){b.Box.call(this,e,t),this.hdr_size=r,this.start=i},b.TrackReferenceTypeBox.prototype=new b.Box,b.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},b.trefBox.prototype.parse=function(e){for(var t;e.getPosition()(t+=4)&&this.flags&b.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&b.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var r=0;r/g,">").replace(/"/g,""").replace(/'/g,"'")}),b.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(e){this.system_id=b.parseHex16(e);var t=e.readUint32();0>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=1&t,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8()):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=15&t,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=1&t),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)}),b.createBoxCtor("vttC",function(e){this.text=e.readString(this.size-this.hdr_size)}),b.createFullBoxCtor("vvcC",function(e){var t,r={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(e){this.held_bits=e.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(e){this.held_bits=e.readUint16(),this.num_held_bits=16},extract_bits:function(e){var t=this.held_bits>>this.num_held_bits-e&(1<>=1;e=e+b.decimalToHex(r,0)+".",0===this.hvcC.general_tier_flag?e+="L":e+="H",e+=this.hvcC.general_level_idc;var n=!1,s="";for(i=5;0<=i;i--)(this.hvcC.general_constraint_indicator[i]||n)&&(s="."+b.decimalToHex(this.hvcC.general_constraint_indicator[i],0)+s,n=!0);e+=s}return e},b.vvc1SampleEntry.prototype.getCodec=b.vvi1SampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){e+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?e+=".H":e+=".L",e+=this.vvcC.general_level_idc;var t="";if(this.vvcC.general_constraint_info){var r,i=[],n=0,n=(n|=this.vvcC.ptl_frame_only_constraint<<7)|this.vvcC.ptl_multilayer_enabled<<6;for(l=0;l>2&63,i.push(n),n&&(r=l),n=this.vvcC.general_constraint_info[l]>>2&3;if(void 0===r)t=".CA";else{for(var t=".C",s="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",a=0,o=0,l=0;l<=r;++l)for(a=a<<8|i[l],o+=8;5<=o;)t+=s[a>>o-5&31],a&=(1<<(o-=5))-1;o&&(t+=s[31&(a<<=5-o)])}}e+=t}return e},b.mp4aSampleEntry.prototype.getCodec=function(){var e,t,r=b.SampleEntry.prototype.getCodec.call(this);return this.esds&&this.esds.esd?(e=this.esds.esd.getOTI(),t=this.esds.esd.getAudioConfig(),r+"."+b.decimalToHex(e)+(t?"."+t:"")):r},b.stxtSampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+"."+this.mime_format:e},b.vp08SampleEntry.prototype.getCodec=b.vp09SampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level,r=this.vpcC.bitDepth;return e+".0"+this.vpcC.profile+"."+(t=0==t?"00":t)+"."+(r=8==r?"08":r)},b.av01SampleEntry.prototype.getCodec=function(){var e,t=b.SampleEntry.prototype.getCodec.call(this),r=this.av1C.seq_level_idx_0;return 2===this.av1C.seq_profile&&1===this.av1C.high_bitdepth?e=1===this.av1C.twelve_bit?"12":"10":this.av1C.seq_profile<=2&&(e=1===this.av1C.high_bitdepth?"10":"08"),t+"."+this.av1C.seq_profile+"."+(r=r<10?"0"+r:r)+(this.av1C.seq_tier_0?"H":"M")+"."+e},b.Box.prototype.writeHeader=function(e,t){this.size+=8,this.size>d&&(this.size+=8),"uuid"===this.type&&(this.size+=16),f.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+e.getPosition()+(t||"")),this.size>d?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),"uuid"===this.type&&e.writeUint8Array(this.uuid),this.size>d&&e.writeUint64(this.size)},b.FullBox.prototype.writeHeader=function(e){this.size+=4,b.Box.prototype.writeHeader.call(this,e," v="+this.version+" f="+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},b.Box.prototype.write=function(e){"mdat"===this.type?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},b.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var t=0;tt?1:0,this.flags=0,this.size=4,1===this.version&&(this.size+=4),this.writeHeader(e),1===this.version?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},b.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&b.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&b.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&b.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&b.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&b.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},b.tkhdBox.prototype.write=function(e){this.version=0,this.size=80,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},b.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},b.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&b.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&b.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&b.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&b.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&b.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&b.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&b.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&b.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t=i.samples.length)&&(f.info("ISOFile","Sending fragmented data on track #"+r.id+" for samples ["+Math.max(0,i.nextSample-r.nb_samples)+","+(i.nextSample-1)+"]"),f.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(r.id,r.user,r.segmentStream.buffer,i.nextSample,e||i.nextSample>=i.samples.length),r.segmentStream=null,r!==this.fragmentedTracks[t]))break}if(null!==this.onSamples)for(t=0;t=i.samples.length)&&(f.debug("ISOFile","Sending samples on track #"+s.id+" for sample "+i.nextSample),this.onSamples&&this.onSamples(s.id,s.user,s.samples),s.samples=[],s!==this.extractedTracks[t]))break}}}},B.prototype.getBox=function(e){e=this.getBoxes(e,!0);return e.length?e[0]:null},B.prototype.getBoxes=function(e,t){var r=[];return B._sweep.call(this,e,r,t),r},B._sweep=function(e,t,r){for(var i in this.type&&this.type==e&&t.push(this),this.boxes){if(t.length&&r)return;B._sweep.call(this.boxes[i],e,t,r)}},B.prototype.getTrackSamplesInfo=function(e){e=this.getTrackById(e);return e?e.samples:void 0},B.prototype.getTrackSample=function(e,t){e=this.getTrackById(e);return this.getSample(e,t)},B.prototype.releaseUsedSamples=function(e,t){var r=0,i=this.getTrackById(e);i.lastValidSample||(i.lastValidSample=0);for(var n=i.lastValidSample;ne*n.timescale){l=i-1;break}t&&n.is_sync&&(o=i)}for(t&&(l=o),e=r.samples[l].cts,r.nextSample=l;r.samples[l].alreadyRead===r.samples[l].size&&r.samples[l+1];)l++;return s=r.samples[l].offset+r.samples[l].alreadyRead,f.info("ISOFile","Seeking to "+(t?"RAP":"")+" sample #"+r.nextSample+" on track "+r.tkhd.track_id+", time "+f.getDurationString(e,a)+" and offset: "+s),{offset:s,time:e/a}},B.prototype.seek=function(e,t){var r,i,n=this.moov,s={offset:1/0,time:1/0};if(this.moov){for(i=0;i=i[n].last_sample_in_run&&(i[n].last_sample_in_run<0&&(i[n].last_sample_in_run=0),i[n].entry_index++,i[n].entry_index<=i[n].sbgp.entries.length-1&&(i[n].last_sample_in_run+=i[n].sbgp.entries[i[n].entry_index].sample_count)),i[n].entry_index<=i[n].sbgp.entries.length-1?t.sample_groups[n].group_description_index=i[n].sbgp.entries[i[n].entry_index].group_description_index:t.sample_groups[n].group_description_index=-1,0!==t.sample_groups[n].group_description_index&&(a=i[n].fragment_description||i[n].description,0>16)-1:t.sample_groups[n].group_description_index-1,a&&0<=s&&(t.sample_groups[n].description=a.entries[s])):a&&2<=a.version&&0>16&1),u.is_leading=c>>26&3,u.depends_on=c>>24&3,u.is_depended_on=c>>22&3,u.has_redundancy=c>>20&3,u.degradation_priority=65535&c;var c=!!(l.tfhd.flags&b.TFHD_FLAG_BASE_DATA_OFFSET),m=!!(l.tfhd.flags&b.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),_=!!(f.flags&b.TRUN_FLAGS_DATA_OFFSET),c=c?l.tfhd.base_data_offset:m||0===y?o.start:s;u.offset=0===y&&0===p?_?c+f.data_offset:c:s,s=u.offset+u.size,(0d&&(this.size+=8),"uuid"===this.type&&(this.size+=16),e.log(e.indent+"size:"+this.size),e.log(e.indent+"type:"+this.type)},b.FullBox.prototype.printHeader=function(e){this.size+=4,b.Box.prototype.printHeader.call(this,e),e.log(e.indent+"version:"+this.version),e.log(e.indent+"flags:"+this.flags)},b.Box.prototype.print=function(e){this.printHeader(e)},b.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t,r=0;r>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"next_track_id: "+this.next_track_id)},b.tkhdBox.prototype.print=function(e){b.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"track_id: "+this.track_id),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"layer: "+this.layer),e.log(e.indent+"alternate_group: "+this.alternate_group),e.log(e.indent+"width: "+this.width),e.log(e.indent+"height: "+this.height)};var h=function(e,t){e=void 0===e||e,t=new B(t);return t.discardMdatData=!e,t};t.createFile=h});function Ye(e){return e.reduce((e,t)=>256*e+t)}function qe(e){const t=[101,103,119,99],r=e.length-28,i=e.slice(r,r+t.length);return t.every((e,t)=>e===i[t])}K.Log,K.MP4BoxStream,K.DataStream,K.MultiBufferStream,K.MPEG4DescriptorParser,K.BoxParser,K.XMLSubtitlein4Parser,K.Textin4Parser,K.ISOFile,K.createFile;class Xe{constructor(){this.s=null,this.a=null,this.l=0,this.c=0,this.u=1/0,this.A=!1,this.d=!1,this.r=4194304,this.n=new Uint8Array([30,158,90,33,244,57,83,165,2,70,35,87,215,231,226,108]),this.t=this.n.slice().reverse()}destroy(){this.s=null,this.a=null,this.l=0,this.c=0,this.u=1/0,this.A=!1,this.d=!1,this.r=4194304,this.n=null,this.t=null}transport(e){if(!this.s&&50~e)]}return null}(t,this.t);if(!r)return e;var i=function(e){try{if("object"!=typeof WebAssembly||"function"!=typeof WebAssembly.instantiate)throw null;{const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(!(e instanceof WebAssembly.Module&&new WebAssembly.Instance(e)instanceof WebAssembly.Instance))throw null}}catch(e){return new Error("video_error_4")}let t;try{t={env:{__handle_stack_overflow:()=>e(new Error("video_error_1")),memory:new WebAssembly.Memory({initial:256,maximum:256})}}}catch(e){return new Error("video_error_5")}return t}(e);if(i instanceof Error)return console.error(i.message),this.d=!0,e;this.A=!0,this.u=r[1],qe(t)&&this.c++,WebAssembly.instantiate(r[2],i).then(e=>{if("function"!=typeof(t=e.instance.exports).parse||"object"!=typeof t.memory)return this.d=!0,void console.error("video_error_3");var t;this.s=e.instance.exports,this.a=new Uint8Array(this.s.memory.buffer)}).catch(e=>{this.d=!0,console.error("video_error_6")})}return e}}function Ke(l){function n(){t&&(t.abort(),t=null)}let s=[],d=[],a={},t=new AbortController,r=null,o=null,e=null,h=null,u=null,f=null,p=!1,i=!1,c=!1,m=!1,_=null,g=null,y=null,b=[],v=0,w=0,E=null,S=null,U=0,x=0,B=!1,A=!1,T=()=>{var e=function(){{var r=Q;let t="";if("object"==typeof r)try{t=JSON.stringify(r),t=JSON.parse(t)}catch(e){t=r}else t=r;return t}}();return{debug:e.debug,debugLevel:e.debugLevel,debugUuid:e.debugUuid,useOffscreen:e.useOffscreen,useWCS:e.useWCS,videoBuffer:e.videoBuffer,videoBufferDelay:e.videoBufferDelay,openWebglAlignment:e.openWebglAlignment,playType:e.playType,hasAudio:e.hasAudio,hasVideo:e.hasVideo,playbackRate:1,playbackForwardMaxRateDecodeIFrame:e.playbackForwardMaxRateDecodeIFrame,playbackIsCacheBeforeDecodeForFpsRender:e.playbackConfig.isCacheBeforeDecodeForFpsRender,sampleRate:0,networkDelay:e.networkDelay,visibility:!0,useSIMD:e.useSIMD,isRecording:!1,recordType:e.recordType,isNakedFlow:e.isNakedFlow,checkFirstIFrame:e.checkFirstIFrame,audioBufferSize:1024,isCrypto:e.isCrypto,cryptoKey:e.cryptoKey,cryptoIV:e.cryptoIV,isHls265:!1,isFlv:e.isFlv,isFmp4:e.isFmp4,isMpeg4:e.isMpeg4,isFmp4Private:e.isFmp4Private}},k=("VideoEncoder"in self&&(a={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(t){var e;a.isEmitInfo||(I.debug.log("worker","Webcodecs Video Decoder initSize"),postMessage({cmd:ee,w:t.codedWidth,h:t.codedHeight}),a.isEmitInfo=!0,a.offscreenCanvas=new OffscreenCanvas(t.codedWidth,t.codedHeight),a.offscreenCanvasCtx=a.offscreenCanvas.getContext("2d")),"function"==typeof t.createImageBitmap?t.createImageBitmap().then(e=>{a.offscreenCanvasCtx.drawImage(e,0,0,t.codedWidth,t.codedHeight);e=a.offscreenCanvas.transferToImageBitmap();postMessage({cmd:R,buffer:e,delay:I.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100)}):(a.offscreenCanvasCtx.drawImage(t,0,0,t.codedWidth,t.codedHeight),e=a.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:R,buffer:e,delay:I.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100))},error:function(e){I.debug.error("worker","VideoDecoder error",e)}}),decode:function(e,t,r){var i=e[0]>>4==1;if(a.hasInit){const r=new EncodedVideoChunk({data:e.slice(5),timestamp:t,type:i?"key":"delta"});a.decoder.decode(r)}else if(i&&0===e[1]){const t=15&e[0],r=(postMessage({cmd:re,code:t}),function(e){let r=e.subarray(1,4),i="avc1.";for(let t=0;t<3;t++){let e=r[t].toString(16);e.length<2&&(e="0"+e),i+=e}return{codec:i,description:e}}(e.slice(5)));postMessage({cmd:ie,buffer:e,codecId:t},[e.buffer]),a.decoder.configure(r),a.hasInit=!0}},reset(){a.hasInit=!1,a.isEmitInfo=!1,a.offscreenCanvas=null,a.offscreenCanvasCtx=null}}),{init(){k.lastBuf=null,k.vps=null,k.sps=null,k.pps=null,k.streamType=null,k.localDts=0,k.isSendSeqHeader=!1},destroy(){k.lastBuf=null,k.vps=null,k.sps=null,k.pps=null,k.streamType=null,k.localDts=0,k.isSendSeqHeader=!1},dispatch(e){e=new Uint8Array(e);k.extractNALu$2(e)},getNaluDts(){var e=k.localDts;return k.localDts=k.localDts+40,e},getNaluAudioDts(){var e=I._opt.sampleRate,t=I._opt.audioBufferSize;return k.localDts+parseInt(t/e*1e3)},extractNALu(e){let t,r,i=0,n=e.byteLength,s=0,a=[];for(;i>1)!==$&&r!==he&&r!==j||(t=de)),t}(e)),k.streamType===le){const t=k.handleAddNaluStartCode(e),r=k.extractNALu(t);if(0===r.length)I.debug.warn("worker","handleVideoNalu","naluList.length === 0");else{const i=[];if(r.forEach(e=>{var t=X(e);t===V||t===H?k.handleVideoH264Nalu(e):xe(t)&&i.push(e)}),1===i.length)k.handleVideoH264Nalu(i[0]);else{const e=function(t){if(0===t.length)return!1;var r=X(t[0]);for(let e=1;e{k.handleVideoH264Nalu(e)})}}}else k.streamType===de&&(ke(e)===j?k.extractH265PPS(e):k.handleVideoH265Nalu(e))},extractH264PPS(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{Ue(X(e))?k.extractH264SEI(e):k.handleVideoH264Nalu(e)})},extractH265PPS(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{39===ke(e)?k.extractH265SEI(e):k.handleVideoH265Nalu(e)})},extractH264SEI(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{k.handleVideoH264Nalu(e)})},extractH265SEI(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{k.handleVideoH265Nalu(e)})},handleAddNaluStartCode(e){const t=[0,0,0,1],r=new Uint8Array(e.length+t.length);return r.set(t),r.set(e,t.length),r},handleVideoH264Nalu(e){var i,t,r,n=X(e);switch(n){case H:k.sps=e;break;case V:k.pps=e}if(k.isSendSeqHeader)xe(n)?(i=Be(n),t=k.getNaluDts(),i&&I.calcIframeIntervalTimestamp(t),I.calcNetworkDelay(t),r=function(e){let t=[];t[0]=i?23:39,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const r=new Uint8Array(t.length+e.byteLength);return r.set(t,0),r.set(e,t.length),r}(e),I.decode(r,{type:2,ts:t,isIFrame:i,cts:0})):I.debug.warn("work","handleVideoH264Nalu Avc Seq Head is "+n);else if(k.sps&&k.pps){k.isSendSeqHeader=!0;const e=function(){var{sps:e,pps:t}={sps:k.sps,pps:k.pps};const r=[23,0,0,0,0,1,66,0,30,255];return r[0]=23,r[6]=e[1],r[7]=e[2],r[8]=e[3],r[10]=225,r[11]=e.byteLength>>8&255,r[12]=255&e.byteLength,r.push(...e,1,t.byteLength>>8&255,255&t.byteLength,...t),new Uint8Array(r)}();I.decode(e,{type:2,ts:0,isIFrame:!0,cts:0})}},handleVideoH264NaluList(e,t,r){var i,n;k.isSendSeqHeader?(i=k.getNaluDts(),I.calcNetworkDelay(i),n=Ee(e.reduce((e,t)=>{const r=Se(e),i=Se(t),n=new Uint8Array(r.byteLength+i.byteLength);return n.set(r,0),n.set(i,r.byteLength),n}),t),I.decode(n,{type:2,ts:i,isIFrame:t,cts:0}),I.debug.log("worker",`handleVideoH264NaluList list size is ${e.length} package length is ${n.byteLength} isIFrame is ${t},nalu type is ${r}, dts is `+i)):I.debug.warn("worker","handleVideoH264NaluList isSendSeqHeader is false")},handleVideoH265Nalu(e){var i,t,r=ke(e);switch(r){case $:k.vps=e;break;case he:k.sps=e;break;case j:k.pps=e}if(k.isSendSeqHeader)32<=r&&r<=40?I.debug.warn("work","handleVideoH265Nalu HevcSeqHead is "+r):(i=16<=r&&r<=21,r=k.getNaluDts(),I.calcNetworkDelay(r),t=function(e){let t=[];t[0]=i?28:44,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const r=new Uint8Array(t.length+e.byteLength);return r.set(t,0),r.set(e,t.length),r}(e),i&&I.calcIframeIntervalTimestamp(r),I.decode(t,{type:2,ts:r,isIFrame:i,cts:0}));else if(k.vps&&k.sps&&k.pps){k.isSendSeqHeader=!0;const e=function(e){var{vps:e,pps:t,sps:r}=e,i={configurationVersion:1},n=(e=>{let t=Ae(e),r=new q(t);return r.readByte(),r.readByte(),r.readBits(4),r.readBits(2),r.readBits(6),{num_temporal_layers:r.readBits(3)+1,temporal_id_nested:r.readBool()}})(e),s=(e=>{let t=Ae(e),s=new q(t),r=(s.readByte(),s.readByte(),0),i=0,n=0,a=0;s.readBits(4);var o=s.readBits(3);s.readBool();let l=s.readBits(2),d=s.readBool(),h=s.readBits(5),u=s.readByte(),f=s.readByte(),p=s.readByte(),c=s.readByte(),m=s.readByte(),_=s.readByte(),g=s.readByte(),z=s.readByte(),R=s.readByte(),M=s.readByte(),y=s.readByte(),b=[],N=[];for(let e=0;e{let t=Ae(e),r=new q(t),i=(r.readByte(),r.readByte(),r.readUEG(),r.readUEG(),r.readBool(),r.readBool(),r.readBits(3),r.readBool(),r.readBool(),r.readUEG(),r.readUEG(),r.readSEG(),r.readBool(),r.readBool(),r.readBool()&&r.readUEG(),r.readSEG(),r.readSEG(),r.readBool(),r.readBool(),r.readBool(),r.readBool(),r.readBool()),n=r.readBool(),s=1;return n&&i?s=0:n?s=3:i&&(s=2),{parallelismType:s}})(t),i=Object.assign(i,n,s,a);let o=23+(5+e.byteLength)+(5+r.byteLength)+(5+t.byteLength),l=new Uint8Array(o);l[0]=1,l[1]=(3&i.general_profile_space)<<6|(i.general_tier_flag?1:0)<<5|31&i.general_profile_idc,l[2]=i.general_profile_compatibility_flags_1||0,l[3]=i.general_profile_compatibility_flags_2||0,l[4]=i.general_profile_compatibility_flags_3||0,l[5]=i.general_profile_compatibility_flags_4||0,l[6]=i.general_constraint_indicator_flags_1||0,l[7]=i.general_constraint_indicator_flags_2||0,l[8]=i.general_constraint_indicator_flags_3||0,l[9]=i.general_constraint_indicator_flags_4||0,l[10]=i.general_constraint_indicator_flags_5||0,l[11]=i.general_constraint_indicator_flags_6||0,l[12]=60,l[13]=240|(3840&i.min_spatial_segmentation_idc)>>8,l[14]=255&i.min_spatial_segmentation_idc,l[15]=252|3&i.parallelismType,l[16]=252|3&i.chroma_format_idc,l[17]=248|7&i.bit_depth_luma_minus8,l[18]=248|7&i.bit_depth_chroma_minus8,l[19]=0,l[20]=0,l[21]=(3&i.constant_frame_rate)<<6|(7&i.num_temporal_layers)<<3|(i.temporal_id_nested?1:0)<<2|3,l[22]=3,l[23]=128|$,l[24]=0,l[25]=1,l[26]=(65280&e.byteLength)>>8,l[27]=(255&e.byteLength)>>0,l.set(e,28),l[23+(5+e.byteLength)+0]=128|he,l[23+(5+e.byteLength)+1]=0,l[23+(5+e.byteLength)+2]=1,l[23+(5+e.byteLength)+3]=(65280&r.byteLength)>>8,l[23+(5+e.byteLength)+4]=(255&r.byteLength)>>0,l.set(r,23+(5+e.byteLength)+5),l[23+(5+e.byteLength+5+r.byteLength)+0]=128|j,l[23+(5+e.byteLength+5+r.byteLength)+1]=0,l[23+(5+e.byteLength+5+r.byteLength)+2]=1,l[23+(5+e.byteLength+5+r.byteLength)+3]=(65280&t.byteLength)>>8,l[23+(5+e.byteLength+5+r.byteLength)+4]=(255&t.byteLength)>>0,l.set(t,23+(5+e.byteLength+5+r.byteLength)+5);const d=[28,0,0,0,0],h=new Uint8Array(d.length+l.byteLength);return h.set(d,0),h.set(l,d.length),h}({vps:k.vps,sps:k.sps,pps:k.pps});I.decode(e,{type:2,ts:0,isIFrame:!0,cts:0})}}}),C={LOG_NAME:"worker fmp4Demuxer",mp4Box:K.createFile(),offset:0,videoTrackId:null,audioTrackId:null,isHevc:!1,listenMp4Box(){C.mp4Box.onReady=C.onReady,C.mp4Box.onError=C.onError,C.mp4Box.onSamples=C.onSamples},initTransportDescarmber(){C.transportDescarmber=new Xe},_getSeqHeader(t){const r=C.mp4Box.getTrackById(t.id);for(const t of r.mdia.minf.stbl.stsd.entries)if(t.avcC||t.hvcC){const r=new K.DataStream(void 0,0,K.DataStream.BIG_ENDIAN);let e=[];e=t.avcC?(t.avcC.write(r),[23,0,0,0,0]):(C.isHevc=!0,t.hvcC.write(r),[28,0,0,0,0]);const i=new Uint8Array(r.buffer,8),n=new Uint8Array(e.length+i.length);return n.set(e,0),n.set(i,e.length),n}return null},onReady(i){I.debug.log(C.LOG_NAME,"onReady()",i);const n=i.videoTracks[0],e=i.audioTracks[0];if(n){C.videoTrackId=n.id;const i=C._getSeqHeader(n);i&&(I.debug.log(C.LOG_NAME,"seqHeader"),I.decodeVideo(i,0,!0,0)),C.mp4Box.setExtractionOptions(n.id)}if(e){C.audioTrackId=e.id;const i=e.audio||{},n=ce.indexOf(i.sample_rate),s=e.codec.replace("mp4a.40.","");C.mp4Box.setExtractionOptions(e.id);var t=function(){var{profile:e,sampleRate:t,channel:r}={profile:parseInt(s,10),sampleRate:n,channel:i.channel_count};return new Uint8Array([175,0,e<<3|(14&t)>>1,(1&t)<<7|r<<3])}();I.debug.log(C.LOG_NAME,"aacADTSHeader"),I.decodeAudio(t,0)}C.mp4Box.start()},onError(e){I.debug.error(C.LOG_NAME,"mp4Box onError",e)},onSamples(e,t,r){if(e===C.videoTrackId)for(const e of r){const t=e.data,r=e.is_sync,n=1e3*e.cts/e.timescale;e.duration,e.timescale,r&&I.calcIframeIntervalTimestamp(n);var i=(C.isHevc?function(e,t){let r=[];r[0]=t?28:44,r[1]=1,r[2]=0,r[3]=0,r[4]=0;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}:Ee)(t,r);I.decode(i,{type:2,ts:n,isIFrame:r,cts:0})}else if(e===C.audioTrackId)for(const e of r){const t=e.data,r=1e3*e.cts/e.timescale,s=(e.duration,e.timescale,new Uint8Array(t.byteLength+2));s.set([175,1],0),s.set(t,2),I.decode(s,{type:1,ts:r,isIFrame:!1,cts:0})}else I.debug.warn(C.LOG_NAME,"onSamples() trackId error",e)},dispatch(e){let t=e;"string"!=typeof e?"object"==typeof e?((t=C.transportDescarmber?C.transportDescarmber.transport(t):t).buffer.fileStart=C.offset,C.offset+=t.byteLength,C.mp4Box.appendBuffer(t.buffer)):I.debug.warn(C.LOG_NAME,"dispatch()","data is not object",e):I.debug.warn(C.LOG_NAME,"dispatch()","data is string",e)},destroy(){C.mp4Box&&(C.mp4Box.flush(),C.mp4Box=null),C.transportDescarmber&&(C.transportDescarmber.destroy(),C.transportDescarmber=null),C.offset=0,C.videoTrackId=null,C.audioTrackId=null,C.isHevc=!1}},F={LOG_NAME:"worker mpeg4Demuxer",lastBuffer:new Uint8Array(0),parsedOffset:0,firstStartCodeOffset:0,secondStartCodeOffset:0,state:"init",hasInitVideoCodec:!1,localDts:0,dispatch(e){e=new Uint8Array(e);F.extractNALu(e)},destroy(){F.lastBuffer=new Uint8Array(0),F.parsedOffset=0,F.firstStartCodeOffset=0,F.secondStartCodeOffset=0,F.state="init",F.hasInitVideoCodec=!1,F.localDts=0},extractNALu(e){if(!e||e.byteLength<1)I.debug.warn(F.LOG_NAME,"extractNALu() buffer error",e);else{const t=new Uint8Array(F.lastBuffer.length+e.length);for(t.set(F.lastBuffer,0),t.set(new Uint8Array(e),F.lastBuffer.length),F.lastBuffer=t;;){if("init"===F.state){let e=!1;for(;4<=F.lastBuffer.length-F.parsedOffset;)if(0===F.lastBuffer[F.parsedOffset])if(0===F.lastBuffer[F.parsedOffset+1])if(1===F.lastBuffer[F.parsedOffset+2]){if(182===F.lastBuffer[F.parsedOffset+3]){F.state="findFirstStartCode",F.firstStartCodeOffset=F.parsedOffset,F.parsedOffset+=4,e=!0;break}F.parsedOffset++}else F.parsedOffset++;else F.parsedOffset++;else F.parsedOffset++;if(e)continue;break}if("findFirstStartCode"===F.state){let e=!1;for(;4<=F.lastBuffer.length-F.parsedOffset;)if(0===F.lastBuffer[F.parsedOffset])if(0===F.lastBuffer[F.parsedOffset+1])if(1===F.lastBuffer[F.parsedOffset+2]){if(182===F.lastBuffer[F.parsedOffset+3]){F.state="findSecondStartCode",F.secondStartCodeOffset=F.parsedOffset,F.parsedOffset+=4,e=!0;break}F.parsedOffset++}else F.parsedOffset++;else F.parsedOffset++;else F.parsedOffset++;if(e)continue;break}if("findSecondStartCode"===F.state){if(!(0{o&&o(0);var e=JSON.stringify({demuxBufferDelay:I.getVideoBufferLength(),audioDemuxBufferDelay:I.getAudioBufferLength(),flvBufferByteLength:I.getFlvBufferLength(),netBuf:I.networkDelay||0,pushLatestDelay:I.pushLatestDelay||0,isDropping:ye(I.dropping)||ye(I.isPushDropping),isStreamTsMoreThanLocal:m});postMessage({cmd:M,type:"streamStats",value:e})},1e3)},stopStreamRateAndStatsInterval:function(){e&&(clearInterval(e),e=null)},useOffscreen:function(){return I._opt.useOffscreen&&"undefined"!=typeof OffscreenCanvas},getDelay:function(e){return!e||I._opt.hasVideo&&!c?-1:(I.preDelayTimestamp&&I.preDelayTimestamp>e?1e3 timestamp is ${e} more than ${I.preDelayTimestamp-e}ms`):I.firstTimestamp?e&&(t=Date.now()-I.startTimestamp,(r=e-I.firstTimestamp)<=t?(m=!1,I.delay=t-r):(m=!0,I.delay=r-t)):(I.firstTimestamp=e,I.startTimestamp=Date.now(),I.delay=-1),I.preDelayTimestamp=e,I.delay);var t,r},getDelayNotUpdateDelay:function(t){if(!t||I._opt.hasVideo&&!c)return-1;if(I.preDelayTimestamp&&1e3 timestamp is ${t} more than ${I.preDelayTimestamp-t}ms`),-1;if(I.firstTimestamp){let e=-1;var r;return t&&(r=Date.now()-I.startTimestamp,t=t-I.firstTimestamp,e=t<=r?(m=!1,r-t):(m=!0,t-r)),e}return-1},resetDelay:function(){I.firstTimestamp=null,I.startTimestamp=null,I.delay=-1},resetAllDelay:function(){I.resetDelay(),I.preDelayTimestamp=null},doDecode:function(e){I._opt.useWCS&&I.useOffscreen()&&2===e.type&&a.decode?a.decode(e.payload,e.ts,e.cts):e.decoder.decode(e.payload,e.ts,e.isIFrame,e.cts)},init:function(){I.debug.log("worker","init and opt is",I._opt);const t=I._opt.playType===L,r="playbackTF"===I._opt.playType;if(k.init(),I.isPlayer=t,I.isPlayback=r,I.isPlaybackCacheBeforeDecodeForFpsRender())I.debug.log("worker","playback and playbackIsCacheBeforeDecodeForFpsRender is true");else{const r=()=>{let e=null;if(s.length)if(I.isPushDropping)I.debug.warn("worker","loop() isPushDropping is true and bufferList length is "+s.length);else if(I.dropping){for(e=s.shift(),I.debug.warn("worker",`loop() dropBuffer is dropping and isIFrame ${e.isIFrame} and delay is ${I.delay} and bufferlist is `+s.length);!e.isIFrame&&s.length;)e=s.shift();const t=I.getDelayNotUpdateDelay(e.ts);e.isIFrame&&t<=I.getNotDroppingDelayTs()&&(I.debug.log("worker","loop() is dropping = false, is iFrame"),I.dropping=!1,I.doDecode(e))}else if(e=s[0],-1===I.getDelay(e.ts)||I.isPlayback)I.isPlayer&&I.debug.log("worker","loop() common dumex delay is -1 ,data.ts is",e.ts),s.shift(),I.doDecode(e);else if(I.delay>I._opt.videoBuffer+I._opt.videoBufferDelay&&t)I.hasIframeInBufferList()?(I.debug.log("worker",`delay is ${I.delay}, set dropping is true`),I.resetAllDelay(),I.dropping=!0):(s.shift(),I.doDecode(e));else for(;s.length;){if(e=s[0],!(I.getDelay(e.ts)>I._opt.videoBuffer)){I.delay<0&&I.debug.warn("worker",`loop() do not decode and delay is ${I.delay}, bufferList is `+s.length);break}s.shift(),I.doDecode(e)}else-1!==I.delay&&I.debug.log("worker","loop() bufferList is empty and reset delay"),I.resetAllDelay()};I.stopId=setInterval(()=>{var e=(new Date).getTime(),e=e-(_=_||e);100{var e;s.length&&(e=s.shift(),I.doDecode(e))},t=(e(),Math.ceil(1e3/(I.streamFps*I._opt.playbackRate)));I.debug.log("worker",`playbackCacheLoop fragDuration is ${t}, streamFps is ${I.streamFps}, playbackRate is `+I._opt.playbackRate),I.stopId=setInterval(e,t)},close:function(){I.debug.log("worker","close"),I.isDestroyed=!0,I.stopStreamRateAndStatsInterval(),I.stopId&&(clearInterval(I.stopId),I.stopId=null),D&&(D.clear&&D.clear(),D=null),P&&(P.clear&&P.clear(),P=null),o=null,_=null,m=!1,a&&(a.reset&&a.reset(),a=null),I.firstTimestamp=null,I.startTimestamp=null,I.networkDelay=0,I.streamFps=null,I.streamAudioFps=null,I.streamVideoFps=null,I.delay=-1,I.pushLatestDelay=-1,I.preDelayTimestamp=null,I.dropping=!1,I.isPushDropping=!1,I.isPlayer=!0,I.isPlayback=!1,I._opt=T(),I.webglObj&&(I.webglObj.destroy(),I.offscreenCanvas.removeEventListener("webglcontextlost",I.onOffscreenCanvasWebglContextLost),I.offscreenCanvas.removeEventListener("webglcontextrestored",I.onOffscreenCanvasWebglContextRestored),I.offscreenCanvas=null,I.offscreenCanvasGL=null,I.offscreenCanvasCtx=null),s=[],d=[],n(),h=null,r&&(r.close(1e3,"Client disconnecting"),r=null),u=null,f=null,p=!1,i=!1,c=!1,B=!1,A=!1,b=[],v=0,w=0,g=null,y=null,E=null,S=null,U=0,x=0,k.destroy(),C.destroy(),F.destroy(),postMessage({cmd:"closeEnd"})},pushBuffer:function(e,t){if(1===t.type&&pe(e))I.decodeAudio(e,t.ts);else{if(I.isPlayer&&02*U-5&&I.debug.warn("worker",`pushBuffer video ts is ${t.ts}, preTimestamp is ${S}, diff is ${e} and preTimestampDuration is ${U} maybe trigger black screen or flower screen `)}if(I.isPlayer&&0e&&I.delay{2===e.type&&(t+=1)}),t},hasIframeInBufferList:()=>s.some(e=>2===e.type&&e.isIFrame),isAllIframeInBufferList(){var e=I.getVideoBufferLength();let t=0;return s.forEach(e=>{2===e.type&&e.isIFrame&&(t+=1)}),e===t},getNotDroppingDelayTs:()=>I._opt.videoBuffer+I._opt.videoBufferDelay/2,getAudioBufferLength(){let t=0;return s.forEach(e=>{1===e.type&&(t+=1)}),t},getFlvBufferLength(){let e=0;return h&&h.buffer&&(e=h.buffer.byteLength),e=I._opt.isNakedFlow&&k.lastBuf?k.lastBuf.byteLength:e},fetchStream:function(e,i){I.debug.log("worker","fetchStream, url is "+e,"options:",JSON.stringify(i)),i.isFlv?I._opt.isFlv=!0:i.isFmp4?I._opt.isFmp4=!0:i.isMpeg4?I._opt.isMpeg4=!0:i.isNakedFlow&&(I._opt.isNakedFlow=!0),o=function(r){let i=0,n=_e();return e=>{var t;"[object Number]"===Object.prototype.toString.call(e)&&(i+=e,1e3<=(t=(e=_e())-n)&&(r(i/t*1e3),n=e,i=0))}}(e=>{postMessage({cmd:M,type:"streamRate",value:e})}),I.startStreamRateAndStatsInterval(),i.isFmp4&&(C.listenMp4Box(),I._opt.isFmp4Private&&C.initTransportDescarmber()),2===i.protocol?(h=new Y(I.demuxFlv()),fetch(e,{signal:t.signal}).then(e=>{if(!(e.ok&&200<=e.status&&e.status<=299))return I.debug.warn("worker",`fetch response status is ${e.status} and ok is ${e.ok} and emit error and next abort()`),n(),void postMessage({cmd:M,type:O,value:`fetch response status is ${e.status} and ok is `+e.ok});if(postMessage({cmd:M,type:oe}),"undefined"!=typeof WritableStream)e.body.pipeTo(new WritableStream({write:e=>{o(e.byteLength),i.isFlv?h.write(e):i.isFmp4?I.demuxFmp4(e):i.isMpeg4&&I.demuxMpeg4(e)},close:()=>{h=null,n(),postMessage({cmd:M,type:N,value:J})},abort:e=>{h=null,e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}))}}));else{const t=e.body.getReader(),r=()=>{t.read().then(e=>{var{done:e,value:t}=e;if(e)return h=null,n(),void postMessage({cmd:M,type:N,value:J});o(t.byteLength),i.isFlv?h.write(t):i.isFmp4?I.demuxFmp4(t):i.isMpeg4&&I.demuxMpeg4(t),r()}).catch(e=>{h=null,e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}))})};r()}}).catch(e=>{e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}),h=null)})):1===i.protocol&&(i.isFlv&&(h=new Y(I.demuxFlv())),(r=new WebSocket(e)).binaryType="arraybuffer",r.onopen=()=>{I.debug.log("worker","fetchStream, WebsocketStream socket open"),postMessage({cmd:M,type:oe}),postMessage({cmd:M,type:"websocketOpen"})},r.onclose=e=>{I.debug.log("worker","fetchStream, WebsocketStream socket close and code is "+e.code),1006===e.code&&I.debug.warn("worker","fetchStream, WebsocketStream socket close abnormally and code is "+e.code),h=null,postMessage({cmd:M,type:N,value:"websocket"})},r.onerror=e=>{I.debug.error("worker","fetchStream, WebsocketStream socket error",e),h=null,postMessage({cmd:M,type:"websocketError",value:e.isTrusted?"websocket user aborted":"websocket error"})},r.onmessage=e=>{o(e.data.byteLength),i.isFlv?h.write(e.data):i.isFmp4?I.demuxFmp4(e.data):i.isMpeg4?I.demuxMpeg4(e.data):I._opt.isNakedFlow?I.demuxNakedFlow(e.data):I.demuxM7s(e.data)})},demuxFlv:function*(){yield 9;const r=new ArrayBuffer(4),e=new Uint8Array(r),i=new Uint32Array(r);for(;;){e[3]=0;const r=yield 15,a=r[4];e[0]=r[7],e[1]=r[6],e[2]=r[5];var t=i[0],n=(e[0]=r[10],e[1]=r[9],e[2]=r[8],e[3]=r[11],i[0]),s=(yield t).slice();switch(a){case 8:I.decode(s,{type:1,ts:n});break;case 9:if(0>4==1;I.isPlayer&&(I.calcNetworkDelay(n),r&&I.calcIframeIntervalTimestamp(n)),i[0]=s[4],i[1]=s[3],i[2]=s[2],i[3]=0;let e=i[0],t=s;I._opt.isCrypto&&(I._opt.cryptoIV&&0n)break;var a=t[s+4];if(1==(a&=31)||5==a){const n=t.slice(s+4+2,s+4+o);let e=new We.ModeOfOperation.ctr(r,new We.Counter(i));a=e.decrypt(n);e=null,t.set(a,s+4+2)}s=s+4+o}var o;return t}(s,I._opt.cryptoKey,I._opt.cryptoIV):I.debug.error("worker",`cryptoKey.length is ${I._opt.cryptoKey&&I._opt.cryptoKey.byteLength} or cryptoIV.length is ${I._opt.cryptoIV&&I._opt.cryptoIV.byteLength} null`)),I.decode(t,{type:2,ts:n,isIFrame:r,cts:e})}break;default:I.debug.log("worker","demuxFlv() type is "+a)}}},decode:function(e,t){1===t.type?I._opt.hasAudio&&(postMessage({cmd:M,type:"streamAbps",value:e.byteLength}),I.isPlayer?I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts}):I.isPlayback&&(I.isPlaybackCacheBeforeDecodeForFpsRender()||1===I._opt.playbackRate?I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts}):I.decodeAudio(e,t.ts))):2===t.type&&I._opt.hasVideo&&(postMessage({cmd:M,type:se,value:e.byteLength}),postMessage({cmd:M,type:ae,value:t.ts}),I.isPlayer?I.pushBuffer(e,{type:t.type,ts:t.ts,isIFrame:t.isIFrame,cts:t.cts}):I.isPlayback&&(I.isPlaybackOnlyDecodeIFrame()?t.isIFrame&&I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts,isIFrame:t.isIFrame}):(I.isPlaybackCacheBeforeDecodeForFpsRender(),I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts,isIFrame:t.isIFrame}))))},setCodecAudio:function(e){var t=e[0]>>4;if(pe(e)||7==t||8==t){I.debug.log("worker","setCodecAudio: init audio codec, codeId is "+t);e=t===G?e.slice(2):e.slice(1);D.setCodec(t,I._opt.sampleRate,e),i=!0;{const e=Number("1")||1;setTimeout(()=>{I.close(),postMessage({cmd:ne})},60*e*60*1e3)}}else I.debug.warn("worker","setCodecAudio: hasInitAudioCodec is false, codecId is ",t)},decodeAudio:function(e,t){var r=e[0]>>4;i?D.decode(r===G?e.slice(2):e.slice(1),t):I.setCodecAudio(e)},setCodecVideo:function(e){var t=15&e[0];if(I.isVideoSequenceHeader(e))if(7==t||12==t){I.debug.log("worker","setCodecVideo: init video codec , codecId is "+t);var r=e.slice(5);if(7==t&&I._opt.useSIMD){const e=we(r);if(4080>4} and packetType is `+e[1])},decodeVideo:function(t,r,e,i){if(p)if(c=!c&&e?!0:c){if(e&&I.isVideoSequenceHeader(t)){const r=15&t[0];let e={};7==r?e=we(t.slice(5)):12==r&&(e=function(e){let n={width:0,height:0,profile:0,level:0};e=e.slice(5);do{let t={};if(e.length<23)break;if(t.configurationVersion=e[0],1!=t.configurationVersion)break;t.general_profile_space=e[1]>>6&3,t.general_tier_flag=e[1]>>5&1,t.general_profile_idc=31&e[1],t.general_profile_compatibility_flags=e[2]<<24|e[3]<<16|e[4]<<8|e[5],t.general_constraint_indicator_flags=e[6]<<24|e[7]<<16|e[8]<<8|e[9],t.general_constraint_indicator_flags=t.general_constraint_indicator_flags<<16|e[10]<<8|e[11],t.general_level_idc=e[12],t.min_spatial_segmentation_idc=(15&e[13])<<8|e[14],t.parallelismType=3&e[15],t.chromaFormat=3&e[16],t.bitDepthLumaMinus8=7&e[17],t.bitDepthChromaMinus8=7&e[18],t.avgFrameRate=e[19]<<8|e[20],t.constantFrameRate=e[21]>>6&3,t.numTemporalLayers=e[21]>>3&7,t.temporalIdNested=e[21]>>2&1,t.lengthSizeMinusOne=3&e[21];let r=e[22],i=e.slice(23);for(let e=0;eye(e.isIFrame)&&2===e.type);if(I.isAllIframeInBufferList())for(let e=0;e=I.getNotDroppingDelayTs()){I.debug.log("worker",`dropBuffer$2() isAllIframeInBufferList() is true, and index is ${e} and tempDelay is ${r} and notDroppingDelayTs is `+I.getNotDroppingDelayTs()),t=e;break}}var e,i;0<=t?(e=(s=s.slice(t)).shift(),i=I.getDelayNotUpdateDelay(e.ts),I.doDecode(e),I.isPushDropping=!1,I.debug.log("worker",`dropBuffer$2() iFrameIndex is ${t},and bufferList length is ${s.length} and tempDelay is ${i} ,delay is ${I.delay} `)):I.isPushDropping=!1}0===s.length&&(I.isPushDropping=!1)},demuxM7s:function(e){const t=new DataView(e),r=t.getUint32(1,!1);switch(t.getUint8(0)){case 1:I.decode(new Uint8Array(e,5),{type:1,ts:r});break;case 2:var i;5>4==1,I.isPlayer&&(I.calcNetworkDelay(r),i&&I.calcIframeIntervalTimestamp(r)),I.decode(new Uint8Array(e,5),{type:2,ts:r,isIFrame:i}))}},demuxNakedFlow:function(e){k.dispatch(e)},demuxFmp4:function(e){e=new Uint8Array(e);C.dispatch(e)},demuxMpeg4:function(e){F.dispatch(e)},calcNetworkDelay:function(e){var t,r,i;c&&0I._opt.networkDelay&&I._opt.playType===L&&(I.debug.warn("worker",`calcNetworkDelay now dts:${e}, start dts is ${g} vs start is ${t},local diff is ${r} ,delay is `+i),postMessage({cmd:M,type:"networkDelayTimeout",value:i})))},calcIframeIntervalTimestamp:function(e){null===E?E=e:E=I._opt.playbackForwardMaxRateDecodeIFrame},playbackUpdatePlaybackRate:function(){I.clearBuffer(!0)},isVideoSequenceHeader:function(e){return e[0]>>4==1&&e[1]===fe},onOffscreenCanvasWebglContextLost:function(e){I.debug.error("worker","handleOffscreenCanvasWebglContextLost and next try to create webgl"),e.preventDefault(),B=!0,I.webglObj.destroy(),I.webglObj=null,I.offscreenCanvasGL=null,setTimeout(()=>{I.offscreenCanvasGL=I.offscreenCanvas.getContext("webgl"),I.offscreenCanvasGL&&I.offscreenCanvasGL.getContextAttributes().stencil?(I.webglObj=Z(I.offscreenCanvasGL,I._opt.openWebglAlignment),B=!1):I.debug.error("worker","handleOffscreenCanvasWebglContextLost, stencil is false")},500)},onOffscreenCanvasWebglContextRestored:function(e){I.debug.log("worker","handleOffscreenCanvasWebglContextRestored"),e.preventDefault()},videoInfo:function(e,t,r){postMessage({cmd:re,code:e}),postMessage({cmd:ee,w:t,h:r}),u=t,f=r,I.useOffscreen()&&(I.offscreenCanvas=new OffscreenCanvas(t,r),I.offscreenCanvasGL=I.offscreenCanvas.getContext("webgl"),I.webglObj=Z(I.offscreenCanvasGL,I._opt.openWebglAlignment),I.offscreenCanvas.addEventListener("webglcontextlost",I.onOffscreenCanvasWebglContextLost,!1),I.offscreenCanvas.addEventListener("webglcontextrestored",I.onOffscreenCanvasWebglContextRestored,!1))},audioInfo:function(e,t,r){postMessage({cmd:"audioCode",code:e}),postMessage({cmd:"initAudio",sampleRate:t,channels:r}),w=r},yuvData:function(e,t){if(I.isDestroyed)I.debug.log("worker","yuvData, decoder is destroyed and return");else{var r,i=u*f*3/2,e=l.HEAPU8.subarray(e,e+i),i=new Uint8Array(e);if(I.useOffscreen())try{B||(I.webglObj.renderYUV(u,f,i),r=I.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:R,buffer:r,delay:I.delay,ts:t},[r]))}catch(e){I.debug.error("worker","yuvData, transferToImageBitmap error is",e)}else postMessage({cmd:R,output:i,delay:I.delay,ts:t},[i.buffer])}},pcmData:function(n,s,a){if(I.isDestroyed)I.debug.log("worker","pcmData, decoder is destroyed and return");else{let t=s,r=[],e=0,i=I._opt.audioBufferSize;for(let e=0;e<2;e++){var o=l.HEAPU32[(n>>2)+e]>>2;r[e]=l.HEAPF32.subarray(o,o+t)}if(v){if(!(t>=(s=i-v)))return v+=t,d[0]=Float32Array.of(...d[0],...r[0]),void(2==w&&(d[1]=Float32Array.of(...d[1],...r[1])));b[0]=Float32Array.of(...d[0],...r[0].subarray(0,s)),2==w&&(b[1]=Float32Array.of(...d[1],...r[1].subarray(0,s))),postMessage({cmd:te,buffer:b,ts:a},b.map(e=>e.buffer)),e=s,t-=s}for(v=t;v>=i;v-=i)b[0]=r[0].slice(e,e+=i),2==w&&(b[1]=r[1].slice(e-i,e)),postMessage({cmd:te,buffer:b,ts:a},b.map(e=>e.buffer));v&&(d[0]=r[0].slice(e),2==w&&(d[1]=r[1].slice(e)))}},sendWebsocketMessage:function(e){r?1===r.readyState?r.send(e):I.debug.error("worker","socket is not open"):I.debug.error("worker","socket is null")},timeEnd:function(){I.debug.error("worker","jessibuca pro 体验结束,请刷新页面再次体验,如需要购买商业授权,可以联系微信:bosswancheng"),I.close(),postMessage({cmd:ne})},postStreamToMain(e,t){postMessage({cmd:"tempStream",type:t,buffer:e},[e.buffer])}},D=(I.debug=new be(I),null),P=(l.AudioDecoder&&(D=new l.AudioDecoder(I)),null);l.VideoDecoder&&(P=new l.VideoDecoder(I)),postMessage({cmd:"init"}),self.onmessage=function(e){var t=e.data;switch(t.cmd){case"init":try{I._opt=Object.assign(I._opt,JSON.parse(t.opt))}catch(e){}I.init();break;case"decode":I.pushBuffer(t.buffer,t.options);break;case"audioDecode":I.decodeAudio(t.buffer,t.ts);break;case"videoDecode":I.decodeVideo(t.buffer,t.ts,t.isIFrame);break;case"clearBuffer":I.clearBuffer(t.needClear);break;case"fetchStream":I.fetchStream(t.url,JSON.parse(t.opt));break;case"close":I.close();break;case"updateConfig":I.debug.log("worker","updateConfig",t.key,t.value),I._opt[t.key]=t.value,"playbackRate"===t.key&&(I.playbackUpdatePlaybackRate(),I.isPlaybackCacheBeforeDecodeForFpsRender()&&I.playbackCacheLoop());break;case"sendWsMessage":I.sendWebsocketMessage(t.message)}}}Date.now||(Date.now=function(){return(new Date).getTime()}),y.postRun=function(){Ke(y)}});