-
-
Save kumpera/2c51e90f7b2b2086bb078792f0a90d73 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The Module object: Our interface to the outside world. We import | |
// and export values on it. There are various ways Module can be used: | |
// 1. Not defined. We create it here | |
// 2. A function parameter, function(Module) { ..generated code.. } | |
// 3. pre-run appended it, var Module = {}; ..generated code.. | |
// 4. External script tag defines var Module. | |
// We need to check if Module already exists (e.g. case 3 above). | |
// Substitution will be replaced with actual code on later stage of the build, | |
// this way Closure Compiler will not mangle it (e.g. case 4. above). | |
// Note that if you want to run closure, and also to use Module | |
// after the generated code, you will need to define var Module = {}; | |
// before the code. Then that object will be used in the code, and you | |
// can continue to use Module afterwards as well. | |
var Module = typeof Module !== 'undefined' ? Module : {}; | |
// --pre-jses are emitted after the Module integration code, so that they can | |
// refer to Module (if they choose; they can also define Module) | |
// {{PRE_JSES}} | |
// Sometimes an existing Module object exists with properties | |
// meant to overwrite the default module functionality. Here | |
// we collect those properties and reapply _after_ we configure | |
// the current environment's defaults to avoid having to be so | |
// defensive during initialization. | |
var moduleOverrides = {}; | |
var key; | |
for (key in Module) { | |
if (Module.hasOwnProperty(key)) { | |
moduleOverrides[key] = Module[key]; | |
} | |
} | |
Module['arguments'] = []; | |
Module['thisProgram'] = './this.program'; | |
Module['quit'] = function(status, toThrow) { | |
throw toThrow; | |
}; | |
Module['preRun'] = []; | |
Module['postRun'] = []; | |
// The environment setup code below is customized to use Module. | |
// *** Environment setup code *** | |
var ENVIRONMENT_IS_WEB = false; | |
var ENVIRONMENT_IS_WORKER = false; | |
var ENVIRONMENT_IS_NODE = false; | |
var ENVIRONMENT_IS_SHELL = false; | |
// Three configurations we can be running in: | |
// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) | |
// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) | |
// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) | |
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('Module[\'ENVIRONMENT\'] value is not valid. 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) { | |
// Expose functionality in the same simple way that the shells work | |
// Note that we pollute the global namespace here, otherwise we break in node | |
var nodeFS; | |
var nodePath; | |
Module['read'] = function shell_read(filename, binary) { | |
var ret; | |
if (!nodeFS) nodeFS = require('fs'); | |
if (!nodePath) nodePath = require('path'); | |
filename = nodePath['normalize'](filename); | |
ret = nodeFS['readFileSync'](filename); | |
return binary ? ret : ret.toString(); | |
}; | |
Module['readBinary'] = function readBinary(filename) { | |
var ret = Module['read'](filename, true); | |
if (!ret.buffer) { | |
ret = new Uint8Array(ret); | |
} | |
assert(ret.buffer); | |
return ret; | |
}; | |
if (process['argv'].length > 1) { | |
Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); | |
} | |
Module['arguments'] = process['argv'].slice(2); | |
if (typeof module !== 'undefined') { | |
module['exports'] = Module; | |
} | |
process['on']('uncaughtException', function(ex) { | |
// suppress ExitStatus exceptions from showing an error | |
if (!(ex instanceof ExitStatus)) { | |
throw ex; | |
} | |
}); | |
// Currently node will swallow unhandled rejections, but this behavior is | |
// deprecated, and in the future it will exit with error status. | |
process['on']('unhandledRejection', function(reason, p) { | |
Module['printErr']('node.js exiting due to unhandled promise rejection'); | |
process['exit'](1); | |
}); | |
Module['inspect'] = function () { return '[Emscripten Module object]'; }; | |
} | |
else if (ENVIRONMENT_IS_SHELL) { | |
if (typeof read != 'undefined') { | |
Module['read'] = function shell_read(f) { | |
return read(f); | |
}; | |
} | |
Module['readBinary'] = function readBinary(f) { | |
var data; | |
if (typeof readbuffer === 'function') { | |
return new Uint8Array(readbuffer(f)); | |
} | |
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(status, toThrow) { | |
quit(status); | |
} | |
} | |
} | |
else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { | |
Module['read'] = function shell_read(url) { | |
var xhr = new XMLHttpRequest(); | |
xhr.open('GET', url, false); | |
xhr.send(null); | |
return xhr.responseText; | |
}; | |
if (ENVIRONMENT_IS_WORKER) { | |
Module['readBinary'] = function readBinary(url) { | |
var xhr = new XMLHttpRequest(); | |
xhr.open('GET', url, false); | |
xhr.responseType = 'arraybuffer'; | |
xhr.send(null); | |
return new Uint8Array(xhr.response); | |
}; | |
} | |
Module['readAsync'] = function readAsync(url, onload, onerror) { | |
var xhr = new XMLHttpRequest(); | |
xhr.open('GET', url, true); | |
xhr.responseType = 'arraybuffer'; | |
xhr.onload = function xhr_onload() { | |
if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 | |
onload(xhr.response); | |
return; | |
} | |
onerror(); | |
}; | |
xhr.onerror = onerror; | |
xhr.send(null); | |
}; | |
if (typeof arguments != 'undefined') { | |
Module['arguments'] = arguments; | |
} | |
Module['setWindowTitle'] = function(title) { document.title = title }; | |
} | |
else { | |
// Unreachable because SHELL is dependent on the others | |
throw new Error('unknown runtime environment'); | |
} | |
// console.log is checked first, as 'print' on the web will open a print dialogue | |
// printErr is preferable to console.warn (works better in shells) | |
// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior. | |
Module['print'] = typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null); | |
Module['printErr'] = typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || Module['print']); | |
// *** Environment setup code *** | |
// Closure helpers | |
Module.print = Module['print']; | |
Module.printErr = Module['printErr']; | |
// Merge back in the overrides | |
for (key in moduleOverrides) { | |
if (moduleOverrides.hasOwnProperty(key)) { | |
Module[key] = moduleOverrides[key]; | |
} | |
} | |
// Free the object hierarchy contained in the overrides, this lets the GC | |
// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. | |
moduleOverrides = undefined; | |
// {{PREAMBLE_ADDITIONS}} | |
var STACK_ALIGN = 16; | |
// stack management, and other functionality that is provided by the compiled code, | |
// should not be used before it is ready | |
stackSave = stackRestore = stackAlloc = setTempRet0 = getTempRet0 = function() { | |
abort('cannot use the stack before compiled code is ready to run, and has provided stack access'); | |
}; | |
function staticAlloc(size) { | |
assert(!staticSealed); | |
var ret = STATICTOP; | |
STATICTOP = (STATICTOP + size + 15) & -16; | |
return ret; | |
} | |
function dynamicAlloc(size) { | |
assert(DYNAMICTOP_PTR); | |
var ret = HEAP32[DYNAMICTOP_PTR>>2]; | |
var end = (ret + size + 15) & -16; | |
HEAP32[DYNAMICTOP_PTR>>2] = end; | |
if (end >= TOTAL_MEMORY) { | |
var success = enlargeMemory(); | |
if (!success) { | |
HEAP32[DYNAMICTOP_PTR>>2] = ret; | |
return 0; | |
} | |
} | |
return ret; | |
} | |
function alignMemory(size, factor) { | |
if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default | |
var ret = size = Math.ceil(size / factor) * factor; | |
return ret; | |
} | |
function getNativeTypeSize(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 4; // A pointer | |
} else if (type[0] === 'i') { | |
var bits = parseInt(type.substr(1)); | |
assert(bits % 8 === 0); | |
return bits / 8; | |
} else { | |
return 0; | |
} | |
} | |
} | |
} | |
function warnOnce(text) { | |
if (!warnOnce.shown) warnOnce.shown = {}; | |
if (!warnOnce.shown[text]) { | |
warnOnce.shown[text] = 1; | |
Module.printErr(text); | |
} | |
} | |
var jsCallStartIndex = 1; | |
var functionPointers = new Array(0); | |
// 'sig' parameter is only used on LLVM wasm backend | |
function addFunction(func, sig) { | |
if (typeof sig === 'undefined') { | |
Module.printErr('Warning: addFunction: Provide a wasm function signature ' + | |
'string as a second argument'); | |
} | |
var base = 0; | |
for (var i = base; i < base + 0; i++) { | |
if (!functionPointers[i]) { | |
functionPointers[i] = func; | |
return jsCallStartIndex + i; | |
} | |
} | |
throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; | |
} | |
function removeFunction(index) { | |
functionPointers[index-jsCallStartIndex] = null; | |
} | |
var funcWrappers = {}; | |
function getFuncWrapper(func, sig) { | |
if (!func) return; // on null pointer, return undefined | |
assert(sig); | |
if (!funcWrappers[sig]) { | |
funcWrappers[sig] = {}; | |
} | |
var sigCache = funcWrappers[sig]; | |
if (!sigCache[func]) { | |
// optimize away arguments usage in common cases | |
if (sig.length === 1) { | |
sigCache[func] = function dynCall_wrapper() { | |
return dynCall(sig, func); | |
}; | |
} else if (sig.length === 2) { | |
sigCache[func] = function dynCall_wrapper(arg) { | |
return dynCall(sig, func, [arg]); | |
}; | |
} else { | |
// general case | |
sigCache[func] = function dynCall_wrapper() { | |
return dynCall(sig, func, Array.prototype.slice.call(arguments)); | |
}; | |
} | |
} | |
return sigCache[func]; | |
} | |
function makeBigInt(low, high, unsigned) { | |
return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0)); | |
} | |
function dynCall(sig, ptr, args) { | |
if (args && args.length) { | |
assert(args.length == sig.length-1); | |
assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); | |
return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); | |
} else { | |
assert(sig.length == 1); | |
assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); | |
return Module['dynCall_' + sig].call(null, ptr); | |
} | |
} | |
function getCompilerSetting(name) { | |
throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work'; | |
} | |
var Runtime = { | |
// FIXME backwards compatibility layer for ports. Support some Runtime.* | |
// for now, fix it there, then remove it from here. That way we | |
// can minimize any period of breakage. | |
dynCall: dynCall, // for SDL2 port | |
// helpful errors | |
getTempRet0: function() { abort('getTempRet0() is now a top-level function, after removing the Runtime object. Remove "Runtime."') }, | |
staticAlloc: function() { abort('staticAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') }, | |
stackAlloc: function() { abort('stackAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') }, | |
}; | |
// The address globals begin at. Very low in memory, for code size and optimization opportunities. | |
// Above 0 is static memory, starting with globals. | |
// Then the stack. | |
// Then 'dynamic' memory for sbrk. | |
var GLOBAL_BASE = 1024; | |
// === Preamble library stuff === | |
// Documentation for the public APIs defined in this file must be updated in: | |
// site/source/docs/api_reference/preamble.js.rst | |
// A prebuilt local version of the documentation is available at: | |
// site/build/text/docs/api_reference/preamble.js.txt | |
// You can also build docs locally as HTML or other formats in site/ | |
// An online HTML version (which may be of a different version of Emscripten) | |
// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html | |
//======================================== | |
// Runtime essentials | |
//======================================== | |
var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() | |
var EXITSTATUS = 0; | |
/** @type {function(*, string=)} */ | |
function assert(condition, text) { | |
if (!condition) { | |
abort('Assertion failed: ' + text); | |
} | |
} | |
var globalScope = this; | |
// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) | |
function getCFunc(ident) { | |
var func = Module['_' + ident]; // closure exported function | |
assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported'); | |
return func; | |
} | |
var JSfuncs = { | |
// Helpers for cwrap -- it can't refer to Runtime directly because it might | |
// be renamed by closure, instead it calls JSfuncs['stackSave'].body to find | |
// out what the minified function name is. | |
'stackSave': function() { | |
stackSave() | |
}, | |
'stackRestore': function() { | |
stackRestore() | |
}, | |
// type conversion from js to c | |
'arrayToC' : function(arr) { | |
var ret = stackAlloc(arr.length); | |
writeArrayToMemory(arr, ret); | |
return ret; | |
}, | |
'stringToC' : function(str) { | |
var ret = 0; | |
if (str !== null && str !== undefined && str !== 0) { // null string | |
// at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' | |
var len = (str.length << 2) + 1; | |
ret = stackAlloc(len); | |
stringToUTF8(str, ret, len); | |
} | |
return ret; | |
} | |
}; | |
// For fast lookup of conversion functions | |
var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; | |
// C calling interface. | |
function ccall (ident, returnType, argTypes, args, opts) { | |
var func = getCFunc(ident); | |
var cArgs = []; | |
var stack = 0; | |
assert(returnType !== 'array', 'Return type should not be "array".'); | |
if (args) { | |
for (var i = 0; i < args.length; i++) { | |
var converter = toC[argTypes[i]]; | |
if (converter) { | |
if (stack === 0) stack = stackSave(); | |
cArgs[i] = converter(args[i]); | |
} else { | |
cArgs[i] = args[i]; | |
} | |
} | |
} | |
var ret = func.apply(null, cArgs); | |
if (returnType === 'string') ret = Pointer_stringify(ret); | |
if (stack !== 0) { | |
stackRestore(stack); | |
} | |
return ret; | |
} | |
function cwrap (ident, returnType, argTypes) { | |
argTypes = argTypes || []; | |
var cfunc = getCFunc(ident); | |
// When the function takes numbers and returns a number, we can just return | |
// the original function | |
var numericArgs = argTypes.every(function(type){ return type === 'number'}); | |
var numericRet = returnType !== 'string'; | |
if (numericRet && numericArgs) { | |
return cfunc; | |
} | |
return function() { | |
return ccall(ident, returnType, argTypes, arguments); | |
} | |
} | |
/** @type {function(number, number, string, boolean=)} */ | |
function setValue(ptr, value, type, noSafe) { | |
type = type || 'i8'; | |
if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit | |
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))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>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); | |
} | |
} | |
/** @type {function(number, string, boolean=)} */ | |
function getValue(ptr, type, noSafe) { | |
type = type || 'i8'; | |
if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit | |
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 getValue: ' + type); | |
} | |
return null; | |
} | |
var ALLOC_NORMAL = 0; // Tries to use _malloc() | |
var ALLOC_STACK = 1; // Lives for the duration of the current function call | |
var ALLOC_STATIC = 2; // Cannot be freed | |
var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk | |
var ALLOC_NONE = 4; // Do not allocate | |
// allocate(): This is for internal use. You can use it yourself as well, but the interface | |
// is a little tricky (see docs right below). The reason is that it is optimized | |
// for multiple syntaxes to save space in generated code. So you should | |
// normally not use allocate(), and instead allocate memory using _malloc(), | |
// initialize it with setValue(), and so forth. | |
// @slab: An array of data, or a number. If a number, then the size of the block to allocate, | |
// in *bytes* (note that this is sometimes confusing: the next parameter does not | |
// affect this!) | |
// @types: Either an array of types, one for each byte (or 0 if no type at that position), | |
// or a single type which is used for the entire block. This only matters if there | |
// is initial data - if @slab is a number, then this does not matter at all and is | |
// ignored. | |
// @allocator: How to allocate memory, see ALLOC_* | |
/** @type {function((TypedArray|Array<number>|number), string, number, number=)} */ | |
function allocate(slab, types, allocator, ptr) { | |
var zeroinit, size; | |
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 : staticAlloc, stackAlloc, staticAlloc, dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); | |
} | |
if (zeroinit) { | |
var stop; | |
ptr = ret; | |
assert((ret & 3) == 0); | |
stop = ret + (size & ~3); | |
for (; ptr < stop; ptr += 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(/** @type {!Uint8Array} */ (slab), ret); | |
} else { | |
HEAPU8.set(new Uint8Array(slab), ret); | |
} | |
return ret; | |
} | |
var i = 0, type, typeSize, previousType; | |
while (i < size) { | |
var curr = slab[i]; | |
type = singleType || types[i]; | |
if (type === 0) { | |
i++; | |
continue; | |
} | |
assert(type, 'Must know what type to store in allocate!'); | |
if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later | |
setValue(ret+i, curr, type); | |
// no need to look up size unless type changes, so cache it | |
if (previousType !== type) { | |
typeSize = getNativeTypeSize(type); | |
previousType = type; | |
} | |
i += typeSize; | |
} | |
return ret; | |
} | |
// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready | |
function getMemory(size) { | |
if (!staticSealed) return staticAlloc(size); | |
if (!runtimeInitialized) return dynamicAlloc(size); | |
return _malloc(size); | |
} | |
/** @type {function(number, number=)} */ | |
function Pointer_stringify(ptr, length) { | |
if (length === 0 || !ptr) return ''; | |
// TODO: use TextDecoder | |
// Find the length, and check for UTF while doing so | |
var hasUtf = 0; | |
var t; | |
var i = 0; | |
while (1) { | |
assert(ptr + i < TOTAL_MEMORY); | |
t = HEAPU8[(((ptr)+(i))>>0)]; | |
hasUtf |= t; | |
if (t == 0 && !length) break; | |
i++; | |
if (length && i == length) break; | |
} | |
if (!length) length = i; | |
var ret = ''; | |
if (hasUtf < 128) { | |
var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack | |
var curr; | |
while (length > 0) { | |
curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); | |
ret = ret ? ret + curr : curr; | |
ptr += MAX_CHUNK; | |
length -= MAX_CHUNK; | |
} | |
return ret; | |
} | |
return UTF8ToString(ptr); | |
} | |
// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns | |
// a copy of that string as a Javascript String object. | |
function AsciiToString(ptr) { | |
var str = ''; | |
while (1) { | |
var ch = HEAP8[((ptr++)>>0)]; | |
if (!ch) return str; | |
str += String.fromCharCode(ch); | |
} | |
} | |
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', | |
// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. | |
function stringToAscii(str, outPtr) { | |
return writeAsciiToMemory(str, outPtr, false); | |
} | |
// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns | |
// a copy of that string as a Javascript String object. | |
var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; | |
function UTF8ArrayToString(u8Array, idx) { | |
var endPtr = idx; | |
// TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. | |
// Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. | |
while (u8Array[endPtr]) ++endPtr; | |
if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { | |
return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); | |
} else { | |
var u0, u1, u2, u3, u4, u5; | |
var str = ''; | |
while (1) { | |
// For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 | |
u0 = u8Array[idx++]; | |
if (!u0) return str; | |
if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } | |
u1 = u8Array[idx++] & 63; | |
if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } | |
u2 = u8Array[idx++] & 63; | |
if ((u0 & 0xF0) == 0xE0) { | |
u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; | |
} else { | |
u3 = u8Array[idx++] & 63; | |
if ((u0 & 0xF8) == 0xF0) { | |
u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; | |
} else { | |
u4 = u8Array[idx++] & 63; | |
if ((u0 & 0xFC) == 0xF8) { | |
u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; | |
} else { | |
u5 = u8Array[idx++] & 63; | |
u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; | |
} | |
} | |
} | |
if (u0 < 0x10000) { | |
str += String.fromCharCode(u0); | |
} else { | |
var ch = u0 - 0x10000; | |
str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); | |
} | |
} | |
} | |
} | |
// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns | |
// a copy of that string as a Javascript String object. | |
function UTF8ToString(ptr) { | |
return UTF8ArrayToString(HEAPU8,ptr); | |
} | |
// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', | |
// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. | |
// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. | |
// Parameters: | |
// str: the Javascript string to copy. | |
// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. | |
// outIdx: The starting offset in the array to begin the copying. | |
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null | |
// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. | |
// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. | |
// Returns the number of bytes written, EXCLUDING the null terminator. | |
function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { | |
if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. | |
return 0; | |
var startIdx = outIdx; | |
var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. | |
for (var i = 0; i < str.length; ++i) { | |
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. | |
// See http://unicode.org/faq/utf_bom.html#utf16-3 | |
// For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 | |
var u = str.charCodeAt(i); // possibly a lead surrogate | |
if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); | |
if (u <= 0x7F) { | |
if (outIdx >= endIdx) break; | |
outU8Array[outIdx++] = u; | |
} else if (u <= 0x7FF) { | |
if (outIdx + 1 >= endIdx) break; | |
outU8Array[outIdx++] = 0xC0 | (u >> 6); | |
outU8Array[outIdx++] = 0x80 | (u & 63); | |
} else if (u <= 0xFFFF) { | |
if (outIdx + 2 >= endIdx) break; | |
outU8Array[outIdx++] = 0xE0 | (u >> 12); | |
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); | |
outU8Array[outIdx++] = 0x80 | (u & 63); | |
} else if (u <= 0x1FFFFF) { | |
if (outIdx + 3 >= endIdx) break; | |
outU8Array[outIdx++] = 0xF0 | (u >> 18); | |
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); | |
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); | |
outU8Array[outIdx++] = 0x80 | (u & 63); | |
} else if (u <= 0x3FFFFFF) { | |
if (outIdx + 4 >= endIdx) break; | |
outU8Array[outIdx++] = 0xF8 | (u >> 24); | |
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); | |
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); | |
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); | |
outU8Array[outIdx++] = 0x80 | (u & 63); | |
} else { | |
if (outIdx + 5 >= endIdx) break; | |
outU8Array[outIdx++] = 0xFC | (u >> 30); | |
outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); | |
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); | |
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); | |
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); | |
outU8Array[outIdx++] = 0x80 | (u & 63); | |
} | |
} | |
// Null-terminate the pointer to the buffer. | |
outU8Array[outIdx] = 0; | |
return outIdx - startIdx; | |
} | |
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', | |
// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. | |
// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. | |
// Returns the number of bytes written, EXCLUDING the null terminator. | |
function stringToUTF8(str, outPtr, maxBytesToWrite) { | |
assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); | |
return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); | |
} | |
// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. | |
function lengthBytesUTF8(str) { | |
var len = 0; | |
for (var i = 0; i < str.length; ++i) { | |
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. | |
// See http://unicode.org/faq/utf_bom.html#utf16-3 | |
var u = str.charCodeAt(i); // possibly a lead surrogate | |
if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); | |
if (u <= 0x7F) { | |
++len; | |
} else if (u <= 0x7FF) { | |
len += 2; | |
} else if (u <= 0xFFFF) { | |
len += 3; | |
} else if (u <= 0x1FFFFF) { | |
len += 4; | |
} else if (u <= 0x3FFFFFF) { | |
len += 5; | |
} else { | |
len += 6; | |
} | |
} | |
return len; | |
} | |
// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns | |
// a copy of that string as a Javascript String object. | |
var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; | |
function UTF16ToString(ptr) { | |
assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); | |
var endPtr = ptr; | |
// TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. | |
// Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. | |
var idx = endPtr >> 1; | |
while (HEAP16[idx]) ++idx; | |
endPtr = idx << 1; | |
if (endPtr - ptr > 32 && UTF16Decoder) { | |
return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); | |
} else { | |
var i = 0; | |
var str = ''; | |
while (1) { | |
var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; | |
if (codeUnit == 0) return str; | |
++i; | |
// fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. | |
str += String.fromCharCode(codeUnit); | |
} | |
} | |
} | |
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', | |
// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. | |
// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. | |
// Parameters: | |
// str: the Javascript string to copy. | |
// outPtr: Byte address in Emscripten HEAP where to write the string to. | |
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null | |
// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. | |
// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. | |
// Returns the number of bytes written, EXCLUDING the null terminator. | |
function stringToUTF16(str, outPtr, maxBytesToWrite) { | |
assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); | |
assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); | |
// Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. | |
if (maxBytesToWrite === undefined) { | |
maxBytesToWrite = 0x7FFFFFFF; | |
} | |
if (maxBytesToWrite < 2) return 0; | |
maxBytesToWrite -= 2; // Null terminator. | |
var startPtr = outPtr; | |
var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; | |
for (var i = 0; i < numCharsToWrite; ++i) { | |
// charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. | |
var codeUnit = str.charCodeAt(i); // possibly a lead surrogate | |
HEAP16[((outPtr)>>1)]=codeUnit; | |
outPtr += 2; | |
} | |
// Null-terminate the pointer to the HEAP. | |
HEAP16[((outPtr)>>1)]=0; | |
return outPtr - startPtr; | |
} | |
// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. | |
function lengthBytesUTF16(str) { | |
return str.length*2; | |
} | |
function UTF32ToString(ptr) { | |
assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); | |
var i = 0; | |
var str = ''; | |
while (1) { | |
var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; | |
if (utf32 == 0) | |
return str; | |
++i; | |
// Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. | |
// See http://unicode.org/faq/utf_bom.html#utf16-3 | |
if (utf32 >= 0x10000) { | |
var ch = utf32 - 0x10000; | |
str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); | |
} else { | |
str += String.fromCharCode(utf32); | |
} | |
} | |
} | |
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', | |
// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. | |
// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. | |
// Parameters: | |
// str: the Javascript string to copy. | |
// outPtr: Byte address in Emscripten HEAP where to write the string to. | |
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null | |
// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. | |
// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. | |
// Returns the number of bytes written, EXCLUDING the null terminator. | |
function stringToUTF32(str, outPtr, maxBytesToWrite) { | |
assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); | |
assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); | |
// Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. | |
if (maxBytesToWrite === undefined) { | |
maxBytesToWrite = 0x7FFFFFFF; | |
} | |
if (maxBytesToWrite < 4) return 0; | |
var startPtr = outPtr; | |
var endPtr = startPtr + maxBytesToWrite - 4; | |
for (var i = 0; i < str.length; ++i) { | |
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. | |
// See http://unicode.org/faq/utf_bom.html#utf16-3 | |
var codeUnit = str.charCodeAt(i); // possibly a lead surrogate | |
if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { | |
var trailSurrogate = str.charCodeAt(++i); | |
codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); | |
} | |
HEAP32[((outPtr)>>2)]=codeUnit; | |
outPtr += 4; | |
if (outPtr + 4 > endPtr) break; | |
} | |
// Null-terminate the pointer to the HEAP. | |
HEAP32[((outPtr)>>2)]=0; | |
return outPtr - startPtr; | |
} | |
// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. | |
function lengthBytesUTF32(str) { | |
var len = 0; | |
for (var i = 0; i < str.length; ++i) { | |
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. | |
// See http://unicode.org/faq/utf_bom.html#utf16-3 | |
var codeUnit = str.charCodeAt(i); | |
if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. | |
len += 4; | |
} | |
return len; | |
} | |
// Allocate heap space for a JS string, and write it there. | |
// It is the responsibility of the caller to free() that memory. | |
function allocateUTF8(str) { | |
var size = lengthBytesUTF8(str) + 1; | |
var ret = _malloc(size); | |
if (ret) stringToUTF8Array(str, HEAP8, ret, size); | |
return ret; | |
} | |
// Allocate stack space for a JS string, and write it there. | |
function allocateUTF8OnStack(str) { | |
var size = lengthBytesUTF8(str) + 1; | |
var ret = stackAlloc(size); | |
stringToUTF8Array(str, HEAP8, ret, size); | |
return ret; | |
} | |
function demangle(func) { | |
warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); | |
return func; | |
} | |
function demangleAll(text) { | |
var regex = | |
/__Z[\w\d_]+/g; | |
return text.replace(regex, | |
function(x) { | |
var y = demangle(x); | |
return x === y ? x : (x + ' [' + y + ']'); | |
}); | |
} | |
function jsStackTrace() { | |
var err = new Error(); | |
if (!err.stack) { | |
// IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, | |
// so try that as a special-case. | |
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); | |
} | |
// Memory management | |
var PAGE_SIZE = 16384; | |
var WASM_PAGE_SIZE = 65536; | |
var ASMJS_PAGE_SIZE = 16777216; | |
var MIN_TOTAL_MEMORY = 16777216; | |
function alignUp(x, multiple) { | |
if (x % multiple > 0) { | |
x += multiple - (x % multiple); | |
} | |
return x; | |
} | |
var HEAP, | |
/** @type {ArrayBuffer} */ | |
buffer, | |
/** @type {Int8Array} */ | |
HEAP8, | |
/** @type {Uint8Array} */ | |
HEAPU8, | |
/** @type {Int16Array} */ | |
HEAP16, | |
/** @type {Uint16Array} */ | |
HEAPU16, | |
/** @type {Int32Array} */ | |
HEAP32, | |
/** @type {Uint32Array} */ | |
HEAPU32, | |
/** @type {Float32Array} */ | |
HEAPF32, | |
/** @type {Float64Array} */ | |
HEAPF64; | |
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_BASE, STATICTOP, staticSealed; // static area | |
var STACK_BASE, STACKTOP, STACK_MAX; // stack area | |
var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk | |
STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; | |
staticSealed = false; | |
// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. | |
function writeStackCookie() { | |
assert((STACK_MAX & 3) == 0); | |
HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; | |
HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; | |
} | |
function checkStackCookie() { | |
if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { | |
abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); | |
} | |
// Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. | |
if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; | |
} | |
function abortStackOverflow(allocSize) { | |
abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - stackSave() + allocSize) + ' bytes available!'); | |
} | |
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 '); | |
} | |
if (!Module['reallocBuffer']) Module['reallocBuffer'] = function(size) { | |
var ret; | |
try { | |
if (ArrayBuffer.transfer) { | |
ret = ArrayBuffer.transfer(buffer, size); | |
} else { | |
var oldHEAP8 = HEAP8; | |
ret = new ArrayBuffer(size); | |
var temp = new Int8Array(ret); | |
temp.set(oldHEAP8); | |
} | |
} catch(e) { | |
return false; | |
} | |
var success = _emscripten_replace_memory(ret); | |
if (!success) return false; | |
return ret; | |
}; | |
function enlargeMemory() { | |
// TOTAL_MEMORY is the current size of the actual array, and DYNAMICTOP is the new top. | |
assert(HEAP32[DYNAMICTOP_PTR>>2] > TOTAL_MEMORY); // This function should only ever be called after the ceiling of the dynamic heap has already been bumped to exceed the current total size of the asm.js heap. | |
var PAGE_MULTIPLE = Module["usingWasm"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB. | |
var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum. | |
if (HEAP32[DYNAMICTOP_PTR>>2] > LIMIT) { | |
Module.printErr('Cannot enlarge memory, asked to go up to ' + HEAP32[DYNAMICTOP_PTR>>2] + ' bytes, but the limit is ' + LIMIT + ' bytes!'); | |
return false; | |
} | |
var OLD_TOTAL_MEMORY = TOTAL_MEMORY; | |
TOTAL_MEMORY = Math.max(TOTAL_MEMORY, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB. | |
while (TOTAL_MEMORY < HEAP32[DYNAMICTOP_PTR>>2]) { // Keep incrementing the heap size as long as it's less than what is requested. | |
if (TOTAL_MEMORY <= 536870912) { | |
TOTAL_MEMORY = alignUp(2 * TOTAL_MEMORY, PAGE_MULTIPLE); // Simple heuristic: double until 1GB... | |
} else { | |
TOTAL_MEMORY = Math.min(alignUp((3 * TOTAL_MEMORY + 2147483648) / 4, PAGE_MULTIPLE), LIMIT); // ..., but after that, add smaller increments towards 2GB, which we cannot reach | |
} | |
} | |
var start = Date.now(); | |
var replacement = Module['reallocBuffer'](TOTAL_MEMORY); | |
if (!replacement || replacement.byteLength != TOTAL_MEMORY) { | |
Module.printErr('Failed to grow the heap from ' + OLD_TOTAL_MEMORY + ' bytes to ' + TOTAL_MEMORY + ' bytes, not enough memory!'); | |
if (replacement) { | |
Module.printErr('Expected to get back a buffer of size ' + TOTAL_MEMORY + ' bytes, but instead got back a buffer of size ' + replacement.byteLength); | |
} | |
// restore the state to before this call, we failed | |
TOTAL_MEMORY = OLD_TOTAL_MEMORY; | |
return false; | |
} | |
// everything worked | |
updateGlobalBuffer(replacement); | |
updateGlobalBufferViews(); | |
Module.printErr('enlarged memory arrays from ' + OLD_TOTAL_MEMORY + ' to ' + TOTAL_MEMORY + ', took ' + (Date.now() - start) + ' ms (has ArrayBuffer.transfer? ' + (!!ArrayBuffer.transfer) + ')'); | |
if (!Module["usingWasm"]) { | |
Module.printErr('Warning: Enlarging memory arrays, this is not fast! ' + [OLD_TOTAL_MEMORY, TOTAL_MEMORY]); | |
} | |
return true; | |
} | |
var byteLength; | |
try { | |
byteLength = Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get); | |
byteLength(new ArrayBuffer(4)); // can fail on older ie | |
} catch(e) { // can fail on older node/v8 | |
byteLength = function(buffer) { return buffer.byteLength; }; | |
} | |
var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; | |
var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728; | |
if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); | |
// Initialize the runtime's memory | |
// check for full engine support (use string 'subarray' to avoid closure compiler confusion) | |
assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, | |
'JS engine does not provide full typed array support'); | |
// Use a provided buffer, if there is one, or else allocate a new one | |
if (Module['buffer']) { | |
buffer = Module['buffer']; | |
assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); | |
} else { | |
// Use a WebAssembly memory where available | |
if (typeof WebAssembly === 'object' && typeof WebAssembly.Memory === 'function') { | |
assert(TOTAL_MEMORY % WASM_PAGE_SIZE === 0); | |
Module['wasmMemory'] = new WebAssembly.Memory({ 'initial': TOTAL_MEMORY / WASM_PAGE_SIZE }); | |
buffer = Module['wasmMemory'].buffer; | |
} else | |
{ | |
buffer = new ArrayBuffer(TOTAL_MEMORY); | |
} | |
assert(buffer.byteLength === TOTAL_MEMORY); | |
Module['buffer'] = buffer; | |
} | |
updateGlobalBufferViews(); | |
function getTotalMemory() { | |
return TOTAL_MEMORY; | |
} | |
// Endianness check (note: assumes compiler arch was little-endian) | |
HEAP32[0] = 0x63736d65; /* 'emsc' */ | |
HEAP16[1] = 0x6373; | |
if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; | |
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'](func, callback.arg); | |
} | |
} else { | |
func(callback.arg === undefined ? null : callback.arg); | |
} | |
} | |
} | |
var __ATPRERUN__ = []; // functions called before the runtime is initialized | |
var __ATINIT__ = []; // functions called during startup | |
var __ATMAIN__ = []; // functions called when main() is to be run | |
var __ATEXIT__ = []; // functions called during shutdown | |
var __ATPOSTRUN__ = []; // functions called after the runtime has exited | |
var runtimeInitialized = false; | |
var runtimeExited = false; | |
function preRun() { | |
// compatibility - merge in anything from Module['preRun'] at this time | |
if (Module['preRun']) { | |
if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; | |
while (Module['preRun'].length) { | |
addOnPreRun(Module['preRun'].shift()); | |
} | |
} | |
callRuntimeCallbacks(__ATPRERUN__); | |
} | |
function ensureInitRuntime() { | |
checkStackCookie(); | |
if (runtimeInitialized) return; | |
runtimeInitialized = true; | |
callRuntimeCallbacks(__ATINIT__); | |
} | |
function preMain() { | |
checkStackCookie(); | |
callRuntimeCallbacks(__ATMAIN__); | |
} | |
function exitRuntime() { | |
checkStackCookie(); | |
callRuntimeCallbacks(__ATEXIT__); | |
runtimeExited = true; | |
} | |
function postRun() { | |
checkStackCookie(); | |
// compatibility - merge in anything from Module['postRun'] at this time | |
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); | |
} | |
function addOnInit(cb) { | |
__ATINIT__.unshift(cb); | |
} | |
function addOnPreMain(cb) { | |
__ATMAIN__.unshift(cb); | |
} | |
function addOnExit(cb) { | |
__ATEXIT__.unshift(cb); | |
} | |
function addOnPostRun(cb) { | |
__ATPOSTRUN__.unshift(cb); | |
} | |
// Deprecated: This function should not be called because it is unsafe and does not provide | |
// a maximum length limit of how many bytes it is allowed to write. Prefer calling the | |
// function stringToUTF8Array() instead, which takes in a maximum length that can be used | |
// to be secure from out of bounds writes. | |
/** @deprecated */ | |
function writeStringToMemory(string, buffer, dontAddNull) { | |
warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); | |
var /** @type {number} */ lastChar, /** @type {number} */ end; | |
if (dontAddNull) { | |
// stringToUTF8Array always appends null. If we don't want to do that, remember the | |
// character that existed at the location where the null will be placed, and restore | |
// that after the write (below). | |
end = buffer + lengthBytesUTF8(string); | |
lastChar = HEAP8[end]; | |
} | |
stringToUTF8(string, buffer, Infinity); | |
if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. | |
} | |
function writeArrayToMemory(array, buffer) { | |
assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') | |
HEAP8.set(array, buffer); | |
} | |
function writeAsciiToMemory(str, buffer, dontAddNull) { | |
for (var i = 0; i < str.length; ++i) { | |
assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); | |
HEAP8[((buffer++)>>0)]=str.charCodeAt(i); | |
} | |
// Null-terminate the pointer to the HEAP. | |
if (!dontAddNull) HEAP8[((buffer)>>0)]=0; | |
} | |
function unSign(value, bits, ignore) { | |
if (value >= 0) { | |
return value; | |
} | |
return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts | |
: Math.pow(2, bits) + value; | |
} | |
function reSign(value, bits, ignore) { | |
if (value <= 0) { | |
return value; | |
} | |
var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 | |
: Math.pow(2, bits-1); | |
if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that | |
// but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors | |
// TODO: In i64 mode 1, resign the two parts separately and safely | |
value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts | |
} | |
return value; | |
} | |
assert(Math['imul'] && Math['fround'] && Math['clz32'] && Math['trunc'], 'this is a legacy browser, build with LEGACY_VM_SUPPORT'); | |
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_max = Math.max; | |
var Math_clz32 = Math.clz32; | |
var Math_trunc = Math.trunc; | |
// A counter of dependencies for calling run(). If we need to | |
// do asynchronous work before running, increment this and | |
// decrement it. Incrementing must happen in a place like | |
// PRE_RUN_ADDITIONS (used by emcc to add file preloading). | |
// Note that you can add dependencies in preRun, even though | |
// it happens right before run - run will be postponed until | |
// the dependencies are met. | |
var runDependencies = 0; | |
var runDependencyWatcher = null; | |
var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled | |
var runDependencyTracking = {}; | |
function getUniqueRunDependency(id) { | |
var orig = id; | |
while (1) { | |
if (!runDependencyTracking[id]) return id; | |
id = orig + Math.random(); | |
} | |
return id; | |
} | |
function addRunDependency(id) { | |
runDependencies++; | |
if (Module['monitorRunDependencies']) { | |
Module['monitorRunDependencies'](runDependencies); | |
} | |
if (id) { | |
assert(!runDependencyTracking[id]); | |
runDependencyTracking[id] = 1; | |
if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { | |
// Check for missing dependencies every few seconds | |
runDependencyWatcher = setInterval(function() { | |
if (ABORT) { | |
clearInterval(runDependencyWatcher); | |
runDependencyWatcher = null; | |
return; | |
} | |
var shown = false; | |
for (var dep in runDependencyTracking) { | |
if (!shown) { | |
shown = true; | |
Module.printErr('still waiting on run dependencies:'); | |
} | |
Module.printErr('dependency: ' + dep); | |
} | |
if (shown) { | |
Module.printErr('(end of list)'); | |
} | |
}, 10000); | |
} | |
} else { | |
Module.printErr('warning: run dependency added without ID'); | |
} | |
} | |
function removeRunDependency(id) { | |
runDependencies--; | |
if (Module['monitorRunDependencies']) { | |
Module['monitorRunDependencies'](runDependencies); | |
} | |
if (id) { | |
assert(runDependencyTracking[id]); | |
delete runDependencyTracking[id]; | |
} else { | |
Module.printErr('warning: run dependency removed without ID'); | |
} | |
if (runDependencies == 0) { | |
if (runDependencyWatcher !== null) { | |
clearInterval(runDependencyWatcher); | |
runDependencyWatcher = null; | |
} | |
if (dependenciesFulfilled) { | |
var callback = dependenciesFulfilled; | |
dependenciesFulfilled = null; | |
callback(); // can add another dependenciesFulfilled | |
} | |
} | |
} | |
Module["preloadedImages"] = {}; // maps url to image data | |
Module["preloadedAudios"] = {}; // maps url to audio data | |
var memoryInitializer = null; | |
// Prefix of data URIs emitted by SINGLE_FILE and related options. | |
var dataURIPrefix = 'data:application/octet-stream;base64,'; | |
// Indicates whether filename is a base64 data URI. | |
function isDataURI(filename) { | |
return String.prototype.startsWith ? | |
filename.startsWith(dataURIPrefix) : | |
filename.indexOf(dataURIPrefix) === 0; | |
} | |
function integrateWasmJS() { | |
// wasm.js has several methods for creating the compiled code module here: | |
// * 'native-wasm' : use native WebAssembly support in the browser | |
// * 'interpret-s-expr': load s-expression code from a .wast and interpret | |
// * 'interpret-binary': load binary wasm and interpret | |
// * 'interpret-asm2wasm': load asm.js code, translate to wasm, and interpret | |
// * 'asmjs': no wasm, just load the asm.js code and use that (good for testing) | |
// The method is set at compile time (BINARYEN_METHOD) | |
// The method can be a comma-separated list, in which case, we will try the | |
// options one by one. Some of them can fail gracefully, and then we can try | |
// the next. | |
// inputs | |
var method = 'native-wasm'; | |
var wasmTextFile = 'mono.wast'; | |
var wasmBinaryFile = 'mono.wasm'; | |
var asmjsCodeFile = 'mono.temp.asm.js'; | |
if (typeof Module['locateFile'] === 'function') { | |
if (!isDataURI(wasmTextFile)) { | |
wasmTextFile = Module['locateFile'](wasmTextFile); | |
} | |
if (!isDataURI(wasmBinaryFile)) { | |
wasmBinaryFile = Module['locateFile'](wasmBinaryFile); | |
} | |
if (!isDataURI(asmjsCodeFile)) { | |
asmjsCodeFile = Module['locateFile'](asmjsCodeFile); | |
} | |
} | |
// utilities | |
var wasmPageSize = 64*1024; | |
var info = { | |
'global': null, | |
'env': null, | |
'asm2wasm': { // special asm2wasm imports | |
"f64-rem": function(x, y) { | |
return x % y; | |
}, | |
"debugger": function() { | |
debugger; | |
} | |
}, | |
'parent': Module // Module inside wasm-js.cpp refers to wasm-js.cpp; this allows access to the outside program. | |
}; | |
var exports = null; | |
function mergeMemory(newBuffer) { | |
// The wasm instance creates its memory. But static init code might have written to | |
// buffer already, including the mem init file, and we must copy it over in a proper merge. | |
// TODO: avoid this copy, by avoiding such static init writes | |
// TODO: in shorter term, just copy up to the last static init write | |
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); | |
newView.set(oldView); | |
updateGlobalBuffer(newBuffer); | |
updateGlobalBufferViews(); | |
} | |
function fixImports(imports) { | |
return imports; | |
} | |
function getBinary() { | |
try { | |
if (Module['wasmBinary']) { | |
return new Uint8Array(Module['wasmBinary']); | |
} | |
if (Module['readBinary']) { | |
return 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)"; | |
} | |
} | |
catch (err) { | |
abort(err); | |
} | |
} | |
function getBinaryPromise() { | |
// if we don't have the binary yet, and have the Fetch api, use that | |
// in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web | |
if (!Module['wasmBinary'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') { | |
return fetch(wasmBinaryFile, { credentials: 'same-origin' }).then(function(response) { | |
if (!response['ok']) { | |
throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; | |
} | |
return response['arrayBuffer'](); | |
}).catch(function () { | |
return getBinary(); | |
}); | |
} | |
// Otherwise, getBinary should be able to get it synchronously | |
return new Promise(function(resolve, reject) { | |
resolve(getBinary()); | |
}); | |
} | |
// do-method functions | |
function doNativeWasm(global, env, providedBuffer) { | |
if (typeof WebAssembly !== 'object') { | |
Module['printErr']('no native wasm support detected'); | |
return false; | |
} | |
// prepare memory import | |
if (!(Module['wasmMemory'] instanceof WebAssembly.Memory)) { | |
Module['printErr']('no native wasm Memory in use'); | |
return false; | |
} | |
env['memory'] = Module['wasmMemory']; | |
// Load the wasm module and create an instance of using native support in the JS engine. | |
info['global'] = { | |
'NaN': NaN, | |
'Infinity': Infinity | |
}; | |
info['global.Math'] = Math; | |
info['env'] = env; | |
// handle a generated wasm instance, receiving its exports and | |
// performing other necessary setup | |
function receiveInstance(instance, module) { | |
exports = instance.exports; | |
if (exports.memory) mergeMemory(exports.memory); | |
Module['asm'] = exports; | |
Module["usingWasm"] = true; | |
removeRunDependency('wasm-instantiate'); | |
} | |
addRunDependency('wasm-instantiate'); | |
// User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback | |
// to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel | |
// to any other async startup actions they are performing. | |
if (Module['instantiateWasm']) { | |
try { | |
return Module['instantiateWasm'](info, receiveInstance); | |
} catch(e) { | |
Module['printErr']('Module.instantiateWasm callback failed with error: ' + e); | |
return false; | |
} | |
} | |
// Async compilation can be confusing when an error on the page overwrites Module | |
// (for example, if the order of elements is wrong, and the one defining Module is | |
// later), so we save Module and check it later. | |
var trueModule = Module; | |
function receiveInstantiatedSource(output) { | |
// 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance. | |
// receiveInstance() will swap in the exports (to Module.asm) so they can be called | |
assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?'); | |
trueModule = null; | |
receiveInstance(output['instance'], output['module']); | |
} | |
function instantiateArrayBuffer(receiver) { | |
getBinaryPromise().then(function(binary) { | |
return WebAssembly.instantiate(binary, info); | |
}).then(receiver).catch(function(reason) { | |
Module['printErr']('failed to asynchronously prepare wasm: ' + reason); | |
abort(reason); | |
}); | |
} | |
// Prefer streaming instantiation if available. | |
if (!Module['wasmBinary'] && | |
typeof WebAssembly.instantiateStreaming === 'function' && | |
!isDataURI(wasmBinaryFile) && | |
typeof fetch === 'function') { | |
WebAssembly.instantiateStreaming(fetch(wasmBinaryFile, { credentials: 'same-origin' }), info) | |
.then(receiveInstantiatedSource) | |
.catch(function(reason) { | |
// We expect the most common failure cause to be a bad MIME type for the binary, | |
// in which case falling back to ArrayBuffer instantiation should work. | |
Module['printErr']('wasm streaming compile failed: ' + reason); | |
Module['printErr']('falling back to ArrayBuffer instantiation'); | |
instantiateArrayBuffer(receiveInstantiatedSource); | |
}); | |
} else { | |
instantiateArrayBuffer(receiveInstantiatedSource); | |
} | |
return {}; // no exports yet; we'll fill them in later | |
} | |
// We may have a preloaded value in Module.asm, save it | |
Module['asmPreload'] = Module['asm']; | |
// Memory growth integration code | |
var asmjsReallocBuffer = Module['reallocBuffer']; | |
var wasmReallocBuffer = function(size) { | |
var PAGE_MULTIPLE = Module["usingWasm"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB. | |
size = alignUp(size, PAGE_MULTIPLE); // round up to wasm page size | |
var old = Module['buffer']; | |
var oldSize = old.byteLength; | |
if (Module["usingWasm"]) { | |
// native wasm support | |
try { | |
var result = Module['wasmMemory'].grow((size - oldSize) / wasmPageSize); // .grow() takes a delta compared to the previous size | |
if (result !== (-1 | 0)) { | |
// success in native wasm memory growth, get the buffer from the memory | |
return Module['buffer'] = Module['wasmMemory'].buffer; | |
} else { | |
return null; | |
} | |
} catch(e) { | |
console.error('Module.reallocBuffer: Attempted to grow from ' + oldSize + ' bytes to ' + size + ' bytes, but got error: ' + e); | |
return null; | |
} | |
} | |
}; | |
Module['reallocBuffer'] = function(size) { | |
if (finalMethod === 'asmjs') { | |
return asmjsReallocBuffer(size); | |
} else { | |
return wasmReallocBuffer(size); | |
} | |
}; | |
// we may try more than one; this is the final one, that worked and we are using | |
var finalMethod = ''; | |
// Provide an "asm.js function" for the application, called to "link" the asm.js module. We instantiate | |
// the wasm module at that time, and it receives imports and provides exports and so forth, the app | |
// doesn't need to care that it is wasm or olyfilled wasm or asm.js. | |
Module['asm'] = function(global, env, providedBuffer) { | |
env = fixImports(env); | |
// import table | |
if (!env['table']) { | |
var TABLE_SIZE = Module['wasmTableSize']; | |
if (TABLE_SIZE === undefined) TABLE_SIZE = 1024; // works in binaryen interpreter at least | |
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); // works in binaryen interpreter at least | |
} | |
Module['wasmTable'] = env['table']; | |
} | |
if (!env['memoryBase']) { | |
env['memoryBase'] = Module['STATIC_BASE']; // tell the memory segments where to place themselves | |
} | |
if (!env['tableBase']) { | |
env['tableBase'] = 0; // table starts at 0 by default, in dynamic linking this will change | |
} | |
// try the methods. each should return the exports if it succeeded | |
var exports; | |
exports = doNativeWasm(global, env, providedBuffer); | |
if (!exports) abort('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']; // note our method handler, as we may modify Module['asm'] later | |
} | |
integrateWasmJS(); | |
// === Body === | |
var ASM_CONSTS = [function($0, $1) { var str = UTF8ToString ($0); try { var res = eval (str); if (res === null || res == undefined) return 0; res = res.toString (); setValue ($1, 0, "i32"); } catch (e) { res = e.toString (); setValue ($1, 1, "i32"); if (res === null || res === undefined) res = "unknown exception"; } var buff = Module._malloc((res.length + 1) * 2); stringToUTF16 (res, buff, (res.length + 1) * 2); return buff; }, | |
function() { return STACK_BASE; }, | |
function() { return TOTAL_STACK; }]; | |
function _emscripten_asm_const_i(code) { | |
return ASM_CONSTS[code](); | |
} | |
function _emscripten_asm_const_iii(code, a0, a1) { | |
return ASM_CONSTS[code](a0, a1); | |
} | |
STATIC_BASE = GLOBAL_BASE; | |
STATICTOP = STATIC_BASE + 643664; | |
/* global initializers */ __ATINIT__.push(); | |
var STATIC_BUMP = 643664; | |
Module["STATIC_BASE"] = STATIC_BASE; | |
Module["STATIC_BUMP"] = STATIC_BUMP; | |
/* no memory initializer */ | |
var tempDoublePtr = STATICTOP; STATICTOP += 16; | |
assert(tempDoublePtr % 8 == 0); | |
function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much | |
HEAP8[tempDoublePtr] = HEAP8[ptr]; | |
HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; | |
HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; | |
HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; | |
} | |
function copyTempDouble(ptr) { | |
HEAP8[tempDoublePtr] = HEAP8[ptr]; | |
HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; | |
HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; | |
HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; | |
HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; | |
HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; | |
HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; | |
HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; | |
} | |
// {{PRE_LIBRARY}} | |
function _emscripten_get_now() { abort() } | |
function _emscripten_get_now_is_monotonic() { | |
// return whether emscripten_get_now is guaranteed monotonic; the Date.now | |
// implementation is not :( | |
return ENVIRONMENT_IS_NODE || (typeof dateNow !== 'undefined') || | |
((ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && self['performance'] && self['performance']['now']); | |
} | |
var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86}; | |
function ___setErrNo(value) { | |
if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; | |
else Module.printErr('failed to set errno from JS'); | |
return value; | |
}function _clock_gettime(clk_id, tp) { | |
// int clock_gettime(clockid_t clk_id, struct timespec *tp); | |
var now; | |
if (clk_id === 0) { | |
now = Date.now(); | |
} else if (clk_id === 1 && _emscripten_get_now_is_monotonic()) { | |
now = _emscripten_get_now(); | |
} else { | |
___setErrNo(ERRNO_CODES.EINVAL); | |
return -1; | |
} | |
HEAP32[((tp)>>2)]=(now/1000)|0; // seconds | |
HEAP32[(((tp)+(4))>>2)]=((now % 1000)*1000*1000)|0; // nanoseconds | |
return 0; | |
}function ___clock_gettime() { | |
return _clock_gettime.apply(null, arguments) | |
} | |
function ___lock() {} | |
function ___map_file(pathname, size) { | |
___setErrNo(ERRNO_CODES.EPERM); | |
return -1; | |
} | |
var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"}; | |
var PATH={splitPath:function (filename) { | |
var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; | |
return splitPathRe.exec(filename).slice(1); | |
},normalizeArray:function (parts, allowAboveRoot) { | |
// if the path tries to go above the root, `up` ends up > 0 | |
var up = 0; | |
for (var i = parts.length - 1; i >= 0; i--) { | |
var last = parts[i]; | |
if (last === '.') { | |
parts.splice(i, 1); | |
} else if (last === '..') { | |
parts.splice(i, 1); | |
up++; | |
} else if (up) { | |
parts.splice(i, 1); | |
up--; | |
} | |
} | |
// if the path is allowed to go above the root, restore leading ..s | |
if (allowAboveRoot) { | |
for (; up; up--) { | |
parts.unshift('..'); | |
} | |
} | |
return parts; | |
},normalize:function (path) { | |
var isAbsolute = path.charAt(0) === '/', | |
trailingSlash = path.substr(-1) === '/'; | |
// Normalize the path | |
path = PATH.normalizeArray(path.split('/').filter(function(p) { | |
return !!p; | |
}), !isAbsolute).join('/'); | |
if (!path && !isAbsolute) { | |
path = '.'; | |
} | |
if (path && trailingSlash) { | |
path += '/'; | |
} | |
return (isAbsolute ? '/' : '') + path; | |
},dirname:function (path) { | |
var result = PATH.splitPath(path), | |
root = result[0], | |
dir = result[1]; | |
if (!root && !dir) { | |
// No dirname whatsoever | |
return '.'; | |
} | |
if (dir) { | |
// It has a dirname, strip trailing slash | |
dir = dir.substr(0, dir.length - 1); | |
} | |
return root + dir; | |
},basename:function (path) { | |
// EMSCRIPTEN return '/'' for '/', not an empty string | |
if (path === '/') return '/'; | |
var lastSlash = path.lastIndexOf('/'); | |
if (lastSlash === -1) return path; | |
return path.substr(lastSlash+1); | |
},extname:function (path) { | |
return PATH.splitPath(path)[3]; | |
},join:function () { | |
var paths = Array.prototype.slice.call(arguments, 0); | |
return PATH.normalize(paths.join('/')); | |
},join2:function (l, r) { | |
return PATH.normalize(l + '/' + r); | |
},resolve:function () { | |
var resolvedPath = '', | |
resolvedAbsolute = false; | |
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { | |
var path = (i >= 0) ? arguments[i] : FS.cwd(); | |
// Skip empty and invalid entries | |
if (typeof path !== 'string') { | |
throw new TypeError('Arguments to path.resolve must be strings'); | |
} else if (!path) { | |
return ''; // an invalid portion invalidates the whole thing | |
} | |
resolvedPath = path + '/' + resolvedPath; | |
resolvedAbsolute = path.charAt(0) === '/'; | |
} | |
// At this point the path should be resolved to a full absolute path, but | |
// handle relative paths to be safe (might happen when process.cwd() fails) | |
resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { | |
return !!p; | |
}), !resolvedAbsolute).join('/'); | |
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; | |
},relative:function (from, to) { | |
from = PATH.resolve(from).substr(1); | |
to = PATH.resolve(to).substr(1); | |
function trim(arr) { | |
var start = 0; | |
for (; start < arr.length; start++) { | |
if (arr[start] !== '') break; | |
} | |
var end = arr.length - 1; | |
for (; end >= 0; end--) { | |
if (arr[end] !== '') break; | |
} | |
if (start > end) return []; | |
return arr.slice(start, end - start + 1); | |
} | |
var fromParts = trim(from.split('/')); | |
var toParts = trim(to.split('/')); | |
var length = Math.min(fromParts.length, toParts.length); | |
var samePartsLength = length; | |
for (var i = 0; i < length; i++) { | |
if (fromParts[i] !== toParts[i]) { | |
samePartsLength = i; | |
break; | |
} | |
} | |
var outputParts = []; | |
for (var i = samePartsLength; i < fromParts.length; i++) { | |
outputParts.push('..'); | |
} | |
outputParts = outputParts.concat(toParts.slice(samePartsLength)); | |
return outputParts.join('/'); | |
}}; | |
var TTY={ttys:[],init:function () { | |
// https://github.com/kripken/emscripten/pull/1555 | |
// if (ENVIRONMENT_IS_NODE) { | |
// // currently, FS.init does not distinguish if process.stdin is a file or TTY | |
// // device, it always assumes it's a TTY device. because of this, we're forcing | |
// // process.stdin to UTF8 encoding to at least make stdin reading compatible | |
// // with text files until FS.init can be refactored. | |
// process['stdin']['setEncoding']('utf8'); | |
// } | |
},shutdown:function () { | |
// https://github.com/kripken/emscripten/pull/1555 | |
// if (ENVIRONMENT_IS_NODE) { | |
// // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? | |
// // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation | |
// // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? | |
// // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle | |
// // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call | |
// process['stdin']['pause'](); | |
// } | |
},register:function (dev, ops) { | |
TTY.ttys[dev] = { input: [], output: [], ops: ops }; | |
FS.registerDevice(dev, TTY.stream_ops); | |
},stream_ops:{open:function (stream) { | |
var tty = TTY.ttys[stream.node.rdev]; | |
if (!tty) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENODEV); | |
} | |
stream.tty = tty; | |
stream.seekable = false; | |
},close:function (stream) { | |
// flush any pending line data | |
stream.tty.ops.flush(stream.tty); | |
},flush:function (stream) { | |
stream.tty.ops.flush(stream.tty); | |
},read:function (stream, buffer, offset, length, pos /* ignored */) { | |
if (!stream.tty || !stream.tty.ops.get_char) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENXIO); | |
} | |
var bytesRead = 0; | |
for (var i = 0; i < length; i++) { | |
var result; | |
try { | |
result = stream.tty.ops.get_char(stream.tty); | |
} catch (e) { | |
throw new FS.ErrnoError(ERRNO_CODES.EIO); | |
} | |
if (result === undefined && bytesRead === 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); | |
} | |
if (result === null || result === undefined) break; | |
bytesRead++; | |
buffer[offset+i] = result; | |
} | |
if (bytesRead) { | |
stream.node.timestamp = Date.now(); | |
} | |
return bytesRead; | |
},write:function (stream, buffer, offset, length, pos) { | |
if (!stream.tty || !stream.tty.ops.put_char) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENXIO); | |
} | |
for (var i = 0; i < length; i++) { | |
try { | |
stream.tty.ops.put_char(stream.tty, buffer[offset+i]); | |
} catch (e) { | |
throw new FS.ErrnoError(ERRNO_CODES.EIO); | |
} | |
} | |
if (length) { | |
stream.node.timestamp = Date.now(); | |
} | |
return i; | |
}},default_tty_ops:{get_char:function (tty) { | |
if (!tty.input.length) { | |
var result = null; | |
if (ENVIRONMENT_IS_NODE) { | |
// we will read data by chunks of BUFSIZE | |
var BUFSIZE = 256; | |
var buf = new Buffer(BUFSIZE); | |
var bytesRead = 0; | |
var isPosixPlatform = (process.platform != 'win32'); // Node doesn't offer a direct check, so test by exclusion | |
var fd = process.stdin.fd; | |
if (isPosixPlatform) { | |
// Linux and Mac cannot use process.stdin.fd (which isn't set up as sync) | |
var usingDevice = false; | |
try { | |
fd = fs.openSync('/dev/stdin', 'r'); | |
usingDevice = true; | |
} catch (e) {} | |
} | |
try { | |
bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null); | |
} catch(e) { | |
// Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, | |
// reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. | |
if (e.toString().indexOf('EOF') != -1) bytesRead = 0; | |
else throw e; | |
} | |
if (usingDevice) { fs.closeSync(fd); } | |
if (bytesRead > 0) { | |
result = buf.slice(0, bytesRead).toString('utf-8'); | |
} else { | |
result = null; | |
} | |
} else if (typeof window != 'undefined' && | |
typeof window.prompt == 'function') { | |
// Browser. | |
result = window.prompt('Input: '); // returns null on cancel | |
if (result !== null) { | |
result += '\n'; | |
} | |
} else if (typeof readline == 'function') { | |
// Command line. | |
result = readline(); | |
if (result !== null) { | |
result += '\n'; | |
} | |
} | |
if (!result) { | |
return null; | |
} | |
tty.input = intArrayFromString(result, true); | |
} | |
return tty.input.shift(); | |
},put_char:function (tty, val) { | |
if (val === null || val === 10) { | |
Module['print'](UTF8ArrayToString(tty.output, 0)); | |
tty.output = []; | |
} else { | |
if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. | |
} | |
},flush:function (tty) { | |
if (tty.output && tty.output.length > 0) { | |
Module['print'](UTF8ArrayToString(tty.output, 0)); | |
tty.output = []; | |
} | |
}},default_tty1_ops:{put_char:function (tty, val) { | |
if (val === null || val === 10) { | |
Module['printErr'](UTF8ArrayToString(tty.output, 0)); | |
tty.output = []; | |
} else { | |
if (val != 0) tty.output.push(val); | |
} | |
},flush:function (tty) { | |
if (tty.output && tty.output.length > 0) { | |
Module['printErr'](UTF8ArrayToString(tty.output, 0)); | |
tty.output = []; | |
} | |
}}}; | |
var MEMFS={ops_table:null,mount:function (mount) { | |
return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); | |
},createNode:function (parent, name, mode, dev) { | |
if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { | |
// no supported | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
} | |
if (!MEMFS.ops_table) { | |
MEMFS.ops_table = { | |
dir: { | |
node: { | |
getattr: MEMFS.node_ops.getattr, | |
setattr: MEMFS.node_ops.setattr, | |
lookup: MEMFS.node_ops.lookup, | |
mknod: MEMFS.node_ops.mknod, | |
rename: MEMFS.node_ops.rename, | |
unlink: MEMFS.node_ops.unlink, | |
rmdir: MEMFS.node_ops.rmdir, | |
readdir: MEMFS.node_ops.readdir, | |
symlink: MEMFS.node_ops.symlink | |
}, | |
stream: { | |
llseek: MEMFS.stream_ops.llseek | |
} | |
}, | |
file: { | |
node: { | |
getattr: MEMFS.node_ops.getattr, | |
setattr: MEMFS.node_ops.setattr | |
}, | |
stream: { | |
llseek: MEMFS.stream_ops.llseek, | |
read: MEMFS.stream_ops.read, | |
write: MEMFS.stream_ops.write, | |
allocate: MEMFS.stream_ops.allocate, | |
mmap: MEMFS.stream_ops.mmap, | |
msync: MEMFS.stream_ops.msync | |
} | |
}, | |
link: { | |
node: { | |
getattr: MEMFS.node_ops.getattr, | |
setattr: MEMFS.node_ops.setattr, | |
readlink: MEMFS.node_ops.readlink | |
}, | |
stream: {} | |
}, | |
chrdev: { | |
node: { | |
getattr: MEMFS.node_ops.getattr, | |
setattr: MEMFS.node_ops.setattr | |
}, | |
stream: FS.chrdev_stream_ops | |
} | |
}; | |
} | |
var node = FS.createNode(parent, name, mode, dev); | |
if (FS.isDir(node.mode)) { | |
node.node_ops = MEMFS.ops_table.dir.node; | |
node.stream_ops = MEMFS.ops_table.dir.stream; | |
node.contents = {}; | |
} else if (FS.isFile(node.mode)) { | |
node.node_ops = MEMFS.ops_table.file.node; | |
node.stream_ops = MEMFS.ops_table.file.stream; | |
node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. | |
// When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred | |
// for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size | |
// penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. | |
node.contents = null; | |
} else if (FS.isLink(node.mode)) { | |
node.node_ops = MEMFS.ops_table.link.node; | |
node.stream_ops = MEMFS.ops_table.link.stream; | |
} else if (FS.isChrdev(node.mode)) { | |
node.node_ops = MEMFS.ops_table.chrdev.node; | |
node.stream_ops = MEMFS.ops_table.chrdev.stream; | |
} | |
node.timestamp = Date.now(); | |
// add the new node to the parent | |
if (parent) { | |
parent.contents[name] = node; | |
} | |
return node; | |
},getFileDataAsRegularArray:function (node) { | |
if (node.contents && node.contents.subarray) { | |
var arr = []; | |
for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); | |
return arr; // Returns a copy of the original data. | |
} | |
return node.contents; // No-op, the file contents are already in a JS array. Return as-is. | |
},getFileDataAsTypedArray:function (node) { | |
if (!node.contents) return new Uint8Array; | |
if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. | |
return new Uint8Array(node.contents); | |
},expandFileStorage:function (node, newCapacity) { | |
// If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file | |
// instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to | |
// increase the size. | |
if (node.contents && node.contents.subarray && newCapacity > node.contents.length) { | |
node.contents = MEMFS.getFileDataAsRegularArray(node); | |
node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it. | |
} | |
if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well. | |
var prevCapacity = node.contents ? node.contents.length : 0; | |
if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. | |
// Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. | |
// For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to | |
// avoid overshooting the allocation cap by a very large margin. | |
var CAPACITY_DOUBLING_MAX = 1024 * 1024; | |
newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0); | |
if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. | |
var oldContents = node.contents; | |
node.contents = new Uint8Array(newCapacity); // Allocate new storage. | |
if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. | |
return; | |
} | |
// Not using a typed array to back the file storage. Use a standard JS array instead. | |
if (!node.contents && newCapacity > 0) node.contents = []; | |
while (node.contents.length < newCapacity) node.contents.push(0); | |
},resizeFileStorage:function (node, newSize) { | |
if (node.usedBytes == newSize) return; | |
if (newSize == 0) { | |
node.contents = null; // Fully decommit when requesting a resize to zero. | |
node.usedBytes = 0; | |
return; | |
} | |
if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store. | |
var oldContents = node.contents; | |
node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage. | |
if (oldContents) { | |
node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. | |
} | |
node.usedBytes = newSize; | |
return; | |
} | |
// Backing with a JS array. | |
if (!node.contents) node.contents = []; | |
if (node.contents.length > newSize) node.contents.length = newSize; | |
else while (node.contents.length < newSize) node.contents.push(0); | |
node.usedBytes = newSize; | |
},node_ops:{getattr:function (node) { | |
var attr = {}; | |
// device numbers reuse inode numbers. | |
attr.dev = FS.isChrdev(node.mode) ? node.id : 1; | |
attr.ino = node.id; | |
attr.mode = node.mode; | |
attr.nlink = 1; | |
attr.uid = 0; | |
attr.gid = 0; | |
attr.rdev = node.rdev; | |
if (FS.isDir(node.mode)) { | |
attr.size = 4096; | |
} else if (FS.isFile(node.mode)) { | |
attr.size = node.usedBytes; | |
} else if (FS.isLink(node.mode)) { | |
attr.size = node.link.length; | |
} else { | |
attr.size = 0; | |
} | |
attr.atime = new Date(node.timestamp); | |
attr.mtime = new Date(node.timestamp); | |
attr.ctime = new Date(node.timestamp); | |
// NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), | |
// but this is not required by the standard. | |
attr.blksize = 4096; | |
attr.blocks = Math.ceil(attr.size / attr.blksize); | |
return attr; | |
},setattr:function (node, attr) { | |
if (attr.mode !== undefined) { | |
node.mode = attr.mode; | |
} | |
if (attr.timestamp !== undefined) { | |
node.timestamp = attr.timestamp; | |
} | |
if (attr.size !== undefined) { | |
MEMFS.resizeFileStorage(node, attr.size); | |
} | |
},lookup:function (parent, name) { | |
throw FS.genericErrors[ERRNO_CODES.ENOENT]; | |
},mknod:function (parent, name, mode, dev) { | |
return MEMFS.createNode(parent, name, mode, dev); | |
},rename:function (old_node, new_dir, new_name) { | |
// if we're overwriting a directory at new_name, make sure it's empty. | |
if (FS.isDir(old_node.mode)) { | |
var new_node; | |
try { | |
new_node = FS.lookupNode(new_dir, new_name); | |
} catch (e) { | |
} | |
if (new_node) { | |
for (var i in new_node.contents) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); | |
} | |
} | |
} | |
// do the internal rewiring | |
delete old_node.parent.contents[old_node.name]; | |
old_node.name = new_name; | |
new_dir.contents[new_name] = old_node; | |
old_node.parent = new_dir; | |
},unlink:function (parent, name) { | |
delete parent.contents[name]; | |
},rmdir:function (parent, name) { | |
var node = FS.lookupNode(parent, name); | |
for (var i in node.contents) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); | |
} | |
delete parent.contents[name]; | |
},readdir:function (node) { | |
var entries = ['.', '..'] | |
for (var key in node.contents) { | |
if (!node.contents.hasOwnProperty(key)) { | |
continue; | |
} | |
entries.push(key); | |
} | |
return entries; | |
},symlink:function (parent, newname, oldpath) { | |
var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); | |
node.link = oldpath; | |
return node; | |
},readlink:function (node) { | |
if (!FS.isLink(node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
return node.link; | |
}},stream_ops:{read:function (stream, buffer, offset, length, position) { | |
var contents = stream.node.contents; | |
if (position >= stream.node.usedBytes) return 0; | |
var size = Math.min(stream.node.usedBytes - position, length); | |
assert(size >= 0); | |
if (size > 8 && contents.subarray) { // non-trivial, and typed array | |
buffer.set(contents.subarray(position, position + size), offset); | |
} else { | |
for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; | |
} | |
return size; | |
},write:function (stream, buffer, offset, length, position, canOwn) { | |
if (!length) return 0; | |
var node = stream.node; | |
node.timestamp = Date.now(); | |
if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? | |
if (canOwn) { | |
assert(position === 0, 'canOwn must imply no weird position inside the file'); | |
node.contents = buffer.subarray(offset, offset + length); | |
node.usedBytes = length; | |
return length; | |
} else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. | |
node.contents = new Uint8Array(buffer.subarray(offset, offset + length)); | |
node.usedBytes = length; | |
return length; | |
} else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? | |
node.contents.set(buffer.subarray(offset, offset + length), position); | |
return length; | |
} | |
} | |
// Appending to an existing file and we need to reallocate, or source data did not come as a typed array. | |
MEMFS.expandFileStorage(node, position+length); | |
if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available. | |
else { | |
for (var i = 0; i < length; i++) { | |
node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. | |
} | |
} | |
node.usedBytes = Math.max(node.usedBytes, position+length); | |
return length; | |
},llseek:function (stream, offset, whence) { | |
var position = offset; | |
if (whence === 1) { // SEEK_CUR. | |
position += stream.position; | |
} else if (whence === 2) { // SEEK_END. | |
if (FS.isFile(stream.node.mode)) { | |
position += stream.node.usedBytes; | |
} | |
} | |
if (position < 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
return position; | |
},allocate:function (stream, offset, length) { | |
MEMFS.expandFileStorage(stream.node, offset + length); | |
stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); | |
},mmap:function (stream, buffer, offset, length, position, prot, flags) { | |
if (!FS.isFile(stream.node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENODEV); | |
} | |
var ptr; | |
var allocated; | |
var contents = stream.node.contents; | |
// Only make a new copy when MAP_PRIVATE is specified. | |
if ( !(flags & 2) && | |
(contents.buffer === buffer || contents.buffer === buffer.buffer) ) { | |
// We can't emulate MAP_SHARED when the file is not backed by the buffer | |
// we're mapping to (e.g. the HEAP buffer). | |
allocated = false; | |
ptr = contents.byteOffset; | |
} else { | |
// Try to avoid unnecessary slices. | |
if (position > 0 || position + length < stream.node.usedBytes) { | |
if (contents.subarray) { | |
contents = contents.subarray(position, position + length); | |
} else { | |
contents = Array.prototype.slice.call(contents, position, position + length); | |
} | |
} | |
allocated = true; | |
ptr = _malloc(length); | |
if (!ptr) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); | |
} | |
buffer.set(contents, ptr); | |
} | |
return { ptr: ptr, allocated: allocated }; | |
},msync:function (stream, buffer, offset, length, mmapFlags) { | |
if (!FS.isFile(stream.node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENODEV); | |
} | |
if (mmapFlags & 2) { | |
// MAP_PRIVATE calls need not to be synced back to underlying fs | |
return 0; | |
} | |
var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); | |
// should we check if bytesWritten and length are the same? | |
return 0; | |
}}}; | |
var IDBFS={dbs:{},indexedDB:function () { | |
if (typeof indexedDB !== 'undefined') return indexedDB; | |
var ret = null; | |
if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; | |
assert(ret, 'IDBFS used, but indexedDB not supported'); | |
return ret; | |
},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) { | |
// reuse all of the core MEMFS functionality | |
return MEMFS.mount.apply(null, arguments); | |
},syncfs:function (mount, populate, callback) { | |
IDBFS.getLocalSet(mount, function(err, local) { | |
if (err) return callback(err); | |
IDBFS.getRemoteSet(mount, function(err, remote) { | |
if (err) return callback(err); | |
var src = populate ? remote : local; | |
var dst = populate ? local : remote; | |
IDBFS.reconcile(src, dst, callback); | |
}); | |
}); | |
},getDB:function (name, callback) { | |
// check the cache first | |
var db = IDBFS.dbs[name]; | |
if (db) { | |
return callback(null, db); | |
} | |
var req; | |
try { | |
req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); | |
} catch (e) { | |
return callback(e); | |
} | |
if (!req) { | |
return callback("Unable to connect to IndexedDB"); | |
} | |
req.onupgradeneeded = function(e) { | |
var db = e.target.result; | |
var transaction = e.target.transaction; | |
var fileStore; | |
if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { | |
fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); | |
} else { | |
fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); | |
} | |
if (!fileStore.indexNames.contains('timestamp')) { | |
fileStore.createIndex('timestamp', 'timestamp', { unique: false }); | |
} | |
}; | |
req.onsuccess = function() { | |
db = req.result; | |
// add to the cache | |
IDBFS.dbs[name] = db; | |
callback(null, db); | |
}; | |
req.onerror = function(e) { | |
callback(this.error); | |
e.preventDefault(); | |
}; | |
},getLocalSet:function (mount, callback) { | |
var entries = {}; | |
function isRealDir(p) { | |
return p !== '.' && p !== '..'; | |
}; | |
function toAbsolute(root) { | |
return function(p) { | |
return PATH.join2(root, p); | |
} | |
}; | |
var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); | |
while (check.length) { | |
var path = check.pop(); | |
var stat; | |
try { | |
stat = FS.stat(path); | |
} catch (e) { | |
return callback(e); | |
} | |
if (FS.isDir(stat.mode)) { | |
check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); | |
} | |
entries[path] = { timestamp: stat.mtime }; | |
} | |
return callback(null, { type: 'local', entries: entries }); | |
},getRemoteSet:function (mount, callback) { | |
var entries = {}; | |
IDBFS.getDB(mount.mountpoint, function(err, db) { | |
if (err) return callback(err); | |
try { | |
var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); | |
transaction.onerror = function(e) { | |
callback(this.error); | |
e.preventDefault(); | |
}; | |
var store = transaction.objectStore(IDBFS.DB_STORE_NAME); | |
var index = store.index('timestamp'); | |
index.openKeyCursor().onsuccess = function(event) { | |
var cursor = event.target.result; | |
if (!cursor) { | |
return callback(null, { type: 'remote', db: db, entries: entries }); | |
} | |
entries[cursor.primaryKey] = { timestamp: cursor.key }; | |
cursor.continue(); | |
}; | |
} catch (e) { | |
return callback(e); | |
} | |
}); | |
},loadLocalEntry:function (path, callback) { | |
var stat, node; | |
try { | |
var lookup = FS.lookupPath(path); | |
node = lookup.node; | |
stat = FS.stat(path); | |
} catch (e) { | |
return callback(e); | |
} | |
if (FS.isDir(stat.mode)) { | |
return callback(null, { timestamp: stat.mtime, mode: stat.mode }); | |
} else if (FS.isFile(stat.mode)) { | |
// Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array. | |
// Therefore always convert the file contents to a typed array first before writing the data to IndexedDB. | |
node.contents = MEMFS.getFileDataAsTypedArray(node); | |
return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); | |
} else { | |
return callback(new Error('node type not supported')); | |
} | |
},storeLocalEntry:function (path, entry, callback) { | |
try { | |
if (FS.isDir(entry.mode)) { | |
FS.mkdir(path, entry.mode); | |
} else if (FS.isFile(entry.mode)) { | |
FS.writeFile(path, entry.contents, { canOwn: true }); | |
} else { | |
return callback(new Error('node type not supported')); | |
} | |
FS.chmod(path, entry.mode); | |
FS.utime(path, entry.timestamp, entry.timestamp); | |
} catch (e) { | |
return callback(e); | |
} | |
callback(null); | |
},removeLocalEntry:function (path, callback) { | |
try { | |
var lookup = FS.lookupPath(path); | |
var stat = FS.stat(path); | |
if (FS.isDir(stat.mode)) { | |
FS.rmdir(path); | |
} else if (FS.isFile(stat.mode)) { | |
FS.unlink(path); | |
} | |
} catch (e) { | |
return callback(e); | |
} | |
callback(null); | |
},loadRemoteEntry:function (store, path, callback) { | |
var req = store.get(path); | |
req.onsuccess = function(event) { callback(null, event.target.result); }; | |
req.onerror = function(e) { | |
callback(this.error); | |
e.preventDefault(); | |
}; | |
},storeRemoteEntry:function (store, path, entry, callback) { | |
var req = store.put(entry, path); | |
req.onsuccess = function() { callback(null); }; | |
req.onerror = function(e) { | |
callback(this.error); | |
e.preventDefault(); | |
}; | |
},removeRemoteEntry:function (store, path, callback) { | |
var req = store.delete(path); | |
req.onsuccess = function() { callback(null); }; | |
req.onerror = function(e) { | |
callback(this.error); | |
e.preventDefault(); | |
}; | |
},reconcile:function (src, dst, callback) { | |
var total = 0; | |
var create = []; | |
Object.keys(src.entries).forEach(function (key) { | |
var e = src.entries[key]; | |
var e2 = dst.entries[key]; | |
if (!e2 || e.timestamp > e2.timestamp) { | |
create.push(key); | |
total++; | |
} | |
}); | |
var remove = []; | |
Object.keys(dst.entries).forEach(function (key) { | |
var e = dst.entries[key]; | |
var e2 = src.entries[key]; | |
if (!e2) { | |
remove.push(key); | |
total++; | |
} | |
}); | |
if (!total) { | |
return callback(null); | |
} | |
var errored = false; | |
var completed = 0; | |
var db = src.type === 'remote' ? src.db : dst.db; | |
var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); | |
var store = transaction.objectStore(IDBFS.DB_STORE_NAME); | |
function done(err) { | |
if (err) { | |
if (!done.errored) { | |
done.errored = true; | |
return callback(err); | |
} | |
return; | |
} | |
if (++completed >= total) { | |
return callback(null); | |
} | |
}; | |
transaction.onerror = function(e) { | |
done(this.error); | |
e.preventDefault(); | |
}; | |
// sort paths in ascending order so directory entries are created | |
// before the files inside them | |
create.sort().forEach(function (path) { | |
if (dst.type === 'local') { | |
IDBFS.loadRemoteEntry(store, path, function (err, entry) { | |
if (err) return done(err); | |
IDBFS.storeLocalEntry(path, entry, done); | |
}); | |
} else { | |
IDBFS.loadLocalEntry(path, function (err, entry) { | |
if (err) return done(err); | |
IDBFS.storeRemoteEntry(store, path, entry, done); | |
}); | |
} | |
}); | |
// sort paths in descending order so files are deleted before their | |
// parent directories | |
remove.sort().reverse().forEach(function(path) { | |
if (dst.type === 'local') { | |
IDBFS.removeLocalEntry(path, done); | |
} else { | |
IDBFS.removeRemoteEntry(store, path, done); | |
} | |
}); | |
}}; | |
var NODEFS={isWindows:false,staticInit:function () { | |
NODEFS.isWindows = !!process.platform.match(/^win/); | |
var flags = process["binding"]("constants"); | |
// Node.js 4 compatibility: it has no namespaces for constants | |
if (flags["fs"]) { | |
flags = flags["fs"]; | |
} | |
NODEFS.flagsForNodeMap = { | |
"1024": flags["O_APPEND"], | |
"64": flags["O_CREAT"], | |
"128": flags["O_EXCL"], | |
"0": flags["O_RDONLY"], | |
"2": flags["O_RDWR"], | |
"4096": flags["O_SYNC"], | |
"512": flags["O_TRUNC"], | |
"1": flags["O_WRONLY"] | |
}; | |
},bufferFrom:function (arrayBuffer) { | |
// Node.js < 4.5 compatibility: Buffer.from does not support ArrayBuffer | |
// Buffer.from before 4.5 was just a method inherited from Uint8Array | |
// Buffer.alloc has been added with Buffer.from together, so check it instead | |
return Buffer.alloc ? Buffer.from(arrayBuffer) : new Buffer(arrayBuffer); | |
},mount:function (mount) { | |
assert(ENVIRONMENT_IS_NODE); | |
return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); | |
},createNode:function (parent, name, mode, dev) { | |
if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
var node = FS.createNode(parent, name, mode); | |
node.node_ops = NODEFS.node_ops; | |
node.stream_ops = NODEFS.stream_ops; | |
return node; | |
},getMode:function (path) { | |
var stat; | |
try { | |
stat = fs.lstatSync(path); | |
if (NODEFS.isWindows) { | |
// Node.js on Windows never represents permission bit 'x', so | |
// propagate read bits to execute bits | |
stat.mode = stat.mode | ((stat.mode & 292) >> 2); | |
} | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
return stat.mode; | |
},realPath:function (node) { | |
var parts = []; | |
while (node.parent !== node) { | |
parts.push(node.name); | |
node = node.parent; | |
} | |
parts.push(node.mount.opts.root); | |
parts.reverse(); | |
return PATH.join.apply(null, parts); | |
},flagsForNode:function (flags) { | |
flags &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file. | |
flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file. | |
flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file. | |
flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process. | |
var newFlags = 0; | |
for (var k in NODEFS.flagsForNodeMap) { | |
if (flags & k) { | |
newFlags |= NODEFS.flagsForNodeMap[k]; | |
flags ^= k; | |
} | |
} | |
if (!flags) { | |
return newFlags; | |
} else { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
},node_ops:{getattr:function (node) { | |
var path = NODEFS.realPath(node); | |
var stat; | |
try { | |
stat = fs.lstatSync(path); | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
// node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. | |
// See http://support.microsoft.com/kb/140365 | |
if (NODEFS.isWindows && !stat.blksize) { | |
stat.blksize = 4096; | |
} | |
if (NODEFS.isWindows && !stat.blocks) { | |
stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0; | |
} | |
return { | |
dev: stat.dev, | |
ino: stat.ino, | |
mode: stat.mode, | |
nlink: stat.nlink, | |
uid: stat.uid, | |
gid: stat.gid, | |
rdev: stat.rdev, | |
size: stat.size, | |
atime: stat.atime, | |
mtime: stat.mtime, | |
ctime: stat.ctime, | |
blksize: stat.blksize, | |
blocks: stat.blocks | |
}; | |
},setattr:function (node, attr) { | |
var path = NODEFS.realPath(node); | |
try { | |
if (attr.mode !== undefined) { | |
fs.chmodSync(path, attr.mode); | |
// update the common node structure mode as well | |
node.mode = attr.mode; | |
} | |
if (attr.timestamp !== undefined) { | |
var date = new Date(attr.timestamp); | |
fs.utimesSync(path, date, date); | |
} | |
if (attr.size !== undefined) { | |
fs.truncateSync(path, attr.size); | |
} | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
},lookup:function (parent, name) { | |
var path = PATH.join2(NODEFS.realPath(parent), name); | |
var mode = NODEFS.getMode(path); | |
return NODEFS.createNode(parent, name, mode); | |
},mknod:function (parent, name, mode, dev) { | |
var node = NODEFS.createNode(parent, name, mode, dev); | |
// create the backing node for this in the fs root as well | |
var path = NODEFS.realPath(node); | |
try { | |
if (FS.isDir(node.mode)) { | |
fs.mkdirSync(path, node.mode); | |
} else { | |
fs.writeFileSync(path, '', { mode: node.mode }); | |
} | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
return node; | |
},rename:function (oldNode, newDir, newName) { | |
var oldPath = NODEFS.realPath(oldNode); | |
var newPath = PATH.join2(NODEFS.realPath(newDir), newName); | |
try { | |
fs.renameSync(oldPath, newPath); | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
},unlink:function (parent, name) { | |
var path = PATH.join2(NODEFS.realPath(parent), name); | |
try { | |
fs.unlinkSync(path); | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
},rmdir:function (parent, name) { | |
var path = PATH.join2(NODEFS.realPath(parent), name); | |
try { | |
fs.rmdirSync(path); | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
},readdir:function (node) { | |
var path = NODEFS.realPath(node); | |
try { | |
return fs.readdirSync(path); | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
},symlink:function (parent, newName, oldPath) { | |
var newPath = PATH.join2(NODEFS.realPath(parent), newName); | |
try { | |
fs.symlinkSync(oldPath, newPath); | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
},readlink:function (node) { | |
var path = NODEFS.realPath(node); | |
try { | |
path = fs.readlinkSync(path); | |
path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path); | |
return path; | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
}},stream_ops:{open:function (stream) { | |
var path = NODEFS.realPath(stream.node); | |
try { | |
if (FS.isFile(stream.node.mode)) { | |
stream.nfd = fs.openSync(path, NODEFS.flagsForNode(stream.flags)); | |
} | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
},close:function (stream) { | |
try { | |
if (FS.isFile(stream.node.mode) && stream.nfd) { | |
fs.closeSync(stream.nfd); | |
} | |
} catch (e) { | |
if (!e.code) throw e; | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
},read:function (stream, buffer, offset, length, position) { | |
// Node.js < 6 compatibility: node errors on 0 length reads | |
if (length === 0) return 0; | |
try { | |
return fs.readSync(stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position); | |
} catch (e) { | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
},write:function (stream, buffer, offset, length, position) { | |
try { | |
return fs.writeSync(stream.nfd, NODEFS.bufferFrom(buffer.buffer), offset, length, position); | |
} catch (e) { | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
},llseek:function (stream, offset, whence) { | |
var position = offset; | |
if (whence === 1) { // SEEK_CUR. | |
position += stream.position; | |
} else if (whence === 2) { // SEEK_END. | |
if (FS.isFile(stream.node.mode)) { | |
try { | |
var stat = fs.fstatSync(stream.nfd); | |
position += stat.size; | |
} catch (e) { | |
throw new FS.ErrnoError(ERRNO_CODES[e.code]); | |
} | |
} | |
} | |
if (position < 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
return position; | |
}}}; | |
var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) { | |
assert(ENVIRONMENT_IS_WORKER); | |
if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync(); | |
var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0); | |
var createdParents = {}; | |
function ensureParent(path) { | |
// return the parent node, creating subdirs as necessary | |
var parts = path.split('/'); | |
var parent = root; | |
for (var i = 0; i < parts.length-1; i++) { | |
var curr = parts.slice(0, i+1).join('/'); | |
// Issue 4254: Using curr as a node name will prevent the node | |
// from being found in FS.nameTable when FS.open is called on | |
// a path which holds a child of this node, | |
// given that all FS functions assume node names | |
// are just their corresponding parts within their given path, | |
// rather than incremental aggregates which include their parent's | |
// directories. | |
if (!createdParents[curr]) { | |
createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0); | |
} | |
parent = createdParents[curr]; | |
} | |
return parent; | |
} | |
function base(path) { | |
var parts = path.split('/'); | |
return parts[parts.length-1]; | |
} | |
// We also accept FileList here, by using Array.prototype | |
Array.prototype.forEach.call(mount.opts["files"] || [], function(file) { | |
WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate); | |
}); | |
(mount.opts["blobs"] || []).forEach(function(obj) { | |
WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]); | |
}); | |
(mount.opts["packages"] || []).forEach(function(pack) { | |
pack['metadata'].files.forEach(function(file) { | |
var name = file.filename.substr(1); // remove initial slash | |
WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end)); | |
}); | |
}); | |
return root; | |
},createNode:function (parent, name, mode, dev, contents, mtime) { | |
var node = FS.createNode(parent, name, mode); | |
node.mode = mode; | |
node.node_ops = WORKERFS.node_ops; | |
node.stream_ops = WORKERFS.stream_ops; | |
node.timestamp = (mtime || new Date).getTime(); | |
assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); | |
if (mode === WORKERFS.FILE_MODE) { | |
node.size = contents.size; | |
node.contents = contents; | |
} else { | |
node.size = 4096; | |
node.contents = {}; | |
} | |
if (parent) { | |
parent.contents[name] = node; | |
} | |
return node; | |
},node_ops:{getattr:function (node) { | |
return { | |
dev: 1, | |
ino: undefined, | |
mode: node.mode, | |
nlink: 1, | |
uid: 0, | |
gid: 0, | |
rdev: undefined, | |
size: node.size, | |
atime: new Date(node.timestamp), | |
mtime: new Date(node.timestamp), | |
ctime: new Date(node.timestamp), | |
blksize: 4096, | |
blocks: Math.ceil(node.size / 4096), | |
}; | |
},setattr:function (node, attr) { | |
if (attr.mode !== undefined) { | |
node.mode = attr.mode; | |
} | |
if (attr.timestamp !== undefined) { | |
node.timestamp = attr.timestamp; | |
} | |
},lookup:function (parent, name) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOENT); | |
},mknod:function (parent, name, mode, dev) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
},rename:function (oldNode, newDir, newName) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
},unlink:function (parent, name) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
},rmdir:function (parent, name) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
},readdir:function (node) { | |
var entries = ['.', '..']; | |
for (var key in node.contents) { | |
if (!node.contents.hasOwnProperty(key)) { | |
continue; | |
} | |
entries.push(key); | |
} | |
return entries; | |
},symlink:function (parent, newName, oldPath) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
},readlink:function (node) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
}},stream_ops:{read:function (stream, buffer, offset, length, position) { | |
if (position >= stream.node.size) return 0; | |
var chunk = stream.node.contents.slice(position, position + length); | |
var ab = WORKERFS.reader.readAsArrayBuffer(chunk); | |
buffer.set(new Uint8Array(ab), offset); | |
return chunk.size; | |
},write:function (stream, buffer, offset, length, position) { | |
throw new FS.ErrnoError(ERRNO_CODES.EIO); | |
},llseek:function (stream, offset, whence) { | |
var position = offset; | |
if (whence === 1) { // SEEK_CUR. | |
position += stream.position; | |
} else if (whence === 2) { // SEEK_END. | |
if (FS.isFile(stream.node.mode)) { | |
position += stream.node.size; | |
} | |
} | |
if (position < 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
return position; | |
}}}; | |
var _stdin=STATICTOP; STATICTOP += 16;; | |
var _stdout=STATICTOP; STATICTOP += 16;; | |
var _stderr=STATICTOP; STATICTOP += 16;;var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) { | |
if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); | |
return ___setErrNo(e.errno); | |
},lookupPath:function (path, opts) { | |
path = PATH.resolve(FS.cwd(), path); | |
opts = opts || {}; | |
if (!path) return { path: '', node: null }; | |
var defaults = { | |
follow_mount: true, | |
recurse_count: 0 | |
}; | |
for (var key in defaults) { | |
if (opts[key] === undefined) { | |
opts[key] = defaults[key]; | |
} | |
} | |
if (opts.recurse_count > 8) { // max recursive lookup of 8 | |
throw new FS.ErrnoError(ERRNO_CODES.ELOOP); | |
} | |
// split the path | |
var parts = PATH.normalizeArray(path.split('/').filter(function(p) { | |
return !!p; | |
}), false); | |
// start at the root | |
var current = FS.root; | |
var current_path = '/'; | |
for (var i = 0; i < parts.length; i++) { | |
var islast = (i === parts.length-1); | |
if (islast && opts.parent) { | |
// stop resolving | |
break; | |
} | |
current = FS.lookupNode(current, parts[i]); | |
current_path = PATH.join2(current_path, parts[i]); | |
// jump to the mount's root node if this is a mountpoint | |
if (FS.isMountpoint(current)) { | |
if (!islast || (islast && opts.follow_mount)) { | |
current = current.mounted.root; | |
} | |
} | |
// by default, lookupPath will not follow a symlink if it is the final path component. | |
// setting opts.follow = true will override this behavior. | |
if (!islast || opts.follow) { | |
var count = 0; | |
while (FS.isLink(current.mode)) { | |
var link = FS.readlink(current_path); | |
current_path = PATH.resolve(PATH.dirname(current_path), link); | |
var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); | |
current = lookup.node; | |
if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). | |
throw new FS.ErrnoError(ERRNO_CODES.ELOOP); | |
} | |
} | |
} | |
} | |
return { path: current_path, node: current }; | |
},getPath:function (node) { | |
var path; | |
while (true) { | |
if (FS.isRoot(node)) { | |
var mount = node.mount.mountpoint; | |
if (!path) return mount; | |
return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; | |
} | |
path = path ? node.name + '/' + path : node.name; | |
node = node.parent; | |
} | |
},hashName:function (parentid, name) { | |
var hash = 0; | |
for (var i = 0; i < name.length; i++) { | |
hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; | |
} | |
return ((parentid + hash) >>> 0) % FS.nameTable.length; | |
},hashAddNode:function (node) { | |
var hash = FS.hashName(node.parent.id, node.name); | |
node.name_next = FS.nameTable[hash]; | |
FS.nameTable[hash] = node; | |
},hashRemoveNode:function (node) { | |
var hash = FS.hashName(node.parent.id, node.name); | |
if (FS.nameTable[hash] === node) { | |
FS.nameTable[hash] = node.name_next; | |
} else { | |
var current = FS.nameTable[hash]; | |
while (current) { | |
if (current.name_next === node) { | |
current.name_next = node.name_next; | |
break; | |
} | |
current = current.name_next; | |
} | |
} | |
},lookupNode:function (parent, name) { | |
var err = FS.mayLookup(parent); | |
if (err) { | |
throw new FS.ErrnoError(err, parent); | |
} | |
var hash = FS.hashName(parent.id, name); | |
for (var node = FS.nameTable[hash]; node; node = node.name_next) { | |
var nodeName = node.name; | |
if (node.parent.id === parent.id && nodeName === name) { | |
return node; | |
} | |
} | |
// if we failed to find it in the cache, call into the VFS | |
return FS.lookup(parent, name); | |
},createNode:function (parent, name, mode, rdev) { | |
if (!FS.FSNode) { | |
FS.FSNode = function(parent, name, mode, rdev) { | |
if (!parent) { | |
parent = this; // root node sets parent to itself | |
} | |
this.parent = parent; | |
this.mount = parent.mount; | |
this.mounted = null; | |
this.id = FS.nextInode++; | |
this.name = name; | |
this.mode = mode; | |
this.node_ops = {}; | |
this.stream_ops = {}; | |
this.rdev = rdev; | |
}; | |
FS.FSNode.prototype = {}; | |
// compatibility | |
var readMode = 292 | 73; | |
var writeMode = 146; | |
// NOTE we must use Object.defineProperties instead of individual calls to | |
// Object.defineProperty in order to make closure compiler happy | |
Object.defineProperties(FS.FSNode.prototype, { | |
read: { | |
get: function() { return (this.mode & readMode) === readMode; }, | |
set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } | |
}, | |
write: { | |
get: function() { return (this.mode & writeMode) === writeMode; }, | |
set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } | |
}, | |
isFolder: { | |
get: function() { return FS.isDir(this.mode); } | |
}, | |
isDevice: { | |
get: function() { return FS.isChrdev(this.mode); } | |
} | |
}); | |
} | |
var node = new FS.FSNode(parent, name, mode, rdev); | |
FS.hashAddNode(node); | |
return node; | |
},destroyNode:function (node) { | |
FS.hashRemoveNode(node); | |
},isRoot:function (node) { | |
return node === node.parent; | |
},isMountpoint:function (node) { | |
return !!node.mounted; | |
},isFile:function (mode) { | |
return (mode & 61440) === 32768; | |
},isDir:function (mode) { | |
return (mode & 61440) === 16384; | |
},isLink:function (mode) { | |
return (mode & 61440) === 40960; | |
},isChrdev:function (mode) { | |
return (mode & 61440) === 8192; | |
},isBlkdev:function (mode) { | |
return (mode & 61440) === 24576; | |
},isFIFO:function (mode) { | |
return (mode & 61440) === 4096; | |
},isSocket:function (mode) { | |
return (mode & 49152) === 49152; | |
},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) { | |
var flags = FS.flagModes[str]; | |
if (typeof flags === 'undefined') { | |
throw new Error('Unknown file open mode: ' + str); | |
} | |
return flags; | |
},flagsToPermissionString:function (flag) { | |
var perms = ['r', 'w', 'rw'][flag & 3]; | |
if ((flag & 512)) { | |
perms += 'w'; | |
} | |
return perms; | |
},nodePermissions:function (node, perms) { | |
if (FS.ignorePermissions) { | |
return 0; | |
} | |
// return 0 if any user, group or owner bits are set. | |
if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { | |
return ERRNO_CODES.EACCES; | |
} else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { | |
return ERRNO_CODES.EACCES; | |
} else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { | |
return ERRNO_CODES.EACCES; | |
} | |
return 0; | |
},mayLookup:function (dir) { | |
var err = FS.nodePermissions(dir, 'x'); | |
if (err) return err; | |
if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; | |
return 0; | |
},mayCreate:function (dir, name) { | |
try { | |
var node = FS.lookupNode(dir, name); | |
return ERRNO_CODES.EEXIST; | |
} catch (e) { | |
} | |
return FS.nodePermissions(dir, 'wx'); | |
},mayDelete:function (dir, name, isdir) { | |
var node; | |
try { | |
node = FS.lookupNode(dir, name); | |
} catch (e) { | |
return e.errno; | |
} | |
var err = FS.nodePermissions(dir, 'wx'); | |
if (err) { | |
return err; | |
} | |
if (isdir) { | |
if (!FS.isDir(node.mode)) { | |
return ERRNO_CODES.ENOTDIR; | |
} | |
if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { | |
return ERRNO_CODES.EBUSY; | |
} | |
} else { | |
if (FS.isDir(node.mode)) { | |
return ERRNO_CODES.EISDIR; | |
} | |
} | |
return 0; | |
},mayOpen:function (node, flags) { | |
if (!node) { | |
return ERRNO_CODES.ENOENT; | |
} | |
if (FS.isLink(node.mode)) { | |
return ERRNO_CODES.ELOOP; | |
} else if (FS.isDir(node.mode)) { | |
if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write | |
(flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) | |
return ERRNO_CODES.EISDIR; | |
} | |
} | |
return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); | |
},MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) { | |
fd_start = fd_start || 0; | |
fd_end = fd_end || FS.MAX_OPEN_FDS; | |
for (var fd = fd_start; fd <= fd_end; fd++) { | |
if (!FS.streams[fd]) { | |
return fd; | |
} | |
} | |
throw new FS.ErrnoError(ERRNO_CODES.EMFILE); | |
},getStream:function (fd) { | |
return FS.streams[fd]; | |
},createStream:function (stream, fd_start, fd_end) { | |
if (!FS.FSStream) { | |
FS.FSStream = function(){}; | |
FS.FSStream.prototype = {}; | |
// compatibility | |
Object.defineProperties(FS.FSStream.prototype, { | |
object: { | |
get: function() { return this.node; }, | |
set: function(val) { this.node = val; } | |
}, | |
isRead: { | |
get: function() { return (this.flags & 2097155) !== 1; } | |
}, | |
isWrite: { | |
get: function() { return (this.flags & 2097155) !== 0; } | |
}, | |
isAppend: { | |
get: function() { return (this.flags & 1024); } | |
} | |
}); | |
} | |
// clone it, so we can return an instance of FSStream | |
var newStream = new FS.FSStream(); | |
for (var p in stream) { | |
newStream[p] = stream[p]; | |
} | |
stream = newStream; | |
var fd = FS.nextfd(fd_start, fd_end); | |
stream.fd = fd; | |
FS.streams[fd] = stream; | |
return stream; | |
},closeStream:function (fd) { | |
FS.streams[fd] = null; | |
},chrdev_stream_ops:{open:function (stream) { | |
var device = FS.getDevice(stream.node.rdev); | |
// override node's stream ops with the device's | |
stream.stream_ops = device.stream_ops; | |
// forward the open call | |
if (stream.stream_ops.open) { | |
stream.stream_ops.open(stream); | |
} | |
},llseek:function () { | |
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); | |
}},major:function (dev) { | |
return ((dev) >> 8); | |
},minor:function (dev) { | |
return ((dev) & 0xff); | |
},makedev:function (ma, mi) { | |
return ((ma) << 8 | (mi)); | |
},registerDevice:function (dev, ops) { | |
FS.devices[dev] = { stream_ops: ops }; | |
},getDevice:function (dev) { | |
return FS.devices[dev]; | |
},getMounts:function (mount) { | |
var mounts = []; | |
var check = [mount]; | |
while (check.length) { | |
var m = check.pop(); | |
mounts.push(m); | |
check.push.apply(check, m.mounts); | |
} | |
return mounts; | |
},syncfs:function (populate, callback) { | |
if (typeof(populate) === 'function') { | |
callback = populate; | |
populate = false; | |
} | |
FS.syncFSRequests++; | |
if (FS.syncFSRequests > 1) { | |
console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work'); | |
} | |
var mounts = FS.getMounts(FS.root.mount); | |
var completed = 0; | |
function doCallback(err) { | |
assert(FS.syncFSRequests > 0); | |
FS.syncFSRequests--; | |
return callback(err); | |
} | |
function done(err) { | |
if (err) { | |
if (!done.errored) { | |
done.errored = true; | |
return doCallback(err); | |
} | |
return; | |
} | |
if (++completed >= mounts.length) { | |
doCallback(null); | |
} | |
}; | |
// sync all mounts | |
mounts.forEach(function (mount) { | |
if (!mount.type.syncfs) { | |
return done(null); | |
} | |
mount.type.syncfs(mount, populate, done); | |
}); | |
},mount:function (type, opts, mountpoint) { | |
var root = mountpoint === '/'; | |
var pseudo = !mountpoint; | |
var node; | |
if (root && FS.root) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBUSY); | |
} else if (!root && !pseudo) { | |
var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); | |
mountpoint = lookup.path; // use the absolute path | |
node = lookup.node; | |
if (FS.isMountpoint(node)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBUSY); | |
} | |
if (!FS.isDir(node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); | |
} | |
} | |
var mount = { | |
type: type, | |
opts: opts, | |
mountpoint: mountpoint, | |
mounts: [] | |
}; | |
// create a root node for the fs | |
var mountRoot = type.mount(mount); | |
mountRoot.mount = mount; | |
mount.root = mountRoot; | |
if (root) { | |
FS.root = mountRoot; | |
} else if (node) { | |
// set as a mountpoint | |
node.mounted = mount; | |
// add the new mount to the current mount's children | |
if (node.mount) { | |
node.mount.mounts.push(mount); | |
} | |
} | |
return mountRoot; | |
},unmount:function (mountpoint) { | |
var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); | |
if (!FS.isMountpoint(lookup.node)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
// destroy the nodes for this mount, and all its child mounts | |
var node = lookup.node; | |
var mount = node.mounted; | |
var mounts = FS.getMounts(mount); | |
Object.keys(FS.nameTable).forEach(function (hash) { | |
var current = FS.nameTable[hash]; | |
while (current) { | |
var next = current.name_next; | |
if (mounts.indexOf(current.mount) !== -1) { | |
FS.destroyNode(current); | |
} | |
current = next; | |
} | |
}); | |
// no longer a mountpoint | |
node.mounted = null; | |
// remove this mount from the child mounts | |
var idx = node.mount.mounts.indexOf(mount); | |
assert(idx !== -1); | |
node.mount.mounts.splice(idx, 1); | |
},lookup:function (parent, name) { | |
return parent.node_ops.lookup(parent, name); | |
},mknod:function (path, mode, dev) { | |
var lookup = FS.lookupPath(path, { parent: true }); | |
var parent = lookup.node; | |
var name = PATH.basename(path); | |
if (!name || name === '.' || name === '..') { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
var err = FS.mayCreate(parent, name); | |
if (err) { | |
throw new FS.ErrnoError(err); | |
} | |
if (!parent.node_ops.mknod) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
} | |
return parent.node_ops.mknod(parent, name, mode, dev); | |
},create:function (path, mode) { | |
mode = mode !== undefined ? mode : 438 /* 0666 */; | |
mode &= 4095; | |
mode |= 32768; | |
return FS.mknod(path, mode, 0); | |
},mkdir:function (path, mode) { | |
mode = mode !== undefined ? mode : 511 /* 0777 */; | |
mode &= 511 | 512; | |
mode |= 16384; | |
return FS.mknod(path, mode, 0); | |
},mkdirTree:function (path, mode) { | |
var dirs = path.split('/'); | |
var d = ''; | |
for (var i = 0; i < dirs.length; ++i) { | |
if (!dirs[i]) continue; | |
d += '/' + dirs[i]; | |
try { | |
FS.mkdir(d, mode); | |
} catch(e) { | |
if (e.errno != ERRNO_CODES.EEXIST) throw e; | |
} | |
} | |
},mkdev:function (path, mode, dev) { | |
if (typeof(dev) === 'undefined') { | |
dev = mode; | |
mode = 438 /* 0666 */; | |
} | |
mode |= 8192; | |
return FS.mknod(path, mode, dev); | |
},symlink:function (oldpath, newpath) { | |
if (!PATH.resolve(oldpath)) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOENT); | |
} | |
var lookup = FS.lookupPath(newpath, { parent: true }); | |
var parent = lookup.node; | |
if (!parent) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOENT); | |
} | |
var newname = PATH.basename(newpath); | |
var err = FS.mayCreate(parent, newname); | |
if (err) { | |
throw new FS.ErrnoError(err); | |
} | |
if (!parent.node_ops.symlink) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
} | |
return parent.node_ops.symlink(parent, newname, oldpath); | |
},rename:function (old_path, new_path) { | |
var old_dirname = PATH.dirname(old_path); | |
var new_dirname = PATH.dirname(new_path); | |
var old_name = PATH.basename(old_path); | |
var new_name = PATH.basename(new_path); | |
// parents must exist | |
var lookup, old_dir, new_dir; | |
try { | |
lookup = FS.lookupPath(old_path, { parent: true }); | |
old_dir = lookup.node; | |
lookup = FS.lookupPath(new_path, { parent: true }); | |
new_dir = lookup.node; | |
} catch (e) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBUSY); | |
} | |
if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); | |
// need to be part of the same mount | |
if (old_dir.mount !== new_dir.mount) { | |
throw new FS.ErrnoError(ERRNO_CODES.EXDEV); | |
} | |
// source must exist | |
var old_node = FS.lookupNode(old_dir, old_name); | |
// old path should not be an ancestor of the new path | |
var relative = PATH.relative(old_path, new_dirname); | |
if (relative.charAt(0) !== '.') { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
// new path should not be an ancestor of the old path | |
relative = PATH.relative(new_path, old_dirname); | |
if (relative.charAt(0) !== '.') { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); | |
} | |
// see if the new path already exists | |
var new_node; | |
try { | |
new_node = FS.lookupNode(new_dir, new_name); | |
} catch (e) { | |
// not fatal | |
} | |
// early out if nothing needs to change | |
if (old_node === new_node) { | |
return; | |
} | |
// we'll need to delete the old entry | |
var isdir = FS.isDir(old_node.mode); | |
var err = FS.mayDelete(old_dir, old_name, isdir); | |
if (err) { | |
throw new FS.ErrnoError(err); | |
} | |
// need delete permissions if we'll be overwriting. | |
// need create permissions if new doesn't already exist. | |
err = new_node ? | |
FS.mayDelete(new_dir, new_name, isdir) : | |
FS.mayCreate(new_dir, new_name); | |
if (err) { | |
throw new FS.ErrnoError(err); | |
} | |
if (!old_dir.node_ops.rename) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
} | |
if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBUSY); | |
} | |
// if we are going to change the parent, check write permissions | |
if (new_dir !== old_dir) { | |
err = FS.nodePermissions(old_dir, 'w'); | |
if (err) { | |
throw new FS.ErrnoError(err); | |
} | |
} | |
try { | |
if (FS.trackingDelegate['willMovePath']) { | |
FS.trackingDelegate['willMovePath'](old_path, new_path); | |
} | |
} catch(e) { | |
console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); | |
} | |
// remove the node from the lookup hash | |
FS.hashRemoveNode(old_node); | |
// do the underlying fs rename | |
try { | |
old_dir.node_ops.rename(old_node, new_dir, new_name); | |
} catch (e) { | |
throw e; | |
} finally { | |
// add the node back to the hash (in case node_ops.rename | |
// changed its name) | |
FS.hashAddNode(old_node); | |
} | |
try { | |
if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); | |
} catch(e) { | |
console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); | |
} | |
},rmdir:function (path) { | |
var lookup = FS.lookupPath(path, { parent: true }); | |
var parent = lookup.node; | |
var name = PATH.basename(path); | |
var node = FS.lookupNode(parent, name); | |
var err = FS.mayDelete(parent, name, true); | |
if (err) { | |
throw new FS.ErrnoError(err); | |
} | |
if (!parent.node_ops.rmdir) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
} | |
if (FS.isMountpoint(node)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBUSY); | |
} | |
try { | |
if (FS.trackingDelegate['willDeletePath']) { | |
FS.trackingDelegate['willDeletePath'](path); | |
} | |
} catch(e) { | |
console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); | |
} | |
parent.node_ops.rmdir(parent, name); | |
FS.destroyNode(node); | |
try { | |
if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); | |
} catch(e) { | |
console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); | |
} | |
},readdir:function (path) { | |
var lookup = FS.lookupPath(path, { follow: true }); | |
var node = lookup.node; | |
if (!node.node_ops.readdir) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); | |
} | |
return node.node_ops.readdir(node); | |
},unlink:function (path) { | |
var lookup = FS.lookupPath(path, { parent: true }); | |
var parent = lookup.node; | |
var name = PATH.basename(path); | |
var node = FS.lookupNode(parent, name); | |
var err = FS.mayDelete(parent, name, false); | |
if (err) { | |
// According to POSIX, we should map EISDIR to EPERM, but | |
// we instead do what Linux does (and we must, as we use | |
// the musl linux libc). | |
throw new FS.ErrnoError(err); | |
} | |
if (!parent.node_ops.unlink) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
} | |
if (FS.isMountpoint(node)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBUSY); | |
} | |
try { | |
if (FS.trackingDelegate['willDeletePath']) { | |
FS.trackingDelegate['willDeletePath'](path); | |
} | |
} catch(e) { | |
console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); | |
} | |
parent.node_ops.unlink(parent, name); | |
FS.destroyNode(node); | |
try { | |
if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); | |
} catch(e) { | |
console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); | |
} | |
},readlink:function (path) { | |
var lookup = FS.lookupPath(path); | |
var link = lookup.node; | |
if (!link) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOENT); | |
} | |
if (!link.node_ops.readlink) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); | |
},stat:function (path, dontFollow) { | |
var lookup = FS.lookupPath(path, { follow: !dontFollow }); | |
var node = lookup.node; | |
if (!node) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOENT); | |
} | |
if (!node.node_ops.getattr) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
} | |
return node.node_ops.getattr(node); | |
},lstat:function (path) { | |
return FS.stat(path, true); | |
},chmod:function (path, mode, dontFollow) { | |
var node; | |
if (typeof path === 'string') { | |
var lookup = FS.lookupPath(path, { follow: !dontFollow }); | |
node = lookup.node; | |
} else { | |
node = path; | |
} | |
if (!node.node_ops.setattr) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
} | |
node.node_ops.setattr(node, { | |
mode: (mode & 4095) | (node.mode & ~4095), | |
timestamp: Date.now() | |
}); | |
},lchmod:function (path, mode) { | |
FS.chmod(path, mode, true); | |
},fchmod:function (fd, mode) { | |
var stream = FS.getStream(fd); | |
if (!stream) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
} | |
FS.chmod(stream.node, mode); | |
},chown:function (path, uid, gid, dontFollow) { | |
var node; | |
if (typeof path === 'string') { | |
var lookup = FS.lookupPath(path, { follow: !dontFollow }); | |
node = lookup.node; | |
} else { | |
node = path; | |
} | |
if (!node.node_ops.setattr) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
} | |
node.node_ops.setattr(node, { | |
timestamp: Date.now() | |
// we ignore the uid / gid for now | |
}); | |
},lchown:function (path, uid, gid) { | |
FS.chown(path, uid, gid, true); | |
},fchown:function (fd, uid, gid) { | |
var stream = FS.getStream(fd); | |
if (!stream) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
} | |
FS.chown(stream.node, uid, gid); | |
},truncate:function (path, len) { | |
if (len < 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
var node; | |
if (typeof path === 'string') { | |
var lookup = FS.lookupPath(path, { follow: true }); | |
node = lookup.node; | |
} else { | |
node = path; | |
} | |
if (!node.node_ops.setattr) { | |
throw new FS.ErrnoError(ERRNO_CODES.EPERM); | |
} | |
if (FS.isDir(node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EISDIR); | |
} | |
if (!FS.isFile(node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
var err = FS.nodePermissions(node, 'w'); | |
if (err) { | |
throw new FS.ErrnoError(err); | |
} | |
node.node_ops.setattr(node, { | |
size: len, | |
timestamp: Date.now() | |
}); | |
},ftruncate:function (fd, len) { | |
var stream = FS.getStream(fd); | |
if (!stream) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
} | |
if ((stream.flags & 2097155) === 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
FS.truncate(stream.node, len); | |
},utime:function (path, atime, mtime) { | |
var lookup = FS.lookupPath(path, { follow: true }); | |
var node = lookup.node; | |
node.node_ops.setattr(node, { | |
timestamp: Math.max(atime, mtime) | |
}); | |
},open:function (path, flags, mode, fd_start, fd_end) { | |
if (path === "") { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOENT); | |
} | |
flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; | |
mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; | |
if ((flags & 64)) { | |
mode = (mode & 4095) | 32768; | |
} else { | |
mode = 0; | |
} | |
var node; | |
if (typeof path === 'object') { | |
node = path; | |
} else { | |
path = PATH.normalize(path); | |
try { | |
var lookup = FS.lookupPath(path, { | |
follow: !(flags & 131072) | |
}); | |
node = lookup.node; | |
} catch (e) { | |
// ignore | |
} | |
} | |
// perhaps we need to create the node | |
var created = false; | |
if ((flags & 64)) { | |
if (node) { | |
// if O_CREAT and O_EXCL are set, error out if the node already exists | |
if ((flags & 128)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EEXIST); | |
} | |
} else { | |
// node doesn't exist, try to create it | |
node = FS.mknod(path, mode, 0); | |
created = true; | |
} | |
} | |
if (!node) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOENT); | |
} | |
// can't truncate a device | |
if (FS.isChrdev(node.mode)) { | |
flags &= ~512; | |
} | |
// if asked only for a directory, then this must be one | |
if ((flags & 65536) && !FS.isDir(node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); | |
} | |
// check permissions, if this is not a file we just created now (it is ok to | |
// create and write to a file with read-only permissions; it is read-only | |
// for later use) | |
if (!created) { | |
var err = FS.mayOpen(node, flags); | |
if (err) { | |
throw new FS.ErrnoError(err); | |
} | |
} | |
// do truncation if necessary | |
if ((flags & 512)) { | |
FS.truncate(node, 0); | |
} | |
// we've already handled these, don't pass down to the underlying vfs | |
flags &= ~(128 | 512); | |
// register the stream with the filesystem | |
var stream = FS.createStream({ | |
node: node, | |
path: FS.getPath(node), // we want the absolute path to the node | |
flags: flags, | |
seekable: true, | |
position: 0, | |
stream_ops: node.stream_ops, | |
// used by the file family libc calls (fopen, fwrite, ferror, etc.) | |
ungotten: [], | |
error: false | |
}, fd_start, fd_end); | |
// call the new stream's open function | |
if (stream.stream_ops.open) { | |
stream.stream_ops.open(stream); | |
} | |
if (Module['logReadFiles'] && !(flags & 1)) { | |
if (!FS.readFiles) FS.readFiles = {}; | |
if (!(path in FS.readFiles)) { | |
FS.readFiles[path] = 1; | |
Module['printErr']('read file: ' + path); | |
} | |
} | |
try { | |
if (FS.trackingDelegate['onOpenFile']) { | |
var trackingFlags = 0; | |
if ((flags & 2097155) !== 1) { | |
trackingFlags |= FS.tracking.openFlags.READ; | |
} | |
if ((flags & 2097155) !== 0) { | |
trackingFlags |= FS.tracking.openFlags.WRITE; | |
} | |
FS.trackingDelegate['onOpenFile'](path, trackingFlags); | |
} | |
} catch(e) { | |
console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); | |
} | |
return stream; | |
},close:function (stream) { | |
if (stream.getdents) stream.getdents = null; // free readdir state | |
try { | |
if (stream.stream_ops.close) { | |
stream.stream_ops.close(stream); | |
} | |
} catch (e) { | |
throw e; | |
} finally { | |
FS.closeStream(stream.fd); | |
} | |
},llseek:function (stream, offset, whence) { | |
if (!stream.seekable || !stream.stream_ops.llseek) { | |
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); | |
} | |
stream.position = stream.stream_ops.llseek(stream, offset, whence); | |
stream.ungotten = []; | |
return stream.position; | |
},read:function (stream, buffer, offset, length, position) { | |
if (length < 0 || position < 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
if ((stream.flags & 2097155) === 1) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
} | |
if (FS.isDir(stream.node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EISDIR); | |
} | |
if (!stream.stream_ops.read) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
var seeking = typeof position !== 'undefined'; | |
if (!seeking) { | |
position = stream.position; | |
} else if (!stream.seekable) { | |
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); | |
} | |
var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); | |
if (!seeking) stream.position += bytesRead; | |
return bytesRead; | |
},write:function (stream, buffer, offset, length, position, canOwn) { | |
if (length < 0 || position < 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
if ((stream.flags & 2097155) === 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
} | |
if (FS.isDir(stream.node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EISDIR); | |
} | |
if (!stream.stream_ops.write) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
if (stream.flags & 1024) { | |
// seek to the end before writing in append mode | |
FS.llseek(stream, 0, 2); | |
} | |
var seeking = typeof position !== 'undefined'; | |
if (!seeking) { | |
position = stream.position; | |
} else if (!stream.seekable) { | |
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); | |
} | |
var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); | |
if (!seeking) stream.position += bytesWritten; | |
try { | |
if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); | |
} catch(e) { | |
console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message); | |
} | |
return bytesWritten; | |
},allocate:function (stream, offset, length) { | |
if (offset < 0 || length <= 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
if ((stream.flags & 2097155) === 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
} | |
if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENODEV); | |
} | |
if (!stream.stream_ops.allocate) { | |
throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); | |
} | |
stream.stream_ops.allocate(stream, offset, length); | |
},mmap:function (stream, buffer, offset, length, position, prot, flags) { | |
// TODO if PROT is PROT_WRITE, make sure we have write access | |
if ((stream.flags & 2097155) === 1) { | |
throw new FS.ErrnoError(ERRNO_CODES.EACCES); | |
} | |
if (!stream.stream_ops.mmap) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENODEV); | |
} | |
return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); | |
},msync:function (stream, buffer, offset, length, mmapFlags) { | |
if (!stream || !stream.stream_ops.msync) { | |
return 0; | |
} | |
return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); | |
},munmap:function (stream) { | |
return 0; | |
},ioctl:function (stream, cmd, arg) { | |
if (!stream.stream_ops.ioctl) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); | |
} | |
return stream.stream_ops.ioctl(stream, cmd, arg); | |
},readFile:function (path, opts) { | |
opts = opts || {}; | |
opts.flags = opts.flags || 'r'; | |
opts.encoding = opts.encoding || 'binary'; | |
if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { | |
throw new Error('Invalid encoding type "' + opts.encoding + '"'); | |
} | |
var ret; | |
var stream = FS.open(path, opts.flags); | |
var stat = FS.stat(path); | |
var length = stat.size; | |
var buf = new Uint8Array(length); | |
FS.read(stream, buf, 0, length, 0); | |
if (opts.encoding === 'utf8') { | |
ret = UTF8ArrayToString(buf, 0); | |
} else if (opts.encoding === 'binary') { | |
ret = buf; | |
} | |
FS.close(stream); | |
return ret; | |
},writeFile:function (path, data, opts) { | |
opts = opts || {}; | |
opts.flags = opts.flags || 'w'; | |
var stream = FS.open(path, opts.flags, opts.mode); | |
if (typeof data === 'string') { | |
var buf = new Uint8Array(lengthBytesUTF8(data)+1); | |
var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); | |
FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); | |
} else if (ArrayBuffer.isView(data)) { | |
FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); | |
} else { | |
throw new Error('Unsupported data type'); | |
} | |
FS.close(stream); | |
},cwd:function () { | |
return FS.currentPath; | |
},chdir:function (path) { | |
var lookup = FS.lookupPath(path, { follow: true }); | |
if (lookup.node === null) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOENT); | |
} | |
if (!FS.isDir(lookup.node.mode)) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); | |
} | |
var err = FS.nodePermissions(lookup.node, 'x'); | |
if (err) { | |
throw new FS.ErrnoError(err); | |
} | |
FS.currentPath = lookup.path; | |
},createDefaultDirectories:function () { | |
FS.mkdir('/tmp'); | |
FS.mkdir('/home'); | |
FS.mkdir('/home/web_user'); | |
},createDefaultDevices:function () { | |
// create /dev | |
FS.mkdir('/dev'); | |
// setup /dev/null | |
FS.registerDevice(FS.makedev(1, 3), { | |
read: function() { return 0; }, | |
write: function(stream, buffer, offset, length, pos) { return length; } | |
}); | |
FS.mkdev('/dev/null', FS.makedev(1, 3)); | |
// setup /dev/tty and /dev/tty1 | |
// stderr needs to print output using Module['printErr'] | |
// so we register a second tty just for it. | |
TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); | |
TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); | |
FS.mkdev('/dev/tty', FS.makedev(5, 0)); | |
FS.mkdev('/dev/tty1', FS.makedev(6, 0)); | |
// setup /dev/[u]random | |
var random_device; | |
if (typeof crypto !== 'undefined') { | |
// for modern web browsers | |
var randomBuffer = new Uint8Array(1); | |
random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; | |
} else if (ENVIRONMENT_IS_NODE) { | |
// for nodejs | |
random_device = function() { return require('crypto')['randomBytes'](1)[0]; }; | |
} else { | |
// default for ES5 platforms | |
random_device = function() { return (Math.random()*256)|0; }; | |
} | |
FS.createDevice('/dev', 'random', random_device); | |
FS.createDevice('/dev', 'urandom', random_device); | |
// we're not going to emulate the actual shm device, | |
// just create the tmp dirs that reside in it commonly | |
FS.mkdir('/dev/shm'); | |
FS.mkdir('/dev/shm/tmp'); | |
},createSpecialDirectories:function () { | |
// create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname) | |
FS.mkdir('/proc'); | |
FS.mkdir('/proc/self'); | |
FS.mkdir('/proc/self/fd'); | |
FS.mount({ | |
mount: function() { | |
var node = FS.createNode('/proc/self', 'fd', 16384 | 511 /* 0777 */, 73); | |
node.node_ops = { | |
lookup: function(parent, name) { | |
var fd = +name; | |
var stream = FS.getStream(fd); | |
if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
var ret = { | |
parent: null, | |
mount: { mountpoint: 'fake' }, | |
node_ops: { readlink: function() { return stream.path } } | |
}; | |
ret.parent = ret; // make it look like a simple root node | |
return ret; | |
} | |
}; | |
return node; | |
} | |
}, {}, '/proc/self/fd'); | |
},createStandardStreams:function () { | |
// TODO deprecate the old functionality of a single | |
// input / output callback and that utilizes FS.createDevice | |
// and instead require a unique set of stream ops | |
// by default, we symlink the standard streams to the | |
// default tty devices. however, if the standard streams | |
// have been overwritten we create a unique device for | |
// them instead. | |
if (Module['stdin']) { | |
FS.createDevice('/dev', 'stdin', Module['stdin']); | |
} else { | |
FS.symlink('/dev/tty', '/dev/stdin'); | |
} | |
if (Module['stdout']) { | |
FS.createDevice('/dev', 'stdout', null, Module['stdout']); | |
} else { | |
FS.symlink('/dev/tty', '/dev/stdout'); | |
} | |
if (Module['stderr']) { | |
FS.createDevice('/dev', 'stderr', null, Module['stderr']); | |
} else { | |
FS.symlink('/dev/tty1', '/dev/stderr'); | |
} | |
// open default streams for the stdin, stdout and stderr devices | |
var stdin = FS.open('/dev/stdin', 'r'); | |
assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); | |
var stdout = FS.open('/dev/stdout', 'w'); | |
assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); | |
var stderr = FS.open('/dev/stderr', 'w'); | |
assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); | |
},ensureErrnoError:function () { | |
if (FS.ErrnoError) return; | |
FS.ErrnoError = function ErrnoError(errno, node) { | |
//Module.printErr(stackTrace()); // useful for debugging | |
this.node = node; | |
this.setErrno = function(errno) { | |
this.errno = errno; | |
for (var key in ERRNO_CODES) { | |
if (ERRNO_CODES[key] === errno) { | |
this.code = key; | |
break; | |
} | |
} | |
}; | |
this.setErrno(errno); | |
this.message = ERRNO_MESSAGES[errno]; | |
// Node.js compatibility: assigning on this.stack fails on Node 4 (but fixed on Node 8) | |
if (this.stack) Object.defineProperty(this, "stack", { value: (new Error).stack, writable: true }); | |
if (this.stack) this.stack = demangleAll(this.stack); | |
}; | |
FS.ErrnoError.prototype = new Error(); | |
FS.ErrnoError.prototype.constructor = FS.ErrnoError; | |
// Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) | |
[ERRNO_CODES.ENOENT].forEach(function(code) { | |
FS.genericErrors[code] = new FS.ErrnoError(code); | |
FS.genericErrors[code].stack = '<generic error, no stack>'; | |
}); | |
},staticInit:function () { | |
FS.ensureErrnoError(); | |
FS.nameTable = new Array(4096); | |
FS.mount(MEMFS, {}, '/'); | |
FS.createDefaultDirectories(); | |
FS.createDefaultDevices(); | |
FS.createSpecialDirectories(); | |
FS.filesystems = { | |
'MEMFS': MEMFS, | |
'IDBFS': IDBFS, | |
'NODEFS': NODEFS, | |
'WORKERFS': WORKERFS, | |
}; | |
},init:function (input, output, error) { | |
assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); | |
FS.init.initialized = true; | |
FS.ensureErrnoError(); | |
// Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here | |
Module['stdin'] = input || Module['stdin']; | |
Module['stdout'] = output || Module['stdout']; | |
Module['stderr'] = error || Module['stderr']; | |
FS.createStandardStreams(); | |
},quit:function () { | |
FS.init.initialized = false; | |
// force-flush all streams, so we get musl std streams printed out | |
var fflush = Module['_fflush']; | |
if (fflush) fflush(0); | |
// close all of our streams | |
for (var i = 0; i < FS.streams.length; i++) { | |
var stream = FS.streams[i]; | |
if (!stream) { | |
continue; | |
} | |
FS.close(stream); | |
} | |
},getMode:function (canRead, canWrite) { | |
var mode = 0; | |
if (canRead) mode |= 292 | 73; | |
if (canWrite) mode |= 146; | |
return mode; | |
},joinPath:function (parts, forceRelative) { | |
var path = PATH.join.apply(null, parts); | |
if (forceRelative && path[0] == '/') path = path.substr(1); | |
return path; | |
},absolutePath:function (relative, base) { | |
return PATH.resolve(base, relative); | |
},standardizePath:function (path) { | |
return PATH.normalize(path); | |
},findObject:function (path, dontResolveLastLink) { | |
var ret = FS.analyzePath(path, dontResolveLastLink); | |
if (ret.exists) { | |
return ret.object; | |
} else { | |
___setErrNo(ret.error); | |
return null; | |
} | |
},analyzePath:function (path, dontResolveLastLink) { | |
// operate from within the context of the symlink's target | |
try { | |
var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); | |
path = lookup.path; | |
} catch (e) { | |
} | |
var ret = { | |
isRoot: false, exists: false, error: 0, name: null, path: null, object: null, | |
parentExists: false, parentPath: null, parentObject: null | |
}; | |
try { | |
var lookup = FS.lookupPath(path, { parent: true }); | |
ret.parentExists = true; | |
ret.parentPath = lookup.path; | |
ret.parentObject = lookup.node; | |
ret.name = PATH.basename(path); | |
lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); | |
ret.exists = true; | |
ret.path = lookup.path; | |
ret.object = lookup.node; | |
ret.name = lookup.node.name; | |
ret.isRoot = lookup.path === '/'; | |
} catch (e) { | |
ret.error = e.errno; | |
}; | |
return ret; | |
},createFolder:function (parent, name, canRead, canWrite) { | |
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); | |
var mode = FS.getMode(canRead, canWrite); | |
return FS.mkdir(path, mode); | |
},createPath:function (parent, path, canRead, canWrite) { | |
parent = typeof parent === 'string' ? parent : FS.getPath(parent); | |
var parts = path.split('/').reverse(); | |
while (parts.length) { | |
var part = parts.pop(); | |
if (!part) continue; | |
var current = PATH.join2(parent, part); | |
try { | |
FS.mkdir(current); | |
} catch (e) { | |
// ignore EEXIST | |
} | |
parent = current; | |
} | |
return current; | |
},createFile:function (parent, name, properties, canRead, canWrite) { | |
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); | |
var mode = FS.getMode(canRead, canWrite); | |
return FS.create(path, mode); | |
},createDataFile:function (parent, name, data, canRead, canWrite, canOwn) { | |
var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; | |
var mode = FS.getMode(canRead, canWrite); | |
var node = FS.create(path, mode); | |
if (data) { | |
if (typeof data === 'string') { | |
var arr = new Array(data.length); | |
for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); | |
data = arr; | |
} | |
// make sure we can write to the file | |
FS.chmod(node, mode | 146); | |
var stream = FS.open(node, 'w'); | |
FS.write(stream, data, 0, data.length, 0, canOwn); | |
FS.close(stream); | |
FS.chmod(node, mode); | |
} | |
return node; | |
},createDevice:function (parent, name, input, output) { | |
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); | |
var mode = FS.getMode(!!input, !!output); | |
if (!FS.createDevice.major) FS.createDevice.major = 64; | |
var dev = FS.makedev(FS.createDevice.major++, 0); | |
// Create a fake device that a set of stream ops to emulate | |
// the old behavior. | |
FS.registerDevice(dev, { | |
open: function(stream) { | |
stream.seekable = false; | |
}, | |
close: function(stream) { | |
// flush any pending line data | |
if (output && output.buffer && output.buffer.length) { | |
output(10); | |
} | |
}, | |
read: function(stream, buffer, offset, length, pos /* ignored */) { | |
var bytesRead = 0; | |
for (var i = 0; i < length; i++) { | |
var result; | |
try { | |
result = input(); | |
} catch (e) { | |
throw new FS.ErrnoError(ERRNO_CODES.EIO); | |
} | |
if (result === undefined && bytesRead === 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); | |
} | |
if (result === null || result === undefined) break; | |
bytesRead++; | |
buffer[offset+i] = result; | |
} | |
if (bytesRead) { | |
stream.node.timestamp = Date.now(); | |
} | |
return bytesRead; | |
}, | |
write: function(stream, buffer, offset, length, pos) { | |
for (var i = 0; i < length; i++) { | |
try { | |
output(buffer[offset+i]); | |
} catch (e) { | |
throw new FS.ErrnoError(ERRNO_CODES.EIO); | |
} | |
} | |
if (length) { | |
stream.node.timestamp = Date.now(); | |
} | |
return i; | |
} | |
}); | |
return FS.mkdev(path, mode, dev); | |
},createLink:function (parent, name, target, canRead, canWrite) { | |
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); | |
return FS.symlink(target, path); | |
},forceLoadFile:function (obj) { | |
if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; | |
var success = true; | |
if (typeof XMLHttpRequest !== 'undefined') { | |
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."); | |
} else if (Module['read']) { | |
// Command-line. | |
try { | |
// WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as | |
// read() will try to parse UTF8. | |
obj.contents = intArrayFromString(Module['read'](obj.url), true); | |
obj.usedBytes = obj.contents.length; | |
} catch (e) { | |
success = false; | |
} | |
} else { | |
throw new Error('Cannot load without read() or XMLHttpRequest.'); | |
} | |
if (!success) ___setErrNo(ERRNO_CODES.EIO); | |
return success; | |
},createLazyFile:function (parent, name, url, canRead, canWrite) { | |
// Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. | |
function LazyUint8Array() { | |
this.lengthKnown = false; | |
this.chunks = []; // Loaded chunks. Index is the chunk number | |
} | |
LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { | |
if (idx > this.length-1 || idx < 0) { | |
return undefined; | |
} | |
var chunkOffset = idx % this.chunkSize; | |
var chunkNum = (idx / this.chunkSize)|0; | |
return this.getter(chunkNum)[chunkOffset]; | |
} | |
LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { | |
this.getter = getter; | |
} | |
LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { | |
// Find length | |
var xhr = new XMLHttpRequest(); | |
xhr.open('HEAD', url, false); | |
xhr.send(null); | |
if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); | |
var datalength = Number(xhr.getResponseHeader("Content-length")); | |
var header; | |
var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; | |
var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; | |
var chunkSize = 1024*1024; // Chunk size in bytes | |
if (!hasByteServing) chunkSize = datalength; | |
// Function to get a range from the remote URL. | |
var doXHR = (function(from, to) { | |
if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); | |
if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); | |
// TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. | |
var xhr = new XMLHttpRequest(); | |
xhr.open('GET', url, false); | |
if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); | |
// Some hints to the browser that we want binary data. | |
if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; | |
if (xhr.overrideMimeType) { | |
xhr.overrideMimeType('text/plain; charset=x-user-defined'); | |
} | |
xhr.send(null); | |
if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); | |
if (xhr.response !== undefined) { | |
return new Uint8Array(xhr.response || []); | |
} else { | |
return intArrayFromString(xhr.responseText || '', true); | |
} | |
}); | |
var lazyArray = this; | |
lazyArray.setDataGetter(function(chunkNum) { | |
var start = chunkNum * chunkSize; | |
var end = (chunkNum+1) * chunkSize - 1; // including this byte | |
end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block | |
if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { | |
lazyArray.chunks[chunkNum] = doXHR(start, end); | |
} | |
if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); | |
return lazyArray.chunks[chunkNum]; | |
}); | |
if (usesGzip || !datalength) { | |
// if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length | |
chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file | |
datalength = this.getter(0).length; | |
chunkSize = datalength; | |
console.log("LazyFiles on gzip forces download of the whole file when length is accessed"); | |
} | |
this._length = datalength; | |
this._chunkSize = chunkSize; | |
this.lengthKnown = true; | |
} | |
if (typeof XMLHttpRequest !== 'undefined') { | |
if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; | |
var lazyArray = new LazyUint8Array(); | |
Object.defineProperties(lazyArray, { | |
length: { | |
get: function() { | |
if(!this.lengthKnown) { | |
this.cacheLength(); | |
} | |
return this._length; | |
} | |
}, | |
chunkSize: { | |
get: function() { | |
if(!this.lengthKnown) { | |
this.cacheLength(); | |
} | |
return this._chunkSize; | |
} | |
} | |
}); | |
var properties = { isDevice: false, contents: lazyArray }; | |
} else { | |
var properties = { isDevice: false, url: url }; | |
} | |
var node = FS.createFile(parent, name, properties, canRead, canWrite); | |
// This is a total hack, but I want to get this lazy file code out of the | |
// core of MEMFS. If we want to keep this lazy file concept I feel it should | |
// be its own thin LAZYFS proxying calls to MEMFS. | |
if (properties.contents) { | |
node.contents = properties.contents; | |
} else if (properties.url) { | |
node.contents = null; | |
node.url = properties.url; | |
} | |
// Add a function that defers querying the file size until it is asked the first time. | |
Object.defineProperties(node, { | |
usedBytes: { | |
get: function() { return this.contents.length; } | |
} | |
}); | |
// override each stream op with one that tries to force load the lazy file first | |
var stream_ops = {}; | |
var keys = Object.keys(node.stream_ops); | |
keys.forEach(function(key) { | |
var fn = node.stream_ops[key]; | |
stream_ops[key] = function forceLoadLazyFile() { | |
if (!FS.forceLoadFile(node)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EIO); | |
} | |
return fn.apply(null, arguments); | |
}; | |
}); | |
// use a custom read function | |
stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { | |
if (!FS.forceLoadFile(node)) { | |
throw new FS.ErrnoError(ERRNO_CODES.EIO); | |
} | |
var contents = stream.node.contents; | |
if (position >= contents.length) | |
return 0; | |
var size = Math.min(contents.length - position, length); | |
assert(size >= 0); | |
if (contents.slice) { // normal array | |
for (var i = 0; i < size; i++) { | |
buffer[offset + i] = contents[position + i]; | |
} | |
} else { | |
for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR | |
buffer[offset + i] = contents.get(position + i); | |
} | |
} | |
return size; | |
}; | |
node.stream_ops = stream_ops; | |
return node; | |
},createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { | |
Browser.init(); // XXX perhaps this method should move onto Browser? | |
// TODO we should allow people to just pass in a complete filename instead | |
// of parent and name being that we just join them anyways | |
var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; | |
var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname | |
function processData(byteArray) { | |
function finish(byteArray) { | |
if (preFinish) preFinish(); | |
if (!dontCreateFile) { | |
FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); | |
} | |
if (onload) onload(); | |
removeRunDependency(dep); | |
} | |
var handled = false; | |
Module['preloadPlugins'].forEach(function(plugin) { | |
if (handled) return; | |
if (plugin['canHandle'](fullname)) { | |
plugin['handle'](byteArray, fullname, finish, function() { | |
if (onerror) onerror(); | |
removeRunDependency(dep); | |
}); | |
handled = true; | |
} | |
}); | |
if (!handled) finish(byteArray); | |
} | |
addRunDependency(dep); | |
if (typeof url == 'string') { | |
Browser.asyncLoad(url, function(byteArray) { | |
processData(byteArray); | |
}, onerror); | |
} else { | |
processData(url); | |
} | |
},indexedDB:function () { | |
return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; | |
},DB_NAME:function () { | |
return 'EM_FS_' + window.location.pathname; | |
},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) { | |
onload = onload || function(){}; | |
onerror = onerror || function(){}; | |
var indexedDB = FS.indexedDB(); | |
try { | |
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); | |
} catch (e) { | |
return onerror(e); | |
} | |
openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { | |
console.log('creating db'); | |
var db = openRequest.result; | |
db.createObjectStore(FS.DB_STORE_NAME); | |
}; | |
openRequest.onsuccess = function openRequest_onsuccess() { | |
var db = openRequest.result; | |
var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); | |
var files = transaction.objectStore(FS.DB_STORE_NAME); | |
var ok = 0, fail = 0, total = paths.length; | |
function finish() { | |
if (fail == 0) onload(); else onerror(); | |
} | |
paths.forEach(function(path) { | |
var putRequest = files.put(FS.analyzePath(path).object.contents, path); | |
putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; | |
putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; | |
}); | |
transaction.onerror = onerror; | |
}; | |
openRequest.onerror = onerror; | |
},loadFilesFromDB:function (paths, onload, onerror) { | |
onload = onload || function(){}; | |
onerror = onerror || function(){}; | |
var indexedDB = FS.indexedDB(); | |
try { | |
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); | |
} catch (e) { | |
return onerror(e); | |
} | |
openRequest.onupgradeneeded = onerror; // no database to load from | |
openRequest.onsuccess = function openRequest_onsuccess() { | |
var db = openRequest.result; | |
try { | |
var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); | |
} catch(e) { | |
onerror(e); | |
return; | |
} | |
var files = transaction.objectStore(FS.DB_STORE_NAME); | |
var ok = 0, fail = 0, total = paths.length; | |
function finish() { | |
if (fail == 0) onload(); else onerror(); | |
} | |
paths.forEach(function(path) { | |
var getRequest = files.get(path); | |
getRequest.onsuccess = function getRequest_onsuccess() { | |
if (FS.analyzePath(path).exists) { | |
FS.unlink(path); | |
} | |
FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); | |
ok++; | |
if (ok + fail == total) finish(); | |
}; | |
getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; | |
}); | |
transaction.onerror = onerror; | |
}; | |
openRequest.onerror = onerror; | |
}};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) { | |
if (path[0] !== '/') { | |
// relative path | |
var dir; | |
if (dirfd === -100) { | |
dir = FS.cwd(); | |
} else { | |
var dirstream = FS.getStream(dirfd); | |
if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
dir = dirstream.path; | |
} | |
path = PATH.join2(dir, path); | |
} | |
return path; | |
},doStat:function (func, path, buf) { | |
try { | |
var stat = func(path); | |
} catch (e) { | |
if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { | |
// an error occurred while trying to look up the path; we should just report ENOTDIR | |
return -ERRNO_CODES.ENOTDIR; | |
} | |
throw e; | |
} | |
HEAP32[((buf)>>2)]=stat.dev; | |
HEAP32[(((buf)+(4))>>2)]=0; | |
HEAP32[(((buf)+(8))>>2)]=stat.ino; | |
HEAP32[(((buf)+(12))>>2)]=stat.mode; | |
HEAP32[(((buf)+(16))>>2)]=stat.nlink; | |
HEAP32[(((buf)+(20))>>2)]=stat.uid; | |
HEAP32[(((buf)+(24))>>2)]=stat.gid; | |
HEAP32[(((buf)+(28))>>2)]=stat.rdev; | |
HEAP32[(((buf)+(32))>>2)]=0; | |
HEAP32[(((buf)+(36))>>2)]=stat.size; | |
HEAP32[(((buf)+(40))>>2)]=4096; | |
HEAP32[(((buf)+(44))>>2)]=stat.blocks; | |
HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0; | |
HEAP32[(((buf)+(52))>>2)]=0; | |
HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0; | |
HEAP32[(((buf)+(60))>>2)]=0; | |
HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0; | |
HEAP32[(((buf)+(68))>>2)]=0; | |
HEAP32[(((buf)+(72))>>2)]=stat.ino; | |
return 0; | |
},doMsync:function (addr, stream, len, flags) { | |
var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len)); | |
FS.msync(stream, buffer, 0, len, flags); | |
},doMkdir:function (path, mode) { | |
// remove a trailing slash, if one - /a/b/ has basename of '', but | |
// we want to create b in the context of this function | |
path = PATH.normalize(path); | |
if (path[path.length-1] === '/') path = path.substr(0, path.length-1); | |
FS.mkdir(path, mode, 0); | |
return 0; | |
},doMknod:function (path, mode, dev) { | |
// we don't want this in the JS API as it uses mknod to create all nodes. | |
switch (mode & 61440) { | |
case 32768: | |
case 8192: | |
case 24576: | |
case 4096: | |
case 49152: | |
break; | |
default: return -ERRNO_CODES.EINVAL; | |
} | |
FS.mknod(path, mode, dev); | |
return 0; | |
},doReadlink:function (path, buf, bufsize) { | |
if (bufsize <= 0) return -ERRNO_CODES.EINVAL; | |
var ret = FS.readlink(path); | |
var len = Math.min(bufsize, lengthBytesUTF8(ret)); | |
var endChar = HEAP8[buf+len]; | |
stringToUTF8(ret, buf, bufsize+1); | |
// readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) | |
// stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. | |
HEAP8[buf+len] = endChar; | |
return len; | |
},doAccess:function (path, amode) { | |
if (amode & ~7) { | |
// need a valid mode | |
return -ERRNO_CODES.EINVAL; | |
} | |
var node; | |
var lookup = FS.lookupPath(path, { follow: true }); | |
node = lookup.node; | |
var perms = ''; | |
if (amode & 4) perms += 'r'; | |
if (amode & 2) perms += 'w'; | |
if (amode & 1) perms += 'x'; | |
if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) { | |
return -ERRNO_CODES.EACCES; | |
} | |
return 0; | |
},doDup:function (path, flags, suggestFD) { | |
var suggest = FS.getStream(suggestFD); | |
if (suggest) FS.close(suggest); | |
return FS.open(path, flags, 0, suggestFD, suggestFD).fd; | |
},doReadv:function (stream, iov, iovcnt, offset) { | |
var ret = 0; | |
for (var i = 0; i < iovcnt; i++) { | |
var ptr = HEAP32[(((iov)+(i*8))>>2)]; | |
var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; | |
var curr = FS.read(stream, HEAP8,ptr, len, offset); | |
if (curr < 0) return -1; | |
ret += curr; | |
if (curr < len) break; // nothing more to read | |
} | |
return ret; | |
},doWritev:function (stream, iov, iovcnt, offset) { | |
var ret = 0; | |
for (var i = 0; i < iovcnt; i++) { | |
var ptr = HEAP32[(((iov)+(i*8))>>2)]; | |
var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; | |
var curr = FS.write(stream, HEAP8,ptr, len, offset); | |
if (curr < 0) return -1; | |
ret += curr; | |
} | |
return ret; | |
},varargs:0,get:function (varargs) { | |
SYSCALLS.varargs += 4; | |
var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; | |
return ret; | |
},getStr:function () { | |
var ret = Pointer_stringify(SYSCALLS.get()); | |
return ret; | |
},getStreamFromFD:function () { | |
var stream = FS.getStream(SYSCALLS.get()); | |
if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
return stream; | |
},getSocketFromFD:function () { | |
var socket = SOCKFS.getSocket(SYSCALLS.get()); | |
if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
return socket; | |
},getSocketAddress:function (allowNull) { | |
var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get(); | |
if (allowNull && addrp === 0) return null; | |
var info = __read_sockaddr(addrp, addrlen); | |
if (info.errno) throw new FS.ErrnoError(info.errno); | |
info.addr = DNS.lookup_addr(info.addr) || info.addr; | |
return info; | |
},get64:function () { | |
var low = SYSCALLS.get(), high = SYSCALLS.get(); | |
if (low >= 0) assert(high === 0); | |
else assert(high === -1); | |
return low; | |
},getZero:function () { | |
assert(SYSCALLS.get() === 0); | |
}};function ___syscall10(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// unlink | |
var path = SYSCALLS.getStr(); | |
FS.unlink(path); | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
var SOCKFS={mount:function (mount) { | |
// If Module['websocket'] has already been defined (e.g. for configuring | |
// the subprotocol/url) use that, if not initialise it to a new object. | |
Module['websocket'] = (Module['websocket'] && | |
('object' === typeof Module['websocket'])) ? Module['websocket'] : {}; | |
// Add the Event registration mechanism to the exported websocket configuration | |
// object so we can register network callbacks from native JavaScript too. | |
// For more documentation see system/include/emscripten/emscripten.h | |
Module['websocket']._callbacks = {}; | |
Module['websocket']['on'] = function(event, callback) { | |
if ('function' === typeof callback) { | |
this._callbacks[event] = callback; | |
} | |
return this; | |
}; | |
Module['websocket'].emit = function(event, param) { | |
if ('function' === typeof this._callbacks[event]) { | |
this._callbacks[event].call(this, param); | |
} | |
}; | |
// If debug is enabled register simple default logging callbacks for each Event. | |
return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); | |
},createSocket:function (family, type, protocol) { | |
var streaming = type == 1; | |
if (protocol) { | |
assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp | |
} | |
// create our internal socket structure | |
var sock = { | |
family: family, | |
type: type, | |
protocol: protocol, | |
server: null, | |
error: null, // Used in getsockopt for SOL_SOCKET/SO_ERROR test | |
peers: {}, | |
pending: [], | |
recv_queue: [], | |
sock_ops: SOCKFS.websocket_sock_ops | |
}; | |
// create the filesystem node to store the socket structure | |
var name = SOCKFS.nextname(); | |
var node = FS.createNode(SOCKFS.root, name, 49152, 0); | |
node.sock = sock; | |
// and the wrapping stream that enables library functions such | |
// as read and write to indirectly interact with the socket | |
var stream = FS.createStream({ | |
path: name, | |
node: node, | |
flags: FS.modeStringToFlags('r+'), | |
seekable: false, | |
stream_ops: SOCKFS.stream_ops | |
}); | |
// map the new stream to the socket structure (sockets have a 1:1 | |
// relationship with a stream) | |
sock.stream = stream; | |
return sock; | |
},getSocket:function (fd) { | |
var stream = FS.getStream(fd); | |
if (!stream || !FS.isSocket(stream.node.mode)) { | |
return null; | |
} | |
return stream.node.sock; | |
},stream_ops:{poll:function (stream) { | |
var sock = stream.node.sock; | |
return sock.sock_ops.poll(sock); | |
},ioctl:function (stream, request, varargs) { | |
var sock = stream.node.sock; | |
return sock.sock_ops.ioctl(sock, request, varargs); | |
},read:function (stream, buffer, offset, length, position /* ignored */) { | |
var sock = stream.node.sock; | |
var msg = sock.sock_ops.recvmsg(sock, length); | |
if (!msg) { | |
// socket is closed | |
return 0; | |
} | |
buffer.set(msg.buffer, offset); | |
return msg.buffer.length; | |
},write:function (stream, buffer, offset, length, position /* ignored */) { | |
var sock = stream.node.sock; | |
return sock.sock_ops.sendmsg(sock, buffer, offset, length); | |
},close:function (stream) { | |
var sock = stream.node.sock; | |
sock.sock_ops.close(sock); | |
}},nextname:function () { | |
if (!SOCKFS.nextname.current) { | |
SOCKFS.nextname.current = 0; | |
} | |
return 'socket[' + (SOCKFS.nextname.current++) + ']'; | |
},websocket_sock_ops:{createPeer:function (sock, addr, port) { | |
var ws; | |
if (typeof addr === 'object') { | |
ws = addr; | |
addr = null; | |
port = null; | |
} | |
if (ws) { | |
// for sockets that've already connected (e.g. we're the server) | |
// we can inspect the _socket property for the address | |
if (ws._socket) { | |
addr = ws._socket.remoteAddress; | |
port = ws._socket.remotePort; | |
} | |
// if we're just now initializing a connection to the remote, | |
// inspect the url property | |
else { | |
var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url); | |
if (!result) { | |
throw new Error('WebSocket URL must be in the format ws(s)://address:port'); | |
} | |
addr = result[1]; | |
port = parseInt(result[2], 10); | |
} | |
} else { | |
// create the actual websocket object and connect | |
try { | |
// runtimeConfig gets set to true if WebSocket runtime configuration is available. | |
var runtimeConfig = (Module['websocket'] && ('object' === typeof Module['websocket'])); | |
// The default value is 'ws://' the replace is needed because the compiler replaces '//' comments with '#' | |
// comments without checking context, so we'd end up with ws:#, the replace swaps the '#' for '//' again. | |
var url = 'ws:#'.replace('#', '//'); | |
if (runtimeConfig) { | |
if ('string' === typeof Module['websocket']['url']) { | |
url = Module['websocket']['url']; // Fetch runtime WebSocket URL config. | |
} | |
} | |
if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it. | |
var parts = addr.split('/'); | |
url = url + parts[0] + ":" + port + "/" + parts.slice(1).join('/'); | |
} | |
// Make the WebSocket subprotocol (Sec-WebSocket-Protocol) default to binary if no configuration is set. | |
var subProtocols = 'binary'; // The default value is 'binary' | |
if (runtimeConfig) { | |
if ('string' === typeof Module['websocket']['subprotocol']) { | |
subProtocols = Module['websocket']['subprotocol']; // Fetch runtime WebSocket subprotocol config. | |
} | |
} | |
// The regex trims the string (removes spaces at the beginning and end, then splits the string by | |
// <any space>,<any space> into an Array. Whitespace removal is important for Websockify and ws. | |
subProtocols = subProtocols.replace(/^ +| +$/g,"").split(/ *, */); | |
// The node ws library API for specifying optional subprotocol is slightly different than the browser's. | |
var opts = ENVIRONMENT_IS_NODE ? {'protocol': subProtocols.toString()} : subProtocols; | |
// some webservers (azure) does not support subprotocol header | |
if (runtimeConfig && null === Module['websocket']['subprotocol']) { | |
subProtocols = 'null'; | |
opts = undefined; | |
} | |
// If node we use the ws library. | |
var WebSocketConstructor; | |
if (ENVIRONMENT_IS_NODE) { | |
WebSocketConstructor = require('ws'); | |
} else if (ENVIRONMENT_IS_WEB) { | |
WebSocketConstructor = window['WebSocket']; | |
} else { | |
WebSocketConstructor = WebSocket; | |
} | |
ws = new WebSocketConstructor(url, opts); | |
ws.binaryType = 'arraybuffer'; | |
} catch (e) { | |
throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH); | |
} | |
} | |
var peer = { | |
addr: addr, | |
port: port, | |
socket: ws, | |
dgram_send_queue: [] | |
}; | |
SOCKFS.websocket_sock_ops.addPeer(sock, peer); | |
SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer); | |
// if this is a bound dgram socket, send the port number first to allow | |
// us to override the ephemeral port reported to us by remotePort on the | |
// remote end. | |
if (sock.type === 2 && typeof sock.sport !== 'undefined') { | |
peer.dgram_send_queue.push(new Uint8Array([ | |
255, 255, 255, 255, | |
'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0), | |
((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff) | |
])); | |
} | |
return peer; | |
},getPeer:function (sock, addr, port) { | |
return sock.peers[addr + ':' + port]; | |
},addPeer:function (sock, peer) { | |
sock.peers[peer.addr + ':' + peer.port] = peer; | |
},removePeer:function (sock, peer) { | |
delete sock.peers[peer.addr + ':' + peer.port]; | |
},handlePeerEvents:function (sock, peer) { | |
var first = true; | |
var handleOpen = function () { | |
Module['websocket'].emit('open', sock.stream.fd); | |
try { | |
var queued = peer.dgram_send_queue.shift(); | |
while (queued) { | |
peer.socket.send(queued); | |
queued = peer.dgram_send_queue.shift(); | |
} | |
} catch (e) { | |
// not much we can do here in the way of proper error handling as we've already | |
// lied and said this data was sent. shut it down. | |
peer.socket.close(); | |
} | |
}; | |
function handleMessage(data) { | |
assert(typeof data !== 'string' && data.byteLength !== undefined); // must receive an ArrayBuffer | |
// An empty ArrayBuffer will emit a pseudo disconnect event | |
// as recv/recvmsg will return zero which indicates that a socket | |
// has performed a shutdown although the connection has not been disconnected yet. | |
if (data.byteLength == 0) { | |
return; | |
} | |
data = new Uint8Array(data); // make a typed array view on the array buffer | |
// if this is the port message, override the peer's port with it | |
var wasfirst = first; | |
first = false; | |
if (wasfirst && | |
data.length === 10 && | |
data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 && | |
data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) { | |
// update the peer's port and it's key in the peer map | |
var newport = ((data[8] << 8) | data[9]); | |
SOCKFS.websocket_sock_ops.removePeer(sock, peer); | |
peer.port = newport; | |
SOCKFS.websocket_sock_ops.addPeer(sock, peer); | |
return; | |
} | |
sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data }); | |
Module['websocket'].emit('message', sock.stream.fd); | |
}; | |
if (ENVIRONMENT_IS_NODE) { | |
peer.socket.on('open', handleOpen); | |
peer.socket.on('message', function(data, flags) { | |
if (!flags.binary) { | |
return; | |
} | |
handleMessage((new Uint8Array(data)).buffer); // copy from node Buffer -> ArrayBuffer | |
}); | |
peer.socket.on('close', function() { | |
Module['websocket'].emit('close', sock.stream.fd); | |
}); | |
peer.socket.on('error', function(error) { | |
// Although the ws library may pass errors that may be more descriptive than | |
// ECONNREFUSED they are not necessarily the expected error code e.g. | |
// ENOTFOUND on getaddrinfo seems to be node.js specific, so using ECONNREFUSED | |
// is still probably the most useful thing to do. | |
sock.error = ERRNO_CODES.ECONNREFUSED; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. | |
Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'ECONNREFUSED: Connection refused']); | |
// don't throw | |
}); | |
} else { | |
peer.socket.onopen = handleOpen; | |
peer.socket.onclose = function() { | |
Module['websocket'].emit('close', sock.stream.fd); | |
}; | |
peer.socket.onmessage = function peer_socket_onmessage(event) { | |
handleMessage(event.data); | |
}; | |
peer.socket.onerror = function(error) { | |
// The WebSocket spec only allows a 'simple event' to be thrown on error, | |
// so we only really know as much as ECONNREFUSED. | |
sock.error = ERRNO_CODES.ECONNREFUSED; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. | |
Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'ECONNREFUSED: Connection refused']); | |
}; | |
} | |
},poll:function (sock) { | |
if (sock.type === 1 && sock.server) { | |
// listen sockets should only say they're available for reading | |
// if there are pending clients. | |
return sock.pending.length ? (64 | 1) : 0; | |
} | |
var mask = 0; | |
var dest = sock.type === 1 ? // we only care about the socket state for connection-based sockets | |
SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) : | |
null; | |
if (sock.recv_queue.length || | |
!dest || // connection-less sockets are always ready to read | |
(dest && dest.socket.readyState === dest.socket.CLOSING) || | |
(dest && dest.socket.readyState === dest.socket.CLOSED)) { // let recv return 0 once closed | |
mask |= (64 | 1); | |
} | |
if (!dest || // connection-less sockets are always ready to write | |
(dest && dest.socket.readyState === dest.socket.OPEN)) { | |
mask |= 4; | |
} | |
if ((dest && dest.socket.readyState === dest.socket.CLOSING) || | |
(dest && dest.socket.readyState === dest.socket.CLOSED)) { | |
mask |= 16; | |
} | |
return mask; | |
},ioctl:function (sock, request, arg) { | |
switch (request) { | |
case 21531: | |
var bytes = 0; | |
if (sock.recv_queue.length) { | |
bytes = sock.recv_queue[0].data.length; | |
} | |
HEAP32[((arg)>>2)]=bytes; | |
return 0; | |
default: | |
return ERRNO_CODES.EINVAL; | |
} | |
},close:function (sock) { | |
// if we've spawned a listen server, close it | |
if (sock.server) { | |
try { | |
sock.server.close(); | |
} catch (e) { | |
} | |
sock.server = null; | |
} | |
// close any peer connections | |
var peers = Object.keys(sock.peers); | |
for (var i = 0; i < peers.length; i++) { | |
var peer = sock.peers[peers[i]]; | |
try { | |
peer.socket.close(); | |
} catch (e) { | |
} | |
SOCKFS.websocket_sock_ops.removePeer(sock, peer); | |
} | |
return 0; | |
},bind:function (sock, addr, port) { | |
if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already bound | |
} | |
sock.saddr = addr; | |
sock.sport = port; | |
// in order to emulate dgram sockets, we need to launch a listen server when | |
// binding on a connection-less socket | |
// note: this is only required on the server side | |
if (sock.type === 2) { | |
// close the existing server if it exists | |
if (sock.server) { | |
sock.server.close(); | |
sock.server = null; | |
} | |
// swallow error operation not supported error that occurs when binding in the | |
// browser where this isn't supported | |
try { | |
sock.sock_ops.listen(sock, 0); | |
} catch (e) { | |
if (!(e instanceof FS.ErrnoError)) throw e; | |
if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e; | |
} | |
} | |
},connect:function (sock, addr, port) { | |
if (sock.server) { | |
throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); | |
} | |
// TODO autobind | |
// if (!sock.addr && sock.type == 2) { | |
// } | |
// early out if we're already connected / in the middle of connecting | |
if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') { | |
var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); | |
if (dest) { | |
if (dest.socket.readyState === dest.socket.CONNECTING) { | |
throw new FS.ErrnoError(ERRNO_CODES.EALREADY); | |
} else { | |
throw new FS.ErrnoError(ERRNO_CODES.EISCONN); | |
} | |
} | |
} | |
// add the socket to our peer list and set our | |
// destination address / port to match | |
var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); | |
sock.daddr = peer.addr; | |
sock.dport = peer.port; | |
// always "fail" in non-blocking mode | |
throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS); | |
},listen:function (sock, backlog) { | |
if (!ENVIRONMENT_IS_NODE) { | |
throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); | |
} | |
if (sock.server) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already listening | |
} | |
var WebSocketServer = require('ws').Server; | |
var host = sock.saddr; | |
sock.server = new WebSocketServer({ | |
host: host, | |
port: sock.sport | |
// TODO support backlog | |
}); | |
Module['websocket'].emit('listen', sock.stream.fd); // Send Event with listen fd. | |
sock.server.on('connection', function(ws) { | |
if (sock.type === 1) { | |
var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol); | |
// create a peer on the new socket | |
var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws); | |
newsock.daddr = peer.addr; | |
newsock.dport = peer.port; | |
// push to queue for accept to pick up | |
sock.pending.push(newsock); | |
Module['websocket'].emit('connection', newsock.stream.fd); | |
} else { | |
// create a peer on the listen socket so calling sendto | |
// with the listen socket and an address will resolve | |
// to the correct client | |
SOCKFS.websocket_sock_ops.createPeer(sock, ws); | |
Module['websocket'].emit('connection', sock.stream.fd); | |
} | |
}); | |
sock.server.on('closed', function() { | |
Module['websocket'].emit('close', sock.stream.fd); | |
sock.server = null; | |
}); | |
sock.server.on('error', function(error) { | |
// Although the ws library may pass errors that may be more descriptive than | |
// ECONNREFUSED they are not necessarily the expected error code e.g. | |
// ENOTFOUND on getaddrinfo seems to be node.js specific, so using EHOSTUNREACH | |
// is still probably the most useful thing to do. This error shouldn't | |
// occur in a well written app as errors should get trapped in the compiled | |
// app's own getaddrinfo call. | |
sock.error = ERRNO_CODES.EHOSTUNREACH; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. | |
Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'EHOSTUNREACH: Host is unreachable']); | |
// don't throw | |
}); | |
},accept:function (listensock) { | |
if (!listensock.server) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
var newsock = listensock.pending.shift(); | |
newsock.stream.flags = listensock.stream.flags; | |
return newsock; | |
},getname:function (sock, peer) { | |
var addr, port; | |
if (peer) { | |
if (sock.daddr === undefined || sock.dport === undefined) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); | |
} | |
addr = sock.daddr; | |
port = sock.dport; | |
} else { | |
// TODO saddr and sport will be set for bind()'d UDP sockets, but what | |
// should we be returning for TCP sockets that've been connect()'d? | |
addr = sock.saddr || 0; | |
port = sock.sport || 0; | |
} | |
return { addr: addr, port: port }; | |
},sendmsg:function (sock, buffer, offset, length, addr, port) { | |
if (sock.type === 2) { | |
// connection-less sockets will honor the message address, | |
// and otherwise fall back to the bound destination address | |
if (addr === undefined || port === undefined) { | |
addr = sock.daddr; | |
port = sock.dport; | |
} | |
// if there was no address to fall back to, error out | |
if (addr === undefined || port === undefined) { | |
throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ); | |
} | |
} else { | |
// connection-based sockets will only use the bound | |
addr = sock.daddr; | |
port = sock.dport; | |
} | |
// find the peer for the destination address | |
var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port); | |
// early out if not connected with a connection-based socket | |
if (sock.type === 1) { | |
if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); | |
} else if (dest.socket.readyState === dest.socket.CONNECTING) { | |
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); | |
} | |
} | |
// create a copy of the incoming data to send, as the WebSocket API | |
// doesn't work entirely with an ArrayBufferView, it'll just send | |
// the entire underlying buffer | |
if (ArrayBuffer.isView(buffer)) { | |
offset += buffer.byteOffset; | |
buffer = buffer.buffer; | |
} | |
var data; | |
data = buffer.slice(offset, offset + length); | |
// if we're emulating a connection-less dgram socket and don't have | |
// a cached connection, queue the buffer to send upon connect and | |
// lie, saying the data was sent now. | |
if (sock.type === 2) { | |
if (!dest || dest.socket.readyState !== dest.socket.OPEN) { | |
// if we're not connected, open a new connection | |
if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { | |
dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); | |
} | |
dest.dgram_send_queue.push(data); | |
return length; | |
} | |
} | |
try { | |
// send the actual data | |
dest.socket.send(data); | |
return length; | |
} catch (e) { | |
throw new FS.ErrnoError(ERRNO_CODES.EINVAL); | |
} | |
},recvmsg:function (sock, length) { | |
// http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html | |
if (sock.type === 1 && sock.server) { | |
// tcp servers should not be recv()'ing on the listen socket | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); | |
} | |
var queued = sock.recv_queue.shift(); | |
if (!queued) { | |
if (sock.type === 1) { | |
var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); | |
if (!dest) { | |
// if we have a destination address but are not connected, error out | |
throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); | |
} | |
else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { | |
// return null if the socket has closed | |
return null; | |
} | |
else { | |
// else, our socket is in a valid state but truly has nothing available | |
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); | |
} | |
} else { | |
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); | |
} | |
} | |
// queued.data will be an ArrayBuffer if it's unadulterated, but if it's | |
// requeued TCP data it'll be an ArrayBufferView | |
var queuedLength = queued.data.byteLength || queued.data.length; | |
var queuedOffset = queued.data.byteOffset || 0; | |
var queuedBuffer = queued.data.buffer || queued.data; | |
var bytesRead = Math.min(length, queuedLength); | |
var res = { | |
buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead), | |
addr: queued.addr, | |
port: queued.port | |
}; | |
// push back any unread data for TCP connections | |
if (sock.type === 1 && bytesRead < queuedLength) { | |
var bytesRemaining = queuedLength - bytesRead; | |
queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining); | |
sock.recv_queue.unshift(queued); | |
} | |
return res; | |
}}}; | |
function __inet_pton4_raw(str) { | |
var b = str.split('.'); | |
for (var i = 0; i < 4; i++) { | |
var tmp = Number(b[i]); | |
if (isNaN(tmp)) return null; | |
b[i] = tmp; | |
} | |
return (b[0] | (b[1] << 8) | (b[2] << 16) | (b[3] << 24)) >>> 0; | |
} | |
function __inet_pton6_raw(str) { | |
var words; | |
var w, offset, z, i; | |
/* http://home.deds.nl/~aeron/regex/ */ | |
var valid6regx = /^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i | |
var parts = []; | |
if (!valid6regx.test(str)) { | |
return null; | |
} | |
if (str === "::") { | |
return [0, 0, 0, 0, 0, 0, 0, 0]; | |
} | |
// Z placeholder to keep track of zeros when splitting the string on ":" | |
if (str.indexOf("::") === 0) { | |
str = str.replace("::", "Z:"); // leading zeros case | |
} else { | |
str = str.replace("::", ":Z:"); | |
} | |
if (str.indexOf(".") > 0) { | |
// parse IPv4 embedded stress | |
str = str.replace(new RegExp('[.]', 'g'), ":"); | |
words = str.split(":"); | |
words[words.length-4] = parseInt(words[words.length-4]) + parseInt(words[words.length-3])*256; | |
words[words.length-3] = parseInt(words[words.length-2]) + parseInt(words[words.length-1])*256; | |
words = words.slice(0, words.length-2); | |
} else { | |
words = str.split(":"); | |
} | |
offset = 0; z = 0; | |
for (w=0; w < words.length; w++) { | |
if (typeof words[w] === 'string') { | |
if (words[w] === 'Z') { | |
// compressed zeros - write appropriate number of zero words | |
for (z = 0; z < (8 - words.length+1); z++) { | |
parts[w+z] = 0; | |
} | |
offset = z-1; | |
} else { | |
// parse hex to field to 16-bit value and write it in network byte-order | |
parts[w+offset] = _htons(parseInt(words[w],16)); | |
} | |
} else { | |
// parsed IPv4 words | |
parts[w+offset] = words[w]; | |
} | |
} | |
return [ | |
(parts[1] << 16) | parts[0], | |
(parts[3] << 16) | parts[2], | |
(parts[5] << 16) | parts[4], | |
(parts[7] << 16) | parts[6] | |
]; | |
}var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function (name) { | |
// If the name is already a valid ipv4 / ipv6 address, don't generate a fake one. | |
var res = __inet_pton4_raw(name); | |
if (res !== null) { | |
return name; | |
} | |
res = __inet_pton6_raw(name); | |
if (res !== null) { | |
return name; | |
} | |
// See if this name is already mapped. | |
var addr; | |
if (DNS.address_map.addrs[name]) { | |
addr = DNS.address_map.addrs[name]; | |
} else { | |
var id = DNS.address_map.id++; | |
assert(id < 65535, 'exceeded max address mappings of 65535'); | |
addr = '172.29.' + (id & 0xff) + '.' + (id & 0xff00); | |
DNS.address_map.names[addr] = name; | |
DNS.address_map.addrs[name] = addr; | |
} | |
return addr; | |
},lookup_addr:function (addr) { | |
if (DNS.address_map.names[addr]) { | |
return DNS.address_map.names[addr]; | |
} | |
return null; | |
}}; | |
var Sockets={BUFFER_SIZE:10240,MAX_BUFFER_SIZE:10485760,nextFd:1,fds:{},nextport:1,maxport:65535,peer:null,connections:{},portmap:{},localAddr:4261412874,addrPool:[33554442,50331658,67108874,83886090,100663306,117440522,134217738,150994954,167772170,184549386,201326602,218103818,234881034]}; | |
function __inet_ntop4_raw(addr) { | |
return (addr & 0xff) + '.' + ((addr >> 8) & 0xff) + '.' + ((addr >> 16) & 0xff) + '.' + ((addr >> 24) & 0xff) | |
} | |
function __inet_ntop6_raw(ints) { | |
// ref: http://www.ietf.org/rfc/rfc2373.txt - section 2.5.4 | |
// Format for IPv4 compatible and mapped 128-bit IPv6 Addresses | |
// 128-bits are split into eight 16-bit words | |
// stored in network byte order (big-endian) | |
// | 80 bits | 16 | 32 bits | | |
// +-----------------------------------------------------------------+ | |
// | 10 bytes | 2 | 4 bytes | | |
// +--------------------------------------+--------------------------+ | |
// + 5 words | 1 | 2 words | | |
// +--------------------------------------+--------------------------+ | |
// |0000..............................0000|0000| IPv4 ADDRESS | (compatible) | |
// +--------------------------------------+----+---------------------+ | |
// |0000..............................0000|FFFF| IPv4 ADDRESS | (mapped) | |
// +--------------------------------------+----+---------------------+ | |
var str = ""; | |
var word = 0; | |
var longest = 0; | |
var lastzero = 0; | |
var zstart = 0; | |
var len = 0; | |
var i = 0; | |
var parts = [ | |
ints[0] & 0xffff, | |
(ints[0] >> 16), | |
ints[1] & 0xffff, | |
(ints[1] >> 16), | |
ints[2] & 0xffff, | |
(ints[2] >> 16), | |
ints[3] & 0xffff, | |
(ints[3] >> 16) | |
]; | |
// Handle IPv4-compatible, IPv4-mapped, loopback and any/unspecified addresses | |
var hasipv4 = true; | |
var v4part = ""; | |
// check if the 10 high-order bytes are all zeros (first 5 words) | |
for (i = 0; i < 5; i++) { | |
if (parts[i] !== 0) { hasipv4 = false; break; } | |
} | |
if (hasipv4) { | |
// low-order 32-bits store an IPv4 address (bytes 13 to 16) (last 2 words) | |
v4part = __inet_ntop4_raw(parts[6] | (parts[7] << 16)); | |
// IPv4-mapped IPv6 address if 16-bit value (bytes 11 and 12) == 0xFFFF (6th word) | |
if (parts[5] === -1) { | |
str = "::ffff:"; | |
str += v4part; | |
return str; | |
} | |
// IPv4-compatible IPv6 address if 16-bit value (bytes 11 and 12) == 0x0000 (6th word) | |
if (parts[5] === 0) { | |
str = "::"; | |
//special case IPv6 addresses | |
if(v4part === "0.0.0.0") v4part = ""; // any/unspecified address | |
if(v4part === "0.0.0.1") v4part = "1";// loopback address | |
str += v4part; | |
return str; | |
} | |
} | |
// Handle all other IPv6 addresses | |
// first run to find the longest contiguous zero words | |
for (word = 0; word < 8; word++) { | |
if (parts[word] === 0) { | |
if (word - lastzero > 1) { | |
len = 0; | |
} | |
lastzero = word; | |
len++; | |
} | |
if (len > longest) { | |
longest = len; | |
zstart = word - longest + 1; | |
} | |
} | |
for (word = 0; word < 8; word++) { | |
if (longest > 1) { | |
// compress contiguous zeros - to produce "::" | |
if (parts[word] === 0 && word >= zstart && word < (zstart + longest) ) { | |
if (word === zstart) { | |
str += ":"; | |
if (zstart === 0) str += ":"; //leading zeros case | |
} | |
continue; | |
} | |
} | |
// converts 16-bit words from big-endian to little-endian before converting to hex string | |
str += Number(_ntohs(parts[word] & 0xffff)).toString(16); | |
str += word < 7 ? ":" : ""; | |
} | |
return str; | |
}function __read_sockaddr(sa, salen) { | |
// family / port offsets are common to both sockaddr_in and sockaddr_in6 | |
var family = HEAP16[((sa)>>1)]; | |
var port = _ntohs(HEAP16[(((sa)+(2))>>1)]); | |
var addr; | |
switch (family) { | |
case 2: | |
if (salen !== 16) { | |
return { errno: ERRNO_CODES.EINVAL }; | |
} | |
addr = HEAP32[(((sa)+(4))>>2)]; | |
addr = __inet_ntop4_raw(addr); | |
break; | |
case 10: | |
if (salen !== 28) { | |
return { errno: ERRNO_CODES.EINVAL }; | |
} | |
addr = [ | |
HEAP32[(((sa)+(8))>>2)], | |
HEAP32[(((sa)+(12))>>2)], | |
HEAP32[(((sa)+(16))>>2)], | |
HEAP32[(((sa)+(20))>>2)] | |
]; | |
addr = __inet_ntop6_raw(addr); | |
break; | |
default: | |
return { errno: ERRNO_CODES.EAFNOSUPPORT }; | |
} | |
return { family: family, addr: addr, port: port }; | |
} | |
function __write_sockaddr(sa, family, addr, port) { | |
switch (family) { | |
case 2: | |
addr = __inet_pton4_raw(addr); | |
HEAP16[((sa)>>1)]=family; | |
HEAP32[(((sa)+(4))>>2)]=addr; | |
HEAP16[(((sa)+(2))>>1)]=_htons(port); | |
break; | |
case 10: | |
addr = __inet_pton6_raw(addr); | |
HEAP32[((sa)>>2)]=family; | |
HEAP32[(((sa)+(8))>>2)]=addr[0]; | |
HEAP32[(((sa)+(12))>>2)]=addr[1]; | |
HEAP32[(((sa)+(16))>>2)]=addr[2]; | |
HEAP32[(((sa)+(20))>>2)]=addr[3]; | |
HEAP16[(((sa)+(2))>>1)]=_htons(port); | |
HEAP32[(((sa)+(4))>>2)]=0; | |
HEAP32[(((sa)+(24))>>2)]=0; | |
break; | |
default: | |
return { errno: ERRNO_CODES.EAFNOSUPPORT }; | |
} | |
// kind of lame, but let's match _read_sockaddr's interface | |
return {}; | |
}function ___syscall102(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// socketcall | |
var call = SYSCALLS.get(), socketvararg = SYSCALLS.get(); | |
// socketcalls pass the rest of the arguments in a struct | |
SYSCALLS.varargs = socketvararg; | |
switch (call) { | |
case 1: { // socket | |
var domain = SYSCALLS.get(), type = SYSCALLS.get(), protocol = SYSCALLS.get(); | |
var sock = SOCKFS.createSocket(domain, type, protocol); | |
assert(sock.stream.fd < 64); // XXX ? select() assumes socket fd values are in 0..63 | |
return sock.stream.fd; | |
} | |
case 2: { // bind | |
var sock = SYSCALLS.getSocketFromFD(), info = SYSCALLS.getSocketAddress(); | |
sock.sock_ops.bind(sock, info.addr, info.port); | |
return 0; | |
} | |
case 3: { // connect | |
var sock = SYSCALLS.getSocketFromFD(), info = SYSCALLS.getSocketAddress(); | |
sock.sock_ops.connect(sock, info.addr, info.port); | |
return 0; | |
} | |
case 4: { // listen | |
var sock = SYSCALLS.getSocketFromFD(), backlog = SYSCALLS.get(); | |
sock.sock_ops.listen(sock, backlog); | |
return 0; | |
} | |
case 5: { // accept | |
var sock = SYSCALLS.getSocketFromFD(), addr = SYSCALLS.get(), addrlen = SYSCALLS.get(); | |
var newsock = sock.sock_ops.accept(sock); | |
if (addr) { | |
var res = __write_sockaddr(addr, newsock.family, DNS.lookup_name(newsock.daddr), newsock.dport); | |
assert(!res.errno); | |
} | |
return newsock.stream.fd; | |
} | |
case 6: { // getsockname | |
var sock = SYSCALLS.getSocketFromFD(), addr = SYSCALLS.get(), addrlen = SYSCALLS.get(); | |
// TODO: sock.saddr should never be undefined, see TODO in websocket_sock_ops.getname | |
var res = __write_sockaddr(addr, sock.family, DNS.lookup_name(sock.saddr || '0.0.0.0'), sock.sport); | |
assert(!res.errno); | |
return 0; | |
} | |
case 7: { // getpeername | |
var sock = SYSCALLS.getSocketFromFD(), addr = SYSCALLS.get(), addrlen = SYSCALLS.get(); | |
if (!sock.daddr) { | |
return -ERRNO_CODES.ENOTCONN; // The socket is not connected. | |
} | |
var res = __write_sockaddr(addr, sock.family, DNS.lookup_name(sock.daddr), sock.dport); | |
assert(!res.errno); | |
return 0; | |
} | |
case 11: { // sendto | |
var sock = SYSCALLS.getSocketFromFD(), message = SYSCALLS.get(), length = SYSCALLS.get(), flags = SYSCALLS.get(), dest = SYSCALLS.getSocketAddress(true); | |
if (!dest) { | |
// send, no address provided | |
return FS.write(sock.stream, HEAP8,message, length); | |
} else { | |
// sendto an address | |
return sock.sock_ops.sendmsg(sock, HEAP8,message, length, dest.addr, dest.port); | |
} | |
} | |
case 12: { // recvfrom | |
var sock = SYSCALLS.getSocketFromFD(), buf = SYSCALLS.get(), len = SYSCALLS.get(), flags = SYSCALLS.get(), addr = SYSCALLS.get(), addrlen = SYSCALLS.get(); | |
var msg = sock.sock_ops.recvmsg(sock, len); | |
if (!msg) return 0; // socket is closed | |
if (addr) { | |
var res = __write_sockaddr(addr, sock.family, DNS.lookup_name(msg.addr), msg.port); | |
assert(!res.errno); | |
} | |
HEAPU8.set(msg.buffer, buf); | |
return msg.buffer.byteLength; | |
} | |
case 14: { // setsockopt | |
return -ERRNO_CODES.ENOPROTOOPT; // The option is unknown at the level indicated. | |
} | |
case 15: { // getsockopt | |
var sock = SYSCALLS.getSocketFromFD(), level = SYSCALLS.get(), optname = SYSCALLS.get(), optval = SYSCALLS.get(), optlen = SYSCALLS.get(); | |
// Minimal getsockopt aimed at resolving https://github.com/kripken/emscripten/issues/2211 | |
// so only supports SOL_SOCKET with SO_ERROR. | |
if (level === 1) { | |
if (optname === 4) { | |
HEAP32[((optval)>>2)]=sock.error; | |
HEAP32[((optlen)>>2)]=4; | |
sock.error = null; // Clear the error (The SO_ERROR option obtains and then clears this field). | |
return 0; | |
} | |
} | |
return -ERRNO_CODES.ENOPROTOOPT; // The option is unknown at the level indicated. | |
} | |
case 16: { // sendmsg | |
var sock = SYSCALLS.getSocketFromFD(), message = SYSCALLS.get(), flags = SYSCALLS.get(); | |
var iov = HEAP32[(((message)+(8))>>2)]; | |
var num = HEAP32[(((message)+(12))>>2)]; | |
// read the address and port to send to | |
var addr, port; | |
var name = HEAP32[((message)>>2)]; | |
var namelen = HEAP32[(((message)+(4))>>2)]; | |
if (name) { | |
var info = __read_sockaddr(name, namelen); | |
if (info.errno) return -info.errno; | |
port = info.port; | |
addr = DNS.lookup_addr(info.addr) || info.addr; | |
} | |
// concatenate scatter-gather arrays into one message buffer | |
var total = 0; | |
for (var i = 0; i < num; i++) { | |
total += HEAP32[(((iov)+((8 * i) + 4))>>2)]; | |
} | |
var view = new Uint8Array(total); | |
var offset = 0; | |
for (var i = 0; i < num; i++) { | |
var iovbase = HEAP32[(((iov)+((8 * i) + 0))>>2)]; | |
var iovlen = HEAP32[(((iov)+((8 * i) + 4))>>2)]; | |
for (var j = 0; j < iovlen; j++) { | |
view[offset++] = HEAP8[(((iovbase)+(j))>>0)]; | |
} | |
} | |
// write the buffer | |
return sock.sock_ops.sendmsg(sock, view, 0, total, addr, port); | |
} | |
case 17: { // recvmsg | |
var sock = SYSCALLS.getSocketFromFD(), message = SYSCALLS.get(), flags = SYSCALLS.get(); | |
var iov = HEAP32[(((message)+(8))>>2)]; | |
var num = HEAP32[(((message)+(12))>>2)]; | |
// get the total amount of data we can read across all arrays | |
var total = 0; | |
for (var i = 0; i < num; i++) { | |
total += HEAP32[(((iov)+((8 * i) + 4))>>2)]; | |
} | |
// try to read total data | |
var msg = sock.sock_ops.recvmsg(sock, total); | |
if (!msg) return 0; // socket is closed | |
// TODO honor flags: | |
// MSG_OOB | |
// Requests out-of-band data. The significance and semantics of out-of-band data are protocol-specific. | |
// MSG_PEEK | |
// Peeks at the incoming message. | |
// MSG_WAITALL | |
// Requests that the function block until the full amount of data requested can be returned. The function may return a smaller amount of data if a signal is caught, if the connection is terminated, if MSG_PEEK was specified, or if an error is pending for the socket. | |
// write the source address out | |
var name = HEAP32[((message)>>2)]; | |
if (name) { | |
var res = __write_sockaddr(name, sock.family, DNS.lookup_name(msg.addr), msg.port); | |
assert(!res.errno); | |
} | |
// write the buffer out to the scatter-gather arrays | |
var bytesRead = 0; | |
var bytesRemaining = msg.buffer.byteLength; | |
for (var i = 0; bytesRemaining > 0 && i < num; i++) { | |
var iovbase = HEAP32[(((iov)+((8 * i) + 0))>>2)]; | |
var iovlen = HEAP32[(((iov)+((8 * i) + 4))>>2)]; | |
if (!iovlen) { | |
continue; | |
} | |
var length = Math.min(iovlen, bytesRemaining); | |
var buf = msg.buffer.subarray(bytesRead, bytesRead + length); | |
HEAPU8.set(buf, iovbase + bytesRead); | |
bytesRead += length; | |
bytesRemaining -= length; | |
} | |
// TODO set msghdr.msg_flags | |
// MSG_EOR | |
// End of record was received (if supported by the protocol). | |
// MSG_OOB | |
// Out-of-band data was received. | |
// MSG_TRUNC | |
// Normal data was truncated. | |
// MSG_CTRUNC | |
return bytesRead; | |
} | |
default: abort('unsupported socketcall syscall ' + call); | |
} | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall118(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// fsync | |
var stream = SYSCALLS.getStreamFromFD(); | |
return 0; // we can't do anything synchronously; the in-memory FS is already synced to | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall12(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// chdir | |
var path = SYSCALLS.getStr(); | |
FS.chdir(path); | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall122(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// uname | |
var buf = SYSCALLS.get(); | |
if (!buf) return -ERRNO_CODES.EFAULT | |
var layout = {"sysname":0,"nodename":65,"domainname":325,"machine":260,"version":195,"release":130,"__size__":390}; | |
function copyString(element, value) { | |
var offset = layout[element]; | |
writeAsciiToMemory(value, buf + offset); | |
} | |
copyString('sysname', 'Emscripten'); | |
copyString('nodename', 'emscripten'); | |
copyString('release', '1.0'); | |
copyString('version', '#1'); | |
copyString('machine', 'x86-JS'); | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall125(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// mprotect | |
return 0; // let's not and say we did | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// llseek | |
var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); | |
// NOTE: offset_high is unused - Emscripten's off_t is 32-bit | |
var offset = offset_low; | |
FS.llseek(stream, offset, whence); | |
HEAP32[((result)>>2)]=stream.position; | |
if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall142(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// newselect | |
// readfds are supported, | |
// writefds checks socket open status | |
// exceptfds not supported | |
// timeout is always 0 - fully async | |
var nfds = SYSCALLS.get(), readfds = SYSCALLS.get(), writefds = SYSCALLS.get(), exceptfds = SYSCALLS.get(), timeout = SYSCALLS.get(); | |
assert(nfds <= 64, 'nfds must be less than or equal to 64'); // fd sets have 64 bits // TODO: this could be 1024 based on current musl headers | |
assert(!exceptfds, 'exceptfds not supported'); | |
var total = 0; | |
var srcReadLow = (readfds ? HEAP32[((readfds)>>2)] : 0), | |
srcReadHigh = (readfds ? HEAP32[(((readfds)+(4))>>2)] : 0); | |
var srcWriteLow = (writefds ? HEAP32[((writefds)>>2)] : 0), | |
srcWriteHigh = (writefds ? HEAP32[(((writefds)+(4))>>2)] : 0); | |
var srcExceptLow = (exceptfds ? HEAP32[((exceptfds)>>2)] : 0), | |
srcExceptHigh = (exceptfds ? HEAP32[(((exceptfds)+(4))>>2)] : 0); | |
var dstReadLow = 0, | |
dstReadHigh = 0; | |
var dstWriteLow = 0, | |
dstWriteHigh = 0; | |
var dstExceptLow = 0, | |
dstExceptHigh = 0; | |
var allLow = (readfds ? HEAP32[((readfds)>>2)] : 0) | | |
(writefds ? HEAP32[((writefds)>>2)] : 0) | | |
(exceptfds ? HEAP32[((exceptfds)>>2)] : 0); | |
var allHigh = (readfds ? HEAP32[(((readfds)+(4))>>2)] : 0) | | |
(writefds ? HEAP32[(((writefds)+(4))>>2)] : 0) | | |
(exceptfds ? HEAP32[(((exceptfds)+(4))>>2)] : 0); | |
function check(fd, low, high, val) { | |
return (fd < 32 ? (low & val) : (high & val)); | |
} | |
for (var fd = 0; fd < nfds; fd++) { | |
var mask = 1 << (fd % 32); | |
if (!(check(fd, allLow, allHigh, mask))) { | |
continue; // index isn't in the set | |
} | |
var stream = FS.getStream(fd); | |
if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); | |
var flags = SYSCALLS.DEFAULT_POLLMASK; | |
if (stream.stream_ops.poll) { | |
flags = stream.stream_ops.poll(stream); | |
} | |
if ((flags & 1) && check(fd, srcReadLow, srcReadHigh, mask)) { | |
fd < 32 ? (dstReadLow = dstReadLow | mask) : (dstReadHigh = dstReadHigh | mask); | |
total++; | |
} | |
if ((flags & 4) && check(fd, srcWriteLow, srcWriteHigh, mask)) { | |
fd < 32 ? (dstWriteLow = dstWriteLow | mask) : (dstWriteHigh = dstWriteHigh | mask); | |
total++; | |
} | |
if ((flags & 2) && check(fd, srcExceptLow, srcExceptHigh, mask)) { | |
fd < 32 ? (dstExceptLow = dstExceptLow | mask) : (dstExceptHigh = dstExceptHigh | mask); | |
total++; | |
} | |
} | |
if (readfds) { | |
HEAP32[((readfds)>>2)]=dstReadLow; | |
HEAP32[(((readfds)+(4))>>2)]=dstReadHigh; | |
} | |
if (writefds) { | |
HEAP32[((writefds)>>2)]=dstWriteLow; | |
HEAP32[(((writefds)+(4))>>2)]=dstWriteHigh; | |
} | |
if (exceptfds) { | |
HEAP32[((exceptfds)>>2)]=dstExceptLow; | |
HEAP32[(((exceptfds)+(4))>>2)]=dstExceptHigh; | |
} | |
return total; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall144(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// msync | |
var addr = SYSCALLS.get(), len = SYSCALLS.get(), flags = SYSCALLS.get(); | |
var info = SYSCALLS.mappings[addr]; | |
if (!info) return 0; | |
SYSCALLS.doMsync(addr, FS.getStream(info.fd), len, info.flags); | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// readv | |
var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); | |
return SYSCALLS.doReadv(stream, iov, iovcnt); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// writev | |
var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); | |
return SYSCALLS.doWritev(stream, iov, iovcnt); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall15(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// chmod | |
var path = SYSCALLS.getStr(), mode = SYSCALLS.get(); | |
FS.chmod(path, mode); | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall168(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// poll | |
var fds = SYSCALLS.get(), nfds = SYSCALLS.get(), timeout = SYSCALLS.get(); | |
var nonzero = 0; | |
for (var i = 0; i < nfds; i++) { | |
var pollfd = fds + 8 * i; | |
var fd = HEAP32[((pollfd)>>2)]; | |
var events = HEAP16[(((pollfd)+(4))>>1)]; | |
var mask = 32; | |
var stream = FS.getStream(fd); | |
if (stream) { | |
mask = SYSCALLS.DEFAULT_POLLMASK; | |
if (stream.stream_ops.poll) { | |
mask = stream.stream_ops.poll(stream); | |
} | |
} | |
mask &= events | 8 | 16; | |
if (mask) nonzero++; | |
HEAP16[(((pollfd)+(6))>>1)]=mask; | |
} | |
return nonzero; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall183(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// getcwd | |
var buf = SYSCALLS.get(), size = SYSCALLS.get(); | |
if (size === 0) return -ERRNO_CODES.EINVAL; | |
var cwd = FS.cwd(); | |
var cwdLengthInBytes = lengthBytesUTF8(cwd); | |
if (size < cwdLengthInBytes + 1) return -ERRNO_CODES.ERANGE; | |
stringToUTF8(cwd, buf, size); | |
return buf; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall191(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// ugetrlimit | |
var resource = SYSCALLS.get(), rlim = SYSCALLS.get(); | |
HEAP32[((rlim)>>2)]=-1; // RLIM_INFINITY | |
HEAP32[(((rlim)+(4))>>2)]=-1; // RLIM_INFINITY | |
HEAP32[(((rlim)+(8))>>2)]=-1; // RLIM_INFINITY | |
HEAP32[(((rlim)+(12))>>2)]=-1; // RLIM_INFINITY | |
return 0; // just report no limits | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall192(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// mmap2 | |
var addr = SYSCALLS.get(), len = SYSCALLS.get(), prot = SYSCALLS.get(), flags = SYSCALLS.get(), fd = SYSCALLS.get(), off = SYSCALLS.get() | |
off <<= 12; // undo pgoffset | |
var ptr; | |
var allocated = false; | |
if (fd === -1) { | |
ptr = _memalign(PAGE_SIZE, len); | |
if (!ptr) return -ERRNO_CODES.ENOMEM; | |
_memset(ptr, 0, len); | |
allocated = true; | |
} else { | |
var info = FS.getStream(fd); | |
if (!info) return -ERRNO_CODES.EBADF; | |
var res = FS.mmap(info, HEAPU8, addr, len, off, prot, flags); | |
ptr = res.ptr; | |
allocated = res.allocated; | |
} | |
SYSCALLS.mappings[ptr] = { malloc: ptr, len: len, allocated: allocated, fd: fd, flags: flags }; | |
return ptr; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall194(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// ftruncate64 | |
var fd = SYSCALLS.get(), zero = SYSCALLS.getZero(), length = SYSCALLS.get64(); | |
FS.ftruncate(fd, length); | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall195(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// SYS_stat64 | |
var path = SYSCALLS.getStr(), buf = SYSCALLS.get(); | |
return SYSCALLS.doStat(FS.stat, path, buf); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall196(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// SYS_lstat64 | |
var path = SYSCALLS.getStr(), buf = SYSCALLS.get(); | |
return SYSCALLS.doStat(FS.lstat, path, buf); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall197(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// SYS_fstat64 | |
var stream = SYSCALLS.getStreamFromFD(), buf = SYSCALLS.get(); | |
return SYSCALLS.doStat(FS.stat, stream.path, buf); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall202(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// getgid32 | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
}function ___syscall199() { | |
return ___syscall202.apply(null, arguments) | |
} | |
var PROCINFO={ppid:1,pid:42,sid:42,pgid:42};function ___syscall20(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// getpid | |
return PROCINFO.pid; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall201() { | |
return ___syscall202.apply(null, arguments) | |
} | |
function ___syscall211(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// getresgid32 | |
var ruid = SYSCALLS.get(), euid = SYSCALLS.get(), suid = SYSCALLS.get(); | |
HEAP32[((ruid)>>2)]=0; | |
HEAP32[((euid)>>2)]=0; | |
HEAP32[((suid)>>2)]=0; | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
}function ___syscall209() { | |
return ___syscall211.apply(null, arguments) | |
} | |
function ___syscall219(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// madvise | |
return 0; // advice is welcome, but ignored | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall220(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// SYS_getdents64 | |
var stream = SYSCALLS.getStreamFromFD(), dirp = SYSCALLS.get(), count = SYSCALLS.get(); | |
if (!stream.getdents) { | |
stream.getdents = FS.readdir(stream.path); | |
} | |
var pos = 0; | |
while (stream.getdents.length > 0 && pos + 268 <= count) { | |
var id; | |
var type; | |
var name = stream.getdents.pop(); | |
if (name[0] === '.') { | |
id = 1; | |
type = 4; // DT_DIR | |
} else { | |
var child = FS.lookupNode(stream.node, name); | |
id = child.id; | |
type = FS.isChrdev(child.mode) ? 2 : // DT_CHR, character device. | |
FS.isDir(child.mode) ? 4 : // DT_DIR, directory. | |
FS.isLink(child.mode) ? 10 : // DT_LNK, symbolic link. | |
8; // DT_REG, regular file. | |
} | |
HEAP32[((dirp + pos)>>2)]=id; | |
HEAP32[(((dirp + pos)+(4))>>2)]=stream.position; | |
HEAP16[(((dirp + pos)+(8))>>1)]=268; | |
HEAP8[(((dirp + pos)+(10))>>0)]=type; | |
stringToUTF8(name, dirp + pos + 11, 256); | |
pos += 268; | |
} | |
return pos; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// fcntl64 | |
var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); | |
switch (cmd) { | |
case 0: { | |
var arg = SYSCALLS.get(); | |
if (arg < 0) { | |
return -ERRNO_CODES.EINVAL; | |
} | |
var newStream; | |
newStream = FS.open(stream.path, stream.flags, 0, arg); | |
return newStream.fd; | |
} | |
case 1: | |
case 2: | |
return 0; // FD_CLOEXEC makes no sense for a single process. | |
case 3: | |
return stream.flags; | |
case 4: { | |
var arg = SYSCALLS.get(); | |
stream.flags |= arg; | |
return 0; | |
} | |
case 12: | |
case 12: { | |
var arg = SYSCALLS.get(); | |
var offset = 0; | |
// We're always unlocked. | |
HEAP16[(((arg)+(offset))>>1)]=2; | |
return 0; | |
} | |
case 13: | |
case 14: | |
case 13: | |
case 14: | |
return 0; // Pretend that the locking is successful. | |
case 16: | |
case 8: | |
return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet. | |
case 9: | |
// musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. | |
___setErrNo(ERRNO_CODES.EINVAL); | |
return -1; | |
default: { | |
return -ERRNO_CODES.EINVAL; | |
} | |
} | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall268(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// statfs64 | |
var path = SYSCALLS.getStr(), size = SYSCALLS.get(), buf = SYSCALLS.get(); | |
assert(size === 64); | |
// NOTE: None of the constants here are true. We're just returning safe and | |
// sane values. | |
HEAP32[(((buf)+(4))>>2)]=4096; | |
HEAP32[(((buf)+(40))>>2)]=4096; | |
HEAP32[(((buf)+(8))>>2)]=1000000; | |
HEAP32[(((buf)+(12))>>2)]=500000; | |
HEAP32[(((buf)+(16))>>2)]=500000; | |
HEAP32[(((buf)+(20))>>2)]=FS.nextInode; | |
HEAP32[(((buf)+(24))>>2)]=1000000; | |
HEAP32[(((buf)+(28))>>2)]=42; | |
HEAP32[(((buf)+(44))>>2)]=2; // ST_NOSUID | |
HEAP32[(((buf)+(36))>>2)]=255; | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall272(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// fadvise64_64 | |
return 0; // your advice is important to us (but we can't use it) | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall3(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// read | |
var stream = SYSCALLS.getStreamFromFD(), buf = SYSCALLS.get(), count = SYSCALLS.get(); | |
return FS.read(stream, HEAP8,buf, count); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall33(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// access | |
var path = SYSCALLS.getStr(), amode = SYSCALLS.get(); | |
return SYSCALLS.doAccess(path, amode); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall340(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// prlimit64 | |
var pid = SYSCALLS.get(), resource = SYSCALLS.get(), new_limit = SYSCALLS.get(), old_limit = SYSCALLS.get(); | |
if (old_limit) { // just report no limits | |
HEAP32[((old_limit)>>2)]=-1; // RLIM_INFINITY | |
HEAP32[(((old_limit)+(4))>>2)]=-1; // RLIM_INFINITY | |
HEAP32[(((old_limit)+(8))>>2)]=-1; // RLIM_INFINITY | |
HEAP32[(((old_limit)+(12))>>2)]=-1; // RLIM_INFINITY | |
} | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall38(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// rename | |
var old_path = SYSCALLS.getStr(), new_path = SYSCALLS.getStr(); | |
FS.rename(old_path, new_path); | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall39(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// mkdir | |
var path = SYSCALLS.getStr(), mode = SYSCALLS.get(); | |
return SYSCALLS.doMkdir(path, mode); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall4(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// write | |
var stream = SYSCALLS.getStreamFromFD(), buf = SYSCALLS.get(), count = SYSCALLS.get(); | |
return FS.write(stream, HEAP8,buf, count); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall40(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// rmdir | |
var path = SYSCALLS.getStr(); | |
FS.rmdir(path); | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall41(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// dup | |
var old = SYSCALLS.getStreamFromFD(); | |
return FS.open(old.path, old.flags, 0).fd; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
var PIPEFS={BUCKET_BUFFER_SIZE:8192,mount:function (mount) { | |
// Do not pollute the real root directory or its child nodes with pipes | |
// Looks like it is OK to create another pseudo-root node not linked to the FS.root hierarchy this way | |
return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); | |
},createPipe:function () { | |
var pipe = { | |
buckets: [] | |
}; | |
pipe.buckets.push({ | |
buffer: new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE), | |
offset: 0, | |
roffset: 0 | |
}); | |
var rName = PIPEFS.nextname(); | |
var wName = PIPEFS.nextname(); | |
var rNode = FS.createNode(PIPEFS.root, rName, 4096, 0); | |
var wNode = FS.createNode(PIPEFS.root, wName, 4096, 0); | |
rNode.pipe = pipe; | |
wNode.pipe = pipe; | |
var readableStream = FS.createStream({ | |
path: rName, | |
node: rNode, | |
flags: FS.modeStringToFlags('r'), | |
seekable: false, | |
stream_ops: PIPEFS.stream_ops | |
}); | |
rNode.stream = readableStream; | |
var writableStream = FS.createStream({ | |
path: wName, | |
node: wNode, | |
flags: FS.modeStringToFlags('w'), | |
seekable: false, | |
stream_ops: PIPEFS.stream_ops | |
}); | |
wNode.stream = writableStream; | |
return { | |
readable_fd: readableStream.fd, | |
writable_fd: writableStream.fd | |
}; | |
},stream_ops:{poll:function (stream) { | |
var pipe = stream.node.pipe; | |
if ((stream.flags & 2097155) === 1) { | |
return (256 | 4); | |
} else { | |
if (pipe.buckets.length > 0) { | |
for (var i = 0; i < pipe.buckets.length; i++) { | |
var bucket = pipe.buckets[i]; | |
if (bucket.offset - bucket.roffset > 0) { | |
return (64 | 1); | |
} | |
} | |
} | |
} | |
return 0; | |
},ioctl:function (stream, request, varargs) { | |
return ERRNO_CODES.EINVAL; | |
},read:function (stream, buffer, offset, length, position /* ignored */) { | |
var pipe = stream.node.pipe; | |
var currentLength = 0; | |
for (var i = 0; i < pipe.buckets.length; i++) { | |
var bucket = pipe.buckets[i]; | |
currentLength += bucket.offset - bucket.roffset; | |
} | |
assert(buffer instanceof ArrayBuffer || ArrayBuffer.isView(buffer)); | |
var data = buffer.subarray(offset, offset + length); | |
if (length <= 0) { | |
return 0; | |
} | |
if (currentLength == 0) { | |
// Behave as if the read end is always non-blocking | |
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); | |
} | |
var toRead = Math.min(currentLength, length); | |
var totalRead = toRead; | |
var toRemove = 0; | |
for (var i = 0; i < pipe.buckets.length; i++) { | |
var currBucket = pipe.buckets[i]; | |
var bucketSize = currBucket.offset - currBucket.roffset; | |
if (toRead <= bucketSize) { | |
var tmpSlice = currBucket.buffer.subarray(currBucket.roffset, currBucket.offset); | |
if (toRead < bucketSize) { | |
tmpSlice = tmpSlice.subarray(0, toRead); | |
currBucket.roffset += toRead; | |
} else { | |
toRemove++; | |
} | |
data.set(tmpSlice); | |
break; | |
} else { | |
var tmpSlice = currBucket.buffer.subarray(currBucket.roffset, currBucket.offset); | |
data.set(tmpSlice); | |
data = data.subarray(tmpSlice.byteLength); | |
toRead -= tmpSlice.byteLength; | |
toRemove++; | |
} | |
} | |
if (toRemove && toRemove == pipe.buckets.length) { | |
// Do not generate excessive garbage in use cases such as | |
// write several bytes, read everything, write several bytes, read everything... | |
toRemove--; | |
pipe.buckets[toRemove].offset = 0; | |
pipe.buckets[toRemove].roffset = 0; | |
} | |
pipe.buckets.splice(0, toRemove); | |
return totalRead; | |
},write:function (stream, buffer, offset, length, position /* ignored */) { | |
var pipe = stream.node.pipe; | |
assert(buffer instanceof ArrayBuffer || ArrayBuffer.isView(buffer)); | |
var data = buffer.subarray(offset, offset + length); | |
var dataLen = data.byteLength; | |
if (dataLen <= 0) { | |
return 0; | |
} | |
var currBucket = null; | |
if (pipe.buckets.length == 0) { | |
currBucket = { | |
buffer: new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE), | |
offset: 0, | |
roffset: 0 | |
}; | |
pipe.buckets.push(currBucket); | |
} else { | |
currBucket = pipe.buckets[pipe.buckets.length - 1]; | |
} | |
assert(currBucket.offset <= PIPEFS.BUCKET_BUFFER_SIZE); | |
var freeBytesInCurrBuffer = PIPEFS.BUCKET_BUFFER_SIZE - currBucket.offset; | |
if (freeBytesInCurrBuffer >= dataLen) { | |
currBucket.buffer.set(data, currBucket.offset); | |
currBucket.offset += dataLen; | |
return dataLen; | |
} else if (freeBytesInCurrBuffer > 0) { | |
currBucket.buffer.set(data.subarray(0, freeBytesInCurrBuffer), currBucket.offset); | |
currBucket.offset += freeBytesInCurrBuffer; | |
data = data.subarray(freeBytesInCurrBuffer, data.byteLength); | |
} | |
var numBuckets = (data.byteLength / PIPEFS.BUCKET_BUFFER_SIZE) | 0; | |
var remElements = data.byteLength % PIPEFS.BUCKET_BUFFER_SIZE; | |
for (var i = 0; i < numBuckets; i++) { | |
var newBucket = { | |
buffer: new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE), | |
offset: PIPEFS.BUCKET_BUFFER_SIZE, | |
roffset: 0 | |
}; | |
pipe.buckets.push(newBucket); | |
newBucket.buffer.set(data.subarray(0, PIPEFS.BUCKET_BUFFER_SIZE)); | |
data = data.subarray(PIPEFS.BUCKET_BUFFER_SIZE, data.byteLength); | |
} | |
if (remElements > 0) { | |
var newBucket = { | |
buffer: new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE), | |
offset: data.byteLength, | |
roffset: 0 | |
}; | |
pipe.buckets.push(newBucket); | |
newBucket.buffer.set(data); | |
} | |
return dataLen; | |
},close:function (stream) { | |
var pipe = stream.node.pipe; | |
pipe.buckets = null; | |
}},nextname:function () { | |
if (!PIPEFS.nextname.current) { | |
PIPEFS.nextname.current = 0; | |
} | |
return 'pipe[' + (PIPEFS.nextname.current++) + ']'; | |
}};function ___syscall42(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// pipe | |
var fdPtr = SYSCALLS.get(); | |
if (fdPtr == 0) { | |
throw new FS.ErrnoError(ERRNO_CODES.EFAULT); | |
} | |
var res = PIPEFS.createPipe(); | |
HEAP32[((fdPtr)>>2)]=res.readable_fd; | |
HEAP32[(((fdPtr)+(4))>>2)]=res.writable_fd; | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// open | |
var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO | |
var stream = FS.open(pathname, flags, mode); | |
return stream.fd; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// ioctl | |
var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); | |
switch (op) { | |
case 21509: | |
case 21505: { | |
if (!stream.tty) return -ERRNO_CODES.ENOTTY; | |
return 0; | |
} | |
case 21510: | |
case 21511: | |
case 21512: | |
case 21506: | |
case 21507: | |
case 21508: { | |
if (!stream.tty) return -ERRNO_CODES.ENOTTY; | |
return 0; // no-op, not actually adjusting terminal settings | |
} | |
case 21519: { | |
if (!stream.tty) return -ERRNO_CODES.ENOTTY; | |
var argp = SYSCALLS.get(); | |
HEAP32[((argp)>>2)]=0; | |
return 0; | |
} | |
case 21520: { | |
if (!stream.tty) return -ERRNO_CODES.ENOTTY; | |
return -ERRNO_CODES.EINVAL; // not supported | |
} | |
case 21531: { | |
var argp = SYSCALLS.get(); | |
return FS.ioctl(stream, op, argp); | |
} | |
case 21523: { | |
// TODO: in theory we should write to the winsize struct that gets | |
// passed in, but for now musl doesn't read anything on it | |
if (!stream.tty) return -ERRNO_CODES.ENOTTY; | |
return 0; | |
} | |
default: abort('bad ioctl syscall ' + op); | |
} | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// close | |
var stream = SYSCALLS.getStreamFromFD(); | |
FS.close(stream); | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall63(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// dup2 | |
var old = SYSCALLS.getStreamFromFD(), suggestFD = SYSCALLS.get(); | |
if (old.fd === suggestFD) return suggestFD; | |
return SYSCALLS.doDup(old.path, old.flags, suggestFD); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall77(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// getrusage | |
var who = SYSCALLS.get(), usage = SYSCALLS.get(); | |
_memset(usage, 0, 136); | |
HEAP32[((usage)>>2)]=1; // fake some values | |
HEAP32[(((usage)+(4))>>2)]=2; | |
HEAP32[(((usage)+(8))>>2)]=3; | |
HEAP32[(((usage)+(12))>>2)]=4; | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall85(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// readlink | |
var path = SYSCALLS.getStr(), buf = SYSCALLS.get(), bufsize = SYSCALLS.get(); | |
return SYSCALLS.doReadlink(path, buf, bufsize); | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall91(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// munmap | |
var addr = SYSCALLS.get(), len = SYSCALLS.get(); | |
// TODO: support unmmap'ing parts of allocations | |
var info = SYSCALLS.mappings[addr]; | |
if (!info) return 0; | |
if (len === info.len) { | |
var stream = FS.getStream(info.fd); | |
SYSCALLS.doMsync(addr, stream, len, info.flags) | |
FS.munmap(stream); | |
SYSCALLS.mappings[addr] = null; | |
if (info.allocated) { | |
_free(info.malloc); | |
} | |
} | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall96(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// getpriority | |
return 0; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___syscall97(which, varargs) {SYSCALLS.varargs = varargs; | |
try { | |
// setpriority | |
return -ERRNO_CODES.EPERM; | |
} catch (e) { | |
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); | |
return -e.errno; | |
} | |
} | |
function ___unlock() {} | |
function __exit(status) { | |
// void _exit(int status); | |
// http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html | |
Module['exit'](status); | |
} | |
function _abort() { | |
Module['abort'](); | |
} | |
function _atexit(func, arg) { | |
warnOnce('atexit() called, but NO_EXIT_RUNTIME is set, so atexits() will not be called. set NO_EXIT_RUNTIME to 0 (see the FAQ)'); | |
__ATEXIT__.unshift({ func: func, arg: arg }); | |
} | |
function _emscripten_get_now_res() { // return resolution of get_now, in nanoseconds | |
if (ENVIRONMENT_IS_NODE) { | |
return 1; // nanoseconds | |
} else if (typeof dateNow !== 'undefined' || | |
((ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && self['performance'] && self['performance']['now'])) { | |
return 1000; // microseconds (1/1000 of a millisecond) | |
} else { | |
return 1000*1000; // milliseconds | |
} | |
}function _clock_getres(clk_id, res) { | |
// int clock_getres(clockid_t clk_id, struct timespec *res); | |
var nsec; | |
if (clk_id === 0) { | |
nsec = 1000 * 1000; // educated guess that it's milliseconds | |
} else if (clk_id === 1 && _emscripten_get_now_is_monotonic()) { | |
nsec = _emscripten_get_now_res(); | |
} else { | |
___setErrNo(ERRNO_CODES.EINVAL); | |
return -1; | |
} | |
HEAP32[((res)>>2)]=(nsec/1000000000)|0; | |
HEAP32[(((res)+(4))>>2)]=nsec // resolution is nanoseconds | |
return 0; | |
} | |
var _emscripten_asm_const_int=true; | |
function _execl(/* ... */) { | |
// int execl(const char *path, const char *arg0, ... /*, (char *)0 */); | |
// http://pubs.opengroup.org/onlinepubs/009695399/functions/exec.html | |
// We don't support executing external code. | |
___setErrNo(ERRNO_CODES.ENOEXEC); | |
return -1; | |
}function _execve() { | |
return _execl.apply(null, arguments) | |
} | |
function _exit(status) { | |
__exit(status); | |
} | |
function _fork() { | |
// pid_t fork(void); | |
// http://pubs.opengroup.org/onlinepubs/000095399/functions/fork.html | |
// We don't support multiple processes. | |
___setErrNo(ERRNO_CODES.EAGAIN); | |
return -1; | |
} | |
function _getaddrinfo(node, service, hint, out) { | |
// Note getaddrinfo currently only returns a single addrinfo with ai_next defaulting to NULL. When NULL | |
// hints are specified or ai_family set to AF_UNSPEC or ai_socktype or ai_protocol set to 0 then we | |
// really should provide a linked list of suitable addrinfo values. | |
var addrs = []; | |
var canon = null; | |
var addr = 0; | |
var port = 0; | |
var flags = 0; | |
var family = 0; | |
var type = 0; | |
var proto = 0; | |
var ai, last; | |
function allocaddrinfo(family, type, proto, canon, addr, port) { | |
var sa, salen, ai; | |
var res; | |
salen = family === 10 ? | |
28 : | |
16; | |
addr = family === 10 ? | |
__inet_ntop6_raw(addr) : | |
__inet_ntop4_raw(addr); | |
sa = _malloc(salen); | |
res = __write_sockaddr(sa, family, addr, port); | |
assert(!res.errno); | |
ai = _malloc(32); | |
HEAP32[(((ai)+(4))>>2)]=family; | |
HEAP32[(((ai)+(8))>>2)]=type; | |
HEAP32[(((ai)+(12))>>2)]=proto; | |
HEAP32[(((ai)+(24))>>2)]=canon; | |
HEAP32[(((ai)+(20))>>2)]=sa; | |
if (family === 10) { | |
HEAP32[(((ai)+(16))>>2)]=28; | |
} else { | |
HEAP32[(((ai)+(16))>>2)]=16; | |
} | |
HEAP32[(((ai)+(28))>>2)]=0; | |
return ai; | |
} | |
if (hint) { | |
flags = HEAP32[((hint)>>2)]; | |
family = HEAP32[(((hint)+(4))>>2)]; | |
type = HEAP32[(((hint)+(8))>>2)]; | |
proto = HEAP32[(((hint)+(12))>>2)]; | |
} | |
if (type && !proto) { | |
proto = type === 2 ? 17 : 6; | |
} | |
if (!type && proto) { | |
type = proto === 17 ? 2 : 1; | |
} | |
// If type or proto are set to zero in hints we should really be returning multiple addrinfo values, but for | |
// now default to a TCP STREAM socket so we can at least return a sensible addrinfo given NULL hints. | |
if (proto === 0) { | |
proto = 6; | |
} | |
if (type === 0) { | |
type = 1; | |
} | |
if (!node && !service) { | |
return -2; | |
} | |
if (flags & ~(1|2|4| | |
1024|8|16|32)) { | |
return -1; | |
} | |
if (hint !== 0 && (HEAP32[((hint)>>2)] & 2) && !node) { | |
return -1; | |
} | |
if (flags & 32) { | |
// TODO | |
return -2; | |
} | |
if (type !== 0 && type !== 1 && type !== 2) { | |
return -7; | |
} | |
if (family !== 0 && family !== 2 && family !== 10) { | |
return -6; | |
} | |
if (service) { | |
service = Pointer_stringify(service); | |
port = parseInt(service, 10); | |
if (isNaN(port)) { | |
if (flags & 1024) { | |
return -2; | |
} | |
// TODO support resolving well-known service names from: | |
// http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt | |
return -8; | |
} | |
} | |
if (!node) { | |
if (family === 0) { | |
family = 2; | |
} | |
if ((flags & 1) === 0) { | |
if (family === 2) { | |
addr = _htonl(2130706433); | |
} else { | |
addr = [0, 0, 0, 1]; | |
} | |
} | |
ai = allocaddrinfo(family, type, proto, null, addr, port); | |
HEAP32[((out)>>2)]=ai; | |
return 0; | |
} | |
// | |
// try as a numeric address | |
// | |
node = Pointer_stringify(node); | |
addr = __inet_pton4_raw(node); | |
if (addr !== null) { | |
// incoming node is a valid ipv4 address | |
if (family === 0 || family === 2) { | |
family = 2; | |
} | |
else if (family === 10 && (flags & 8)) { | |
addr = [0, 0, _htonl(0xffff), addr]; | |
family = 10; | |
} else { | |
return -2; | |
} | |
} else { | |
addr = __inet_pton6_raw(node); | |
if (addr !== null) { | |
// incoming node is a valid ipv6 address | |
if (family === 0 || family === 10) { | |
family = 10; | |
} else { | |
return -2; | |
} | |
} | |
} | |
if (addr != null) { | |
ai = allocaddrinfo(family, type, proto, node, addr, port); | |
HEAP32[((out)>>2)]=ai; | |
return 0; | |
} | |
if (flags & 4) { | |
return -2; | |
} | |
// | |
// try as a hostname | |
// | |
// resolve the hostname to a temporary fake address | |
node = DNS.lookup_name(node); | |
addr = __inet_pton4_raw(node); | |
if (family === 0) { | |
family = 2; | |
} else if (family === 10) { | |
addr = [0, 0, _htonl(0xffff), addr]; | |
} | |
ai = allocaddrinfo(family, type, proto, null, addr, port); | |
HEAP32[((out)>>2)]=ai; | |
return 0; | |
} | |
var _environ=STATICTOP; STATICTOP += 16;;var ___environ=_environ;function ___buildEnvironment(env) { | |
// WARNING: Arbitrary limit! | |
var MAX_ENV_VALUES = 64; | |
var TOTAL_ENV_SIZE = 1024; | |
// Statically allocate memory for the environment. | |
var poolPtr; | |
var envPtr; | |
if (!___buildEnvironment.called) { | |
___buildEnvironment.called = true; | |
// Set default values. Use string keys for Closure Compiler compatibility. | |
ENV['USER'] = ENV['LOGNAME'] = 'web_user'; | |
ENV['PATH'] = '/'; | |
ENV['PWD'] = '/'; | |
ENV['HOME'] = '/home/web_user'; | |
ENV['LANG'] = 'C.UTF-8'; | |
ENV['_'] = Module['thisProgram']; | |
// Allocate memory. | |
poolPtr = staticAlloc(TOTAL_ENV_SIZE); | |
envPtr = staticAlloc(MAX_ENV_VALUES * 4); | |
HEAP32[((envPtr)>>2)]=poolPtr; | |
HEAP32[((_environ)>>2)]=envPtr; | |
} else { | |
envPtr = HEAP32[((_environ)>>2)]; | |
poolPtr = HEAP32[((envPtr)>>2)]; | |
} | |
// Collect key=value lines. | |
var strings = []; | |
var totalSize = 0; | |
for (var key in env) { | |
if (typeof env[key] === 'string') { | |
var line = key + '=' + env[key]; | |
strings.push(line); | |
totalSize += line.length; | |
} | |
} | |
if (totalSize > TOTAL_ENV_SIZE) { | |
throw new Error('Environment size exceeded TOTAL_ENV_SIZE!'); | |
} | |
// Make new. | |
var ptrSize = 4; | |
for (var i = 0; i < strings.length; i++) { | |
var line = strings[i]; | |
writeAsciiToMemory(line, poolPtr); | |
HEAP32[(((envPtr)+(i * ptrSize))>>2)]=poolPtr; | |
poolPtr += line.length + 1; | |
} | |
HEAP32[(((envPtr)+(strings.length * ptrSize))>>2)]=0; | |
}var ENV={};function _getenv(name) { | |
// char *getenv(const char *name); | |
// http://pubs.opengroup.org/onlinepubs/009695399/functions/getenv.html | |
if (name === 0) return 0; | |
name = Pointer_stringify(name); | |
if (!ENV.hasOwnProperty(name)) return 0; | |
if (_getenv.ret) _free(_getenv.ret); | |
_getenv.ret = allocateUTF8(ENV[name]); | |
return _getenv.ret; | |
} | |
function _getnameinfo(sa, salen, node, nodelen, serv, servlen, flags) { | |
var info = __read_sockaddr(sa, salen); | |
if (info.errno) { | |
return -6; | |
} | |
var port = info.port; | |
var addr = info.addr; | |
var overflowed = false; | |
if (node && nodelen) { | |
var lookup; | |
if ((flags & 1) || !(lookup = DNS.lookup_addr(addr))) { | |
if (flags & 8) { | |
return -2; | |
} | |
} else { | |
addr = lookup; | |
} | |
var numBytesWrittenExclNull = stringToUTF8(addr, node, nodelen); | |
if (numBytesWrittenExclNull+1 >= nodelen) { | |
overflowed = true; | |
} | |
} | |
if (serv && servlen) { | |
port = '' + port; | |
var numBytesWrittenExclNull = stringToUTF8(port, serv, servlen); | |
if (numBytesWrittenExclNull+1 >= servlen) { | |
overflowed = true; | |
} | |
} | |
if (overflowed) { | |
// Note: even when we overflow, getnameinfo() is specced to write out the truncated results. | |
return -12; | |
} | |
return 0; | |
} | |
var Protocols={list:[],map:{}};function _setprotoent(stayopen) { | |
// void setprotoent(int stayopen); | |
// Allocate and populate a protoent structure given a name, protocol number and array of aliases | |
function allocprotoent(name, proto, aliases) { | |
// write name into buffer | |
var nameBuf = _malloc(name.length + 1); | |
writeAsciiToMemory(name, nameBuf); | |
// write aliases into buffer | |
var j = 0; | |
var length = aliases.length; | |
var aliasListBuf = _malloc((length + 1) * 4); // Use length + 1 so we have space for the terminating NULL ptr. | |
for (var i = 0; i < length; i++, j += 4) { | |
var alias = aliases[i]; | |
var aliasBuf = _malloc(alias.length + 1); | |
writeAsciiToMemory(alias, aliasBuf); | |
HEAP32[(((aliasListBuf)+(j))>>2)]=aliasBuf; | |
} | |
HEAP32[(((aliasListBuf)+(j))>>2)]=0; // Terminating NULL pointer. | |
// generate protoent | |
var pe = _malloc(12); | |
HEAP32[((pe)>>2)]=nameBuf; | |
HEAP32[(((pe)+(4))>>2)]=aliasListBuf; | |
HEAP32[(((pe)+(8))>>2)]=proto; | |
return pe; | |
}; | |
// Populate the protocol 'database'. The entries are limited to tcp and udp, though it is fairly trivial | |
// to add extra entries from /etc/protocols if desired - though not sure if that'd actually be useful. | |
var list = Protocols.list; | |
var map = Protocols.map; | |
if (list.length === 0) { | |
var entry = allocprotoent('tcp', 6, ['TCP']); | |
list.push(entry); | |
map['tcp'] = map['6'] = entry; | |
entry = allocprotoent('udp', 17, ['UDP']); | |
list.push(entry); | |
map['udp'] = map['17'] = entry; | |
} | |
_setprotoent.index = 0; | |
}function _getprotobyname(name) { | |
// struct protoent *getprotobyname(const char *); | |
name = Pointer_stringify(name); | |
_setprotoent(true); | |
var result = Protocols.map[name]; | |
return result; | |
} | |
function _getpwuid(uid) { | |
return 0; // NULL | |
} | |
function _gettimeofday(ptr) { | |
var now = Date.now(); | |
HEAP32[((ptr)>>2)]=(now/1000)|0; // seconds | |
HEAP32[(((ptr)+(4))>>2)]=((now % 1000)*1000)|0; // microseconds | |
return 0; | |
} | |
var ___tm_timezone=allocate(intArrayFromString("GMT"), "i8", ALLOC_STATIC);function _gmtime_r(time, tmPtr) { | |
var date = new Date(HEAP32[((time)>>2)]*1000); | |
HEAP32[((tmPtr)>>2)]=date.getUTCSeconds(); | |
HEAP32[(((tmPtr)+(4))>>2)]=date.getUTCMinutes(); | |
HEAP32[(((tmPtr)+(8))>>2)]=date.getUTCHours(); | |
HEAP32[(((tmPtr)+(12))>>2)]=date.getUTCDate(); | |
HEAP32[(((tmPtr)+(16))>>2)]=date.getUTCMonth(); | |
HEAP32[(((tmPtr)+(20))>>2)]=date.getUTCFullYear()-1900; | |
HEAP32[(((tmPtr)+(24))>>2)]=date.getUTCDay(); | |
HEAP32[(((tmPtr)+(36))>>2)]=0; | |
HEAP32[(((tmPtr)+(32))>>2)]=0; | |
var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); | |
var yday = ((date.getTime() - start) / (1000 * 60 * 60 * 24))|0; | |
HEAP32[(((tmPtr)+(28))>>2)]=yday; | |
HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone; | |
return tmPtr; | |
} | |
function _kill(pid, sig) { | |
// http://pubs.opengroup.org/onlinepubs/000095399/functions/kill.html | |
// Makes no sense in a single-process environment. | |
// Should kill itself somtimes depending on `pid` | |
Module.printErr('Calling stub instead of kill()'); | |
___setErrNo(ERRNO_CODES.EPERM); | |
return -1; | |
} | |
var _llvm_ctlz_i32=true; | |
var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_STATIC);function _llvm_cttz_i32(x) { | |
x = x|0; | |
var ret = 0; | |
ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0); | |
if ((ret|0) < 8) return ret|0; | |
ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0); | |
if ((ret|0) < 8) return (ret + 8)|0; | |
ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0); | |
if ((ret|0) < 8) return (ret + 16)|0; | |
return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0; | |
} | |
var _llvm_pow_f32=Math_pow; | |
var _llvm_pow_f64=Math_pow; | |
function _llvm_stackrestore(p) { | |
var self = _llvm_stacksave; | |
var ret = self.LLVM_SAVEDSTACKS[p]; | |
self.LLVM_SAVEDSTACKS.splice(p, 1); | |
stackRestore(ret); | |
} | |
function _llvm_stacksave() { | |
var self = _llvm_stacksave; | |
if (!self.LLVM_SAVEDSTACKS) { | |
self.LLVM_SAVEDSTACKS = []; | |
} | |
self.LLVM_SAVEDSTACKS.push(stackSave()); | |
return self.LLVM_SAVEDSTACKS.length-1; | |
} | |
var _tzname=STATICTOP; STATICTOP += 16;; | |
var _daylight=STATICTOP; STATICTOP += 16;; | |
var _timezone=STATICTOP; STATICTOP += 16;;function _tzset() { | |
// TODO: Use (malleable) environment variables instead of system settings. | |
if (_tzset.called) return; | |
_tzset.called = true; | |
// timezone is specified as seconds west of UTC ("The external variable | |
// `timezone` shall be set to the difference, in seconds, between | |
// Coordinated Universal Time (UTC) and local standard time."), the same | |
// as returned by getTimezoneOffset(). | |
// See http://pubs.opengroup.org/onlinepubs/009695399/functions/tzset.html | |
HEAP32[((_timezone)>>2)]=(new Date()).getTimezoneOffset() * 60; | |
var winter = new Date(2000, 0, 1); | |
var summer = new Date(2000, 6, 1); | |
HEAP32[((_daylight)>>2)]=Number(winter.getTimezoneOffset() != summer.getTimezoneOffset()); | |
function extractZone(date) { | |
var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); | |
return match ? match[1] : "GMT"; | |
}; | |
var winterName = extractZone(winter); | |
var summerName = extractZone(summer); | |
var winterNamePtr = allocate(intArrayFromString(winterName), 'i8', ALLOC_NORMAL); | |
var summerNamePtr = allocate(intArrayFromString(summerName), 'i8', ALLOC_NORMAL); | |
if (summer.getTimezoneOffset() < winter.getTimezoneOffset()) { | |
// Northern hemisphere | |
HEAP32[((_tzname)>>2)]=winterNamePtr; | |
HEAP32[(((_tzname)+(4))>>2)]=summerNamePtr; | |
} else { | |
HEAP32[((_tzname)>>2)]=summerNamePtr; | |
HEAP32[(((_tzname)+(4))>>2)]=winterNamePtr; | |
} | |
}function _localtime_r(time, tmPtr) { | |
_tzset(); | |
var date = new Date(HEAP32[((time)>>2)]*1000); | |
HEAP32[((tmPtr)>>2)]=date.getSeconds(); | |
HEAP32[(((tmPtr)+(4))>>2)]=date.getMinutes(); | |
HEAP32[(((tmPtr)+(8))>>2)]=date.getHours(); | |
HEAP32[(((tmPtr)+(12))>>2)]=date.getDate(); | |
HEAP32[(((tmPtr)+(16))>>2)]=date.getMonth(); | |
HEAP32[(((tmPtr)+(20))>>2)]=date.getFullYear()-1900; | |
HEAP32[(((tmPtr)+(24))>>2)]=date.getDay(); | |
var start = new Date(date.getFullYear(), 0, 1); | |
var yday = ((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24))|0; | |
HEAP32[(((tmPtr)+(28))>>2)]=yday; | |
HEAP32[(((tmPtr)+(36))>>2)]=-(date.getTimezoneOffset() * 60); | |
// Attention: DST is in December in South, and some regions don't have DST at all. | |
var summerOffset = new Date(2000, 6, 1).getTimezoneOffset(); | |
var winterOffset = start.getTimezoneOffset(); | |
var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset))|0; | |
HEAP32[(((tmPtr)+(32))>>2)]=dst; | |
var zonePtr = HEAP32[(((_tzname)+(dst ? 4 : 0))>>2)]; | |
HEAP32[(((tmPtr)+(40))>>2)]=zonePtr; | |
return tmPtr; | |
} | |
function _emscripten_memcpy_big(dest, src, num) { | |
HEAPU8.set(HEAPU8.subarray(src, src+num), dest); | |
return dest; | |
} | |
function _mono_sdb_single_step_trampoline() { | |
Module['printErr']('missing function: mono_sdb_single_step_trampoline'); abort(-1); | |
} | |
var MONO={pump_count:0,timeout_queue:[],mono_wasm_runtime_is_ready:false,pump_message:function () { | |
if (!this.mono_background_exec) | |
this.mono_background_exec = Module.cwrap ("mono_background_exec", 'void', [ ]); | |
while (MONO.timeout_queue.length > 0) { | |
--MONO.pump_count; | |
MONO.timeout_queue.shift()(); | |
} | |
while (MONO.pump_count > 0) { | |
--MONO.pump_count; | |
this.mono_background_exec (); | |
} | |
},mono_wasm_get_call_stack:function () { | |
if (!this.mono_wasm_current_bp_id) | |
this.mono_wasm_current_bp_id = Module.cwrap ("mono_wasm_current_bp_id", 'number', [ ]); | |
if (!this.mono_wasm_enum_frames) | |
this.mono_wasm_enum_frames = Module.cwrap ("mono_wasm_enum_frames", 'void', [ ]); | |
var bp_id = this.mono_wasm_current_bp_id (); | |
this.active_frames = []; | |
this.mono_wasm_enum_frames (); | |
var the_frames = this.active_frames; | |
this.active_frames = []; | |
return { | |
"breakpoint_id": bp_id, | |
"frames": the_frames, | |
}; | |
},mono_wasm_get_variables:function (scope, var_list) { | |
if (!this.mono_wasm_get_var_info) | |
this.mono_wasm_get_var_info = Module.cwrap ("mono_wasm_get_var_info", 'void', [ 'number', 'number']); | |
//FIXME it would be more efficient to do a single call passing an array with var_list as argument instead | |
this.var_info = []; | |
for (var i = 0; i < var_list.length; ++i) | |
this.mono_wasm_get_var_info (scope, var_list [i]); | |
var res = this.var_info; | |
this.var_info = [] | |
return res; | |
},mono_wasm_start_single_stepping:function (kind) { | |
console.log (">> mono_wasm_start_single_stepping " + kind); | |
if (!this.mono_wasm_setup_single_step) | |
this.mono_wasm_setup_single_step = Module.cwrap ("mono_wasm_setup_single_step", 'void', [ 'number']); | |
this.mono_wasm_setup_single_step (kind); | |
},mono_wasm_runtime_ready:function () { | |
console.log (">>mono_wasm_runtime_ready"); | |
this.mono_wasm_runtime_is_ready = true; | |
debugger; | |
},mono_wasm_set_breakpoint:function (assembly, method_token, il_offset) { | |
if (!this.mono_wasm_set_bp) | |
this.mono_wasm_set_bp = Module.cwrap ('mono_wasm_set_breakpoint', 'number', ['string', 'number', 'number']); | |
return this.mono_wasm_set_bp (assembly, method_token, il_offset) | |
},mono_load_runtime_and_bcl:function (vfs_prefix, deploy_prefix, enable_debugging, file_list, loaded_cb, fetch_file_cb) { | |
Module.FS_createPath ("/", vfs_prefix, true, true); | |
var pending = 0; | |
var loaded_files = []; | |
file_list.forEach (function(file_name) { | |
++pending; | |
var fetch_promise = null; | |
if (fetch_file_cb) | |
fetch_promise = fetch_file_cb (deploy_prefix + "/" + file_name); | |
else | |
fetch_promise = fetch (deploy_prefix + "/" + file_name, { credentials: 'same-origin' }); | |
fetch_promise.then (function (response) { | |
if (!response.ok) | |
throw "failed to load '" + file_name + "'"; | |
loaded_files.push (response.url); | |
return response ['arrayBuffer'] (); | |
}).then (function (blob) { | |
var asm = new Uint8Array (blob); | |
Module.FS_createDataFile (vfs_prefix + "/" + file_name, null, asm, true, true, true); | |
console.log ("Loaded: " + file_name); | |
--pending; | |
if (pending == 0) { | |
MONO.loaded_files = loaded_files; | |
var load_runtime = Module.cwrap ('mono_wasm_load_runtime', null, ['string', 'number']); | |
console.log ("initializing mono runtime"); | |
load_runtime (vfs_prefix, enable_debugging); | |
MONO.mono_wasm_runtime_ready (); | |
loaded_cb (); | |
} | |
}); | |
}); | |
},mono_wasm_get_loaded_files:function () { | |
console.log(">>>mono_wasm_get_loaded_files"); | |
return this.loaded_files; | |
},mono_wasm_clear_all_breakpoints:function () { | |
if (this.mono_clear_bps) | |
this.mono_clear_bps = Module.cwrap ('mono_wasm_clear_all_breakpoints', 'void', [ ]); | |
this.mono_clear_bps (); | |
}};function _mono_set_timeout(timeout, id) { | |
if (!this.mono_set_timeout_exec) | |
this.mono_set_timeout_exec = Module.cwrap ("mono_set_timeout_exec", 'void', [ 'number' ]); | |
if (ENVIRONMENT_IS_WEB) { | |
window.setTimeout (function () { | |
this.mono_set_timeout_exec (id); | |
}, timeout); | |
} else { | |
++MONO.pump_count; | |
MONO.timeout_queue.push(function() { | |
this.mono_set_timeout_exec (id); | |
}) | |
} | |
} | |
function _mono_wasm_add_bool_var(var_value) { | |
MONO.var_info.push({ | |
value: { | |
type: "boolean", | |
value: var_value != 0, | |
} | |
}); | |
} | |
function _mono_wasm_add_float_var(var_value) { | |
MONO.var_info.push({ | |
value: { | |
type: "number", | |
value: var_value, | |
} | |
}); | |
} | |
function _mono_wasm_add_frame(il, method, name) { | |
MONO.active_frames.push( { | |
il_pos: il, | |
method_token: method, | |
assembly_name: Module.UTF8ToString (name) | |
}); | |
} | |
function _mono_wasm_add_int_var(var_value) { | |
MONO.var_info.push({ | |
value: { | |
type: "number", | |
value: var_value, | |
} | |
}); | |
} | |
function _mono_wasm_add_long_var(var_value) { | |
MONO.var_info.push({ | |
value: { | |
type: "number", | |
value: var_value, | |
} | |
}); | |
} | |
function _mono_wasm_add_object(obj_id, class_name) { | |
if (obj_id == 0) { | |
MONO.var_info.push({ | |
value: { | |
type: "object", | |
subtype: "null" | |
} | |
}); | |
} else { | |
MONO.var_info.push({ | |
value: { | |
type: "object", | |
className: Module.UTF8ToString (class_name), | |
description: "C# Object", | |
objectId: "dotnet:object:" + obj_id, | |
writable: false, | |
configurable: false, | |
enumerable: false | |
} | |
}); | |
} | |
} | |
function _mono_wasm_add_string_var(var_value) { | |
if (var_value == 0) { | |
MONO.var_info.push({ | |
value: { | |
type: "object", | |
subtype: "null" | |
} | |
}); | |
} else { | |
MONO.var_info.push({ | |
value: { | |
type: "string", | |
value: Module.UTF8ToString (var_value), | |
} | |
}); | |
} | |
} | |
function _mono_wasm_fire_bp() { | |
console.log ("mono_wasm_fire_bp"); | |
debugger; | |
} | |
var BINDING={BINDING_ASM:"binding_tests",js_objects_table:[],mono_bindings_init:function (binding_asm) { | |
this.BINDING_ASM = binding_asm; | |
},export_functions:function (module) { | |
module ["mono_bindings_init"] = BINDING.mono_bindings_init.bind(BINDING); | |
module ["mono_method_invoke"] = BINDING.call_method.bind(BINDING); | |
module ["mono_method_get_call_signature"] = BINDING.mono_method_get_call_signature.bind(BINDING); | |
module ["mono_method_resolve"] = BINDING.resolve_method_fqn.bind(BINDING); | |
module ["mono_bind_static_method"] = BINDING.bind_static_method.bind(BINDING); | |
module ["mono_call_static_method"] = BINDING.call_static_method.bind(BINDING); | |
},bindings_lazy_init:function () { | |
if (this.init) | |
return; | |
this.assembly_load = Module.cwrap ('mono_wasm_assembly_load', 'number', ['string']); | |
this.find_class = Module.cwrap ('mono_wasm_assembly_find_class', 'number', ['number', 'string', 'string']); | |
this.find_method = Module.cwrap ('mono_wasm_assembly_find_method', 'number', ['number', 'string', 'number']); | |
this.invoke_method = Module.cwrap ('mono_wasm_invoke_method', 'number', ['number', 'number', 'number']); | |
this.mono_string_get_utf8 = Module.cwrap ('mono_wasm_string_get_utf8', 'number', ['number']); | |
this.js_string_to_mono_string = Module.cwrap ('mono_wasm_string_from_js', 'number', ['string']); | |
this.mono_get_obj_type = Module.cwrap ('mono_wasm_get_obj_type', 'number', ['number']); | |
this.mono_unbox_int = Module.cwrap ('mono_unbox_int', 'number', ['number']); | |
this.mono_unbox_float = Module.cwrap ('mono_wasm_unbox_float', 'number', ['number']); | |
this.mono_array_length = Module.cwrap ('mono_wasm_array_length', 'number', ['number']); | |
this.mono_array_get = Module.cwrap ('mono_wasm_array_get', 'number', ['number', 'number']); | |
this.mono_obj_array_new = Module.cwrap ('mono_wasm_obj_array_new', 'number', ['number']); | |
this.mono_obj_array_set = Module.cwrap ('mono_wasm_obj_array_set', 'void', ['number', 'number', 'number']); | |
this.binding_module = this.assembly_load (this.BINDING_ASM); | |
var wasm_runtime_class = this.find_class (this.binding_module, "WebAssembly", "Runtime") | |
if (!wasm_runtime_class) | |
throw "Can't find WebAssembly.Runtime class"; | |
var get_method = function(method_name) { | |
var res = BINDING.find_method (wasm_runtime_class, method_name, -1) | |
if (!res) | |
throw "Can't find method WebAssembly.Runtime:" + method_name; | |
return res; | |
} | |
this.bind_js_obj = get_method ("BindJSObject"); | |
this.bind_existing_obj = get_method ("BindExistingObject"); | |
this.get_js_id = get_method ("GetJSObjectId"); | |
this.get_raw_mono_obj = get_method ("GetMonoObject"); | |
this.box_js_int = get_method ("BoxInt"); | |
this.box_js_double = get_method ("BoxDouble"); | |
this.box_js_bool = get_method ("BoxBool"); | |
this.setup_js_cont = get_method ("SetupJSContinuation"); | |
this.create_tcs = get_method ("CreateTaskSource"); | |
this.set_tcs_result = get_method ("SetTaskSourceResult"); | |
this.set_tcs_failure = get_method ("SetTaskSourceFailure"); | |
this.tcs_get_task_and_bind = get_method ("GetTaskAndBind"); | |
this.get_call_sig = get_method ("GetCallSignature"); | |
this.init = true; | |
},get_js_obj:function (js_handle) { | |
if (js_handle > 0) | |
return this.js_objects_table [js_handle - 1]; | |
return null; | |
},conv_string:function (mono_obj) { | |
if (mono_obj == 0) | |
return null; | |
var raw = this.mono_string_get_utf8 (mono_obj); | |
var res = Module.UTF8ToString (raw); | |
Module._free (raw); | |
return res; | |
},mono_array_to_js_array:function (mono_array) { | |
if (mono_array == 0) | |
return null; | |
var res = []; | |
var len = this.mono_array_length (mono_array); | |
for (var i = 0; i < len; ++i) | |
res.push (this.unbox_mono_obj (this.mono_array_get (mono_array, i))); | |
return res; | |
},js_array_to_mono_array:function (js_array) { | |
var mono_array = this.mono_obj_array_new (js_array.length); | |
for (var i = 0; i < js_array.length; ++i) { | |
this.mono_obj_array_set (mono_array, i, this.js_to_mono_obj (js_array [i])); | |
} | |
return mono_array; | |
},unbox_mono_obj:function (mono_obj) { | |
if (mono_obj == 0) | |
return undefined; | |
var type = this.mono_get_obj_type (mono_obj); | |
//See MARSHAL_TYPE_ defines in driver.c | |
switch (type) { | |
case 1: // int | |
return this.mono_unbox_int (mono_obj); | |
case 2: // float | |
return this.mono_unbox_float (mono_obj); | |
case 3: //string | |
return this.conv_string (mono_obj); | |
case 4: //vts | |
throw new Error ("no idea on how to unbox value types"); | |
case 5: { // delegate | |
var obj = this.extract_js_obj (mono_obj); | |
return function () { | |
return BINDING.invoke_delegate (obj, arguments); | |
}; | |
} | |
case 6: {// Task | |
var obj = this.extract_js_obj (mono_obj); | |
var cont_obj = null; | |
var promise = new Promise (function (resolve, reject) { | |
cont_obj = { | |
resolve: resolve, | |
reject: reject | |
}; | |
}); | |
this.call_method (this.setup_js_cont, null, "mo", [ mono_obj, cont_obj ]); | |
return promise; | |
} | |
case 7: // ref type | |
return this.extract_js_obj (mono_obj); | |
case 8: // bool | |
return this.mono_unbox_int (mono_obj) != 0; | |
default: | |
throw new Error ("no idea on how to unbox object kind " + type); | |
} | |
},create_task_completion_source:function () { | |
return this.call_method (this.create_tcs, null, "", []); | |
},set_task_result:function (tcs, result) { | |
this.call_method (this.set_tcs_result, null, "oo", [ tcs, result ]); | |
},set_task_failure:function (tcs, reason) { | |
this.call_method (this.set_tcs_failure, null, "os", [ tcs, reason.toString () ]); | |
},js_to_mono_obj:function (js_obj) { | |
this.bindings_lazy_init (); | |
if (js_obj == null || js_obj == undefined) | |
return 0; | |
if (typeof js_obj == 'number') { | |
if (parseInt(js_obj) == js_obj) | |
return this.call_method (this.box_js_int, null, "im", [ js_obj ]); | |
return this.call_method (this.box_js_double, null, "dm", [ js_obj ]); | |
} | |
if (typeof js_obj == 'string') | |
return this.js_string_to_mono_string (js_obj); | |
if (typeof js_obj == 'boolean') | |
return this.call_method (this.box_js_bool, null, "im", [ js_obj ]); | |
if (Promise.resolve(js_obj) === js_obj) { | |
var the_task = this.try_extract_mono_obj (js_obj); | |
if (the_task) | |
return the_task; | |
var tcs = this.create_task_completion_source (); | |
//FIXME dispose the TCS once the promise completes | |
js_obj.then (function (result) { | |
BINDING.set_task_result (tcs, result); | |
}, function (reason) { | |
BINDING.set_task_failure (tcs, reason); | |
}) | |
return this.get_task_and_bind (tcs, js_obj); | |
} | |
return this.extract_mono_obj (js_obj); | |
},wasm_binding_obj_new:function (js_obj_id) | |
{ | |
return this.call_method (this.bind_js_obj, null, "i", [js_obj_id]); | |
},wasm_bind_existing:function (mono_obj, js_id) | |
{ | |
return this.call_method (this.bind_existing_obj, null, "mi", [mono_obj, js_id]); | |
},wasm_get_js_id:function (mono_obj) | |
{ | |
return this.call_method (this.get_js_id, null, "m", [mono_obj]); | |
},wasm_get_raw_obj:function (gchandle) | |
{ | |
return this.call_method (this.get_raw_mono_obj, null, "im", [gchandle]); | |
},try_extract_mono_obj:function (js_obj) { | |
if (js_obj == null || js_obj == undefined || !js_obj.__mono_gchandle__) | |
return 0; | |
return this.wasm_get_raw_obj (js_obj.__mono_gchandle__); | |
},mono_method_get_call_signature:function (method) { | |
this.bindings_lazy_init (); | |
return this.call_method (this.get_call_sig, null, "i", [ method ]); | |
},get_task_and_bind:function (tcs, js_obj) { | |
var task_gchandle = this.call_method (this.tcs_get_task_and_bind, null, "oi", [ tcs, this.js_objects_table.length + 1 ]); | |
js_obj.__mono_gchandle__ = task_gchandle; | |
this.js_objects_table.push (js_obj); | |
return this.wasm_get_raw_obj (js_obj.__mono_gchandle__); | |
},extract_mono_obj:function (js_obj) { | |
//halp JS ppl, is this enough? | |
if (js_obj == null || js_obj == undefined) | |
return 0; | |
if (!js_obj.__mono_gchandle__) { | |
js_obj.__mono_gchandle__ = this.wasm_binding_obj_new(this.js_objects_table.length + 1); | |
this.js_objects_table.push(js_obj); | |
} | |
return this.wasm_get_raw_obj (js_obj.__mono_gchandle__); | |
},extract_js_obj:function (mono_obj) { | |
if (mono_obj == 0) | |
return null; | |
var js_id = this.wasm_get_js_id (mono_obj); | |
if (js_id > 0) | |
return this.js_objects_table [js_id - 1]; | |
var js_obj = { | |
__mono_gchandle__: this.wasm_bind_existing(mono_obj, this.js_objects_table.length + 1), | |
is_mono_bridged_obj: true | |
}; | |
this.js_objects_table.push(js_obj); | |
return js_obj; | |
},call_method:function (method, this_arg, args_marshal, args) { | |
this.bindings_lazy_init (); | |
var extra_args_mem = 0; | |
for (var i = 0; i < args.length; ++i) { | |
//long/double memory must be 8 bytes aligned and I'm being lazy here | |
if (args_marshal[i] == 'i' || args_marshal[i] == 'f' || args_marshal[i] == 'l' || args_marshal[i] == 'd') | |
extra_args_mem += 8; | |
} | |
var extra_args_mem = extra_args_mem ? Module._malloc (extra_args_mem) : 0; | |
var extra_arg_idx = 0; | |
var args_mem = Module._malloc (args.length * 4); | |
var eh_throw = Module._malloc (4); | |
for (var i = 0; i < args.length; ++i) { | |
if (args_marshal[i] == 's') { | |
Module.setValue (args_mem + i * 4, this.js_string_to_mono_string (args [i]), "i32"); | |
} else if (args_marshal[i] == 'm') { | |
Module.setValue (args_mem + i * 4, args [i], "i32"); | |
} else if (args_marshal[i] == 'o') { | |
Module.setValue (args_mem + i * 4, this.js_to_mono_obj (args [i]), "i32"); | |
} else if (args_marshal[i] == 'i' || args_marshal[i] == 'f' || args_marshal[i] == 'l' || args_marshal[i] == 'd') { | |
var extra_cell = extra_args_mem + extra_arg_idx; | |
extra_arg_idx += 8; | |
if (args_marshal[i] == 'i') | |
Module.setValue (extra_cell, args [i], "i32"); | |
else if (args_marshal[i] == 'l') | |
Module.setValue (extra_cell, args [i], "i64"); | |
else if (args_marshal[i] == 'f') | |
Module.setValue (extra_cell, args [i], "float"); | |
else | |
Module.setValue (extra_cell, args [i], "double"); | |
Module.setValue (args_mem + i * 4, extra_cell, "i32"); | |
} | |
} | |
Module.setValue (eh_throw, 0, "i32"); | |
var res = this.invoke_method (method, this_arg, args_mem, eh_throw); | |
var eh_res = Module.getValue (eh_throw, "i32"); | |
if (extra_args_mem) | |
Module._free (extra_args_mem); | |
Module._free (args_mem); | |
Module._free (eh_throw); | |
if (eh_res != 0) { | |
var msg = this.conv_string (res); | |
throw new Error (msg); //the convention is that invoke_method ToString () any outgoing exception | |
} | |
if (args_marshal.length >= args.length && args_marshal [args.length] == 'm') | |
return res; | |
return this.unbox_mono_obj (res); | |
},invoke_delegate:function (delegate_obj, js_args) { | |
this.bindings_lazy_init (); | |
if (!this.delegate_dynamic_invoke) { | |
if (!this.corlib) | |
this.corlib = this.assembly_load ("mscorlib"); | |
if (!this.delegate_class) | |
this.delegate_class = this.find_class (this.corlib, "System", "Delegate"); | |
this.delegate_dynamic_invoke = this.find_method (this.delegate_class, "DynamicInvoke", -1); | |
} | |
var mono_args = this.js_array_to_mono_array (js_args); | |
return this.call_method (this.delegate_dynamic_invoke, this.extract_mono_obj (delegate_obj), "m", [ mono_args ]); | |
},resolve_method_fqn:function (fqn) { | |
var assembly = fqn.substring(fqn.indexOf ("[") + 1, fqn.indexOf ("]")).trim(); | |
fqn = fqn.substring (fqn.indexOf ("]") + 1).trim(); | |
var methodname = fqn.substring(fqn.indexOf (":") + 1); | |
fqn = fqn.substring (0, fqn.indexOf (":")).trim (); | |
var namespace = ""; | |
var classname = fqn; | |
if (fqn.indexOf(".") != -1) { | |
var idx = fqn.lastIndexOf("."); | |
namespace = fqn.substring (0, idx); | |
classname = fqn.substring (idx + 1); | |
} | |
var asm = this.assembly_load (assembly); | |
if (!asm) | |
throw new Error ("Could not find assembly: " + assembly); | |
var klass = this.find_class(asm, namespace, classname); | |
if (!klass) | |
throw new Error ("Could not find class: " + namespace + ":" +classname); | |
var method = this.find_method (klass, methodname, -1); | |
if (!method) | |
throw new Error ("Could not find method: " + methodname); | |
return method; | |
},call_static_method:function (fqn, args, signature) { | |
this.bindings_lazy_init (); | |
var method = this.resolve_method_fqn (fqn); | |
if (typeof signature === "undefined") | |
signature = Module.mono_method_get_call_signature (method); | |
return this.call_method (method, null, signature, args); | |
},bind_static_method:function (fqn, signature) { | |
this.bindings_lazy_init (); | |
var method = this.resolve_method_fqn (fqn); | |
if (typeof signature === "undefined") | |
signature = Module.mono_method_get_call_signature (method); | |
return function() { | |
return BINDING.call_method (method, null, signature, arguments); | |
}; | |
}};function _mono_wasm_invoke_js_with_args(js_handle, method_name, args, is_exception) { | |
BINDING.bindings_lazy_init (); | |
var obj = BINDING.get_js_obj (js_handle); | |
if (!obj) { | |
setValue (is_exception, 1, "i32"); | |
return BINDING.js_string_to_mono_string ("Invalid JS object handle '" + js_handle + "'"); | |
} | |
var js_name = BINDING.conv_string (method_name); | |
if (!js_name) { | |
setValue (is_exception, 1, "i32"); | |
return BINDING.js_string_to_mono_string ("Invalid method name object '" + method_name + "'"); | |
} | |
var js_args = BINDING.mono_array_to_js_array(args); | |
var res; | |
try { | |
var m = obj [js_name]; | |
var res = m.apply (obj, js_args); | |
return BINDING.js_to_mono_obj (res); | |
} catch (e) { | |
var res = e.toString (); | |
setValue (is_exception, 1, "i32"); | |
if (res === null || res === undefined) | |
res = "unknown exception"; | |
return BINDING.js_string_to_mono_string (res); | |
} | |
} | |
function _usleep(useconds) { | |
// int usleep(useconds_t useconds); | |
// http://pubs.opengroup.org/onlinepubs/000095399/functions/usleep.html | |
// We're single-threaded, so use a busy loop. Super-ugly. | |
var msec = useconds / 1000; | |
if ((ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && self['performance'] && self['performance']['now']) { | |
var start = self['performance']['now'](); | |
while (self['performance']['now']() - start < msec) { | |
// Do nothing. | |
} | |
} else { | |
var start = Date.now(); | |
while (Date.now() - start < msec) { | |
// Do nothing. | |
} | |
} | |
return 0; | |
} | |
Module["_usleep"] = _usleep;function _nanosleep(rqtp, rmtp) { | |
// int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); | |
var seconds = HEAP32[((rqtp)>>2)]; | |
var nanoseconds = HEAP32[(((rqtp)+(4))>>2)]; | |
if (rmtp !== 0) { | |
HEAP32[((rmtp)>>2)]=0; | |
HEAP32[(((rmtp)+(4))>>2)]=0; | |
} | |
return _usleep((seconds * 1e6) + (nanoseconds / 1000)); | |
} | |
function _pthread_cleanup_pop() { | |
assert(_pthread_cleanup_push.level == __ATEXIT__.length, 'cannot pop if something else added meanwhile!'); | |
__ATEXIT__.pop(); | |
_pthread_cleanup_push.level = __ATEXIT__.length; | |
} | |
function _pthread_cleanup_push(routine, arg) { | |
__ATEXIT__.push(function() { Module['dynCall_vi'](routine, arg) }) | |
_pthread_cleanup_push.level = __ATEXIT__.length; | |
} | |
function _pthread_cond_destroy() { return 0; } | |
function _pthread_cond_init() { return 0; } | |
function _pthread_cond_signal() { return 0; } | |
function _pthread_cond_timedwait() { return 0; } | |
function _pthread_cond_wait() { return 0; } | |
var PTHREAD_SPECIFIC={};function _pthread_getspecific(key) { | |
return PTHREAD_SPECIFIC[key] || 0; | |
} | |
var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key, destructor) { | |
if (key == 0) { | |
return ERRNO_CODES.EINVAL; | |
} | |
HEAP32[((key)>>2)]=PTHREAD_SPECIFIC_NEXT_KEY; | |
// values start at 0 | |
PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0; | |
PTHREAD_SPECIFIC_NEXT_KEY++; | |
return 0; | |
} | |
function _pthread_key_delete(key) { | |
if (key in PTHREAD_SPECIFIC) { | |
delete PTHREAD_SPECIFIC[key]; | |
return 0; | |
} | |
return ERRNO_CODES.EINVAL; | |
} | |
function _pthread_mutex_destroy() {} | |
function _pthread_mutex_init() {} | |
function _pthread_mutexattr_destroy() {} | |
function _pthread_mutexattr_init() {} | |
function _pthread_mutexattr_settype() {} | |
function _pthread_setcancelstate() { return 0; } | |
function _pthread_setspecific(key, value) { | |
if (!(key in PTHREAD_SPECIFIC)) { | |
return ERRNO_CODES.EINVAL; | |
} | |
PTHREAD_SPECIFIC[key] = value; | |
return 0; | |
} | |
function _schedule_background_exec() { | |
++MONO.pump_count; | |
if (ENVIRONMENT_IS_WEB) { | |
window.setTimeout (MONO.pump_message, 0); | |
} | |
} | |
function _sem_destroy() {} | |
function _sem_init() {} | |
function _sem_post() {} | |
function _sem_trywait() {} | |
function _sem_wait() {} | |
function _setenv(envname, envval, overwrite) { | |
// int setenv(const char *envname, const char *envval, int overwrite); | |
// http://pubs.opengroup.org/onlinepubs/009695399/functions/setenv.html | |
if (envname === 0) { | |
___setErrNo(ERRNO_CODES.EINVAL); | |
return -1; | |
} | |
var name = Pointer_stringify(envname); | |
var val = Pointer_stringify(envval); | |
if (name === '' || name.indexOf('=') !== -1) { | |
___setErrNo(ERRNO_CODES.EINVAL); | |
return -1; | |
} | |
if (ENV.hasOwnProperty(name) && !overwrite) return 0; | |
ENV[name] = val; | |
___buildEnvironment(ENV); | |
return 0; | |
} | |
function _sigaction(signum, act, oldact) { | |
//int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); | |
Module.printErr('Calling stub instead of sigaction()'); | |
return 0; | |
} | |
function _sigemptyset(set) { | |
HEAP32[((set)>>2)]=0; | |
return 0; | |
} | |
function __isLeapYear(year) { | |
return year%4 === 0 && (year%100 !== 0 || year%400 === 0); | |
} | |
function __arraySum(array, index) { | |
var sum = 0; | |
for (var i = 0; i <= index; sum += array[i++]); | |
return sum; | |
} | |
var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31]; | |
var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date, days) { | |
var newDate = new Date(date.getTime()); | |
while(days > 0) { | |
var leap = __isLeapYear(newDate.getFullYear()); | |
var currentMonth = newDate.getMonth(); | |
var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; | |
if (days > daysInCurrentMonth-newDate.getDate()) { | |
// we spill over to next month | |
days -= (daysInCurrentMonth-newDate.getDate()+1); | |
newDate.setDate(1); | |
if (currentMonth < 11) { | |
newDate.setMonth(currentMonth+1) | |
} else { | |
newDate.setMonth(0); | |
newDate.setFullYear(newDate.getFullYear()+1); | |
} | |
} else { | |
// we stay in current month | |
newDate.setDate(newDate.getDate()+days); | |
return newDate; | |
} | |
} | |
return newDate; | |
}function _strftime(s, maxsize, format, tm) { | |
// size_t strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr); | |
// http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html | |
var tm_zone = HEAP32[(((tm)+(40))>>2)]; | |
var date = { | |
tm_sec: HEAP32[((tm)>>2)], | |
tm_min: HEAP32[(((tm)+(4))>>2)], | |
tm_hour: HEAP32[(((tm)+(8))>>2)], | |
tm_mday: HEAP32[(((tm)+(12))>>2)], | |
tm_mon: HEAP32[(((tm)+(16))>>2)], | |
tm_year: HEAP32[(((tm)+(20))>>2)], | |
tm_wday: HEAP32[(((tm)+(24))>>2)], | |
tm_yday: HEAP32[(((tm)+(28))>>2)], | |
tm_isdst: HEAP32[(((tm)+(32))>>2)], | |
tm_gmtoff: HEAP32[(((tm)+(36))>>2)], | |
tm_zone: tm_zone ? Pointer_stringify(tm_zone) : '' | |
}; | |
var pattern = Pointer_stringify(format); | |
// expand format | |
var EXPANSION_RULES_1 = { | |
'%c': '%a %b %d %H:%M:%S %Y', // Replaced by the locale's appropriate date and time representation - e.g., Mon Aug 3 14:02:01 2013 | |
'%D': '%m/%d/%y', // Equivalent to %m / %d / %y | |
'%F': '%Y-%m-%d', // Equivalent to %Y - %m - %d | |
'%h': '%b', // Equivalent to %b | |
'%r': '%I:%M:%S %p', // Replaced by the time in a.m. and p.m. notation | |
'%R': '%H:%M', // Replaced by the time in 24-hour notation | |
'%T': '%H:%M:%S', // Replaced by the time | |
'%x': '%m/%d/%y', // Replaced by the locale's appropriate date representation | |
'%X': '%H:%M:%S' // Replaced by the locale's appropriate date representation | |
}; | |
for (var rule in EXPANSION_RULES_1) { | |
pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_1[rule]); | |
} | |
var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; | |
var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; | |
function leadingSomething(value, digits, character) { | |
var str = typeof value === 'number' ? value.toString() : (value || ''); | |
while (str.length < digits) { | |
str = character[0]+str; | |
} | |
return str; | |
}; | |
function leadingNulls(value, digits) { | |
return leadingSomething(value, digits, '0'); | |
}; | |
function compareByDay(date1, date2) { | |
function sgn(value) { | |
return value < 0 ? -1 : (value > 0 ? 1 : 0); | |
}; | |
var compare; | |
if ((compare = sgn(date1.getFullYear()-date2.getFullYear())) === 0) { | |
if ((compare = sgn(date1.getMonth()-date2.getMonth())) === 0) { | |
compare = sgn(date1.getDate()-date2.getDate()); | |
} | |
} | |
return compare; | |
}; | |
function getFirstWeekStartDate(janFourth) { | |
switch (janFourth.getDay()) { | |
case 0: // Sunday | |
return new Date(janFourth.getFullYear()-1, 11, 29); | |
case 1: // Monday | |
return janFourth; | |
case 2: // Tuesday | |
return new Date(janFourth.getFullYear(), 0, 3); | |
case 3: // Wednesday | |
return new Date(janFourth.getFullYear(), 0, 2); | |
case 4: // Thursday | |
return new Date(janFourth.getFullYear(), 0, 1); | |
case 5: // Friday | |
return new Date(janFourth.getFullYear()-1, 11, 31); | |
case 6: // Saturday | |
return new Date(janFourth.getFullYear()-1, 11, 30); | |
} | |
}; | |
function getWeekBasedYear(date) { | |
var thisDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday); | |
var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); | |
var janFourthNextYear = new Date(thisDate.getFullYear()+1, 0, 4); | |
var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); | |
var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); | |
if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { | |
// this date is after the start of the first week of this year | |
if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { | |
return thisDate.getFullYear()+1; | |
} else { | |
return thisDate.getFullYear(); | |
} | |
} else { | |
return thisDate.getFullYear()-1; | |
} | |
}; | |
var EXPANSION_RULES_2 = { | |
'%a': function(date) { | |
return WEEKDAYS[date.tm_wday].substring(0,3); | |
}, | |
'%A': function(date) { | |
return WEEKDAYS[date.tm_wday]; | |
}, | |
'%b': function(date) { | |
return MONTHS[date.tm_mon].substring(0,3); | |
}, | |
'%B': function(date) { | |
return MONTHS[date.tm_mon]; | |
}, | |
'%C': function(date) { | |
var year = date.tm_year+1900; | |
return leadingNulls((year/100)|0,2); | |
}, | |
'%d': function(date) { | |
return leadingNulls(date.tm_mday, 2); | |
}, | |
'%e': function(date) { | |
return leadingSomething(date.tm_mday, 2, ' '); | |
}, | |
'%g': function(date) { | |
// %g, %G, and %V give values according to the ISO 8601:2000 standard week-based year. | |
// In this system, weeks begin on a Monday and week 1 of the year is the week that includes | |
// January 4th, which is also the week that includes the first Thursday of the year, and | |
// is also the first week that contains at least four days in the year. | |
// If the first Monday of January is the 2nd, 3rd, or 4th, the preceding days are part of | |
// the last week of the preceding year; thus, for Saturday 2nd January 1999, | |
// %G is replaced by 1998 and %V is replaced by 53. If December 29th, 30th, | |
// or 31st is a Monday, it and any following days are part of week 1 of the following year. | |
// Thus, for Tuesday 30th December 1997, %G is replaced by 1998 and %V is replaced by 01. | |
return getWeekBasedYear(date).toString().substring(2); | |
}, | |
'%G': function(date) { | |
return getWeekBasedYear(date); | |
}, | |
'%H': function(date) { | |
return leadingNulls(date.tm_hour, 2); | |
}, | |
'%I': function(date) { | |
var twelveHour = date.tm_hour; | |
if (twelveHour == 0) twelveHour = 12; | |
else if (twelveHour > 12) twelveHour -= 12; | |
return leadingNulls(twelveHour, 2); | |
}, | |
'%j': function(date) { | |
// Day of the year (001-366) | |
return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon-1), 3); | |
}, | |
'%m': function(date) { | |
return leadingNulls(date.tm_mon+1, 2); | |
}, | |
'%M': function(date) { | |
return leadingNulls(date.tm_min, 2); | |
}, | |
'%n': function() { | |
return '\n'; | |
}, | |
'%p': function(date) { | |
if (date.tm_hour >= 0 && date.tm_hour < 12) { | |
return 'AM'; | |
} else { | |
return 'PM'; | |
} | |
}, | |
'%S': function(date) { | |
return leadingNulls(date.tm_sec, 2); | |
}, | |
'%t': function() { | |
return '\t'; | |
}, | |
'%u': function(date) { | |
var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0); | |
return day.getDay() || 7; | |
}, | |
'%U': function(date) { | |
// Replaced by the week number of the year as a decimal number [00,53]. | |
// The first Sunday of January is the first day of week 1; | |
// days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday] | |
var janFirst = new Date(date.tm_year+1900, 0, 1); | |
var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7-janFirst.getDay()); | |
var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday); | |
// is target date after the first Sunday? | |
if (compareByDay(firstSunday, endDate) < 0) { | |
// calculate difference in days between first Sunday and endDate | |
var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31; | |
var firstSundayUntilEndJanuary = 31-firstSunday.getDate(); | |
var days = firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate(); | |
return leadingNulls(Math.ceil(days/7), 2); | |
} | |
return compareByDay(firstSunday, janFirst) === 0 ? '01': '00'; | |
}, | |
'%V': function(date) { | |
// Replaced by the week number of the year (Monday as the first day of the week) | |
// as a decimal number [01,53]. If the week containing 1 January has four | |
// or more days in the new year, then it is considered week 1. | |
// Otherwise, it is the last week of the previous year, and the next week is week 1. | |
// Both January 4th and the first Thursday of January are always in week 1. [ tm_year, tm_wday, tm_yday] | |
var janFourthThisYear = new Date(date.tm_year+1900, 0, 4); | |
var janFourthNextYear = new Date(date.tm_year+1901, 0, 4); | |
var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); | |
var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); | |
var endDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday); | |
if (compareByDay(endDate, firstWeekStartThisYear) < 0) { | |
// if given date is before this years first week, then it belongs to the 53rd week of last year | |
return '53'; | |
} | |
if (compareByDay(firstWeekStartNextYear, endDate) <= 0) { | |
// if given date is after next years first week, then it belongs to the 01th week of next year | |
return '01'; | |
} | |
// given date is in between CW 01..53 of this calendar year | |
var daysDifference; | |
if (firstWeekStartThisYear.getFullYear() < date.tm_year+1900) { | |
// first CW of this year starts last year | |
daysDifference = date.tm_yday+32-firstWeekStartThisYear.getDate() | |
} else { | |
// first CW of this year starts this year | |
daysDifference = date.tm_yday+1-firstWeekStartThisYear.getDate(); | |
} | |
return leadingNulls(Math.ceil(daysDifference/7), 2); | |
}, | |
'%w': function(date) { | |
var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0); | |
return day.getDay(); | |
}, | |
'%W': function(date) { | |
// Replaced by the week number of the year as a decimal number [00,53]. | |
// The first Monday of January is the first day of week 1; | |
// days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday] | |
var janFirst = new Date(date.tm_year, 0, 1); | |
var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7-janFirst.getDay()+1); | |
var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday); | |
// is target date after the first Monday? | |
if (compareByDay(firstMonday, endDate) < 0) { | |
var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31; | |
var firstMondayUntilEndJanuary = 31-firstMonday.getDate(); | |
var days = firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate(); | |
return leadingNulls(Math.ceil(days/7), 2); | |
} | |
return compareByDay(firstMonday, janFirst) === 0 ? '01': '00'; | |
}, | |
'%y': function(date) { | |
// Replaced by the last two digits of the year as a decimal number [00,99]. [ tm_year] | |
return (date.tm_year+1900).toString().substring(2); | |
}, | |
'%Y': function(date) { | |
// Replaced by the year as a decimal number (for example, 1997). [ tm_year] | |
return date.tm_year+1900; | |
}, | |
'%z': function(date) { | |
// Replaced by the offset from UTC in the ISO 8601:2000 standard format ( +hhmm or -hhmm ). | |
// For example, "-0430" means 4 hours 30 minutes behind UTC (west of Greenwich). | |
var off = date.tm_gmtoff; | |
var ahead = off >= 0; | |
off = Math.abs(off) / 60; | |
// convert from minutes into hhmm format (which means 60 minutes = 100 units) | |
off = (off / 60)*100 + (off % 60); | |
return (ahead ? '+' : '-') + String("0000" + off).slice(-4); | |
}, | |
'%Z': function(date) { | |
return date.tm_zone; | |
}, | |
'%%': function() { | |
return '%'; | |
} | |
}; | |
for (var rule in EXPANSION_RULES_2) { | |
if (pattern.indexOf(rule) >= 0) { | |
pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_2[rule](date)); | |
} | |
} | |
var bytes = intArrayFromString(pattern, false); | |
if (bytes.length > maxsize) { | |
return 0; | |
} | |
writeArrayToMemory(bytes, s); | |
return bytes.length-1; | |
} | |
function _sysconf(name) { | |
// long sysconf(int name); | |
// http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html | |
switch(name) { | |
case 30: return PAGE_SIZE; | |
case 85: | |
var maxHeapSize = 2*1024*1024*1024 - 65536; | |
return maxHeapSize / PAGE_SIZE; | |
case 132: | |
case 133: | |
case 12: | |
case 137: | |
case 138: | |
case 15: | |
case 235: | |
case 16: | |
case 17: | |
case 18: | |
case 19: | |
case 20: | |
case 149: | |
case 13: | |
case 10: | |
case 236: | |
case 153: | |
case 9: | |
case 21: | |
case 22: | |
case 159: | |
case 154: | |
case 14: | |
case 77: | |
case 78: | |
case 139: | |
case 80: | |
case 81: | |
case 82: | |
case 68: | |
case 67: | |
case 164: | |
case 11: | |
case 29: | |
case 47: | |
case 48: | |
case 95: | |
case 52: | |
case 51: | |
case 46: | |
return 200809; | |
case 79: | |
return 0; | |
case 27: | |
case 246: | |
case 127: | |
case 128: | |
case 23: | |
case 24: | |
case 160: | |
case 161: | |
case 181: | |
case 182: | |
case 242: | |
case 183: | |
case 184: | |
case 243: | |
case 244: | |
case 245: | |
case 165: | |
case 178: | |
case 179: | |
case 49: | |
case 50: | |
case 168: | |
case 169: | |
case 175: | |
case 170: | |
case 171: | |
case 172: | |
case 97: | |
case 76: | |
case 32: | |
case 173: | |
case 35: | |
return -1; | |
case 176: | |
case 177: | |
case 7: | |
case 155: | |
case 8: | |
case 157: | |
case 125: | |
case 126: | |
case 92: | |
case 93: | |
case 129: | |
case 130: | |
case 131: | |
case 94: | |
case 91: | |
return 1; | |
case 74: | |
case 60: | |
case 69: | |
case 70: | |
case 4: | |
return 1024; | |
case 31: | |
case 42: | |
case 72: | |
return 32; | |
case 87: | |
case 26: | |
case 33: | |
return 2147483647; | |
case 34: | |
case 1: | |
return 47839; | |
case 38: | |
case 36: | |
return 99; | |
case 43: | |
case 37: | |
return 2048; | |
case 0: return 2097152; | |
case 3: return 65536; | |
case 28: return 32768; | |
case 44: return 32767; | |
case 75: return 16384; | |
case 39: return 1000; | |
case 89: return 700; | |
case 71: return 256; | |
case 40: return 255; | |
case 2: return 100; | |
case 180: return 64; | |
case 25: return 20; | |
case 5: return 16; | |
case 6: return 6; | |
case 73: return 4; | |
case 84: { | |
if (typeof navigator === 'object') return navigator['hardwareConcurrency'] || 1; | |
return 1; | |
} | |
} | |
___setErrNo(ERRNO_CODES.EINVAL); | |
return -1; | |
} | |
function _time(ptr) { | |
var ret = (Date.now()/1000)|0; | |
if (ptr) { | |
HEAP32[((ptr)>>2)]=ret; | |
} | |
return ret; | |
} | |
function _unsetenv(name) { | |
// int unsetenv(const char *name); | |
// http://pubs.opengroup.org/onlinepubs/009695399/functions/unsetenv.html | |
if (name === 0) { | |
___setErrNo(ERRNO_CODES.EINVAL); | |
return -1; | |
} | |
name = Pointer_stringify(name); | |
if (name === '' || name.indexOf('=') !== -1) { | |
___setErrNo(ERRNO_CODES.EINVAL); | |
return -1; | |
} | |
if (ENV.hasOwnProperty(name)) { | |
delete ENV[name]; | |
___buildEnvironment(ENV); | |
} | |
return 0; | |
} | |
function _utime(path, times) { | |
// int utime(const char *path, const struct utimbuf *times); | |
// http://pubs.opengroup.org/onlinepubs/009695399/basedefs/utime.h.html | |
var time; | |
if (times) { | |
// NOTE: We don't keep track of access timestamps. | |
var offset = 4; | |
time = HEAP32[(((times)+(offset))>>2)]; | |
time *= 1000; | |
} else { | |
time = Date.now(); | |
} | |
path = Pointer_stringify(path); | |
try { | |
FS.utime(path, time, time); | |
return 0; | |
} catch (e) { | |
FS.handleFSError(e); | |
return -1; | |
} | |
} | |
function _utimes(path, times) { | |
var time; | |
if (times) { | |
var offset = 8 + 0; | |
time = HEAP32[(((times)+(offset))>>2)] * 1000; | |
offset = 8 + 4; | |
time += HEAP32[(((times)+(offset))>>2)] / 1000; | |
} else { | |
time = Date.now(); | |
} | |
path = Pointer_stringify(path); | |
try { | |
FS.utime(path, time, time); | |
return 0; | |
} catch (e) { | |
FS.handleFSError(e); | |
return -1; | |
} | |
} | |
function _wait(stat_loc) { | |
// pid_t wait(int *stat_loc); | |
// http://pubs.opengroup.org/onlinepubs/009695399/functions/wait.html | |
// Makes no sense in a single-process environment. | |
___setErrNo(ERRNO_CODES.ECHILD); | |
return -1; | |
}function _waitpid() { | |
return _wait.apply(null, arguments) | |
} | |
if (ENVIRONMENT_IS_NODE) { | |
_emscripten_get_now = function _emscripten_get_now_actual() { | |
var t = process['hrtime'](); | |
return t[0] * 1e3 + t[1] / 1e6; | |
}; | |
} else if (typeof dateNow !== 'undefined') { | |
_emscripten_get_now = dateNow; | |
} else if (typeof self === 'object' && self['performance'] && typeof self['performance']['now'] === 'function') { | |
_emscripten_get_now = function() { return self['performance']['now'](); }; | |
} else if (typeof performance === 'object' && typeof performance['now'] === 'function') { | |
_emscripten_get_now = function() { return performance['now'](); }; | |
} else { | |
_emscripten_get_now = Date.now; | |
}; | |
FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(function() { FS.quit() });Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;; | |
__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() });; | |
if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); }; | |
__ATINIT__.push(function() { SOCKFS.root = FS.mount(SOCKFS, {}, null); });; | |
__ATINIT__.push(function() { PIPEFS.root = FS.mount(PIPEFS, {}, null); });; | |
___buildEnvironment(ENV);; | |
Module["pump_message"] = MONO.pump_message; | |
BINDING.export_functions (Module);; | |
DYNAMICTOP_PTR = staticAlloc(4); | |
STACK_BASE = STACKTOP = alignMemory(STATICTOP); | |
STACK_MAX = STACK_BASE + TOTAL_STACK; | |
DYNAMIC_BASE = alignMemory(STACK_MAX); | |
HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; | |
staticSealed = true; // seal the static portion of memory | |
assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); | |
var ASSERTIONS = true; | |
/** @type {function(string, boolean=, number=)} */ | |
function intArrayFromString(stringy, dontAddNull, length) { | |
var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; | |
var u8array = new Array(len); | |
var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); | |
if (dontAddNull) u8array.length = numBytesWritten; | |
return u8array; | |
} | |
function intArrayToString(array) { | |
var ret = []; | |
for (var i = 0; i < array.length; i++) { | |
var chr = array[i]; | |
if (chr > 0xFF) { | |
if (ASSERTIONS) { | |
assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); | |
} | |
chr &= 0xFF; | |
} | |
ret.push(String.fromCharCode(chr)); | |
} | |
return ret.join(''); | |
} | |
var debug_table_d = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_cpu_load_1min", "_cpu_load_5min", "_cpu_load_15min", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_dd = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Math_Abs_double", "0", "_ves_icall_System_Math_Acos", "_ves_icall_System_Math_Asin", "_ves_icall_System_Math_Atan", "0", "_ves_icall_System_Math_Ceiling", "_ves_icall_System_Math_Cos", "_ves_icall_System_Math_Cosh", "_ves_icall_System_Math_Exp", "_ves_icall_System_Math_Floor", "_ves_icall_System_Math_Log", "_ves_icall_System_Math_Log10", "0", "_ves_icall_System_Math_Round", "_ves_icall_System_Math_Sin", "_ves_icall_System_Math_Sinh", "0", "_ves_icall_System_Math_Sqrt", "_ves_icall_System_Math_Tan", "_ves_icall_System_Math_Tanh", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_ckfinite", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_ddd = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Math_Atan2", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Math_Pow", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_di = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_decimal_to_double", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Math_SplitFractionDouble", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_VolatileReadDouble", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Volatile_ReadDouble", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_did = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_Exchange_Double", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_didd = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_CompareExchange_Double", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_ff = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Math_Abs_single", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_MathF_Acos", "_ves_icall_System_MathF_Acosh", "_ves_icall_System_MathF_Asin", "_ves_icall_System_MathF_Asinh", "_ves_icall_System_MathF_Atan", "0", "_ves_icall_System_MathF_Atanh", "_ves_icall_System_MathF_Cbrt", "_ves_icall_System_MathF_Ceiling", "_ves_icall_System_MathF_Cos", "_ves_icall_System_MathF_Cosh", "_ves_icall_System_MathF_Exp", "0", "_ves_icall_System_MathF_Floor", "_ves_icall_System_MathF_Log", "_ves_icall_System_MathF_Log10", "0", "0", "_ves_icall_System_MathF_Sin", "_ves_icall_System_MathF_Sinh", "_ves_icall_System_MathF_Sqrt", "_ves_icall_System_MathF_Tan", "_ves_icall_System_MathF_Tanh", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_fff = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_MathF_Atan2", "0", "0", "0", "0", "0", "0", "_ves_icall_System_MathF_FMod", "0", "0", "0", "0", "_ves_icall_System_MathF_Pow", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_ffi = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_MathF_ModF", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_fi = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_decimal_to_float", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_VolatileReadFloat", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Volatile_ReadFloat", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_fif = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_Exchange_Single", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_fiff = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_CompareExchange_Single", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_i = ["0", "0", "0", "0", "0", "0", "0", "0", "_ensure_runtime_is_suspended", "0", "0", "0", "0", "_get_notify_debugger_of_wait_completion_method", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_event_typename", "_event_typesize", "0", "_namedevent_typename", "_namedevent_typesize", "0", "0", "0", "0", "0", "0", "0", "_mutex_typename", "_mutex_typesize", "0", "_namedmutex_typename", "_namedmutex_typesize", "0", "0", "0", "_process_typename", "_process_typesize", "0", "0", "0", "_sema_typename", "_sema_typesize", "0", "_namedsema_typename", "_namedsema_typesize", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_perfcounter_category_names", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Diagnostics_Process_GetProcesses_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Environment_GetEnvironmentVariableNames", "_ves_icall_System_Environment_GetIs64BitOperatingSystem", "_ves_icall_System_Environment_GetLogicalDrives", "0", "0", "_mono_pagesize", "0", "0", "_mono_environment_exitcode_get", "_ves_icall_System_Environment_get_HasShutdownStarted", "0", "_ves_icall_System_Environment_get_Platform", "_mono_cpu_count", "_ves_icall_System_Environment_get_TickCount", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_FSW_SupportsFSW", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_get_AltDirectorySeparatorChar", "_ves_icall_System_IO_MonoIO_get_ConsoleError", "_ves_icall_System_IO_MonoIO_get_ConsoleInput", "_ves_icall_System_IO_MonoIO_get_ConsoleOutput", "_ves_icall_System_IO_MonoIO_get_DirectorySeparatorChar", "0", "_ves_icall_System_IO_MonoIO_get_PathSeparator", "_ves_icall_System_IO_MonoIO_get_VolumeSeparatorChar", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_SocketException_WSAGetLastError_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_GetOffsetToStringData", "0", "0", "0", "_ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_SufficientExecutionStack", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_GetLastWin32Error", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_security_core_clr_require_elevated_permissions", "_ves_icall_System_Security_SecurityManager_get_SecurityEnabled", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_get_runtime_build_info", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_get_lmf_addr", "0", "0", "_mono_domain_get", "0", "0", "0", "0", "0", "_mono_llvm_load_exception", "0", "_mono_thread_get_undeniable_exception", "0", "_mono_thread_interruption_checkpoint", "_mono_thread_force_interruption_checkpoint_noraise", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_tls_get_thread", "_mono_tls_get_jit_tls", "_mono_tls_get_domain", "_mono_tls_get_sgen_thread_info", "_mono_tls_get_lmf_addr", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_continuation_alloc", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_have_swept", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_get_num_major_sections", "_get_bytes_survived_last_sweep", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_build_fragments_get_exclude_head", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_debugger_agent_debug_log_is_enabled", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_current_thread_has_handle_block_guard", "0", "_mini_above_abort_threshold", "0", "0", "0", "0", "0", "0", "_get_provenance_func", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_id = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_fconv_u4", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_idiii = ["0"]; | |
var debug_table_ii = ["0", "_tls_get_restore_state", "0", "0", "0", "0", "0", "_ensure_jit", "0", "_get_this_async_id", "0", "0", "_set_set_notification_for_wait_completion_flag", "0", "0", "0", "0", "0", "0", "0", "0", "_pe_image_match", "_pe_image_load_pe_data", "_pe_image_load_cli_data", "_pe_image_load_tables", "0", "0", "0", "0", "0", "_dllmap_init", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mutex_handle_is_owned", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_tagged_object_hash", "0", "_sgen_aligned_addr_hash_7990", "_is_slot_set", "0", "0", "0", "_sgen_array_list_default_is_slot_set", "0", "_monoeg_g_str_hash", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_Microsoft_Win32_NativeMethods_GetCurrentProcess", "_ves_icall_Microsoft_Win32_NativeMethods_GetCurrentProcessId", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_Mono_TlsProviderFactory_IsBtlsSupported", "0", "0", "_ves_icall_Mono_Runtime_GetDisplayName", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_InternalGetContext", "_ves_icall_System_AppDomain_InternalGetDefaultContext", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_getCurDomain", "0", "_ves_icall_System_AppDomain_getRootDomain", "0", "0", "0", "_mono_ArgIterator_IntGetNextArgType", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Buffer_ByteLengthInternal", "0", "0", "_ves_icall_System_CLRConfig_CheckThrowUnobservedTaskExceptions", "_ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config", "_ves_icall_System_Configuration_DefaultConfig_get_machine_config_path", "_ves_icall_System_Configuration_InternalConfigurationHost_get_bundled_app_config", "_ves_icall_System_Configuration_InternalConfigurationHost_get_bundled_machine_config", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_decimal_to_int32", "0", "_mono_decimal_get_hash_code", "0", "0", "0", "0", "0", "_ves_icall_System_Diagnostics_Debugger_IsAttached_internal", "_ves_icall_System_Diagnostics_Debugger_IsLogging", "0", "0", "0", "0", "0", "0", "0", "_mono_perfcounter_category_del", "_mono_perfcounter_category_help", "0", "0", "0", "_mono_perfcounter_counter_names", "_mono_perfcounter_instance_names", "0", "0", "0", "0", "_ves_icall_System_Diagnostics_Process_GetProcess_internal", "0", "_ves_icall_System_Diagnostics_Process_ProcessName_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Environment_GetCommandLineArgs", "0", "0", "0", "_ves_icall_System_Environment_get_NewLine", "_ves_icall_System_Environment_GetOSVersionString", "0", "0", "0", "0", "0", "_ves_icall_System_Environment_get_MachineName", "0", "0", "0", "_ves_icall_System_Environment_get_UserName", "_ves_icall_System_Environment_get_bundled_machine_config", "0", "0", "_ves_icall_System_Environment_GetGacPath", "_ves_icall_System_Environment_InternalGetHome", "0", "0", "0", "_ves_icall_System_GC_GetMaxGeneration", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_GC_get_ephemeron_tombstone", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Globalization_CultureInfo_get_current_locale_name", "0", "0", "0", "0", "_ves_icall_System_IO_DriveInfo_GetDriveFormat", "_ves_icall_System_IO_DriveInfo_GetDriveType", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_FindCloseFile", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_get_InvalidPathChars", "0", "0", "_ves_icall_System_IO_get_temp_path", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_object_hash", "_ves_icall_System_Object_MemberwiseClone", "_ves_icall_System_Reflection_Assembly_GetAotId", "_ves_icall_System_Reflection_Assembly_GetCallingAssembly", "_ves_icall_System_Reflection_Assembly_GetEntryAssembly", "_ves_icall_System_Reflection_Assembly_GetExecutingAssembly", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_AssemblyName_GetNativeName", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_GetCurrentMethod", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoField_GetFieldOffset", "0", "_ves_icall_MonoField_GetRawConstantValue", "0", "0", "0", "_ves_icall_MonoField_get_core_clr_security_level", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_get_method_attributes", "0", "0", "0", "0", "_ves_icall_property_info_get_default_value", "0", "0", "0", "_ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_GetObjectValue", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_Remoting_Messaging_AsyncResult_Invoke", "0", "0", "0", "_ves_icall_System_Runtime_Versioning_VersioningHelper_GetRuntimeId", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_RuntimeType_IsTypeExportedToWindowsRuntime", "_ves_icall_System_RuntimeType_IsWindowsRuntimeObjectType", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_RngOpen", "0", "_ves_icall_System_Security_Principal_WindowsIdentity_GetCurrentToken", "0", "0", "_ves_icall_System_Security_Principal_WindowsIdentity_GetRoles", "0", "0", "_ves_icall_System_Security_Principal_WindowsImpersonationContext_RevertToSelf", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_String_InternalAllocateStr", "_ves_icall_System_String_InternalIntern", "_ves_icall_System_String_InternalIsInterned", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_Decrement_Int", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_Increment_Int", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Monitor_Monitor_test_owner", "_ves_icall_System_Threading_Monitor_Monitor_test_synchronised", "0", "0", "0", "0", "_ves_icall_System_Threading_Mutex_ReleaseMutex_internal", "0", "0", "0", "_ves_icall_System_Threading_Events_ResetEvent_internal", "_ves_icall_System_Threading_Events_SetEvent_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_GetCurrentThread", "_ves_icall_System_Threading_Thread_GetDomainID", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_SystemMaxStackSize", "0", "_ves_icall_System_Threading_Thread_VolatileRead1", "0", "_ves_icall_System_Threading_Thread_VolatileRead4", "_ves_icall_System_Threading_Thread_VolatileRead2", "_ves_icall_System_Threading_Thread_VolatileReadIntPtr", "0", "_ves_icall_System_Threading_Thread_VolatileReadObject", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_Yield", "_ves_icall_System_Threading_Thread_current_lcid", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_ThreadPool_IsThreadPoolHosted", "_ves_icall_System_Threading_ThreadPool_NotifyWorkItemComplete", "0", "0", "0", "0", "_ves_icall_System_Threading_ThreadPool_RequestWorkerThread", "0", "0", "_ves_icall_System_Threading_Volatile_Read_T", "_ves_icall_System_Threading_Volatile_Read1", "0", "_ves_icall_System_Threading_Volatile_Read4", "_ves_icall_System_Threading_Volatile_Read2", "_ves_icall_System_Threading_Volatile_ReadIntPtr", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_TypedReference_ToObject", "0", "0", "0", "_ves_icall_System_Web_Util_ICalls_get_machine_install_dir", "0", "_poll_init", "0", "0", "0", "0", "0", "0", "0", "___stdio_close", "0", "0", "0", "0", "0", "0", "_mono_signature_hash", "0", "0", "0", "_tramp_info_hash", "0", "_mono_aligned_addr_hash", "_mrgctx_hash_func", "0", "_shared_gparam_hash", "0", "0", "0", "0", "_monoeg_g_direct_hash", "0", "0", "0", "0", "_mini_get_addr_from_ftnptr", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_aot_get_weak_field_indexes", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mini_profiler_context_get_this", "0", "0", "_mini_profiler_context_get_result", "0", "0", "0", "0", "0", "0", "0", "_class_method_pair_hash", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_jit_thread_attach", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_get_special_static_data", "0", "0", "0", "_ves_icall_object_new_specific", "0", "0", "0", "_mono_ldftn", "0", "0", "0", "0", "_mono_helper_ldstr_mscorlib", "_mono_helper_newobj_mscorlib", "0", "0", "0", "_mono_create_corlib_exception_0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_get_assembly_object", "_mono_get_method_object", "0", "0", "_mono_monitor_enter_internal", "0", "_mono_monitor_enter_fast", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_continuation_mark_frame", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_frame_get_jit_info", "_interp_frame_get_ip", "0", "0", "_interp_frame_get_this", "_interp_frame_get_parent", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_unload_thread_main", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_string_hash", "0", "_mono_ptrarray_hash", "0", "0", "0", "0", "0", "0", "0", "_get_interfaces_hash", "0", "0", "0", "_property_hash", "0", "_event_hash", "0", "0", "0", "0", "0", "0", "0", "_class_key_extract", "_class_next_value", "0", "_jit_info_key_extract", "_jit_info_next_value", "0", "0", "0", "_mono_marshal_string_to_utf16", "_mono_marshal_string_to_utf16_copy", "_mono_string_to_utf16", "_ves_icall_mono_string_from_utf16", "0", "0", "_mono_string_new_wrapper", "_ves_icall_string_new_wrapper", "0", "_ves_icall_mono_string_to_utf8", "_mono_string_to_utf8str", "_mono_string_to_ansibstr", "_mono_string_builder_to_utf8", "_mono_string_builder_to_utf16", "_mono_array_to_savearray", "_mono_array_to_lparray", "0", "0", "0", "0", "0", "_mono_delegate_to_ftnptr", "0", "0", "0", "_ves_icall_marshal_alloc", "0", "0", "0", "0", "_mono_string_utf8_to_builder2", "0", "_mono_string_utf16_to_builder2", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_gchandle_get_target", "0", "_mono_threads_enter_gc_safe_region_unbalanced", "0", "_mono_threads_enter_gc_unsafe_region_unbalanced", "0", "0", "0", "0", "0", "_mono_icall_handle_new", "_mono_icall_handle_new_interior", "_signature_pointer_pair_hash", "0", "0", "_wrapper_cache_method_key_hash", "0", "_wrapper_cache_signature_key_hash", "0", "0", "0", "0", "_mono_generic_class_hash", "0", "0", "_mono_metadata_generic_inst_hash", "0", "0", "_inflated_method_hash", "0", "0", "_inflated_signature_hash", "0", "0", "_mono_metadata_generic_param_hash", "0", "_mono_type_hash", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_do_rehash", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_string_alloc", "0", "0", "0", "0", "_mono_reflected_hash", "0", "0", "_mono_metadata_type_hash", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_start_wrapper", "0", "0", "0", "0", "0", "0", "0", "0", "_thread_attach", "0", "0", "0", "_thread_in_critical_region", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_file_share_hash", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_sgen_card_table_find_address", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_is_object_live", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ptr_is_from_pinned_alloc", "0", "0", "0", "_major_handle_gc_param", "0", "0", "_major_is_valid_object", "_major_describe_pointer", "0", "0", "0", "0", "0", "_drain_gray_stack", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_simple_nursery_serial_drain_gray_stack", "_thread_func", "_pthread_mutex_unlock", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ss_bp_hash", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_frame_get_jit_info", "_stub_frame_get_ip", "0", "0", "_stub_frame_get_this", "_stub_frame_get_parent", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_install_handler_block_guard", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_thread_state_init_from_current", "0", "0", "0", "_mono_string_to_bstr", "_mono_string_from_bstr_icall", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_lookup_icall_symbol", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_selector_thread", "0", "0", "0", "0", "0", "0", "0", "_utility_thread", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iii = ["0", "0", "_try_process_suspend", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ss_create_init_args", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_event_handle_own", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mutex_handle_own", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_sem_handle_own", "0", "0", "0", "0", "0", "0", "0", "_tagged_object_equals", "0", "0", "0", "0", "0", "0", "0", "0", "_monoeg_g_str_equal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_Microsoft_Win32_NativeMethods_CloseProcess", "0", "0", "0", "_ves_icall_Microsoft_Win32_NativeMethods_GetPriorityClass", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_Mono_Runtime_GetNativeStackTrace", "_ves_icall_Mono_RuntimeClassHandle_GetTypeFromClass", "0", "0", "0", "_ves_icall_Mono_SafeStringMarshal_StringToUtf8", "_ves_icall_Mono_Security_Cryptography_KeyPairPersistence_CanSecure", "_ves_icall_Mono_Security_Cryptography_KeyPairPersistence_IsMachineProtected", "_ves_icall_Mono_Security_Cryptography_KeyPairPersistence_IsUserProtected", "_ves_icall_Mono_Security_Cryptography_KeyPairPersistence_ProtectMachine", "_ves_icall_Mono_Security_Cryptography_KeyPairPersistence_ProtectUser", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_InternalGetProcessGuid", "_ves_icall_System_AppDomain_InternalIsFinalizingForUnload", "0", "0", "0", "_ves_icall_System_AppDomain_InternalSetContext", "_ves_icall_System_AppDomain_InternalSetDomain", "_ves_icall_System_AppDomain_InternalSetDomainByID", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_getFriendlyName", "0", "_ves_icall_System_AppDomain_getSetup", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Array_GetRank", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Buffer_GetByteInternal", "0", "0", "0", "0", "0", "0", "_ves_icall_System_ConsoleDriver_InternalKeyAvailable", "_ves_icall_System_ConsoleDriver_Isatty", "_ves_icall_System_ConsoleDriver_SetBreak", "_ves_icall_System_ConsoleDriver_SetEcho", "0", "0", "0", "0", "0", "_mono_decimal_compare", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Delegate_AllocDelegateLike_internal", "0", "_ves_icall_System_Delegate_GetVirtualMethod_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_perfcounter_category_exists", "0", "0", "0", "0", "_mono_perfcounter_instance_exists", "0", "_ves_icall_System_Diagnostics_Process_GetModules_internal", "0", "0", "0", "0", "_ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal", "0", "0", "0", "0", "_ves_icall_System_Enum_get_underlying_type", "0", "_ves_icall_System_Enum_get_hashcode", "_ves_icall_System_Enum_get_value", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Environment_GetWindowsFolderPath", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Environment_GetEnvironmentVariable_native", "0", "0", "0", "_ves_icall_System_GC_GetCollectionCount", "_ves_icall_System_GC_GetGeneration", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_lcid", "_ves_icall_System_Globalization_CultureInfo_construct_internal_locale_from_name", "0", "0", "_ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_lcid", "_ves_icall_System_Globalization_RegionInfo_construct_internal_region_from_name", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_mmap_unmap", "_ves_icall_System_IO_MonoIO_Close", "0", "_ves_icall_System_IO_MonoIO_CreateDirectory", "0", "_ves_icall_System_IO_MonoIO_DeleteFile", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_Flush", "_ves_icall_System_IO_MonoIO_GetCurrentDirectory", "_ves_icall_System_IO_MonoIO_GetFileAttributes", "0", "_ves_icall_System_IO_MonoIO_GetFileType", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_RemoveDirectory", "0", "0", "_ves_icall_System_IO_MonoIO_SetCurrentDirectory", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoCustomAttrs_GetCustomAttributesDataInternal", "0", "0", "0", "0", "_ves_icall_System_Net_Dns_GetHostName_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_SupportPortReuse", "0", "0", "_mono_decimal_from_number", "_mono_double_from_number", "0", "_ves_icall_System_Object_GetType", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Assembly_GetManifestModuleInternal", "0", "0", "_ves_icall_System_Reflection_Assembly_GetManifestResourceNames", "_ves_icall_System_Reflection_Assembly_GetModulesInternal", "0", "0", "_ves_icall_System_Reflection_Assembly_InternalGetReferencedAssemblies", "0", "_ves_icall_System_Reflection_Assembly_InternalImageRuntimeVersion", "_ves_icall_System_Reflection_Assembly_LoadFile_internal", "0", "0", "_ves_icall_System_Reflection_Assembly_get_EntryPoint", "_ves_icall_System_Reflection_Assembly_get_ReflectionOnly", "0", "_ves_icall_System_Reflection_Assembly_get_fullName", "_ves_icall_System_Reflection_Assembly_get_global_assembly_cache", "_ves_icall_System_Reflection_Assembly_get_location", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_SignatureHelper_get_signature_field", "_ves_icall_SignatureHelper_get_signature_local", "_ves_icall_TypeBuilder_create_runtime_class", "0", "0", "_ves_icall_System_Reflection_FieldInfo_get_marshal_info", "0", "_ves_icall_reflection_get_token", "0", "_ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal", "0", "0", "_ves_icall_System_Reflection_Module_GetGlobalType", "_ves_icall_System_Reflection_Module_GetGuidInternal", "_ves_icall_System_Reflection_Module_GetHINSTANCE", "_ves_icall_System_Reflection_Module_GetMDStreamVersion", "0", "_ves_icall_System_Reflection_Module_InternalGetTypes", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoMethod_GetGenericMethodDefinition", "0", "_ves_icall_MonoMethod_get_core_clr_security_level", "0", "0", "0", "0", "_ves_icall_MonoField_GetValueInternal", "_ves_icall_MonoField_ResolveType", "0", "0", "_ves_icall_MonoMethod_GetGenericArguments", "0", "0", "_ves_icall_MonoMethod_get_IsGenericMethod", "_ves_icall_MonoMethod_get_IsGenericMethodDefinition", "0", "_ves_icall_MonoMethod_get_name", "0", "0", "0", "_ves_icall_System_MonoMethodInfo_get_retval_marshal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_GCHandle_CheckCurrentDomain", "0", "_ves_icall_System_GCHandle_GetAddrOfPinnedObject", "_ves_icall_System_GCHandle_GetTarget", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem", "_ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMemSize", "_ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_GetFunctionPointerForDelegateInternal", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringBSTR", "_ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_SizeOf", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_UnsafeAddrOfPinnedArrayElement", "0", "0", "_ves_icall_System_Runtime_Activation_ActivationServices_AllocateUninitializedClassInstance", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_RuntimeMethodHandle_GetFunctionPointer", "_ves_icall_System_Activator_CreateInstanceInternal", "0", "0", "0", "0", "0", "_ves_icall_RuntimeType_GetGenericParameterPosition", "0", "_ves_icall_RuntimeType_GetInterfaces", "0", "0", "0", "0", "_ves_icall_type_GetTypeCodeInternal", "0", "0", "0", "_ves_icall_RuntimeType_MakePointerType", "0", "_ves_icall_RuntimeType_get_DeclaringMethod", "_ves_icall_RuntimeType_get_DeclaringType", "_ves_icall_RuntimeType_get_Name", "_ves_icall_RuntimeType_get_Namespace", "_ves_icall_RuntimeType_get_core_clr_security_level", "0", "_ves_icall_RuntimeType_make_byref_type", "_ves_icall_RuntimeTypeHandle_GetArrayRank", "_ves_icall_RuntimeTypeHandle_GetAssembly", "_ves_icall_RuntimeTypeHandle_GetAttributes", "_ves_icall_RuntimeTypeHandle_GetBaseType", "_ves_icall_RuntimeTypeHandle_GetElementType", "_ves_icall_RuntimeTypeHandle_GetGenericParameterInfo", "_ves_icall_RuntimeTypeHandle_GetGenericTypeDefinition_impl", "_ves_icall_RuntimeTypeHandle_GetModule", "_ves_icall_RuntimeTypeHandle_HasInstantiation", "_ves_icall_RuntimeTypeHandle_HasReferences", "_ves_icall_RuntimeTypeHandle_IsArray", "_ves_icall_RuntimeTypeHandle_IsByRef", "_ves_icall_RuntimeTypeHandle_IsComObject", "_ves_icall_RuntimeTypeHandle_IsGenericTypeDefinition", "_ves_icall_RuntimeTypeHandle_IsGenericVariable", "0", "_ves_icall_RuntimeTypeHandle_IsPointer", "_ves_icall_RuntimeTypeHandle_IsPrimitive", "0", "0", "0", "0", "0", "_ves_icall_System_Security_Policy_Evidence_IsAuthenticodePresent", "0", "_ves_icall_System_Security_Principal_WindowsIdentity_GetTokenName", "_ves_icall_System_Security_Principal_WindowsIdentity_GetUserToken", "0", "_ves_icall_System_Security_Principal_WindowsImpersonationContext_CloseToken", "_ves_icall_System_Security_Principal_WindowsImpersonationContext_DuplicateToken", "0", "_ves_icall_System_Security_Principal_WindowsImpersonationContext_SetCurrentToken", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Text_EncodingHelper_InternalCodePage", "0", "_ves_icall_System_Threading_Interlocked_Add_Int", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_Exchange_T", "0", "_ves_icall_System_Threading_Interlocked_Exchange_Int", "_ves_icall_System_Threading_Interlocked_Exchange_IntPtr", "0", "_ves_icall_System_Threading_Interlocked_Exchange_Object", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Monitor_Monitor_wait", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_ByteArrayToCurrentDomain", "_ves_icall_System_Threading_Thread_ByteArrayToRootDomain", "0", "0", "_ves_icall_System_Threading_Thread_GetAbortExceptionState", "0", "0", "_ves_icall_System_Threading_Thread_GetName_internal", "_ves_icall_System_Threading_Thread_GetPriority", "0", "_ves_icall_System_Threading_Thread_GetState", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_ThreadPool_BindIOCompletionCallbackNative", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_ThreadPool_PostQueuedCompletionStatus", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Type_internal_from_handle", "0", "0", "0", "0", "_ves_icall_System_ValueType_InternalGetHashCode", "0", "0", "0", "0", "0", "_poll_event_wait", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_wasm_invoke_js", "0", "0", "_mono_metadata_signature_equal", "_signature_equal_pinvoke", "0", "0", "_tramp_info_equal", "0", "0", "_mrgctx_equal_func", "0", "_shared_gparam_equal", "0", "0", "0", "0", "_monoeg_g_direct_equal", "0", "_mini_llvmonly_initial_imt_tramp", "_mini_create_ftnptr", "0", "0", "0", "_mini_get_vtable_trampoline", "_mini_get_imt_trampoline", "_mini_imt_entry_inited", "0", "0", "_mono_jit_compile_method", "0", "0", "_mono_create_delegate_trampoline", "0", "0", "0", "_mono_thread_state_init_from_sigctx", "0", "0", "0", "0", "0", "_mono_aot_get_cached_class_info", "0", "0", "0", "0", "_mini_profiler_context_get_argument", "_mini_profiler_context_get_local", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_class_method_pair_equal", "0", "0", "0", "0", "0", "0", "_mono_llvmonly_fallback_imt_tramp", "_mono_llvmonly_imt_tramp_1", "_mono_llvmonly_imt_tramp_2", "_mono_llvmonly_imt_tramp_3", "_mono_llvmonly_imt_tramp", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_class_static_field_address", "0", "0", "0", "0", "0", "_ves_icall_object_new", "0", "0", "_ves_icall_array_new_specific", "0", "0", "_mono_ldvirtfn", "_mono_ldvirtfn_gshared", "0", "_mono_helper_ldstr", "0", "0", "0", "_mono_object_castclass_unbox", "0", "0", "_mono_create_corlib_exception_1", "0", "_mono_array_new_1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_fill_class_rgctx", "_mono_fill_method_rgctx", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_init_vtable_slot", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_monitor_enter_v4_fast", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_continuation_restore", "0", "0", "0", "_interp_create_method_pointer", "0", "0", "0", "_interp_get_remoting_invoke", "0", "0", "0", "0", "_interp_frame_iter_next", "_interp_find_jit_info", "0", "0", "0", "0", "_interp_frame_get_arg", "_interp_frame_get_local", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_domain_assembly_search", "0", "0", "0", "0", "0", "0", "_fix_gclass_incomplete_instantiation", "_discard_gclass_due_to_failure", "_compare_interface_ids", "0", "0", "0", "0", "0", "0", "_mono_string_equal", "0", "_mono_ptrarray_equal", "0", "0", "0", "0", "0", "0", "0", "0", "_monoeg_ascii_strcasecmp", "_strcmp", "0", "_property_equal", "0", "_event_equal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_string_from_byvalstr", "_mono_string_from_byvalwstr", "0", "0", "_mono_string_new_len_wrapper", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_ftnptr_to_delegate", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_object_isinst_icall", "0", "_mono_delegate_begin_invoke", "_mono_delegate_end_invoke", "0", "0", "0", "0", "0", "0", "0", "_mono_threads_attach_coop", "0", "_mono_icall_start", "0", "0", "0", "0", "_signature_pointer_pair_equal", "0", "0", "_wrapper_cache_method_key_equal", "0", "_wrapper_cache_signature_key_equal", "_runtime_invoke_signature_equal", "0", "0", "0", "_mono_generic_class_equal", "0", "0", "_mono_metadata_generic_inst_equal", "0", "0", "_inflated_method_equal", "0", "0", "_inflated_signature_equal", "0", "0", "_mono_metadata_generic_param_equal", "0", "_mono_type_equal", "0", "0", "0", "0", "0", "_typedef_locator", "_table_locator", "_declsec_locator", "0", "0", "0", "0", "0", "0", "0", "_category_search", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_instance_search", "_category_collect", "0", "0", "_compare_imt_builder_entries", "0", "0", "0", "_mono_reflected_equal", "0", "0", "_mono_metadata_type_equal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_object_in_domain_predicate", "0", "0", "0", "0", "0", "_mono_gc_alloc_obj", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_async_abort_critical", "0", "0", "_async_suspend_critical", "0", "0", "0", "0", "_ip_in_critical_region", "0", "0", "0", "0", "0", "_get_thread_dump", "0", "0", "0", "0", "0", "0", "0", "_suspend_for_shutdown_critical", "0", "0", "0", "_file_share_equal", "0", "0", "0", "0", "0", "0", "_file_compare", "0", "0", "_mono_w32handle_namespace_search_handle_callback", "_dump_callback", "0", "0", "_mono_w32process_module_equals", "_get_process_foreach_callback", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_alloc_heap", "0", "0", "_major_alloc_degraded", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_ptr_is_in_non_pinned_space", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_block_usage_comparer", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_exception_from_token", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ss_bp_eq", "_stub_create_method_pointer", "0", "0", "_stub_get_remoting_invoke", "0", "0", "0", "0", "_stub_frame_iter_next", "_stub_find_jit_info", "0", "0", "0", "0", "_stub_frame_get_arg", "_stub_frame_get_local", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_table_locator_11919", "0", "0", "_compare_method", "0", "0", "0", "0", "0", "_compare_class_imap", "_compare_method_imap", "_culture_name_locator", "_culture_lcid_locator", "_region_name_locator", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_new_base_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_process_wait", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_try_occupy_slot", "0", "0", "0", "_sgen_array_list_default_cas_setter", "0", "0", "_decode_latin1", "_encode_latin1", "_decode_utf32be", "_encode_utf32be", "_decode_utf32le", "_encode_utf32le", "_decode_utf16be", "_encode_utf16be", "_decode_utf16le", "_encode_utf16le", "_decode_utf8", "_encode_utf8", "0", "0", "0", "_ves_icall_Microsoft_Win32_NativeMethods_GetExitCodeProcess", "0", "0", "0", "_ves_icall_Microsoft_Win32_NativeMethods_SetPriorityClass", "0", "_ves_icall_Microsoft_Win32_NativeMethods_TerminateProcess", "_ves_icall_Microsoft_Win32_NativeMethods_WaitForInputIdle", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_GetAssemblies", "_ves_icall_System_AppDomain_GetData", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_createDomain", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Array_GetLength", "0", "_ves_icall_System_Array_GetLowerBound", "0", "_ves_icall_System_Array_GetValue", "_ves_icall_System_Array_GetValueImpl", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_perfcounter_get_sample", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Enum_compare_value_to", "0", "_ves_icall_System_Enum_InternalHasFlag", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Globalization_CalendarData_fill_calendar_data", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Globalization_CultureInfo_internal_get_cultures", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_CreatePipe", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_GetFileStat", "0", "0", "0", "_ves_icall_System_IO_MonoIO_MoveFile", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_SetFileAttributes", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoCustomAttrs_IsDefinedInternal", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Available_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Assembly_GetTypes", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Assembly_LoadFrom", "0", "0", "0", "_ves_icall_System_Reflection_Assembly_get_code_base", "0", "0", "0", "_ves_icall_System_Reflection_Assembly_load_with_partial_name", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_ModuleBuilder_GetRegisteredToken", "0", "0", "0", "0", "0", "0", "_ves_icall_ModuleBuilder_getUSIndex", "0", "0", "0", "0", "_ves_icall_System_Reflection_EventInfo_internal_from_handle_type", "_ves_icall_System_Reflection_FieldInfo_GetTypeModifiers", "0", "_ves_icall_System_Reflection_FieldInfo_internal_from_handle_type", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Module_ResolveStringToken", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoField_GetParentType", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoMethod_MakeGenericMethod_impl", "0", "0", "_ves_icall_MonoMethod_get_base_method", "0", "0", "0", "_ves_icall_System_Reflection_MonoMethodInfo_get_parameter_info", "0", "_ves_icall_MonoPropertyInfo_GetTypeModifiers", "0", "0", "_ves_icall_ParameterInfo_GetTypeModifiers", "_ves_icall_System_Reflection_PropertyInfo_internal_from_handle_type", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_BufferToBSTR", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_GetDelegateForFunctionPointerInternal", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni_len", "_ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_ReAllocCoTaskMem", "_ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi", "_ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_RuntimeType_GetConstructors_native", "_ves_icall_RuntimeType_GetCorrespondingInflatedMethod", "0", "0", "_ves_icall_RuntimeType_GetGenericArguments", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_RuntimeType_MakeGenericType", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_RuntimeType_make_array_type", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_RuntimeTypeHandle_IsInstanceOfType", "0", "0", "_ves_icall_RuntimeTypeHandle_type_is_assignable_from", "0", "0", "_ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_RngInitialize", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Security_Principal_WindowsPrincipal_IsMemberOfGroupId", "_ves_icall_System_Security_Principal_WindowsPrincipal_IsMemberOfGroupName", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_CompareExchange_T", "0", "_ves_icall_System_Threading_Interlocked_CompareExchange_Int", "0", "_ves_icall_System_Threading_Interlocked_CompareExchange_IntPtr", "0", "_ves_icall_System_Threading_Interlocked_CompareExchange_Object", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Semaphore_OpenSemaphore_internal", "_ves_icall_System_Threading_Semaphore_ReleaseSemaphore_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_Join_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_Thread_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_ThreadPool_SetMaxThreadsNative", "_ves_icall_System_Threading_ThreadPool_SetMinThreadsNative", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_ValueType_Equals", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "___stdio_write", "___stdio_seek", "___stdout_write", "_sn_write", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_create_jit_trampoline", "0", "0", "0", "0", "0", "_mono_thread_state_init_from_handle", "0", "0", "0", "0", "0", "0", "_mono_aot_find_jit_info", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_get_trace", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_ldtoken_wrapper", "_mono_ldtoken_wrapper_generic_shared", "0", "_ves_icall_mono_ldstr", "0", "0", "0", "_ves_icall_array_new", "0", "0", "0", "0", "0", "_mono_helper_compile_generic_method", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_create_corlib_exception_2", "0", "_mono_array_new_2", "0", "0", "_mono_get_native_calli_wrapper", "0", "0", "0", "_mono_object_castclass_with_cache", "_mono_object_isinst_with_cache", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_resolve_generic_virtual_call", "_mono_resolve_generic_virtual_iface_call", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_list_frames", "_describe_variable", "0", "0", "_collect_frames", "0", "0", "0", "0", "_continuation_store", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_run_finally", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_frame_arg_to_storage", "0", "0", "0", "0", "_mono_domain_assembly_preload", "0", "_mono_domain_assembly_postload_search", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stack_walk_adapter", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_marshal_asany", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_marshal_isinst_with_cache", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_wrapper_cache_method_matches_data", "_signature_pointer_pair_matches_pointer", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_steal_gclass_in_image", "_steal_ginst_in_image", "_inflated_method_in_image", "_inflated_signature_in_image", "_class_in_image", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_get_cpu_counter", "_get_process_counter", "_mono_mem_counter", "_get_network_counter", "0", "_predef_writable_counter", "0", "_predef_readonly_counter", "0", "_custom_writable_counter", "0", "0", "0", "0", "_release_type_locks", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_gc_alloc_vector", "_mono_gc_alloc_string", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_last_managed_6826", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_collect_frame", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_sgen_card_table_find_address_with_cards", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_alloc_small_pinned_obj", "0", "_major_alloc_object", "_major_alloc_object_par", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_run_finally", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_exception_walk_trace", "0", "0", "0", "0", "0", "_mono_get_seq_point_for_native_offset", "0", "_find_last_handler_block", "_first_managed", "0", "0", "0", "_get_provenance", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_create_method_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "___stdio_read", "_do_read", "_wrap_write", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iiiii = ["0", "0", "0", "_begin_breakpoint_processing", "0", "0", "0", "0", "0", "0", "_create_breakpoint_events", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_Microsoft_Win32_NativeMethods_GetProcessWorkingSetSize", "0", "_ves_icall_Microsoft_Win32_NativeMethods_SetProcessWorkingSetSize", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_ExecuteAssembly", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Array_CreateInstanceImpl", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_perfcounter_create", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Enum_GetEnumValuesAndNames", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_FAMW_InternalFAMNextEvent", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_CopyFile", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoCustomAttrs_GetCustomAttributesInternal", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Accept_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_LocalEndPoint_internal", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_RemoteEndPoint_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Assembly_GetFilesInternal", "0", "_ves_icall_System_Reflection_Assembly_GetManifestResourceInfoInternal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_AssemblyName_ParseAssemblyName", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_ModuleBuilder_getMethodToken", "_ves_icall_ModuleBuilder_getToken", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType_native", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Module_ResolveSignature", "0", "0", "0", "_ves_icall_InternalInvoke", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_GCHandle_GetTargetHandle", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_RuntimeType_GetEvents_native", "_ves_icall_RuntimeType_GetFields_native", "0", "0", "0", "0", "0", "_ves_icall_RuntimeType_GetNestedTypes_native", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_RuntimeType_getFullName", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_RngGetBytes", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_CompareExchange_Int_Success", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Mutex_CreateMutex_internal", "_ves_icall_System_Threading_Mutex_OpenMutex_internal", "0", "0", "0", "_ves_icall_System_Threading_Events_OpenEvent_internal", "0", "0", "_ves_icall_System_Threading_Semaphore_CreateSemaphore_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_WaitHandle_SignalAndWait_Internal", "0", "0", "_ves_icall_System_Type_internal_from_name", "0", "0", "0", "0", "0", "_ves_icall_get_resources_ptr", "0", "0", "0", "0", "0", "0", "_extension_disconect", "0", "0", "0", "0", "0", "0", "0", "_mono_wasm_invoke_js_with_args", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_create_jump_trampoline", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_aot_get_class_from_name", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_array_new_3", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_resolve_iface_call_gsharedvt", "_mono_resolve_vcall_gsharedvt", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_magic_trampoline", "_mono_rgctx_lazy_fetch_trampoline", "_mono_delegate_trampoline", "_mono_vcall_trampoline", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_run_filter", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_null_link_if_in_domain", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_file_read", "_file_write", "_console_read", "_console_write", "_pipe_read", "_pipe_write", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_null_link_if_necessary", "_scan_for_weak", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_alloc_for_promotion", "_alloc_for_promotion_par", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_run_filter", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_icall_table_lookup", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_LoadAssembly", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Array_FastCopy", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Buffer_BlockCopyInternal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_ConsoleDriver_TtySetup", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Delegate_CreateDelegate_internal", "0", "0", "0", "0", "0", "0", "0", "_mono_perfcounter_get_impl", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Diagnostics_Process_CreateProcess_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_DriveInfo_GetDiskFreeSpace", "0", "0", "0", "0", "_ves_icall_System_IO_KqueueMonitor_kevent_notimeout", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_FindFirstFile", "_ves_icall_System_IO_MonoIO_FindNextFile", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_ReplaceFile", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Duplicate_internal", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Poll_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Assembly_GetManifestResourceInternal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_RuntimeType_GetMethodsByName_native", "0", "0", "_ves_icall_RuntimeType_GetPropertiesByName_native", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Events_CreateEvent_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_WaitHandle_Wait_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_jit_runtime_invoke", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_llvmonly_get_imt_trampoline", "_mono_aot_get_imt_trampoline", "_mono_arch_build_imt_trampoline", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_llvm_match_exception", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_array_new_4", "0", "0", "_mono_gsharedvt_constrained_call", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_runtime_invoke", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_append_frame_and_continue", "0", "0", "0", "_get_caller_no_system_or_reflection", "0", "0", "0", "0", "0", "0", "0", "0", "_get_executing", "_get_caller_no_reflection", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_last_managed", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_assembly_object_construct", "0", "0", "_module_object_construct", "0", "0", "_method_object_construct", "_field_object_construct", "_property_object_construct", "_event_object_construct", "_param_objects_construct", "_method_body_object_construct", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_find_wrapper", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_runtime_invoke", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iiiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_Microsoft_Win32_NativeMethods_GetProcessTimes", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_LoadAssemblyRaw", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_Open", "_ves_icall_System_IO_MonoIO_Read", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_Write", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Dns_GetHostByAddr_internal", "_ves_icall_System_Net_Dns_GetHostByName_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_IOControl_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Socket_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Assembly_InternalGetType", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Module_ResolveFieldToken", "_ves_icall_System_Reflection_Module_ResolveMemberToken", "_ves_icall_System_Reflection_Module_ResolveMethodToken", "0", "0", "_ves_icall_System_Reflection_Module_ResolveTypeToken", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_has_reference_assembly_attribute_iterator", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iiiiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Globalization_CompareInfo_internal_index_char", "_ves_icall_System_Globalization_CompareInfo_internal_index", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Receive_array_internal", "_ves_icall_System_Net_Sockets_Socket_Receive_internal", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Send_array_internal", "_ves_icall_System_Net_Sockets_Socket_Send_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_extension_transmit_file", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_marshal_array_ilgen", "_emit_marshal_boolean_ilgen", "_emit_marshal_ptr_ilgen", "_emit_marshal_char_ilgen", "_emit_marshal_scalar_ilgen", "_emit_marshal_custom_ilgen", "_emit_marshal_asany_ilgen", "_emit_marshal_vtype_ilgen", "_emit_marshal_string_ilgen", "_emit_marshal_safehandle_ilgen", "_emit_marshal_handleref_ilgen", "_emit_marshal_object_ilgen", "_emit_marshal_variant_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iiiiiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Globalization_CompareInfo_internal_compare", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_mmap_open_handle", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_DuplicateHandle", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_SendFile_internal", "_ves_icall_System_Net_Sockets_Socket_SendTo_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Assembly_LoadPermissions", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_get_frame_info", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iiiiiiiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_mmap_open_file", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iij = ["0"]; | |
var debug_table_iiji = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Enum_ToObject", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_SetLength", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iijiiii = ["0"]; | |
var debug_table_iijiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_mmap_map", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_iijjji = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_SetFileTime", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_j = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_100ns_datetime", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_100ns_ticks", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_get_and_reset_num_major_objects_marked", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_get_used_size", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_user_time", "_system_time", "_total_time", "_working_set", "_private_bytes", "_virtual_bytes", "_paged_bytes", "_page_faults", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_jd = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_fconv_u8", "0", "0", "_mono_fconv_ovf_i8", "_mono_fconv_ovf_u8", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_jf = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_rconv_u8", "0", "0", "0", "_mono_rconv_ovf_i8", "_mono_rconv_ovf_u8", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_ji = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_Decrement_Long", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_Increment_Long", "_ves_icall_System_Threading_Interlocked_Read_Long", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_VolatileRead8", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Volatile_Read8", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_jii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_GC_GetTotalMemory", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_GetLength", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_jiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Array_GetLongLength", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Diagnostics_Process_GetProcessData", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_jiij = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_perfcounter_update_value", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_predef_writable_update", "0", "0", "0", "_custom_writable_update", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_jij = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_Add_Long", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_Exchange_Long", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_jijii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_Seek", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_jijj = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Interlocked_CompareExchange_Long", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_jj = ["0"]; | |
var debug_table_jji = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_lshl", "_mono_lshr", "_mono_lshr_un", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_jjj = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_llmult", "_mono_lldiv", "_mono_lldiv_un", "_mono_llrem", "_mono_llrem_un", "_mono_llmult_ovf_un", "_mono_llmult_ovf", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_v = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_DumpHandles", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_String_ctor_RedirectToCreateString", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_MemoryBarrier", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_no_gsharedvt_in_wrapper", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mini_profiler_context_enable", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_runtime_install_handlers", "_mono_runtime_cleanup_handlers", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_llvm_resume_exception", "0", "_mono_llvm_clear_exception", "0", "0", "0", "_ves_icall_thread_finish_async_abort", "0", "0", "_mono_threads_state_poll", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_break", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_dummy_jit_icall", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_method_not_found", "_no_delegate_trampoline", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_sdb_single_step_trampoline", "_mono_wasm_breakpoint_hit", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_start_single_stepping", "_interp_stop_single_stepping", "_interp_no_native_to_managed", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_tty_teardown", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_runtime_do_background_work", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_no_icall_table", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_marshal_set_last_error", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_cleanup", "_initialize", "0", "_worker_callback", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_error_key_init", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_process_add_sigchld_handler", "0", "0", "0", "0", "0", "0", "0", "_sgen_card_table_start_scan_remsets", "_sgen_card_table_clear_cards", "0", "0", "0", "0", "0", "_gc_pump_callback", "_workers_finish_callback", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_init_to_space", "_major_sweep", "0", "_major_finish_sweep_checking", "0", "_major_check_scan_starts", "0", "0", "_major_start_nursery_collection", "_major_finish_nursery_collection", "_major_start_major_collection", "0", "0", "0", "_major_report_pinned_memory_usage", "0", "0", "0", "_major_print_gc_param_usage", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_clear_fragments", "0", "_build_fragments_release_exclude_head", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_log_close_recorder", "0", "0", "_mono_log_close_syslog", "0", "0", "_mono_log_close_logfile", "0", "0", "0", "0", "0", "0", "0", "_sleep_initialize", "0", "_initialize_10307", "0", "0", "0", "0", "0", "0", "0", "0", "_no_trampolines", "0", "_no_specific_trampoline", "_no_imt_trampoline", "0", "_stub_debugger_agent_init", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_debugger_agent_user_break", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_start_single_stepping", "_stub_stop_single_stepping", "0", "0", "0", "0", "0", "0", "0", "_mono_uninstall_current_handler_block_guard", "0", "_mini_clear_abort_threshold", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_initialize_11950", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_cleanup_12652", "_initialize_12665", "0", "0", "0", "0", "_fire_tp_callback", "0", "0", "0", "0", "0", "_wasm_call_filter", "_wasm_restore_context", "_wasm_throw_corlib_exception", "_wasm_rethrow_exception", "_wasm_throw_exception", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_vi = ["0", "0", "0", "0", "0", "_ss_discard_frame_context", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ss_args_destroy", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_dllmap_finish", "0", "0", "0", "0", "_event_handle_signal", "0", "_event_details", "0", "0", "_namedevent_details", "0", "0", "_file_data_close", "_file_data_destroy", "_mutex_handle_signal", "0", "0", "_mutex_handle_prewait", "_mutex_details", "0", "0", "_namedmutex_details", "0", "0", "_process_close", "0", "_process_details", "0", "0", "_sem_handle_signal", "0", "_sema_details", "0", "0", "_namedsema_details", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_Mono_Runtime_DisableMicrosoftTelemetry", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_InternalPopDomainRef", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_decimal_floor", "0", "0", "0", "_mono_decimal_truncate", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_perfcounter_free_data", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Environment_Exit", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Environment_BroadcastSettingChange", "0", "0", "0", "_mono_environment_exitcode_set", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_GC_WaitForPendingFinalizers", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IOSelector_Remove", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_AssemblyBuilder_basic_init", "0", "0", "0", "0", "0", "0", "_ves_icall_ModuleBuilder_build_metadata", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor", "_ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Security_SecurityManager_set_SecurityEnabled", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Monitor_Monitor_Enter", "_mono_monitor_exit", "_ves_icall_System_Threading_Monitor_Monitor_pulse", "_ves_icall_System_Threading_Monitor_Monitor_pulse_all", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Events_CloseEvent_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_SpinWait_nop", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_ThreadPool_NotifyWorkItemProgressNative", "_ves_icall_System_Threading_ThreadPool_NotifyWorkItemQueued", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_poll_remove_fd", "0", "_socket_data_close", "_socket_data_destroy", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mini_init_delegate", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_thread_state_init", "_mini_thread_cleanup", "_mini_create_jit_domain_info", "_mini_free_jit_domain_info", "0", "0", "0", "0", "0", "0", "0", "0", "_mini_profiler_context_free_buffer", "0", "0", "0", "_mini_cleanup", "0", "0", "0", "0", "_runtime_invoke_info_free", "_mono_seq_point_info_free", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_jit_set_domain", "0", "_mono_llvm_throw_exception", "_mono_llvm_rethrow_exception", "0", "0", "0", "0", "_mono_llvm_throw_corlib_exception", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_runtime_class_init", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_resume_unwind", "0", "0", "0", "0", "_mono_generic_class_init", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_llvmonly_init_delegate", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_tls_set_thread", "_mono_tls_set_jit_tls", "_mono_tls_set_domain", "_mono_tls_set_sgen_thread_info", "_mono_tls_set_lmf_addr", "_mono_thread_abort", "_mono_thread_abort_dummy", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_continuation_free", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_init_delegate", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_break_coop_alertable_wait", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_monoeg_g_free", "0", "0", "0", "0", "0", "_jit_info_table_free_duplicate", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_marshal_free", "0", "_mono_marshal_set_last_error_windows", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_gc_wbarrier_generic_nostore", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_free_signature_pointer_pair", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_free_generic_class", "0", "0", "_free_generic_inst", "0", "0", "_free_inflated_method", "0", "0", "_free_inflated_signature", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_signal_monitor", "_free_debug_handle", "_free_data_table", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_network_cleanup", "0", "0", "0", "_predef_cleanup", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_profiler_raise_gc_allocation", "0", "0", "0", "0", "0", "0", "_destroy", "0", "0", "0", "0", "0", "0", "_self_interrupt_thread", "0", "0", "_free_context", "0", "_thread_detach", "_thread_detach_with_lock", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_suspend_for_shutdown_async_call", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_findhandle_destroy", "_finds_remove", "0", "0", "_signal_handle_and_unref", "_signal_global", "0", "0", "0", "0", "0", "0", "0", "0", "_sgen_card_table_wbarrier_generic_nostore", "_sgen_card_table_record_pointer", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_pin_objects", "0", "0", "_major_iterate_live_block_ranges", "_major_iterate_block_ranges", "0", "0", "0", "0", "_major_free_swept_blocks", "0", "_major_dump_heap", "0", "0", "0", "0", "_major_finish_major_collection", "0", "0", "0", "0", "0", "0", "0", "_post_param_init", "0", "0", "0", "_sgen_init_block_free_lists", "0", "0", "0", "0", "0", "_sgen_worker_clear_free_block_lists_evac", "0", "_sgen_worker_clear_free_block_lists", "0", "0", "0", "0", "0", "0", "0", "_build_fragments_finish", "0", "0", "0", "0", "0", "0", "0", "0", "_desc_enqueue_avail", "_desc_put_partial", "_free_dummy", "_conc_table_free", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_thread_handle_destroy", "_free_thread_info", "_thread_info_key_dtor", "_thread_exited_dtor", "0", "_sleep_interrupt", "0", "_signal_and_unref", "_default_stdout_handler", "_default_stderr_handler", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_debugger_agent_parse_options", "0", "_stub_debugger_agent_breakpoint_hit", "_stub_debugger_agent_single_step_event", "_stub_debugger_agent_single_step_from_context", "_stub_debugger_agent_breakpoint_from_context", "_stub_debugger_agent_free_domain_info", "_stub_debugger_agent_unhandled_exception", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_init_delegate", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_llvm_raise_exception", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_llvm_reraise_exception", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_free_bstr", "_doc_free", "0", "_free_method_info", "_free_source_info", "0", "0", "_fds_remove", "_fdhandle_destroy", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_castclass_ilgen", "0", "0", "_emit_isinst_ilgen", "0", "_emit_stelemref_ilgen", "0", "0", "0", "0", "_emit_runtime_invoke_dynamic_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mb_skip_visibility_ilgen", "_mb_set_dynamic_ilgen", "0", "0", "0", "_free_ilgen", "0", "_conc_table_free_12391", "0", "0", "0", "0", "0", "0", "_selector_thread_interrupt", "0", "0", "_init", "0", "_cleanup_13152", "0", "_free_queue_entry", "0", "0", "0", "0", "0", "0", "0", "0", "_do_setxid", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_vid = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_decimal_init_double", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_VolatileWriteDouble", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Volatile_WriteDouble", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_vif = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_decimal_init_single", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_VolatileWriteFloat", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Volatile_WriteFloat", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_viff = ["0"]; | |
var debug_table_viffff = ["0"]; | |
var debug_table_vifffffi = ["0"]; | |
var debug_table_vii = ["0", "0", "0", "0", "_begin_single_step_processing", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_assembly_binding_end", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_Mono_RuntimeGPtrArrayHandle_GPtrArrayFree", "0", "_ves_icall_Mono_SafeStringMarshal_GFree", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_DoUnhandledException", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_InternalPushDomainRef", "_ves_icall_System_AppDomain_InternalPushDomainRefByID", "0", "0", "0", "_ves_icall_System_AppDomain_InternalUnload", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_ArgIterator_IntGetNextArg", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_decimal_divide", "0", "_mono_decimal_multiply", "_mono_decimal_round", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString", "_ves_icall_System_Diagnostics_FileVersionInfo_GetVersionInfo_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Environment_InternalSetEnvironmentVariable", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_GC_InternalCollect", "_ves_icall_System_GC_KeepAlive", "0", "0", "_ves_icall_System_GC_ReRegisterForFinalize", "_ves_icall_System_GC_SuppressFinalize", "0", "_ves_icall_System_GC_register_ephemeron_array", "0", "0", "0", "0", "0", "_ves_icall_System_Globalization_CultureData_fill_culture_data", "_ves_icall_System_Globalization_CultureData_fill_number_data", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_mmap_close", "0", "_mono_mmap_flush", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IOSelector_Add", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_cancel_blocking_socket_operation", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_AssemblyBuilder_UpdateNativeCustomAttributes", "0", "_ves_icall_DynamicMethod_create_dynamic_method", "0", "0", "0", "_ves_icall_ModuleBuilder_WriteToFile", "_ves_icall_ModuleBuilder_basic_init", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Module_Close", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_GCHandle_FreeHandle", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_FreeBSTR", "_ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem", "_ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_Prelink", "_ves_icall_System_Runtime_InteropServices_Marshal_PrelinkAll", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_Remoting_Contexts_Context_RegisterContext", "_ves_icall_System_Runtime_Remoting_Contexts_Context_ReleaseContext", "0", "0", "0", "_ves_icall_System_Runtime_RuntimeImports_ZeroMemory", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_RngClose", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Security_SecureString_DecryptInternal", "_ves_icall_System_Security_SecureString_EncryptInternal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_InternalThread_Thread_free_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_ConstructInternalThread", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_GetStackTraces", "0", "_ves_icall_System_Threading_Thread_Interrupt_internal", "0", "0", "_ves_icall_System_Threading_Thread_ResetAbort", "_ves_icall_System_Threading_Thread_Resume", "_ves_icall_System_Threading_Thread_SetName_internal", "0", "0", "_ves_icall_System_Threading_Thread_Sleep_internal", "0", "_ves_icall_System_Threading_Thread_Suspend", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_VolatileWrite1", "0", "_ves_icall_System_Threading_Thread_VolatileWrite4", "_ves_icall_System_Threading_Thread_VolatileWrite2", "_ves_icall_System_Threading_Thread_VolatileWriteIntPtr", "0", "_ves_icall_System_Threading_Thread_VolatileWriteObject", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_ThreadPool_InitializeVMTp", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_ThreadPool_ReportThreadStatus", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Volatile_Write_T", "_ves_icall_System_Threading_Volatile_Write1", "0", "_ves_icall_System_Threading_Volatile_Write4", "_ves_icall_System_Threading_Volatile_Write2", "_ves_icall_System_Threading_Volatile_WriteIntPtr", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_interp_entry_from_trampoline", "0", "0", "0", "0", "0", "0", "0", "_mono_class_unregister_image_generic_subclasses", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_set_cast_details", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_jit_free_method", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_thread_attach_cb", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_profiler_raise_method_enter", "_mono_profiler_raise_method_leave", "_mono_profiler_raise_method_tail_call", "0", "_mono_trace_enter_method", "_mono_trace_leave_method", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_helper_stelem_ref_check", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_aot_init_llvm_method", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_throw_method_access", "0", "0", "_mono_monitor_enter_v4_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_appdomain_load", "0", "_mono_wasm_set_timeout", "0", "0", "0", "0", "0", "_mono_wasm_interp_to_native_trampoline", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_frame_iter_init", "0", "0", "_interp_set_breakpoint", "_interp_clear_breakpoint", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_domain_fire_assembly_load", "0", "0", "_assembly_binding_info_parsed", "_free_item", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_gc_run_finalize", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_free_lparray", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_string_utf8_to_builder", "0", "_mono_string_utf16_to_builder", "0", "_mono_marshal_free_array", "0", "0", "0", "_mono_struct_delete_old", "0", "0", "0", "0", "0", "0", "_mono_threads_exit_gc_safe_region_unbalanced", "0", "_mono_threads_exit_gc_unsafe_region_unbalanced", "0", "_mono_threads_detach_coop", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_debug_add_assembly", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_unescape_each_type_argument", "_unescape_each_nested_name", "_fire_process_exit_event", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_report_handle_stack_root", "0", "0", "_single_arg_report_root", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_thread_flags_changing", "_thread_flags_changed", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_sgen_card_table_wbarrier_object_copy", "0", "0", "0", "0", "0", "0", "0", "_clear_cards", "0", "0", "0", "_job_scan_major_mod_union_card_table", "_job_scan_los_mod_union_card_table", "_job_scan_from_registered_roots", "_job_scan_thread_data", "_job_scan_finalizer_entries", "_job_major_mod_union_preclean", "_job_los_mod_union_preclean", "_job_scan_last_pinned", "_single_arg_user_copy_or_mark", "_job_scan_wbroots", "_job_scan_major_card_table", "_job_scan_los_card_table", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_free_pinned_object", "0", "_major_free_non_pinned_object", "0", "_pin_major_object", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_count_cards", "0", "_major_copy_or_mark_object_canonical", "0", "0", "0", "_sweep_job_func", "0", "0", "0", "_sweep_blocks_job_func", "0", "0", "_prepare_to_space", "0", "0", "0", "0", "0", "_simple_nursery_serial_copy_object", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_log_open_recorder", "0", "0", "_mono_log_open_syslog", "0", "0", "_mono_log_open_logfile", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_load_aot_module", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_frame_iter_init", "0", "0", "_stub_set_breakpoint", "_stub_clear_breakpoint", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_raise_exception_with_ctx", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_struct_to_ptr_ilgen", "_emit_ptr_to_struct_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_delegate_begin_invoke_ilgen", "_emit_delegate_end_invoke_ilgen", "0", "0", "_emit_unbox_wrapper_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mb_emit_byte_ilgen", "0", "0", "0", "0", "_emit_nursery_check_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_viii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_parse_error", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_parse_error_5038", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_bucket_alloc_report_root", "_bucket_alloc_callback", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_Mono_RuntimeMarshal_FreeAssemblyName", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_ArgIterator_IntGetNextArgT", "0", "_mono_ArgIterator_Setup", "0", "0", "0", "_ves_icall_System_Array_GetGenericValueImpl", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Array_SetGenericValueImpl", "0", "0", "0", "0", "0", "_ves_icall_System_Buffer_SetByteInternal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_decimal_addsub", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_LogcatTextWriter_Log", "0", "_mono_mmap_configure_inheritability", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Close_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_digest_get_public_token", "0", "0", "0", "0", "_ves_icall_EnumBuilder_setup_enum_type", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_ModuleBuilder_set_wrappers_type", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoEventInfo_get_event_info", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_get_method_info", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_InitializeArray", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_Activation_ActivationServices_EnableProxyActivation", "0", "0", "0", "_ves_icall_System_Runtime_RuntimeImports_Memmove", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Monitor_Monitor_try_enter_with_atomic_var", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_Abort", "0", "0", "_ves_icall_System_Threading_Thread_ClrState", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_SetPriority", "_ves_icall_System_Threading_Thread_SetState", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_ThreadPool_GetAvailableThreadsNative", "_ves_icall_System_Threading_ThreadPool_GetMaxThreadsNative", "_ves_icall_System_Threading_ThreadPool_GetMinThreadsNative", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_TypedReference_MakeTypedReferenceInternal", "0", "0", "0", "0", "0", "_poll_register_fd", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_move_subclasses_not_in_image_foreach_func", "_find_tramp", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_setup_async_callback", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_thread_start_cb", "0", "0", "0", "0", "0", "_delete_jump_list", "_delete_got_slot_list", "_dynamic_method_info_free", "_free_jit_callee_list", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_mono_delegate_ctor", "_ves_icall_mono_delegate_ctor_interp", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_value_copy", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_gsharedvt_value_copy", "0", "0", "0", "0", "0", "0", "_mono_aot_init_gshared_method_this", "_mono_aot_init_gshared_method_mrgctx", "_mono_aot_init_gshared_method_vtable", "0", "0", "0", "0", "0", "0", "_mono_llvmonly_init_delegate_virtual", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_jit_done", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_find_nocase", "0", "_sigcont_handler", "_sigint_handler", "_sigwinch_handler", "0", "0", "0", "0", "_free_blob_cache_entry", "0", "0", "0", "0", "0", "0", "_fill_iface_array", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_free_array_cache_entry", "_free_hash_table", "0", "0", "0", "0", "0", "_remove_cached_module", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_byvalarray_to_byte_array", "0", "_mono_array_to_byte_byvalarray", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_string_to_byvalstr", "_mono_string_to_byvalwstr", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_icall_end", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_lookup_method_func", "_lookup_image_func", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_cleanup_refobject_hash", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_clear_domain_process_minor_object_callback", "_clear_domain_process_major_object_callback", "_clear_domain_free_major_non_pinned_object_callback", "_clear_domain_free_major_pinned_object_callback", "0", "0", "0", "0", "0", "0", "_sgen_mark_normal_gc_handles", "_two_args_report_root", "0", "0", "0", "0", "0", "0", "_mark_tls_slots", "_mark_ctx_slots", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_collect_threads_for_suspend", "_collect_thread", "0", "0", "_collect_appdomain_thread", "_alloc_thread_static_data_helper", "_alloc_context_static_data_helper", "_do_free_special", "_free_thread_static_data_helper", "_free_context_static_data_helper", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_sigchld_signal_handler", "_sgen_card_table_wbarrier_set_field", "_sgen_card_table_wbarrier_arrayref_copy", "0", "0", "0", "0", "0", "0", "0", "0", "_sgen_card_table_wbarrier_range_copy", "0", "_process_fin_stage_entry", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_iterate_objects", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_scan_object_with_evacuation", "_major_scan_ptr_field_with_evacuation", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_init_nursery", "0", "_simple_nursery_serial_scan_object", "0", "_simple_nursery_serial_scan_ptr_field", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_free_hash_9772", "_remove_object", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_add_module_cb", "_check_is_got_entry", "_find_aot_module_cb", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_debugger_agent_begin_exception_filter", "_stub_debugger_agent_end_exception_filter", "0", "_stub_debugger_agent_debug_log", "0", "_collect_domain_bp", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_virtual_stelemref_ilgen", "0", "_emit_array_address_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_generic_array_helper_ilgen", "_emit_thunk_invoke_wrapper_ilgen", "_emit_create_string_hack_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_filter_jobs_for_domain", "0", "_wait_callback", "0", "0", "_handle_command", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_viiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_process_breakpoint_events", "0", "0", "0", "0", "0", "_end_element", "0", "0", "_end_element_3161", "0", "0", "0", "0", "0", "_end_element_5037", "0", "0", "0", "0", "_dllmap_start", "0", "_legacyUEP_start", "_aot_cache_start", "_publisher_policy_start", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_AppDomain_SetData", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Array_ClearInternal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Array_SetValue", "_ves_icall_System_Array_SetValueImpl", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Diagnostics_Debugger_Log", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Globalization_CompareInfo_assign_sortkey", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Bind_internal", "_ves_icall_System_Net_Sockets_Socket_Blocking_internal", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Disconnect_internal", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Listen_internal", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Select_internal", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Shutdown_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Assembly_InternalGetAssemblyName", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_ModuleBuilder_RegisterToken", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_Module_GetPEKind", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoField_SetValueInternal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoPropertyInfo_get_property_info", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_StructureToPtr", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_RuntimeImports_Memmove_wbarrier", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_RuntimeType_GetPacking", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_profiler_raise_exception_clause", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_delegate_ctor", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_frame_arg_to_data", "_interp_data_to_frame_arg", "0", "_interp_frame_arg_set_storage", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_byvalarray_to_array", "0", "_mono_array_to_byvalarray", "0", "0", "0", "0", "_mono_marshal_free_asany", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_sgen_card_table_wbarrier_value_copy", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_simple_nursery_serial_scan_vtype", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_log_write_recorder", "0", "0", "_mono_log_write_syslog", "0", "0", "_mono_log_write_logfile", "0", "_structured_log_adapter", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_monoeg_log_default_handler", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_debugger_agent_handle_exception", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_delegate_ctor", "_mono_runtime_walk_stack_with_ctx", "_mono_walk_stack_with_state", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_mono_walk_stack_with_ctx", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_array_accessor_wrapper_ilgen", "0", "0", "0", "0", "0", "_emit_vtfixup_ftnptr_ilgen", "0", "0", "_mb_emit_exception_ilgen", "0", "0", "0", "0", "0", "0", "_emit_managed_allocater_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_viiiii = ["0", "0", "0", "0", "0", "0", "_ss_calculate_framecount", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_parse_text", "_passthrough", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_Connect_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_MonoMethod_GetPInvoke", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_RuntimeFieldHandle_SetValueDirect", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_RuntimeType_GetInterfaceMapData", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_interp_set_resume_state", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_major_scan_card_table", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_stub_set_resume_state", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_icall_wrapper_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_viiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_start_element", "0", "0", "_start_element_3160", "0", "0", "0", "0", "0", "_start_element_5036", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_GetSocketOption_arr_internal", "_ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_NumberFormatter_GetFormatterTables", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Reflection_CustomAttributeData_ResolveArgumentsInternal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged", "_ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_managed_wrapper_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_native_icall_wrapper_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_viiiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_Mono_Runtime_EnableMicrosoftTelemetry", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Text_Normalization_load_normalization_resource", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_synchronized_wrapper_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_viiiiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_runtime_invoke_body_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_viiiiiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_native_wrapper_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_viiiiiiiiiii = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_emit_delegate_invoke_internal_ilgen", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_viij = ["0"]; | |
var debug_table_vij = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Thread_VolatileWrite8", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_Threading_Volatile_Write8", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_vijii = ["0"]; | |
var debug_table_vijji = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_Lock", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_IO_MonoIO_Unlock", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]; | |
var debug_table_vji = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "_ves_icall_System_GC_RecordPressure", "0", "0", "0", "0"]; | |
function nullFunc_d(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: dd: " + debug_table_dd[x] + " di: " + debug_table_di[x] + " ddd: " + debug_table_ddd[x] + " did: " + debug_table_did[x] + " didd: " + debug_table_didd[x] + " id: " + debug_table_id[x] + " jd: " + debug_table_jd[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " vid: " + debug_table_vid[x] + " ff: " + debug_table_ff[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " jf: " + debug_table_jf[x] + " ji: " + debug_table_ji[x] + " jj: " + debug_table_jj[x] + " vi: " + debug_table_vi[x] + " fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " idiii: " + debug_table_idiii[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_dd(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'dd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " did: " + debug_table_did[x] + " di: " + debug_table_di[x] + " id: " + debug_table_id[x] + " jd: " + debug_table_jd[x] + " didd: " + debug_table_didd[x] + " vid: " + debug_table_vid[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " ff: " + debug_table_ff[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " jf: " + debug_table_jf[x] + " ji: " + debug_table_ji[x] + " jj: " + debug_table_jj[x] + " vi: " + debug_table_vi[x] + " fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " idiii: " + debug_table_idiii[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_ddd(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'ddd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: dd: " + debug_table_dd[x] + " d: " + debug_table_d[x] + " did: " + debug_table_did[x] + " di: " + debug_table_di[x] + " id: " + debug_table_id[x] + " jd: " + debug_table_jd[x] + " didd: " + debug_table_didd[x] + " vid: " + debug_table_vid[x] + " ff: " + debug_table_ff[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " jf: " + debug_table_jf[x] + " ji: " + debug_table_ji[x] + " jj: " + debug_table_jj[x] + " vi: " + debug_table_vi[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " idiii: " + debug_table_idiii[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_di(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'di'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: d: " + debug_table_d[x] + " did: " + debug_table_did[x] + " didd: " + debug_table_didd[x] + " i: " + debug_table_i[x] + " dd: " + debug_table_dd[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " id: " + debug_table_id[x] + " jd: " + debug_table_jd[x] + " ddd: " + debug_table_ddd[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " ffi: " + debug_table_ffi[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " ff: " + debug_table_ff[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " idiii: " + debug_table_idiii[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_did(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'did'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: di: " + debug_table_di[x] + " didd: " + debug_table_didd[x] + " d: " + debug_table_d[x] + " dd: " + debug_table_dd[x] + " id: " + debug_table_id[x] + " ddd: " + debug_table_ddd[x] + " vid: " + debug_table_vid[x] + " i: " + debug_table_i[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " jd: " + debug_table_jd[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " ffi: " + debug_table_ffi[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " idiii: " + debug_table_idiii[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " ff: " + debug_table_ff[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_didd(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'didd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: did: " + debug_table_did[x] + " di: " + debug_table_di[x] + " d: " + debug_table_d[x] + " dd: " + debug_table_dd[x] + " id: " + debug_table_id[x] + " ddd: " + debug_table_ddd[x] + " vid: " + debug_table_vid[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " jd: " + debug_table_jd[x] + " i: " + debug_table_i[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " ffi: " + debug_table_ffi[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " idiii: " + debug_table_idiii[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " ff: " + debug_table_ff[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " fff: " + debug_table_fff[x] + " j: " + debug_table_j[x] + " jjj: " + debug_table_jjj[x] + " v: " + debug_table_v[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_ff(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'ff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " fi: " + debug_table_fi[x] + " jf: " + debug_table_jf[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " vif: " + debug_table_vif[x] + " d: " + debug_table_d[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " dd: " + debug_table_dd[x] + " di: " + debug_table_di[x] + " id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " jd: " + debug_table_jd[x] + " ji: " + debug_table_ji[x] + " jj: " + debug_table_jj[x] + " vi: " + debug_table_vi[x] + " ddd: " + debug_table_ddd[x] + " did: " + debug_table_did[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " vid: " + debug_table_vid[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " viffff: " + debug_table_viffff[x] + " didd: " + debug_table_didd[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viiiii: " + debug_table_viiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_fff(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'fff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: ff: " + debug_table_ff[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " fi: " + debug_table_fi[x] + " jf: " + debug_table_jf[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " vif: " + debug_table_vif[x] + " viffff: " + debug_table_viffff[x] + " dd: " + debug_table_dd[x] + " di: " + debug_table_di[x] + " id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " jd: " + debug_table_jd[x] + " ji: " + debug_table_ji[x] + " jj: " + debug_table_jj[x] + " vi: " + debug_table_vi[x] + " d: " + debug_table_d[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " ddd: " + debug_table_ddd[x] + " did: " + debug_table_did[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " vid: " + debug_table_vid[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " didd: " + debug_table_didd[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_ffi(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'ffi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: ff: " + debug_table_ff[x] + " fi: " + debug_table_fi[x] + " fff: " + debug_table_fff[x] + " fif: " + debug_table_fif[x] + " i: " + debug_table_i[x] + " jf: " + debug_table_jf[x] + " di: " + debug_table_di[x] + " id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " iii: " + debug_table_iii[x] + " jii: " + debug_table_jii[x] + " jji: " + debug_table_jji[x] + " vii: " + debug_table_vii[x] + " vji: " + debug_table_vji[x] + " did: " + debug_table_did[x] + " iij: " + debug_table_iij[x] + " jij: " + debug_table_jij[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " iiii: " + debug_table_iiii[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " didd: " + debug_table_didd[x] + " iiji: " + debug_table_iiji[x] + " jijj: " + debug_table_jijj[x] + " dd: " + debug_table_dd[x] + " jd: " + debug_table_jd[x] + " jj: " + debug_table_jj[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " ddd: " + debug_table_ddd[x] + " jjj: " + debug_table_jjj[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " viffff: " + debug_table_viffff[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " iijjji: " + debug_table_iijjji[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_fi(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'fi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: fif: " + debug_table_fif[x] + " fiff: " + debug_table_fiff[x] + " i: " + debug_table_i[x] + " ffi: " + debug_table_ffi[x] + " di: " + debug_table_di[x] + " ff: " + debug_table_ff[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " id: " + debug_table_id[x] + " jf: " + debug_table_jf[x] + " did: " + debug_table_did[x] + " fff: " + debug_table_fff[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " dd: " + debug_table_dd[x] + " jd: " + debug_table_jd[x] + " jj: " + debug_table_jj[x] + " didd: " + debug_table_didd[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " ddd: " + debug_table_ddd[x] + " jjj: " + debug_table_jjj[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " idiii: " + debug_table_idiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_fif(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'fif'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: fi: " + debug_table_fi[x] + " fiff: " + debug_table_fiff[x] + " ff: " + debug_table_ff[x] + " fff: " + debug_table_fff[x] + " vif: " + debug_table_vif[x] + " ffi: " + debug_table_ffi[x] + " i: " + debug_table_i[x] + " di: " + debug_table_di[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " id: " + debug_table_id[x] + " jf: " + debug_table_jf[x] + " viff: " + debug_table_viff[x] + " did: " + debug_table_did[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " vid: " + debug_table_vid[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " didd: " + debug_table_didd[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " dd: " + debug_table_dd[x] + " jd: " + debug_table_jd[x] + " jj: " + debug_table_jj[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " ddd: " + debug_table_ddd[x] + " jjj: " + debug_table_jjj[x] + " viffff: " + debug_table_viffff[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " idiii: " + debug_table_idiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_fiff(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'fiff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: fif: " + debug_table_fif[x] + " fi: " + debug_table_fi[x] + " ff: " + debug_table_ff[x] + " viff: " + debug_table_viff[x] + " fff: " + debug_table_fff[x] + " vif: " + debug_table_vif[x] + " ffi: " + debug_table_ffi[x] + " di: " + debug_table_di[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " id: " + debug_table_id[x] + " jf: " + debug_table_jf[x] + " i: " + debug_table_i[x] + " did: " + debug_table_did[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " vid: " + debug_table_vid[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " viffff: " + debug_table_viffff[x] + " didd: " + debug_table_didd[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " dd: " + debug_table_dd[x] + " jd: " + debug_table_jd[x] + " jj: " + debug_table_jj[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " j: " + debug_table_j[x] + " jjj: " + debug_table_jjj[x] + " v: " + debug_table_v[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " idiii: " + debug_table_idiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viiiii: " + debug_table_viiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_i(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_id(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'id'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: i: " + debug_table_i[x] + " idiii: " + debug_table_idiii[x] + " d: " + debug_table_d[x] + " did: " + debug_table_did[x] + " vid: " + debug_table_vid[x] + " dd: " + debug_table_dd[x] + " ii: " + debug_table_ii[x] + " jd: " + debug_table_jd[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " didd: " + debug_table_didd[x] + " ddd: " + debug_table_ddd[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " ff: " + debug_table_ff[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " fiff: " + debug_table_fiff[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_idiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'idiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: id: " + debug_table_id[x] + " i: " + debug_table_i[x] + " iii: " + debug_table_iii[x] + " ii: " + debug_table_ii[x] + " di: " + debug_table_di[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viii: " + debug_table_viii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " did: " + debug_table_did[x] + " vid: " + debug_table_vid[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " dd: " + debug_table_dd[x] + " jd: " + debug_table_jd[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " didd: " + debug_table_didd[x] + " ddd: " + debug_table_ddd[x] + " ffi: " + debug_table_ffi[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " d: " + debug_table_d[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " iijjji: " + debug_table_iijjji[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " iijiiii: " + debug_table_iijiiii[x] + " ff: " + debug_table_ff[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viffff: " + debug_table_viffff[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: i: " + debug_table_i[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " iiiii: " + debug_table_iiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " ffi: " + debug_table_ffi[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " idiii: " + debug_table_idiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " viiiii: " + debug_table_viiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiiii: " + debug_table_viiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: ii: " + debug_table_ii[x] + " iiii: " + debug_table_iiii[x] + " i: " + debug_table_i[x] + " iiiii: " + debug_table_iiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viii: " + debug_table_viii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " idiii: " + debug_table_idiii[x] + " viiii: " + debug_table_viiii[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iijjji: " + debug_table_iijjji[x] + " viiiii: " + debug_table_viiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " viffff: " + debug_table_viffff[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iii: " + debug_table_iii[x] + " ii: " + debug_table_ii[x] + " iiiii: " + debug_table_iiiii[x] + " i: " + debug_table_i[x] + " iiiiii: " + debug_table_iiiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viii: " + debug_table_viii[x] + " viiii: " + debug_table_viiii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " idiii: " + debug_table_idiii[x] + " viiiii: " + debug_table_viiiii[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iijjji: " + debug_table_iijjji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " j: " + debug_table_j[x] + " jjj: " + debug_table_jjj[x] + " v: " + debug_table_v[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iiii: " + debug_table_iiii[x] + " iii: " + debug_table_iii[x] + " ii: " + debug_table_ii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " i: " + debug_table_i[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiii: " + debug_table_viiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viii: " + debug_table_viii[x] + " viiiii: " + debug_table_viiiii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " idiii: " + debug_table_idiii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " viiiiii: " + debug_table_viiiiii[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iijjji: " + debug_table_iijjji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " iijiiii: " + debug_table_iijiiii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iiii: " + debug_table_iiii[x] + " iiiii: " + debug_table_iiiii[x] + " iii: " + debug_table_iii[x] + " ii: " + debug_table_ii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " i: " + debug_table_i[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiii: " + debug_table_viiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viii: " + debug_table_viii[x] + " viiiii: " + debug_table_viiiii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " viiiiii: " + debug_table_viiiiii[x] + " idiii: " + debug_table_idiii[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iijiiii: " + debug_table_iijiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " viffff: " + debug_table_viffff[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iiiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iiii: " + debug_table_iiii[x] + " iiiii: " + debug_table_iiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iii: " + debug_table_iii[x] + " ii: " + debug_table_ii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " i: " + debug_table_i[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiii: " + debug_table_viiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viii: " + debug_table_viii[x] + " viiiii: " + debug_table_viiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " idiii: " + debug_table_idiii[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " iijjji: " + debug_table_iijjji[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viffff: " + debug_table_viffff[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iiiiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iiii: " + debug_table_iiii[x] + " iiiii: " + debug_table_iiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iii: " + debug_table_iii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " ii: " + debug_table_ii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " i: " + debug_table_i[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiii: " + debug_table_viiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viii: " + debug_table_viii[x] + " viiiii: " + debug_table_viiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " idiii: " + debug_table_idiii[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " iijjji: " + debug_table_iijjji[x] + " vijji: " + debug_table_vijji[x] + " iijiiii: " + debug_table_iijiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " dd: " + debug_table_dd[x] + " ddd: " + debug_table_ddd[x] + " ff: " + debug_table_ff[x] + " fff: " + debug_table_fff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " jjj: " + debug_table_jjj[x] + " viffff: " + debug_table_viffff[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iiiiiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iiii: " + debug_table_iiii[x] + " iiiii: " + debug_table_iiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iii: " + debug_table_iii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " ii: " + debug_table_ii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " i: " + debug_table_i[x] + " viiii: " + debug_table_viiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viii: " + debug_table_viii[x] + " viiiii: " + debug_table_viiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " idiii: " + debug_table_idiii[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " vijji: " + debug_table_vijji[x] + " iijiiii: " + debug_table_iijiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " viffff: " + debug_table_viffff[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " "); abort(x) } | |
function nullFunc_iiiiiiiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iiiiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iiiii: " + debug_table_iiiii[x] + " iiii: " + debug_table_iiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iii: " + debug_table_iii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " ii: " + debug_table_ii[x] + " i: " + debug_table_i[x] + " viiii: " + debug_table_viiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viii: " + debug_table_viii[x] + " viiiii: " + debug_table_viiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " idiii: " + debug_table_idiii[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " iijiiii: " + debug_table_iijiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " viffff: " + debug_table_viffff[x] + " vifffffi: " + debug_table_vifffffi[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " v: " + debug_table_v[x] + " "); abort(x) } | |
function nullFunc_iij(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iij'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: ii: " + debug_table_ii[x] + " iiji: " + debug_table_iiji[x] + " i: " + debug_table_i[x] + " iijjji: " + debug_table_iijjji[x] + " iijiiii: " + debug_table_iijiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iii: " + debug_table_iii[x] + " jij: " + debug_table_jij[x] + " vij: " + debug_table_vij[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " j: " + debug_table_j[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ji: " + debug_table_ji[x] + " vi: " + debug_table_vi[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " iiii: " + debug_table_iiii[x] + " jijj: " + debug_table_jijj[x] + " jiii: " + debug_table_jiii[x] + " viii: " + debug_table_viii[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " jjj: " + debug_table_jjj[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " ffi: " + debug_table_ffi[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " idiii: " + debug_table_idiii[x] + " viiii: " + debug_table_viiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " v: " + debug_table_v[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iiji(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iiji'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iij: " + debug_table_iij[x] + " ii: " + debug_table_ii[x] + " i: " + debug_table_i[x] + " iijiiii: " + debug_table_iijiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iii: " + debug_table_iii[x] + " ji: " + debug_table_ji[x] + " iiii: " + debug_table_iiii[x] + " viii: " + debug_table_viii[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " jij: " + debug_table_jij[x] + " vij: " + debug_table_vij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " vi: " + debug_table_vi[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " jiii: " + debug_table_jiii[x] + " jijj: " + debug_table_jijj[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " j: " + debug_table_j[x] + " idiii: " + debug_table_idiii[x] + " viiii: " + debug_table_viiii[x] + " vijji: " + debug_table_vijji[x] + " iijjji: " + debug_table_iijjji[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " jjj: " + debug_table_jjj[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " ffi: " + debug_table_ffi[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " v: " + debug_table_v[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " viffff: " + debug_table_viffff[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iijiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iijiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iiji: " + debug_table_iiji[x] + " iij: " + debug_table_iij[x] + " ii: " + debug_table_ii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " i: " + debug_table_i[x] + " iiii: " + debug_table_iiii[x] + " jiii: " + debug_table_jiii[x] + " iii: " + debug_table_iii[x] + " jii: " + debug_table_jii[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " idiii: " + debug_table_idiii[x] + " viiii: " + debug_table_viiii[x] + " ji: " + debug_table_ji[x] + " viii: " + debug_table_viii[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " jij: " + debug_table_jij[x] + " vij: " + debug_table_vij[x] + " vii: " + debug_table_vii[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " iiiiii: " + debug_table_iiiiii[x] + " vijji: " + debug_table_vijji[x] + " iijjji: " + debug_table_iijjji[x] + " viiiii: " + debug_table_viiiii[x] + " jijj: " + debug_table_jijj[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " vi: " + debug_table_vi[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " jjj: " + debug_table_jjj[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " ffi: " + debug_table_ffi[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " j: " + debug_table_j[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viffff: " + debug_table_viffff[x] + " d: " + debug_table_d[x] + " v: " + debug_table_v[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iijiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iijiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iiji: " + debug_table_iiji[x] + " iij: " + debug_table_iij[x] + " iijiiii: " + debug_table_iijiiii[x] + " ii: " + debug_table_ii[x] + " i: " + debug_table_i[x] + " iiii: " + debug_table_iiii[x] + " iiiii: " + debug_table_iiiii[x] + " jiii: " + debug_table_jiii[x] + " iii: " + debug_table_iii[x] + " jii: " + debug_table_jii[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " idiii: " + debug_table_idiii[x] + " viiii: " + debug_table_viiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " viii: " + debug_table_viii[x] + " viiiii: " + debug_table_viiiii[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " ji: " + debug_table_ji[x] + " jij: " + debug_table_jij[x] + " vij: " + debug_table_vij[x] + " vii: " + debug_table_vii[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " vijji: " + debug_table_vijji[x] + " iijjji: " + debug_table_iijjji[x] + " jijj: " + debug_table_jijj[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " vi: " + debug_table_vi[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " jjj: " + debug_table_jjj[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " ffi: " + debug_table_ffi[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " dd: " + debug_table_dd[x] + " ddd: " + debug_table_ddd[x] + " ff: " + debug_table_ff[x] + " fff: " + debug_table_fff[x] + " j: " + debug_table_j[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viffff: " + debug_table_viffff[x] + " d: " + debug_table_d[x] + " v: " + debug_table_v[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_iijjji(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'iijjji'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: iij: " + debug_table_iij[x] + " ii: " + debug_table_ii[x] + " i: " + debug_table_i[x] + " iiji: " + debug_table_iiji[x] + " iii: " + debug_table_iii[x] + " jjj: " + debug_table_jjj[x] + " jji: " + debug_table_jji[x] + " ji: " + debug_table_ji[x] + " vijji: " + debug_table_vijji[x] + " jj: " + debug_table_jj[x] + " jijj: " + debug_table_jijj[x] + " iiii: " + debug_table_iiii[x] + " jiij: " + debug_table_jiij[x] + " viij: " + debug_table_viij[x] + " viii: " + debug_table_viii[x] + " jij: " + debug_table_jij[x] + " vij: " + debug_table_vij[x] + " jii: " + debug_table_jii[x] + " vii: " + debug_table_vii[x] + " vji: " + debug_table_vji[x] + " iiiii: " + debug_table_iiiii[x] + " vijii: " + debug_table_vijii[x] + " idiii: " + debug_table_idiii[x] + " viiii: " + debug_table_viiii[x] + " jiii: " + debug_table_jiii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " vi: " + debug_table_vi[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " ffi: " + debug_table_ffi[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " jijii: " + debug_table_jijii[x] + " j: " + debug_table_j[x] + " iijiiii: " + debug_table_iijiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " d: " + debug_table_d[x] + " v: " + debug_table_v[x] + " viffff: " + debug_table_viffff[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_j(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'j'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " ji: " + debug_table_ji[x] + " jj: " + debug_table_jj[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " jijii: " + debug_table_jijii[x] + " d: " + debug_table_d[x] + " i: " + debug_table_i[x] + " v: " + debug_table_v[x] + " iij: " + debug_table_iij[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " dd: " + debug_table_dd[x] + " di: " + debug_table_di[x] + " ff: " + debug_table_ff[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " vi: " + debug_table_vi[x] + " iiji: " + debug_table_iiji[x] + " viij: " + debug_table_viij[x] + " ddd: " + debug_table_ddd[x] + " did: " + debug_table_did[x] + " fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " iijjji: " + debug_table_iijjji[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jd(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jd'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: j: " + debug_table_j[x] + " d: " + debug_table_d[x] + " dd: " + debug_table_dd[x] + " id: " + debug_table_id[x] + " jf: " + debug_table_jf[x] + " ji: " + debug_table_ji[x] + " jj: " + debug_table_jj[x] + " di: " + debug_table_di[x] + " ddd: " + debug_table_ddd[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " did: " + debug_table_did[x] + " iij: " + debug_table_iij[x] + " vid: " + debug_table_vid[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " i: " + debug_table_i[x] + " v: " + debug_table_v[x] + " ff: " + debug_table_ff[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " vi: " + debug_table_vi[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " didd: " + debug_table_didd[x] + " iiji: " + debug_table_iiji[x] + " viij: " + debug_table_viij[x] + " fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " idiii: " + debug_table_idiii[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " iijjji: " + debug_table_iijjji[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jf(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jf'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: j: " + debug_table_j[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " ji: " + debug_table_ji[x] + " jj: " + debug_table_jj[x] + " fi: " + debug_table_fi[x] + " fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " fif: " + debug_table_fif[x] + " iij: " + debug_table_iij[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " d: " + debug_table_d[x] + " i: " + debug_table_i[x] + " v: " + debug_table_v[x] + " dd: " + debug_table_dd[x] + " di: " + debug_table_di[x] + " id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " vi: " + debug_table_vi[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " fiff: " + debug_table_fiff[x] + " iiji: " + debug_table_iiji[x] + " viff: " + debug_table_viff[x] + " viij: " + debug_table_viij[x] + " ddd: " + debug_table_ddd[x] + " did: " + debug_table_did[x] + " iii: " + debug_table_iii[x] + " vid: " + debug_table_vid[x] + " vii: " + debug_table_vii[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " didd: " + debug_table_didd[x] + " iiii: " + debug_table_iiii[x] + " viii: " + debug_table_viii[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_ji(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'ji'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: j: " + debug_table_j[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " jijii: " + debug_table_jijii[x] + " i: " + debug_table_i[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " vi: " + debug_table_vi[x] + " id: " + debug_table_id[x] + " iiji: " + debug_table_iiji[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jjj: " + debug_table_jjj[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " ffi: " + debug_table_ffi[x] + " d: " + debug_table_d[x] + " v: " + debug_table_v[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iijjji: " + debug_table_iijjji[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " idiii: " + debug_table_idiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: ji: " + debug_table_ji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " j: " + debug_table_j[x] + " ii: " + debug_table_ii[x] + " iii: " + debug_table_iii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vii: " + debug_table_vii[x] + " iij: " + debug_table_iij[x] + " vji: " + debug_table_vji[x] + " i: " + debug_table_i[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " vi: " + debug_table_vi[x] + " id: " + debug_table_id[x] + " iiii: " + debug_table_iiii[x] + " jijj: " + debug_table_jijj[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " jijii: " + debug_table_jijii[x] + " iiji: " + debug_table_iiji[x] + " vijii: " + debug_table_vijii[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jjj: " + debug_table_jjj[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " idiii: " + debug_table_idiii[x] + " vijji: " + debug_table_vijji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " v: " + debug_table_v[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " iijjji: " + debug_table_iijjji[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " viffff: " + debug_table_viffff[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: jii: " + debug_table_jii[x] + " ji: " + debug_table_ji[x] + " j: " + debug_table_j[x] + " iii: " + debug_table_iii[x] + " ii: " + debug_table_ii[x] + " iiii: " + debug_table_iiii[x] + " jiij: " + debug_table_jiij[x] + " viii: " + debug_table_viii[x] + " iiji: " + debug_table_iiji[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " vii: " + debug_table_vii[x] + " iij: " + debug_table_iij[x] + " vji: " + debug_table_vji[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " vi: " + debug_table_vi[x] + " id: " + debug_table_id[x] + " jijj: " + debug_table_jijj[x] + " viij: " + debug_table_viij[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " i: " + debug_table_i[x] + " idiii: " + debug_table_idiii[x] + " vijii: " + debug_table_vijii[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jjj: " + debug_table_jjj[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vijji: " + debug_table_vijji[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " iijjji: " + debug_table_iijjji[x] + " iijiiii: " + debug_table_iijiiii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " v: " + debug_table_v[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viffff: " + debug_table_viffff[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jiij(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jiij'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: jii: " + debug_table_jii[x] + " ji: " + debug_table_ji[x] + " j: " + debug_table_j[x] + " jij: " + debug_table_jij[x] + " iij: " + debug_table_iij[x] + " ii: " + debug_table_ii[x] + " jj: " + debug_table_jj[x] + " jiii: " + debug_table_jiii[x] + " jijj: " + debug_table_jijj[x] + " viij: " + debug_table_viij[x] + " iiji: " + debug_table_iiji[x] + " iii: " + debug_table_iii[x] + " jji: " + debug_table_jji[x] + " vii: " + debug_table_vii[x] + " jjj: " + debug_table_jjj[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " vi: " + debug_table_vi[x] + " id: " + debug_table_id[x] + " iiii: " + debug_table_iiii[x] + " viii: " + debug_table_viii[x] + " i: " + debug_table_i[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " vijji: " + debug_table_vijji[x] + " idiii: " + debug_table_idiii[x] + " iijjji: " + debug_table_iijjji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " v: " + debug_table_v[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viffff: " + debug_table_viffff[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jij(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jij'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: ji: " + debug_table_ji[x] + " jijj: " + debug_table_jijj[x] + " j: " + debug_table_j[x] + " jijii: " + debug_table_jijii[x] + " jj: " + debug_table_jj[x] + " jiij: " + debug_table_jiij[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jjj: " + debug_table_jjj[x] + " vij: " + debug_table_vij[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " i: " + debug_table_i[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " vi: " + debug_table_vi[x] + " id: " + debug_table_id[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " ffi: " + debug_table_ffi[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " v: " + debug_table_v[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iijjji: " + debug_table_iijjji[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " idiii: " + debug_table_idiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jijii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jijii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: jij: " + debug_table_jij[x] + " ji: " + debug_table_ji[x] + " j: " + debug_table_j[x] + " jii: " + debug_table_jii[x] + " ii: " + debug_table_ii[x] + " jj: " + debug_table_jj[x] + " vijii: " + debug_table_vijii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jijj: " + debug_table_jijj[x] + " jiij: " + debug_table_jiij[x] + " iij: " + debug_table_iij[x] + " jjj: " + debug_table_jjj[x] + " vij: " + debug_table_vij[x] + " iii: " + debug_table_iii[x] + " jji: " + debug_table_jji[x] + " vii: " + debug_table_vii[x] + " vji: " + debug_table_vji[x] + " vijji: " + debug_table_vijji[x] + " idiii: " + debug_table_idiii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " vi: " + debug_table_vi[x] + " iiii: " + debug_table_iiii[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " id: " + debug_table_id[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " i: " + debug_table_i[x] + " ffi: " + debug_table_ffi[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " iijiiii: " + debug_table_iijiiii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " iijjji: " + debug_table_iijjji[x] + " d: " + debug_table_d[x] + " v: " + debug_table_v[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viffff: " + debug_table_viffff[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jijj(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jijj'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: jij: " + debug_table_jij[x] + " ji: " + debug_table_ji[x] + " j: " + debug_table_j[x] + " jj: " + debug_table_jj[x] + " jiij: " + debug_table_jiij[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jjj: " + debug_table_jjj[x] + " vij: " + debug_table_vij[x] + " jji: " + debug_table_jji[x] + " vji: " + debug_table_vji[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " vi: " + debug_table_vi[x] + " id: " + debug_table_id[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " jijii: " + debug_table_jijii[x] + " vijji: " + debug_table_vijji[x] + " i: " + debug_table_i[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " ffi: " + debug_table_ffi[x] + " vijii: " + debug_table_vijii[x] + " iijjji: " + debug_table_iijjji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " v: " + debug_table_v[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " idiii: " + debug_table_idiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jj(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jj'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: j: " + debug_table_j[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " jij: " + debug_table_jij[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " ji: " + debug_table_ji[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " jii: " + debug_table_jii[x] + " vji: " + debug_table_vji[x] + " iij: " + debug_table_iij[x] + " vij: " + debug_table_vij[x] + " d: " + debug_table_d[x] + " i: " + debug_table_i[x] + " v: " + debug_table_v[x] + " dd: " + debug_table_dd[x] + " di: " + debug_table_di[x] + " ff: " + debug_table_ff[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " vi: " + debug_table_vi[x] + " jijii: " + debug_table_jijii[x] + " vijji: " + debug_table_vijji[x] + " jiii: " + debug_table_jiii[x] + " iiji: " + debug_table_iiji[x] + " viij: " + debug_table_viij[x] + " ddd: " + debug_table_ddd[x] + " did: " + debug_table_did[x] + " fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " iijjji: " + debug_table_iijjji[x] + " vijii: " + debug_table_vijii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jji(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jji'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: jj: " + debug_table_jj[x] + " j: " + debug_table_j[x] + " ji: " + debug_table_ji[x] + " jii: " + debug_table_jii[x] + " jjj: " + debug_table_jjj[x] + " vji: " + debug_table_vji[x] + " jij: " + debug_table_jij[x] + " i: " + debug_table_i[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " vi: " + debug_table_vi[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " iiji: " + debug_table_iiji[x] + " vijji: " + debug_table_vijji[x] + " ffi: " + debug_table_ffi[x] + " iii: " + debug_table_iii[x] + " vii: " + debug_table_vii[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " iij: " + debug_table_iij[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " jijii: " + debug_table_jijii[x] + " vijii: " + debug_table_vijii[x] + " iiii: " + debug_table_iiii[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " iijjji: " + debug_table_iijjji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " viff: " + debug_table_viff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " v: " + debug_table_v[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " viiiii: " + debug_table_viiiii[x] + " viffff: " + debug_table_viffff[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_jjj(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'jjj'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: jj: " + debug_table_jj[x] + " j: " + debug_table_j[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " ji: " + debug_table_ji[x] + " jijj: " + debug_table_jijj[x] + " jiij: " + debug_table_jiij[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " jijii: " + debug_table_jijii[x] + " vijji: " + debug_table_vijji[x] + " iijjji: " + debug_table_iijjji[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " dd: " + debug_table_dd[x] + " di: " + debug_table_di[x] + " ff: " + debug_table_ff[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " vi: " + debug_table_vi[x] + " d: " + debug_table_d[x] + " i: " + debug_table_i[x] + " v: " + debug_table_v[x] + " ddd: " + debug_table_ddd[x] + " did: " + debug_table_did[x] + " fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vijii: " + debug_table_vijii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " viiii: " + debug_table_viiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_v(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: vi: " + debug_table_vi[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " d: " + debug_table_d[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " dd: " + debug_table_dd[x] + " di: " + debug_table_di[x] + " ff: " + debug_table_ff[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " ji: " + debug_table_ji[x] + " jj: " + debug_table_jj[x] + " ddd: " + debug_table_ddd[x] + " did: " + debug_table_did[x] + " fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: v: " + debug_table_v[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " i: " + debug_table_i[x] + " vji: " + debug_table_vji[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " ffi: " + debug_table_ffi[x] + " jji: " + debug_table_jji[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " idiii: " + debug_table_idiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: vi: " + debug_table_vi[x] + " v: " + debug_table_v[x] + " id: " + debug_table_id[x] + " did: " + debug_table_did[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " d: " + debug_table_d[x] + " i: " + debug_table_i[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " dd: " + debug_table_dd[x] + " jd: " + debug_table_jd[x] + " didd: " + debug_table_didd[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " ddd: " + debug_table_ddd[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " ffi: " + debug_table_ffi[x] + " jji: " + debug_table_jji[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " idiii: " + debug_table_idiii[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " ff: " + debug_table_ff[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " j: " + debug_table_j[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_vif(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'vif'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: vi: " + debug_table_vi[x] + " viff: " + debug_table_viff[x] + " v: " + debug_table_v[x] + " viffff: " + debug_table_viffff[x] + " vifffffi: " + debug_table_vifffffi[x] + " fif: " + debug_table_fif[x] + " vid: " + debug_table_vid[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " i: " + debug_table_i[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " ff: " + debug_table_ff[x] + " id: " + debug_table_id[x] + " jf: " + debug_table_jf[x] + " fiff: " + debug_table_fiff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " did: " + debug_table_did[x] + " fff: " + debug_table_fff[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " ffi: " + debug_table_ffi[x] + " jji: " + debug_table_jji[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " didd: " + debug_table_didd[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " dd: " + debug_table_dd[x] + " jd: " + debug_table_jd[x] + " jj: " + debug_table_jj[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " ddd: " + debug_table_ddd[x] + " jjj: " + debug_table_jjj[x] + " viiiii: " + debug_table_viiiii[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " idiii: " + debug_table_idiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_viff(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: vif: " + debug_table_vif[x] + " vi: " + debug_table_vi[x] + " v: " + debug_table_v[x] + " viffff: " + debug_table_viffff[x] + " vifffffi: " + debug_table_vifffffi[x] + " ff: " + debug_table_ff[x] + " fiff: " + debug_table_fiff[x] + " fif: " + debug_table_fif[x] + " vid: " + debug_table_vid[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " fff: " + debug_table_fff[x] + " vji: " + debug_table_vji[x] + " ffi: " + debug_table_ffi[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " jf: " + debug_table_jf[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " i: " + debug_table_i[x] + " did: " + debug_table_did[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " didd: " + debug_table_didd[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " dd: " + debug_table_dd[x] + " jd: " + debug_table_jd[x] + " jj: " + debug_table_jj[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " j: " + debug_table_j[x] + " jjj: " + debug_table_jjj[x] + " viiiii: " + debug_table_viiiii[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " idiii: " + debug_table_idiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_viffff(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viffff'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: viff: " + debug_table_viff[x] + " vif: " + debug_table_vif[x] + " vi: " + debug_table_vi[x] + " vifffffi: " + debug_table_vifffffi[x] + " v: " + debug_table_v[x] + " fff: " + debug_table_fff[x] + " ff: " + debug_table_ff[x] + " fiff: " + debug_table_fiff[x] + " fif: " + debug_table_fif[x] + " vid: " + debug_table_vid[x] + " vii: " + debug_table_vii[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " ffi: " + debug_table_ffi[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " jf: " + debug_table_jf[x] + " did: " + debug_table_did[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " i: " + debug_table_i[x] + " didd: " + debug_table_didd[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " jijj: " + debug_table_jijj[x] + " dd: " + debug_table_dd[x] + " jd: " + debug_table_jd[x] + " jj: " + debug_table_jj[x] + " viiiii: " + debug_table_viiiii[x] + " ddd: " + debug_table_ddd[x] + " jjj: " + debug_table_jjj[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " idiii: " + debug_table_idiii[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_vifffffi(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'vifffffi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: viff: " + debug_table_viff[x] + " viffff: " + debug_table_viffff[x] + " vif: " + debug_table_vif[x] + " vi: " + debug_table_vi[x] + " v: " + debug_table_v[x] + " vii: " + debug_table_vii[x] + " fff: " + debug_table_fff[x] + " ffi: " + debug_table_ffi[x] + " fiff: " + debug_table_fiff[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " ff: " + debug_table_ff[x] + " fif: " + debug_table_fif[x] + " vid: " + debug_table_vid[x] + " vij: " + debug_table_vij[x] + " iii: " + debug_table_iii[x] + " iij: " + debug_table_iij[x] + " jii: " + debug_table_jii[x] + " vji: " + debug_table_vji[x] + " viiii: " + debug_table_viiii[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiii: " + debug_table_iiii[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " di: " + debug_table_di[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " jf: " + debug_table_jf[x] + " did: " + debug_table_did[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " viiiii: " + debug_table_viiiii[x] + " iiiii: " + debug_table_iiiii[x] + " jijii: " + debug_table_jijii[x] + " idiii: " + debug_table_idiii[x] + " didd: " + debug_table_didd[x] + " jijj: " + debug_table_jijj[x] + " dd: " + debug_table_dd[x] + " ddd: " + debug_table_ddd[x] + " jd: " + debug_table_jd[x] + " jj: " + debug_table_jj[x] + " jjj: " + debug_table_jjj[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viiiiii: " + debug_table_viiiiii[x] + " i: " + debug_table_i[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: vi: " + debug_table_vi[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " v: " + debug_table_v[x] + " viiii: " + debug_table_viiii[x] + " viiiii: " + debug_table_viiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " ii: " + debug_table_ii[x] + " iii: " + debug_table_iii[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " iij: " + debug_table_iij[x] + " i: " + debug_table_i[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " iiii: " + debug_table_iiii[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiji: " + debug_table_iiji[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " iiiii: " + debug_table_iiiii[x] + " idiii: " + debug_table_idiii[x] + " jijii: " + debug_table_jijii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " iiiiii: " + debug_table_iiiiii[x] + " viffff: " + debug_table_viffff[x] + " iijjji: " + debug_table_iijjji[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: vii: " + debug_table_vii[x] + " vi: " + debug_table_vi[x] + " viiii: " + debug_table_viiii[x] + " v: " + debug_table_v[x] + " viiiii: " + debug_table_viiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " iii: " + debug_table_iii[x] + " ii: " + debug_table_ii[x] + " iiii: " + debug_table_iiii[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " iiji: " + debug_table_iiji[x] + " vijii: " + debug_table_vijii[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " iij: " + debug_table_iij[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " iiiii: " + debug_table_iiiii[x] + " i: " + debug_table_i[x] + " idiii: " + debug_table_idiii[x] + " vijji: " + debug_table_vijji[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jijii: " + debug_table_jijii[x] + " iiiiii: " + debug_table_iiiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " iijjji: " + debug_table_iijjji[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " j: " + debug_table_j[x] + " jjj: " + debug_table_jjj[x] + " viffff: " + debug_table_viffff[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: viii: " + debug_table_viii[x] + " vii: " + debug_table_vii[x] + " vi: " + debug_table_vi[x] + " viiiii: " + debug_table_viiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " v: " + debug_table_v[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " iiii: " + debug_table_iiii[x] + " iii: " + debug_table_iii[x] + " ii: " + debug_table_ii[x] + " iiiii: " + debug_table_iiiii[x] + " vijii: " + debug_table_vijii[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " iiji: " + debug_table_iiji[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " iij: " + debug_table_iij[x] + " idiii: " + debug_table_idiii[x] + " vijji: " + debug_table_vijji[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " iiiiii: " + debug_table_iiiiii[x] + " id: " + debug_table_id[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " i: " + debug_table_i[x] + " jijii: " + debug_table_jijii[x] + " iijjji: " + debug_table_iijjji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " viffff: " + debug_table_viffff[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: viii: " + debug_table_viii[x] + " viiii: " + debug_table_viiii[x] + " vii: " + debug_table_vii[x] + " vi: " + debug_table_vi[x] + " viiiiii: " + debug_table_viiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " v: " + debug_table_v[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " iiii: " + debug_table_iiii[x] + " iiiii: " + debug_table_iiiii[x] + " iii: " + debug_table_iii[x] + " ii: " + debug_table_ii[x] + " vijii: " + debug_table_vijii[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " iiiiii: " + debug_table_iiiiii[x] + " iiji: " + debug_table_iiji[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " iij: " + debug_table_iij[x] + " idiii: " + debug_table_idiii[x] + " vijji: " + debug_table_vijji[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " id: " + debug_table_id[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jijii: " + debug_table_jijii[x] + " iijjji: " + debug_table_iijjji[x] + " i: " + debug_table_i[x] + " iijiiii: " + debug_table_iijiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " viffff: " + debug_table_viffff[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: viii: " + debug_table_viii[x] + " viiii: " + debug_table_viiii[x] + " viiiii: " + debug_table_viiiii[x] + " vii: " + debug_table_vii[x] + " vi: " + debug_table_vi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " v: " + debug_table_v[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " iiii: " + debug_table_iiii[x] + " iiiii: " + debug_table_iiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iii: " + debug_table_iii[x] + " vijii: " + debug_table_vijii[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " ii: " + debug_table_ii[x] + " iiji: " + debug_table_iiji[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " iij: " + debug_table_iij[x] + " idiii: " + debug_table_idiii[x] + " vijji: " + debug_table_vijji[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jijii: " + debug_table_jijii[x] + " iijjji: " + debug_table_iijjji[x] + " iijiiii: " + debug_table_iijiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " i: " + debug_table_i[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " viffff: " + debug_table_viffff[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: viii: " + debug_table_viii[x] + " viiii: " + debug_table_viiii[x] + " viiiii: " + debug_table_viiiii[x] + " vii: " + debug_table_vii[x] + " viiiiii: " + debug_table_viiiiii[x] + " vi: " + debug_table_vi[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " v: " + debug_table_v[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " iiii: " + debug_table_iiii[x] + " iiiii: " + debug_table_iiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iii: " + debug_table_iii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " vijii: " + debug_table_vijii[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " iiji: " + debug_table_iiji[x] + " ii: " + debug_table_ii[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " iij: " + debug_table_iij[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " idiii: " + debug_table_idiii[x] + " vijji: " + debug_table_vijji[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jijii: " + debug_table_jijii[x] + " iijjji: " + debug_table_iijjji[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " dd: " + debug_table_dd[x] + " ddd: " + debug_table_ddd[x] + " ff: " + debug_table_ff[x] + " fff: " + debug_table_fff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " jjj: " + debug_table_jjj[x] + " viffff: " + debug_table_viffff[x] + " i: " + debug_table_i[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " "); abort(x) } | |
function nullFunc_viiiiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: viii: " + debug_table_viii[x] + " viiii: " + debug_table_viiii[x] + " viiiii: " + debug_table_viiiii[x] + " vii: " + debug_table_vii[x] + " viiiiii: " + debug_table_viiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vi: " + debug_table_vi[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " v: " + debug_table_v[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " iiiii: " + debug_table_iiiii[x] + " iiii: " + debug_table_iiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iii: " + debug_table_iii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " vijii: " + debug_table_vijii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " iiji: " + debug_table_iiji[x] + " ii: " + debug_table_ii[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " iij: " + debug_table_iij[x] + " idiii: " + debug_table_idiii[x] + " vijji: " + debug_table_vijji[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " id: " + debug_table_id[x] + " jijii: " + debug_table_jijii[x] + " iijjji: " + debug_table_iijjji[x] + " iijiiii: " + debug_table_iijiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " viffff: " + debug_table_viffff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " i: " + debug_table_i[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " "); abort(x) } | |
function nullFunc_viiiiiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: viiii: " + debug_table_viiii[x] + " viii: " + debug_table_viii[x] + " viiiii: " + debug_table_viiiii[x] + " vii: " + debug_table_vii[x] + " viiiiii: " + debug_table_viiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " vi: " + debug_table_vi[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " v: " + debug_table_v[x] + " iiiii: " + debug_table_iiiii[x] + " iiii: " + debug_table_iiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iii: " + debug_table_iii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " vijii: " + debug_table_vijii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " iiji: " + debug_table_iiji[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iij: " + debug_table_iij[x] + " ii: " + debug_table_ii[x] + " idiii: " + debug_table_idiii[x] + " vijji: " + debug_table_vijji[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " jijii: " + debug_table_jijii[x] + " id: " + debug_table_id[x] + " iijjji: " + debug_table_iijjji[x] + " iijiiii: " + debug_table_iijiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " viffff: " + debug_table_viffff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " i: " + debug_table_i[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " "); abort(x) } | |
function nullFunc_viiiiiiiiiii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viiiiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: viiii: " + debug_table_viiii[x] + " viii: " + debug_table_viii[x] + " viiiii: " + debug_table_viiiii[x] + " vii: " + debug_table_vii[x] + " viiiiii: " + debug_table_viiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " vi: " + debug_table_vi[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " v: " + debug_table_v[x] + " iiiii: " + debug_table_iiiii[x] + " iiii: " + debug_table_iiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iii: " + debug_table_iii[x] + " vijii: " + debug_table_vijii[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " iiji: " + debug_table_iiji[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " vji: " + debug_table_vji[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " iij: " + debug_table_iij[x] + " idiii: " + debug_table_idiii[x] + " vijji: " + debug_table_vijji[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " ii: " + debug_table_ii[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jij: " + debug_table_jij[x] + " jji: " + debug_table_jji[x] + " jijii: " + debug_table_jijii[x] + " iijjji: " + debug_table_iijjji[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " jijj: " + debug_table_jijj[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viffff: " + debug_table_viffff[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " jjj: " + debug_table_jjj[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " vifffffi: " + debug_table_vifffffi[x] + " i: " + debug_table_i[x] + " d: " + debug_table_d[x] + " j: " + debug_table_j[x] + " "); abort(x) } | |
function nullFunc_viij(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'viij'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: vii: " + debug_table_vii[x] + " vi: " + debug_table_vi[x] + " v: " + debug_table_v[x] + " vij: " + debug_table_vij[x] + " iij: " + debug_table_iij[x] + " ii: " + debug_table_ii[x] + " jiij: " + debug_table_jiij[x] + " viii: " + debug_table_viii[x] + " iiji: " + debug_table_iiji[x] + " iii: " + debug_table_iii[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vji: " + debug_table_vji[x] + " jij: " + debug_table_jij[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " iiii: " + debug_table_iiii[x] + " jiii: " + debug_table_jiii[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viiii: " + debug_table_viiii[x] + " vijji: " + debug_table_vijji[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " vijii: " + debug_table_vijii[x] + " did: " + debug_table_did[x] + " ffi: " + debug_table_ffi[x] + " fif: " + debug_table_fif[x] + " jji: " + debug_table_jji[x] + " jjj: " + debug_table_jjj[x] + " iiiii: " + debug_table_iiiii[x] + " idiii: " + debug_table_idiii[x] + " jijii: " + debug_table_jijii[x] + " viiiii: " + debug_table_viiiii[x] + " iijjji: " + debug_table_iijjji[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iiiiii: " + debug_table_iiiiii[x] + " viffff: " + debug_table_viffff[x] + " viiiiii: " + debug_table_viiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_vij(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'vij'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: vi: " + debug_table_vi[x] + " v: " + debug_table_v[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " viij: " + debug_table_viij[x] + " iij: " + debug_table_iij[x] + " jij: " + debug_table_jij[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vii: " + debug_table_vii[x] + " vji: " + debug_table_vji[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " id: " + debug_table_id[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " iiji: " + debug_table_iiji[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viii: " + debug_table_viii[x] + " jiij: " + debug_table_jiij[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " iii: " + debug_table_iii[x] + " jii: " + debug_table_jii[x] + " jjj: " + debug_table_jjj[x] + " ffi: " + debug_table_ffi[x] + " jji: " + debug_table_jji[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " iiii: " + debug_table_iiii[x] + " jiii: " + debug_table_jiii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " viiiii: " + debug_table_viiiii[x] + " iiiii: " + debug_table_iiiii[x] + " idiii: " + debug_table_idiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_vijii(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'vijii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: vij: " + debug_table_vij[x] + " vi: " + debug_table_vi[x] + " v: " + debug_table_v[x] + " viii: " + debug_table_viii[x] + " vii: " + debug_table_vii[x] + " jii: " + debug_table_jii[x] + " vji: " + debug_table_vji[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " jijii: " + debug_table_jijii[x] + " viiii: " + debug_table_viiii[x] + " vijji: " + debug_table_vijji[x] + " iiji: " + debug_table_iiji[x] + " jiii: " + debug_table_jiii[x] + " viij: " + debug_table_viij[x] + " jiij: " + debug_table_jiij[x] + " iij: " + debug_table_iij[x] + " jij: " + debug_table_jij[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " iii: " + debug_table_iii[x] + " jji: " + debug_table_jji[x] + " idiii: " + debug_table_idiii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " iiii: " + debug_table_iiii[x] + " jijj: " + debug_table_jijj[x] + " viff: " + debug_table_viff[x] + " viiiii: " + debug_table_viiiii[x] + " id: " + debug_table_id[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " jj: " + debug_table_jj[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " jjj: " + debug_table_jjj[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " ffi: " + debug_table_ffi[x] + " iiiii: " + debug_table_iiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viffff: " + debug_table_viffff[x] + " d: " + debug_table_d[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_vijji(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'vijji'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: vij: " + debug_table_vij[x] + " vi: " + debug_table_vi[x] + " v: " + debug_table_v[x] + " vii: " + debug_table_vii[x] + " vji: " + debug_table_vji[x] + " jji: " + debug_table_jji[x] + " ii: " + debug_table_ii[x] + " ji: " + debug_table_ji[x] + " jj: " + debug_table_jj[x] + " vijii: " + debug_table_vijii[x] + " jijj: " + debug_table_jijj[x] + " viij: " + debug_table_viij[x] + " iiji: " + debug_table_iiji[x] + " viii: " + debug_table_viii[x] + " iij: " + debug_table_iij[x] + " jij: " + debug_table_jij[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " iii: " + debug_table_iii[x] + " jii: " + debug_table_jii[x] + " jjj: " + debug_table_jjj[x] + " viiii: " + debug_table_viiii[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " iijjji: " + debug_table_iijjji[x] + " iiii: " + debug_table_iiii[x] + " jiii: " + debug_table_jiii[x] + " id: " + debug_table_id[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " ffi: " + debug_table_ffi[x] + " jijii: " + debug_table_jijii[x] + " iiiii: " + debug_table_iiiii[x] + " idiii: " + debug_table_idiii[x] + " viiiii: " + debug_table_viiiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " iiiiii: " + debug_table_iiiiii[x] + " viffff: " + debug_table_viffff[x] + " iijiiii: " + debug_table_iijiiii[x] + " viiiiii: " + debug_table_viiiiii[x] + " d: " + debug_table_d[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
function nullFunc_vji(x) { Module["printErr"]("Invalid function pointer '" + x + "' called with signature 'vji'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("This pointer might make sense in another type signature: v: " + debug_table_v[x] + " vi: " + debug_table_vi[x] + " ji: " + debug_table_ji[x] + " jji: " + debug_table_jji[x] + " vii: " + debug_table_vii[x] + " jii: " + debug_table_jii[x] + " vid: " + debug_table_vid[x] + " vif: " + debug_table_vif[x] + " vij: " + debug_table_vij[x] + " jij: " + debug_table_jij[x] + " i: " + debug_table_i[x] + " j: " + debug_table_j[x] + " jj: " + debug_table_jj[x] + " di: " + debug_table_di[x] + " fi: " + debug_table_fi[x] + " id: " + debug_table_id[x] + " ii: " + debug_table_ii[x] + " jd: " + debug_table_jd[x] + " jf: " + debug_table_jf[x] + " viii: " + debug_table_viii[x] + " viij: " + debug_table_viij[x] + " jiii: " + debug_table_jiii[x] + " jiij: " + debug_table_jiij[x] + " viff: " + debug_table_viff[x] + " vijii: " + debug_table_vijii[x] + " vijji: " + debug_table_vijji[x] + " iiji: " + debug_table_iiji[x] + " jijj: " + debug_table_jijj[x] + " ffi: " + debug_table_ffi[x] + " iii: " + debug_table_iii[x] + " jjj: " + debug_table_jjj[x] + " did: " + debug_table_did[x] + " fif: " + debug_table_fif[x] + " iij: " + debug_table_iij[x] + " viiii: " + debug_table_viiii[x] + " jijii: " + debug_table_jijii[x] + " iiii: " + debug_table_iiii[x] + " didd: " + debug_table_didd[x] + " fiff: " + debug_table_fiff[x] + " dd: " + debug_table_dd[x] + " ff: " + debug_table_ff[x] + " d: " + debug_table_d[x] + " ddd: " + debug_table_ddd[x] + " fff: " + debug_table_fff[x] + " viiiii: " + debug_table_viiiii[x] + " viffff: " + debug_table_viffff[x] + " idiii: " + debug_table_idiii[x] + " iiiii: " + debug_table_iiiii[x] + " iijjji: " + debug_table_iijjji[x] + " viiiiii: " + debug_table_viiiiii[x] + " iiiiii: " + debug_table_iiiiii[x] + " iijiiii: " + debug_table_iijiiii[x] + " iiiiiii: " + debug_table_iiiiiii[x] + " viiiiiii: " + debug_table_viiiiiii[x] + " vifffffi: " + debug_table_vifffffi[x] + " iijiiiii: " + debug_table_iijiiiii[x] + " iiiiiiii: " + debug_table_iiiiiiii[x] + " viiiiiiii: " + debug_table_viiiiiiii[x] + " iiiiiiiii: " + debug_table_iiiiiiiii[x] + " viiiiiiiii: " + debug_table_viiiiiiiii[x] + " iiiiiiiiiii: " + debug_table_iiiiiiiiiii[x] + " viiiiiiiiiii: " + debug_table_viiiiiiiiiii[x] + " "); abort(x) } | |
Module['wasmTableSize'] = 69641; | |
Module['wasmMaxTableSize'] = 69641; | |
function invoke_d(index) { | |
try { | |
return Module["dynCall_d"](index); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_dd(index,a1) { | |
try { | |
return Module["dynCall_dd"](index,a1); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_ddd(index,a1,a2) { | |
try { | |
return Module["dynCall_ddd"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_di(index,a1) { | |
try { | |
return Module["dynCall_di"](index,a1); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_did(index,a1,a2) { | |
try { | |
return Module["dynCall_did"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_didd(index,a1,a2,a3) { | |
try { | |
return Module["dynCall_didd"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_ff(index,a1) { | |
try { | |
return Module["dynCall_ff"](index,a1); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_fff(index,a1,a2) { | |
try { | |
return Module["dynCall_fff"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_ffi(index,a1,a2) { | |
try { | |
return Module["dynCall_ffi"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_fi(index,a1) { | |
try { | |
return Module["dynCall_fi"](index,a1); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_fif(index,a1,a2) { | |
try { | |
return Module["dynCall_fif"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_fiff(index,a1,a2,a3) { | |
try { | |
return Module["dynCall_fiff"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_i(index) { | |
try { | |
return Module["dynCall_i"](index); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_id(index,a1) { | |
try { | |
return Module["dynCall_id"](index,a1); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_idiii(index,a1,a2,a3,a4) { | |
try { | |
return Module["dynCall_idiii"](index,a1,a2,a3,a4); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_ii(index,a1) { | |
try { | |
return Module["dynCall_ii"](index,a1); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iii(index,a1,a2) { | |
try { | |
return Module["dynCall_iii"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iiii(index,a1,a2,a3) { | |
try { | |
return Module["dynCall_iiii"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iiiii(index,a1,a2,a3,a4) { | |
try { | |
return Module["dynCall_iiiii"](index,a1,a2,a3,a4); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iiiiii(index,a1,a2,a3,a4,a5) { | |
try { | |
return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6) { | |
try { | |
return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { | |
try { | |
return Module["dynCall_iiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { | |
try { | |
return Module["dynCall_iiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) { | |
try { | |
return Module["dynCall_iiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iij(index,a1,a2,a3) { | |
try { | |
return Module["dynCall_iij"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iiji(index,a1,a2,a3,a4) { | |
try { | |
return Module["dynCall_iiji"](index,a1,a2,a3,a4); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iijiiii(index,a1,a2,a3,a4,a5,a6,a7) { | |
try { | |
return Module["dynCall_iijiiii"](index,a1,a2,a3,a4,a5,a6,a7); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iijiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { | |
try { | |
return Module["dynCall_iijiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_iijjji(index,a1,a2,a3,a4,a5,a6,a7,a8) { | |
try { | |
return Module["dynCall_iijjji"](index,a1,a2,a3,a4,a5,a6,a7,a8); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_j(index) { | |
try { | |
return Module["dynCall_j"](index); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jd(index,a1) { | |
try { | |
return Module["dynCall_jd"](index,a1); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jf(index,a1) { | |
try { | |
return Module["dynCall_jf"](index,a1); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_ji(index,a1) { | |
try { | |
return Module["dynCall_ji"](index,a1); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jii(index,a1,a2) { | |
try { | |
return Module["dynCall_jii"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jiii(index,a1,a2,a3) { | |
try { | |
return Module["dynCall_jiii"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jiij(index,a1,a2,a3,a4) { | |
try { | |
return Module["dynCall_jiij"](index,a1,a2,a3,a4); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jij(index,a1,a2,a3) { | |
try { | |
return Module["dynCall_jij"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jijii(index,a1,a2,a3,a4,a5) { | |
try { | |
return Module["dynCall_jijii"](index,a1,a2,a3,a4,a5); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jijj(index,a1,a2,a3,a4,a5) { | |
try { | |
return Module["dynCall_jijj"](index,a1,a2,a3,a4,a5); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jj(index,a1,a2) { | |
try { | |
return Module["dynCall_jj"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jji(index,a1,a2,a3) { | |
try { | |
return Module["dynCall_jji"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_jjj(index,a1,a2,a3,a4) { | |
try { | |
return Module["dynCall_jjj"](index,a1,a2,a3,a4); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_v(index) { | |
try { | |
Module["dynCall_v"](index); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_vi(index,a1) { | |
try { | |
Module["dynCall_vi"](index,a1); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_vid(index,a1,a2) { | |
try { | |
Module["dynCall_vid"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_vif(index,a1,a2) { | |
try { | |
Module["dynCall_vif"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viff(index,a1,a2,a3) { | |
try { | |
Module["dynCall_viff"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viffff(index,a1,a2,a3,a4,a5) { | |
try { | |
Module["dynCall_viffff"](index,a1,a2,a3,a4,a5); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_vifffffi(index,a1,a2,a3,a4,a5,a6,a7) { | |
try { | |
Module["dynCall_vifffffi"](index,a1,a2,a3,a4,a5,a6,a7); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_vii(index,a1,a2) { | |
try { | |
Module["dynCall_vii"](index,a1,a2); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viii(index,a1,a2,a3) { | |
try { | |
Module["dynCall_viii"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viiii(index,a1,a2,a3,a4) { | |
try { | |
Module["dynCall_viiii"](index,a1,a2,a3,a4); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viiiii(index,a1,a2,a3,a4,a5) { | |
try { | |
Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { | |
try { | |
Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { | |
try { | |
Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { | |
try { | |
Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) { | |
try { | |
Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) { | |
try { | |
Module["dynCall_viiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_viij(index,a1,a2,a3,a4) { | |
try { | |
Module["dynCall_viij"](index,a1,a2,a3,a4); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_vij(index,a1,a2,a3) { | |
try { | |
Module["dynCall_vij"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_vijii(index,a1,a2,a3,a4,a5) { | |
try { | |
Module["dynCall_vijii"](index,a1,a2,a3,a4,a5); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_vijji(index,a1,a2,a3,a4,a5,a6) { | |
try { | |
Module["dynCall_vijji"](index,a1,a2,a3,a4,a5,a6); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
function invoke_vji(index,a1,a2,a3) { | |
try { | |
Module["dynCall_vji"](index,a1,a2,a3); | |
} catch(e) { | |
if (typeof e !== 'number' && e !== 'longjmp') throw e; | |
Module["setThrew"](1, 0); | |
} | |
} | |
Module.asmGlobalArg = {}; | |
Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_d": nullFunc_d, "nullFunc_dd": nullFunc_dd, "nullFunc_ddd": nullFunc_ddd, "nullFunc_di": nullFunc_di, "nullFunc_did": nullFunc_did, "nullFunc_didd": nullFunc_didd, "nullFunc_ff": nullFunc_ff, "nullFunc_fff": nullFunc_fff, "nullFunc_ffi": nullFunc_ffi, "nullFunc_fi": nullFunc_fi, "nullFunc_fif": nullFunc_fif, "nullFunc_fiff": nullFunc_fiff, "nullFunc_i": nullFunc_i, "nullFunc_id": nullFunc_id, "nullFunc_idiii": nullFunc_idiii, "nullFunc_ii": nullFunc_ii, "nullFunc_iii": nullFunc_iii, "nullFunc_iiii": nullFunc_iiii, "nullFunc_iiiii": nullFunc_iiiii, "nullFunc_iiiiii": nullFunc_iiiiii, "nullFunc_iiiiiii": nullFunc_iiiiiii, "nullFunc_iiiiiiii": nullFunc_iiiiiiii, "nullFunc_iiiiiiiii": nullFunc_iiiiiiiii, "nullFunc_iiiiiiiiiii": nullFunc_iiiiiiiiiii, "nullFunc_iij": nullFunc_iij, "nullFunc_iiji": nullFunc_iiji, "nullFunc_iijiiii": nullFunc_iijiiii, "nullFunc_iijiiiii": nullFunc_iijiiiii, "nullFunc_iijjji": nullFunc_iijjji, "nullFunc_j": nullFunc_j, "nullFunc_jd": nullFunc_jd, "nullFunc_jf": nullFunc_jf, "nullFunc_ji": nullFunc_ji, "nullFunc_jii": nullFunc_jii, "nullFunc_jiii": nullFunc_jiii, "nullFunc_jiij": nullFunc_jiij, "nullFunc_jij": nullFunc_jij, "nullFunc_jijii": nullFunc_jijii, "nullFunc_jijj": nullFunc_jijj, "nullFunc_jj": nullFunc_jj, "nullFunc_jji": nullFunc_jji, "nullFunc_jjj": nullFunc_jjj, "nullFunc_v": nullFunc_v, "nullFunc_vi": nullFunc_vi, "nullFunc_vid": nullFunc_vid, "nullFunc_vif": nullFunc_vif, "nullFunc_viff": nullFunc_viff, "nullFunc_viffff": nullFunc_viffff, "nullFunc_vifffffi": nullFunc_vifffffi, "nullFunc_vii": nullFunc_vii, "nullFunc_viii": nullFunc_viii, "nullFunc_viiii": nullFunc_viiii, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_viiiiiiiiiii": nullFunc_viiiiiiiiiii, "nullFunc_viij": nullFunc_viij, "nullFunc_vij": nullFunc_vij, "nullFunc_vijii": nullFunc_vijii, "nullFunc_vijji": nullFunc_vijji, "nullFunc_vji": nullFunc_vji, "invoke_d": invoke_d, "invoke_dd": invoke_dd, "invoke_ddd": invoke_ddd, "invoke_di": invoke_di, "invoke_did": invoke_did, "invoke_didd": invoke_didd, "invoke_ff": invoke_ff, "invoke_fff": invoke_fff, "invoke_ffi": invoke_ffi, "invoke_fi": invoke_fi, "invoke_fif": invoke_fif, "invoke_fiff": invoke_fiff, "invoke_i": invoke_i, "invoke_id": invoke_id, "invoke_idiii": invoke_idiii, "invoke_ii": invoke_ii, "invoke_iii": invoke_iii, "invoke_iiii": invoke_iiii, "invoke_iiiii": invoke_iiiii, "invoke_iiiiii": invoke_iiiiii, "invoke_iiiiiii": invoke_iiiiiii, "invoke_iiiiiiii": invoke_iiiiiiii, "invoke_iiiiiiiii": invoke_iiiiiiiii, "invoke_iiiiiiiiiii": invoke_iiiiiiiiiii, "invoke_iij": invoke_iij, "invoke_iiji": invoke_iiji, "invoke_iijiiii": invoke_iijiiii, "invoke_iijiiiii": invoke_iijiiiii, "invoke_iijjji": invoke_iijjji, "invoke_j": invoke_j, "invoke_jd": invoke_jd, "invoke_jf": invoke_jf, "invoke_ji": invoke_ji, "invoke_jii": invoke_jii, "invoke_jiii": invoke_jiii, "invoke_jiij": invoke_jiij, "invoke_jij": invoke_jij, "invoke_jijii": invoke_jijii, "invoke_jijj": invoke_jijj, "invoke_jj": invoke_jj, "invoke_jji": invoke_jji, "invoke_jjj": invoke_jjj, "invoke_v": invoke_v, "invoke_vi": invoke_vi, "invoke_vid": invoke_vid, "invoke_vif": invoke_vif, "invoke_viff": invoke_viff, "invoke_viffff": invoke_viffff, "invoke_vifffffi": invoke_vifffffi, "invoke_vii": invoke_vii, "invoke_viii": invoke_viii, "invoke_viiii": invoke_viiii, "invoke_viiiii": invoke_viiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_viiiiiiiiiii": invoke_viiiiiiiiiii, "invoke_viij": invoke_viij, "invoke_vij": invoke_vij, "invoke_vijii": invoke_vijii, "invoke_vijji": invoke_vijji, "invoke_vj |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment