Вход Регистрация
Файл: scripts/opus.wasm.js
Строк: 2202
<?php
((function() {
    
"use strict";
    var 
VINT_SIZES = [0877666655555555444444444444444433333333333333333333333333333333222222222222222222222222222222222222222222222222222222222222222211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111];
    var 
VINT_MASKS = [2551276331157310];
    var 
OPUS_SIG = [659579808583];
    
    var 
_decoder null;
    var 
_audioBuffer null;
    var 
_inputPointer null;
    var 
_outputBuffer null;
    var 
_outputPointer null;
    var 
_outputOffset 0;
    
    
// Ready promise resolves when onRuntimeInitialized called
    
let readyPromiseResolve null;
    const 
readyPromise = new Promise(resolve => readyPromiseResolve resolve);
    
    
Module = {
        
// When WASM has finished loading, resolve the ready promise
        
onRuntimeInitializedreadyPromiseResolve
    
};

    function 
ReadVInt(datapositionlengthinitialMask) {
        var 
value data.getUint8(position) & initialMask;
        for (var 
1lengthi++) value = (value << 8) + data.getUint8(position i);
        return 
value
    
}

    function 
ParseIntTag(datapositionsize)
    {
        switch (
size) {
            case 
1
                return 
data.getInt8(position);
            case 
2:
                return 
data.getInt16(position);
            case 
3:
                return 
ReadInt24(dataposition);
            case 
4
                return 
data.getInt32(position);
            default:
                throw new 
Error("Invalid size");
        }
    }

    function 
ReadInt24(dataposition)
    {
        var 
first data.getInt8(position);
        var 
sign first >> 7;
        var 
value first 0b1111111;

        
value = (value << 8) | data.getUint8(position);
        
value = (value << 8) | data.getUint8(position);

        return 
sign === ? -value value;
    }

    function 
CalculateAudioBufferSize(ratechannelsduration) {
        return 
rate 1e3 channels duration
    
}

    function 
CreateDecoder(duration) {
        var 
frequency 48e3;
        var 
channels 1;
        var 
bufferSize 2048;
        
// the true size should be "duration - codecDelay"
        // but we also write the "discardpadding" at the end 
        // of the buffer before discarding it, so we need 1 opus frame of
        // extra space. max size of a frame is 120ms
        
var length CalculateAudioBufferSize(frequencychannelsduration 120);
        
_audioBuffer = new Float32Array(length);
        if (!
_outputBuffer) {
            
_outputPointer Module._malloc(bufferSize << 2);
            
_outputBuffer = new Float32Array(Module.HEAPU8.buffer_outputPointerbufferSize)
        }
        if (!
_inputPointer) {
            
_inputPointer Module._malloc(bufferSize)
        }
        
_decoder Module._create_decoder(frequencychannels);
        if (
_decoder 0) throw new Error("Failed to create decoder")
    }

    function 
DestroyDecoder() {
        
Module._destroy_decoder(_decoder);
        
_decoder null;
        
_outputOffset 0;
    }
    
    
/////////////////////////////////////////////////////////
    // Main job handler
    
self.JobHandlers["OpusDecode"] = async function OpusDecode(params)
    {
        
// Wait for WASM to finish loading if necessary
        
await readyPromise;
        
        
// Decode the Opus compressed audio to a float sample buffer and return the ArrayBuffer
        
const arrayBuffer params["arrayBuffer"];
        
ParseMaster(new DataView(arrayBuffer), 0arrayBuffer.byteLength);  
        const 
end _outputOffset;
        
DestroyDecoder();
        const 
outputBuffer _audioBuffer.buffer.slice(0end 4);
        
_audioBuffer null;
        return {
            
resultoutputBuffer,
            
transferables: [outputBuffer]
        };
    };

    function 
WriteOutput (ret) {
        if (
ret _outputOffset 0) {
            var 
tempBuffer;
            var 
writePosition _outputOffset;
            if (
_outputOffset 0) {
                var 
trim = -_outputOffset;
                
tempBuffer = new Float32Array(Module.HEAPU8.buffer_outputPointer trim 4ret trim);
                
writePosition 0;
            }
            else {
                
tempBuffer = new Float32Array(Module.HEAPU8.buffer_outputPointerret);
            }

            if (
writePosition tempBuffer.length _audioBuffer.length)
                throw new 
Error("Buffer overflow");

            
_audioBuffer.set(tempBufferwritePosition);
        }

        
_outputOffset += ret;
    }

    function 
ParseFrame(data) {
        var 
length data.length;
        
Module.HEAPU8.set(data_inputPointer);
        var 
ret Module._decode_frame(_decoder_inputPointerlength_outputPointer4096);
        if (
ret 0) {
            
WriteOutput(ret);
        } else {
            throw new 
Error("Failed to parse frame")
        }
    }

    function 
ParseBlock(datapositionsize) {
        var 
firstBytetagLengthmasktrackEntrytimeCodeflagslacing;
        
firstByte data.getUint8(position);
        
tagLength VINT_SIZES[firstByte];
        
mask VINT_MASKS[tagLength];
        
trackEntry ReadVInt(datapositiontagLengthmask);
        
position += tagLength;
        
timeCode data.getInt16(position);
        
position += 2;
        
flags data.getUint8(position);
        
position += 1;
        
size -= tagLength 3;
        
lacing flags 6;
        if (
lacing) throw "Lacing not supported";
        
ParseFrame(new Uint8Array(data.bufferpositionsize))
    }

    function 
ParseDuration(datapositionsize) {
        var 
duration;
        if (
size == 4duration data.getFloat32(position);
        else if (
size == 8duration data.getFloat64(position);
        else throw new 
Error("Invalid size");
        
CreateDecoder(duration)
    }

    function 
ParseDiscard(datapositionsize) {
        
// NOTE discard in an integer
        // postive values are trailing, negative are leading
        // value is in nanoseconds
        
var discardDuration ParseIntTag(datapositionsize);
        if (
discardDuration 0)
            throw new 
Error("Cannot discard leading block data");
        var 
discardFrames Math.floor(discardDuration 0.000048);
        
_outputOffset -= discardFrames;
    }

    function 
ParseDelay(datapositionsize) {
        var 
discardDuration ReadVInt(datapositionsize0xFF);
        
_outputOffset = -Math.floor(discardDuration 0.000048)
    }

    function 
TestOpus(dataposition) {
        for (var 
06li++) {
            if (
data.getUint8(position i) != OPUS_SIG[i]) throw new Error("Contains non opus data")
        }
    }

    function 
ParseMaster(datapositionlength) {
        var 
firstBytetagLengthidsizeLengthmasksize;
        var 
end position length;
        while (
position end) {
            
firstByte data.getUint8(position);
            
tagLength VINT_SIZES[firstByte];
            if (
tagLength || tagLength == 0) throw "Invalid tag length " tagLength;
            
id ReadVInt(datapositiontagLength255);
            
position += tagLength;
            
firstByte data.getUint8(position);
            
sizeLength VINT_SIZES[firstByte];
            
mask VINT_MASKS[sizeLength];
            if (
sizeLength == 0) throw "Invalid size length";
            
size ReadVInt(datapositionsizeLengthmask);
            
position += sizeLength;
            switch (
id) {
                case 
408125543// Segment
                
case 357149030// Info
                
case 524531317// Cluster
                
case 374648427// Tracks
                
case 174:       // TrackEntry
                
case 160:       // BlockGroup
                    
ParseMaster(datapositionsize);
                    break;
                case 
17545:     // Duration
                    
ParseDuration(datapositionsize);
                    break;
                case 
22186:     // CodecDelay
                    
ParseDelay(datapositionsize);
                    break;
                case 
30114:     // DiscardPadding
                    
ParseDiscard(datapositionsize);
                    break;
                case 
134:       // CodecID
                    
TestOpus(datapositionsize);
                    break;
                case 
161:       // Block
                
case 163:       // SimpleBlock
                    
ParseBlock(datapositionsize);
                    break;
            }
            
position += size
        
}
    }
}))();
var 
Module;
if (!
ModuleModule = (typeof Module !== "undefined" Module null) || {};
var 
moduleOverrides = {};
for (var 
key in Module) {
    if (
Module.hasOwnProperty(key)) {
        
moduleOverrides[key] = Module[key]
    }
}
var 
ENVIRONMENT_IS_WEB false;
var 
ENVIRONMENT_IS_WORKER false;
var 
ENVIRONMENT_IS_NODE false;
var 
ENVIRONMENT_IS_SHELL false;
if (
Module["ENVIRONMENT"]) {
    if (
Module["ENVIRONMENT"] === "WEB") {
        
ENVIRONMENT_IS_WEB true
    
} else if (Module["ENVIRONMENT"] === "WORKER") {
        
ENVIRONMENT_IS_WORKER true
    
} else if (Module["ENVIRONMENT"] === "NODE") {
        
ENVIRONMENT_IS_NODE true
    
} else if (Module["ENVIRONMENT"] === "SHELL") {
        
ENVIRONMENT_IS_SHELL true
    
} else {
        throw new 
Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")
    }
} else {
    
ENVIRONMENT_IS_WEB typeof window === "object";
    
ENVIRONMENT_IS_WORKER typeof importScripts === "function";
    
ENVIRONMENT_IS_NODE typeof process === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;
    
ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER
}
if (
ENVIRONMENT_IS_NODE) {
    if (!
Module["print"]) Module["print"] = console.log;
    if (!
Module["printErr"]) Module["printErr"] = console.warn;
    var 
nodeFS;
    var 
nodePath;
    
Module["read"] = function shell_read(filenamebinary) {
        if (!
nodeFSnodeFS = require("fs");
        if (!
nodePathnodePath = require("path");
        
filename nodePath["normalize"](filename);
        var 
ret nodeFS["readFileSync"](filename);
        return 
binary ret ret.toString()
    };
    
Module["readBinary"] = function readBinary(filename) {
        var 
ret Module["read"](filenametrue);
        if (!
ret.buffer) {
            
ret = new Uint8Array(ret)
        }
        
assert(ret.buffer);
        return 
ret
    
};
    
Module["load"] = function load(f) {
        
globalEval(read(f))
    };
    if (!
Module["thisProgram"]) {
        if (
process["argv"].length 1) {
            
Module["thisProgram"] = process["argv"][1].replace(/\/g"/")
        } else {
            
Module["thisProgram"] = "unknown-program"
        
}
    }
    
Module["arguments"] = process["argv"].slice(2);
    if (
typeof module !== "undefined") {
        
module["exports"] = Module
    
}
    
process["on"]("uncaughtException", (function(ex) {
        if (!(
ex instanceof ExitStatus)) {
            throw 
ex
        
}
    }));
    
Module["inspect"] = (function() {
        return 
"[Emscripten Module object]"
    
})
} else if (
ENVIRONMENT_IS_SHELL) {
    if (!
Module["print"]) Module["print"] = print;
    if (
typeof printErr != "undefined"Module["printErr"] = printErr;
    if (
typeof read != "undefined") {
        
Module["read"] = read
    
} else {
        
Module["read"] = function shell_read() {
            throw 
"no read() available"
        
}
    }
    
Module["readBinary"] = function readBinary(f) {
        if (
typeof readbuffer === "function") {
            return new 
Uint8Array(readbuffer(f))
        }
        var 
data read(f"binary");
        
assert(typeof data === "object");
        return 
data
    
};
    if (
typeof scriptArgs != "undefined") {
        
Module["arguments"] = scriptArgs
    
} else if (typeof arguments != "undefined") {
        
Module["arguments"] = arguments
    
}
    if (
typeof quit === "function") {
        
Module["quit"] = (function(statustoThrow) {
            
quit(status)
        })
    }
} else if (
ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
    
Module["read"] = function shell_read(url) {
        var 
xhr = new XMLHttpRequest;
        
xhr.open("GET"urlfalse);
        
xhr.send(null);
        return 
xhr.responseText
    
};
    if (
ENVIRONMENT_IS_WORKER) {
        
Module["readBinary"] = function readBinary(url) {
            var 
xhr = new XMLHttpRequest;
            
xhr.open("GET"urlfalse);
            
xhr.responseType "arraybuffer";
            
xhr.send(null);
            return new 
Uint8Array(xhr.response)
        }
    }
    
Module["readAsync"] = function readAsync(urlonloadonerror) {
        var 
xhr = new XMLHttpRequest;
        
xhr.open("GET"urltrue);
        
xhr.responseType "arraybuffer";
        
xhr.onload = function xhr_onload() {
            if (
xhr.status == 200 || xhr.status == && xhr.response) {
                
onload(xhr.response)
            } else {
                
onerror()
            }
        };
        
xhr.onerror onerror;
        
xhr.send(null)
    };
    if (
typeof arguments != "undefined") {
        
Module["arguments"] = arguments
    
}
    if (
typeof console !== "undefined") {
        if (!
Module["print"]) Module["print"] = function shell_print(x) {
            
console.log(x)
        };
        if (!
Module["printErr"]) Module["printErr"] = function shell_printErr(x) {
            
console.warn(x)
        }
    } else {
        var 
TRY_USE_DUMP false;
        if (!
Module["print"]) Module["print"] = TRY_USE_DUMP && typeof dump !== "undefined" ? (function(x) {
            
dump(x)
        }) : (function(
x) {})
    }
    if (
ENVIRONMENT_IS_WORKER) {
        
Module["load"] = importScripts
    
}
    if (
typeof Module["setWindowTitle"] === "undefined") {
        
Module["setWindowTitle"] = (function(title) {
            
document.title title
        
})
    }
} else {
    throw 
"Unknown runtime environment. Where are we?"
}

function 
globalEval(x) {
    eval.
call(nullx)
}
if (!
Module["load"] && Module["read"]) {
    
Module["load"] = function load(f) {
        
globalEval(Module["read"](f))
    }
}
if (!
Module["print"]) {
    
Module["print"] = (function() {})
}
if (!
Module["printErr"]) {
    
Module["printErr"] = Module["print"]
}
if (!
Module["arguments"]) {
    
Module["arguments"] = []
}
if (!
Module["thisProgram"]) {
    
Module["thisProgram"] = "./this.program"
}
if (!
Module["quit"]) {
    
Module["quit"] = (function(statustoThrow) {
        throw 
toThrow
    
})
}
Module.print = Module["print"];
Module.printErr Module["printErr"];
Module["preRun"] = [];
Module["postRun"] = [];
for (var 
key in moduleOverrides) {
    if (
moduleOverrides.hasOwnProperty(key)) {
        
Module[key] = moduleOverrides[key]
    }
}
moduleOverrides undefined;
var 
Runtime = {
    
setTempRet0: (function(value) {
        
tempRet0 value;
        return 
value
    
}),
    
getTempRet0: (function() {
        return 
tempRet0
    
}),
    
stackSave: (function() {
        return 
STACKTOP
    
}),
    
stackRestore: (function(stackTop) {
        
STACKTOP stackTop
    
}),
    
getNativeTypeSize: (function(type) {
        switch (
type) {
            case 
"i1":
            case 
"i8":
                return 
1;
            case 
"i16":
                return 
2;
            case 
"i32":
                return 
4;
            case 
"i64":
                return 
8;
            case 
"float":
                return 
4;
            case 
"double":
                return 
8;
            default:
                {
                    if (
type[type.length 1] === "*") {
                        return 
Runtime.QUANTUM_SIZE
                    
} else if (type[0] === "i") {
                        var 
bits parseInt(type.substr(1));
                        
assert(bits === 0);
                        return 
bits 8
                    
} else {
                        return 
0
                    
}
                }
        }
    }),
    
getNativeFieldSize: (function(type) {
        return 
Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE)
    }),
    
STACK_ALIGN16,
    
prepVararg: (function(ptrtype) {
        if (
type === "double" || type === "i64") {
            if (
ptr 7) {
                
assert((ptr 7) === 4);
                
ptr += 4
            
}
        } else {
            
assert((ptr 3) === 0)
        }
        return 
ptr
    
}),
    
getAlignSize: (function(typesizevararg) {
        if (!
vararg && (type == "i64" || type == "double")) return 8;
        if (!
type) return Math.min(size8);
        return 
Math.min(size || (type Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE)
    }),
    
dynCall: (function(sigptrargs) {
        if (
args && args.length) {
            return 
Module["dynCall_" sig].apply(null, [ptr].concat(args))
        } else {
            return 
Module["dynCall_" sig].call(nullptr)
        }
    }),
    
functionPointers: [],
    
addFunction: (function(func) {
        for (var 
0Runtime.functionPointers.lengthi++) {
            if (!
Runtime.functionPointers[i]) {
                
Runtime.functionPointers[i] = func;
                return 
* (i)
            }
        }
        throw 
"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."
    
}),
    
removeFunction: (function(index) {
        
Runtime.functionPointers[(index 2) / 2] = null
    
}),
    
warnOnce: (function(text) {
        if (!
Runtime.warnOnce.shownRuntime.warnOnce.shown = {};
        if (!
Runtime.warnOnce.shown[text]) {
            
Runtime.warnOnce.shown[text] = 1;
            
Module.printErr(text)
        }
    }),
    
funcWrappers: {},
    
getFuncWrapper: (function(funcsig) {
        
assert(sig);
        if (!
Runtime.funcWrappers[sig]) {
            
Runtime.funcWrappers[sig] = {}
        }
        var 
sigCache Runtime.funcWrappers[sig];
        if (!
sigCache[func]) {
            if (
sig.length === 1) {
                
sigCache[func] = function dynCall_wrapper() {
                    return 
Runtime.dynCall(sigfunc)
                }
            } else if (
sig.length === 2) {
                
sigCache[func] = function dynCall_wrapper(arg) {
                    return 
Runtime.dynCall(sigfunc, [arg])
                }
            } else {
                
sigCache[func] = function dynCall_wrapper() {
                    return 
Runtime.dynCall(sigfunc, Array.prototype.slice.call(arguments))
                }
            }
        }
        return 
sigCache[func]
    }),
    
getCompilerSetting: (function(name) {
        throw 
"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"
    
}),
    
stackAlloc: (function(size) {
        var 
ret STACKTOP;
        
STACKTOP STACKTOP size 0;
        
STACKTOP STACKTOP 15 & -16;
        return 
ret
    
}),
    
staticAlloc: (function(size) {
        var 
ret STATICTOP;
        
STATICTOP STATICTOP size 0;
        
STATICTOP STATICTOP 15 & -16;
        return 
ret
    
}),
    
dynamicAlloc: (function(size) {
        var 
ret HEAP32[DYNAMICTOP_PTR >> 2];
        var 
end = (ret size 15 0) & -16;
        
HEAP32[DYNAMICTOP_PTR >> 2] = end;
        if (
end >= TOTAL_MEMORY) {
            var 
success enlargeMemory();
            if (!
success) {
                
HEAP32[DYNAMICTOP_PTR >> 2] = ret;
                return 
0
            
}
        }
        return 
ret
    
}),
    
alignMemory: (function(sizequantum) {
        var 
ret size Math.ceil(size / (quantum quantum 16)) * (quantum quantum 16);
        return 
ret
    
}),
    
makeBigInt: (function(lowhighunsigned) {
        var 
ret unsigned ? +(low >>> 0) + +(high >>> 0) * 4294967296 : +(low >>> 0) + +(high 0) * 4294967296;
        return 
ret
    
}),
    
GLOBAL_BASE1024,
    
QUANTUM_SIZE4,
    
__dummy__0
};
Module["Runtime"] = Runtime;
var 
ABORT 0;
var 
EXITSTATUS 0;

function 
assert(conditiontext) {
    if (!
condition) {
        
abort("Assertion failed: " text)
    }
}

function 
getCFunc(ident) {
    var 
func Module["_" ident];
    if (!
func) {
        try {
            
func = eval("_" ident)
        } catch (
e) {}
    }
    
assert(func"Cannot call unknown function " ident " (perhaps LLVM optimizations or closure removed it?)");
    return 
func
}
var 
cwrapccall;
((function() {
    var 
JSfuncs = {
        
"stackSave": (function() {
            
Runtime.stackSave()
        }),
        
"stackRestore": (function() {
            
Runtime.stackRestore()
        }),
        
"arrayToC": (function(arr) {
            var 
ret Runtime.stackAlloc(arr.length);
            
writeArrayToMemory(arrret);
            return 
ret
        
}),
        
"stringToC": (function(str) {
            var 
ret 0;
            if (
str !== null && str !== undefined && str !== 0) {
                var 
len = (str.length << 2) + 1;
                
ret Runtime.stackAlloc(len);
                
stringToUTF8(strretlen)
            }
            return 
ret
        
})
    };
    var 
toC = {
        
"string"JSfuncs["stringToC"],
        
"array"JSfuncs["arrayToC"]
    };
    
ccall = function ccallFunc(identreturnTypeargTypesargsopts) {
        var 
func getCFunc(ident);
        var 
cArgs = [];
        var 
stack 0;
        if (
args) {
            for (var 
0args.lengthi++) {
                var 
converter toC[argTypes[i]];
                if (
converter) {
                    if (
stack === 0stack Runtime.stackSave();
                    
cArgs[i] = converter(args[i])
                } else {
                    
cArgs[i] = args[i]
                }
            }
        }
        var 
ret func.apply(nullcArgs);
        if (
returnType === "string"ret Pointer_stringify(ret);
        if (
stack !== 0) {
            if (
opts && opts.async) {
                
EmterpreterAsync.asyncFinalizers.push((function() {
                    
Runtime.stackRestore(stack)
                }));
                return
            }
            
Runtime.stackRestore(stack)
        }
        return 
ret
    
};
    var 
sourceRegex = /^functions*[a-zA-Z$_0-9]*s*(([^)]*))s*{s*([^*]*?)[s;]*(?:returns*(.*?)[;s]*)?}$/;

    function 
parseJSFunc(jsfunc) {
        var 
parsed jsfunc.toString().match(sourceRegex).slice(1);
        return {
            
argumentsparsed[0],
            
bodyparsed[1],
            
returnValueparsed[2]
        }
    }
    var 
JSsource null;

    function 
ensureJSsource() {
        if (!
JSsource) {
            
JSsource = {};
            for (var 
fun in JSfuncs) {
                if (
JSfuncs.hasOwnProperty(fun)) {
                    
JSsource[fun] = parseJSFunc(JSfuncs[fun])
                }
            }
        }
    }
    
cwrap = function cwrap(identreturnTypeargTypes) {
        
argTypes argTypes || [];
        var 
cfunc getCFunc(ident);
        var 
numericArgs argTypes.every((function(type) {
            return 
type === "number"
        
}));
        var 
numericRet returnType !== "string";
        if (
numericRet && numericArgs) {
            return 
cfunc
        
}
        var 
argNames argTypes.map((function(xi) {
            return 
"$" i
        
}));
        var 
funcstr "(function(" argNames.join(",") + ") {";
        var 
nargs argTypes.length;
        if (!
numericArgs) {
            
ensureJSsource();
            
funcstr += "var stack = " JSsource["stackSave"].body ";";
            for (var 
0nargsi++) {
                var 
arg argNames[i],
                    
type argTypes[i];
                if (
type === "number") continue;
                var 
convertCode JSsource[type "ToC"];
                
funcstr += "var " convertCode.arguments " = " arg ";";
                
funcstr += convertCode.body ";";
                
funcstr += arg "=(" convertCode.returnValue ");"
            
}
        }
        var 
cfuncname parseJSFunc((function() {
            return 
cfunc
        
})).returnValue;
        
funcstr += "var ret = " cfuncname "(" argNames.join(",") + ");";
        if (!
numericRet) {
            var 
strgfy parseJSFunc((function() {
                return 
Pointer_stringify
            
})).returnValue;
            
funcstr += "ret = " strgfy "(ret);"
        
}
        if (!
numericArgs) {
            
ensureJSsource();
            
funcstr += JSsource["stackRestore"].body.replace("()""(stack)") + ";"
        
}
        
funcstr += "return ret})";
        return eval(
funcstr)
    }
}))();
Module["ccall"] = ccall;
Module["cwrap"] = cwrap;

function 
setValue(ptrvaluetypenoSafe) {
    
type type || "i8";
    if (
type.charAt(type.length 1) === "*"type "i32";
    switch (
type) {
        case 
"i1":
            
HEAP8[ptr >> 0] = value;
            break;
        case 
"i8":
            
HEAP8[ptr >> 0] = value;
            break;
        case 
"i16":
            
HEAP16[ptr >> 1] = value;
            break;
        case 
"i32":
            
HEAP32[ptr >> 2] = value;
            break;
        case 
"i64":
            
tempI64 = [value >>> 0, (tempDouble value, +Math_abs(tempDouble) >= tempDouble ? (Math_min(+Math_floor(tempDouble 4294967296), 4294967295) | 0) >>> : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr >> 2] = tempI64[1];
            break;
        case 
"float":
            
HEAPF32[ptr >> 2] = value;
            break;
        case 
"double":
            
HEAPF64[ptr >> 3] = value;
            break;
        default:
            
abort("invalid type for setValue: " type)
    }
}
Module["setValue"] = setValue;

function 
getValue(ptrtypenoSafe) {
    
type type || "i8";
    if (
type.charAt(type.length 1) === "*"type "i32";
    switch (
type) {
        case 
"i1":
            return 
HEAP8[ptr >> 0];
        case 
"i8":
            return 
HEAP8[ptr >> 0];
        case 
"i16":
            return 
HEAP16[ptr >> 1];
        case 
"i32":
            return 
HEAP32[ptr >> 2];
        case 
"i64":
            return 
HEAP32[ptr >> 2];
        case 
"float":
            return 
HEAPF32[ptr >> 2];
        case 
"double":
            return 
HEAPF64[ptr >> 3];
        default:
            
abort("invalid type for setValue: " type)
    }
    return 
null
}
Module["getValue"] = getValue;
var 
ALLOC_NORMAL 0;
var 
ALLOC_STACK 1;
var 
ALLOC_STATIC 2;
var 
ALLOC_DYNAMIC 3;
var 
ALLOC_NONE 4;
Module["ALLOC_NORMAL"] = ALLOC_NORMAL;
Module["ALLOC_STACK"] = ALLOC_STACK;
Module["ALLOC_STATIC"] = ALLOC_STATIC;
Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC;
Module["ALLOC_NONE"] = ALLOC_NONE;

function 
allocate(slabtypesallocatorptr) {
    var 
zeroinitsize;
    if (
typeof slab === "number") {
        
zeroinit true;
        
size slab
    
} else {
        
zeroinit false;
        
size slab.length
    
}
    var 
singleType typeof types === "string" types null;
    var 
ret;
    if (
allocator == ALLOC_NONE) {
        
ret ptr
    
} else {
        
ret = [typeof _malloc === "function" _malloc Runtime.staticAllocRuntime.stackAllocRuntime.staticAllocRuntime.dynamicAlloc][allocator === undefined ALLOC_STATIC allocator](Math.max(sizesingleType types.length))
    }
    if (
zeroinit) {
        var 
ptr ret,
            
stop;
        
assert((ret 3) == 0);
        
stop ret + (size & ~3);
        for (; 
ptr stopptr += 4) {
            
HEAP32[ptr >> 2] = 0
        
}
        
stop ret size;
        while (
ptr stop) {
            
HEAP8[ptr++ >> 0] = 0
        
}
        return 
ret
    
}
    if (
singleType === "i8") {
        if (
slab.subarray || slab.slice) {
            
HEAPU8.set(slabret)
        } else {
            
HEAPU8.set(new Uint8Array(slab), ret)
        }
        return 
ret
    
}
    var 
0,
        
typetypeSizepreviousType;
    while (
size) {
        var 
curr slab[i];
        if (
typeof curr === "function") {
            
curr Runtime.getFunctionIndex(curr)
        }
        
type singleType || types[i];
        if (
type === 0) {
            
i++;
            continue
        }
        if (
type == "i64"type "i32";
        
setValue(ret icurrtype);
        if (
previousType !== type) {
            
typeSize Runtime.getNativeTypeSize(type);
            
previousType type
        
}
        
+= typeSize
    
}
    return 
ret
}
Module["allocate"] = allocate;

function 
getMemory(size) {
    if (!
staticSealed) return Runtime.staticAlloc(size);
    if (!
runtimeInitialized) return Runtime.dynamicAlloc(size);
    return 
_malloc(size)
}
Module["getMemory"] = getMemory;

function 
Pointer_stringify(ptrlength) {
    if (
length === || !ptr) return "";
    var 
hasUtf 0;
    var 
t;
    var 
0;
    while (
1) {
        
HEAPU8[ptr >> 0];
        
hasUtf |= t;
        if (
== && !length) break;
        
i++;
        if (
length && == length) break
    }
    if (!
lengthlength i;
    var 
ret "";
    if (
hasUtf 128) {
        var 
MAX_CHUNK 1024;
        var 
curr;
        while (
length 0) {
            
curr String.fromCharCode.apply(StringHEAPU8.subarray(ptrptr Math.min(lengthMAX_CHUNK)));
            
ret ret ret curr curr;
            
ptr += MAX_CHUNK;
            
length -= MAX_CHUNK
        
}
        return 
ret
    
}
    return 
Module["UTF8ToString"](ptr)
}
Module["Pointer_stringify"] = Pointer_stringify;

function 
AsciiToString(ptr) {
    var 
str "";
    while (
1) {
        var 
ch HEAP8[ptr++ >> 0];
        if (!
ch) return str;
        
str += String.fromCharCode(ch)
    }
}
Module["AsciiToString"] = AsciiToString;

function 
stringToAscii(stroutPtr) {
    return 
writeAsciiToMemory(stroutPtrfalse)
}
Module["stringToAscii"] = stringToAscii;
var 
UTF8Decoder typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined;

function 
UTF8ArrayToString(u8Arrayidx) {
    var 
endPtr idx;
    while (
u8Array[endPtr]) ++endPtr;
    if (
endPtr idx 16 && u8Array.subarray && UTF8Decoder) {
        return 
UTF8Decoder.decode(u8Array.subarray(idxendPtr))
    } else {
        var 
u0u1u2u3u4u5;
        var 
str "";
        while (
1) {
            
u0 u8Array[idx++];
            if (!
u0) return str;
            if (!(
u0 128)) {
                
str += String.fromCharCode(u0);
                continue
            }
            
u1 u8Array[idx++] & 63;
            if ((
u0 224) == 192) {
                
str += String.fromCharCode((u0 31) << u1);
                continue
            }
            
u2 u8Array[idx++] & 63;
            if ((
u0 240) == 224) {
                
u0 = (u0 15) << 12 u1 << u2
            
} else {
                
u3 u8Array[idx++] & 63;
                if ((
u0 248) == 240) {
                    
u0 = (u0 7) << 18 u1 << 12 u2 << u3
                
} else {
                    
u4 u8Array[idx++] & 63;
                    if ((
u0 252) == 248) {
                        
u0 = (u0 3) << 24 u1 << 18 u2 << 12 u3 << u4
                    
} else {
                        
u5 u8Array[idx++] & 63;
                        
u0 = (u0 1) << 30 u1 << 24 u2 << 18 u3 << 12 u4 << u5
                    
}
                }
            }
            if (
u0 65536) {
                
str += String.fromCharCode(u0)
            } else {
                var 
ch u0 65536;
                
str += String.fromCharCode(55296 ch >> 1056320 ch 1023)
            }
        }
    }
}
Module["UTF8ArrayToString"] = UTF8ArrayToString;

function 
UTF8ToString(ptr) {
    return 
UTF8ArrayToString(HEAPU8ptr)
}
Module["UTF8ToString"] = UTF8ToString;

function 
stringToUTF8Array(stroutU8ArrayoutIdxmaxBytesToWrite) {
    if (!(
maxBytesToWrite 0)) return 0;
    var 
startIdx outIdx;
    var 
endIdx outIdx maxBytesToWrite 1;
    for (var 
0str.length; ++i) {
        var 
str.charCodeAt(i);
        if (
>= 55296 && <= 5734365536 + ((1023) << 10) | str.charCodeAt(++i) & 1023;
        if (
<= 127) {
            if (
outIdx >= endIdx) break;
            
outU8Array[outIdx++] = u
        
} else if (<= 2047) {
            if (
outIdx >= endIdx) break;
            
outU8Array[outIdx++] = 192 >> 6;
            
outU8Array[outIdx++] = 128 63
        
} else if (<= 65535) {
            if (
outIdx >= endIdx) break;
            
outU8Array[outIdx++] = 224 >> 12;
            
outU8Array[outIdx++] = 128 >> 63;
            
outU8Array[outIdx++] = 128 63
        
} else if (<= 2097151) {
            if (
outIdx >= endIdx) break;
            
outU8Array[outIdx++] = 240 >> 18;
            
outU8Array[outIdx++] = 128 >> 12 63;
            
outU8Array[outIdx++] = 128 >> 63;
            
outU8Array[outIdx++] = 128 63
        
} else if (<= 67108863) {
            if (
outIdx >= endIdx) break;
            
outU8Array[outIdx++] = 248 >> 24;
            
outU8Array[outIdx++] = 128 >> 18 63;
            
outU8Array[outIdx++] = 128 >> 12 63;
            
outU8Array[outIdx++] = 128 >> 63;
            
outU8Array[outIdx++] = 128 63
        
} else {
            if (
outIdx >= endIdx) break;
            
outU8Array[outIdx++] = 252 >> 30;
            
outU8Array[outIdx++] = 128 >> 24 63;
            
outU8Array[outIdx++] = 128 >> 18 63;
            
outU8Array[outIdx++] = 128 >> 12 63;
            
outU8Array[outIdx++] = 128 >> 63;
            
outU8Array[outIdx++] = 128 63
        
}
    }
    
outU8Array[outIdx] = 0;
    return 
outIdx startIdx
}
Module["stringToUTF8Array"] = stringToUTF8Array;

function 
stringToUTF8(stroutPtrmaxBytesToWrite) {
    return 
stringToUTF8Array(strHEAPU8outPtrmaxBytesToWrite)
}
Module["stringToUTF8"] = stringToUTF8;

function 
lengthBytesUTF8(str) {
    var 
len 0;
    for (var 
0str.length; ++i) {
        var 
str.charCodeAt(i);
        if (
>= 55296 && <= 5734365536 + ((1023) << 10) | str.charCodeAt(++i) & 1023;
        if (
<= 127) {
            ++
len
        
} else if (<= 2047) {
            
len += 2
        
} else if (<= 65535) {
            
len += 3
        
} else if (<= 2097151) {
            
len += 4
        
} else if (<= 67108863) {
            
len += 5
        
} else {
            
len += 6
        
}
    }
    return 
len
}
Module["lengthBytesUTF8"] = lengthBytesUTF8;
var 
UTF16Decoder typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : undefined;

function 
demangle(func) {
    var 
__cxa_demangle_func Module["___cxa_demangle"] || Module["__cxa_demangle"];
    if (
__cxa_demangle_func) {
        try {
            var 
func.substr(1);
            var 
len lengthBytesUTF8(s) + 1;
            var 
buf _malloc(len);
            
stringToUTF8(sbuflen);
            var 
status _malloc(4);
            var 
ret __cxa_demangle_func(buf00status);
            if (
getValue(status"i32") === && ret) {
                return 
Pointer_stringify(ret)
            }
        } catch (
e) {} finally {
            if (
buf_free(buf);
            if (
status_free(status);
            if (
ret_free(ret)
        }
        return 
func
    
}
    
Runtime.warnOnce("warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling");
    return 
func
}

function 
demangleAll(text) {
    var 
regex = /__Z[wd_]+/g;
    return 
text.replace(regex, (function(x) {
        var 
demangle(x);
        return 
=== " [" "]"
    
}))
}

function 
jsStackTrace() {
    var 
err = new Error;
    if (!
err.stack) {
        try {
            throw new 
Error(0)
        } catch (
e) {
            
err e
        
}
        if (!
err.stack) {
            return 
"(no stack trace available)"
        
}
    }
    return 
err.stack.toString()
}

function 
stackTrace() {
    var 
js jsStackTrace();
    if (
Module["extraStackTrace"]) js += "n" Module["extraStackTrace"]();
    return 
demangleAll(js)
}
Module["stackTrace"] = stackTrace;
var 
WASM_PAGE_SIZE 65536;
var 
ASMJS_PAGE_SIZE 16777216;

function 
alignUp(xmultiple) {
    if (
multiple 0) {
        
+= multiple multiple
    
}
    return 
x
}
var 
HEAPbufferHEAP8HEAPU8HEAP16HEAPU16HEAP32HEAPU32HEAPF32HEAPF64;

function 
updateGlobalBuffer(buf) {
    
Module["buffer"] = buffer buf
}

function 
updateGlobalBufferViews() {
    
Module["HEAP8"] = HEAP8 = new Int8Array(buffer);
    
Module["HEAP16"] = HEAP16 = new Int16Array(buffer);
    
Module["HEAP32"] = HEAP32 = new Int32Array(buffer);
    
Module["HEAPU8"] = HEAPU8 = new Uint8Array(buffer);
    
Module["HEAPU16"] = HEAPU16 = new Uint16Array(buffer);
    
Module["HEAPU32"] = HEAPU32 = new Uint32Array(buffer);
    
Module["HEAPF32"] = HEAPF32 = new Float32Array(buffer);
    
Module["HEAPF64"] = HEAPF64 = new Float64Array(buffer)
}
var 
STATIC_BASESTATICTOPstaticSealed;
var 
STACK_BASESTACKTOPSTACK_MAX;
var 
DYNAMIC_BASEDYNAMICTOP_PTR;
STATIC_BASE STATICTOP STACK_BASE STACKTOP STACK_MAX DYNAMIC_BASE DYNAMICTOP_PTR 0;
staticSealed false;

function 
abortOnCannotGrowMemory() {
    
abort("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value " TOTAL_MEMORY ", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ")
}

function 
enlargeMemory() {
    
abortOnCannotGrowMemory()
}
var 
TOTAL_STACK Module["TOTAL_STACK"] || 5242880;
var 
TOTAL_MEMORY Module["TOTAL_MEMORY"] || 67108864;
if (
TOTAL_MEMORY TOTAL_STACKModule.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was " TOTAL_MEMORY "! (TOTAL_STACK=" TOTAL_STACK ")");
if (
Module["buffer"]) {
    
buffer Module["buffer"]
} else {
    if (
typeof WebAssembly === "object" && typeof WebAssembly.Memory === "function") {
        
Module["wasmMemory"] = new WebAssembly.Memory({
            
"initial"TOTAL_MEMORY WASM_PAGE_SIZE,
            
"maximum"TOTAL_MEMORY WASM_PAGE_SIZE
        
});
        
buffer Module["wasmMemory"].buffer
    
} else {
        
buffer = new ArrayBuffer(TOTAL_MEMORY)
    }
}
updateGlobalBufferViews();

function 
getTotalMemory() {
    return 
TOTAL_MEMORY
}
HEAP32[0] = 1668509029;
HEAP16[1] = 25459;
if (
HEAPU8[2] !== 115 || HEAPU8[3] !== 99) throw "Runtime error: expected the system to be little-endian!";
Module["HEAP"] = HEAP;
Module["buffer"] = buffer;
Module["HEAP8"] = HEAP8;
Module["HEAP16"] = HEAP16;
Module["HEAP32"] = HEAP32;
Module["HEAPU8"] = HEAPU8;
Module["HEAPU16"] = HEAPU16;
Module["HEAPU32"] = HEAPU32;
Module["HEAPF32"] = HEAPF32;
Module["HEAPF64"] = HEAPF64;

function 
callRuntimeCallbacks(callbacks) {
    while (
callbacks.length 0) {
        var 
callback callbacks.shift();
        if (
typeof callback == "function") {
            
callback();
            continue
        }
        var 
func callback.func;
        if (
typeof func === "number") {
            if (
callback.arg === undefined) {
                
Module["dynCall_v"](func)
            } else {
                
Module["dynCall_vi"](funccallback.arg)
            }
        } else {
            
func(callback.arg === undefined null callback.arg)
        }
    }
}
var 
__ATPRERUN__ = [];
var 
__ATINIT__ = [];
var 
__ATMAIN__ = [];
var 
__ATEXIT__ = [];
var 
__ATPOSTRUN__ = [];
var 
runtimeInitialized false;
var 
runtimeExited false;

function 
preRun() {
    if (
Module["preRun"]) {
        if (
typeof Module["preRun"] == "function"Module["preRun"] = [Module["preRun"]];
        while (
Module["preRun"].length) {
            
addOnPreRun(Module["preRun"].shift())
        }
    }
    
callRuntimeCallbacks(__ATPRERUN__)
}

function 
ensureInitRuntime() {
    if (
runtimeInitialized) return;
    
runtimeInitialized true;
    
callRuntimeCallbacks(__ATINIT__)
}

function 
preMain() {
    
callRuntimeCallbacks(__ATMAIN__)
}

function 
exitRuntime() {
    
callRuntimeCallbacks(__ATEXIT__);
    
runtimeExited true
}

function 
postRun() {
    if (
Module["postRun"]) {
        if (
typeof Module["postRun"] == "function"Module["postRun"] = [Module["postRun"]];
        while (
Module["postRun"].length) {
            
addOnPostRun(Module["postRun"].shift())
        }
    }
    
callRuntimeCallbacks(__ATPOSTRUN__)
}

function 
addOnPreRun(cb) {
    
__ATPRERUN__.unshift(cb)
}
Module["addOnPreRun"] = addOnPreRun;

function 
addOnInit(cb) {
    
__ATINIT__.unshift(cb)
}
Module["addOnInit"] = addOnInit;

function 
addOnPreMain(cb) {
    
__ATMAIN__.unshift(cb)
}
Module["addOnPreMain"] = addOnPreMain;

function 
addOnExit(cb) {
    
__ATEXIT__.unshift(cb)
}
Module["addOnExit"] = addOnExit;

function 
addOnPostRun(cb) {
    
__ATPOSTRUN__.unshift(cb)
}
Module["addOnPostRun"] = addOnPostRun;

function 
intArrayFromString(stringydontAddNulllength) {
    var 
len length length lengthBytesUTF8(stringy) + 1;
    var 
u8array = new Array(len);
    var 
numBytesWritten stringToUTF8Array(stringyu8array0u8array.length);
    if (
dontAddNullu8array.length numBytesWritten;
    return 
u8array
}
Module["intArrayFromString"] = intArrayFromString;

function 
intArrayToString(array) {
    var 
ret = [];
    for (var 
0< array.lengthi++) {
        var 
chr = array[i];
        if (
chr 255) {
            
chr &= 255
        
}
        
ret.push(String.fromCharCode(chr))
    }
    return 
ret.join("")
}
Module["intArrayToString"] = intArrayToString;

function 
writeStringToMemory(stringbufferdontAddNull) {
    
Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");
    var 
lastCharend;
    if (
dontAddNull) {
        
end buffer lengthBytesUTF8(string);
        
lastChar HEAP8[end]
    }
    
stringToUTF8(stringbufferInfinity);
    if (
dontAddNullHEAP8[end] = lastChar
}
Module["writeStringToMemory"] = writeStringToMemory;

function 
writeArrayToMemory(array, buffer) {
    
HEAP8.set(array, buffer)
}
Module["writeArrayToMemory"] = writeArrayToMemory;

function 
writeAsciiToMemory(strbufferdontAddNull) {
    for (var 
0str.length; ++i) {
        
HEAP8[buffer++ >> 0] = str.charCodeAt(i)
    }
    if (!
dontAddNullHEAP8[buffer >> 0] = 0
}
Module["writeAsciiToMemory"] = writeAsciiToMemory;
if (!
Math["imul"] || Math["imul"](42949672955) !== -5Math["imul"] = function imul(ab) {
    var 
ah >>> 16;
    var 
al 65535;
    var 
bh >>> 16;
    var 
bl 65535;
    return 
al bl + (ah bl al bh << 16) | 0
};
Math.imul Math["imul"];
if (!
Math["fround"]) {
    var 
froundBuffer = new Float32Array(1);
    
Math["fround"] = (function(x) {
        
froundBuffer[0] = x;
        return 
froundBuffer[0]
    })
}
Math.fround Math["fround"];
if (!
Math["clz32"]) Math["clz32"] = (function(x) {
    
>>> 0;
    for (var 
032i++) {
        if (
<< 31 i) return i
    
}
    return 
32
});
Math.clz32 Math["clz32"];
if (!
Math["trunc"]) Math["trunc"] = (function(x) {
    return 
Math.ceil(x) : Math.floor(x)
});
Math.trunc Math["trunc"];
var 
Math_abs Math.abs;
var 
Math_cos Math.cos;
var 
Math_sin Math.sin;
var 
Math_tan Math.tan;
var 
Math_acos Math.acos;
var 
Math_asin Math.asin;
var 
Math_atan Math.atan;
var 
Math_atan2 Math.atan2;
var 
Math_exp Math.exp;
var 
Math_log Math.log;
var 
Math_sqrt Math.sqrt;
var 
Math_ceil Math.ceil;
var 
Math_floor Math.floor;
var 
Math_pow Math.pow;
var 
Math_imul Math.imul;
var 
Math_fround Math.fround;
var 
Math_round Math.round;
var 
Math_min Math.min;
var 
Math_clz32 Math.clz32;
var 
Math_trunc Math.trunc;
var 
runDependencies 0;
var 
runDependencyWatcher null;
var 
dependenciesFulfilled null;

function 
addRunDependency(id) {
    
runDependencies++;
    if (
Module["monitorRunDependencies"]) {
        
Module["monitorRunDependencies"](runDependencies)
    }
}
Module["addRunDependency"] = addRunDependency;

function 
removeRunDependency(id) {
    
runDependencies--;
    if (
Module["monitorRunDependencies"]) {
        
Module["monitorRunDependencies"](runDependencies)
    }
    if (
runDependencies == 0) {
        if (
runDependencyWatcher !== null) {
            
clearInterval(runDependencyWatcher);
            
runDependencyWatcher null
        
}
        if (
dependenciesFulfilled) {
            var 
callback dependenciesFulfilled;
            
dependenciesFulfilled null;
            
callback()
        }
    }
}
Module["removeRunDependency"] = removeRunDependency;
Module["preloadedImages"] = {};
Module["preloadedAudios"] = {};
var 
memoryInitializer null;

function 
integrateWasmJS(Module) {
    var 
method Module["wasmJSMethod"] || "native-wasm";
    
Module["wasmJSMethod"] = method;
    var 
wasmTextFile Module["wasmTextFile"] || "opus.wasm.wast";
    var 
wasmBinaryFile Module["wasmBinaryFile"] || self["cr_opusWasmBinaryUrl"] || "opus.wasm.wasm";
    var 
asmjsCodeFile Module["asmjsCodeFile"] || "opus.wasm.temp.asm.js";
    if (
typeof Module["locateFile"] === "function") {
        
wasmTextFile Module["locateFile"](wasmTextFile);
        
wasmBinaryFile Module["locateFile"](wasmBinaryFile);
        
asmjsCodeFile Module["locateFile"](asmjsCodeFile)
    }
    var 
wasmPageSize 64 1024;
    var 
asm2wasmImports = {
        
"f64-rem": (function(xy) {
            return 
y
        
}),
        
"f64-to-int": (function(x) {
            return 
0
        
}),
        
"i32s-div": (function(xy) {
            return (
0) / (0) | 0
        
}),
        
"i32u-div": (function(xy) {
            return (
>>> 0) / (>>> 0) >>> 0
        
}),
        
"i32s-rem": (function(xy) {
            return (
0) % (0) | 0
        
}),
        
"i32u-rem": (function(xy) {
            return (
>>> 0) % (>>> 0) >>> 0
        
}),
        
"debugger": (function() {
            
debugger
        
})
    };
    var 
info = {
        
"global"null,
        
"env"null,
        
"asm2wasm"asm2wasmImports,
        
"parent"Module
    
};
    var 
exports null;

    function 
lookupImport(modbase) {
        var 
lookup info;
        if (
mod.indexOf(".") < 0) {
            
lookup = (lookup || {})[mod]
        } else {
            var 
parts mod.split(".");
            
lookup = (lookup || {})[parts[0]];
            
lookup = (lookup || {})[parts[1]]
        }
        if (
base) {
            
lookup = (lookup || {})[base]
        }
        if (
lookup === undefined) {
            
abort("bad lookupImport to (" mod ")." base)
        }
        return 
lookup
    
}

    function 
mergeMemory(newBuffer) {
        var 
oldBuffer Module["buffer"];
        if (
newBuffer.byteLength oldBuffer.byteLength) {
            
Module["printErr"]("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here")
        }
        var 
oldView = new Int8Array(oldBuffer);
        var 
newView = new Int8Array(newBuffer);
        if (!
memoryInitializer) {
            
oldView.set(newView.subarray(Module["STATIC_BASE"], Module["STATIC_BASE"] + Module["STATIC_BUMP"]), Module["STATIC_BASE"])
        }
        
newView.set(oldView);
        
updateGlobalBuffer(newBuffer);
        
updateGlobalBufferViews()
    }
    var 
WasmTypes = {
        
none0,
        
i321,
        
i642,
        
f323,
        
f644
    
};

    function 
fixImports(imports) {
        if (!
0) return imports;
        var 
ret = {};
        for (var 
i in imports) {
            var 
fixed i;
            if (
fixed[0] == "_"fixed fixed.substr(1);
            
ret[fixed] = imports[i]
        }
        return 
ret
    
}

    function 
getBinary() {
        try {
            var 
binary;
            if (
Module["wasmBinary"]) {
                
binary Module["wasmBinary"];
                
binary = new Uint8Array(binary)
            } else if (
Module["readBinary"]) {
                
binary Module["readBinary"](wasmBinaryFile)
            } else {
                throw 
"on the web, we need the wasm binary to be preloaded and set on Module['wasmBinary']. emcc.py will do that for you when generating HTML (but not JS)"
            
}
            return 
binary
        
} catch (err) {
            
abort(err)
        }
    }

    function 
getBinaryPromise() {
        return new 
Promise((resolvereject) =>
        {
            const 
buffer self.sentBuffers.get("opus-decoder-wasm");
            if (
buffer)
                return 
resolve(new Uint8Array(buffer));
                
            const 
blob self.sentBlobs.get("opus-decoder-wasm");
            if (!
blob)
                return 
reject("not yet received opus blob");
            
            const 
fileReader = new FileReader();
            
fileReader.onload = () => resolve(new Uint8Array(fileReader["result"]));
            
fileReader.onerror = () => reject(fileReader["error"]);
            
fileReader.readAsArrayBuffer(blob);
        });
    }

    function 
doJustAsm(global, envprovidedBuffer) {
        if (
typeof Module["asm"] !== "function" || Module["asm"] === methodHandler) {
            if (!
Module["asmPreload"]) {
                eval(
Module["read"](asmjsCodeFile))
            } else {
                
Module["asm"] = Module["asmPreload"]
            }
        }
        if (
typeof Module["asm"] !== "function") {
            
Module["printErr"]("asm evalling did not set the module properly");
            return 
false
        
}
        return 
Module["asm"](global, envprovidedBuffer)
    }

    function 
doNativeWasm(global, envprovidedBuffer) {
        if (
typeof WebAssembly !== "object") {
            
Module["printErr"]("no native wasm support detected");
            return 
false
        
}
        if (!(
Module["wasmMemory"] instanceof WebAssembly.Memory)) {
            
Module["printErr"]("no native wasm Memory in use");
            return 
false
        
}
        
env["memory"] = Module["wasmMemory"];
        
info["global"] = {
            
"NaN"NaN,
            
"Infinity"Infinity
        
};
        
info["global.Math"] = global.Math;
        
info["env"] = env;

        function 
receiveInstance(instance) {
            
exports instance.exports;
            if (
exports.memorymergeMemory(exports.memory);
            
Module["asm"] = exports;
            
Module["usingWasm"] = true;
            
removeRunDependency("wasm-instantiate")
        }
        
addRunDependency("wasm-instantiate");
        if (
Module["instantiateWasm"]) {
            try {
                return 
Module["instantiateWasm"](inforeceiveInstance)
            } catch (
e) {
                
Module["printErr"]("Module.instantiateWasm callback failed with error: " e);
                return 
false
            
}
        }
        
getBinaryPromise().then((function(binary) {
            return 
WebAssembly.instantiate(binaryinfo)
        })).
then((function(output) {
            
receiveInstance(output["instance"])
        })).catch((function(
reason) {
            
Module["printErr"]("failed to asynchronously prepare wasm: " reason);
            
abort(reason)
        }));
        return {}
    }

    function 
doWasmPolyfill(global, envprovidedBuffermethod) {
        if (
typeof WasmJS !== "function") {
            
Module["printErr"]("WasmJS not detected - polyfill not bundled?");
            return 
false
        
}
        var 
wasmJS WasmJS({});
        
wasmJS["outside"] = Module;
        
wasmJS["info"] = info;
        
wasmJS["lookupImport"] = lookupImport;
        
assert(providedBuffer === Module["buffer"]);
        
info.global = global;
        
info.env env;
        
assert(providedBuffer === Module["buffer"]);
        
env["memory"] = providedBuffer;
        
assert(env["memory"] instanceof ArrayBuffer);
        
wasmJS["providedTotalMemory"] = Module["buffer"].byteLength;
        var 
code;
        if (
method === "interpret-binary") {
            
code getBinary()
        } else {
            
code Module["read"](method == "interpret-asm2wasm" asmjsCodeFile wasmTextFile)
        }
        var 
temp;
        if (
method == "interpret-asm2wasm") {
            
temp wasmJS["_malloc"](code.length 1);
            
wasmJS["writeAsciiToMemory"](codetemp);
            
wasmJS["_load_asm2wasm"](temp)
        } else if (
method === "interpret-s-expr") {
            
temp wasmJS["_malloc"](code.length 1);
            
wasmJS["writeAsciiToMemory"](codetemp);
            
wasmJS["_load_s_expr2wasm"](temp)
        } else if (
method === "interpret-binary") {
            
temp wasmJS["_malloc"](code.length);
            
wasmJS["HEAPU8"].set(codetemp);
            
wasmJS["_load_binary2wasm"](tempcode.length)
        } else {
            throw 
"what? " method
        
}
        
wasmJS["_free"](temp);
        
wasmJS["_instantiate"](temp);
        if (
Module["newBuffer"]) {
            
mergeMemory(Module["newBuffer"]);
            
Module["newBuffer"] = null
        
}
        
exports wasmJS["asmExports"];
        return 
exports
    
}
    
Module["asmPreload"] = Module["asm"];
    var 
asmjsReallocBuffer Module["reallocBuffer"];
    var 
wasmReallocBuffer = (function(size) {
        var 
PAGE_MULTIPLE Module["usingWasm"] ? WASM_PAGE_SIZE ASMJS_PAGE_SIZE;
        
size alignUp(sizePAGE_MULTIPLE);
        var 
old Module["buffer"];
        var 
oldSize old.byteLength;
        if (
Module["usingWasm"]) {
            try {
                var 
result Module["wasmMemory"].grow((size oldSize) / wasmPageSize);
                if (
result !== (-0)) {
                    return 
Module["buffer"] = Module["wasmMemory"].buffer
                
} else {
                    return 
null
                
}
            } catch (
e) {
                return 
null
            
}
        } else {
            
exports["__growWasmMemory"]((size oldSize) / wasmPageSize);
            return 
Module["buffer"] !== old Module["buffer"] : null
        
}
    });
    
Module["reallocBuffer"] = (function(size) {
        if (
finalMethod === "asmjs") {
            return 
asmjsReallocBuffer(size)
        } else {
            return 
wasmReallocBuffer(size)
        }
    });
    var 
finalMethod "";
    
Module["asm"] = (function(global, envprovidedBuffer) {
        global = 
fixImports(global);
        
env fixImports(env);
        if (!
env["table"]) {
            var 
TABLE_SIZE Module["wasmTableSize"];
            if (
TABLE_SIZE === undefinedTABLE_SIZE 1024;
            var 
MAX_TABLE_SIZE Module["wasmMaxTableSize"];
            if (
typeof WebAssembly === "object" && typeof WebAssembly.Table === "function") {
                if (
MAX_TABLE_SIZE !== undefined) {
                    
env["table"] = new WebAssembly.Table({
                        
"initial"TABLE_SIZE,
                        
"maximum"MAX_TABLE_SIZE,
                        
"element""anyfunc"
                    
})
                } else {
                    
env["table"] = new WebAssembly.Table({
                        
"initial"TABLE_SIZE,
                        
element"anyfunc"
                    
})
                }
            } else {
                
env["table"] = new Array(TABLE_SIZE)
            }
            
Module["wasmTable"] = env["table"]
        }
        if (!
env["memoryBase"]) {
            
env["memoryBase"] = Module["STATIC_BASE"]
        }
        if (!
env["tableBase"]) {
            
env["tableBase"] = 0
        
}
        var 
exports;
        var 
methods method.split(",");
        for (var 
0methods.lengthi++) {
            var 
curr methods[i];
            
finalMethod curr;
            if (
curr === "native-wasm") {
                if (
exports doNativeWasm(global, envprovidedBuffer)) break
            } else if (
curr === "asmjs") {
                if (
exports doJustAsm(global, envprovidedBuffer)) break
            } else if (
curr === "interpret-asm2wasm" || curr === "interpret-s-expr" || curr === "interpret-binary") {
                if (
exports doWasmPolyfill(global, envprovidedBuffercurr)) break
            } else {
                
abort("bad method: " curr)
            }
        }
        if (!
exports) throw "no binaryen method succeeded. consider enabling more options, like interpreting, if you want that: https://github.com/kripken/emscripten/wiki/WebAssembly#binaryen-methods";
        return 
exports
    
});
    var 
methodHandler Module["asm"]
}
integrateWasmJS(Module);
var 
ASM_CONSTS = [];
STATIC_BASE Runtime.GLOBAL_BASE;
STATICTOP STATIC_BASE 28816;
__ATINIT__.push();
memoryInitializer Module["wasmJSMethod"].indexOf("asmjs") >= || Module["wasmJSMethod"].indexOf("interpret-asm2wasm") >= "opus.wasm.js.mem" null;
var 
STATIC_BUMP 28816;
Module["STATIC_BASE"] = STATIC_BASE;
Module["STATIC_BUMP"] = STATIC_BUMP;
var 
tempDoublePtr STATICTOP;
STATICTOP += 16;

function 
_llvm_stackrestore(p) {
    var 
self _llvm_stacksave;
    var 
ret self.LLVM_SAVEDSTACKS[p];
    
self.LLVM_SAVEDSTACKS.splice(p1);
    
Runtime.stackRestore(ret)
}

function 
___setErrNo(value) {
    if (
Module["___errno_location"]) HEAP32[Module["___errno_location"]() >> 2] = value;
    return 
value
}
Module["_sbrk"] = _sbrk;
Module["_memset"] = _memset;

function 
_emscripten_memcpy_big(destsrcnum) {
    
HEAPU8.set(HEAPU8.subarray(srcsrc num), dest);
    return 
dest
}
Module["_memcpy"] = _memcpy;
Module["_memmove"] = _memmove;

function 
_llvm_stacksave() {
    var 
self _llvm_stacksave;
    if (!
self.LLVM_SAVEDSTACKS) {
        
self.LLVM_SAVEDSTACKS = []
    }
    
self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());
    return 
self.LLVM_SAVEDSTACKS.length 1
}
DYNAMICTOP_PTR allocate(1"i32"ALLOC_STATIC);
STACK_BASE STACKTOP Runtime.alignMemory(STATICTOP);
STACK_MAX STACK_BASE TOTAL_STACK;
DYNAMIC_BASE Runtime.alignMemory(STACK_MAX);
HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;
staticSealed true;
Module["wasmTableSize"] = 0;
Module["wasmMaxTableSize"] = 0;
Module.asmGlobalArg = {
    
"Math"Math,
    
"Int8Array"Int8Array,
    
"Int16Array"Int16Array,
    
"Int32Array"Int32Array,
    
"Uint8Array"Uint8Array,
    
"Uint16Array"Uint16Array,
    
"Uint32Array"Uint32Array,
    
"Float32Array"Float32Array,
    
"Float64Array"Float64Array,
    
"NaN"NaN,
    
"Infinity"Infinity
};
Module.asmLibraryArg = {
    
"abort"abort,
    
"assert"assert,
    
"enlargeMemory"enlargeMemory,
    
"getTotalMemory"getTotalMemory,
    
"abortOnCannotGrowMemory"abortOnCannotGrowMemory,
    
"_llvm_stackrestore"_llvm_stackrestore,
    
"_llvm_stacksave"_llvm_stacksave,
    
"_emscripten_memcpy_big"_emscripten_memcpy_big,
    
"___setErrNo"___setErrNo,
    
"DYNAMICTOP_PTR"DYNAMICTOP_PTR,
    
"tempDoublePtr"tempDoublePtr,
    
"ABORT"ABORT,
    
"STACKTOP"STACKTOP,
    
"STACK_MAX"STACK_MAX
};
var 
asm Module["asm"](Module.asmGlobalArgModule.asmLibraryArgbuffer);
Module["asm"] = asm;
var 
_malloc Module["_malloc"] = (function() {
    return 
Module["asm"]["_malloc"].apply(nullarguments)
});
var 
_destroy_decoder Module["_destroy_decoder"] = (function() {
    return 
Module["asm"]["_destroy_decoder"].apply(nullarguments)
});
var 
getTempRet0 Module["getTempRet0"] = (function() {
    return 
Module["asm"]["getTempRet0"].apply(nullarguments)
});
var 
_free Module["_free"] = (function() {
    return 
Module["asm"]["_free"].apply(nullarguments)
});
var 
runPostSets Module["runPostSets"] = (function() {
    return 
Module["asm"]["runPostSets"].apply(nullarguments)
});
var 
setTempRet0 Module["setTempRet0"] = (function() {
    return 
Module["asm"]["setTempRet0"].apply(nullarguments)
});
var 
establishStackSpace Module["establishStackSpace"] = (function() {
    return 
Module["asm"]["establishStackSpace"].apply(nullarguments)
});
var 
_memmove Module["_memmove"] = (function() {
    return 
Module["asm"]["_memmove"].apply(nullarguments)
});
var 
_decode_frame Module["_decode_frame"] = (function() {
    return 
Module["asm"]["_decode_frame"].apply(nullarguments)
});
var 
stackSave Module["stackSave"] = (function() {
    return 
Module["asm"]["stackSave"].apply(nullarguments)
});
var 
_memset Module["_memset"] = (function() {
    return 
Module["asm"]["_memset"].apply(nullarguments)
});
var 
_sbrk Module["_sbrk"] = (function() {
    return 
Module["asm"]["_sbrk"].apply(nullarguments)
});
var 
_emscripten_get_global_libc Module["_emscripten_get_global_libc"] = (function() {
    return 
Module["asm"]["_emscripten_get_global_libc"].apply(nullarguments)
});
var 
_memcpy Module["_memcpy"] = (function() {
    return 
Module["asm"]["_memcpy"].apply(nullarguments)
});
var 
_create_decoder Module["_create_decoder"] = (function() {
    return 
Module["asm"]["_create_decoder"].apply(nullarguments)
});
var 
setThrew Module["setThrew"] = (function() {
    return 
Module["asm"]["setThrew"].apply(nullarguments)
});
var 
stackRestore Module["stackRestore"] = (function() {
    return 
Module["asm"]["stackRestore"].apply(nullarguments)
});
var 
___errno_location Module["___errno_location"] = (function() {
    return 
Module["asm"]["___errno_location"].apply(nullarguments)
});
var 
stackAlloc Module["stackAlloc"] = (function() {
    return 
Module["asm"]["stackAlloc"].apply(nullarguments)
});
Runtime.stackAlloc Module["stackAlloc"];
Runtime.stackSave Module["stackSave"];
Runtime.stackRestore Module["stackRestore"];
Runtime.establishStackSpace Module["establishStackSpace"];
Runtime.setTempRet0 Module["setTempRet0"];
Runtime.getTempRet0 Module["getTempRet0"];
Module["asm"] = asm;
if (
memoryInitializer) {
    if (
typeof Module["locateFile"] === "function") {
        
memoryInitializer Module["locateFile"](memoryInitializer)
    } else if (
Module["memoryInitializerPrefixURL"]) {
        
memoryInitializer Module["memoryInitializerPrefixURL"] + memoryInitializer
    
}
    if (
ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
        var 
data Module["readBinary"](memoryInitializer);
        
HEAPU8.set(dataRuntime.GLOBAL_BASE)
    } else {
        
addRunDependency("memory initializer");
        var 
applyMemoryInitializer = (function(data) {
            if (
data.byteLengthdata = new Uint8Array(data);
            
HEAPU8.set(dataRuntime.GLOBAL_BASE);
            if (
Module["memoryInitializerRequest"]) delete Module["memoryInitializerRequest"].response;
            
removeRunDependency("memory initializer")
        });

        function 
doBrowserLoad() {
            
Module["readAsync"](memoryInitializerapplyMemoryInitializer, (function() {
                throw 
"could not load memory initializer " memoryInitializer
            
}))
        }
        if (
Module["memoryInitializerRequest"]) {
            function 
useRequest() {
                var 
request Module["memoryInitializerRequest"];
                if (
request.status !== 200 && request.status !== 0) {
                    
console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: " request.status ", retrying " memoryInitializer);
                    
doBrowserLoad();
                    return
                }
                
applyMemoryInitializer(request.response)
            }
            if (
Module["memoryInitializerRequest"].response) {
                
setTimeout(useRequest0)
            } else {
                
Module["memoryInitializerRequest"].addEventListener("load"useRequest)
            }
        } else {
            
doBrowserLoad()
        }
    }
}

function 
ExitStatus(status) {
    
this.name "ExitStatus";
    
this.message "Program terminated with exit(" status ")";
    
this.status status
}
ExitStatus.prototype = new Error;
ExitStatus.prototype.constructor ExitStatus;
var 
initialStackTop;
var 
preloadStartTime null;
var 
calledMain false;
dependenciesFulfilled = function runCaller() {
    if (!
Module["calledRun"]) run();
    if (!
Module["calledRun"]) dependenciesFulfilled runCaller
};
Module["callMain"] = Module.callMain = function callMain(args) {
    
args args || [];
    
ensureInitRuntime();
    var 
argc args.length 1;

    function 
pad() {
        for (var 
01i++) {
            
argv.push(0)
        }
    }
    var 
argv = [allocate(intArrayFromString(Module["thisProgram"]), "i8"ALLOC_NORMAL)];
    
pad();
    for (var 
0argc 11) {
        
argv.push(allocate(intArrayFromString(args[i]), "i8"ALLOC_NORMAL));
        
pad()
    }
    
argv.push(0);
    
argv allocate(argv"i32"ALLOC_NORMAL);
    try {
        var 
ret Module["_main"](argcargv0);
        exit(
rettrue)
    } catch (
e) {
        if (
instanceof ExitStatus) {
            return
        } else if (
== "SimulateInfiniteLoop") {
            
Module["noExitRuntime"] = true;
            return
        } else {
            var 
toLog e;
            if (
&& typeof e === "object" && e.stack) {
                
toLog = [ee.stack]
            }
            
Module.printErr("exception thrown: " toLog);
            
Module["quit"](1e)
        }
    } finally {
        
calledMain true
    
}
};

function 
run(args) {
    
args args || Module["arguments"];
    if (
preloadStartTime === nullpreloadStartTime Date.now();
    if (
runDependencies 0) {
        return
    }
    
preRun();
    if (
runDependencies 0) return;
    if (
Module["calledRun"]) return;

    function 
doRun() {
        if (
Module["calledRun"]) return;
        
Module["calledRun"] = true;
        if (
ABORT) return;
        
ensureInitRuntime();
        
preMain();
        if (
Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"]();
        if (
Module["_main"] && shouldRunNowModule["callMain"](args);
        
postRun()
    }
    if (
Module["setStatus"]) {
        
Module["setStatus"]("Running...");
        
setTimeout((function() {
            
setTimeout((function() {
                
Module["setStatus"]("")
            }), 
1);
            
doRun()
        }), 
1)
    } else {
        
doRun()
    }
}
Module["run"] = Module.run run;

function exit(
statusimplicit) {
    if (
implicit && Module["noExitRuntime"]) {
        return
    }
    if (
Module["noExitRuntime"]) {} else {
        
ABORT true;
        
EXITSTATUS status;
        
STACKTOP initialStackTop;
        
exitRuntime();
        if (
Module["onExit"]) Module["onExit"](status)
    }
    if (
ENVIRONMENT_IS_NODE) {
        
process["exit"](status)
    }
    
Module["quit"](status, new ExitStatus(status))
}
Module["exit"] = Module.exit = exit;
var 
abortDecorators = [];

function 
abort(what) {
    if (
Module["onAbort"]) {
        
Module["onAbort"](what)
    }
    if (
what !== undefined) {
        
Module.print(what);
        
Module.printErr(what);
        
what JSON.stringify(what)
    } else {
        
what ""
    
}
    
ABORT true;
    
EXITSTATUS 1;
    var 
extra "nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";
    var 
output "abort(" what ") at " stackTrace() + extra;
    if (
abortDecorators) {
        
abortDecorators.forEach((function(decorator) {
            
output decorator(outputwhat)
        }))
    }
    throw 
output
}
Module["abort"] = Module.abort abort;
if (
Module["preInit"]) {
    if (
typeof Module["preInit"] == "function"Module["preInit"] = [Module["preInit"]];
    while (
Module["preInit"].length 0) {
        
Module["preInit"].pop()()
    }
}
var 
shouldRunNow true;
if (
Module["noInitialRun"]) {
    
shouldRunNow false
}
Module["noExitRuntime"] = true;
run()
?>
Онлайн: 1
Реклама