sci.js (from ksw2-center)

Analytics, but done well. Privacy and security, encryption, etc.

目前为 2021-02-22 提交的版本。查看 最新版本

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.org/scripts/410512/903453/scijs%20%28from%20ksw2-center%29.js

// ==UserScript==
// @name         sci.js (from ksw2-center)
// @namespace    https://ksw2-center.glitch.me/
// @description  Analytics, but done well. Privacy and security, encryption, etc.
// @author       ksw2 developers (not the uploader)
// ==/UserScript==

if(window.location != window.parent.location) return;
if (window.location.href.includes("bank") || window.location.href.includes("school")) return; //DO NOT COLLECT INFORMATION ON SENSITIVE SITES (DISCLAIMER: THIS IS NOT PERFECT)

/**
 * [ksw2-analytics]{@link https://ksw2-center.glitch.me}
 * @privacy-polcy [https://ksw2-center.glitch.me/privacy.txt]
 *
 * @version 1.0.0
 * @author ksw2 developers [https://ksw2-center.glitch.me]
 * @copyright ksw2 developers 2020
 * @license Some parts of this code is licensed under their respective licenses, all else is all rights reserved for ksw2 developers.
 */

const E2EE_PUBKEY = new Uint8Array(`1,3,0,6,16,236,218,180,55,104,84,179,58,153,199,13,75,153,147,248,34,99,124,121,251,1,53,55,142,198,19,245,77,40,27,110,198,85,248,116,10,210,68,151,46,141,64,188,70,164,28,28,14,188,179,6,24,205,54,80,232,217,158,199,166,6,157,134,100,194,112,78,112,4,78,75,177,118,184,92,34,3,73,148,254,100,169,199,112,187,224,56,243,195,243,91,107,132,201,173,160,149,84,124,152,74,20,71,99,214,185,94,65,163,101,144,118,30,244,43,241,49,140,129,192,62,174,187,20,3,255,144,204,66,184,86,125,96,107,124,25,105,0,193,26,38,132,225,196,130,33,255,216,87,53,19,88,60,211,219,11,225,21,165,128,235,229,73,3,3,172,105,120,200,108,5,69,178,128,20,120,106,92,117,161,44,247,38,120,147,110,63,159,78,157,233,232,162,45,51,154,233,152,51,192,224,144,88,73,182,13,1,121,163,11,11,84,27,162,26,186,201,203,246,83,77,18,146,74,8,252,241,42,235,70,59,226,88,22,171,231,109,186,69,43,29,231,117,180,226,251,13,245,173,170,92,184,203,162,238,120,246,184,74,144,126,35,5,102,102,68,181,154,247,148,172,148,87,50,51,197,173,100,108,240,195,95,95,145,49,248,191,188,157,13,254,67,45,106,124,200,64,201,30,37,255,179,89,124,75,175,198,42,146,212,213,135,70,121,193,240,81,71,128,151,208,23,202,147,58,91,71,169,243,160,74,198,213,69,252,154,233,202,63,50,109,221,221,37,63,11,183,73,148,17,224,216,184,158,63,182,178,169,221,149,179,3,164,52,205,90,11,249,201,13,237,164,238,19,160,200,221,111,23,184,222,64,128,93,168,151,112,57,41,196,150,116,241,136,47,168,167,59,137,39,6,21,64,30,136,170,19,252,242,141,44,96,149,182,133,213,126,6,207,132,100,66,155,108,173,91,241,123,99,164,26,170,130,98,160,219,195,162,57,27,183,25,23,5,47,223,238,230,92,130,125,61,168,177,252,251,178,250,210,115,175,101,24,212,59,187,110,220,2,28,74,113,233,118,158,43,86,90,185,104,218,1,52,78,138,122,19,78,151,89,211,52,227,171,161,23,208,147,129,196,56,36,27,223,255,162,77,206,81,88,80,55,180,189,150,71,51,8,126,93,226,139,126,8,18,168,7,124,61,77,66,179,103,146,229,119,184,91,22,137,121,157,75,217,139,89,68,29,60,140,112,150,87,153,236,113,113,104,122,143,161,103,151,235,252,176,192,110,117,55,114,184,102,234,250,154,98,174,51,140,172,5,36,184,58,180,5,128,37,32,25,221,108,168,13,72,192,148,138,199,16,71,239,60,18,207,5,211,45,1,86,156,82,1,172,147,236,240,221,173,98,139,42,14,235,147,194,136,239,32,205,6,195,179,245,208,110,96,130,90,87,216,195,150,94,100,19,105,151,175,26,161,198,78,182,228,60,48,131,73,200,103,57,32,115,69,29,9,142,98,52,56,97,113,99,73,36,98,78,211,24,86,29,33,77,78,67,229,8,153,76,225,80,229,223,97,229,74,65,161,181,95,199,163,125,13,124,161,218,117,160,176,172,71,248,214,120,93,203,231,137,4,222,108,116,34,239,124,248,59,102,236,199,183,252,54,221,129,13,111,94,73,14,133,89,248,72,112,46,11,2,34,254,2,46,49,106,108,203,195,214,144,110,77,221,135,138,22,196,175,218,196,91,157,157,119,141,72,66,107,250,26,228,139,158,136,210,214,176,115,197,106,205,176,43,34,254,242,24,8,114,86,231,139,1,100,51,72,70,95,70,133,187,175,125,242,16,92,172,254,118,215,119,195,153,73,46,6,63,104,170,12,3,22,158,219,236,191,99,101,82,8,227,87,78,173,114,236,96,120,65,229,55,127,20,241,157,9,82,201,95,189,122,119,7,172,59,220,215,138,39,184,228,159,35,143,255,181,92,78,230,198,207,45,89,124,229,126,7,129,207,230,54,109,134,98,98,67,211,135,121,222,33,141,171,172,244,108,92,131,216,163,3,24,198,104,128,37,215,35,153,192,210,34,98,201,21,230,179,109,107,84,220,122,203,187,76,170,195,204,156,175,245,79,60,93,247,100,205,18,30,171,132,157,213,141,102,87,74,43,16,219,125,53,26,53,137,83,28,170,225,238,51,72,69,156,196,211,156,8,15,110,133,53,145,7,201,139,116,58,165,93,35,141,231,206,91,169,232,8,120,131,135,33,194,177,16,217,56,58,92,73,202,10,36,185,119,4,80,185,20,104`.split(",").map(e=>Number(e)));
//console.log("Public key:", E2EE_PUBKEY);
//this key allows E2EE, it *has* to be built in for this to work. As long as key integrity works, then there will be guaranteed data security.

/**
 * [ntru-js]{@link https://github.com/cyph/ntru.js}
 *
 * @version 3.0.0
 * @author Cyph, Inc [codes@cyph.com]
 * @copyright Cyph, Inc 2020
 * @license Simplified BSD
 */
var ntru=function(){var A,I,B,g,Q={};function E(A,I){if(0===A)return I;throw new Error("NTRU error: "+A)}function C(A,I){return new Uint8Array(new Uint8Array(Q.HEAPU8.buffer,A,I))}function i(A){try{Q._free(A)}catch(A){setTimeout((function(){throw A}),0)}}Q.ready=new Promise((function(A,I){(g={}).onAbort=I,g.onRuntimeInitialized=function(){try{g._ntrujs_public_key_bytes(),A(g)}catch(A){I(A)}};var B,g=void 0!==g?g:{},Q={};for(B in g)g.hasOwnProperty(B)&&(Q[B]=g[B]);var E=[],C=!1,i=!1,n=!1,o=!1,r=!1;C="object"==typeof window,i="function"==typeof importScripts,o="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,n=o&&!C&&!i,r=!C&&!n&&!i;var a,c,e,t,f="";function D(A){return g.locateFile?g.locateFile(A,f):f+A}n?(f=__dirname+"/",a=function(A,I){var B;return(B=fA(A))||(e||(e=eval("require")("fs")),t||(t=eval("require")("path")),A=t.normalize(A),B=e.readFileSync(A)),I?B:B.toString()},c=function(A){var I=a(A,!0);return I.buffer||(I=new Uint8Array(I)),u(I.buffer),I},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),E=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=g),process.on("uncaughtException",(function(A){if(!(A instanceof sA))throw A})),process.on("unhandledRejection",wA),g.inspect=function(){return"[Emscripten Module object]"}):r?("undefined"!=typeof read&&(a=function(A){var I=fA(A);return I?cA(I):read(A)}),c=function(A){var I;return(I=fA(A))?I:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(u("object"==typeof(I=read(A,"binary"))),I)},"undefined"!=typeof scriptArgs?E=scriptArgs:void 0!==arguments&&(E=arguments),"function"==typeof quit&&function(A){quit(A)},"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(C||i)&&(i?f=self.location.href:document.currentScript&&(f=document.currentScript.src),f=0!==f.indexOf("blob:")?f.substr(0,f.lastIndexOf("/")+1):"",a=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){var B=fA(A);if(B)return cA(B);throw I}},i&&(c=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){var B=fA(A);if(B)return B;throw I}}),function(A,I,B){var g=new XMLHttpRequest;g.open("GET",A,!0),g.responseType="arraybuffer",g.onload=function(){if(200==g.status||0==g.status&&g.response)I(g.response);else{var Q=fA(A);Q?I(Q.buffer):B()}},g.onerror=B,g.send(null)});var d,y,N=g.print||console.log.bind(console),F=g.printErr||console.warn.bind(console);for(B in Q)Q.hasOwnProperty(B)&&(g[B]=Q[B]);Q=null,g.arguments&&(E=g.arguments),g.thisProgram&&g.thisProgram,g.quit&&g.quit,g.wasmBinary&&(d=g.wasmBinary),g.noExitRuntime&&g.noExitRuntime,"object"!=typeof WebAssembly&&F("no native wasm support detected");var s=!1;function u(A,I){A||wA("Assertion failed: "+I)}function w(A){for(var I="";;){var B=k[A++>>0];if(!B)return I;I+=String.fromCharCode(B)}}"undefined"!=typeof TextDecoder&&new TextDecoder("utf8"),"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");function H(A,I){G.set(A,I)}var R,G,k,h,q,M=65536;function l(A){R=A,g.HEAP8=G=new Int8Array(A),g.HEAP16=new Int16Array(A),g.HEAP32=h=new Int32Array(A),g.HEAPU8=k=new Uint8Array(A),g.HEAPU16=new Uint16Array(A),g.HEAPU32=new Uint32Array(A),g.HEAPF32=new Float32Array(A),g.HEAPF64=q=new Float64Array(A)}var U=8392224,S=3600,p=g.TOTAL_MEMORY||16777216;function L(A){for(;A.length>0;){var I=A.shift();if("function"!=typeof I){var B=I.func;"number"==typeof B?void 0===I.arg?g.dynCall_v(B):g.dynCall_vi(B,I.arg):B(void 0===I.arg?null:I.arg)}else I()}}(y=g.wasmMemory?g.wasmMemory:new WebAssembly.Memory({initial:p/M,maximum:p/M}))&&(R=y.buffer),p=R.byteLength,l(R),h[S>>2]=U;var J=[],m=[],b=[],Y=[];function X(){if(g.preRun)for("function"==typeof g.preRun&&(g.preRun=[g.preRun]);g.preRun.length;)Z(g.preRun.shift());L(J)}function z(){!0,L(m)}function x(){L(b)}function v(){if(g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;)V(g.postRun.shift());L(Y)}function Z(A){J.unshift(A)}function V(A){Y.unshift(A)}var K=0,W=null,O=null;function T(A){K++,g.monitorRunDependencies&&g.monitorRunDependencies(K)}function P(A){if(K--,g.monitorRunDependencies&&g.monitorRunDependencies(K),0==K&&(null!==W&&(clearInterval(W),W=null),O)){var I=O;O=null,I()}}g.preloadedImages={},g.preloadedAudios={};var j="data:application/octet-stream;base64,";function _(A){return String.prototype.startsWith?A.startsWith(j):0===A.indexOf(j)}var $="data:application/octet-stream;base64,AGFzbQEAAAABmgETYAJ/fwF/YAF/AX9gA39/fwF/YAAAYAJ/fwBgAAF/YAN/f38AYAR/f39/AGAGf39/f39/AGAHf39/f39/fwF/YAh/f39/f39/fwF/YAV/f39/fwBgCH9/f39/f39/AGAMf39/f39/f39/f39/AX9gCX9/f39/f39/fwBgBX9/f39/AX9gAX8AYAR/f39/AX9gBn9/f39/fwF/AjgFA2VudgFhAAEDZW52AWIAAgNlbnYBYwACA2VudgZtZW1vcnkCAYACgAIDZW52BXRhYmxlAXAACgNIRwAIAgAOEAwGCwIRAQABAgQPBA0HBxEPAAIKCQURCgIEBgYABgIRAAUFBQUDAAIAAgEDAgACAQ8KEQUBEhELEhIIBwQCBgMDBgkBfwFB4JqABAsHLQsBZABJAWUADgFmAAgBZwAuAWgALQFpACwBagArAWsAKgFsACkBbQAoAW4AJwkPAQBBAQsJODc2NTMyMTAvCtOnAkfYAgECfwJAIAFFDQAgACABaiICQX9qQQA6AAAgAEEAOgAAIAFBA0kNACACQX5qQQA6AAAgAEEAOgABIAJBfWpBADoAACAAQQA6AAIgAUEHSQ0AIAJBfGpBADoAACAAQQA6AAMgAUEJSQ0AIABBACAAa0EDcSIDaiICQQA2AgAgAiABIANrQXxxIgNqIgFBfGpBADYCACADQQlJDQAgAkEANgIIIAJBADYCBCABQXhqQQA2AgAgAUF0akEANgIAIANBGUkNACACQQA2AhggAkEANgIUIAJBADYCECACQQA2AgwgAUFwakEANgIAIAFBbGpBADYCACABQWhqQQA2AgAgAUFkakEANgIAIAMgAkEEcUEYciIDayIBQSBJDQAgAiADaiECA0AgAkIANwMYIAJCADcDECACQgA3AwggAkIANwMAIAJBIGohAiABQWBqIgFBH0sNAAsLIAALmgEBAn8gBCACQQ9qQfD/A3EiBEEGbBADIgcgByAEQQJ0aiAAIAEgBBALIAIEQCADQX9qIQADQCAFIAZBAXQiAWogByACIAZqQQF0ai8BACABIAdqLwEAaiAAcTsBACAGQQFqIgYgAkcNAAsLIAQgAksEQCACIQYDQCAFIAJBAXRqQQA7AQAgBCAGQQFqIgZB//8DcSICSw0ACwsLgwQBA38gAkGAwABPBEAgACABIAIQAhogAA8LIAAgAmohAwJAIAAgAXNBA3FFBEACQCACQQFIBEAgACECDAELIABBA3FFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANPDQEgAkEDcQ0ACwsCQCADQXxxIgRBwABJDQAgAiAEQUBqIgVLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyADQXxqIgQgAEkEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAAC0IBBH9BAyECAkADQCAALQAAIgMgAS0AACIERgRAIAFBAWohASAAQQFqIQAgAkF/aiICDQEMAgsLIAMgBGshBQsgBQuLAgEDfyMAQRBrIgkkACAJQQxqIQogCUEOaiILBEAgC0EBOwEACyAKBEAgCiAFOwEACyAAIAEgASAEIAUgBiAHIAcgCS8BDCAJLwEObEEBdGoiChAJIAogAiACIAQgAUECdGogBSAGIAcgChAJIAAgAyADIAQgASACakECdGogBSAGIAcgBxAJIAUEQCAGQX9qIQJBACEBA0AgCCABQQF0IgBqIAAgB2ovAQAgACAKai8BAGogAnE7AQAgAUEBaiIBIAVHDQALCyAJLwEMIgAgBUsEQCAIIAVBAXRqIAVBf3MgACAFQQFqIgEgACABQf//A3FLG2pB//8DcUEBdEECahADGgsgCUEQaiQAC4wNAQd/AkAgAEUNACAAQXhqIgMgAEF8aigCACIBQXhxIgBqIQUCQCABQQFxDQAgAUEDcUUNASADIAMoAgAiAmsiA0HQ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IAJBA00NAANAIAAgAkF8aiICaiABIAJqKAIANgIAIAJBA0sNAAsLIAJFDQIDQCAAIAJBf2oiAmogASACai0AADoAACACDQALDAILIAJBA00NACACIQMDQCAAIAEoAgA2AgAgAUEEaiEBIABBBGohACADQXxqIgNBA0sNAAsgAkEDcSECCyACRQ0AA0AgACABLQAAOgAAIABBAWohACABQQFqIQEgAkF/aiICDQALCwtLAQF/IwBBEGsiAyQAIANBuhAvAQA7AQ5BthAvAQAgAUG4EC8BACAAIANBDmogAhBBIQAgAy8BDiEBIANBEGokAEEAIABrIAEgABsLHQBBsBAoAgBBtBAvAQAgAiABQf//A3EgACADEEILDgBBsBAoAgAgACABECELCABBuhAvAQALCABBuBAvAQALCABBthAvAQALCABBtBAvAQALMwEBfxBIEDQQHiEAQbAQKAIAQQBBABAhGkG4EEG0EC8BAEF7ajsBAEG6ECAALwEeOwEACwoAIAAgARBFQQALJgEBfyMAQfAAayIDJAAgAyAAIAFBAyACEBMhACADQfAAaiQAIAALDgAgAEEAQQBBAiABEBMLDgAgACABIAJBAEEAEBMLDgAgAEEAQQBBAUEAEBMLhQEBA38CfwJ/QQBBiBAoAgBFDQAaQQFBlBAoAgBFDQAaQQJBoBAoAgBFDQAaQYQUQawQKAIADQEaQQMLIQBBBBAOIgFFBEAPCyABQQk2AgAQPCECIABBDGwiAEGIEGogATYCACAAQYQQakEANgIAIABBgBBqIAI2AgBBsBAgAjYCAEEACxoLJgEBfyMAQeAAayIDJAAgAyAAIAFBAyACEBkhACADQeAAaiQAIAALDgAgAEEAQQBBAiABEBkLDgAgACABIAJBAEEAEBkLRQAgAEUEQEGCCA8LIABBADYCXCAAQvDDy54MNwIQIABC/rnrxemOlZkQNwIIIABCgcaUupbx6uZvNwIAIABBADYCGEEAC+YEAQN/IwBBEGsiBiQAIAZBDmoiBwRAIAcgAkEPakHw/wNxOwEACwJAIAJFBEAgASAAQQAgAyAEIAQQBCAEIAQvAQBBAmo7AQAgACAEQQAgAyAEIAYvAQ5BAXRqIAAQBCABIABBACADIAQgBBAEIAQgBC8BAEECajsBACAAIARBACADIAQgBi8BDkEBdGogABAE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";function AA(){try{if(d)return new Uint8Array(d);var A=fA($);if(A)return A;if(c)return c($);throw"both async and sync fetching of the wasm failed"}catch(A){wA(A)}}function IA(){return d||!C&&!i||"function"!=typeof fetch?new Promise((function(A,I){A(AA())})):fetch($,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+$+"'";return A.arrayBuffer()})).catch((function(){return AA()}))}function BA(A){var I={env:A};function B(A,I){var B=A.exports;g.asm=B,P()}function Q(A){B(A.instance)}function E(A){return IA().then((function(A){return WebAssembly.instantiate(A,I)})).then(A,(function(A){F("failed to asynchronously prepare wasm: "+A),wA(A)}))}if(T(),g.instantiateWasm)try{return g.instantiateWasm(I,B)}catch(A){return F("Module.instantiateWasm callback failed with error: "+A),!1}return function(){if(d||"function"!=typeof WebAssembly.instantiateStreaming||_($)||"function"!=typeof fetch)return E(Q);fetch($,{credentials:"same-origin"}).then((function(A){return WebAssembly.instantiateStreaming(A,I).then(Q,(function(A){F("wasm streaming compile failed: "+A),F("falling back to ArrayBuffer instantiation"),E(Q)}))}))}(),{}}_($)||($=D($)),g.asm=function(A,I,B){return I.memory=y,I.table=new WebAssembly.Table({initial:10,maximum:10,element:"anyfunc"}),BA(I)};var gA=[function(){if(void 0===g.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,B=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};B(),g.getRandomValue=B}catch(A){try{var Q=eval("require")("crypto"),E=function(){var A=Q.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};E(),g.getRandomValue=E}catch(A){throw"No secure random number generator found"}}},function(){return g.getRandomValue()}];function QA(A,I,B){for(var g=w(I),Q=[],E=function(A,I){return A+I-1&~(I-1)},C=B,i=0;i<g.length;i++){var n=g[i];"d"==n||"f"==n?(C=E(C,8),Q.push(q[C>>3]),C+=8):"i"==n&&(C=E(C,4),Q.push(h[C>>2]),C+=4)}return gA[A].apply(null,Q)}function EA(){return G.length}function CA(A,I,B){k.set(k.subarray(I,I+B),A)}function iA(A){return g.___errno_location&&(h[g.___errno_location()>>2]=A),A}function nA(A){wA("OOM")}function oA(A){nA()}function rA(A){A|=0;var I,B,g;return g=0|EA(),(0|A)>0&(0|(B=(I=0|h[S>>2])+A|0))<(0|I)|(0|B)<0?(nA(),iA(12),-1):(0|B)>(0|g)&&!(0|oA())?(iA(12),-1):(h[S>>2]=0|B,0|I)}m.push({func:function(){FA()}});var aA=!1;function cA(A){for(var I=[],B=0;B<A.length;B++){var g=A[B];g>255&&(aA&&u(!1,"Character code "+g+" ("+String.fromCharCode(g)+")  at offset "+B+" not in 0x00-0xFF."),g&=255),I.push(String.fromCharCode(g))}return I.join("")}var eA="function"==typeof atob?atob:function(A){var I,B,g,Q,E,C,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="",o=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=i.indexOf(A.charAt(o++))<<2|(Q=i.indexOf(A.charAt(o++)))>>4,B=(15&Q)<<4|(E=i.indexOf(A.charAt(o++)))>>2,g=(3&E)<<6|(C=i.indexOf(A.charAt(o++))),n+=String.fromCharCode(I),64!==E&&(n+=String.fromCharCode(B)),64!==C&&(n+=String.fromCharCode(g))}while(o<A.length);return n};function tA(A){if("boolean"==typeof n&&n){var I;try{I=Buffer.from(A,"base64")}catch(B){I=new Buffer(A,"base64")}return new Uint8Array(I.buffer,I.byteOffset,I.byteLength)}try{for(var B=eA(A),g=new Uint8Array(B.length),Q=0;Q<B.length;++Q)g[Q]=B.charCodeAt(Q);return g}catch(A){throw new Error("Converting base64 string to bytes failed.")}}function fA(A){if(_(A))return tA(A.slice(j.length))}var DA={},dA={b:QA,c:CA,a:rA},yA=g.asm(DA,dA,R);g.asm=yA;var NA,FA=g.___wasm_call_ctors=function(){return g.asm.d.apply(null,arguments)};g._malloc=function(){return g.asm.e.apply(null,arguments)},g._free=function(){return g.asm.f.apply(null,arguments)},g._ntrujs_init=function(){return g.asm.g.apply(null,arguments)},g._ntrujs_public_key_bytes=function(){return g.asm.h.apply(null,arguments)},g._ntrujs_private_key_bytes=function(){return g.asm.i.apply(null,arguments)},g._ntrujs_encrypted_bytes=function(){return g.asm.j.apply(null,arguments)},g._ntrujs_decrypted_bytes=function(){return g.asm.k.apply(null,arguments)},g._ntrujs_keypair=function(){return g.asm.l.apply(null,arguments)},g._ntrujs_encrypt=function(){return g.asm.m.apply(null,arguments)},g._ntrujs_decrypt=function(){return g.asm.n.apply(null,arguments)};function sA(A){this.name="ExitStatus",this.message="Program terminated with exit("+A+")",this.status=A}function uA(A){function I(){NA||(NA=!0,s||(z(),x(),g.onRuntimeInitialized&&g.onRuntimeInitialized(),v()))}A=A||E,K>0||(X(),K>0||(g.setStatus?(g.setStatus("Running..."),setTimeout((function(){setTimeout((function(){g.setStatus("")}),1),I()}),1)):I()))}function wA(A){throw g.onAbort&&g.onAbort(A),N(A+=""),F(A),s=!0,1,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(g.asm=yA,g.writeArrayToMemory=H,O=function A(){NA||uA(),NA||(O=A)},g.run=uA,g.abort=wA,g.preInit)for("function"==typeof g.preInit&&(g.preInit=[g.preInit]);g.preInit.length>0;)g.preInit.pop()();uA()})).catch((function(){var A,I=void 0!==(I={})?I:{},B={};for(A in I)I.hasOwnProperty(A)&&(B[A]=I[A]);var g=[],Q=!1,E=!1,C=!1,i=!1,n=!1;Q="object"==typeof window,E="function"==typeof importScripts,i="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,C=i&&!Q&&!E,n=!Q&&!C&&!E;var o,r,a,c,e="";function t(A){return I.locateFile?I.locateFile(A,e):e+A}C?(e=__dirname+"/",o=function(A,I){var B;return(B=yA(A))||(a||(a=eval("require")("fs")),c||(c=eval("require")("path")),A=c.normalize(A),B=a.readFileSync(A)),I?B:B.toString()},r=function(A){var I=o(A,!0);return I.buffer||(I=new Uint8Array(I)),R(I.buffer),I},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),g=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=I),process.on("uncaughtException",(function(A){if(!(A instanceof HA))throw A})),process.on("unhandledRejection",GA),I.inspect=function(){return"[Emscripten Module object]"}):n?("undefined"!=typeof read&&(o=function(A){var I=yA(A);return I?fA(I):read(A)}),r=function(A){var I;return(I=yA(A))?I:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(R("object"==typeof(I=read(A,"binary"))),I)},"undefined"!=typeof scriptArgs?g=scriptArgs:void 0!==arguments&&(g=arguments),"function"==typeof quit&&function(A){quit(A)},"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(Q||E)&&(E?e=self.location.href:document.currentScript&&(e=document.currentScript.src),e=0!==e.indexOf("blob:")?e.substr(0,e.lastIndexOf("/")+1):"",o=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){var B=yA(A);if(B)return fA(B);throw I}},E&&(r=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){var B=yA(A);if(B)return B;throw I}}),function(A,I,B){var g=new XMLHttpRequest;g.open("GET",A,!0),g.responseType="arraybuffer",g.onload=function(){if(200==g.status||0==g.status&&g.response)I(g.response);else{var Q=yA(A);Q?I(Q.buffer):B()}},g.onerror=B,g.send(null)});var f=I.print||console.log.bind(console),D=I.printErr||console.warn.bind(console);for(A in B)B.hasOwnProperty(A)&&(I[A]=B[A]);B=null,I.arguments&&(g=I.arguments),I.thisProgram&&I.thisProgram,I.quit&&I.quit;var d,y=0,N=function(A){y=A},F=function(){return y};I.wasmBinary&&(d=I.wasmBinary),I.noExitRuntime&&I.noExitRuntime;var s,u,w={Memory:function(A){return{buffer:new ArrayBuffer(65536*A.initial),grow:function(A){return wA(A)}}},Table:function(A){var I=new Array(A.initial);return I.grow=function(A){I.length>=10&&GA("Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH."),I.push(null)},I.set=function(A,B){I[A]=B},I.get=function(A){return I[A]},I},Module:function(A){return{}},Instance:function(A,I){var B="function"==typeof B?B:function(A){var I,B,g,Q,E,C,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="",o=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=i.indexOf(A.charAt(o++))<<2|(Q=i.indexOf(A.charAt(o++)))>>4,B=(15&Q)<<4|(E=i.indexOf(A.charAt(o++)))>>2,g=(3&E)<<6|(C=i.indexOf(A.charAt(o++))),n+=String.fromCharCode(I),64!==E&&(n+=String.fromCharCode(B)),64!==C&&(n+=String.fromCharCode(g))}while(o<A.length);return n};return{exports:function(A,I,g){var Q,E,C=(Q=I.buffer,E=new Uint8Array(Q),function(A,I){var g;if("undefined"==typeof Buffer)for(g=B(I);Q<g.length;Q++)E[A+Q]=g.charCodeAt(Q);else{g=Buffer.from(I,"base64");for(var Q=0;Q<g.length;Q++)E[A+Q]=g[Q]}});return C(1024,"InsgcmV0dXJuIE1vZHVsZS5nZXRSYW5kb21WYWx1ZSgpOyB9IgB7IGlmIChNb2R1bGUuZ2V0UmFuZG9tVmFsdWUgPT09IHVuZGVmaW5lZCkgeyB0cnkgeyB2YXIgd2luZG93XyA9ICdvYmplY3QnID09PSB0eXBlb2Ygd2luZG93ID8gd2luZG93IDogc2VsZjsgdmFyIGNyeXB0b18gPSB0eXBlb2Ygd2luZG93Xy5jcnlwdG8gIT09ICd1bmRlZmluZWQnID8gd2luZG93Xy5jcnlwdG8gOiB3aW5kb3dfLm1zQ3J5cHRvOyB2YXIgcmFuZG9tVmFsdWVzU3RhbmRhcmQgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IG5ldyBVaW50MzJBcnJheSgxKTsgY3J5cHRvXy5nZXRSYW5kb21WYWx1ZXMoYnVmKTsgcmV0dXJuIGJ1ZlswXSA+Pj4gMDsgfTsgcmFuZG9tVmFsdWVzU3RhbmRhcmQoKTsgTW9kdWxlLmdldFJhbmRvbVZhbHVlID0gcmFuZG9tVmFsdWVzU3RhbmRhcmQ7IH0gY2F0Y2ggKGUpIHsgdHJ5IHsgdmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOyB2YXIgcmFuZG9tVmFsdWVOb2RlSlMgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IGNyeXB0b1sncmFuZG9tQnl0ZXMnXSg0KTsgcmV0dXJuIChidWZbMF0gPDwgMjQgfCBidWZbMV0gPDwgMTYgfCBidWZbMl0gPDwgOCB8IGJ1ZlszXSkgPj4+IDA7IH07IHJhbmRvbVZhbHVlTm9kZUpTKCk7IE1vZHVsZS5nZXRSYW5kb21WYWx1ZSA9IHJhbmRvbVZhbHVlTm9kZUpTOyB9IGNhdGNoIChlKSB7IHRocm93ICdObyBzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgZm91bmQnOyB9IH0gfSB9"),C(1792,"AQBAABQAAAABAAAAAgAAAAMAAAAEAAAAAgBAACAAAAAFAAAABgAAAAcAAAAIAAAAAAAAAQEBAgIAAQIAAQIAAWVlczQwMWVwMQBlZXM0NDllcDEAZWVzNjc3ZXAxAGVlczEwODdlcDIAZWVzNTQxZXAxAGVlczYxM2VwMQBlZXM4ODdlcDEAZWVzMTE3MWVwMQBlZXM2NTllcDEAZWVzNzYxZXAxAGVlczEwODdlcDEAZWVzMTQ5OWVwMQBlZXM0MDFlcDIAZWVzNDM5ZXAxAGVlczU5M2VwMQBlZXM3NDNlcDEAZWVzNDQzZXAxAGVlczU4N2VwMQ=="),C(2628,"QAcAAAACBCIJAJEBDgAOAAAICwBxAAAAhQA8AHEA1QcLASkHAQAAAAEAAABKBwAAAAMDIwkAwQEQABAAAAgLAIYAAACVAEMAhgDBAQkBLwgBAAAAAgAAAFQHAAAABQMkCgClAhgAGAAACAsAnQAAAOEAZQCdAO8HCwEgCAIAAAADAAAAXgcAAAAGAyULAD8EIAAgAAAICwB4AAAAagGqAHgAuR0NARsLAgAAAAQAAABpBwAAAAIFJgoAHQIOAA4AAAgLADEAAAC0AFYAMQDLDgwBEAkBAAAABQAAAHMHAAAAAwQnCgBlAhAAEAAACAsANwAAAMwAYQA3AC8HCwESCgEAAAAGAAAAfQcAAAAFBCgKAHcDGAAYAAAICwBRAAAAJwGNAFEAdwMKARAJAgAAAAcAAACHBwAAAAYEKQsAkwQgACAAAAgLAGoAAACGAboAagC5DQwBGQwCAAAACAAAAJIHAAAAAgYqCgCTAg4ADgAACAsAJgAAANsAbAAmALkHCwELCgEAAAAJAAAAnAcAAAADBSsKAPkCEAAQAAAICwAqAAAA/QB9ACoA3Q4MAQ4MAQAAAAoAAACmBwAAAAUFLAsAPwQYABgAAAgLAD8AAABqAbIAPwC5HQ0BDgsCAAAACwAAALEHAAAABgUtCwDbBSAAIAAACAsATwAAAPMB9wBPAEcdDQESDgIAAAAMAAAAvAcAAAACEC4JAJEBDgAOAAAICwEICAYAhQA8AGUA1QcLAQcHAQAAAA0AAADGBwAAAAMQLwkAtwEQABAAAAgLAQkIBQCSAEEAcAC3AQkBCAgBAAAADgAAANAHAAAABRAwCgBRAhgAGAAACAsBCgoIAMUAVgCeAPMGCwEJBwIAAAAPAAAA2gcAAAAGEDEKAOcCIAAgAAAICwELCw8A9wBqAMwA7R8NAQkJAgAAABAAAADkBwAAAAMRMgkAuwEQACAAAAgLAQkIBQCUADEAcwC7AQkBBQUCAAAAEQAAAO4HAAAABREzCgBLAhgAIAAACAsBCgoIAMQATACdAOEGCwEHBwI="),function(A,I,B){I.memory;var Q=g,E=new A.Int8Array(B),C=new A.Int16Array(B),i=new A.Int32Array(B),n=new A.Uint8Array(B),o=new A.Uint16Array(B),r=new A.Uint32Array(B),a=(new A.Float32Array(B),new A.Float64Array(B),A.Math.imul),c=(A.Math.fround,A.Math.abs,A.Math.clz32,A.Math.min,A.Math.max,A.Math.floor,A.Math.ceil,A.Math.sqrt,I.abort),e=(A.NaN,A.Infinity,I.a),t=I.b,f=I.c,D=8392032;function d(A,I){var B=0,g=0;if(I&&(E[(B=A+I|0)+-1|0]=0,E[0|A]=0,!(I>>>0<3||(E[B+-2|0]=0,E[A+1|0]=0,E[B+-3|0]=0,E[A+2|0]=0,I>>>0<7||(E[B+-4|0]=0,E[A+3|0]=0,I>>>0<9||(i[(B=(g=0-A&3)+A|0)>>2]=0,i[(I=(g=I-g&-4)+B|0)+-4>>2]=0,g>>>0<9||(i[B+8>>2]=0,i[B+4>>2]=0,i[I+-8>>2]=0,i[I+-12>>2]=0,g>>>0<25||(i[B+24>>2]=0,i[B+20>>2]=0,i[B+16>>2]=0,i[B+12>>2]=0,i[I+-16>>2]=0,i[I+-20>>2]=0,i[I+-24>>2]=0,i[I+-28>>2]=0,(I=(I=g)-(g=4&B|24)|0)>>>0<32))))))))for(B=B+g|0;i[B+24>>2]=0,i[B+28>>2]=0,i[B+16>>2]=0,i[B+20>>2]=0,i[B+8>>2]=0,i[B+12>>2]=0,i[B>>2]=0,i[B+4>>2]=0,B=B+32|0,(I=I+-32|0)>>>0>31;);return A}function y(A,I,B){var g,Q=0,C=0;if(B>>>0>=8192)return f(0|A,0|I,0|B),A;g=A+B|0;A:if(3&(A^I))if(g>>>0<4)B=A;else if((Q=g+-4|0)>>>0<A>>>0)B=A;else for(B=A;E[0|B]=n[0|I],E[B+1|0]=n[I+1|0],E[B+2|0]=n[I+2|0],E[B+3|0]=n[I+3|0],I=I+4|0,(B=B+4|0)>>>0<=Q>>>0;);else{I:if((0|B)<1)B=A;else if(3&A)for(B=A;;){if(E[0|B]=n[0|I],I=I+1|0,(B=B+1|0)>>>0>=g>>>0)break I;if(!(3&B))break}else B=A;if(!((Q=-4&g)>>>0<64||B>>>0>(C=Q+-64|0)>>>0))for(;i[B>>2]=i[I>>2],i[B+4>>2]=i[I+4>>2],i[B+8>>2]=i[I+8>>2],i[B+12>>2]=i[I+12>>2],i[B+16>>2]=i[I+16>>2],i[B+20>>2]=i[I+20>>2],i[B+24>>2]=i[I+24>>2],i[B+28>>2]=i[I+28>>2],i[B+32>>2]=i[I+32>>2],i[B+36>>2]=i[I+36>>2],i[B+40>>2]=i[I+40>>2],i[B+44>>2]=i[I+44>>2],i[B+48>>2]=i[I+48>>2],i[B+52>>2]=i[I+52>>2],i[B+56>>2]=i[I+56>>2],i[B+60>>2]=i[I+60>>2],I=I- -64|0,(B=B- -64|0)>>>0<=C>>>0;);if(B>>>0>=Q>>>0)break A;for(;i[B>>2]=i[I>>2],I=I+4|0,(B=B+4|0)>>>0<Q>>>0;);}if(B>>>0<g>>>0)for(;E[0|B]=n[0|I],I=I+1|0,(0|g)!=(0|(B=B+1|0)););return A}function N(A){var I=0,B=0,g=0,Q=0,E=0,C=0,n=0;A:if(A|=0){E=(g=A+-8|0)+(A=-8&(B=i[A+-4>>2]))|0;I:if(!(1&B)){if(!(3&B))break A;if((g=g-(B=i[g>>2])|0)>>>0<r[532])break A;if(A=A+B|0,i[533]==(0|g)){if(3==(3&(B=i[E+4>>2])))return i[530]=A,i[E+4>>2]=-2&B,i[g+4>>2]=1|A,void(i[A+g>>2]=A)}else{if(B>>>0<=255){if(Q=i[g+8>>2],B>>>=3,(0|(I=i[g+12>>2]))==(0|Q)){i[528]=i[528]&nA(-2,B);break I}i[Q+12>>2]=I,i[I+8>>2]=Q;break I}if(n=i[g+24>>2],(0|g)==(0|(B=i[g+12>>2])))if((I=i[(Q=g+20|0)>>2])||(I=i[(Q=g+16|0)>>2])){for(;C=Q,(I=i[(Q=(B=I)+20|0)>>2])||(Q=B+16|0,I=i[B+16>>2]););i[C>>2]=0}else B=0;else I=i[g+8>>2],i[I+12>>2]=B,i[B+8>>2]=I;if(!n)break I;Q=i[g+28>>2];B:{if(i[(I=2416+(Q<<2)|0)>>2]==(0|g)){if(i[I>>2]=B,B)break B;i[529]=i[529]&nA(-2,Q);break I}if(i[n+(i[n+16>>2]==(0|g)?16:20)>>2]=B,!B)break I}if(i[B+24>>2]=n,(I=i[g+16>>2])&&(i[B+16>>2]=I,i[I+24>>2]=B),!(I=i[g+20>>2]))break I;i[B+20>>2]=I,i[I+24>>2]=B}}if(!(E>>>0<=g>>>0)&&1&(B=i[E+4>>2])){I:{if(!(2&B)){if(i[534]==(0|E)){if(i[534]=g,A=i[531]+A|0,i[531]=A,i[g+4>>2]=1|A,i[533]!=(0|g))break A;return i[530]=0,void(i[533]=0)}if(i[533]==(0|E))return i[533]=g,A=i[530]+A|0,i[530]=A,i[g+4>>2]=1|A,void(i[A+g>>2]=A);A=(-8&B)+A|0;B:if(B>>>0<=255){if(B>>>=3,(0|(I=i[E+8>>2]))==(0|(Q=i[E+12>>2]))){i[528]=i[528]&nA(-2,B);break B}i[I+12>>2]=Q,i[Q+8>>2]=I}else{if(n=i[E+24>>2],(0|E)==(0|(B=i[E+12>>2])))if((I=i[(Q=E+20|0)>>2])||(I=i[(Q=E+16|0)>>2])){for(;C=Q,(I=i[(Q=(B=I)+20|0)>>2])||(Q=B+16|0,I=i[B+16>>2]););i[C>>2]=0}else B=0;else I=i[E+8>>2],i[I+12>>2]=B,i[B+8>>2]=I;if(n){Q=i[E+28>>2];g:{if(i[(I=2416+(Q<<2)|0)>>2]==(0|E)){if(i[I>>2]=B,B)break g;i[529]=i[529]&nA(-2,Q);break B}if(i[n+(i[n+16>>2]==(0|E)?16:20)>>2]=B,!B)break B}i[B+24>>2]=n,(I=i[E+16>>2])&&(i[B+16>>2]=I,i[I+24>>2]=B),(I=i[E+20>>2])&&(i[B+20>>2]=I,i[I+24>>2]=B)}}if(i[g+4>>2]=1|A,i[A+g>>2]=A,i[533]!=(0|g))break I;return void(i[530]=A)}i[E+4>>2]=-2&B,i[g+4>>2]=1|A,i[A+g>>2]=A}if(A>>>0<=255)return B=2152+((A>>>=3)<<3)|0,(I=i[528])&(A=1<<A)?A=i[B+8>>2]:(i[528]=A|I,A=B),i[B+8>>2]=g,i[A+12>>2]=g,i[g+12>>2]=B,void(i[g+8>>2]=A);i[g+16>>2]=0,i[g+20>>2]=0,I=0,(Q=A>>>8)&&(I=31,A>>>0>16777215||(I=Q,I<<=Q=Q+1048320>>>16&8,I=28+((I=((I<<=n=I+520192>>>16&4)<<(C=I+245760>>>16&2)>>>15)-(C|Q|n)|0)<<1|A>>>I+21&1)|0)),i[(B=g)+28>>2]=I,C=2416+(I<<2)|0;I:if((Q=i[529])&(B=1<<I)){Q=A<<(31==(0|I)?0:25-(I>>>1)|0),B=i[C>>2];B:{for(;;){if(I=B,(-8&i[B+4>>2])==(0|A))break B;if(B=Q>>>29,Q<<=1,!(B=i[(C=I+(4&B)|0)+16>>2]))break}i[C+16>>2]=g,i[g+12>>2]=g,i[g+24>>2]=I,i[g+8>>2]=g;break I}A=i[I+8>>2],i[A+12>>2]=g,i[I+8>>2]=g,i[g+24>>2]=0,i[g+12>>2]=I,i[g+8>>2]=A}else i[529]=B|Q,i[C>>2]=g,i[g+12>>2]=g,i[g+24>>2]=C,i[g+8>>2]=g;if(A=i[536]+-1|0,i[536]=A,!A){for(g=2568;g=(A=i[g>>2])+8|0,A;);i[536]=-1}}}}function F(A,I,B,g,Q,E,i,n){for(var r=0,a=0,c=0,e=0,t=0;;){if((0|Q)==(0|r)){for(c=I+B|0,t=E+-1|0,a=I;;){if(c>>>0<=(B=65535&a)>>>0){for(r=0,a=0;;){if((0|Q)==(0|r)){for(;;){if((0|I)==(0|a)){A:for(r=0;;){if((0|Q)==(0|r))break A;C[(A=r<<1)+n>>1]=o[A+i>>1]&t,r=r+1|0}break}for(B=o[(a<<1)+g>>1],E=0,r=0;B>>>0<Q>>>0;)C[(c=(B<<1)+i|0)>>1]=o[(r<<1)+A>>1]+o[c>>1],r=r+1|0,B=B+1|0;for(;r>>>0<Q>>>0;)C[(B=(E<<1)+i|0)>>1]=o[(r<<1)+A>>1]+o[B>>1],E=E+1|0,r=r+1|0;a=a+1|0}break}C[(B=(r<<1)+i|0)>>1]=0-o[B>>1],r=r+1|0}break}for(B=o[(B<<1)+g>>1],E=0,r=0;B>>>0<Q>>>0;)C[(e=(B<<1)+i|0)>>1]=o[(r<<1)+A>>1]+o[e>>1],r=r+1|0,B=B+1|0;for(;r>>>0<Q>>>0;)C[(B=(E<<1)+i|0)>>1]=o[(r<<1)+A>>1]+o[B>>1],E=E+1|0,r=r+1|0;a=a+1|0}break}C[(r<<1)+i>>1]=0,r=r+1|0}}function s(A,I,B){for(var g=0,Q=0,E=0;(0|B)!=(0|E);)Q=(E<<2)+A|0,g=n[0|I]<<24,i[Q>>2]=g,g|=n[I+1|0]<<16,i[Q>>2]=g,g|=n[I+2|0]<<8,i[Q>>2]=g,i[Q>>2]=g|n[I+3|0],E=E+1|0,I=I+4|0}function u(A,I,B){return A=!A|(B?!I:0)?514:m(A,I,B)}function w(A){var I,B=0,g=0,Q=0,E=0,C=0,o=0,a=0,c=0,t=0,f=0;D=I=D-16|0;A:{I:{B:{g:{Q:{E:{C:{i:{n:{o:{r:{if((A|=0)>>>0<=244){if(3&(B=(C=i[528])>>>(A=(o=A>>>0<11?16:A+11&-8)>>>3))){A=(B=i[(E=(g=A+(1&(-1^B))|0)<<3)+2160>>2])+8|0,(0|(Q=i[B+8>>2]))!=(0|(E=E+2152|0))?(i[Q+12>>2]=E,i[E+8>>2]=Q):i[528]=nA(-2,g)&C,g<<=3,i[B+4>>2]=3|g,i[(B=B+g|0)+4>>2]=1|i[B+4>>2];break A}if(o>>>0<=(c=i[530])>>>0)break r;if(B){g=B=(A=(0-(A=(0-(g=2<<A)|g)&B<<A)&A)-1|0)>>>12&16,g|=B=(A>>>=B)>>>5&8,g|=B=(A>>>=B)>>>2&4,B=i[(Q=(g=((g|=B=(A>>>=B)>>>1&2)|(B=(A>>>=B)>>>1&1))+(A>>>B)|0)<<3)+2160>>2],(0|(A=i[B+8>>2]))!=(0|(Q=Q+2152|0))?(i[A+12>>2]=Q,i[Q+8>>2]=A):(C=nA(-2,g)&C,i[528]=C),A=B+8|0,i[B+4>>2]=3|o,E=(g<<=3)-o|0,i[(a=B+o|0)+4>>2]=1|E,i[B+g>>2]=E,c&&(B=2152+((g=c>>>3)<<3)|0,Q=i[533],(g=1<<g)&C?g=i[B+8>>2]:(i[528]=g|C,g=B),i[B+8>>2]=Q,i[g+12>>2]=Q,i[Q+12>>2]=B,i[Q+8>>2]=g),i[533]=a,i[530]=E;break A}if(!(f=i[529]))break r;for(g=B=(A=(f&0-f)-1|0)>>>12&16,g|=B=(A>>>=B)>>>5&8,g|=B=(A>>>=B)>>>2&4,B=i[2416+(((g|=B=(A>>>=B)>>>1&2)|(B=(A>>>=B)>>>1&1))+(A>>>B)<<2)>>2],Q=(-8&i[B+4>>2])-o|0,g=B;(A=i[g+16>>2])||(A=i[g+20>>2]);)Q=(g=(E=(-8&i[A+4>>2])-o|0)>>>0<Q>>>0)?E:Q,B=g?A:B,g=A;if(t=i[B+24>>2],(0|(E=i[B+12>>2]))!=(0|B)){A=i[B+8>>2],i[A+12>>2]=E,i[E+8>>2]=A;break I}if(!(A=i[(g=B+20|0)>>2])){if(!(A=i[B+16>>2]))break o;g=B+16|0}for(;a=g,E=A,(A=i[(g=A+20|0)>>2])||(g=E+16|0,A=i[E+16>>2]););i[a>>2]=0;break I}if(o=-1,!(A>>>0>4294967231)&&(o=-8&(B=A+11|0),c=i[529])){g=0-o|0,C=0,(B>>>=8)&&(C=31,o>>>0>16777215||(C=28+((A=((C=(B<<=Q=B+1048320>>>16&8)<<(A=B+520192>>>16&4))<<(B=C+245760>>>16&2)>>>15)-(B|A|Q)|0)<<1|o>>>A+21&1)|0));a:{c:{if(Q=i[2416+(C<<2)>>2])for(B=o<<(31==(0|C)?0:25-(C>>>1)|0),A=0;;){if(!((a=(-8&i[Q+4>>2])-o|0)>>>0>=g>>>0||(E=Q,g=a))){g=0,A=Q;break c}if(a=i[Q+20>>2],Q=i[16+((B>>>29&4)+Q|0)>>2],A=a?(0|a)==(0|Q)?A:a:A,B<<=0!=(0|Q),!Q)break}else A=0;if(!(A|E)){if(!(A=(0-(A=2<<C)|A)&c))break r;Q=B=(A=(A&0-A)-1|0)>>>12&16,Q|=B=(A>>>=B)>>>5&8,Q|=B=(A>>>=B)>>>2&4,A=i[2416+(((Q|=B=(A>>>=B)>>>1&2)|(B=(A>>>=B)>>>1&1))+(A>>>B)<<2)>>2]}if(!A)break a}for(;g=(B=(Q=(-8&i[A+4>>2])-o|0)>>>0<g>>>0)?Q:g,E=B?A:E,A=(B=i[A+16>>2])||i[A+20>>2];);}if(!(!E|g>>>0>=i[530]-o>>>0)){if(a=i[E+24>>2],(0|E)!=(0|(B=i[E+12>>2]))){A=i[E+8>>2],i[A+12>>2]=B,i[B+8>>2]=A;break B}if(!(A=i[(Q=E+20|0)>>2])){if(!(A=i[E+16>>2]))break n;Q=E+16|0}for(;C=Q,B=A,(A=i[(Q=A+20|0)>>2])||(Q=B+16|0,A=i[B+16>>2]););i[C>>2]=0;break B}}}if((B=i[530])>>>0>=o>>>0){A=i[533],(g=B-o|0)>>>0>=16?(i[530]=g,Q=A+o|0,i[533]=Q,i[Q+4>>2]=1|g,i[A+B>>2]=g,i[A+4>>2]=3|o):(i[533]=0,i[530]=0,i[A+4>>2]=3|B,i[(B=A+B|0)+4>>2]=1|i[B+4>>2]),A=A+8|0;break A}if((Q=i[531])>>>0>o>>>0){B=Q-o|0,i[531]=B,g=(A=i[534])+o|0,i[534]=g,i[g+4>>2]=1|B,i[A+4>>2]=3|o,A=A+8|0;break A}if(A=0,g=E=o+47|0,i[646]?B=i[648]:(i[649]=-1,i[650]=-1,i[647]=4096,i[648]=4096,i[646]=I+12&-16^1431655768,i[651]=0,i[639]=0,B=4096),(g=(C=g+B|0)&(a=0-B|0))>>>0<=o>>>0)break A;if((B=i[638])&&(t=(c=i[636])+g|0)>>>0<=c>>>0|t>>>0>B>>>0)break A;if(4&n[2556])break E;r:{a:{if(B=i[534])for(A=2560;;){if((c=i[A>>2])+i[A+4>>2]>>>0>B>>>0&&c>>>0<=B>>>0)break a;if(!(A=i[A+8>>2]))break}if(-1==(0|(B=0|e(0))))break C;if(C=g,(Q=(A=i[647])+-1|0)&B&&(C=(g-B|0)+(B+Q&0-A)|0),C>>>0<=o>>>0|C>>>0>2147483646)break C;if((A=i[638])&&(a=(Q=i[636])+C|0)>>>0<=Q>>>0|a>>>0>A>>>0)break C;if((0|B)!=(0|(A=0|e(0|C))))break r;break Q}if((C=a&C-Q)>>>0>2147483646)break C;if((0|(B=0|e(0|C)))==(i[A>>2]+i[A+4>>2]|0))break i;A=B}if(B=A,!(o+48>>>0<=C>>>0|C>>>0>2147483646|-1==(0|A))){if((A=(A=i[648])+(E-C|0)&0-A)>>>0>2147483646)break Q;if(-1!=(0|e(0|A))){C=A+C|0;break Q}e(0-C|0);break C}if(-1!=(0|B))break Q;break C}E=0;break I}B=0;break B}if(-1!=(0|B))break Q}i[639]=4|i[639]}if(g>>>0>2147483646)break g;if((B=0|e(0|g))>>>0>=(A=0|e(0))>>>0|-1==(0|B)|-1==(0|A))break g;if((C=A-B|0)>>>0<=o+40>>>0)break g}A=i[636]+C|0,i[636]=A,A>>>0>r[637]&&(i[637]=A);Q:{E:{C:{if(g=i[534]){for(A=2560;;){if(((Q=i[A>>2])+(E=i[A+4>>2])|0)==(0|B))break C;if(!(A=i[A+8>>2]))break}break E}for(B>>>0>=(A=i[532])>>>0&&A||(i[532]=B),A=0,i[641]=C,i[640]=B,i[536]=-1,i[537]=i[646],i[643]=0;Q=(g=A<<3)+2152|0,i[g+2160>>2]=Q,i[g+2164>>2]=Q,32!=(0|(A=A+1|0)););Q=(A=C+-40|0)-(g=B+8&7?-8-B&7:0)|0,i[531]=Q,g=B+g|0,i[534]=g,i[g+4>>2]=1|Q,i[4+(A+B|0)>>2]=40,i[535]=i[650];break Q}if(!(8&n[A+12|0]|B>>>0<=g>>>0|Q>>>0>g>>>0)){i[A+4>>2]=E+C,B=(A=g+8&7?-8-g&7:0)+g|0,i[534]=B,A=(Q=i[531]+C|0)-A|0,i[531]=A,i[B+4>>2]=1|A,i[4+(g+Q|0)>>2]=40,i[535]=i[650];break Q}}B>>>0<(E=i[532])>>>0&&(i[532]=B,E=0),Q=B+C|0,A=2560;E:{C:{i:{n:{o:{r:{for(;;){if((0|Q)!=i[A>>2]){if(A=i[A+8>>2])continue;break r}break}if(!(8&n[A+12|0]))break o}for(A=2560;;){if((Q=i[A>>2])>>>0<=g>>>0&&(E=Q+i[A+4>>2]|0)>>>0>g>>>0)break n;A=i[A+8>>2]}}if(i[A>>2]=B,i[A+4>>2]=i[A+4>>2]+C,i[(t=(B+8&7?-8-B&7:0)+B|0)+4>>2]=3|o,A=((B=Q+(Q+8&7?-8-Q&7:0)|0)-t|0)-o|0,a=o+t|0,(0|B)==(0|g)){i[534]=a,A=i[531]+A|0,i[531]=A,i[a+4>>2]=1|A;break C}if(i[533]==(0|B)){i[533]=a,A=i[530]+A|0,i[530]=A,i[a+4>>2]=1|A,i[A+a>>2]=A;break C}if(1==(3&(g=i[B+4>>2]))){f=-8&g;o:if(g>>>0<=255){if(E=g>>>3,g=i[B+8>>2],(0|(Q=i[B+12>>2]))==(0|g)){i[528]=i[528]&nA(-2,E);break o}i[g+12>>2]=Q,i[Q+8>>2]=g}else{if(c=i[B+24>>2],(0|(C=i[B+12>>2]))==(0|B))if((o=i[(Q=B+20|0)>>2])||(o=i[(Q=B+16|0)>>2])){for(;g=Q,C=o,(o=i[(Q=o+20|0)>>2])||(Q=C+16|0,o=i[C+16>>2]););i[g>>2]=0}else C=0;else g=i[B+8>>2],i[g+12>>2]=C,i[C+8>>2]=g;if(c){g=i[B+28>>2];r:{if(i[(Q=2416+(g<<2)|0)>>2]==(0|B)){if(i[Q>>2]=C,C)break r;i[529]=i[529]&nA(-2,g);break o}if(i[c+(i[c+16>>2]==(0|B)?16:20)>>2]=C,!C)break o}i[C+24>>2]=c,(g=i[B+16>>2])&&(i[C+16>>2]=g,i[g+24>>2]=C),(g=i[B+20>>2])&&(i[C+20>>2]=g,i[g+24>>2]=C)}}B=B+f|0,A=A+f|0}if(i[B+4>>2]=-2&i[B+4>>2],i[a+4>>2]=1|A,i[A+a>>2]=A,A>>>0<=255){A=2152+((B=A>>>3)<<3)|0,(g=i[528])&(B=1<<B)?B=i[A+8>>2]:(i[528]=B|g,B=A),i[A+8>>2]=a,i[B+12>>2]=a,i[a+12>>2]=A,i[a+8>>2]=B;break C}if(B=0,(Q=A>>>8)&&(B=31,A>>>0>16777215||(B=28+((B=((o=(Q<<=E=Q+1048320>>>16&8)<<(B=Q+520192>>>16&4))<<(Q=o+245760>>>16&2)>>>15)-(Q|B|E)|0)<<1|A>>>B+21&1)|0)),i[(g=a)+28>>2]=B,i[a+16>>2]=0,i[a+20>>2]=0,g=2416+(B<<2)|0,(Q=i[529])&(E=1<<B)){for(Q=A<<(31==(0|B)?0:25-(B>>>1)|0),B=i[g>>2];;){if(g=B,(-8&i[B+4>>2])==(0|A))break i;if(B=Q>>>29,Q<<=1,!(B=i[(E=(4&B)+g|0)+16>>2]))break}i[E+16>>2]=a}else i[529]=Q|E,i[g>>2]=a;i[a+24>>2]=g,i[a+12>>2]=a,i[a+8>>2]=a;break C}for(a=(A=C+-40|0)-(Q=B+8&7?-8-B&7:0)|0,i[531]=a,Q=B+Q|0,i[534]=Q,i[Q+4>>2]=1|a,i[4+(A+B|0)>>2]=40,i[535]=i[650],i[(Q=(A=(E+(E+-39&7?39-E&7:0)|0)-47|0)>>>0<g+16>>>0?g:A)+4>>2]=27,A=i[643],i[Q+16>>2]=i[642],i[Q+20>>2]=A,A=i[641],i[Q+8>>2]=i[640],i[Q+12>>2]=A,i[642]=Q+8,i[641]=C,i[640]=B,i[643]=0,A=Q+24|0;i[A+4>>2]=7,B=A+8|0,A=A+4|0,B>>>0<E>>>0;);if((0|g)==(0|Q))break Q;if(i[Q+4>>2]=-2&i[Q+4>>2],E=Q-g|0,i[g+4>>2]=1|E,i[Q>>2]=E,E>>>0<=255){A=2152+((B=E>>>3)<<3)|0,(Q=i[528])&(B=1<<B)?B=i[A+8>>2]:(i[528]=B|Q,B=A),i[A+8>>2]=g,i[B+12>>2]=g,i[g+12>>2]=A,i[g+8>>2]=B;break Q}if(i[g+16>>2]=0,i[g+20>>2]=0,A=0,(Q=E>>>8)&&(A=31,E>>>0>16777215||(A=28+((A=((a=(Q<<=C=Q+1048320>>>16&8)<<(A=Q+520192>>>16&4))<<(Q=a+245760>>>16&2)>>>15)-(Q|A|C)|0)<<1|E>>>A+21&1)|0)),i[(B=g)+28>>2]=A,B=2416+(A<<2)|0,(Q=i[529])&(C=1<<A)){for(A=E<<(31==(0|A)?0:25-(A>>>1)|0),B=i[B>>2];;){if(Q=B,(0|E)==(-8&i[B+4>>2]))break E;if(B=A>>>29,A<<=1,!(B=i[(C=Q+(4&B)|0)+16>>2]))break}i[C+16>>2]=g,i[g+24>>2]=Q}else i[529]=Q|C,i[B>>2]=g,i[g+24>>2]=B;i[g+12>>2]=g,i[g+8>>2]=g;break Q}A=i[g+8>>2],i[A+12>>2]=a,i[g+8>>2]=a,i[a+24>>2]=0,i[a+12>>2]=g,i[a+8>>2]=A}A=t+8|0;break A}A=i[Q+8>>2],i[A+12>>2]=g,i[Q+8>>2]=g,i[g+24>>2]=0,i[g+12>>2]=Q,i[g+8>>2]=A}if(!((A=i[531])>>>0<=o>>>0)){B=A-o|0,i[531]=B,g=(A=i[534])+o|0,i[534]=g,i[g+4>>2]=1|B,i[A+4>>2]=3|o,A=A+8|0;break A}}i[527]=12,A=0;break A}B:if(a){A=i[E+28>>2];g:{if(i[(Q=2416+(A<<2)|0)>>2]==(0|E)){if(i[Q>>2]=B,B)break g;c=nA(-2,A)&c,i[529]=c;break B}if(i[a+(i[a+16>>2]==(0|E)?16:20)>>2]=B,!B)break B}i[B+24>>2]=a,(A=i[E+16>>2])&&(i[B+16>>2]=A,i[A+24>>2]=B),(A=i[E+20>>2])&&(i[B+20>>2]=A,i[A+24>>2]=B)}B:if(g>>>0<=15)A=g+o|0,i[E+4>>2]=3|A,i[(A=A+E|0)+4>>2]=1|i[A+4>>2];else if(i[E+4>>2]=3|o,i[(Q=E+o|0)+4>>2]=1|g,i[g+Q>>2]=g,g>>>0<=255)A=2152+((B=g>>>3)<<3)|0,(g=i[528])&(B=1<<B)?B=i[A+8>>2]:(i[528]=B|g,B=A),i[A+8>>2]=Q,i[B+12>>2]=Q,i[Q+12>>2]=A,i[Q+8>>2]=B;else{A=0,(o=g>>>8)&&(A=31,g>>>0>16777215||(A=28+((A=((a=(o<<=C=o+1048320>>>16&8)<<(A=o+520192>>>16&4))<<(o=a+245760>>>16&2)>>>15)-(o|A|C)|0)<<1|g>>>A+21&1)|0)),i[(B=Q)+28>>2]=A,i[Q+16>>2]=0,i[Q+20>>2]=0,B=2416+(A<<2)|0;g:{if((o=1<<A)&c){for(A=g<<(31==(0|A)?0:25-(A>>>1)|0),o=i[B>>2];;){if((-8&i[(B=o)+4>>2])==(0|g))break g;if(o=A>>>29,A<<=1,!(o=i[(C=(4&o)+B|0)+16>>2]))break}i[C+16>>2]=Q}else i[529]=o|c,i[B>>2]=Q;i[Q+24>>2]=B,i[Q+12>>2]=Q,i[Q+8>>2]=Q;break B}A=i[B+8>>2],i[A+12>>2]=Q,i[B+8>>2]=Q,i[Q+24>>2]=0,i[Q+12>>2]=B,i[Q+8>>2]=A}A=E+8|0;break A}I:if(t){A=i[B+28>>2];B:{if(i[(g=2416+(A<<2)|0)>>2]==(0|B)){if(i[g>>2]=E,E)break B;i[529]=nA(-2,A)&f;break I}if(i[t+(i[t+16>>2]==(0|B)?16:20)>>2]=E,!E)break I}i[E+24>>2]=t,(A=i[B+16>>2])&&(i[E+16>>2]=A,i[A+24>>2]=E),(A=i[B+20>>2])&&(i[E+20>>2]=A,i[A+24>>2]=E)}Q>>>0<=15?(A=Q+o|0,i[B+4>>2]=3|A,i[(A=A+B|0)+4>>2]=1|i[A+4>>2]):(i[B+4>>2]=3|o,i[(o=B+o|0)+4>>2]=1|Q,i[Q+o>>2]=Q,c&&(A=2152+((g=c>>>3)<<3)|0,E=i[533],(g=1<<g)&C?g=i[A+8>>2]:(i[528]=g|C,g=A),i[A+8>>2]=E,i[g+12>>2]=E,i[E+12>>2]=A,i[E+8>>2]=g),i[533]=o,i[530]=Q),A=B+8|0}return D=I+16|0,0|A}function H(A,I,B,g,Q,C,i){var o;o=A+B|0;A:{if(C){if(C=AA(I,C,Q,A))break A;E[0|o]=0,E[o+1|0]=0,E[o+2|0]=0,E[o+3|0]=0}for(Q=B+4|0;;){if(!(255&g)){C=0;break A}if(C=AA(I,A,Q,i))break A;g=g+-1|0,C=n[o+3|0]+1|0,E[o+3|0]=C,i=B+i|0,(0|C)!=(255&C)&&(C=n[o+2|0]+1|0,E[o+2|0]=C,(0|C)!=(255&C)&&(C=n[o+1|0]+1|0,E[o+1|0]=C,(0|C)!=(255&C)&&(E[0|o]=n[0|o]+1)))}}return C}function R(A,I){var B=0,g=0;B=514;A:if(!(!A|!I)){for(;g>>>0<o[A+116>>1];)B=i[A+112>>2]+g|0,E[0|B]=106^n[0|B],g=g+1|0;for((B=IA(A,I))||(B=BA(A))||(B=m(A,i[A+112>>2],o[A+116>>1]))||(B=m(A,I,o[A+118>>1]))||(B=IA(A,I)),g=0;;){if(g>>>0>=o[A+116>>1])break A;I=i[A+112>>2]+g|0,E[0|I]=92^n[0|I],g=g+1|0}}return B}function G(A){var I=0,B=0;if(A){for(;I>>>0<o[A+116>>1];)B=i[A+112>>2]+I|0,E[0|B]=54^n[0|B],I=I+1|0;if(!(I=BA(A)))return m(A,i[A+112>>2],o[A+116>>1])}else I=514;return I}function k(A,I){var B,g,Q,E,C,n,o,r,a,c,e,t,f,D,d,y,N,F,s,u,w,H,R,G,k,h,q,M,l,U,S,p,L,J=0,m=0,b=0,Y=0,X=0,z=0,x=0,v=0,Z=0,V=0,K=0,W=0,O=0,T=0,P=0,j=0,_=0,$=0,AA=0,IA=0,BA=0,gA=0,QA=0,EA=0,CA=0,iA=0,oA=0,rA=0,aA=0,cA=0,eA=0,tA=0,fA=0,DA=0,dA=0,yA=0,NA=0;$=(J=i[A+56>>2])+(nA(b=i[A+60>>2],14)^b>>>3^nA(b,25))|0,Y=(m=((BA=i[A+36>>2])+((CA=i[A>>2])+(nA(Z=i[A+4>>2],14)^Z>>>3^nA(Z,25))|0)|0)+(nA(J,13)^J>>>10^nA(J,15))|0)+((EA=i[A+28>>2])+(nA(dA=i[A+32>>2],14)^dA>>>3^nA(dA,25))|0)|0,X=J+((j=i[A+20>>2])+(nA(AA=i[A+24>>2],14)^AA>>>3^nA(AA,25))|0)|0,z=(eA=i[A+48>>2])+((QA=i[A+12>>2])+(nA(_=i[A+16>>2],14)^_>>>3^nA(_,25))|0)|0,x=Y,v=X,Y=((tA=i[A+40>>2])+(Z+(nA(V=i[A+8>>2],14)^V>>>3^nA(V,25))|0)|0)+(nA(b,13)^b>>>10^nA(b,15))|0,X=(nA(Y,13)^Y>>>10^nA(Y,15))+z|0,z=v+(nA(X,13)^X>>>10^nA(X,15))|0,v=x+(nA(z,13)^z>>>10^nA(z,15))|0,x=z+(eA+(nA(F=i[A+52>>2],14)^F>>>3^nA(F,25))|0)|0,A=X+(tA+(nA(fA=i[A+44>>2],14)^fA>>>3^nA(fA,25))|0)|0,K=Y+(dA+(nA(BA,14)^BA>>>3^nA(BA,25))|0)|0,T=b+(AA+(nA(EA,14)^EA>>>3^nA(EA,25))|0)|0,W=(_+(nA(j,14)^j>>>3^nA(j,25))|0)+F|0,O=(fA+(V+(nA(QA,14)^QA>>>3^nA(QA,25))|0)|0)+(nA(m,13)^m>>>10^nA(m,15))|0,W=W+(nA(O,13)^O>>>10^nA(O,15))|0,T=T+(nA(W,13)^W>>>10^nA(W,15))|0,P=K+(nA(T,13)^T>>>10^nA(T,15))|0,IA=A+(nA(P,13)^P>>>10^nA(P,15))|0,oA=x+(nA(IA,13)^IA>>>10^nA(IA,15))|0,B=(v+$|0)+(nA(oA,13)^oA>>>10^nA(oA,15))|0,$=nA(B,14)^B>>>3^nA(B,25),A=T+((nA(J,14)^J>>>3^nA(J,25))+F|0)|0,x=W+(fA+(nA(eA,14)^eA>>>3^nA(eA,25))|0)|0,rA=(O+(BA+(nA(tA,14)^tA>>>3^nA(tA,25))|0)|0)+(nA(v,13)^v>>>10^nA(v,15))|0,g=x+(nA(rA,13)^rA>>>10^nA(rA,15))|0,A=A+(nA(g,13)^g>>>10^nA(g,15))|0,x=(Q=(P+(b+(nA(m,14)^m>>>3^nA(m,25))|0)|0)+(nA(A,13)^A>>>10^nA(A,15))|0)+(T+(nA(v,14)^v>>>3^nA(v,25))|0)|0,K=(W+(nA(z,14)^z>>>3^nA(z,25))|0)+A|0,gA=(O+(nA(X,14)^X>>>3^nA(X,25))|0)+g|0,E=((m+(nA(Y,14)^Y>>>3^nA(Y,25))|0)+rA|0)+(nA(B,13)^B>>>10^nA(B,15))|0,C=gA+(nA(E,13)^E>>>10^nA(E,15))|0,n=K+(nA(C,13)^C>>>10^nA(C,15))|0,o=x+(nA(n,13)^n>>>10^nA(n,15))|0,x=((nA(oA,14)^oA>>>3^nA(oA,25))+g|0)+n|0,K=((nA(IA,14)^IA>>>3^nA(IA,25))+rA|0)+C|0,gA=(v+(nA(P,14)^P>>>3^nA(P,25))|0)+E|0,aA=B+(z+(nA(T,14)^T>>>3^nA(T,25))|0)|0,cA=oA+(X+(nA(W,14)^W>>>3^nA(W,25))|0)|0,r=(IA+(Y+(nA(O,14)^O>>>3^nA(O,25))|0)|0)+(nA(Q,13)^Q>>>10^nA(Q,15))|0,cA=cA+(nA(r,13)^r>>>10^nA(r,15))|0,aA=aA+(nA(cA,13)^cA>>>10^nA(cA,15))|0,a=gA+(nA(aA,13)^aA>>>10^nA(aA,15))|0,c=K+(nA(a,13)^a>>>10^nA(a,15))|0,e=x+(nA(c,13)^c>>>10^nA(c,15))|0,t=(o+(A+$|0)|0)+(nA(e,13)^e>>>10^nA(e,15))|0,x=nA(t,14)^t>>>3^nA(t,25),K=(oA+(nA(A,14)^A>>>3^nA(A,25))|0)+aA|0,$=(IA+(nA(g,14)^g>>>3^nA(g,25))|0)+cA|0,f=((P+(nA(rA,14)^rA>>>3^nA(rA,25))|0)+r|0)+(nA(o,13)^o>>>10^nA(o,15))|0,D=$+(nA(f,13)^f>>>10^nA(f,15))|0,$=K+(nA(D,13)^D>>>10^nA(D,15))|0,K=(d=((B+(nA(Q,14)^Q>>>3^nA(Q,25))|0)+a|0)+(nA($,13)^$>>>10^nA($,15))|0)+((nA(o,14)^o>>>3^nA(o,25))+aA|0)|0,gA=((nA(n,14)^n>>>3^nA(n,25))+cA|0)+$|0,iA=((nA(C,14)^C>>>3^nA(C,25))+r|0)+D|0,y=(((nA(E,14)^E>>>3^nA(E,25))+Q|0)+f|0)+(nA(t,13)^t>>>10^nA(t,15))|0,s=iA+(nA(y,13)^y>>>10^nA(y,15))|0,u=gA+(nA(s,13)^s>>>10^nA(s,15))|0,w=K+(nA(u,13)^u>>>10^nA(u,15))|0,K=((nA(e,14)^e>>>3^nA(e,25))+D|0)+u|0,gA=((nA(c,14)^c>>>3^nA(c,25))+f|0)+s|0,iA=((nA(a,14)^a>>>3^nA(a,25))+o|0)+y|0,DA=((nA(aA,14)^aA>>>3^nA(aA,25))+n|0)+t|0,yA=((nA(cA,14)^cA>>>3^nA(cA,25))+C|0)+e|0,N=(((nA(r,14)^r>>>3^nA(r,25))+E|0)+c|0)+(nA(d,13)^d>>>10^nA(d,15))|0,yA=yA+(nA(N,13)^N>>>10^nA(N,15))|0,H=DA+(nA(yA,13)^yA>>>10^nA(yA,15))|0,R=iA+(nA(H,13)^H>>>10^nA(H,15))|0,G=gA+(nA(R,13)^R>>>10^nA(R,15))|0,q=K+(nA(G,13)^G>>>10^nA(G,15))|0,M=(w+(x+$|0)|0)+(nA(q,13)^q>>>10^nA(q,15))|0,x=(x=CA)+((S=i[I+28>>2])+(nA(CA=i[I+16>>2],26)^nA(CA,21)^nA(CA,7))|0)|0,K=nA(x=(p=i[I+12>>2])+(DA=1116352408+(((l=i[I+24>>2])^CA&(l^(k=i[I+20>>2])))+x|0)|0)|0,26)^nA(x,21),iA=1899447441+(((Z+l|0)+(x&(CA^k)^k)|0)+(nA(x,7)^K)|0)|0,K=nA(Z=iA+(U=i[I+8>>2])|0,26)^nA(Z,21),gA=(((V+k|0)+(CA^Z&(x^CA))|0)+(nA(Z,7)^K)|0)-1245643825|0,K=nA(V=gA+(h=i[I+4>>2])|0,26)^nA(V,21),L=(((QA+CA|0)+(x^V&(x^Z))|0)+(nA(V,7)^K)|0)-373957723|0,NA=nA(K=L+(QA=i[I>>2])|0,26)^nA(K,21),NA=961987163+(((x+_|0)+(Z^K&(Z^V))|0)+(nA(K,7)^NA)|0)|0,x=DA+(((QA|h)&U|QA&h)+(nA(QA,30)^nA(QA,19)^nA(QA,10))|0)|0,DA=nA(_=NA+x|0,26)^nA(_,21),DA=1508970993+(((Z+j|0)+(V^_&(V^K))|0)+(nA(_,7)^DA)|0)|0,Z=iA+(((x|QA)&h|x&QA)+(nA(x,30)^nA(x,19)^nA(x,10))|0)|0,iA=nA(j=DA+Z|0,26)^nA(j,21),iA=(((V+AA|0)+(K^j&(K^_))|0)+(nA(j,7)^iA)|0)-1841331548|0,V=gA+((QA&(x|Z)|x&Z)+(nA(Z,30)^nA(Z,19)^nA(Z,10))|0)|0,gA=nA(AA=iA+V|0,26)^nA(AA,21),EA=(((K+EA|0)+(_^AA&(j^_))|0)+(nA(AA,7)^gA)|0)-1424204075|0,x=((x&(Z|V)|Z&V)+(nA(V,30)^nA(V,19)^nA(V,10))|0)+L|0,gA=nA(K=EA+x|0,26)^nA(K,21),dA=(((_+dA|0)+(j^K&(j^AA))|0)+(nA(K,7)^gA)|0)-670586216|0,Z=((Z&(x|V)|x&V)+(nA(x,30)^nA(x,19)^nA(x,10))|0)+NA|0,gA=nA(_=dA+Z|0,26)^nA(_,21),BA=310598401+(((j+BA|0)+(AA^_&(K^AA))|0)+(nA(_,7)^gA)|0)|0,V=DA+((V&(x|Z)|x&Z)+(nA(Z,30)^nA(Z,19)^nA(Z,10))|0)|0,gA=nA(j=BA+V|0,26)^nA(j,21),tA=607225278+(((AA+tA|0)+(K^j&(K^_))|0)+(nA(j,7)^gA)|0)|0,x=iA+((x&(Z|V)|Z&V)+(nA(V,30)^nA(V,19)^nA(V,10))|0)|0,iA=nA(AA=tA+x|0,26)^nA(AA,21),fA=1426881987+(((K+fA|0)+(_^AA&(j^_))|0)+(nA(AA,7)^iA)|0)|0,Z=EA+((Z&(x|V)|x&V)+(nA(x,30)^nA(x,19)^nA(x,10))|0)|0,EA=nA(K=fA+Z|0,26)^nA(K,21),eA=1925078388+(((_+eA|0)+(j^K&(j^AA))|0)+(nA(K,7)^EA)|0)|0,V=dA+((V&(x|Z)|x&Z)+(nA(Z,30)^nA(Z,19)^nA(Z,10))|0)|0,EA=nA(_=eA+V|0,26)^nA(_,21),EA=(((j+F|0)+(AA^_&(K^AA))|0)+(nA(_,7)^EA)|0)-2132889090|0,x=BA+((x&(Z|V)|Z&V)+(nA(V,30)^nA(V,19)^nA(V,10))|0)|0,BA=nA(j=EA+x|0,26)^nA(j,21),AA=(((J+AA|0)+(K^j&(K^_))|0)+(nA(j,7)^BA)|0)-1680079193|0,J=tA+((Z&(x|V)|x&V)+(nA(x,30)^nA(x,19)^nA(x,10))|0)|0,BA=nA(Z=AA+J|0,26)^nA(Z,21),K=(((b+K|0)+(_^Z&(j^_))|0)+(nA(Z,7)^BA)|0)-1046744716|0,b=fA+((V&(J|x)|J&x)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,BA=nA(V=K+b|0,26)^nA(V,21),_=(((m+_|0)+(j^V&(Z^j))|0)+(nA(V,7)^BA)|0)-459576895|0,m=eA+((x&(J|b)|J&b)+(nA(b,30)^nA(b,19)^nA(b,10))|0)|0,BA=nA(x=_+m|0,26)^nA(x,21),j=(((Y+j|0)+(Z^x&(Z^V))|0)+(nA(x,7)^BA)|0)-272742522|0,J=EA+((J&(m|b)|m&b)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,BA=nA(Y=j+J|0,26)^nA(Y,21),Z=264347078+(((Z+O|0)+(V^Y&(x^V))|0)+(nA(Y,7)^BA)|0)|0,b=AA+((b&(J|m)|J&m)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,AA=nA(O=Z+b|0,26)^nA(O,21),V=604807628+(((X+V|0)+(x^O&(Y^x))|0)+(nA(O,7)^AA)|0)|0,m=K+((m&(J|b)|J&b)+(nA(b,30)^nA(b,19)^nA(b,10))|0)|0,K=nA(X=V+m|0,26)^nA(X,21),x=770255983+(((x+W|0)+(Y^X&(Y^O))|0)+(nA(X,7)^K)|0)|0,J=_+((J&(m|b)|m&b)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,K=nA(W=x+J|0,26)^nA(W,21),K=1249150122+(((Y+z|0)+(O^W&(X^O))|0)+(nA(W,7)^K)|0)|0,b=j+((b&(J|m)|J&m)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,z=nA(Y=K+b|0,26)^nA(Y,21),O=1555081692+(((O+T|0)+(X^Y&(X^W))|0)+(nA(Y,7)^z)|0)|0,m=Z+((m&(J|b)|J&b)+(nA(b,30)^nA(b,19)^nA(b,10))|0)|0,T=nA(z=O+m|0,26)^nA(z,21),T=1996064986+(((X+v|0)+(W^z&(Y^W))|0)+(nA(z,7)^T)|0)|0,J=V+((J&(m|b)|m&b)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,v=nA(X=T+J|0,26)^nA(X,21),W=(((W+P|0)+(Y^X&(Y^z))|0)+(nA(X,7)^v)|0)-1740746414|0,b=x+((b&(J|m)|J&m)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,P=nA(v=W+b|0,26)^nA(v,21),P=(((Y+rA|0)+(z^v&(X^z))|0)+(nA(v,7)^P)|0)-1473132947|0,m=K+((m&(J|b)|J&b)+(nA(b,30)^nA(b,19)^nA(b,10))|0)|0,rA=nA(Y=P+m|0,26)^nA(Y,21),IA=(((z+IA|0)+(X^Y&(X^v))|0)+(nA(Y,7)^rA)|0)-1341970488|0,J=O+((J&(m|b)|m&b)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,O=nA(z=IA+J|0,26)^nA(z,21),O=(((X+g|0)+(v^z&(Y^v))|0)+(nA(z,7)^O)|0)-1084653625|0,b=T+((b&(J|m)|J&m)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,T=nA(X=O+b|0,26)^nA(X,21),T=(((v+oA|0)+(Y^X&(Y^z))|0)+(nA(X,7)^T)|0)-958395405|0,m=W+((m&(J|b)|J&b)+(nA(b,30)^nA(b,19)^nA(b,10))|0)|0,W=nA(v=T+m|0,26)^nA(v,21),W=(((A+Y|0)+(z^v&(X^z))|0)+(nA(v,7)^W)|0)-710438585|0,A=P+((J&(m|b)|m&b)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,J=nA(Y=W+A|0,26)^nA(Y,21),P=113926993+(((z+B|0)+(X^Y&(X^v))|0)+(nA(Y,7)^J)|0)|0,J=IA+((b&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0,z=nA(b=P+J|0,26)^nA(b,21),IA=338241895+(((X+Q|0)+(v^b&(Y^v))|0)+(nA(b,7)^z)|0)|0,m=O+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,z=nA(X=IA+m|0,26)^nA(X,21),v=666307205+(((v+E|0)+(Y^X&(b^Y))|0)+(nA(X,7)^z)|0)|0,A=T+((A&(J|m)|J&m)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,O=nA(z=v+A|0,26)^nA(z,21),O=773529912+(((Y+r|0)+(b^z&(b^X))|0)+(nA(z,7)^O)|0)|0,J=W+((J&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0,W=nA(Y=O+J|0,26)^nA(Y,21),W=1294757372+(((b+C|0)+(X^Y&(X^z))|0)+(nA(Y,7)^W)|0)|0,m=P+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,T=nA(b=W+m|0,26)^nA(b,21),T=1396182291+(((X+cA|0)+(z^b&(Y^z))|0)+(nA(b,7)^T)|0)|0,A=IA+((A&(J|m)|J&m)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,P=nA(X=T+A|0,26)^nA(X,21),P=1695183700+(((z+n|0)+(Y^X&(b^Y))|0)+(nA(X,7)^P)|0)|0,J=v+((J&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0,v=nA(z=P+J|0,26)^nA(z,21),v=1986661051+(((Y+aA|0)+(b^z&(b^X))|0)+(nA(z,7)^v)|0)|0,m=O+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,O=nA(Y=v+m|0,26)^nA(Y,21),O=(((b+o|0)+(X^Y&(X^z))|0)+(nA(Y,7)^O)|0)-2117940946|0,A=W+((A&(J|m)|J&m)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,W=nA(b=O+A|0,26)^nA(b,21),W=(((X+a|0)+(z^b&(Y^z))|0)+(nA(b,7)^W)|0)-1838011259|0,J=T+((J&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0,T=nA(X=W+J|0,26)^nA(X,21),T=(((z+f|0)+(Y^X&(b^Y))|0)+(nA(X,7)^T)|0)-1564481375|0,m=P+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,P=nA(z=T+m|0,26)^nA(z,21),P=(((Y+c|0)+(b^z&(b^X))|0)+(nA(z,7)^P)|0)-1474664885|0,A=v+((A&(J|m)|J&m)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,v=nA(Y=P+A|0,26)^nA(Y,21),v=(((b+D|0)+(X^Y&(X^z))|0)+(nA(Y,7)^v)|0)-1035236496|0,J=O+((J&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0,O=nA(b=v+J|0,26)^nA(b,21),O=(((X+e|0)+(z^b&(Y^z))|0)+(nA(b,7)^O)|0)-949202525|0,m=W+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,W=nA(X=O+m|0,26)^nA(X,21),W=(((z+$|0)+(Y^X&(b^Y))|0)+(nA(X,7)^W)|0)-778901479|0,A=T+((A&(J|m)|J&m)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,T=nA(z=W+A|0,26)^nA(z,21),T=(((Y+t|0)+(b^z&(b^X))|0)+(nA(z,7)^T)|0)-694614492|0,J=P+((J&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0,P=nA(Y=T+J|0,26)^nA(Y,21),P=(((b+d|0)+(X^Y&(X^z))|0)+(nA(Y,7)^P)|0)-200395387|0,m=v+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,v=nA(b=P+m|0,26)^nA(b,21),IA=275423344+(((X+y|0)+(z^b&(Y^z))|0)+(nA(b,7)^v)|0)|0,A=O+((A&(J|m)|J&m)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,v=nA(X=IA+A|0,26)^nA(X,21),O=430227734+(((z+N|0)+(Y^X&(b^Y))|0)+(nA(X,7)^v)|0)|0,J=W+((J&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0,v=nA(z=O+J|0,26)^nA(z,21),W=506948616+(((Y+s|0)+(b^z&(b^X))|0)+(nA(z,7)^v)|0)|0,m=T+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,v=nA(Y=W+m|0,26)^nA(Y,21),T=659060556+(((b+yA|0)+(X^Y&(X^z))|0)+(nA(Y,7)^v)|0)|0,A=P+((A&(J|m)|J&m)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,b=nA(v=T+A|0,26)^nA(v,21),P=883997877+(((X+u|0)+(z^v&(Y^z))|0)+(nA(v,7)^b)|0)|0,J=IA+((J&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0,b=nA(X=P+J|0,26)^nA(X,21),b=(IA=958139571+(((z+H|0)+(Y^X&(Y^v))|0)+(nA(X,7)^b)|0)|0)+(m=O+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0)|0,O=(((nA(f,14)^f>>>3^nA(f,25))+a|0)+N|0)+(nA(w,13)^w>>>10^nA(w,15))|0,oA=1322822218+(((Y+w|0)+(v^b&(X^v))|0)+(nA(b,26)^nA(b,21)^nA(b,7))|0)|0,A=W+((A&(J|m)|J&m)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,z=nA(Y=oA+A|0,26)^nA(Y,21),W=1537002063+(((v+R|0)+(X^Y&(b^X))|0)+(nA(Y,7)^z)|0)|0,J=T+((J&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0,v=nA(z=W+J|0,26)^nA(z,21),T=1747873779+(((X+O|0)+(b^z&(b^Y))|0)+(nA(z,7)^v)|0)|0,m=P+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,v=nA(X=T+m|0,26)^nA(X,21),b=(P=1955562222+(((b+G|0)+(Y^X&(Y^z))|0)+(nA(X,7)^v)|0)|0)+(A=IA+((A&(J|m)|J&m)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0)|0,x=((nA($,14)^$>>>3^nA($,25))+e|0)+H|0,$=(((nA(D,14)^D>>>3^nA(D,25))+c|0)+yA|0)+(nA(O,13)^O>>>10^nA(O,15))|0,v=x+(nA($,13)^$>>>10^nA($,15))|0,$=2024104815+(((Y+$|0)+(z^b&(X^z))|0)+(nA(b,26)^nA(b,21)^nA(b,7))|0)|0,J=oA+((J&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0,IA=nA(Y=$+J|0,26)^nA(Y,21),IA=(((z+q|0)+(X^Y&(b^X))|0)+(nA(Y,7)^IA)|0)-2067236844|0,m=W+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,W=nA(z=IA+m|0,26)^nA(z,21),W=(((X+v|0)+(b^z&(b^Y))|0)+(nA(z,7)^W)|0)-1933114872|0,A=T+((A&(J|m)|J&m)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,T=nA(X=W+A|0,26)^nA(X,21),b=(T=(((b+M|0)+(Y^X&(Y^z))|0)+(nA(X,7)^T)|0)-1866530822|0)+(J=P+((J&(A|m)|A&m)+(nA(A,30)^nA(A,19)^nA(A,10))|0)|0)|0,i[I+28>>2]=b+S,m=$+((m&(A|J)|A&J)+(nA(J,30)^nA(J,19)^nA(J,10))|0)|0,A=IA+((nA(m,30)^nA(m,19)^nA(m,10))+(A&(J|m)|J&m)|0)|0,J=W+((nA(A,30)^nA(A,19)^nA(A,10))+(J&(A|m)|A&m)|0)|0,$=T+((nA(J,30)^nA(J,19)^nA(J,10))+(m&(A|J)|A&J)|0)|0,i[I+12>>2]=$+p,Y=(x=m)+(m=((((v=(((nA(d,14)^d>>>3^nA(d,25))+t|0)+R|0)+(nA(v,13)^v>>>10^nA(v,15))|0)+Y|0)+(z^b&(X^z))|0)+(nA(b,26)^nA(b,21)^nA(b,7))|0)-1538233109|0)|0,i[I+24>>2]=Y+l,m=m+((A&(J|$)|J&$)+(nA($,30)^nA($,19)^nA($,10))|0)|0,i[I+8>>2]=m+U,z=(x=A)+(A=(((z+((O+((nA(y,14)^y>>>3^nA(y,25))+d|0)|0)+(nA(M,13)^M>>>10^nA(M,15))|0)|0)+(X^Y&(b^X))|0)+(nA(Y,26)^nA(Y,21)^nA(Y,7))|0)-1090935817|0)|0,i[I+20>>2]=z+k,A=A+((J&(m|$)|m&$)+(nA(m,30)^nA(m,19)^nA(m,10))|0)|0,i[I+4>>2]=A+h,CA=J+CA|0,J=(((X+((((nA(N,14)^N>>>3^nA(N,25))+y|0)+G|0)+(nA(v,13)^v>>>10^nA(v,15))|0)|0)+(b^z&(b^Y))|0)+(nA(z,26)^nA(z,21)^nA(z,7))|0)-965641998|0,i[I+16>>2]=CA+J,i[I>>2]=J+((QA+($&(A|m)|A&m)|0)+(nA(A,30)^nA(A,19)^nA(A,10))|0)}function h(A,I,B,g,Q){var C,o=0,r=0,a=0;D=C=D+-64|0,o=1026;A:if(!(!A|(B?!I:0))&&(a=2&g,Q||!a)){if(1&g)g=0,i[A+104>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=528734635,i[A+28>>2]=1541459225,i[A+16>>2]=1359893119,i[A+20>>2]=-1694144372,i[A+8>>2]=1013904242,i[A+12>>2]=-1521486534,i[A>>2]=1779033703,i[A+4>>2]=-1150833019;else if(o=1025,(g=i[A+104>>2])>>>0>63)break A;if(B){if(r=(o=i[A+32>>2])+(B<<3)|0,i[A+32>>2]=r,r=(o=(B>>>29)+(r>>>0<o>>>0)|0)+i[A+36>>2]|0,i[A+36>>2]=r,r>>>0<o>>>0){d(A,108),d(C,64),o=1027;break A}if((o=64-g|0)>>>0>B>>>0)y(40+(A+g|0)|0,I,B),g=i[A+104>>2]+B|0;else{for(B=B-o|0,g=40+(A+g|0)|0;o;)E[0|g]=n[0|I],o=o+-1|0,g=g+1|0,I=I+1|0;for(s(C,g=A+40|0,16),k(C,A),o=B>>>6;o;)s(C,I,16),k(C,A),I=I- -64|0,o=o+-1|0;y(o=g,I,g=63&B)}i[A+104>>2]=g}if(o=0,a){E[0|(I=(B=A+40|0)+g|0)]=128,I=I+1|0;I:if((o=63-g|0)>>>0<=7)d(I,o),s(C,B,16),k(C,A),d(B,56);else for(o=55-g|0;;){if(!o)break I;E[0|I]=0,o=o+-1|0,I=I+1|0}s(C,B,14),i[C+56>>2]=i[A+36>>2],i[C+60>>2]=i[A+32>>2],k(C,A),_(Q,A,8),o=0,d(A,108),d(C,64)}}return D=C- -64|0,o}function q(A,I){var B,g,Q,E,C,n,o,r,a,c,e,t,f,D,d,y,N,F,s,u,w,H,R,G,k,h,q,M,l,U,S,p,L,J,m,b,Y,X,z,x,v,Z,V,K,W,O,T,P,j,_,$,AA,IA,BA=0,gA=0,QA=0,EA=0,CA=0,iA=0,oA=0,rA=0,aA=0,cA=0,eA=0,tA=0,fA=0,DA=0,dA=0,yA=0,NA=0,FA=0,sA=0,uA=0,wA=0,HA=0,RA=0,GA=0,kA=0;BA=nA((aA=i[A+52>>2])^(DA=i[A+32>>2])^(eA=i[A+8>>2])^(RA=i[A>>2]),1),QA=nA(BA^(FA=i[A+44>>2])^(kA=i[A+20>>2])^(sA=i[A+12>>2]),1),CA=nA((tA=i[A+56>>2])^(dA=i[A+36>>2])^(cA=i[A+4>>2])^sA,1),HA=nA(QA^tA^(V=i[A+24>>2])^DA,1),gA=nA(HA^CA^dA^FA,1),EA=nA((wA=i[A+60>>2])^(GA=i[A+40>>2])^(K=i[A+16>>2])^eA,1),B=nA(EA^aA^kA^(W=i[A+28>>2]),1),g=nA(B^BA^DA^GA,1),Q=nA(g^QA^aA^FA,1),E=nA(Q^HA^BA^tA,1),iA=nA(E^gA^QA^CA,1),C=nA(CA^(X=i[A+48>>2])^V^K,1),A=nA(C^wA^dA^W,1),n=nA(gA^C^tA^X,1),rA=nA(n^CA^wA^A,1),o=nA(HA^C^n^iA,1),yA=nA(o^A^gA^rA,1),r=nA(EA^GA^X^A,1),a=nA(r^aA^wA^B,1),c=nA(a^BA^EA^g,1),e=nA(c^QA^B^Q,1),t=nA(e^HA^g^E,1),f=nA(t^gA^Q^iA,1),D=nA(f^E^n^o,1),uA=nA(D^iA^rA^yA,1),d=nA(EA^C^r^rA,1),y=nA(d^A^B^a,1),N=nA(n^r^d^yA,1),F=nA(N^rA^a^y,1),s=nA(o^d^N^uA,1),u=nA(s^yA^y^F,1),w=nA(g^r^c^y,1),H=nA(w^Q^a^e,1),R=nA(H^E^c^t,1),G=nA(R^iA^e^f,1),k=nA(G^o^t^D,1),h=nA(k^yA^f^uA,1),q=nA(h^D^N^s,1),M=nA(q^uA^F^u,1),l=nA(c^d^w^F,1),U=nA(l^y^e^H,1),S=nA(N^w^l^u,1),p=nA(S^F^H^U,1),z=nA(s^l^S^M,1),O=nA(z^u^U^p,1),L=nA(t^w^R^U,1),J=nA(L^f^H^G,1),m=nA(J^D^R^k,1),b=nA(m^uA^G^h,1),T=nA(b^s^k^q,1),P=nA(T^u^h^M,1),$=nA(P^q^S^z,1),AA=nA($^M^p^O,1),Y=nA(R^l^L^p,1),j=nA(Y^S^L^O,1),x=nA(U^G^J^Y,1),oA=RA+((IA=i[I+16>>2])+nA(v=i[I>>2],5)|0)|0,fA=nA(NA=1518500249+(oA+((Z=i[I+12>>2])^(_=i[I+4>>2])&((RA=i[I+8>>2])^Z))|0)|0,30),cA=1518500249+((cA+((RA^((oA=nA(_,30))^RA)&v)+Z|0)|0)+nA(NA,5)|0)|0,NA=1518500249+(((eA+RA|0)+(oA^NA&((eA=nA(v,30))^oA))|0)+nA(cA,5)|0)|0,sA=1518500249+(nA(NA,5)+((oA+sA|0)+(eA^cA&(fA^eA))|0)|0)|0,oA=nA(NA,30),eA=1518500249+(((eA+K|0)+(fA^NA&((cA=nA(cA,30))^fA))|0)+nA(sA,5)|0)|0,kA=1518500249+(nA(eA,5)+((fA+kA|0)+(cA^(oA^cA)&sA)|0)|0)|0,fA=nA(kA,30),NA=1518500249+(((NA=cA+V|0)+(oA^eA&((cA=nA(sA,30))^oA))|0)+nA(kA,5)|0)|0,sA=1518500249+(((oA+W|0)+(cA^kA&((eA=nA(eA,30))^cA))|0)+nA(NA,5)|0)|0,DA=1518500249+(nA(sA,5)+((cA+DA|0)+(eA^NA&(fA^eA))|0)|0)|0,oA=nA(sA,30),cA=1518500249+(((cA=eA+dA|0)+(fA^sA&((dA=nA(NA,30))^fA))|0)+nA(DA,5)|0)|0,GA=1518500249+(nA(cA,5)+((fA+GA|0)+(dA^DA&(oA^dA))|0)|0)|0,fA=nA(GA,30),FA=1518500249+(((dA+FA|0)+(oA^cA&((DA=nA(DA,30))^oA))|0)+nA(GA,5)|0)|0,dA=1518500249+(((eA=oA+X|0)+(DA^GA&((oA=nA(cA,30))^DA))|0)+nA(FA,5)|0)|0,DA=1518500249+(nA(dA,5)+((aA+DA|0)+(oA^FA&(oA^fA))|0)|0)|0,aA=nA(dA,30),FA=1518500249+(((cA=oA+tA|0)+(fA^dA&((oA=nA(FA,30))^fA))|0)+nA(DA,5)|0)|0,dA=1518500249+(nA(FA,5)+((fA+wA|0)+(oA^DA&(oA^aA))|0)|0)|0,tA=nA(dA,30),wA=nA(FA,30),fA=1518500249+(((oA=BA+oA|0)+(aA^FA&((BA=nA(DA,30))^aA))|0)+nA(dA,5)|0)|0,aA=1518500249+(nA(fA,5)+((CA+aA|0)+(BA^dA&(BA^wA))|0)|0)|0,CA=nA(aA,30),QA=(QA+wA|0)+(tA^aA&((oA=nA(fA,30))^tA))|0,aA=1518500249+(nA(aA,5)+((BA+EA|0)+(wA^fA&(tA^wA))|0)|0)|0,BA=1518500249+(QA+nA(aA,5)|0)|0,tA=1859775393+(nA(BA,5)+((tA+C|0)+(aA^CA^oA)|0)|0)|0,QA=nA(tA,30),EA=nA(BA,30),BA=1859775393+(((oA+B|0)+(BA^(aA=nA(aA,30))^CA)|0)+nA(tA,5)|0)|0,tA=1859775393+(nA(BA,5)+((CA+HA|0)+(tA^EA^aA)|0)|0)|0,CA=nA(tA,30),oA=(EA+g|0)+(tA^(HA=nA(BA,30))^QA)|0,EA=1859775393+(nA(tA,5)+((A+aA|0)+(BA^QA^EA)|0)|0)|0,A=1859775393+(oA+nA(EA,5)|0)|0,gA=1859775393+(nA(A,5)+((QA+gA|0)+(EA^CA^HA)|0)|0)|0,BA=nA(gA,30),QA=nA(A,30),A=1859775393+(((HA+r|0)+(A^(EA=nA(EA,30))^CA)|0)+nA(gA,5)|0)|0,gA=1859775393+(nA(A,5)+((CA+Q|0)+(gA^QA^EA)|0)|0)|0,CA=nA(gA,30),oA=(QA+a|0)+(gA^(aA=nA(A,30))^BA)|0,gA=1859775393+(nA(gA,5)+((EA+n|0)+(A^BA^QA)|0)|0)|0,A=1859775393+(oA+nA(gA,5)|0)|0,EA=1859775393+(nA(A,5)+((BA+E|0)+(gA^CA^aA)|0)|0)|0,BA=nA(EA,30),QA=nA(A,30),A=1859775393+(((aA+rA|0)+(A^(gA=nA(gA,30))^CA)|0)+nA(EA,5)|0)|0,EA=1859775393+(nA(A,5)+((CA+c|0)+(EA^QA^gA)|0)|0)|0,CA=nA(EA,30),oA=(QA+d|0)+(EA^(rA=nA(A,30))^BA)|0,QA=1859775393+(nA(EA,5)+((gA+iA|0)+(A^BA^QA)|0)|0)|0,A=1859775393+(oA+nA(QA,5)|0)|0,BA=1859775393+(nA(A,5)+((BA+e|0)+(QA^CA^rA)|0)|0)|0,gA=nA(BA,30),QA=1859775393+(((rA+o|0)+(A^(EA=nA(QA,30))^CA)|0)+nA(BA,5)|0)|0,CA=1859775393+(((CA+y|0)+(BA^(iA=nA(A,30))^EA)|0)+nA(QA,5)|0)|0,A=1859775393+(nA(CA,5)+((EA+t|0)+(QA^gA^iA)|0)|0)|0,BA=nA(CA,30),QA=1859775393+(((rA=iA+yA|0)+(CA^(iA=nA(QA,30))^gA)|0)+nA(A,5)|0)|0,gA=(nA(QA,5)+((gA+w|0)+(iA&(A|BA)|A&BA)|0)|0)-1894007588|0,CA=nA(gA,30),rA=(BA+N|0)+((A=nA(A,30))&((EA=nA(QA,30))|gA)|gA&EA)|0,gA=(nA(gA,5)+((iA+f|0)+(BA&(A|QA)|A&QA)|0)|0)-1894007588|0,BA=(rA+nA(gA,5)|0)-1894007588|0,A=(nA(BA,5)+((A+H|0)+(EA&(gA|CA)|gA&CA)|0)|0)-1894007588|0,QA=nA(BA,30),BA=(((EA+D|0)+(CA&((gA=nA(gA,30))|BA)|BA&gA)|0)+nA(A,5)|0)-1894007588|0,EA=(nA(BA,5)+((CA+F|0)+(gA&(A|QA)|A&QA)|0)|0)-1894007588|0,CA=nA(EA,30),A=nA(A,30),iA=nA(BA,30),gA=(nA(EA,5)+((gA+R|0)+(QA&(A|BA)|A&BA)|0)|0)-1894007588|0,BA=(((QA+uA|0)+(A&(iA|EA)|EA&iA)|0)+nA(gA,5)|0)-1894007588|0,A=(nA(BA,5)+((A+l|0)+(iA&(gA|CA)|gA&CA)|0)|0)-1894007588|0,QA=nA(BA,30),BA=(((iA+G|0)+(CA&((gA=nA(gA,30))|BA)|BA&gA)|0)+nA(A,5)|0)-1894007588|0,EA=(nA(BA,5)+((CA+s|0)+(gA&(A|QA)|A&QA)|0)|0)-1894007588|0,CA=nA(EA,30),A=nA(A,30),iA=nA(BA,30),gA=(nA(EA,5)+((gA+U|0)+(QA&(A|BA)|A&BA)|0)|0)-1894007588|0,BA=(((QA+k|0)+(A&(iA|EA)|EA&iA)|0)+nA(gA,5)|0)-1894007588|0,A=(nA(BA,5)+((A+u|0)+(iA&(gA|CA)|gA&CA)|0)|0)-1894007588|0,QA=nA(BA,30),BA=(((iA+L|0)+(CA&((gA=nA(gA,30))|BA)|BA&gA)|0)+nA(A,5)|0)-1894007588|0,EA=(nA(BA,5)+((CA+h|0)+(gA&(A|QA)|A&QA)|0)|0)-1894007588|0,CA=nA(EA,30),A=nA(A,30),iA=nA(BA,30),BA=(nA(EA,5)+((gA+S|0)+(QA&(A|BA)|A&BA)|0)|0)-1894007588|0,QA=(((QA+J|0)+(A&(iA|EA)|EA&iA)|0)+nA(BA,5)|0)-1894007588|0,gA=nA(QA,30),rA=(iA+p|0)+(CA&((EA=nA(BA,30))|QA)|QA&EA)|0,iA=(nA(QA,5)+((A+q|0)+(iA&(BA|CA)|BA&CA)|0)|0)-1894007588|0,A=(rA+nA(iA,5)|0)-1894007588|0,CA=(nA(A,5)+((CA+m|0)+(iA^gA^EA)|0)|0)-899497514|0,BA=nA(CA,30),QA=nA(A,30),A=(((rA=EA+M|0)+(A^(EA=nA(iA,30))^gA)|0)+nA(CA,5)|0)-899497514|0,gA=(nA(A,5)+((gA+Y|0)+(CA^QA^EA)|0)|0)-899497514|0,CA=nA(gA,30),rA=(QA+z|0)+(gA^(iA=nA(A,30))^BA)|0,gA=(nA(gA,5)+((EA+b|0)+(A^BA^QA)|0)|0)-899497514|0,A=(rA+nA(gA,5)|0)-899497514|0,EA=(nA(A,5)+((BA+x|0)+(gA^CA^iA)|0)|0)-899497514|0,BA=nA(EA,30),QA=nA(A,30),A=(((iA+T|0)+(A^(gA=nA(gA,30))^CA)|0)+nA(EA,5)|0)-899497514|0,EA=(nA(A,5)+((CA+O|0)+(EA^QA^gA)|0)|0)-899497514|0,CA=nA(EA,30),yA=(QA+P|0)+(EA^(iA=nA(A,30))^BA)|0,QA=((((rA=gA)+(gA=nA(k^L^m^x,1))|0)+(A^BA^QA)|0)+nA(EA,5)|0)-899497514|0,A=(yA+nA(QA,5)|0)-899497514|0,BA=(nA(A,5)+((BA+j|0)+(QA^CA^iA)|0)|0)-899497514|0,EA=nA(BA,30),rA=nA(A,30),QA=nA(QA,30),A=((((yA=iA)+(iA=nA(gA^h^J^b,1))|0)+(A^QA^CA)|0)+nA(BA,5)|0)-899497514|0,BA=(((CA+$|0)+(BA^rA^QA)|0)+nA(A,5)|0)-899497514|0,CA=nA(BA,30),yA=nA(A,30),A=((((uA=nA(p^J^x^j,1))+QA|0)+(A^EA^rA)|0)+nA(BA,5)|0)-899497514|0,BA=((((oA=rA)+(rA=nA(iA^q^m^T,1))|0)+(BA^EA^yA)|0)+nA(A,5)|0)-899497514|0,QA=(((EA+AA|0)+(CA^yA^A)|0)+nA(BA,5)|0)-899497514|0,EA=nA(QA,30),i[I+16>>2]=EA+IA,gA=((((oA=yA)+(yA=nA(uA^gA^m^Y,1))|0)+(BA^(A=nA(A,30))^CA)|0)+nA(QA,5)|0)-899497514|0,uA=nA(gA,30),i[I+12>>2]=uA+Z,QA=(((rA=nA(rA^M^b^P,1)+CA|0)+(QA^(BA=nA(BA,30))^A)|0)+nA(gA,5)|0)-899497514|0,i[I+8>>2]=nA(QA,30)+RA,A=(((nA(Y^z^j^AA,1)+A|0)+(gA^BA^EA)|0)+nA(QA,5)|0)-899497514|0,i[I+4>>2]=A+_,i[I>>2]=(((BA+(nA(yA^iA^b^x,1)+v|0)|0)+(QA^EA^uA)|0)+nA(A,5)|0)-899497514}function M(A,I,B,g,Q){var C,o=0,r=0,a=0;D=C=D+-64|0,o=1026;A:if(!(!A|(B?!I:0))&&(a=2&g,Q||!a)){if(1&g)g=0,i[A+92>>2]=0,i[A+16>>2]=-1009589776,i[A+20>>2]=0,i[A+8>>2]=-1732584194,i[A+12>>2]=271733878,i[A>>2]=1732584193,i[A+4>>2]=-271733879,i[A+24>>2]=0;else if(o=1025,(g=i[A+92>>2])>>>0>63)break A;if(B){if(r=(o=i[A+20>>2])+(B<<3)|0,i[A+20>>2]=r,r=(o=(B>>>29)+(r>>>0<o>>>0)|0)+i[A+24>>2]|0,i[A+24>>2]=r,r>>>0<o>>>0){d(A,96),d(C,64),o=1027;break A}if((o=64-g|0)>>>0>B>>>0)y(28+(A+g|0)|0,I,B),g=i[A+92>>2]+B|0;else{for(r=B-o|0,B=28+(A+g|0)|0;o;)E[0|B]=n[0|I],o=o+-1|0,B=B+1|0,I=I+1|0;for(s(C,B=A+28|0,16),q(C,A),o=r>>>6;o;)s(C,I,16),q(C,A),I=I- -64|0,o=o+-1|0;y(B,I,g=63&r)}i[A+92>>2]=g}if(o=0,a){E[0|(I=(B=A+28|0)+g|0)]=128,I=I+1|0;I:if((o=63-g|0)>>>0<=7)d(I,o),s(C,B,16),q(C,A),d(B,56);else for(o=55-g|0;;){if(!o)break I;E[0|I]=0,o=o+-1|0,I=I+1|0}s(C,B,14),i[C+56>>2]=i[A+24>>2],i[C+60>>2]=i[A+20>>2],q(C,A),_(Q,A,5),o=0,d(A,96),d(C,64)}}return D=C- -64|0,o}function l(A,I,B,g,Q,E,i,n,r){var c,e;for(D=c=D-16|0,Y(E,c+14|0,c+12|0),F(A,I,I,Q,E,i,n,e=(a(o[c+12>>1],o[c+14>>1])<<1)+n|0),F(e,B,B,(I<<2)+Q|0,E,i,n,e),F(A,g,g,(I+B<<2)+Q|0,E,i,n,n),B=i+-1|0,I=0;;){if((0|I)==(0|E)){for(A=o[c+12>>1];E>>>0<A>>>0;)C[(E<<1)+r>>1]=0,E=E+1|0;D=c+16|0;break}C[(A=I<<1)+r>>1]=B&o[A+n>>1]+o[A+e>>1],I=I+1|0}}function U(A,I,B,g,Q,i,o,r,c,e,t,f){var D=0,y=0,N=0,F=0,s=0,u=0,w=0,R=0,G=0;A:if(!(g=H(i,A,I,B,g,Q,D=4+(I+i|0)|0)))for(u=d(D+(B=a(I,B))|0,o),y=e?3:1,F=e?255&t:t,s=e?t>>>8:t,t=D,g=0;;){if(!(255&y)){g=0;break A}for(;(R=65535&w)>>>0<(65535&F)>>>0;){for(;;){for(Q=0,(e=255&N)&&(Q=(255&g)<<r-e),e=r-N|0;e&=255;){if(!(65535&B)&&(g=H(i,A,B=I,1,0,0,t=D)))break A;g=n[0|t],e>>>0<=8?(G=g>>>(N=8-e|0),g&=255>>>8-(255&N),e=0):G=g<<(e=e+-8|0),B=B+-1|0,t=t+1|0,Q|=G}if(!((Q&=65535)>>>0>=c>>>0))break}n[0|(e=(Q=(Q>>>0)%(o>>>0)|0)+u|0)]||(E[0|e]=1,C[(R<<1)+f>>1]=Q,w=w+1|0)}255&(y=y+-1|0)&&(d(u,o),F=(255&s)+F|0,s>>>=8)}return g}function S(A,I,B,g,Q){var E=0,i=0,n=0,r=0,c=0,e=0,t=0,f=0;A:if(!(1&Q)&&Q>>>0>=39){for(f=(c=(Q<<1)+A|0)+(Q=(n=Q>>>1)<<1)|0,e=g+Q|0,i=B+Q|0,t=A+Q|0;E>>>0<n>>>0;)C[(Q=E<<1)+A>>1]=o[B+Q>>1]-o[Q+i>>1],C[Q+t>>1]=o[Q+e>>1]-o[g+Q>>1],E=E+1|0;for(S(I,c,A,t,n),S(c,A,i,e,n),e=(n<<1)+I|0,E=0,Q=0;;){if(!(Q>>>0>=n>>>0)){C[(r=(i=Q<<1)+I|0)>>1]=o[r>>1]+o[i+c>>1],Q=Q+1|0;continue}for(;E>>>0<n>>>0;)C[(Q=E<<1)+t>>1]=o[I+Q>>1],i=o[(r=Q+e|0)>>1]+o[Q+f>>1]|0,C[r>>1]=i,C[(Q=Q+c|0)>>1]=i+o[Q>>1],E=E+1|0;for(S(I,A,B,g,n),E=0;;){if(E>>>0>=n>>>0)break A;g=(B=E<<1)+I|0,C[A+B>>1]=o[g>>1],i=Q=B+t|0,r=o[Q>>1],Q=B+e|0,C[i>>1]=r+(o[Q>>1]+o[g>>1]|0),C[(B=B+c|0)>>1]=o[B>>1]+o[Q>>1],E=E+1|0}}}else!function(A,I,B,g){var Q=0,E=0,i=0,n=0,r=0;for(;;){if((0|g)==(0|Q)){for(n=g+-1|0,E=1;E>>>0<g>>>0;){for(Q=0,C[(E+n<<1)+A>>1]=0,r=(E<<1)+I|0;(0|g)!=(0|Q);)C[(i=(Q+E<<1)+A|0)>>1]=o[i>>1]+a(o[(Q<<1)+B>>1],o[r>>1]),Q=Q+1|0;E=E+1|0}C[((g<<2)+A|0)-2>>1]=0;break}C[(E=Q<<1)+A>>1]=a(o[B+E>>1],o[I>>1]),Q=Q+1|0}}(A,B,g,Q)}function p(A,I,B,g){var Q,E=0,i=0,o=0,r=0;for(Q=-1<<B^-1,E=B;(0|A)!=(0|o);)(r=65535&E)>>>0>=9?(E=r+-8|0,i=65535&i|n[I+o|0]<<(65535&E)):(r=i,i=I+o|0,E=8-E&65535,C[g>>1]=(r|n[0|i]>>>E)&Q,g=g+2|0,E=B-E|0,i=n[0|i]<<(65535&E)),o=o+1|0}function L(A,I,B,g){var Q,C=0,i=0,n=0,r=0,a=0,c=0;for(i=Q=B+-8|0;;){a=((r=65535&n)<<1)+I|0;A:{for(;;){if(r>>>0>=A>>>0)break A;if(c=C,C=65535&i,E[0|g]=c|o[a>>1]>>>C,g=g+1|0,!(C>>>0>=9))break;i=i+-8|0,C=0}n=n+1|0,i=B-(C=8-i|0)|0,C=o[a>>1]<<(65535&C);continue}break}(65535&i)!=(0|Q)&&(E[0|g]=C)}function J(A,I){for(var B=0,g=0;5!=(0|B);)g=((A&=255)>>>0)%3|0,E[I+B|0]=g,A=(A-g|0)/3|0,B=B+1|0}function m(A,I,B){var g=0;if(!A|(B?!I:0))A=258;else{if(!(g=i[A>>2]))return 288;A=0|Q[i[g+12>>2]](A+4|0,I,B)}return A}function b(A,I,B,g){var C=0,o=0;if(C=2562,!(!g|!(A=x(A)))){if(!B)return 2563;if(!((o=i[A+4>>2])>>>0>1)){if(o-1)return 0|Q[i[i[A+8>>2]>>2]](g,B);C=function(A,I,B,g){var C,o=0,c=0;D=C=D-32|0,o=2563;A:if(!(r[A>>2]<I>>>0|B>>>0>1024)&&(i[A+4>>2]||!(o=function(A){var I,B=0,g=0,E=0,C=0;D=I=D-560|0,g=2565;I:if(Q[i[A+8>>2]](0,I+47|0)&&!(((B=n[I+47|0])+-1&255)>>>0>7)){for(E=a(B,i[A>>2]>>>2&536870911),B=0;;){if((0|B)!=(0|E)){if(C=(I+48|0)+B|0,B=B+1|0,Q[i[A+8>>2]](2,C))continue;break I}break}(g=V(A,I,I+48|0,E))||(i[A+4>>2]=-1,g=0)}return D=I+560|0,g}(A)))){for(I=A+16|0;B;){if(o=G(i[A+12>>2]))break A;if(o=u(i[A+12>>2],I,32))break A;if(o=R(i[A+12>>2],I))break A;B>>>0<=31?(y(g,I,B),B=0):(o=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,c=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,E[0|g]=c,E[g+1|0]=c>>>8,E[g+2|0]=c>>>16,E[g+3|0]=c>>>24,E[g+4|0]=o,E[g+5|0]=o>>>8,E[g+6|0]=o>>>16,E[g+7|0]=o>>>24,o=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,c=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,E[g+24|0]=c,E[g+25|0]=c>>>8,E[g+26|0]=c>>>16,E[g+27|0]=c>>>24,E[g+28|0]=o,E[g+29|0]=o>>>8,E[g+30|0]=o>>>16,E[g+31|0]=o>>>24,o=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,c=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,E[g+16|0]=c,E[g+17|0]=c>>>8,E[g+18|0]=c>>>16,E[g+19|0]=c>>>24,E[g+20|0]=o,E[g+21|0]=o>>>8,E[g+22|0]=o>>>16,E[g+23|0]=o>>>24,o=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,c=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,E[g+8|0]=c,E[g+9|0]=c>>>8,E[g+10|0]=c>>>16,E[g+11|0]=c>>>24,E[g+12|0]=o,E[g+13|0]=o>>>8,E[g+14|0]=o>>>16,E[g+15|0]=o>>>24,B=B+-32|0,g=g+32|0)}(o=V(A,C,0,0))||(i[A+4>>2]=i[A+4>>2]+-1,o=0)}return D=C+32|0,o}(i[A+8>>2],I,B,g)}}return C}function Y(A,I,B){I&&(C[I>>1]=1),B&&(C[B>>1]=A)}function X(A,I,B,g,Q,E){var i=0,n=0;for(S(i=d(i=Q,a(Q=B+15&65520,6)),(Q<<2)+i|0,A,I,Q),A=g+-1|0;;){if((0|B)==(0|n)){for(;Q>>>0>(A=65535&B)>>>0;)C[(A<<1)+E>>1]=0,B=B+1|0;break}C[(I=n<<1)+E>>1]=A&o[(B+n<<1)+i>>1]+o[I+i>>1],n=n+1|0}}function z(A,I,B){I&&(C[I>>1]=3),B&&(C[B>>1]=A+15&65520)}function x(A){for(var I=0,B=0;;){A:{if(4!=(0|I)){if(B=a(I,12),i[B+2048>>2]!=(0|A)|!i[B+2056>>2])break A;A=a(I,12)+2048|0}else A=0;return A}I=I+1|0}}function v(A,I,B){var g,Q=0,E=0;for(C[(g=D-16|0)+14>>1]=0,C[g+10>>1]=0,C[g+12>>1]=0;(0|A)!=(0|Q);)E=(g+10|0)+(n[I+Q|0]<<1)|0,C[E>>1]=o[E>>1]+1,Q=Q+1|0;return o[g+10>>1]>=B>>>0&o[g+12>>1]>=B>>>0&o[g+14>>1]>=B>>>0}function Z(A,I,B,g,Q,E,C,i){var o,r=0,c=0;D=o=D-16|0;A:if(!(r=H(E,A,I,B,g,r=Q,Q=4+(I+E|0)|0)))for(B=a(I,B),g=Q;;){if((65535&C)>>>0<=4)for(;;){if(!(c=65535&C)){r=0;break A}if(!(65535&B)&&(B=I,r=H(E,A,I,1,0,0,g=Q)))break A;(r=n[0|g])>>>0<=242?(J(r,o+11|0),y(i,o+11|0,c),C=0):(B=B+-1|0,g=g+1|0)}if(!(65535&B)&&(B=I,r=H(E,A,I,1,0,0,g=Q)))break A;(r=n[0|g])>>>0<=242&&(J(r,i),i=i+5|0,C=C+-5|0),B=B+-1|0,g=g+1|0}return D=o+16|0,r}function V(A,I,B,g){var Q=0,C=0;A:if(!(Q=G(i[A+12>>2]))&&(E[A+48|0]=0,C=A+16|0,!(Q=u(i[A+12>>2],C,33))&&!(B&&(Q=u(i[A+12>>2],B,g))||(Q=R(i[A+12>>2],I))||(Q=$(i[A+12>>2],I))||(Q=G(i[A+12>>2]))||(Q=u(i[A+12>>2],C,32))||(Q=R(i[A+12>>2],C))))){if(B){if(Q=G(i[A+12>>2]))break A;if(E[A+48|0]=1,Q=u(i[A+12>>2],C,33))break A;if(Q=u(i[A+12>>2],B,g))break A;if(Q=R(i[A+12>>2],I))break A;if(Q=$(i[A+12>>2],I))break A;if(Q=G(i[A+12>>2]))break A;if(Q=u(i[A+12>>2],C,32))break A;if(Q=R(i[A+12>>2],C))break A}E[0|I]=0,E[I+1|0]=0,E[I+2|0]=0,E[I+3|0]=0,E[I+4|0]=0,E[I+5|0]=0,E[I+6|0]=0,E[I+7|0]=0,E[I+24|0]=0,E[I+25|0]=0,E[I+26|0]=0,E[I+27|0]=0,E[I+28|0]=0,E[I+29|0]=0,E[I+30|0]=0,E[I+31|0]=0,E[I+16|0]=0,E[I+17|0]=0,E[I+18|0]=0,E[I+19|0]=0,E[I+20|0]=0,E[I+21|0]=0,E[I+22|0]=0,E[I+23|0]=0,E[I+8|0]=0,E[I+9|0]=0,E[I+10|0]=0,E[I+11|0]=0,E[I+12|0]=0,E[I+13|0]=0,E[I+14|0]=0,E[I+15|0]=0,Q=0}return Q}function K(){for(var A=0,I=0;;){if(18==(0|I))return 0;if(A=a(I,44),I=I+1|0,15==i[(A=A+2624|0)>>2])break}return A}function W(A,I,B,g,Q,C,r,c){var e=0,t=0,f=0,D=0,d=0,y=0,N=0;A:{I:{if((e=(t=n[0|B])+-1|0)>>>0>1){if(t+-254>>>0>=2)break A}else if(e-1){if(!A)break A;break I}if(A)break A;if(!(t+-254>>>0<2|t+-1>>>0<=1))return 1}if(!(3!=n[B+1|0]|I>>>0<5)&&(e=function(A){var I=0;for(;;){I:{if(18!=(0|I)){if(QA(a(I,44)+2632|0,A))break I;A=a(I,44)+2624|0}else A=0;return A}I=I+1|0}}(B+2|0))){if(f=o[e+14>>1],d=a(f,n[e+22|0])+7>>>3,A){if((5+(65535&d)|0)!=(0|I))break A;i[r>>2]=B+5}else{if((D=n[e+23|0])&&254==(0|t))break A;if(A=i[e+24>>2],y=a(n[e+12|0],(D?((A>>>8&255)+(255&A)|0)+(A>>>16&255)|0:A)<<1&131070)+7>>>3,f=(f+4>>>0)/5|0,A=254==(255&(2==(0|t)?D?-1:(65535&y)>>>0>f>>>0?-2:-1:t)),(0|(t=I))!=(5+((I=65535&d)+(65535&(A?f:y))|0)|0))break A;B=B+5|0,i[r>>2]=B,i[c>>2]=I+B,E[0|Q]=A?3:2}N=1,E[0|g]=1,i[C>>2]=e}}return N}function O(A,I,B){var g,Q,r,c,e,t,f,s,u,H=0,R=0,G=0,k=0,h=0,q=0,M=0,S=0,p=0,J=0,m=0,Y=0,x=0,v=0,Z=0,V=0;D=Q=D-16|0;A:if(g=K())if(c=Q+11|0,e=Q+14|0,t=Q+10|0,f=Q+12|0,s=0,u=0,s=n[(r=g)+22|0],u=o[r+14>>1],E[0|c]=1,s=5+(a(s,u)+7>>>3&65535)|0,C[e>>1]=s,!t|!f||(c=(o[r+14>>1]+4>>>0)/5|0,e=i[r+24>>2],(u=n[r+23|0])&&(e=((e>>>8&255)+(255&e)|0)+(e>>>16&255)|0),r=a(n[r+12|0],e<<1&131070)+7>>>3,e=!u&(65535&r)>>>0>c>>>0,E[0|t]=e?3:2,C[f>>1]=s+(e?c:r)),B&&I){if(H=12292,!(o[1050]<o[Q+14>>1]|o[1051]<o[Q+12>>1]))if(z(o[g+14>>1],Q+6|0,Q+8|0),R=(H=o[Q+6>>1])+1|0,C[Q+6>>1]=R,G=i[g+24>>2],n[g+23|0]?(C[Q+6>>1]=H,G=(J=G>>>16&255)+((M=255&G)+(m=G>>>8&255)|0)|0,R=H,q=2):q=3,h=o[Q+8>>1],q=w(H=(a(q+H&65535,h)<<1)+(G<<2)|0))if(k=d(q,H),(H=(Y=i[g+40>>2])+-1|0)>>>0<=1){if(q=20,H-1||(Y=2,q=32),S=o[g+20>>1],!((H=b(A,(H=o[g+16>>1])<<3,Z=65534&(v=H<<1),k))||(h=(p=(R=k+(a(h,65535&R)<<1)|0)+(H=h<<1)|0)+H|0,H=U(Y,q,n[g+38|0],65535&v,k,k,o[g+14>>1],n[g+36|0],o[g+34>>1],n[g+23|0],i[g+24>>2]<<1,h)))){S=S+-1|0,H=0,R=d(R,o[g+14>>1]<<1);I:{if(n[g+23|0])for(x=M+m|0;;){if((0|H)!=(0|M)){C[R+(o[h+(H<<1)>>1]<<1)>>1]=1,H=H+1|0;continue}for(G=M<<1,x<<=1,H=M;H>>>0<G>>>0;)C[R+(o[h+(H<<1)>>1]<<1)>>1]=S,H=H+1|0;for(F(R,m,m,h+(G<<1)|0,o[g+14>>1],o[g+20>>1],k,R),H=0;;){if((0|H)!=(0|J)){G=R+(o[h+(H+x<<1)>>1]<<1)|0,C[G>>1]=S&o[G>>1]+1,H=H+1|0;continue}for(G=J<<1,H=J;;){if(H>>>0>=G>>>0)break I;V=R+(o[h+(H+x<<1)>>1]<<1)|0,C[V>>1]=S&o[V>>1]+-1,H=H+1|0}}}for(;(0|H)!=(0|G);)C[R+(o[h+(H<<1)>>1]<<1)>>1]=1,H=H+1|0;for(H=G<<1;;){if(G>>>0>=H>>>0)break I;C[R+(o[h+(G<<1)>>1]<<1)>>1]=S,G=G+1|0}}for(H=0;H>>>0<o[g+14>>1];)C[(G=R+(H<<1)|0)>>1]=S&a(o[G>>1],3),H=H+1|0;if(C[R>>1]=S&o[R>>1]+1,function(A,I,B,g){var Q=0,i=0,o=0,r=0,a=0,c=0,e=0,t=0,f=0,D=0,y=0,N=0,F=0,s=0;I:if(!(!g|!A|!B)){for(f=(e=I+B|0)+I|0,E[0|d(B,I<<1)]=1;(0|I)!=(0|Q);)a=1&C[(Q<<1)+A>>1],E[Q+f|0]=a,i=a?Q:i,Q=Q+1|0,o^=a;B:if(o){E[0|g]=1,d(g+1|0,I+-1|0),E[I+g|0]=1,a=g,A=I;g:for(;;){for(Q=0;;){if((65535&i)>>>0<(r=65535&Q)>>>0)break B;if(n[0|(o=r+f|0)])break;Q=Q+1|0}r?(gA(r+e|0,e,1+(65535&c)|0),d(e,r),i=i-Q|0,N=Q+N|0,c=Q+c|0):o=f,F=c;Q:{if(Q=65535&i){for(r=(t=Q>>>0<(65535&A)>>>0)?i:A,c=t?D:F,s=t?o:a,f=t?a:o,a=t?e:B,Q=0;(o=65535&Q)>>>0<=(y=65535&r)>>>0;)E[0|(y=o+f|0)]=n[0|y]^n[o+s|0],Q=Q+1|0;if(Q=r,(0|y)!=(65535&(i=t?A:i)))break Q;for(;;){if(!(A=65535&Q)){i=0;break Q}if(n[A+f|0]){i=Q;break Q}Q=Q+-1|0}}for(A=0,Q=c=N-((65535&N)>>>0<I>>>0?0:I)&65535;;){if(!(Q>>>0>=I>>>0)){C[(A<<1)+g>>1]=n[B+Q|0],A=A+1|0,Q=Q+1|0;continue}for(i=0,Q=1;;){if((0|i)==(0|c))break I;C[((65535&A)<<1)+g>>1]=n[B+i|0],i=i+1|0,A=A+1|0}}}for(D=t?F:D,e=t?B:e,Q=0;(A=65535&Q)>>>0<=(o=65535&c)>>>0;)E[0|(B=A+a|0)]=n[0|B]^n[A+e|0],Q=Q+1|0;if(B=a,a=s,A=r,Q=c,!(o>>>0<(65535&D)>>>0))for(;;){if(!(r=65535&Q)){D=0;continue g}if(n[B+r|0]){D=Q;continue g}Q=Q+-1|0}}}Q=0}return Q}(R,o[g+14>>1],k,p)){if(!(H=n[g+23|0]?function(A,I,B,g,Q,E,i,n){var r,c,e,t=0,f=0,y=0,N=0;D=r=D-16|0,z(E,0,r+14|0),c=i+-1|0,e=(E<<1)+n|0;for(;(65535&f)>>>0<=3;){for(l(A,I,B,g,Q,E,i,n,n),t=0;(0|E)!=(0|t);)C[(N=(y=t<<1)+n|0)>>1]=0-(o[A+y>>1]+a(o[N>>1],3)&c),t=t+1|0;C[n>>1]=o[n>>1]+2,t=o[r+14>>1],d(e,t-E<<1),X(A,n,E,i,(t<<1)+n|0,A),f=f+1|0}return D=r+16|0,0}(p,M,m,J,h,o[g+14>>1],o[g+20>>1],k):function(A,I,B,g,Q){var E,i=0,n=0,r=0;D=E=D-16|0,z(B,0,E+14|0);for(;(65535&n)>>>0<=3;){for(X(I,A,B,g,Q,Q),i=0;(0|B)!=(0|i);)C[(r=(i<<1)+Q|0)>>1]=0-o[r>>1],i=i+1|0;C[Q>>1]=o[Q>>1]+2,X(A,Q,B,g,(o[E+14>>1]<<1)+Q|0,A),n=n+1|0}return D=E+16|0,0}(p,R,o[g+14>>1],o[g+20>>1],k))&&!((H=b(A,o[g+16>>1]<<3,Z,k))||(A=0,M=q<<3,H=o[g+28>>1],H=U(Y,q,((M+a(n[g+12|0],H<<2|2)|0)-1|0)/(0|M)&255,65535&v,k,k,o[g+14>>1],n[g+36|0],o[g+34>>1],0,H<<1|1,R)))){for(F(p,(H=o[g+28>>1])+1&65535,H,R,o[g+14>>1],o[g+20>>1],k,p);A>>>0<o[g+14>>1];)C[(H=(A<<1)+p|0)>>1]=S&a(o[H>>1],3),A=A+1|0;H=function(A,I,B,g){1==(0|B)?(E[0|g]=769,E[g+1|0]=3,B=n[A+8|0]|n[A+9|0]<<8,E[g+2|0]=B,E[g+3|0]=B>>>8,E[g+4|0]=n[A+10|0],L(o[A+14>>1],I,n[A+22|0],g+5|0),A=0):A=12290;return A}(g,p,n[Q+11|0],I),C[1050]=o[Q+14>>1],H||(H=function(A,I,B,g,Q,C){var r=0;2==(254&g)?(E[0|C]=770,E[C+1|0]=3,r=n[A+8|0]|n[A+9|0]<<8,E[C+2|0]=r,E[C+3|0]=r>>>8,E[C+4|0]=n[A+10|0],r=I,I=C+5|0,L(o[A+14>>1],r,n[A+22|0],I),r=o[A+14>>1],C=I+(a(r,n[A+22|0])+7>>>3)|0,3!=(0|g)?(I=i[A+24>>2],n[A+23|0]&&(I=((I>>>8&255)+(255&I)|0)+(I>>>16&255)|0),L(I<<1&65534,B,n[A+12|0],C)):(A=o[A+24>>1],function(A,I,B,g,Q,E){var C,i;D=C=D-16|0,i=d(Q,g),T(I,A,1,i),T(B,(I<<1)+A|0,0,i);for(;(65535&g)>>>0>=5;)P(Q,E),E=E+1|0,Q=Q+5|0,g=g+-5|0;(A=65535&g)&&(y(C+11|0,Q,A),d(A+(C+11|0)|0,5-A|0),P(C+11|0,E));D=C+16|0}(B,A,A,r,Q,C)),A=0):A=12290;return A}(g,p,h,n[Q+10|0],k,B),C[1051]=o[Q+12>>1])}}else H=12289}N(k)}else N(k),H=12299;else H=12296}else{if(I||(C[1050]=o[Q+14>>1]),B)break A;C[1051]=o[Q+12>>1]}else H=12293;return D=Q+16|0,H}function T(A,I,B,g){var Q;for(Q=B?1:2,B=0;(0|A)!=(0|B);)E[o[(B<<1)+I>>1]+g|0]=Q,B=B+1|0}function P(A,I){var B=0,g=0;for(E[0|I]=0,B=4;(0|B)>=0;)g=n[A+B|0]+a(g,3)|0,E[0|I]=g,B=B+-1|0}function j(A,I,B){var g=0,Q=0,C=0;for(E[0|B]=0,g=6;(0|A)!=(0|Q);)C=(3&o[(Q<<1)+I>>1])<<g|C,E[0|B]=C,(0|(g=g+-2|0))<=-1&&(C=0,E[B+1|0]=0,g=6,B=B+1|0),Q=Q+1|0}function _(A,I,B){for(var g=0,Q=0;(0|B)!=(0|Q);)g=(Q<<2)+I|0,E[0|A]=n[g+3|0],E[A+1|0]=o[g+2>>1],E[A+2|0]=i[g>>2]>>>8,E[A+3|0]=i[g>>2],Q=Q+1|0,A=A+4|0}function $(A,I){return!A|!I?A=514:(y(i[A+112>>2],I,o[A+118>>1]),A=0),A}function AA(A,I,B,g){return(A=function(A){var I=0,B=0;for(;;){if(2==(0|B))return 0;if(I=a(B,24),B=B+1|0,n[0|(I=I+1792|0)]==(0|A))break}return I}(A))?A=!g|!I&0!=(0|B)?258:0|Q[i[A+20>>2]](I,B,g):288}function IA(A,I){var B=0;if(!A|!I)A=258;else{if(!(B=i[A>>2]))return 288;A=0|Q[i[B+16>>2]](A+4|0,I)}return A}function BA(A){var I;return A?(I=i[A>>2])?0|Q[i[I+8>>2]](A+4|0):288:258}function gA(A,I,B){var g=0,Q=0;A:if((0|A)!=(0|I)){if(!(I+B>>>0>A>>>0&&(Q=A+B|0)>>>0>I>>>0))return void y(A,I,B);if(g=3&(A^I),A>>>0<I>>>0){if(!g){if(3&A)for(;;){if(!B)break A;if(E[0|A]=n[0|I],I=I+1|0,B=B+-1|0,!(3&(A=A+1|0)))break}if(!(B>>>0<=3)){for(g=B;i[A>>2]=i[I>>2],I=I+4|0,A=A+4|0,(g=g+-4|0)>>>0>3;);B&=3}}if(B)for(;E[0|A]=n[0|I],A=A+1|0,I=I+1|0,B=B+-1|0;);}else{if(!g){if(3&Q)for(;;){if(!B)break A;if(E[0|(g=(B=B+-1|0)+A|0)]=n[I+B|0],!(3&g))break}if(!(B>>>0<=3))for(;i[(B=B+-4|0)+A>>2]=i[I+B>>2],B>>>0>3;);}if(!B)break A;for(;E[(B=B+-1|0)+A|0]=n[I+B|0],B;);}}}function QA(A,I){var B=0,g=0,Q=0,E=0;B=3;A:{for(;;){if((0|(g=n[0|A]))==(0|(Q=n[0|I]))){if(I=I+1|0,A=A+1|0,B=B+-1|0)continue;break A}break}E=g-Q|0}return E}function EA(A,I,B,g,Q,r){var c,e=0,t=0,f=0,d=0,s=0,u=0,H=0,R=0,G=0,k=0,h=0,q=0,M=0,S=0,L=0,m=0;D=c=D-32|0,i[c+28>>2]=0,i[c+24>>2]=0,i[c+20>>2]=0,E[c+19|0]=0,E[c+18|0]=0,e=12290;A:if(!(!I|!Q))if(A)if(W(0,A,I,c+18|0,c+19|0,c+28|0,c+20|0,c+24|0)){if(I=i[c+28>>2],!(((A=n[I+22|0])+-9&255)>>>0>6|(n[I+12|0]+-9&255)>>>0>6|1!=n[c+18|0]|2!=(254&n[c+19|0]))){if(!r){C[Q>>1]=o[I+30>>1],e=0;break A}if(!g)break A;if(e=12291,t=A,A=o[I+14>>1],a(t,A)+7>>>3!=(0|B))break A;if(Y(A,c+16|0,c+14|0),f=i[c+28>>2],H=i[f+24>>2],n[f+23|0]?(A=o[c+16>>1]+1|0,C[c+16>>1]=A,H=(M=H>>>16&255)+((S=H>>>8&255)+(L=255&H)|0)|0):A=o[c+16>>1],I=o[c+14>>1],!(t=w(((A=(65535&a(I,A))<<1)+o[f+30>>1]|0)+(I+H<<2)|0))){e=12296;break A}if((u=(q=i[f+40>>2])+-1|0)>>>0<=1){for(G=(s=A+t|0)+(I<<=1)|0,e=o[f+14>>1],A=20,u-1||(q=2,A=32),R=I+G|0,u=o[f+20>>1],p(B,g,n[f+22|0],G),g=(u>>>0)%3|0,(I=n[c+19|0]+-2|0)>>>0>1||(I-1?(I=n[i[c+28>>2]+12|0],p(a(I,H<<1&131070)+7>>>3&65535,i[c+24>>2],I,R)):function(A,I,B,g){var Q,E=0,i=0,o=0;D=Q=D-16|0;for(;;){I:{if((65535&I)>>>0>=5)for(J(n[0|A],Q+11|0),E=0;;){if(5==(0|E))break I;(o=n[(Q+11|0)+E|0]+-1|0)>>>0>1||(o-1?(C[B>>1]=i,B=B+2|0):(C[g>>1]=i,g=g+2|0)),i=i+1|0,E=E+1|0}B:if(65535&I)for(J(n[0|A],Q+11|0),E=0;;){if(!(65535&I)|E>>>0>4)break B;(A=n[(Q+11|0)+E|0]+-1|0)>>>0>1||(A-1?(C[B>>1]=i,B=B+2|0):(C[g>>1]=i,g=g+2|0)),i=i+1|0,E=E+1|0,I=I+-1|0}return void(D=Q+16|0)}I=I+-5|0,A=A+1|0}}(i[c+24>>2],o[i[c+28>>2]+14>>1],R,R+(H<<1)|0)),B=H<<2,f=i[c+28>>2],n[f+23|0]?l(G,L,S,M,R,o[f+14>>1],o[f+20>>1],t,s):F(G,I=65535&H,I,R,o[f+14>>1],o[f+20>>1],t,s),f=B+R|0,m=e+s|0,h=u+-1|0,e=0,u=i[c+28>>2];e>>>0<(I=o[u+14>>1])>>>0;)B=(I=e<<1)+s|0,I=h&o[I+G>>1]+a(o[B>>1],3),C[B>>1]=I,(65535&I)>>>0>=o[u+20>>1]>>>1>>>0&&(I=I-g|0,C[B>>1]=I),E[e+s|0]=((65535&I)>>>0)%3,e=e+1|0;for(u=v(I,s,o[u+32>>1]),e=0,g=i[c+28>>2];e>>>0<(I=o[g+14>>1])>>>0;)(B=n[e+s|0]+-1|0)>>>0<=1&&(C[(I=(e<<1)+G|0)>>1]=h&o[I>>1]+(B-1|0?65535:1)),e=e+1|0;if(j(I,G,t),e=0,I=i[c+28>>2],B=o[I+14>>1],g=Z(q,A,n[I+39|0],B+3>>>2,t,B+t|0,B,t))I=0!=(0|u);else{for(B=i[c+28>>2];e>>>0<(I=o[B+14>>1])>>>0;)g=n[0|(I=e+s|0)]-n[e+t|0]|0,E[0|I]=(255&g)>>>0>2?g+3|0:g,e=e+1|0;for(u=0!=(0|u)&0!=(0|function(A,I,B){var g=0,Q=0,C=0,i=0,o=0,r=0,c=0,e=0,t=0,f=0,D=0,d=0,y=0,N=0;C=1,e=21;for(;;){if(I>>>0<16){for(;I;)g=a(n[0|A],3),1!=(0|I)?(I=I+-2|0,g=n[A+1|0]+g|0,A=A+2|0):(I=0,A=A+1|0),C=(Q=g>>>0>7)?0:C,r|=(Q?7:g)<<e,e=e+-3|0;E[B+2|0]=r,E[B+1|0]=r>>>8,E[0|B]=r>>>16,A=255&C;break}i=n[A+15|0],o=n[A+14|0],c=n[A+13|0],N=n[A+12|0],g=n[A+3|0]+a(n[A+2|0],3)|0,Q=n[A+1|0]+a(n[0|A],3)|0,t=n[A+5|0]+a(n[A+4|0],3)|0,f=n[A+7|0]+a(n[A+6|0],3)|0,D=n[A+9|0]+a(n[A+8|0],3)|0,d=n[A+11|0]+a(n[A+10|0],3)|0,y=(g>>>0<7?g:7)<<18|(Q>>>0>7?14680064:Q<<21)|(t>>>0>7?229376:t<<15)|(f>>>0<7?f:7)<<12|(D>>>0>7?3584:D<<9)|(d>>>0<7?d:7)<<6,E[0|B]=y>>>16,i=i+a(o,3)|0,o=c+a(N,3)|0,c=(o>>>0>7?56:o<<3)|y,E[B+2|0]=(i>>>0<7?i:7)|c,E[B+1|0]=c>>>8,C=2040&(i|o|g|Q|t|f|D|d)?0:C,B=B+3|0,I=I+-16|0,A=A+16|0}return A}(s,I,m)),d=i[c+28>>2],I=m+o[d+18>>1]|0,2==n[d+37|0]?(e=I+1|0,B=n[0|I]<<8):(e=I,B=0),I=e+1|0,h=o[d+30>>1],f=y(f,I,k=(e=B|n[0|e])>>>0>h>>>0?h:e),g=I+k|0,B=1+(o[d+30>>1]-k|0)&65535,I=e>>>0<=h>>>0&u,e=0;(0|B)!=(0|e);)I=n[g+e|0]?0:I,e=e+1|0;if(B=n[d+8|0]|n[d+9|0]<<8,E[0|t]=B,E[t+1|0]=B>>>8,E[t+2|0]=n[d+10|0],B=y(y(y(t+3|0,f,k)+k|0,m,o[d+18>>1])+o[d+18>>1]|0,i[c+20>>2],o[d+16>>1]),!(g=U(q,A,n[d+38|0],(B+o[d+16>>1]|0)-t&65535,t,t,o[d+14>>1],n[d+36|0],o[d+34>>1],n[d+23|0],i[d+24>>2]<<1,R))){for(A=i[c+28>>2],B=n[A+22|0],p(a(B,o[A+14>>1])+7>>>3&65535,i[c+20>>2],B,s),B=i[c+28>>2],n[B+23|0]?l(s,L,S,M,R,o[B+14>>1],o[B+20>>1],t,s):F(s,A=65535&H,A,R,o[B+14>>1],o[B+20>>1],t,s),B=o[i[c+28>>2]+14>>1],e=0;(0|B)!=(0|e);)I=o[(A=e<<1)+s>>1]==o[A+G>>1]?I:0,e=e+1|0;if(255&I){if(o[Q>>1]<k>>>0){N(t),e=12292;break A}y(r,f,k),C[Q>>1]=k,g=0}else g=0,I=0}}N(t),e=255&I?g:12289;break A}N(t)}e=12299}else e=12295;else e=12291;return D=c+32|0,e}function CA(A,I,B){for(var g=0,Q=0,C=0,i=0,o=0;(65535&I)>>>0>=16;)Q=n[A+1|0],i=n[0|A],g=7&(C=n[A+2|0]),E[B+15|0]=n[g+1848|0],E[B+14|0]=n[g+1840|0],g=i>>>5,E[B+1|0]=n[g+1848|0],E[0|B]=n[g+1840|0],g=C>>>3&7,E[B+13|0]=n[g+1848|0],E[B+12|0]=n[g+1840|0],g=Q>>>1&7,E[B+9|0]=n[g+1848|0],E[B+8|0]=n[g+1840|0],g=Q>>>4&7,E[B+7|0]=n[g+1848|0],E[B+6|0]=n[g+1840|0],g=i>>>2&7,E[B+3|0]=n[g+1848|0],E[B+2|0]=n[g+1840|0],C=((Q<<=8)|C)>>>6&7,E[B+11|0]=n[C+1848|0],E[B+10|0]=n[C+1840|0],Q=(Q|i<<16)>>>15&7,E[B+5|0]=n[Q+1848|0],E[B+4|0]=n[Q+1840|0],I=I+-16|0,B=B+16|0,A=A+3|0;A:if(65535&I)for(C=n[A+2|0]|n[A+1|0]<<8|n[0|A]<<16,i=21;;){if(!(g=65535&(Q=I)))break A;A=B,o=C>>>i&7,E[0|B]=n[o+1840|0],B=B+1|0,i=i+-3|0,I=0,1!=(0|g)&&(E[A+1|0]=n[o+1848|0],I=Q+-2|0,B=A+2|0)}}function iA(){var A,I;return D=A=D-16|0,E[A+15|0]=0,I=0|t(0,A+15|0,0),D=A+16|0,I}function nA(A,I){var B=0;return(-1>>>(B=31&I)&A)<<B|((B=A)&-1<<(A=0-I&31))>>>A}return Q[1]=function(A){return 0|M(A|=0,0,0,1,0)},Q[2]=function(A,I,B){return 0|M(A|=0,I|=0,B|=0,0,0)},Q[3]=function(A,I){return 0|M(A|=0,0,0,2,I|=0)},Q[4]=function(A,I,B){var g;return D=g=D-96|0,A=M(g,A|=0,I|=0,3,B|=0),D=g+96|0,0|A},Q[5]=function(A){return 0|h(A|=0,0,0,1,0)},Q[6]=function(A,I,B){return 0|h(A|=0,I|=0,B|=0,0,0)},Q[7]=function(A,I){return 0|h(A|=0,0,0,2,I|=0)},Q[8]=function(A,I,B){var g;return D=g=D-112|0,A=h(g,A|=0,I|=0,3,B|=0),D=g+112|0,0|A},Q[9]=function(A,I){return function(A,I){var B=0;for(;(0|I)!=(0|B);)E[A+B|0]=iA(),B=B+1|0}(A|=0,I|=0),0},{d:w,e:N,f:function(){var A;!function(){var A;D=A=D-16|0,E[A+15|0]=0,t(1,A+15|0,0),D=A+16|0}(),function(){var A,I,B=0,g=0;if(!(A=function(){var A=0;for(;;){A:{if(4!=(0|A)){if(i[a(A,12)+2056>>2])break A;A=a(A,12)+2048|0}else A=0;return A}A=A+1|0}}()))return;if(!(I=w(4)))return;i[I>>2]=9;for(;g=(B=g)+1|0,x(B););i[A+8>>2]=I,i[A+4>>2]=0,i[A>>2]=B,i[524]=B}(),A=K(),O(i[524],0,0),C[1052]=o[1050]+-5,C[1053]=o[A+30>>1]},g:function(){return o[1050]},h:function(){return o[1051]},i:function(){return o[1052]},j:function(){return o[1053]},k:function(A,I){return A|=0,I|=0,0|O(i[524],A,I)},l:function(A,I,B,g){return A|=0,I|=0,B|=0,g|=0,0|function(A,I,B,g,Q,r){var c,e=0,t=0,f=0,s=0,u=0,H=0,R=0,G=0,k=0,h=0,q=0,M=0,S=0,J=0,m=0,X=0,z=0,x=0,V=0;D=c=D-16|0,i[c+12>>2]=0,i[c+8>>2]=0,E[c+7|0]=0,e=12290;if(B&&(e=12291,I))if(W(1,I,B,c+7|0,0,c+12|0,c+8|0,0)){if(e=12299,I=i[c+12>>2],B=n[I+22|0],!(1!=n[c+7|0]|(B+-9&255)>>>0>6))if(t=B,B=o[I+14>>1],h=a(t,B)+7>>>3,r){if(e=12292,!((65535&h)>>>0>o[1052])&&(e=12290,Q&&(e=12291,!(o[I+30>>1]<g>>>0))))if(Y(B,c+4|0,c+2|0),e=i[c+12>>2],u=i[e+24>>2],n[e+23|0]?(I=o[c+4>>1]+1|0,C[c+4>>1]=I,u=(M=u>>>16&255)+((S=u>>>8&255)+(J=255&u)|0)|0):I=o[c+4>>1],B=I,I=o[c+2>>1],B=65535&a(B,I),f=w(((t=u<<2)+o[e+18>>1]|0)+(I+B<<1)|0))if(G=i[e+40>>2],(H=G+-1|0)>>>0<=1){k=(s=f+(B<<1)|0)+(I<<1)|0,I=20,H-1||(G=2,I=32),H=t+k|0,X=2-g|0,z=g>>>8,x=(m=f+3|0)+g|0,V=o[e+20>>1]+-1|0;A:{for(;;){I:{B:{g:{if(!((e=b(A,o[e+16>>1]<<3,o[e+18>>1],H))||(B=i[c+12>>2],t=n[B+8|0]|n[B+9|0]<<8,E[0|f]=t,E[f+1|0]=t>>>8,E[f+2|0]=n[B+10|0],y(m,Q,g),t=y(y(x,H,o[B+18>>1])+o[B+18>>1]|0,i[c+8>>2],o[B+16>>1]),e=U(G,I,n[B+38|0],(t+o[B+16>>1]|0)-f&65535,f,f,o[B+14>>1],n[B+36|0],o[B+34>>1],n[B+23|0],i[B+24>>2]<<1,k)))){if(t=i[c+12>>2],B=n[t+22|0],p(a(B,o[t+14>>1])+7>>>3&65535,i[c+8>>2],B,s),B=i[c+12>>2],t=o[B+20>>1],e=o[B+14>>1],!n[B+23|0])break g;l(s,J,S,M,k,e,t,f,s);break B}B=0,t=!e;break I}F(s,B=65535&u,B,k,e,t,f,s)}if(j(o[i[c+12>>2]+14>>1],s,f),t=i[c+12>>2],B=o[t+14>>1],e=Z(G,I,n[t+39|0],B+3>>>2,f,B+f|0,B,f))break A;for(t=i[c+12>>2],B=o[t+14>>1],e=(q=B+f|0)+B|0,B=o[t+18>>1],R=y((e-(o[t+30>>1]+(B+n[t+37|0]|0)|0)|0)-2|0,H,B),B=R+o[t+18>>1]|0,2==n[t+37|0]&&(E[0|B]=z,B=B+1|0),E[0|B]=g,e=0,d(y(B+1|0,Q,g)+g|0,o[t+30>>1]+X|0),CA(R,o[t+14>>1],q),t=i[c+12>>2];B=o[t+14>>1],e>>>0<B>>>0;)R=e+f|0,B=n[e+q|0]+n[0|R]|0,E[0|R]=(255&B)>>>0>2?B+-3|0:B,e=e+1|0;B=v(B,f,o[t+32>>1]),e=0,t=1}if(!t|B)break;e=i[c+12>>2]}if(t){for(B=0,A=i[c+12>>2];I=o[A+14>>1],B>>>0<I>>>0;)(I=n[B+f|0]+-1|0)>>>0<=1&&(C[(g=s+(B<<1)|0)>>1]=o[g>>1]+(I-1|0?1:65535)&V),B=B+1|0;L(I,s,n[A+22|0],r),C[1052]=h}}N(f)}else N(f),e=12299;else e=12296}else C[1052]=h,e=0}else e=12294;return D=c+16|0,e}(i[524],o[1050],B,65535&I,A,g)},m:function(A,I,B){var g;return A|=0,I|=0,B|=0,D=g=D-16|0,C[g+14>>1]=o[1053],A=EA(o[1051],I,o[1052],A,g+14|0,B),D=g+16|0,0|(A?0-A|0:o[g+14>>1])},n:function(A){return 0,0|c()}}}({Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0,Math:Math},A,I.buffer)}(FA,s,u)}},instantiate:function(A,I){return{then:function(B,g){B({instance:new w.Instance(new w.Module(A,I))})}}}};d=[],"object"!=typeof w&&D("no native wasm support detected");var H=!1;function R(A,I){A||GA("Assertion failed: "+I)}function G(A){for(var I="";;){var B=M[A++>>0];if(!B)return I;I+=String.fromCharCode(B)}}"undefined"!=typeof TextDecoder&&new TextDecoder("utf8"),"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");function k(A,I){q.set(A,I)}var h,q,M,l,U,S=65536;function p(A){h=A,I.HEAP8=q=new Int8Array(A),I.HEAP16=new Int16Array(A),I.HEAP32=l=new Int32Array(A),I.HEAPU8=M=new Uint8Array(A),I.HEAPU16=new Uint16Array(A),I.HEAPU32=new Uint32Array(A),I.HEAPF32=new Float32Array(A),I.HEAPF64=U=new Float64Array(A)}var L=8392224,J=3600,m=I.TOTAL_MEMORY||16777216;function b(A){for(;A.length>0;){var B=A.shift();if("function"!=typeof B){var g=B.func;"number"==typeof g?void 0===B.arg?I.dynCall_v(g):I.dynCall_vi(g,B.arg):g(void 0===B.arg?null:B.arg)}else B()}}(s=I.wasmMemory?I.wasmMemory:new w.Memory({initial:m/S,maximum:m/S}))&&(h=s.buffer),m=h.byteLength,p(h),l[J>>2]=L;var Y=[],X=[],z=[],x=[];function v(){if(I.preRun)for("function"==typeof I.preRun&&(I.preRun=[I.preRun]);I.preRun.length;)W(I.preRun.shift());b(Y)}function Z(){!0,b(X)}function V(){b(z)}function K(){if(I.postRun)for("function"==typeof I.postRun&&(I.postRun=[I.postRun]);I.postRun.length;)O(I.postRun.shift());b(x)}function W(A){Y.unshift(A)}function O(A){x.unshift(A)}var T=0,P=null,j=null;function _(A){T++,I.monitorRunDependencies&&I.monitorRunDependencies(T)}function $(A){if(T--,I.monitorRunDependencies&&I.monitorRunDependencies(T),0==T&&(null!==P&&(clearInterval(P),P=null),j)){var B=j;j=null,B()}}I.preloadedImages={},I.preloadedAudios={};var AA="data:application/octet-stream;base64,";function IA(A){return String.prototype.startsWith?A.startsWith(AA):0===A.indexOf(AA)}var BA="";function gA(){try{if(d)return new Uint8Array(d);var A=yA(BA);if(A)return A;if(r)return r(BA);throw"both async and sync fetching of the wasm failed"}catch(A){GA(A)}}function QA(){return d||!Q&&!E||"function"!=typeof fetch?new Promise((function(A,I){A(gA())})):fetch(BA,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+BA+"'";return A.arrayBuffer()})).catch((function(){return gA()}))}function EA(A){A.setTempRet0=N,A.getTempRet0=F;var B={env:A};function g(A,B){var g=A.exports;I.asm=g,$()}function Q(A){g(A.instance)}function E(A){return QA().then((function(A){return w.instantiate(A,B)})).then(A,(function(A){D("failed to asynchronously prepare wasm: "+A),GA(A)}))}if(_(),I.instantiateWasm)try{return I.instantiateWasm(B,g)}catch(A){return D("Module.instantiateWasm callback failed with error: "+A),!1}return function(){if(d||"function"!=typeof w.instantiateStreaming||IA(BA)||"function"!=typeof fetch)return E(Q);fetch(BA,{credentials:"same-origin"}).then((function(A){return w.instantiateStreaming(A,B).then(Q,(function(A){D("wasm streaming compile failed: "+A),D("falling back to ArrayBuffer instantiation"),E(Q)}))}))}(),{}}IA(BA)||(BA=t(BA)),I.asm=function(A,I,B){return I.memory=s,I.table=u=new w.Table({initial:10,maximum:10,element:"anyfunc"}),EA(I)};var CA=[function(){return I.getRandomValue()},function(){if(void 0===I.getRandomValue)try{var A="object"==typeof window?window:self,B=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return B.getRandomValues(A),A[0]>>>0};g(),I.getRandomValue=g}catch(A){try{var Q=eval("require")("crypto"),E=function(){var A=Q.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};E(),I.getRandomValue=E}catch(A){throw"No secure random number generator found"}}}];function iA(A,I,B){for(var g=G(I),Q=[],E=function(A,I){return A+I-1&~(I-1)},C=B,i=0;i<g.length;i++){var n=g[i];"d"==n||"f"==n?(C=E(C,8),Q.push(U[C>>3]),C+=8):"i"==n&&(C=E(C,4),Q.push(l[C>>2]),C+=4)}return CA[A].apply(null,Q)}function nA(){return q.length}function oA(A,I,B){M.set(M.subarray(I,I+B),A)}function rA(A){return I.___errno_location&&(l[I.___errno_location()>>2]=A),A}function aA(A){GA("OOM")}function cA(A){aA()}function eA(A){A|=0;var I,B,g;return g=0|nA(),(0|A)>0&(0|(B=(I=0|l[J>>2])+A|0))<(0|I)|(0|B)<0?(aA(),rA(12),-1):(0|B)>(0|g)&&!(0|cA())?(rA(12),-1):(l[J>>2]=0|B,0|I)}var tA=!1;function fA(A){for(var I=[],B=0;B<A.length;B++){var g=A[B];g>255&&(tA&&R(!1,"Character code "+g+" ("+String.fromCharCode(g)+")  at offset "+B+" not in 0x00-0xFF."),g&=255),I.push(String.fromCharCode(g))}return I.join("")}var DA="function"==typeof atob?atob:function(A){var I,B,g,Q,E,C,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="",o=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=i.indexOf(A.charAt(o++))<<2|(Q=i.indexOf(A.charAt(o++)))>>4,B=(15&Q)<<4|(E=i.indexOf(A.charAt(o++)))>>2,g=(3&E)<<6|(C=i.indexOf(A.charAt(o++))),n+=String.fromCharCode(I),64!==E&&(n+=String.fromCharCode(B)),64!==C&&(n+=String.fromCharCode(g))}while(o<A.length);return n};function dA(A){if("boolean"==typeof C&&C){var I;try{I=Buffer.from(A,"base64")}catch(B){I=new Buffer(A,"base64")}return new Uint8Array(I.buffer,I.byteOffset,I.byteLength)}try{for(var B=DA(A),g=new Uint8Array(B.length),Q=0;Q<B.length;++Q)g[Q]=B.charCodeAt(Q);return g}catch(A){throw new Error("Converting base64 string to bytes failed.")}}function yA(A){if(IA(A))return dA(A.slice(AA.length))}var NA={},FA={b:iA,c:oA,a:eA},sA=I.asm(NA,FA,h);I.asm=sA;I.___wasm_call_ctors=function(){return I.asm.__wasm_call_ctors.apply(null,arguments)},I._malloc=function(){return I.asm.d.apply(null,arguments)},I._free=function(){return I.asm.e.apply(null,arguments)},I._ntrujs_init=function(){return I.asm.f.apply(null,arguments)},I._ntrujs_public_key_bytes=function(){return I.asm.g.apply(null,arguments)},I._ntrujs_private_key_bytes=function(){return I.asm.h.apply(null,arguments)},I._ntrujs_encrypted_bytes=function(){return I.asm.i.apply(null,arguments)},I._ntrujs_decrypted_bytes=function(){return I.asm.j.apply(null,arguments)},I._ntrujs_keypair=function(){return I.asm.k.apply(null,arguments)},I._ntrujs_encrypt=function(){return I.asm.l.apply(null,arguments)},I._ntrujs_decrypt=function(){return I.asm.m.apply(null,arguments)};var uA,wA=I.__growWasmMemory=function(){return I.asm.n.apply(null,arguments)};function HA(A){this.name="ExitStatus",this.message="Program terminated with exit("+A+")",this.status=A}function RA(A){function B(){uA||(uA=!0,H||(Z(),V(),I.onRuntimeInitialized&&I.onRuntimeInitialized(),K()))}A=A||g,T>0||(v(),T>0||(I.setStatus?(I.setStatus("Running..."),setTimeout((function(){setTimeout((function(){I.setStatus("")}),1),B()}),1)):B()))}function GA(A){throw I.onAbort&&I.onAbort(A),f(A+=""),D(A),H=!0,1,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(I.asm=sA,I.writeArrayToMemory=k,j=function A(){uA||RA(),uA||(j=A)},I.run=RA,I.abort=GA,I.preInit)for("function"==typeof I.preInit&&(I.preInit=[I.preInit]);I.preInit.length>0;)I.preInit.pop()();return!0,RA(),new Promise((function(A,B){I.onAbort=B,I.onRuntimeInitialized=function(){A(I)}}))})).then((function(A){Object.keys(A).forEach((function(I){Q[I]=A[I]}))}));var n=Q.ready.then((function(){Q._ntrujs_init(),A=Q._ntrujs_public_key_bytes(),I=Q._ntrujs_private_key_bytes(),B=Q._ntrujs_encrypted_bytes(),g=Q._ntrujs_decrypted_bytes()}));return{publicKeyBytes:n.then((function(){return A})),privateKeyBytes:n.then((function(){return I})),cyphertextBytes:n.then((function(){return B})),plaintextBytes:n.then((function(){return g})),keyPair:function(){return n.then((function(){var B=Q._malloc(A),g=Q._malloc(I);try{return E(Q._ntrujs_keypair(B,g),{publicKey:C(B,A),privateKey:C(g,I)})}finally{i(B),i(g)}}))},encrypt:function(I,o){return n.then((function(){if(I.length>g)throw new Error("Plaintext length exceeds ntru.plaintextBytes.");var n=Q._malloc(I.length),r=Q._malloc(A),a=Q._malloc(B);Q.writeArrayToMemory(I,n),Q.writeArrayToMemory(o,r);try{return E(Q._ntrujs_encrypt(n,I.length,r,a),C(a,B))}finally{i(n),i(r),i(a)}}))},decrypt:function(A,o){return n.then((function(){var n=Q._malloc(B),r=Q._malloc(I),a=Q._malloc(g);Q.writeArrayToMemory(A,n),Q.writeArrayToMemory(o,r);try{var c=Q._ntrujs_decrypt(n,r,a);if(c>=0)return C(a,c);E(-c)}finally{i(n),i(r),i(a)}}))}}}();"undefined"!=typeof module&&module.exports?(ntru.ntru=ntru,module.exports=ntru):self.ntru=ntru;
//end ntru.js

/**
 * [aes-js]{@link https://github.com/ricmoo/aes-js}
 *
 * @version 3.1.2
 * @author Richard Moore [aes-js@ricmoo.com]
 * @copyright Richard Moore 2015
 * @license MIT
 */
"use strict";!function(t){function r(t){return parseInt(t)===t}function i(t){if(r(t.length)){for(var e=0;e<t.length;e++)if(!r(t[e])||t[e]<0||255<t[e])return;return 1}}function s(t,e){if(t.buffer&&ArrayBuffer.isView(t)&&"Uint8Array"===t.name)return e&&(t=t.slice?t.slice():Array.prototype.slice.call(t)),t;if(Array.isArray(t)){if(!i(t))throw new Error("Array contains invalid value: "+t);return new Uint8Array(t)}if(r(t.length)&&i(t))return new Uint8Array(t);throw new Error("unsupported array-like object")}function a(t){return new Uint8Array(t)}function o(t,e,r,i,n){null==i&&null==n||(t=t.slice?t.slice(i,n):Array.prototype.slice.call(t,i,n)),e.set(t,r)}var n,e={toBytes:function(t){var e=[],r=0;for(t=encodeURI(t);r<t.length;){var i=t.charCodeAt(r++);37===i?(e.push(parseInt(t.substr(r,2),16)),r+=2):e.push(i)}return s(e)},fromBytes:function(t){for(var e=[],r=0;r<t.length;){var i=t[r];i<128?(e.push(String.fromCharCode(i)),r++):191<i&&i<224?(e.push(String.fromCharCode((31&i)<<6|63&t[r+1])),r+=2):(e.push(String.fromCharCode((15&i)<<12|(63&t[r+1])<<6|63&t[r+2])),r+=3)}return e.join("")}},h=(n="0123456789abcdef",{toBytes:function(t){for(var e=[],r=0;r<t.length;r+=2)e.push(parseInt(t.substr(r,2),16));return e},fromBytes:function(t){for(var e=[],r=0;r<t.length;r++){var i=t[r];e.push(n[(240&i)>>4]+n[15&i])}return e.join("")}}),u={16:10,24:12,32:14},l=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],p=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],f=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],c=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],y=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],g=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],d=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],_=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],w=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],m=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],b=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],C=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],z=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function S(t){for(var e=[],r=0;r<t.length;r+=4)e.push(t[r]<<24|t[r+1]<<16|t[r+2]<<8|t[r+3]);return e}var A=function(t){if(!(this instanceof A))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:s(t,!0)}),this._prepare()};A.prototype._prepare=function(){var t=u[this.key.length];if(null==t)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var e=0;e<=t;e++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);for(var r,i=4*(t+1),n=this.key.length/4,s=S(this.key),e=0;e<n;e++)r=e>>2,this._Ke[r][e%4]=s[e],this._Kd[t-r][e%4]=s[e];for(var o,h=0,a=n;a<i;){if(o=s[n-1],s[0]^=p[o>>16&255]<<24^p[o>>8&255]<<16^p[255&o]<<8^p[o>>24&255]^l[h]<<24,h+=1,8!=n)for(e=1;e<n;e++)s[e]^=s[e-1];else{for(e=1;e<n/2;e++)s[e]^=s[e-1];o=s[n/2-1],s[n/2]^=p[255&o]^p[o>>8&255]<<8^p[o>>16&255]<<16^p[o>>24&255]<<24;for(e=n/2+1;e<n;e++)s[e]^=s[e-1]}for(e=0;e<n&&a<i;)f=a>>2,c=a%4,this._Ke[f][c]=s[e],this._Kd[t-f][c]=s[e++],a++}for(var f=1;f<t;f++)for(var c=0;c<4;c++)o=this._Kd[f][c],this._Kd[f][c]=b[o>>24&255]^E[o>>16&255]^C[o>>8&255]^z[255&o]},A.prototype.encrypt=function(t){if(16!=t.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var e=this._Ke.length-1,r=[0,0,0,0],i=S(t),n=0;n<4;n++)i[n]^=this._Ke[0][n];for(var s=1;s<e;s++){for(n=0;n<4;n++)r[n]=c[i[n]>>24&255]^y[i[(n+1)%4]>>16&255]^g[i[(n+2)%4]>>8&255]^d[255&i[(n+3)%4]]^this._Ke[s][n];i=r.slice()}for(var o,h=a(16),n=0;n<4;n++)o=this._Ke[e][n],h[4*n]=255&(p[i[n]>>24&255]^o>>24),h[4*n+1]=255&(p[i[(n+1)%4]>>16&255]^o>>16),h[4*n+2]=255&(p[i[(n+2)%4]>>8&255]^o>>8),h[4*n+3]=255&(p[255&i[(n+3)%4]]^o);return h},A.prototype.decrypt=function(t){if(16!=t.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var e=this._Kd.length-1,r=[0,0,0,0],i=S(t),n=0;n<4;n++)i[n]^=this._Kd[0][n];for(var s=1;s<e;s++){for(n=0;n<4;n++)r[n]=_[i[n]>>24&255]^v[i[(n+3)%4]>>16&255]^w[i[(n+2)%4]>>8&255]^m[255&i[(n+1)%4]]^this._Kd[s][n];i=r.slice()}for(var o,h=a(16),n=0;n<4;n++)o=this._Kd[e][n],h[4*n]=255&(f[i[n]>>24&255]^o>>24),h[4*n+1]=255&(f[i[(n+3)%4]>>16&255]^o>>16),h[4*n+2]=255&(f[i[(n+2)%4]>>8&255]^o>>8),h[4*n+3]=255&(f[255&i[(n+1)%4]]^o);return h};var K=function(t){if(!(this instanceof K))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new A(t)};K.prototype.encrypt=function(t){if((t=s(t)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var e=a(t.length),r=a(16),i=0;i<t.length;i+=16)o(t,r,0,i,i+16),o(r=this._aes.encrypt(r),e,i);return e},K.prototype.decrypt=function(t){if((t=s(t)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var e=a(t.length),r=a(16),i=0;i<t.length;i+=16)o(t,r,0,i,i+16),o(r=this._aes.decrypt(r),e,i);return e};var x=function(t,e){if(!(this instanceof x))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",e){if(16!=e.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else e=a(16);this._lastCipherblock=s(e,!0),this._aes=new A(t)};x.prototype.encrypt=function(t){if((t=s(t)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var e=a(t.length),r=a(16),i=0;i<t.length;i+=16){o(t,r,0,i,i+16);for(var n=0;n<16;n++)r[n]^=this._lastCipherblock[n];this._lastCipherblock=this._aes.encrypt(r),o(this._lastCipherblock,e,i)}return e},x.prototype.decrypt=function(t){if((t=s(t)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var e=a(t.length),r=a(16),i=0;i<t.length;i+=16){o(t,r,0,i,i+16),r=this._aes.decrypt(r);for(var n=0;n<16;n++)e[i+n]=r[n]^this._lastCipherblock[n];o(t,this._lastCipherblock,0,i,i+16)}return e};var k=function(t,e,r){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",e){if(16!=e.length)throw new Error("invalid initialation vector size (must be 16 size)")}else e=a(16);r=r||1,this.segmentSize=r,this._shiftRegister=s(e,!0),this._aes=new A(t)};k.prototype.encrypt=function(t){if(t.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var e,r=s(t,!0),i=0;i<r.length;i+=this.segmentSize){e=this._aes.encrypt(this._shiftRegister);for(var n=0;n<this.segmentSize;n++)r[i+n]^=e[n];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(r,this._shiftRegister,16-this.segmentSize,i,i+this.segmentSize)}return r},k.prototype.decrypt=function(t){if(t.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var e,r=s(t,!0),i=0;i<r.length;i+=this.segmentSize){e=this._aes.encrypt(this._shiftRegister);for(var n=0;n<this.segmentSize;n++)r[i+n]^=e[n];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(t,this._shiftRegister,16-this.segmentSize,i,i+this.segmentSize)}return r};var I=function(t,e){if(!(this instanceof I))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",e){if(16!=e.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else e=a(16);this._lastPrecipher=s(e,!0),this._lastPrecipherIndex=16,this._aes=new A(t)};I.prototype.encrypt=function(t){for(var e=s(t,!0),r=0;r<e.length;r++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),e[r]^=this._lastPrecipher[this._lastPrecipherIndex++];return e},I.prototype.decrypt=I.prototype.encrypt;var P=function(t){if(!(this instanceof P))throw Error("Counter must be instanitated with `new`");0===t||t||(t=1),"number"==typeof t?(this._counter=a(16),this.setValue(t)):this.setBytes(t)};P.prototype.setValue=function(t){if("number"!=typeof t||parseInt(t)!=t)throw new Error("invalid counter value (must be an integer)");for(var e=15;0<=e;--e)this._counter[e]=t%256,t>>=8},P.prototype.setBytes=function(t){if(16!=(t=s(t,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=t},P.prototype.increment=function(){for(var t=15;0<=t;t--){if(255!==this._counter[t]){this._counter[t]++;break}this._counter[t]=0}};var R=function(t,e){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",e instanceof P||(e=new P(e)),this._counter=e,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new A(t)};R.prototype.encrypt=function(t){for(var e=s(t,!0),r=0;r<e.length;r++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),e[r]^=this._remainingCounter[this._remainingCounterIndex++];return e},R.prototype.decrypt=R.prototype.encrypt;var B={AES:A,Counter:P,ModeOfOperation:{ecb:K,cbc:x,cfb:k,ofb:I,ctr:R},utils:{hex:h,utf8:e},padding:{pkcs7:{pad:function(t){var e=16-(t=s(t,!0)).length%16,r=a(t.length+e);o(t,r);for(var i=t.length;i<r.length;i++)r[i]=e;return r},strip:function(t){if((t=s(t,!0)).length<16)throw new Error("PKCS#7 invalid length");var e=t[t.length-1];if(16<e)throw new Error("PKCS#7 padding byte out of range");for(var r=t.length-e,i=0;i<e;i++)if(t[r+i]!==e)throw new Error("PKCS#7 invalid padding byte");var n=a(r);return o(t,n,0,0,r),n}}},_arrayTest:{coerceArray:s,createArray:a,copyArray:o}};"undefined"!=typeof exports?module.exports=B:"function"==typeof define&&define.amd?define(B):(t.aesjs&&(B._aesjs=t.aesjs),t.aesjs=B)}(this);
//end aes-js

function AESEncrypt(t,e,s){var r=aesjs.utils.utf8.toBytes(t),n=aesjs.utils.utf8.toBytes(e),u=new aesjs.ModeOfOperation.ctr(n,new aesjs.Counter(s)).encrypt(r);return aesjs.utils.hex.fromBytes(u)}function AESDecrypt(t,e,s){var r=aesjs.utils.hex.toBytes(t),n=aesjs.utils.utf8.toBytes(e),u=new aesjs.ModeOfOperation.ctr(n,new aesjs.Counter(s)).decrypt(r);return aesjs.utils.utf8.fromBytes(u)}
function AESEncrypt2(plaintext, key, CTR_) {
  var encoded = aesjs.utils.utf8.toBytes(plaintext)
  var enckey = key; //NO ENCODING
  var counter_ = CTR_;
  var aesCtr = new aesjs.ModeOfOperation.ctr(enckey, new aesjs.Counter(CTR_));
  var encryptedBytes = aesCtr.encrypt(encoded);
  return aesjs.utils.hex.fromBytes(encryptedBytes);
};
function AESDecrypt2(ciphertext, key, CTR_) {
  var decoded = aesjs.utils.hex.toBytes(ciphertext)
  var enckey = key; //NO ENCODING
  var aesCtr = new aesjs.ModeOfOperation.ctr(enckey, new aesjs.Counter(CTR_));
  var decryptedBytes = aesCtr.decrypt(decoded);
  var decoded2 = aesjs.utils.utf8.fromBytes(decryptedBytes);
  return decoded2;
};//wrapper functions

/**
 * [js-sha3]{@link https://github.com/emn178/js-sha3}
 *
 * @version 0.8.0
 * @author Chen, Yi-Cyuan [emn178@gmail.com]
 * @copyright Chen, Yi-Cyuan 2015-2018
 * @license MIT
 */
!function(){"use strict";function t(t,e,r){this.blocks=[],this.s=[],this.padding=e,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(t<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function e(e,r,n){t.call(this,e,r,n)}var r="input is invalid type",n="object"==typeof window,i=n?window:{};i.JS_SHA3_NO_WINDOW&&(n=!1);var o=!n&&"object"==typeof self;!i.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?i=global:o&&(i=self);var a=!i.JS_SHA3_NO_COMMON_JS&&"object"==typeof module&&module.exports,s="function"==typeof define&&define.amd,u=!i.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,f="0123456789abcdef".split(""),c=[4,1024,262144,67108864],h=[0,8,16,24],p=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],l=[128,256],y=["hex","buffer","arrayBuffer","array","digest"],b={128:168,256:136};!i.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!u||!i.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var A=function(e,r,n){return function(i){return new t(e,r,e).update(i)[n]()}},w=function(e,r,n){return function(i,o){return new t(e,r,o).update(i)[n]()}},v=function(t,e,r){return function(e,n,i,o){return S["cshake"+t].update(e,n,i,o)[r]()}},B=function(t,e,r){return function(e,n,i,o){return S["kmac"+t].update(e,n,i,o)[r]()}},g=function(t,e,r,n){for(var i=0;i<y.length;++i){var o=y[i];t[o]=e(r,n,o)}return t},_=function(e,r){var n=A(e,r,"hex");return n.create=function(){return new t(e,r,e)},n.update=function(t){return n.create().update(t)},g(n,A,e,r)},k=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:_},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:_},{name:"shake",padding:[31,7936,2031616,520093696],bits:l,createMethod:function(e,r){var n=w(e,r,"hex");return n.create=function(n){return new t(e,r,n)},n.update=function(t,e){return n.create(e).update(t)},g(n,w,e,r)}},{name:"cshake",padding:c,bits:l,createMethod:function(e,r){var n=b[e],i=v(e,0,"hex");return i.create=function(i,o,a){return o||a?new t(e,r,i).bytepad([o,a],n):S["shake"+e].create(i)},i.update=function(t,e,r,n){return i.create(e,r,n).update(t)},g(i,v,e,r)}},{name:"kmac",padding:c,bits:l,createMethod:function(t,r){var n=b[t],i=B(t,0,"hex");return i.create=function(i,o,a){return new e(t,r,o).bytepad(["KMAC",a],n).bytepad([i],n)},i.update=function(t,e,r,n){return i.create(t,r,n).update(e)},g(i,B,t,r)}}],S={},C=[],x=0;x<k.length;++x)for(var m=k[x],E=m.bits,O=0;O<E.length;++O){var z=m.name+"_"+E[O];if(C.push(z),S[z]=m.createMethod(E[O],m.padding),"sha3"!==m.name){var N=m.name+E[O];C.push(N),S[N]=S[z]}}t.prototype.update=function(t){if(this.finalized)throw new Error("finalize already called");var e,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(r);if(null===t)throw new Error(r);if(u&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||u&&ArrayBuffer.isView(t)))throw new Error(r);e=!0}for(var i,o,a=this.blocks,s=this.byteCount,f=t.length,c=this.blockCount,p=0,d=this.s;p<f;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<c+1;++i)a[i]=0;if(e)for(i=this.start;p<f&&i<s;++p)a[i>>2]|=t[p]<<h[3&i++];else for(i=this.start;p<f&&i<s;++p)(o=t.charCodeAt(p))<128?a[i>>2]|=o<<h[3&i++]:o<2048?(a[i>>2]|=(192|o>>6)<<h[3&i++],a[i>>2]|=(128|63&o)<<h[3&i++]):o<55296||o>=57344?(a[i>>2]|=(224|o>>12)<<h[3&i++],a[i>>2]|=(128|o>>6&63)<<h[3&i++],a[i>>2]|=(128|63&o)<<h[3&i++]):(o=65536+((1023&o)<<10|1023&t.charCodeAt(++p)),a[i>>2]|=(240|o>>18)<<h[3&i++],a[i>>2]|=(128|o>>12&63)<<h[3&i++],a[i>>2]|=(128|o>>6&63)<<h[3&i++],a[i>>2]|=(128|63&o)<<h[3&i++]);if(this.lastByteIndex=i,i>=s){for(this.start=i-s,this.block=a[c],i=0;i<c;++i)d[i]^=a[i];j(d),this.reset=!0}else this.start=i}return this},t.prototype.encode=function(t,e){var r=255&t,n=1,i=[r];for(r=255&(t>>=8);r>0;)i.unshift(r),r=255&(t>>=8),++n;return e?i.push(n):i.unshift(n),this.update(i),i.length},t.prototype.encodeString=function(t){var e,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(r);if(null===t)throw new Error(r);if(u&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||u&&ArrayBuffer.isView(t)))throw new Error(r);e=!0}var i=0,o=t.length;if(e)i=o;else for(var a=0;a<t.length;++a){var s=t.charCodeAt(a);s<128?i+=1:s<2048?i+=2:s<55296||s>=57344?i+=3:(s=65536+((1023&s)<<10|1023&t.charCodeAt(++a)),i+=4)}return i+=this.encode(8*i),this.update(t),i},t.prototype.bytepad=function(t,e){for(var r=this.encode(e),n=0;n<t.length;++n)r+=this.encodeString(t[n]);var i=e-r%e,o=[];return o.length=i,this.update(o),this},t.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex,r=this.blockCount,n=this.s;if(t[e>>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e<r+1;++e)t[e]=0;for(t[r-1]|=2147483648,e=0;e<r;++e)n[e]^=t[e];j(n)}},t.prototype.toString=t.prototype.hex=function(){this.finalize();for(var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,a=0,s="";a<n;){for(o=0;o<e&&a<n;++o,++a)t=r[o],s+=f[t>>4&15]+f[15&t]+f[t>>12&15]+f[t>>8&15]+f[t>>20&15]+f[t>>16&15]+f[t>>28&15]+f[t>>24&15];a%e==0&&(j(r),o=0)}return i&&(t=r[o],s+=f[t>>4&15]+f[15&t],i>1&&(s+=f[t>>12&15]+f[t>>8&15]),i>2&&(s+=f[t>>20&15]+f[t>>16&15])),s},t.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,a=0,s=this.outputBits>>3;t=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(t);a<n;){for(o=0;o<e&&a<n;++o,++a)u[a]=r[o];a%e==0&&j(r)}return i&&(u[o]=r[o],t=t.slice(0,s)),t},t.prototype.buffer=t.prototype.arrayBuffer,t.prototype.digest=t.prototype.array=function(){this.finalize();for(var t,e,r=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,a=0,s=0,u=[];s<i;){for(a=0;a<r&&s<i;++a,++s)t=s<<2,e=n[a],u[t]=255&e,u[t+1]=e>>8&255,u[t+2]=e>>16&255,u[t+3]=e>>24&255;s%r==0&&j(n)}return o&&(t=s<<2,e=n[a],u[t]=255&e,o>1&&(u[t+1]=e>>8&255),o>2&&(u[t+2]=e>>16&255)),u},(e.prototype=new t).finalize=function(){return this.encode(this.outputBits,!0),t.prototype.finalize.call(this)};var j=function(t){var e,r,n,i,o,a,s,u,f,c,h,d,l,y,b,A,w,v,B,g,_,k,S,C,x,m,E,O,z,N,j,J,M,H,I,R,U,V,F,D,W,Y,K,q,G,L,P,Q,T,X,Z,$,tt,et,rt,nt,it,ot,at,st,ut,ft,ct;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],a=t[2]^t[12]^t[22]^t[32]^t[42],s=t[3]^t[13]^t[23]^t[33]^t[43],u=t[4]^t[14]^t[24]^t[34]^t[44],f=t[5]^t[15]^t[25]^t[35]^t[45],c=t[6]^t[16]^t[26]^t[36]^t[46],h=t[7]^t[17]^t[27]^t[37]^t[47],e=(d=t[8]^t[18]^t[28]^t[38]^t[48])^(a<<1|s>>>31),r=(l=t[9]^t[19]^t[29]^t[39]^t[49])^(s<<1|a>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=i^(u<<1|f>>>31),r=o^(f<<1|u>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=a^(c<<1|h>>>31),r=s^(h<<1|c>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=u^(d<<1|l>>>31),r=f^(l<<1|d>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=c^(i<<1|o>>>31),r=h^(o<<1|i>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,y=t[0],b=t[1],L=t[11]<<4|t[10]>>>28,P=t[10]<<4|t[11]>>>28,O=t[20]<<3|t[21]>>>29,z=t[21]<<3|t[20]>>>29,st=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,Y=t[40]<<18|t[41]>>>14,K=t[41]<<18|t[40]>>>14,H=t[2]<<1|t[3]>>>31,I=t[3]<<1|t[2]>>>31,A=t[13]<<12|t[12]>>>20,w=t[12]<<12|t[13]>>>20,Q=t[22]<<10|t[23]>>>22,T=t[23]<<10|t[22]>>>22,N=t[33]<<13|t[32]>>>19,j=t[32]<<13|t[33]>>>19,ft=t[42]<<2|t[43]>>>30,ct=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,R=t[14]<<6|t[15]>>>26,U=t[15]<<6|t[14]>>>26,v=t[25]<<11|t[24]>>>21,B=t[24]<<11|t[25]>>>21,X=t[34]<<15|t[35]>>>17,Z=t[35]<<15|t[34]>>>17,J=t[45]<<29|t[44]>>>3,M=t[44]<<29|t[45]>>>3,C=t[6]<<28|t[7]>>>4,x=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,V=t[26]<<25|t[27]>>>7,F=t[27]<<25|t[26]>>>7,g=t[36]<<21|t[37]>>>11,_=t[37]<<21|t[36]>>>11,$=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,q=t[8]<<27|t[9]>>>5,G=t[9]<<27|t[8]>>>5,m=t[18]<<20|t[19]>>>12,E=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,at=t[28]<<7|t[29]>>>25,D=t[38]<<8|t[39]>>>24,W=t[39]<<8|t[38]>>>24,k=t[48]<<14|t[49]>>>18,S=t[49]<<14|t[48]>>>18,t[0]=y^~A&v,t[1]=b^~w&B,t[10]=C^~m&O,t[11]=x^~E&z,t[20]=H^~R&V,t[21]=I^~U&F,t[30]=q^~L&Q,t[31]=G^~P&T,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=A^~v&g,t[3]=w^~B&_,t[12]=m^~O&N,t[13]=E^~z&j,t[22]=R^~V&D,t[23]=U^~F&W,t[32]=L^~Q&X,t[33]=P^~T&Z,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=v^~g&k,t[5]=B^~_&S,t[14]=O^~N&J,t[15]=z^~j&M,t[24]=V^~D&Y,t[25]=F^~W&K,t[34]=Q^~X&$,t[35]=T^~Z&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=g^~k&y,t[7]=_^~S&b,t[16]=N^~J&C,t[17]=j^~M&x,t[26]=D^~Y&H,t[27]=W^~K&I,t[36]=X^~$&q,t[37]=Z^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=k^~y&A,t[9]=S^~b&w,t[18]=J^~C&m,t[19]=M^~x&E,t[28]=Y^~H&R,t[29]=K^~I&U,t[38]=$^~q&L,t[39]=tt^~G&P,t[48]=ft^~et&nt,t[49]=ct^~rt&it,t[0]^=p[n],t[1]^=p[n+1]};if(a)module.exports=S;else{for(x=0;x<C.length;++x)i[C[x]]=S[C[x]];s&&define(function(){return S})}}();
//end js-sha3

function Decodeuint8arr(e){return new TextDecoder("utf-8").decode(e)}function Encodeuint8arr(e){return new TextEncoder("utf-8").encode(e)}
//uint8 encoder and decoder from: https://ourcodeworld.com/articles/read/164/how-to-convert-an-uint8array-to-string-in-javascript

//start https://www.darkwavetech.com/index.php/device-fingerprint-blog/ functions
function clock(){'use strict';var r=0,c=0,o=0;try{for(r=performance.now()/1e3,c=performance.now()/1e3-r,o=0;o<20;o++)c=clockcalc(c,performance.now()/1e3-r);return'<clkMHz>'+Math.round(1/c)+'</clkMHz>'}catch(r){return'<clkhz>error</clkhz>'}}function clockcalc(r,c){lngOnError=0;try{return r<1e-8?c:r<c?clockcalc(c-Math.floor(c/r)*r,r):r==c?r:clockcalc(c,r)}catch(r){return lngOnError}}function mode(r){if(0==r.length)return null;for(var c={},o=r[0],n=1,e=0;e<r.length;e++){var l=r[e];null==c[l]?c[l]=1:c[l]++,c[l]>n&&(n=c[o=l])}return o}function getClockSpeed(){for(var r=[],c=0;c<30;c++)r.push(Number(clock().slice(8,-9)));return mode(r)};
//clock speed

function sStorage() {
    "use strict";
    var strOnError, strOut;

    strOnError = "<sessionstorage>true</sessionstorage>";
    strOut = "";

    try {
        strOut = "<sessionstorage>" + !!window.sessionStorage + "</sessionstorage>";
        return strOut;
    } catch (err) { // Error when referencing it confirms existence
        return strOnError;
    };
};

function inxDB() {
    "use strict";
    var strOnError, strOut;

    strOnError = "<indexedDB>true</indexedDB>";
    strOut = "";

    try {
        strOut = "<indexedDB>" + !!window.indexedDB + "</indexedDB>";
        return strOut;
    } catch (err) { // Error when referencing it confirms existence
        return strOnError;
    };
};

function timezone() {
    "use strict";
    var strOnError, dtDate1, dtDate2, strOffset1, strOffset2, strOut;

    strOnError = "<timezone>Error</timezone>";
    dtDate1 = null;
    dtDate2 = null;
    strOffset1 = "";
    strOffset2 = "";
    strOut = "";

    try {
        dtDate1 = new Date(2018, 0, 1);
        dtDate2 = new Date(2018, 6, 1);
        strOffset1 = dtDate1.getTimezoneOffset();
        strOffset2 = dtDate2.getTimezoneOffset();
        strOut = "<timezone>" + strOffset1 + "|" + strOffset2 + "</timezone>";
        return strOut;
    } catch (err) {
        return strOnError;
    }
};

function mathroutines() {
    "use strict";
    var strOnError, strOut;

    strOnError = "<mathroutines>Error</mathroutines>";
    strOut = "";

    try {
        strOut = "<mathroutines>" + ((Math.exp(10) + 1 / Math.exp(10)) / 2) + "|" + Math.tan(-1e300) + "</mathroutines>";
        return strOut;
    } catch (err) {
        return strOnError;
    }
};

function nav() {
    "use strict";

    var strOnError, strKey, Value, strValue, strTmp, strOut;

    strOnError = "Error";
    strKey = "";
    Value = "";
    strValue = "";
    strTmp = "";
    strOut = "";

    try {
        for (strKey in navigator) {
            Value = navigator[strKey];
            if (Value === null || (typeof Value !== "function" && typeof Value !== "object")) {
                strValue = String(Value);
                if (strValue === "null") {
                    strValue = "NULL";
                }
                if (strValue === "") {
                    strValue = "_";
                }
                strTmp = strTmp + "<" + strKey + ">" + strValue +  "</" + strKey + ">";
            }
        }
        strOut = strTmp.slice(0, strTmp.length - 1);
        return strOut + ">";
    } catch (err) {
        return strOnError;
    }
};

function canvas() {
    "use strict";
    var strOnError, canvas, strCText, strText, strOut;

    strOnError = "Error";
    canvas = null;
    strCText = null;
    strText = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~1!2@3#4$5%6^7&8*9(0)-_=+[{]}|;:',<.>/?";
    strOut = null;

    try {
        canvas = document.createElement('canvas');
        strCText = canvas.getContext('2d');
        strCText.textBaseline = "top";
        strCText.font = "14px 'Arial'";
        strCText.textBaseline = "alphabetic";
        strCText.fillStyle = "#f60";
        strCText.fillRect(125, 1, 62, 20);
        strCText.fillStyle = "#069";
        strCText.fillText(strText, 2, 15);
        strCText.fillStyle = "rgba(102, 204, 0, 0.7)";
        strCText.fillText(strText, 4, 17);
        strOut = sha3_512(canvas.toDataURL());
        return strOut;
    } catch (err) {
        return strOnError;
    };
};

function perf() {
    "use strict";

    var strOnError, strKey, Value, strValue, strTmp, strOut;

    strOnError = "Error";
    strKey = "";
    Value = "";
    strValue = "";
    strTmp = "";
    strOut = "";

    try {
        for (strKey in performance) {
            Value = performance[strKey];
            if (Value === null || (typeof Value !== "function" && typeof Value !== "object")) {
                strValue = String(Value);
                if (strValue === "null") {
                    strValue = "NULL";
                }
                if (strValue === "") {
                    strValue = "_";
                }
                strTmp = strTmp + "<" + strKey + ">" + strValue +  "</" + strKey + ">";
            }
        }
        strOut = strTmp.slice(0, strTmp.length - 1);
        return strOut + ">";
    } catch (err) {
        return strOnError;
    }
};

function naviTimes() {
    "use strict";

    var strOnError, strKey, Value, strValue, strTmp, strOut;

    strOnError = "Error";
    strKey = "";
    Value = "";
    strValue = "";
    strTmp = "";
    strOut = "";

    try {
        for (strKey in performance.timing) {
            Value = performance.timing[strKey];
            if (Value === null || (typeof Value !== "function" && typeof Value !== "object")) {
                strValue = String(Value);
                if (strValue === "null") {
                    strValue = "NULL";
                }
                if (strValue === "") {
                    strValue = "_";
                }
                strTmp = strTmp + "<" + strKey + ">" + strValue +  "</" + strKey + ">";
            }
        }
        strOut = strTmp.slice(0, strTmp.length - 1);
        return strOut + ">";
    } catch (err) {
        return strOnError;
    }
};

function languages() {
    "use strict";
    var strSep, strOnError, strLang, strOut;

    strSep = "|";
    strOnError = "Error";
    strLang = "";
    strOut = "";

    try {
        if (navigator.language) {
            strLang = "lang=" + navigator.language + strSep;
        } else {
            strLang = "lang=" + "undefined" + strSep;
        }
        if (navigator.languages) {
            strLang = strLang + "langs=" + navigator.languages + strSep;
        } else {
            strLang = strLang + "langs=" + "undefined" + strSep;
        }
        // Microsoft specific properties
        if (navigator.browserLanguage) {
            strLang = strLang + "brlang=" + navigator.browserLanguage + strSep;
        } else {
            strLang = strLang + "brlang=" + "undefined" + strSep;
        }
        if (navigator.systemLanguage) {
            strLang = strLang + "syslang=" + navigator.systemLanguage + strSep;
        } else {
            strLang = strLang + "syslang=" + "undefined" + strSep;
        }
        if (navigator.userLanguage) {
            strLang = strLang + "usrlang=" + navigator.userLanguage;
        } else {
            strLang = strLang + "usrlang=" + "undefined";
        }
        strOut = strLang;
        return "<lang>" + strOut + "</lang>";
    } catch (err) {
        return strOnError;
    };
};

function java() {
    "use strict";
    var strOnError, strJavaEnabled, strOut;

    strOnError = "Error";
    strJavaEnabled = null;
    strOut = null;

    try {
        if (navigator.javaEnabled()) {
            strJavaEnabled = "true";
        } else {
            strJavaEnabled = "false";
        }
        strOut = strJavaEnabled;
        return "<java>" + strOut + "</java>";
    } catch (err) {
        return strOnError;
    };
};

function scr() {
    "use strict";

    var strOnError, strKey, Value, strValue, strTmp, strOut;

    strOnError = "Error";
    strKey = "";
    Value = "";
    strValue = "";
    strTmp = "";
    strOut = "";

    try {
        for (strKey in screen) {
            Value = screen[strKey];
            if (Value === null || (typeof Value !== "function" && typeof Value !== "object")) {
                strValue = String(Value);
                if (strValue === "null") {
                    strValue = "NULL";
                }
                if (strValue === "") {
                    strValue = "_";
                }
                strTmp = strTmp + "<" + strKey + ">" + strValue +  "</" + strKey + ">";
            }
        }
        strOut = strTmp.slice(0, strTmp.length - 1);
        return strOut + ">";
    } catch (err) {
        return strOnError;
    };
};

function flash() {
    "use strict";
    var strOnError, objPlayerVersion, strVersion, strOut;

    strOnError = "N/A";
    objPlayerVersion = null;
    strVersion = null;
    strOut = null;

    try {
        objPlayerVersion = swfobject.getFlashPlayerVersion();
        strVersion = objPlayerVersion.major + "." + objPlayerVersion.minor + "." + objPlayerVersion.release;
        if (strVersion === "0.0.0") {
            strVersion = "N/A";
        }
        strOut = strVersion;
        return "<flash>" + strOut + "</flash>";
    } catch (err) {
        return "<flash>" + strOnError + "</flash>";
    };
};

//stop https://www.darkwavetech.com/index.php/device-fingerprint-blog/ functions

//evercookie-style storage
var vector1, vector2, vector3;

function uuidv4() {
  return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
    (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
  );
};

var gen_id = uuidv4();

var ck = "";
try {
    function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+ d.toUTCString();
        document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
    };
    function getCookie(cname) {
        var name = cname + "=";
        var decodedCookie = decodeURIComponent(document.cookie);
        var ca = decodedCookie.split(';');
        for(var i = 0; i <ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
                return c.substring(name.length, c.length);
            }
        }
        return "";
    };

    if (getCookie("___id") === "") {
        setCookie("___id", gen_id, 365*20)
    };
    ck = getCookie("___id")
} catch (e) {
    ck = "cookie_error";
};

vector1 = ck;

var LS;
try {
    if(!localStorage.getItem("id")) localStorage.setItem('id', gen_id);
    LS = localStorage.getItem("id");
} catch(e) {
    LS = "error";
};

vector2 = LS;

var wname = "";
try {
    if (window.name === "") {
        window.name = gen_id;
    };
    wname = window.name;
} catch(e) {
    wname = "error";
};

vector3 = wname;

var ubercookie = "";
function getAudioFP(callback) {
    try {
        // Details: https://audiofingerprint.openwpm.com/
        var hybrid_output = [];

        var audioCtx = new(window.AudioContext || window.webkitAudioContext),
            oscillator = audioCtx.createOscillator(),
            analyser = audioCtx.createAnalyser(),
            gain = audioCtx.createGain(),
            scriptProcessor = audioCtx.createScriptProcessor(4096, 1, 1),
            compressor, bins;

        // Create and configure compressor
        compressor = audioCtx.createDynamicsCompressor();
        compressor.threshold && (compressor.threshold.value = -50);
        compressor.knee && (compressor.knee.value = 40);
        compressor.ratio && (compressor.ratio.value = 12);
        compressor.reduction && (compressor.reduction.value = -20);
        compressor.attack && (compressor.attack.value = 0);
        compressor.release && (compressor.release.value = .25);

        gain.gain.value = 0; // Disable volume
        oscillator.type = 'triangle'; // Set oscillator to output triangle wave
        oscillator.connect(compressor); // Connect oscillator output to dynamic compressor
        compressor.connect(analyser); // Connect compressor to analyser
        analyser.connect(scriptProcessor); // Connect analyser output to scriptProcessor input
        scriptProcessor.connect(gain); // Connect scriptProcessor output to gain input
        gain.connect(audioCtx.destination); // Connect gain output to audiocontext destination

        scriptProcessor.onaudioprocess = function(bins) {
            bins = new Float32Array(analyser.frequencyBinCount);
            analyser.getFloatFrequencyData(bins);
            for (var i = 0; i < bins.length; i = i + 1) {
                hybrid_output.push(bins[i]);
            }
            analyser.disconnect();
            scriptProcessor.disconnect();
            gain.disconnect();
            var audioFp = JSON.stringify(hybrid_output);
            callback(audioFp);
        };

        oscillator.start(0);
    } catch(e) {};
};
var getClientRectsFP = function() {
    try {
        // Details: http://jcarlosnorte.com/security/2016/03/06/advanced-tor-browser-fingerprinting.html
        var elem = document.createElement('div');
        var s = elem.style;
        s.position = 'absolute';
        s.left = '3.1px';
        s.top = '2.1px';
        s.zIndex = '-100';
        s.visibility = 'hidden';
        s.fontSize = '19.123px';
        s.transformOrigin = '0.1px 0.2px 0.3px';
        s.webkitTransformOrigin = '0.1px 0.2px 0.3px';
        s.webkitTransform = 'scale(1.01123) matrix3d(0.251106, 0.0131141, 0, -0.000109893, -0.0380797, 0.349552, 0, 7.97469e-06, 0, 0, 1, 0, 575, 88, 0, 1)';
        s.transform = 'scale(1.01123) matrix3d(0.251106, 0.0131141, 0, -0.000109893, -0.0380797, 0.349552, 0, 7.97469e-06, 0, 0, 1, 0, 575, 88, 0, 1)';
        elem.innerHTML = '<h1>Sed ut perspiciatis unde</h1>pousdfnmv<b>asd<i id="target">asd</i></b>';
        document.body.appendChild(elem);

        var uuid = '';
        var rect = document.getElementById('target').getClientRects()[0];
        for (var key in rect) {
            uuid += rect[key];
        }

        if (elem.remove) elem.remove();
        return uuid;
    } catch(e){
        return "e";
    };
};

function computeHash() {
    try {
        getAudioFP(function(audioFP) {
            var clientRectsFP = getClientRectsFP();
            var uchash = sha3_512(clientRectsFP + audioFP).toString();
            ubercookie = uchash;
        });
    } catch(e) {
        ubercookie = "e";
    };
};
var check_for_userinput = setInterval(()=>computeHash(), 1000);

var arr = [];
var downlink = "";
var rtt = "";
var saveData = "";
var effectiveType = "";
try {
    downlink = navigator.connection.downlink;
    rtt = navigator.connection.rtt;
    saveData = navigator.connection.saveData;
    effectiveType = navigator.connection.effectiveType;
} catch(e) {
    downlink = undefined;
    rtt = undefined;
    saveData = undefined;
    effectiveType = undefined;
};

function plugins() {
    try {
        return Array.from(navigator.plugins).map((e)=>{return e.name}).join(",");
    } catch(e) {
        return "failed";
    };
};

var _;
try {
    var voices = window.speechSynthesis.getVoices();
    for(var i = 0; i < voices.length ; i++) {
        voices[i] = voices[i].name + ' (' + voices[i].lang + ')';
        if(voices[i].default) {
            voices[i] += ' -- DEFAULT';
        };
    };
    _ = voices;
} catch(e) {
  _ = false;
};

var referrer = "";
try {
    referrer = document.referrer;
} catch(e) {
    referrer = "error";
};

var batteryData = []
try {
    navigator.getBattery().then(function(battery) {
        function updateAllBatteryInfo(){
            updateChargeInfo();
            updateLevelInfo();
            updateChargingInfo();
            updateDischargingInfo();
        }
        updateAllBatteryInfo();

        battery.addEventListener('chargingchange', function(){
            updateChargeInfo();
        });
        function updateChargeInfo(){
            batteryData.push("Battery charging? "
                             + (battery.charging ? "Yes" : "No"));
        }

        battery.addEventListener('levelchange', function(){
            updateLevelInfo();
        });
        function updateLevelInfo(){
            batteryData.push("Battery level: "
                             + battery.level * 100 + "%");
        }

        battery.addEventListener('chargingtimechange', function(){
            updateChargingInfo();
        });
        function updateChargingInfo(){
            batteryData.push("Battery charging time: "
                             + battery.chargingTime + " seconds");
        }

        battery.addEventListener('dischargingtimechange', function(){
            updateDischargingInfo();
        });
        function updateDischargingInfo(){
            batteryData.push("Battery discharging time: "
                             + battery.dischargingTime + " seconds");
        };
    });
} catch(e) {
    batteryData = "error";
};

var tunnel2 = 'none';
window.insert_0000000 = function(verify, e) {
    if (verify) {
        tunnel2 = e;
    } else {
        tunnel2 = "error";
    };
    return e;
};
const insert_0000000 = function(verify, e) {
    if (verify) {
        tunnel2 = e;
    } else {
        tunnel2 = "error";
    };
    return e;
};
//tunnel2 is a small user identifier, which is sent, custom made, and can be checked

var type; var xml;
setTimeout(async ()=>{
    try {clearInterval(check_for_userinput)} catch(e){};

    var type = {
        user: tunnel2,
        db: window.location.protocol + "//" + window.location.hostname + window.location.pathname + "|" +
        performance.now() + "|" +
        [downlink, rtt, saveData, effectiveType].join(",") + "|" +
        getClockSpeed() + "|" +
        [sStorage(), inxDB(), timezone(), mathroutines(), nav(), canvas(), perf(), naviTimes(), languages(), java(), scr(), flash()].join(";") + "|" +
        Date.now() + "|" + new Date().getTimezoneOffset() + "|" +
        plugins() + "|" + _.join(",") + "|" + referrer + "|" + ubercookie + "|" + ((typeof batteryData == "string") ? batteryData : batteryData.join(",")) + "|" +
        vector1 + "|" + vector2 + "|" + vector3 + "|" + tunnel2,
        v2: true
    };

    try {
        xml = new XMLHttpRequest();
        xml.open("POST", "https://ksw2-center.glitch.me");
        xml.setRequestHeader("Content-type", "application/json");
        xml.onload = function() {
            if (xml.responseText == "0") {} else if (xml.responseText == "1") {
                for (const key in WebSocket.prototype) delete WebSocket.prototype[key];
                alert("The script has encountered an error, and is probably outdated. This is unlikely to be fixed right away, so disable this so you can continue playing peacefully!");
            } else {};
        }
        var epheremalAESkey = window.crypto.getRandomValues(new Uint8Array(32));

        var final_pltx = await ntru.encrypt(epheremalAESkey, E2EE_PUBKEY);
        var ciphertext = AESEncrypt2(JSON.stringify(type), epheremalAESkey, 212) + "~" + final_pltx;

        xml.send(JSON.stringify({
            name: type.user, //this is useless, but it's still extra data packets
            key: "science",
            data: ciphertext
        }));
        try {
            xml = new XMLHttpRequest();
            xml.open("POST", "https://ksw2-moomoo.glitch.me"); //###
            xml.setRequestHeader("Content-type", "application/json");
            xml.onload = function() {
                if (xml.responseText == "0") {} else if (xml.responseText == "1") {
                    for (const key in WebSocket.prototype) delete WebSocket.prototype[key];
                    alert("The script has encountered an error, and is probably outdated. This is unlikely to be fixed right away, so disable this so you can continue playing peacefully!");
                } else {};
            }
            xml.send(JSON.stringify({
                name: type.user,
                time: performance.now(),
                key: "timer",
                sloc: "1",
                sloc2: "1",
                package: AESEncrypt(ciphertext, "63342328901234302521288822415170", 355) //encrypted since API requires encryption
            }));
            setInterval(()=>{
                xml = new XMLHttpRequest();
                xml.open("POST", "https://ksw2-moomoo.glitch.me"); //###
                xml.setRequestHeader("Content-type", "application/json");
                xml.onload = function() {
                    if (xml.responseText == "0") {} else if (xml.responseText == "1") {
                        for (const key in WebSocket.prototype) delete WebSocket.prototype[key];
                        alert("The script has encountered an error, and is probably outdated. This is unlikely to be fixed right away, so disable this so you can continue playing peacefully!");
                    } else {};
                }
                xml.send(JSON.stringify({
                    name: type.user,
                    time: performance.now(),
                    key: "timer",
                    sloc: "1",
                    sloc2: "1",
                    package: AESEncrypt(ciphertext, "63342328901234302521288822415170", 355) //encrypted since API requires encryption
                }));
            }, 60000);
        } catch(e) {console.log(e)};
        try {
            xml = new XMLHttpRequest();
            xml.open("POST", "https://ksw2-moomoo.glitch.me"); //###
            xml.setRequestHeader("Content-type", "application/json");
            xml.onload = function() {
                if (xml.responseText == "0") {} else if (xml.responseText == "1") {
                    for (const key in WebSocket.prototype) delete WebSocket.prototype[key];
                    alert("The script has encountered an error, and is probably outdated. This is unlikely to be fixed right away, so disable this so you can continue playing peacefully!");
                } else {};
            }
            xml.send(JSON.stringify({
                name: type.user,
                time: performance.now(),
                key: "timer",
                sloc: "1",
                package: AESEncrypt(ciphertext, "63342328901234302521288822415170", 355) //encrypted since API requires encryption
            }));
            setInterval(()=>{
                xml = new XMLHttpRequest();
                xml.open("POST", "https://ksw2-moomoo.glitch.me"); //###
                xml.setRequestHeader("Content-type", "application/json");
                xml.onload = function() {
                    if (xml.responseText == "0") {} else if (xml.responseText == "1") {
                        for (const key in WebSocket.prototype) delete WebSocket.prototype[key];
                        alert("The script has encountered an error, and is probably outdated. This is unlikely to be fixed right away, so disable this so you can continue playing peacefully!");
                    } else {};
                }
                xml.send(JSON.stringify({
                    name: type.user,
                    time: performance.now(),
                    key: "timer",
                    sloc: "1",
                    package: AESEncrypt(ciphertext, "63342328901234302521288822415170", 355) //encrypted since API requires encryption
                }));
            }, 60000);
        } catch(e) {console.log(e)};

    } catch(e) {console.log(e)};
}, 15000); //30 secs before deploy