forked from duniayetu/www_duniayetu
21 lines
244 KiB
JavaScript
21 lines
244 KiB
JavaScript
!function(){var A=void 0,e={};window.libsignal={};var t,r=void 0!==r?r:{},n={};for(t in r)r.hasOwnProperty(t)&&(n[t]=r[t]);var g=[],o=!1,I=!1,s=!1,f=!1;o="object"==typeof window,I="function"==typeof importScripts,s="object"==typeof A&&"object"==typeof A.versions&&"string"==typeof A.versions.node,f=!o&&!s&&!I;var a,h,B,C,E="";function u(A){return r.locateFile?r.locateFile(A,E):E+A}s?(E=I?require("path").dirname(E)+"/":__dirname+"/",a=function(A,e){var t=oA(A);return t?e?t:t.toString():(B||(B=require("fs")),C||(C=require("path")),A=C.normalize(A),B.readFileSync(A,e?null:"utf8"))},h=function(A){var e=a(A,!0);return e.buffer||(e=new Uint8Array(e)),d(e.buffer),e},A.argv.length>1&&A.argv[1].replace(/\\/g,"/"),g=A.argv.slice(2),"undefined"!=typeof module&&(module.exports=r),A.on("uncaughtException",(function(A){if(!(A instanceof BA))throw A})),A.on("unhandledRejection",x),r.inspect=function(){return"[Emscripten Module object]"}):f?("undefined"!=typeof read&&(a=function(A){var e=oA(A);return e?rA(e):read(A)}),h=function(A){var e;return(e=oA(A))?e:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(d("object"==typeof(e=read(A,"binary"))),e)},"undefined"!=typeof scriptArgs?g=scriptArgs:void 0!==arguments&&(g=arguments),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(o||I)&&(I?E=self.location.href:document.currentScript&&(E=document.currentScript.src),E=0!==E.indexOf("blob:")?E.substr(0,E.lastIndexOf("/")+1):"",a=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.send(null),e.responseText}catch(e){var t=oA(A);if(t)return rA(t);throw e}},I&&(h=function(A){try{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}catch(e){var t=oA(A);if(t)return t;throw e}})),r.print||console.log.bind(console);var Q,c,l=r.printErr||console.warn.bind(console);for(t in n)n.hasOwnProperty(t)&&(r[t]=n[t]);n=null,r.arguments&&(g=r.arguments),r.thisProgram&&r.thisProgram,r.quit&&r.quit,r.wasmBinary&&(Q=r.wasmBinary),r.noExitRuntime&&r.noExitRuntime,"object"!=typeof WebAssembly&&x("no native wasm support detected");var w=new WebAssembly.Table({initial:1,maximum:1,element:"anyfunc"}),y=!1;function d(A,e){A||x("Assertion failed: "+e)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf8"),"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var p,D,v=65536;function S(A){p=A,r.HEAP8=new Int8Array(A),r.HEAP16=new Int16Array(A),r.HEAP32=new Int32Array(A),r.HEAPU8=D=new Uint8Array(A),r.HEAPU16=new Uint16Array(A),r.HEAPU32=new Uint32Array(A),r.HEAPF32=new Float32Array(A),r.HEAPF64=new Float64Array(A)}var b=r.INITIAL_MEMORY||16777216;(c=r.wasmMemory?r.wasmMemory:new WebAssembly.Memory({initial:b/v,maximum:b/v}))&&(p=c.buffer),b=p.byteLength,S(p);var m=[],P=[],F=[],M=[];function N(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)T(r.preRun.shift());$(m)}function k(){$(P)}function H(){$(F)}function G(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)K(r.postRun.shift());$(M)}function T(A){m.unshift(A)}function K(A){M.unshift(A)}Math.abs,Math.ceil,Math.floor,Math.min;var Y=0,R=null,U=null;function L(A){Y++,r.monitorRunDependencies&&r.monitorRunDependencies(Y)}function J(A){if(Y--,r.monitorRunDependencies&&r.monitorRunDependencies(Y),0==Y&&(null!==R&&(clearInterval(R),R=null),U)){var e=U;U=null,e()}}function x(A){throw r.onAbort&&r.onAbort(A),l(A+=""),y=!0,A="abort("+A+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(A)}function O(A,e){return String.prototype.startsWith?A.startsWith(e):0===A.indexOf(e)}r.preloadedImages={},r.preloadedAudios={};var q="data:application/octet-stream;base64,";function W(A){return O(A,q)}var X="file://";function V(A){return O(A,X)}var j="data:application/octet-stream;base64,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IANBwAZqIANB4AdqEAwgA0HgB2ogA0HABmoQDCADQcAGaiADQeAHahAMIANB4AdqIANBwAZqEAwgA0HABmogA0HgB2oQDCADQeAHaiADQcAGahAMIANBwAZqIANB4AdqEAwgA0HgB2ogA0HABmoQDCADQcAGaiADQeAHahAMIANB4AdqIANBwAZqEAwgA0HABmogA0HgB2oQDCADQeAHaiADQcAGahAMIANBwAZqIANB4AdqEAwgA0HgB2ogA0HABmoQDCADQcAGaiADQeAHahAMIANB4AdqIANBwAZqEAwgA0HABmogA0HgB2oQDCADQeAHaiADQcAGahAMIANBwAZqIANB4AdqEAwgA0HAAWogA0HABmogA0HAC2oQCiADIAMpA9ACIhYgAykDgAJ8IBZCEn58NwOAAiADIAMpA8gCIhYgAykD+AF8IBZCEn58NwP4ASADIAMpA8ACIhYgAykD8AF8IBZCEn58NwPwASADIAMpA7gCIhYgAykD6AF8IBZCEn58NwPoASADIAMpA7ACIhYgAykD4AF8IBZCEn58NwPgASADIAMpA6gCIhYgAykD2AF8IBZCEn58NwPYASADIAMpA6ACIhYgAykD0AF8IBZCEn58NwPQASADIAMpA5gCIhYgAykDyAF8IBZCEn58NwPIASADIAMpA5ACIhYgAykDwAF8IBZCEn58NwPAASADQcABahALIANB4AdqIANBwAFqQdAAEDQaIANBwAZqIANB4AdqEAwgA0HgB2ogA0HABmoQDCADQcAGaiADQeAHahAMIANB4AdqIANBwAZqEAwgA0HABmogA0HgB2oQDCADQeAHaiADQcAGahAMIANBwAZqIANB4AdqEAwgA0HgB2ogA0HABmoQDCADQcAGaiADQeAHahAMIANB4AdqIANBwAZqEAwgA0HAAWogA0HgB2ogA0HgDGoQCiADIAMpA9ACIhYgAykDgAJ8IBZCEn58NwOAAiADIAMpA8gCIhYgAykD+AF8IBZCEn58NwP4ASADIAMpA8ACIhYgAykD8AF8IBZCEn58NwPwASADIAMpA7gCIhYgAykD6AF8IBZCEn58NwPoASADIAMpA7ACIhYgAykD4AF8IBZCEn58NwPgASADIAMpA6gCIhYgAykD2AF8IBZCEn58NwPYASADIAMpA6ACIhYgAykD0AF8IBZCEn58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AgB+fCACNAIAIAE0Ajh+fDcDOCAAIAI0AiAgATQCIH4gAjQCGCABNAIofiACNAIoIAE0Ahh+fCACNAI4IAE0Agh+fCACNAIIIAE0Ajh+fEIBhnwgAjQCMCABNAIQfnwgAjQCECABNAIwfnwgAjQCQCABNAIAfnwgAjQCACABNAJAfnw3A0AgACACNAIgIAE0Aih+IAI0AiggATQCIH58IAI0AjAgATQCGH58IAI0AhggATQCMH58IAI0AjggATQCEH58IAI0AhAgATQCOH58IAI0AkAgATQCCH58IAI0AgggATQCQH58IAI0AkggATQCAH58IAI0AgAgATQCSH58NwNIIAAgAjQCMCABNAIgfiACNAI4IAE0Ahh+IAI0AiggATQCKH58IAI0AhggATQCOH58IAI0AkggATQCCH58IAI0AgggATQCSH58QgGGfCACNAIgIAE0AjB+fCACNAJAIAE0AhB+fCACNAIQIAE0AkB+fDcDUCAAIAI0AiggATQCMH4gAjQCMCABNAIofnwgAjQCOCABNAIgfnwgAjQCICABNAI4fnwgAjQCQCABNAIYfnwgAjQCGCABNAJAfnwgAjQCSCABNAIQfnwgAjQCECABNAJIfnw3A1ggACACNAIwIAE0AjB+IAI0AiggATQCOH4gAjQCOCABNAIofnwgAjQCSCABNAIYfnwgAjQCGCABNAJIfnxCAYZ8IAI0AkAgATQCIH58IAI0AiAgATQCQH58NwNgIAAgAjQCMCABNAI4fiACNAI4IAE0AjB+fCACNAJAIAE0Aih+fCACNAIoIAE0AkB+fCACNAJIIAE0AiB+fCACNAIgIAE0Akh+fDcDaCAAIAI0AkAgATQCMH4gAjQCSCABNAIofiACNAI4IAE0Ajh+fCACNAIoIAE0Akh+fEIBhnwgAjQCMCABNAJAfnw3A3AgACACNAI4IAE0AkB+IAI0AkAgATQCOH58IAI0AkggATQCMH58IAI0AjAgATQCSH58NwN4IAAgAjQCQCABNAJAfiACNAI4IAE0Akh+IAI0AkggATQCOH58QgGGfDcDgAEgACACNAJAIAE0Akh+IAI0AkggATQCQH58NwOIASAAIAI0AkggASkDSEIghkIfh343A5ABC4YEAQN+IABCADcDUCAAIAApAwAiASABIAFCIIinQR91QQZ2rXwiAUKAgIBg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QCAEQeANaiAFaiIBLQAARQRAIAFBAToAAAwCCyABQQA6AAAgBUH/AUkhASAFQQFqIQUgAQ0ACwsgCUEBaiIBIAZqIQUgCSAKRw0ACwsgB0GAAkcNAAsgBEHgA2ogAhAmIARBwAJqIAIQJSAEIARBwAJqECMgBEHAAmogBCAEQeADahAdIARBoAFqIARBwAJqECMgBEGABWoiBSAEQaABahAmIARBwAJqIAQgBRAdIARBoAFqIARBwAJqECMgBEGgBmoiBSAEQaABahAmIARBwAJqIAQgBRAdIARBoAFqIARBwAJqECMgBEHAB2oiBSAEQaABahAmIARBwAJqIAQgBRAdIARBoAFqIARBwAJqECMgBEHgCGoiBSAEQaABahAmIARBwAJqIAQgBRAdIARBoAFqIARBwAJqECMgBEGACmoiBSAEQaABahAmIARBwAJqIAQgBRAdIARBoAFqIARBwAJqECMgBEGgC2oiBSAEQaABahAmIARBwAJqIAQgBRAdIARBoAFqIARBwAJqECMgBEHADGogBEGgAWoQJiAAEA0gAEEoahAOIABB0ABqEA5B/wEhAQJAA0ACQCABIgUgBEHgD2pqLQAADQAgBEHgDWogBWotAAANACAFQX9qIQEgBQ0BDAILCyAFQQBIDQADQCAEQcACaiAAECQCQCAFIgEgBEHgD2pqLAAAIgVBAU4EQCAEQaABaiAEQcACahAjIARBwAJqIARBoAFqIARB4ANqIAVB/gFxQQF2QaABbGoQHQwBCyAFQX9KDQAgBEGgAWogBEHAAmoQIyAEQcACaiAEQaABaiAEQeADakEAIAVrQf4BcUEBdkGgAWxqECsLAkAgBEHgDWogAWosAAAiBUEBTgRAIARBoAFqIARBwAJqECMgBEHAAmogBEGgAWogBUH+AXFBAXZB+ABsQfAOahAgDAELIAVBf0oNACAEQaABaiAEQcACahAjIARBwAJqIARBoAFqQQAgBWtB/gFxQQF2QfgAbEHwDmoQIQsgACAEQcACahAiIAFBf2ohBSABQQBKDQALCyAEQeARaiQAC8UCAQN/IwBB8AFrIgIkACAAQShqIgQgARASIABB0ABqIgMQDiACQcABaiAEEBkgAkGQAWogAkHAAWpBoAgQFiACQcABaiACQcABaiADEBsgAkGQAWogAkGQAWogAxAPIAJB4ABq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QgiGIAiEIAIxABwiCUIQhoRCAohC////AIMiCCABMQAXIgsgATEAGEIIhoQgATEAGUIQhoQgCkIYhoRCBYhC////AIMiCn58IAIxAB1CCIYgCYQgAjEAHkIQhoQgAjEAH0IYhoRCB4giCSABMwAVIAtCEIZCgID8AIOEIgt+fCAEIAV+IAIxABIiDCACMQATQgiGhCACMQAUQhCGhEIDiCIRIAd+fCAGIAp+fCAIIAt+fCAJIAExABIiDyABMQATQgiGhCABMQAUQhCGhEIDiCISfnwiF0KAgEB9IhNCFYd8Ig1CgIBAfSIQQhWHIAUgCH4gBiAHfnwgCSAKfnwiDiAOQoCAQH0iDkKAgID///////8Ag318IiFCmNocfiAFIAl+IAcgCH58IA5CFYh8Ig4gDkKAgEB9Ih9CgICA////////AIN9IiJCk9gofnwgDSAQQoCAgH+DfSIjQuf2J358IBcgE0KAgIB/g30gBSARfiACMQAPIg0gAjEAEEIIhoQgAjEAEUIQhoQgDEIYhoRCBohC////AIMiDCAHfnwgBCAKfnwgBiALfnwgCCASfnwgCSABMQAPIhAgATEAEEIIhoQgATEAEUIQhoQgD0IYhoRCBohC////AIMiD358IAUgDH4gAjEADSIUIAIxAA5CCIaEIA1CEIaEQgGIQv///wCDIg0gB358IAogEX58IAQgC358IAYgEn58IAggD358IAkgATEADSIYIAExAA5CCIaEIBBCEIaEQgGIQv///wCDIhB+fCIgQoCAQH0iHUIVh3wiGUKAgEB9IipCFYd8IiRC04xDfnwgAjEAAiITIAIxAANCCIaEIAIxAARCEIaEIAIxAAUiDkIYhoRCBYhC////AIMiFyALfiACMwAAIBNCEIZCgID8AIOEIhMgCn58IAIxAAZCCIYgDoQgAjEAByIVQhCGhEICiEL///8AgyIOIBJ+fCACMQAIQgiGIBWEIAIxAAlCEIaEIAIxAAoiFkIYhoRCB4hC////AIMiFSAPfnwgAjEAC0IIhiAWhCACMQAMQhCGhCAUQhiGhEIEiEL///8AgyIUIBB+fCANIAExAAoiFiABMQALQgiGhCABMQAMQhCGhCAYQhiGhEIEiEL///8AgyIYfnwgDCABMQAHIhogATEACEIIhoQgATEACUIQhoQgFkIYhoRCB4hC////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ACACaiEDAkAgACABc0EDcUUEQAJAIAJBAUgEQCAAIQIMAQsgAEEDcUUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA08NASACQQNxDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIANBfGoiBCAASQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAAL1gIBAn8CQCABRQ0AIAAgAWoiAkF/akEAOgAAIABBADoAACABQQNJDQAgAkF+akEAOgAAIABBADoAASACQX1qQQA6AAAgAEEAOgACIAFBB0kNACACQXxqQQA6AAAgAEEAOgADIAFBCUkNACAAQQAgAGtBA3EiA2oiAkEANgIAIAIgASADa0F8cSIDaiIBQXxqQQA2AgAgA0EJSQ0AIAJBADYCCCACQQA2AgQgAUF4akEANgIAIAFBdGpBADYCACADQRlJDQAgAkEANgIYIAJBADYCFCACQQA2AhAgAkEANgIMIAFBcGpBADYCACABQWxqQQA2AgAgAUFoakEANgIAIAFBZGpBADYCACADIAJBBHFBGHIiA2siAUEgSQ0AIAIgA2ohAgNAIAJCADcDGCACQgA3AxAgAkIANwMIIAJCADcDACACQSBqIQIgAUFgaiIBQR9LDQALCwvpAgEBfwJAIAAgAUYNACABIABrIAJrQQAgAkEBdGtNBEAgACABIAIQNA8LIAAgAXNBA3EhAwJAAkAgACABSQRAIAME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";function Z(){try{if(Q)return new Uint8Array(Q);var A=oA(j);if(A)return A;if(h)return h(j);throw"both async and sync fetching of the wasm failed"}catch(A){x(A)}}function z(){return Q||!o&&!I||"function"!=typeof fetch||V(j)?Promise.resolve().then(Z):fetch(j,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+j+"'";return A.arrayBuffer()})).catch((function(){return Z()}))}function _(){var A={env:aA,wasi_snapshot_preview1:aA};function e(A,e){var t=A.exports;r.asm=t,J()}function t(A){e(A.instance)}function i(e){return z().then((function(e){return WebAssembly.instantiate(e,A)})).then(e,(function(A){l("failed to asynchronously prepare wasm: "+A),x(A)}))}if(L(),r.instantiateWasm)try{return r.instantiateWasm(A,e)}catch(A){return l("Module.instantiateWasm callback failed with error: "+A),!1}return function(){if(Q||"function"!=typeof WebAssembly.instantiateStreaming||W(j)||V(j)||"function"!=typeof fetch)return i(t);fetch(j,{credentials:"same-origin"}).then((function(e){return WebAssembly.instantiateStreaming(e,A).then(t,(function(A){return l("wasm streaming compile failed: "+A),l("falling back to ArrayBuffer instantiation"),i(t)}))}))}(),{}}function $(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var t=e.func;"number"==typeof t?void 0===e.arg?w.get(t)():w.get(t)(e.arg):t(void 0===e.arg?null:e.arg)}else e(r)}}function AA(A,e,t){D.copyWithin(A,e,e+t)}function eA(A){x("OOM")}function tA(A){eA()}W(j)||(j=u(j)),P.push({func:function(){hA()}});var iA=!1;function rA(A){for(var e=[],t=0;t<A.length;t++){var i=A[t];i>255&&(iA&&d(!1,"Character code "+i+" ("+String.fromCharCode(i)+") at offset "+t+" not in 0x00-0xFF."),i&=255),e.push(String.fromCharCode(i))}return e.join("")}var nA="function"==typeof atob?atob:function(A){var e,t,i,r,n,g,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",I="",s=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=o.indexOf(A.charAt(s++))<<2|(r=o.indexOf(A.charAt(s++)))>>4,t=(15&r)<<4|(n=o.indexOf(A.charAt(s++)))>>2,i=(3&n)<<6|(g=o.indexOf(A.charAt(s++))),I+=String.fromCharCode(e),64!==n&&(I+=String.fromCharCode(t)),64!==g&&(I+=String.fromCharCode(i))}while(s<A.length);return I};function gA(A){if("boolean"==typeof s&&s){var e;try{e=Buffer.from(A,"base64")}catch(t){e=new Buffer(A,"base64")}return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}try{for(var t=nA(A),i=new Uint8Array(t.length),r=0;r<t.length;++r)i[r]=t.charCodeAt(r);return i}catch(A){throw new Error("Converting base64 string to bytes failed.")}}function oA(A){if(W(A))return gA(A.slice(q.length))}var IA,sA,fA,aA={__indirect_function_table:w,emscripten_memcpy_big:AA,emscripten_resize_heap:tA,memory:c},hA=(_(),r.___wasm_call_ctors=function(){return(hA=r.___wasm_call_ctors=r.asm.__wasm_call_ctors).apply(null,arguments)});function BA(A){this.name="ExitStatus",this.message="Program terminated with exit("+A+")",this.status=A}function CA(A){function e(){IA||(IA=!0,r.calledRun=!0,y||(k(),H(),r.onRuntimeInitialized&&r.onRuntimeInitialized(),G()))}A=A||g,Y>0||(N(),Y>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),e()}),1)):e()))}if(r._crypto_sign_ed25519_ref10_ge_scalarmult_base=function(){return(r._crypto_sign_ed25519_ref10_ge_scalarmult_base=r.asm.crypto_sign_ed25519_ref10_ge_scalarmult_base).apply(null,arguments)},r._curve25519_sign=function(){return(r._curve25519_sign=r.asm.curve25519_sign).apply(null,arguments)},r._curve25519_verify=function(){return(r._curve25519_verify=r.asm.curve25519_verify).apply(null,arguments)},r._sph_sha512_init=function(){return(r._sph_sha512_init=r.asm.sph_sha512_init).apply(null,arguments)},r._curve25519_donna=function(){return(r._curve25519_donna=r.asm.curve25519_donna).apply(null,arguments)},r.___errno_location=function(){return(r.___errno_location=r.asm.__errno_location).apply(null,arguments)},r.stackSave=function(){return(r.stackSave=r.asm.stackSave).apply(null,arguments)},r.stackRestore=function(){return(r.stackRestore=r.asm.stackRestore).apply(null,arguments)},r.stackAlloc=function(){return(r.stackAlloc=r.asm.stackAlloc).apply(null,arguments)},r._malloc=function(){return(r._malloc=r.asm.malloc).apply(null,arguments)},r._free=function(){return(r._free=r.asm.free).apply(null,arguments)},r.__growWasmMemory=function(){return(r.__growWasmMemory=r.asm.__growWasmMemory).apply(null,arguments)},U=function A(){IA||CA(),IA||(U=A)},r.run=CA,r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();CA(),e=e||{},function(){"use strict";function A(A){var e=r._malloc(A.length);return r.HEAPU8.set(A,e),e}function t(A,e,t){t.set(r.HEAPU8.subarray(A,A+e))}var i=new Uint8Array(32);i[0]=9,e.curve25519={keyPair:function(e){var n=new Uint8Array(e);n[0]&=248,n[31]&=127,n[31]|=64;var g=r._malloc(32),o=A(n),I=A(i),s=(r._curve25519_donna(g,o,I),new Uint8Array(32));return t(g,32,s),r._free(g),r._free(o),r._free(I),{pubKey:s.buffer,privKey:n.buffer}},sharedSecret:function(e,i){var n=r._malloc(32),g=A(new Uint8Array(i)),o=A(new Uint8Array(e)),I=(r._curve25519_donna(n,g,o),new Uint8Array(32));return t(n,32,I),r._free(n),r._free(g),r._free(o),I.buffer},sign:function(e,i){var n=r._malloc(64),g=A(new Uint8Array(e)),o=A(new Uint8Array(i)),I=(r._curve25519_sign(n,g,o,i.byteLength),new Uint8Array(64));return t(n,64,I),r._free(n),r._free(g),r._free(o),I.buffer},verify:function(e,t,i){var n=A(new Uint8Array(e)),g=A(new Uint8Array(i)),o=A(new Uint8Array(t)),I=r._curve25519_verify(g,n,o,t.byteLength);return r._free(n),r._free(g),r._free(o),0!==I}},e.curve25519_async={keyPair:function(A){return new Promise((function(t){t(e.curve25519.keyPair(A))}))},sharedSecret:function(A,t){return new Promise((function(i){i(e.curve25519.sharedSecret(A,t))}))},sign:function(A,t){return new Promise((function(i){i(e.curve25519.sign(A,t))}))},verify:function(A,t,i){return new Promise((function(r,n){e.curve25519.verify(A,t,i)?n(new Error("Invalid signature")):r()}))}}}(),function(){"use strict";var A=e.curve25519_async;function t(A){this.jobs={},this.jobId=0,this.worker=new Worker(A),this.worker.onmessage=function(A){var e=this.jobs[A.data.id];A.data.error&&"function"==typeof e.onerror?e.onerror(new Error(A.data.error)):"function"==typeof e.onsuccess&&e.onsuccess(A.data.result),delete this.jobs[A.data.id]}.bind(this)}e.startWorker=function(A){e.stopWorker(),e.curve25519_async=new t(A)},e.stopWorker=function(){if(e.curve25519_async instanceof t){var i=e.curve25519_async.worker;e.curve25519_async=A,i.terminate()}},libsignal.worker={startWorker:e.startWorker,stopWorker:e.stopWorker},t.prototype={constructor:t,postMessage:function(A,e,t,i){return new Promise(function(t,i){this.jobs[this.jobId]={onsuccess:t,onerror:i},this.worker.postMessage({id:this.jobId,methodName:A,args:e}),this.jobId++}.bind(this))},keyPair:function(A){return this.postMessage("keyPair",[A])},sharedSecret:function(A,e){return this.postMessage("sharedSecret",[A,e])},sign:function(A,e){return this.postMessage("sign",[A,e])},verify:function(A,e,t){return this.postMessage("verify",[A,e,t])}}}(),
|
|
/**
|
|
* @license long.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
|
|
* Released under the Apache License, Version 2.0
|
|
* see: https://github.com/dcodeIO/long.js for details
|
|
*/
|
|
sA=this,fA=function(){"use strict";function A(A,e,t){this.low=0|A,this.high=0|e,this.unsigned=!!t}function e(A){return!0===(A&&A.__isLong__)}A.prototype.__isLong__,Object.defineProperty(A.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1}),A.isLong=e;var t={},i={};function r(A,e){var r,n,o;return e?(o=0<=(A>>>=0)&&A<256)&&(n=i[A])?n:(r=g(A,(0|A)<0?-1:0,!0),o&&(i[A]=r),r):(o=-128<=(A|=0)&&A<128)&&(n=t[A])?n:(r=g(A,A<0?-1:0,!1),o&&(t[A]=r),r)}function n(A,e){if(isNaN(A)||!isFinite(A))return e?E:C;if(e){if(A<0)return E;if(A>=a)return w}else{if(A<=-h)return y;if(A+1>=h)return l}return A<0?n(-A,e).neg():g(A%f|0,A/f|0,e)}function g(e,t,i){return new A(e,t,i)}A.fromInt=r,A.fromNumber=n,A.fromBits=g;var o=Math.pow;function I(A,e,t){if(0===A.length)throw Error("empty string");if("NaN"===A||"Infinity"===A||"+Infinity"===A||"-Infinity"===A)return C;if("number"==typeof e?(t=e,e=!1):e=!!e,(t=t||10)<2||36<t)throw RangeError("radix");var i;if((i=A.indexOf("-"))>0)throw Error("interior hyphen");if(0===i)return I(A.substring(1),e,t).neg();for(var r=n(o(t,8)),g=C,s=0;s<A.length;s+=8){var f=Math.min(8,A.length-s),a=parseInt(A.substring(s,s+f),t);if(f<8){var h=n(o(t,f));g=g.mul(h).add(n(a))}else g=(g=g.mul(r)).add(n(a))}return g.unsigned=e,g}function s(e){return e instanceof A?e:"number"==typeof e?n(e):"string"==typeof e?I(e):g(e.low,e.high,e.unsigned)}A.fromString=I,A.fromValue=s;var f=4294967296,a=f*f,h=a/2,B=r(1<<24),C=r(0);A.ZERO=C;var E=r(0,!0);A.UZERO=E;var u=r(1);A.ONE=u;var Q=r(1,!0);A.UONE=Q;var c=r(-1);A.NEG_ONE=c;var l=g(-1,2147483647,!1);A.MAX_VALUE=l;var w=g(-1,-1,!0);A.MAX_UNSIGNED_VALUE=w;var y=g(0,-2147483648,!1);A.MIN_VALUE=y;var d=A.prototype;return d.toInt=function(){return this.unsigned?this.low>>>0:this.low},d.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},d.toString=function(A){if((A=A||10)<2||36<A)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(y)){var e=n(A),t=this.div(e),i=t.mul(e).sub(this);return t.toString(A)+i.toInt().toString(A)}return"-"+this.neg().toString(A)}for(var r=n(o(A,6),this.unsigned),g=this,I="";;){var s=g.div(r),f=(g.sub(s.mul(r)).toInt()>>>0).toString(A);if((g=s).isZero())return f+I;for(;f.length<6;)f="0"+f;I=""+f+I}},d.getHighBits=function(){return this.high},d.getHighBitsUnsigned=function(){return this.high>>>0},d.getLowBits=function(){return this.low},d.getLowBitsUnsigned=function(){return this.low>>>0},d.getNumBitsAbs=function(){if(this.isNegative())return this.eq(y)?64:this.neg().getNumBitsAbs();for(var A=0!=this.high?this.high:this.low,e=31;e>0&&0==(A&1<<e);e--);return 0!=this.high?e+33:e+1},d.isZero=function(){return 0===this.high&&0===this.low},d.isNegative=function(){return!this.unsigned&&this.high<0},d.isPositive=function(){return this.unsigned||this.high>=0},d.isOdd=function(){return 1==(1&this.low)},d.isEven=function(){return 0==(1&this.low)},d.equals=function(A){return e(A)||(A=s(A)),(this.unsigned===A.unsigned||this.high>>>31!=1||A.high>>>31!=1)&&this.high===A.high&&this.low===A.low},d.eq=d.equals,d.notEquals=function(A){return!this.eq(A)},d.neq=d.notEquals,d.lessThan=function(A){return this.comp(A)<0},d.lt=d.lessThan,d.lessThanOrEqual=function(A){return this.comp(A)<=0},d.lte=d.lessThanOrEqual,d.greaterThan=function(A){return this.comp(A)>0},d.gt=d.greaterThan,d.greaterThanOrEqual=function(A){return this.comp(A)>=0},d.gte=d.greaterThanOrEqual,d.compare=function(A){if(e(A)||(A=s(A)),this.eq(A))return 0;var t=this.isNegative(),i=A.isNegative();return t&&!i?-1:!t&&i?1:this.unsigned?A.high>>>0>this.high>>>0||A.high===this.high&&A.low>>>0>this.low>>>0?-1:1:this.sub(A).isNegative()?-1:1},d.comp=d.compare,d.negate=function(){return!this.unsigned&&this.eq(y)?y:this.not().add(u)},d.neg=d.negate,d.add=function(A){e(A)||(A=s(A));var t=this.high>>>16,i=65535&this.high,r=this.low>>>16,n=65535&this.low,o=A.high>>>16,I=65535&A.high,f=A.low>>>16,a=0,h=0,B=0,C=0;return B+=(C+=n+(65535&A.low))>>>16,h+=(B+=r+f)>>>16,a+=(h+=i+I)>>>16,a+=t+o,g((B&=65535)<<16|(C&=65535),(a&=65535)<<16|(h&=65535),this.unsigned)},d.subtract=function(A){return e(A)||(A=s(A)),this.add(A.neg())},d.sub=d.subtract,d.multiply=function(A){if(this.isZero())return C;if(e(A)||(A=s(A)),A.isZero())return C;if(this.eq(y))return A.isOdd()?y:C;if(A.eq(y))return this.isOdd()?y:C;if(this.isNegative())return A.isNegative()?this.neg().mul(A.neg()):this.neg().mul(A).neg();if(A.isNegative())return this.mul(A.neg()).neg();if(this.lt(B)&&A.lt(B))return n(this.toNumber()*A.toNumber(),this.unsigned);var t=this.high>>>16,i=65535&this.high,r=this.low>>>16,o=65535&this.low,I=A.high>>>16,f=65535&A.high,a=A.low>>>16,h=65535&A.low,E=0,u=0,Q=0,c=0;return Q+=(c+=o*h)>>>16,u+=(Q+=r*h)>>>16,Q&=65535,u+=(Q+=o*a)>>>16,E+=(u+=i*h)>>>16,u&=65535,E+=(u+=r*a)>>>16,u&=65535,E+=(u+=o*f)>>>16,E+=t*h+i*a+r*f+o*I,g((Q&=65535)<<16|(c&=65535),(E&=65535)<<16|(u&=65535),this.unsigned)},d.mul=d.multiply,d.divide=function(A){if(e(A)||(A=s(A)),A.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?E:C;var t,i,r;if(this.unsigned){if(A.unsigned||(A=A.toUnsigned()),A.gt(this))return E;if(A.gt(this.shru(1)))return Q;r=E}else{if(this.eq(y))return A.eq(u)||A.eq(c)?y:A.eq(y)?u:(t=this.shr(1).div(A).shl(1)).eq(C)?A.isNegative()?u:c:(i=this.sub(A.mul(t)),r=t.add(i.div(A)));if(A.eq(y))return this.unsigned?E:C;if(this.isNegative())return A.isNegative()?this.neg().div(A.neg()):this.neg().div(A).neg();if(A.isNegative())return this.div(A.neg()).neg();r=C}for(i=this;i.gte(A);){t=Math.max(1,Math.floor(i.toNumber()/A.toNumber()));for(var g=Math.ceil(Math.log(t)/Math.LN2),I=g<=48?1:o(2,g-48),f=n(t),a=f.mul(A);a.isNegative()||a.gt(i);)a=(f=n(t-=I,this.unsigned)).mul(A);f.isZero()&&(f=u),r=r.add(f),i=i.sub(a)}return r},d.div=d.divide,d.modulo=function(A){return e(A)||(A=s(A)),this.sub(this.div(A).mul(A))},d.mod=d.modulo,d.not=function(){return g(~this.low,~this.high,this.unsigned)},d.and=function(A){return e(A)||(A=s(A)),g(this.low&A.low,this.high&A.high,this.unsigned)},d.or=function(A){return e(A)||(A=s(A)),g(this.low|A.low,this.high|A.high,this.unsigned)},d.xor=function(A){return e(A)||(A=s(A)),g(this.low^A.low,this.high^A.high,this.unsigned)},d.shiftLeft=function(A){return e(A)&&(A=A.toInt()),0==(A&=63)?this:A<32?g(this.low<<A,this.high<<A|this.low>>>32-A,this.unsigned):g(0,this.low<<A-32,this.unsigned)},d.shl=d.shiftLeft,d.shiftRight=function(A){return e(A)&&(A=A.toInt()),0==(A&=63)?this:A<32?g(this.low>>>A|this.high<<32-A,this.high>>A,this.unsigned):g(this.high>>A-32,this.high>=0?0:-1,this.unsigned)},d.shr=d.shiftRight,d.shiftRightUnsigned=function(A){if(e(A)&&(A=A.toInt()),0==(A&=63))return this;var t=this.high;return A<32?g(this.low>>>A|t<<32-A,t>>>A,this.unsigned):g(32===A?t:t>>>A-32,0,this.unsigned)},d.shru=d.shiftRightUnsigned,d.toSigned=function(){return this.unsigned?g(this.low,this.high,!1):this},d.toUnsigned=function(){return this.unsigned?this:g(this.low,this.high,!0)},d.toBytes=function(A){return A?this.toBytesLE():this.toBytesBE()},d.toBytesLE=function(){var A=this.high,e=this.low;return[255&e,e>>>8&255,e>>>16&255,e>>>24&255,255&A,A>>>8&255,A>>>16&255,A>>>24&255]},d.toBytesBE=function(){var A=this.high,e=this.low;return[A>>>24&255,A>>>16&255,A>>>8&255,255&A,e>>>24&255,e>>>16&255,e>>>8&255,255&e]},A},"function"==typeof define&&define.amd?define([],fA):"function"==typeof require&&"object"==typeof module&&module&&module.exports?module.exports=fA():(sA.dcodeIO=sA.dcodeIO||{}).Long=fA(),
|
|
/**
|
|
* @license ByteBuffer.js (c) 2013-2014 Daniel Wirtz <dcode@dcode.io>
|
|
* This version of ByteBuffer.js uses an ArrayBuffer as its backing buffer which is accessed through a DataView and is
|
|
* compatible with modern browsers.
|
|
* Released under the Apache License, Version 2.0
|
|
* see: https://github.com/dcodeIO/ByteBuffer.js for details
|
|
*/
|
|
function(A){"use strict";function e(A){var e=function(A,t,i){if(void 0===A&&(A=e.DEFAULT_CAPACITY),void 0===t&&(t=e.DEFAULT_ENDIAN),void 0===i&&(i=e.DEFAULT_NOASSERT),!i){if((A|=0)<0)throw RangeError("Illegal capacity");t=!!t,i=!!i}this.buffer=0===A?r:new ArrayBuffer(A),this.view=0===A?null:new DataView(this.buffer),this.offset=0,this.markedOffset=-1,this.limit=A,this.littleEndian=void 0!==t&&!!t,this.noAssert=!!i};e.VERSION="3.5.5",e.LITTLE_ENDIAN=!0,e.BIG_ENDIAN=!1,e.DEFAULT_CAPACITY=16,e.DEFAULT_ENDIAN=e.BIG_ENDIAN,e.DEFAULT_NOASSERT=!1,e.Long=A||null;var t=e.prototype,r=new ArrayBuffer(0),n=String.fromCharCode;function g(A){var e=0;return function(){return e<A.length?A.charCodeAt(e++):null}}function o(){var A=[],e=[];return function(){if(0===arguments.length)return e.join("")+n.apply(String,A);A.length+arguments.length>1024&&(e.push(n.apply(String,A)),A.length=0),Array.prototype.push.apply(A,arguments)}}e.allocate=function(A,t,i){return new e(A,t,i)},e.concat=function(A,t,i,r){"boolean"!=typeof t&&"string"==typeof t||(r=i,i=t,t=void 0);for(var n,g=0,o=0,I=A.length;o<I;++o)e.isByteBuffer(A[o])||(A[o]=e.wrap(A[o],t)),(n=A[o].limit-A[o].offset)>0&&(g+=n);if(0===g)return new e(0,i,r);var s,f=new e(g,i,r),a=new Uint8Array(f.buffer);for(o=0;o<I;)(n=(s=A[o++]).limit-s.offset)<=0||(a.set(new Uint8Array(s.buffer).subarray(s.offset,s.limit),f.offset),f.offset+=n);return f.limit=f.offset,f.offset=0,f},e.isByteBuffer=function(A){return!0===(A&&A instanceof e)},e.type=function(){return ArrayBuffer},e.wrap=function(A,r,n,g){if("string"!=typeof r&&(g=n,n=r,r=void 0),"string"==typeof A)switch(void 0===r&&(r="utf8"),r){case"base64":return e.fromBase64(A,n);case"hex":return e.fromHex(A,n);case"binary":return e.fromBinary(A,n);case"utf8":return e.fromUTF8(A,n);case"debug":return e.fromDebug(A,n);default:throw Error("Unsupported encoding: "+r)}if(null===A||"object"!=typeof A)throw TypeError("Illegal buffer");var o;if(e.isByteBuffer(A))return(o=t.clone.call(A)).markedOffset=-1,o;if(A instanceof Uint8Array)o=new e(0,n,g),A.length>0&&(o.buffer=A.buffer,o.offset=A.byteOffset,o.limit=A.byteOffset+A.length,o.view=A.length>0?new DataView(A.buffer):null);else if(A instanceof ArrayBuffer)o=new e(0,n,g),A.byteLength>0&&(o.buffer=A,o.offset=0,o.limit=A.byteLength,o.view=A.byteLength>0?new DataView(A):null);else{if("[object Array]"!==Object.prototype.toString.call(A))throw TypeError("Illegal buffer");for((o=new e(A.length,n,g)).limit=A.length,i=0;i<A.length;++i)o.view.setUint8(i,A[i])}return o},t.writeInt8=function(A,e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal value: "+A+" (not an integer)");if(A|=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=1;var i=this.buffer.byteLength;return e>i&&this.resize((i*=2)>e?i:e),e-=1,this.view.setInt8(e,A),t&&(this.offset+=1),this},t.writeByte=t.writeInt8,t.readInt8=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+1) <= "+this.buffer.byteLength)}var t=this.view.getInt8(A);return e&&(this.offset+=1),t},t.readByte=t.readInt8,t.writeUint8=function(A,e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal value: "+A+" (not an integer)");if(A>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=1;var i=this.buffer.byteLength;return e>i&&this.resize((i*=2)>e?i:e),e-=1,this.view.setUint8(e,A),t&&(this.offset+=1),this},t.readUint8=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+1) <= "+this.buffer.byteLength)}var t=this.view.getUint8(A);return e&&(this.offset+=1),t},t.writeInt16=function(A,e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal value: "+A+" (not an integer)");if(A|=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=2;var i=this.buffer.byteLength;return e>i&&this.resize((i*=2)>e?i:e),e-=2,this.view.setInt16(e,A,this.littleEndian),t&&(this.offset+=2),this},t.writeShort=t.writeInt16,t.readInt16=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+2) <= "+this.buffer.byteLength)}var t=this.view.getInt16(A,this.littleEndian);return e&&(this.offset+=2),t},t.readShort=t.readInt16,t.writeUint16=function(A,e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal value: "+A+" (not an integer)");if(A>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=2;var i=this.buffer.byteLength;return e>i&&this.resize((i*=2)>e?i:e),e-=2,this.view.setUint16(e,A,this.littleEndian),t&&(this.offset+=2),this},t.readUint16=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+2) <= "+this.buffer.byteLength)}var t=this.view.getUint16(A,this.littleEndian);return e&&(this.offset+=2),t},t.writeInt32=function(A,e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal value: "+A+" (not an integer)");if(A|=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=4;var i=this.buffer.byteLength;return e>i&&this.resize((i*=2)>e?i:e),e-=4,this.view.setInt32(e,A,this.littleEndian),t&&(this.offset+=4),this},t.writeInt=t.writeInt32,t.readInt32=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+4) <= "+this.buffer.byteLength)}var t=this.view.getInt32(A,this.littleEndian);return e&&(this.offset+=4),t},t.readInt=t.readInt32,t.writeUint32=function(A,e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal value: "+A+" (not an integer)");if(A>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=4;var i=this.buffer.byteLength;return e>i&&this.resize((i*=2)>e?i:e),e-=4,this.view.setUint32(e,A,this.littleEndian),t&&(this.offset+=4),this},t.readUint32=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+4) <= "+this.buffer.byteLength)}var t=this.view.getUint32(A,this.littleEndian);return e&&(this.offset+=4),t},A&&(t.writeInt64=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"==typeof e)e=A.fromNumber(e);else if("string"==typeof e)e=A.fromString(e);else if(!(e&&e instanceof A))throw TypeError("Illegal value: "+e+" (not an integer or Long)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}"number"==typeof e?e=A.fromNumber(e):"string"==typeof e&&(e=A.fromString(e)),t+=8;var r=this.buffer.byteLength;return t>r&&this.resize((r*=2)>t?r:t),t-=8,this.littleEndian?(this.view.setInt32(t,e.low,!0),this.view.setInt32(t+4,e.high,!0)):(this.view.setInt32(t,e.high,!1),this.view.setInt32(t+4,e.low,!1)),i&&(this.offset+=8),this},t.writeLong=t.writeInt64,t.readInt64=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+8) <= "+this.buffer.byteLength)}var i=this.littleEndian?new A(this.view.getInt32(e,!0),this.view.getInt32(e+4,!0),!1):new A(this.view.getInt32(e+4,!1),this.view.getInt32(e,!1),!1);return t&&(this.offset+=8),i},t.readLong=t.readInt64,t.writeUint64=function(e,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"==typeof e)e=A.fromNumber(e);else if("string"==typeof e)e=A.fromString(e);else if(!(e&&e instanceof A))throw TypeError("Illegal value: "+e+" (not an integer or Long)");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}"number"==typeof e?e=A.fromNumber(e):"string"==typeof e&&(e=A.fromString(e)),t+=8;var r=this.buffer.byteLength;return t>r&&this.resize((r*=2)>t?r:t),t-=8,this.littleEndian?(this.view.setInt32(t,e.low,!0),this.view.setInt32(t+4,e.high,!0)):(this.view.setInt32(t,e.high,!1),this.view.setInt32(t+4,e.low,!1)),i&&(this.offset+=8),this},t.readUint64=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+8) <= "+this.buffer.byteLength)}var i=this.littleEndian?new A(this.view.getInt32(e,!0),this.view.getInt32(e+4,!0),!0):new A(this.view.getInt32(e+4,!1),this.view.getInt32(e,!1),!0);return t&&(this.offset+=8),i}),t.writeFloat32=function(A,e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof A)throw TypeError("Illegal value: "+A+" (not a number)");if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=4;var i=this.buffer.byteLength;return e>i&&this.resize((i*=2)>e?i:e),e-=4,this.view.setFloat32(e,A,this.littleEndian),t&&(this.offset+=4),this},t.writeFloat=t.writeFloat32,t.readFloat32=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+4) <= "+this.buffer.byteLength)}var t=this.view.getFloat32(A,this.littleEndian);return e&&(this.offset+=4),t},t.readFloat=t.readFloat32,t.writeFloat64=function(A,e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof A)throw TypeError("Illegal value: "+A+" (not a number)");if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=8;var i=this.buffer.byteLength;return e>i&&this.resize((i*=2)>e?i:e),e-=8,this.view.setFloat64(e,A,this.littleEndian),t&&(this.offset+=8),this},t.writeDouble=t.writeFloat64,t.readFloat64=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+8) <= "+this.buffer.byteLength)}var t=this.view.getFloat64(A,this.littleEndian);return e&&(this.offset+=8),t},t.readDouble=t.readFloat64,e.MAX_VARINT32_BYTES=5,e.calculateVarint32=function(A){return(A>>>=0)<128?1:A<16384?2:A<1<<21?3:A<1<<28?4:5},e.zigZagEncode32=function(A){return((A|=0)<<1^A>>31)>>>0},e.zigZagDecode32=function(A){return A>>>1^-(1&A)|0},t.writeVarint32=function(A,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal value: "+A+" (not an integer)");if(A|=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var r,n=e.calculateVarint32(A);t+=n;var g=this.buffer.byteLength;return t>g&&this.resize((g*=2)>t?g:t),t-=n,this.view.setUint8(t,r=128|A),(A>>>=0)>=128?(r=A>>7|128,this.view.setUint8(t+1,r),A>=16384?(r=A>>14|128,this.view.setUint8(t+2,r),A>=1<<21?(r=A>>21|128,this.view.setUint8(t+3,r),A>=1<<28?(this.view.setUint8(t+4,A>>28&15),n=5):(this.view.setUint8(t+3,127&r),n=4)):(this.view.setUint8(t+2,127&r),n=3)):(this.view.setUint8(t+1,127&r),n=2)):(this.view.setUint8(t,127&r),n=1),i?(this.offset+=n,this):n},t.writeVarint32ZigZag=function(A,t){return this.writeVarint32(e.zigZagEncode32(A),t)},t.readVarint32=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+1) <= "+this.buffer.byteLength)}var t,i,r=0,n=0;do{if(i=A+r,!this.noAssert&&i>this.limit){var g=Error("Truncated");throw g.truncated=!0,g}t=this.view.getUint8(i),r<5&&(n|=(127&t)<<7*r>>>0),++r}while(128==(128&t));return n|=0,e?(this.offset+=r,n):{value:n,length:r}},t.readVarint32ZigZag=function(A){var t=this.readVarint32(A);return"object"==typeof t?t.value=e.zigZagDecode32(t.value):t=e.zigZagDecode32(t),t},A&&(e.MAX_VARINT64_BYTES=10,e.calculateVarint64=function(e){"number"==typeof e?e=A.fromNumber(e):"string"==typeof e&&(e=A.fromString(e));var t=e.toInt()>>>0,i=e.shiftRightUnsigned(28).toInt()>>>0,r=e.shiftRightUnsigned(56).toInt()>>>0;return 0==r?0==i?t<16384?t<128?1:2:t<1<<21?3:4:i<16384?i<128?5:6:i<1<<21?7:8:r<128?9:10},e.zigZagEncode64=function(e){return"number"==typeof e?e=A.fromNumber(e,!1):"string"==typeof e?e=A.fromString(e,!1):!1!==e.unsigned&&(e=e.toSigned()),e.shiftLeft(1).xor(e.shiftRight(63)).toUnsigned()},e.zigZagDecode64=function(e){return"number"==typeof e?e=A.fromNumber(e,!1):"string"==typeof e?e=A.fromString(e,!1):!1!==e.unsigned&&(e=e.toSigned()),e.shiftRightUnsigned(1).xor(e.and(A.ONE).toSigned().negate()).toSigned()},t.writeVarint64=function(t,i){var r=void 0===i;if(r&&(i=this.offset),!this.noAssert){if("number"==typeof t)t=A.fromNumber(t);else if("string"==typeof t)t=A.fromString(t);else if(!(t&&t instanceof A))throw TypeError("Illegal value: "+t+" (not an integer or Long)");if("number"!=typeof i||i%1!=0)throw TypeError("Illegal offset: "+i+" (not an integer)");if((i>>>=0)<0||i+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+0) <= "+this.buffer.byteLength)}"number"==typeof t?t=A.fromNumber(t,!1):"string"==typeof t?t=A.fromString(t,!1):!1!==t.unsigned&&(t=t.toSigned());var n=e.calculateVarint64(t),g=t.toInt()>>>0,o=t.shiftRightUnsigned(28).toInt()>>>0,I=t.shiftRightUnsigned(56).toInt()>>>0;i+=n;var s=this.buffer.byteLength;switch(i>s&&this.resize((s*=2)>i?s:i),i-=n,n){case 10:this.view.setUint8(i+9,I>>>7&1);case 9:this.view.setUint8(i+8,9!==n?128|I:127&I);case 8:this.view.setUint8(i+7,8!==n?o>>>21|128:o>>>21&127);case 7:this.view.setUint8(i+6,7!==n?o>>>14|128:o>>>14&127);case 6:this.view.setUint8(i+5,6!==n?o>>>7|128:o>>>7&127);case 5:this.view.setUint8(i+4,5!==n?128|o:127&o);case 4:this.view.setUint8(i+3,4!==n?g>>>21|128:g>>>21&127);case 3:this.view.setUint8(i+2,3!==n?g>>>14|128:g>>>14&127);case 2:this.view.setUint8(i+1,2!==n?g>>>7|128:g>>>7&127);case 1:this.view.setUint8(i,1!==n?128|g:127&g)}return r?(this.offset+=n,this):n},t.writeVarint64ZigZag=function(A,t){return this.writeVarint64(e.zigZagEncode64(A),t)},t.readVarint64=function(e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var i=e,r=0,n=0,g=0,o=0;if(r=127&(o=this.view.getUint8(e++)),128&o&&(r|=(127&(o=this.view.getUint8(e++)))<<7,128&o&&(r|=(127&(o=this.view.getUint8(e++)))<<14,128&o&&(r|=(127&(o=this.view.getUint8(e++)))<<21,128&o&&(n=127&(o=this.view.getUint8(e++)),128&o&&(n|=(127&(o=this.view.getUint8(e++)))<<7,128&o&&(n|=(127&(o=this.view.getUint8(e++)))<<14,128&o&&(n|=(127&(o=this.view.getUint8(e++)))<<21,128&o&&(g=127&(o=this.view.getUint8(e++)),128&o&&(g|=(127&(o=this.view.getUint8(e++)))<<7,128&o))))))))))throw Error("Buffer overrun");var I=A.fromBits(r|n<<28,n>>>4|g<<24,!1);return t?(this.offset=e,I):{value:I,length:e-i}},t.readVarint64ZigZag=function(t){var i=this.readVarint64(t);return i&&i.value instanceof A?i.value=e.zigZagDecode64(i.value):i=e.zigZagDecode64(i),i}),t.writeCString=function(A,e){var t=void 0===e;t&&(e=this.offset);var i,r=A.length;if(!this.noAssert){if("string"!=typeof A)throw TypeError("Illegal str: Not a string");for(i=0;i<r;++i)if(0===A.charCodeAt(i))throw RangeError("Illegal str: Contains NULL-characters");if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}r=s.calculateUTF16asUTF8(g(A))[1],e+=r+1;var n=this.buffer.byteLength;return e>n&&this.resize((n*=2)>e?n:e),e-=r+1,s.encodeUTF16toUTF8(g(A),function(A){this.view.setUint8(e++,A)}.bind(this)),this.view.setUint8(e++,0),t?(this.offset=e,this):r},t.readCString=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+1) <= "+this.buffer.byteLength)}var t,i=A,r=-1;return s.decodeUTF8toUTF16(function(){if(0===r)return null;if(A>=this.limit)throw RangeError("Illegal range: Truncated data, "+A+" < "+this.limit);return 0===(r=this.view.getUint8(A++))?null:r}.bind(this),t=o(),!0),e?(this.offset=A,t()):{string:t(),length:A-i}},t.writeIString=function(A,e){var t=void 0===e;if(t&&(e=this.offset),!this.noAssert){if("string"!=typeof A)throw TypeError("Illegal str: Not a string");if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}var i,r=e;i=s.calculateUTF16asUTF8(g(A),this.noAssert)[1],e+=4+i;var n=this.buffer.byteLength;if(e>n&&this.resize((n*=2)>e?n:e),e-=4+i,this.view.setUint32(e,i,this.littleEndian),e+=4,s.encodeUTF16toUTF8(g(A),function(A){this.view.setUint8(e++,A)}.bind(this)),e!==r+4+i)throw RangeError("Illegal range: Truncated data, "+e+" == "+(e+4+i));return t?(this.offset=e,this):e-r},t.readIString=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+4) <= "+this.buffer.byteLength)}var t,i,r=A;t=this.view.getUint32(A,this.littleEndian);var n,g=(A+=4)+t;return s.decodeUTF8toUTF16(function(){return A<g?this.view.getUint8(A++):null}.bind(this),n=o(),this.noAssert),i=n(),e?(this.offset=A,i):{string:i,length:A-r}},e.METRICS_CHARS="c",e.METRICS_BYTES="b",t.writeUTF8String=function(A,e){var t,i=void 0===e;if(i&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}var r=e;t=s.calculateUTF16asUTF8(g(A))[1],e+=t;var n=this.buffer.byteLength;return e>n&&this.resize((n*=2)>e?n:e),e-=t,s.encodeUTF16toUTF8(g(A),function(A){this.view.setUint8(e++,A)}.bind(this)),i?(this.offset=e,this):e-r},t.writeString=t.writeUTF8String,e.calculateUTF8Chars=function(A){return s.calculateUTF16asUTF8(g(A))[0]},e.calculateUTF8Bytes=function(A){return s.calculateUTF16asUTF8(g(A))[1]},t.readUTF8String=function(A,t,i){"number"==typeof t&&(i=t,t=void 0);var r=void 0===i;if(r&&(i=this.offset),void 0===t&&(t=e.METRICS_CHARS),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal length: "+A+" (not an integer)");if(A|=0,"number"!=typeof i||i%1!=0)throw TypeError("Illegal offset: "+i+" (not an integer)");if((i>>>=0)<0||i+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+0) <= "+this.buffer.byteLength)}var n,g=0,I=i;if(t===e.METRICS_CHARS){if(n=o(),s.decodeUTF8(function(){return g<A&&i<this.limit?this.view.getUint8(i++):null}.bind(this),function(A){++g,s.UTF8toUTF16(A,n)}.bind(this)),g!==A)throw RangeError("Illegal range: Truncated data, "+g+" == "+A);return r?(this.offset=i,n()):{string:n(),length:i-I}}if(t===e.METRICS_BYTES){if(!this.noAssert){if("number"!=typeof i||i%1!=0)throw TypeError("Illegal offset: "+i+" (not an integer)");if((i>>>=0)<0||i+A>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+"+A+") <= "+this.buffer.byteLength)}var f=i+A;if(s.decodeUTF8toUTF16(function(){return i<f?this.view.getUint8(i++):null}.bind(this),n=o(),this.noAssert),i!==f)throw RangeError("Illegal range: Truncated data, "+i+" == "+f);return r?(this.offset=i,n()):{string:n(),length:i-I}}throw TypeError("Unsupported metrics: "+t)},t.readString=t.readUTF8String,t.writeVString=function(A,t){var i=void 0===t;if(i&&(t=this.offset),!this.noAssert){if("string"!=typeof A)throw TypeError("Illegal str: Not a string");if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}var r,n,o=t;r=s.calculateUTF16asUTF8(g(A),this.noAssert)[1],n=e.calculateVarint32(r),t+=n+r;var I=this.buffer.byteLength;if(t>I&&this.resize((I*=2)>t?I:t),t-=n+r,t+=this.writeVarint32(r,t),s.encodeUTF16toUTF8(g(A),function(A){this.view.setUint8(t++,A)}.bind(this)),t!==o+r+n)throw RangeError("Illegal range: Truncated data, "+t+" == "+(t+r+n));return i?(this.offset=t,this):t-o},t.readVString=function(A){var e=void 0===A;if(e&&(A=this.offset),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+1) <= "+this.buffer.byteLength)}var t,i=this.readVarint32(A),r=A;A+=i.length,i=i.value;var n=A+i,g=o();return s.decodeUTF8toUTF16(function(){return A<n?this.view.getUint8(A++):null}.bind(this),g,this.noAssert),t=g(),e?(this.offset=A,t):{string:t,length:A-r}},t.append=function(A,t,i){"number"!=typeof t&&"string"==typeof t||(i=t,t=void 0);var r=void 0===i;if(r&&(i=this.offset),!this.noAssert){if("number"!=typeof i||i%1!=0)throw TypeError("Illegal offset: "+i+" (not an integer)");if((i>>>=0)<0||i+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+0) <= "+this.buffer.byteLength)}A instanceof e||(A=e.wrap(A,t));var n=A.limit-A.offset;if(n<=0)return this;i+=n;var g=this.buffer.byteLength;return i>g&&this.resize((g*=2)>i?g:i),i-=n,new Uint8Array(this.buffer,i).set(new Uint8Array(A.buffer).subarray(A.offset,A.limit)),A.offset+=n,r&&(this.offset+=n),this},t.appendTo=function(A,e){return A.append(this,e),this},t.assert=function(A){return this.noAssert=!A,this},t.capacity=function(){return this.buffer.byteLength},t.clear=function(){return this.offset=0,this.limit=this.buffer.byteLength,this.markedOffset=-1,this},t.clone=function(A){var t=new e(0,this.littleEndian,this.noAssert);if(A){var i=new ArrayBuffer(this.buffer.byteLength);new Uint8Array(i).set(this.buffer),t.buffer=i,t.view=new DataView(i)}else t.buffer=this.buffer,t.view=this.view;return t.offset=this.offset,t.markedOffset=this.markedOffset,t.limit=this.limit,t},t.compact=function(A,e){if(void 0===A&&(A=this.offset),void 0===e&&(e=this.limit),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal begin: Not an integer");if(A>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,A<0||A>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+A+" <= "+e+" <= "+this.buffer.byteLength)}if(0===A&&e===this.buffer.byteLength)return this;var t=e-A;if(0===t)return this.buffer=r,this.view=null,this.markedOffset>=0&&(this.markedOffset-=A),this.offset=0,this.limit=0,this;var i=new ArrayBuffer(t);return new Uint8Array(i).set(new Uint8Array(this.buffer).subarray(A,e)),this.buffer=i,this.view=new DataView(i),this.markedOffset>=0&&(this.markedOffset-=A),this.offset=0,this.limit=t,this},t.copy=function(A,t){if(void 0===A&&(A=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal begin: Not an integer");if(A>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,A<0||A>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+A+" <= "+t+" <= "+this.buffer.byteLength)}if(A===t)return new e(0,this.littleEndian,this.noAssert);var i=t-A,r=new e(i,this.littleEndian,this.noAssert);return r.offset=0,r.limit=i,r.markedOffset>=0&&(r.markedOffset-=A),this.copyTo(r,0,A,t),r},t.copyTo=function(A,t,i,r){var n,g;if(!this.noAssert&&!e.isByteBuffer(A))throw TypeError("Illegal target: Not a ByteBuffer");if(t=(g=void 0===t)?A.offset:0|t,i=(n=void 0===i)?this.offset:0|i,r=void 0===r?this.limit:0|r,t<0||t>A.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+t+" <= "+A.buffer.byteLength);if(i<0||r>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+i+" <= "+this.buffer.byteLength);var o=r-i;return 0===o?A:(A.ensureCapacity(t+o),new Uint8Array(A.buffer).set(new Uint8Array(this.buffer).subarray(i,r),t),n&&(this.offset+=o),g&&(A.offset+=o),this)},t.ensureCapacity=function(A){var e=this.buffer.byteLength;return e<A?this.resize((e*=2)>A?e:A):this},t.fill=function(A,e,t){var i=void 0===e;if(i&&(e=this.offset),"string"==typeof A&&A.length>0&&(A=A.charCodeAt(0)),void 0===e&&(e=this.offset),void 0===t&&(t=this.limit),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal value: "+A+" (not an integer)");if(A|=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal end: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}if(e>=t)return this;for(;e<t;)this.view.setUint8(e++,A);return i&&(this.offset=e),this},t.flip=function(){return this.limit=this.offset,this.offset=0,this},t.mark=function(A){if(A=void 0===A?this.offset:A,!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal offset: "+A+" (not an integer)");if((A>>>=0)<0||A+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+A+" (+0) <= "+this.buffer.byteLength)}return this.markedOffset=A,this},t.order=function(A){if(!this.noAssert&&"boolean"!=typeof A)throw TypeError("Illegal littleEndian: Not a boolean");return this.littleEndian=!!A,this},t.LE=function(A){return this.littleEndian=void 0===A||!!A,this},t.BE=function(A){return this.littleEndian=void 0!==A&&!A,this},t.prepend=function(A,t,i){"number"!=typeof t&&"string"==typeof t||(i=t,t=void 0);var r=void 0===i;if(r&&(i=this.offset),!this.noAssert){if("number"!=typeof i||i%1!=0)throw TypeError("Illegal offset: "+i+" (not an integer)");if((i>>>=0)<0||i+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+i+" (+0) <= "+this.buffer.byteLength)}A instanceof e||(A=e.wrap(A,t));var n=A.limit-A.offset;if(n<=0)return this;var g,o=n-i;if(o>0){var I=new ArrayBuffer(this.buffer.byteLength+o);(g=new Uint8Array(I)).set(new Uint8Array(this.buffer).subarray(i,this.buffer.byteLength),n),this.buffer=I,this.view=new DataView(I),this.offset+=o,this.markedOffset>=0&&(this.markedOffset+=o),this.limit+=o,i+=o}else g=new Uint8Array(this.buffer);return g.set(new Uint8Array(A.buffer).subarray(A.offset,A.limit),i-n),A.offset=A.limit,r&&(this.offset-=n),this},t.prependTo=function(A,e){return A.prepend(this,e),this},t.printDebug=function(A){"function"!=typeof A&&(A=console.log.bind(console)),A(this.toString()+"\n-------------------------------------------------------------------\n"+this.toDebug(!0))},t.remaining=function(){return this.limit-this.offset},t.reset=function(){return this.markedOffset>=0?(this.offset=this.markedOffset,this.markedOffset=-1):this.offset=0,this},t.resize=function(A){if(!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal capacity: "+A+" (not an integer)");if((A|=0)<0)throw RangeError("Illegal capacity: 0 <= "+A)}if(this.buffer.byteLength<A){var e=new ArrayBuffer(A);new Uint8Array(e).set(new Uint8Array(this.buffer)),this.buffer=e,this.view=new DataView(e)}return this},t.reverse=function(A,e){if(void 0===A&&(A=this.offset),void 0===e&&(e=this.limit),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal begin: Not an integer");if(A>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,A<0||A>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+A+" <= "+e+" <= "+this.buffer.byteLength)}return A===e||(Array.prototype.reverse.call(new Uint8Array(this.buffer).subarray(A,e)),this.view=new DataView(this.buffer)),this},t.skip=function(A){if(!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal length: "+A+" (not an integer)");A|=0}var e=this.offset+A;if(!this.noAssert&&(e<0||e>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+A+" <= "+this.buffer.byteLength);return this.offset=e,this},t.slice=function(A,e){if(void 0===A&&(A=this.offset),void 0===e&&(e=this.limit),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal begin: Not an integer");if(A>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,A<0||A>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+A+" <= "+e+" <= "+this.buffer.byteLength)}var t=this.clone();return t.offset=A,t.limit=e,t},t.toBuffer=function(A){var e=this.offset,t=this.limit;if(e>t){var i=e;e=t,t=i}if(!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: Not an integer");if(e>>>=0,"number"!=typeof t||t%1!=0)throw TypeError("Illegal limit: Not an integer");if(t>>>=0,e<0||e>t||t>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+t+" <= "+this.buffer.byteLength)}if(!A&&0===e&&t===this.buffer.byteLength)return this.buffer;if(e===t)return r;var n=new ArrayBuffer(t-e);return new Uint8Array(n).set(new Uint8Array(this.buffer).subarray(e,t),0),n},t.toArrayBuffer=t.toBuffer,t.toString=function(A,e,t){if(void 0===A)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";switch("number"==typeof A&&(t=e=A="utf8"),A){case"utf8":return this.toUTF8(e,t);case"base64":return this.toBase64(e,t);case"hex":return this.toHex(e,t);case"binary":return this.toBinary(e,t);case"debug":return this.toDebug();case"columns":return this.toColumns();default:throw Error("Unsupported encoding: "+A)}};var I=function(){for(var A={},e=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],t=[],i=0,r=e.length;i<r;++i)t[e[i]]=i;return A.encode=function(A,t){for(var i,r;null!==(i=A());)t(e[i>>2&63]),r=(3&i)<<4,null!==(i=A())?(t(e[63&((r|=i>>4&15)|i>>4&15)]),r=(15&i)<<2,null!==(i=A())?(t(e[63&(r|i>>6&3)]),t(e[63&i])):(t(e[63&r]),t(61))):(t(e[63&r]),t(61),t(61))},A.decode=function(A,e){var i,r,n;function g(A){throw Error("Illegal character code: "+A)}for(;null!==(i=A());)if(void 0===(r=t[i])&&g(i),null!==(i=A())&&(void 0===(n=t[i])&&g(i),e(r<<2>>>0|(48&n)>>4),null!==(i=A()))){if(void 0===(r=t[i])){if(61===i)break;g(i)}if(e((15&n)<<4>>>0|(60&r)>>2),null!==(i=A())){if(void 0===(n=t[i])){if(61===i)break;g(i)}e((3&r)<<6>>>0|n)}}},A.test=function(A){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(A)},A}();t.toBase64=function(A,e){if(void 0===A&&(A=this.offset),void 0===e&&(e=this.limit),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal begin: Not an integer");if(A>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,A<0||A>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+A+" <= "+e+" <= "+this.buffer.byteLength)}var t;return I.encode(function(){return A<e?this.view.getUint8(A++):null}.bind(this),t=o()),t()},e.fromBase64=function(A,t,i){if(!i){if("string"!=typeof A)throw TypeError("Illegal str: Not a string");if(A.length%4!=0)throw TypeError("Illegal str: Length not a multiple of 4")}var r=new e(A.length/4*3,t,i),n=0;return I.decode(g(A),(function(A){r.view.setUint8(n++,A)})),r.limit=n,r},e.btoa=function(A){return e.fromBinary(A).toBase64()},e.atob=function(A){return e.fromBase64(A).toBinary()},t.toBinary=function(A,e){if(A=void 0===A?this.offset:A,e=void 0===e?this.limit:e,!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal begin: Not an integer");if(A>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,A<0||A>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+A+" <= "+e+" <= "+this.buffer.byteLength)}if(A===e)return"";for(var t=[],i=[];A<e;)t.push(this.view.getUint8(A++)),t.length>=1024&&(i.push(String.fromCharCode.apply(String,t)),t=[]);return i.join("")+String.fromCharCode.apply(String,t)},e.fromBinary=function(A,t,i){if(!i&&"string"!=typeof A)throw TypeError("Illegal str: Not a string");for(var r,n=0,g=A.length,o=new e(g,t,i);n<g;){if(r=A.charCodeAt(n),!i&&r>255)throw RangeError("Illegal charCode at "+n+": 0 <= "+r+" <= 255");o.view.setUint8(n++,r)}return o.limit=g,o},t.toDebug=function(A){for(var e,t=-1,i=this.buffer.byteLength,r="",n="",g="";t<i;){if(-1!==t&&(r+=(e=this.view.getUint8(t))<16?"0"+e.toString(16).toUpperCase():e.toString(16).toUpperCase(),A&&(n+=e>32&&e<127?String.fromCharCode(e):".")),++t,A&&t>0&&t%16==0&&t!==i){for(;r.length<51;)r+=" ";g+=r+n+"\n",r=n=""}t===this.offset&&t===this.limit?r+=t===this.markedOffset?"!":"|":t===this.offset?r+=t===this.markedOffset?"[":"<":t===this.limit?r+=t===this.markedOffset?"]":">":r+=t===this.markedOffset?"'":A||0!==t&&t!==i?" ":""}if(A&&" "!==r){for(;r.length<51;)r+=" ";g+=r+n+"\n"}return A?g:r},e.fromDebug=function(A,t,i){for(var r,n,g=A.length,o=new e((g+1)/3|0,t,i),I=0,s=0,f=!1,a=!1,h=!1,B=!1,C=!1;I<g;){switch(r=A.charAt(I++)){case"!":if(!i){if(a||h||B){C=!0;break}a=h=B=!0}o.offset=o.markedOffset=o.limit=s,f=!1;break;case"|":if(!i){if(a||B){C=!0;break}a=B=!0}o.offset=o.limit=s,f=!1;break;case"[":if(!i){if(a||h){C=!0;break}a=h=!0}o.offset=o.markedOffset=s,f=!1;break;case"<":if(!i){if(a){C=!0;break}a=!0}o.offset=s,f=!1;break;case"]":if(!i){if(B||h){C=!0;break}B=h=!0}o.limit=o.markedOffset=s,f=!1;break;case">":if(!i){if(B){C=!0;break}B=!0}o.limit=s,f=!1;break;case"'":if(!i){if(h){C=!0;break}h=!0}o.markedOffset=s,f=!1;break;case" ":f=!1;break;default:if(!i&&f){C=!0;break}if(n=parseInt(r+A.charAt(I++),16),!i&&(isNaN(n)||n<0||n>255))throw TypeError("Illegal str: Not a debug encoded string");o.view.setUint8(s++,n),f=!0}if(C)throw TypeError("Illegal str: Invalid symbol at "+I)}if(!i){if(!a||!B)throw TypeError("Illegal str: Missing offset or limit");if(s<o.buffer.byteLength)throw TypeError("Illegal str: Not a debug encoded string (is it hex?) "+s+" < "+g)}return o},t.toHex=function(A,e){if(A=void 0===A?this.offset:A,e=void 0===e?this.limit:e,!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal begin: Not an integer");if(A>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,A<0||A>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+A+" <= "+e+" <= "+this.buffer.byteLength)}for(var t,i=new Array(e-A);A<e;)(t=this.view.getUint8(A++))<16?i.push("0",t.toString(16)):i.push(t.toString(16));return i.join("")},e.fromHex=function(A,t,i){if(!i){if("string"!=typeof A)throw TypeError("Illegal str: Not a string");if(A.length%2!=0)throw TypeError("Illegal str: Length not a multiple of 2")}for(var r,n=A.length,g=new e(n/2|0,t),o=0,I=0;o<n;o+=2){if(r=parseInt(A.substring(o,o+2),16),!i&&(!isFinite(r)||r<0||r>255))throw TypeError("Illegal str: Contains non-hex characters");g.view.setUint8(I++,r)}return g.limit=I,g};var s=function(){var A={MAX_CODEPOINT:1114111,encodeUTF8:function(A,e){var t=null;for("number"==typeof A&&(t=A,A=function(){return null});null!==t||null!==(t=A());)t<128?e(127&t):t<2048?(e(t>>6&31|192),e(63&t|128)):t<65536?(e(t>>12&15|224),e(t>>6&63|128),e(63&t|128)):(e(t>>18&7|240),e(t>>12&63|128),e(t>>6&63|128),e(63&t|128)),t=null},decodeUTF8:function(A,e){for(var t,i,r,n,g=function(A){A=A.slice(0,A.indexOf(null));var e=Error(A.toString());throw e.name="TruncatedError",e.bytes=A,e};null!==(t=A());)if(0==(128&t))e(t);else if(192==(224&t))null===(i=A())&&g([t,i]),e((31&t)<<6|63&i);else if(224==(240&t))(null===(i=A())||null===(r=A()))&&g([t,i,r]),e((15&t)<<12|(63&i)<<6|63&r);else{if(240!=(248&t))throw RangeError("Illegal starting byte: "+t);(null===(i=A())||null===(r=A())||null===(n=A()))&&g([t,i,r,n]),e((7&t)<<18|(63&i)<<12|(63&r)<<6|63&n)}},UTF16toUTF8:function(A,e){for(var t,i=null;null!==(t=null!==i?i:A());)t>=55296&&t<=57343&&null!==(i=A())&&i>=56320&&i<=57343?(e(1024*(t-55296)+i-56320+65536),i=null):e(t);null!==i&&e(i)},UTF8toUTF16:function(A,e){var t=null;for("number"==typeof A&&(t=A,A=function(){return null});null!==t||null!==(t=A());)t<=65535?e(t):(e(55296+((t-=65536)>>10)),e(t%1024+56320)),t=null},encodeUTF16toUTF8:function(e,t){A.UTF16toUTF8(e,(function(e){A.encodeUTF8(e,t)}))},decodeUTF8toUTF16:function(e,t){A.decodeUTF8(e,(function(e){A.UTF8toUTF16(e,t)}))},calculateCodePoint:function(A){return A<128?1:A<2048?2:A<65536?3:4},calculateUTF8:function(e){for(var t,i=0;null!==(t=e());)i+=A.calculateCodePoint(t);return i},calculateUTF16asUTF8:function(e){var t=0,i=0;return A.UTF16toUTF8(e,(function(e){++t,i+=A.calculateCodePoint(e)})),[t,i]}};return A}();return t.toUTF8=function(A,e){if(void 0===A&&(A=this.offset),void 0===e&&(e=this.limit),!this.noAssert){if("number"!=typeof A||A%1!=0)throw TypeError("Illegal begin: Not an integer");if(A>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,A<0||A>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+A+" <= "+e+" <= "+this.buffer.byteLength)}var t;try{s.decodeUTF8toUTF16(function(){return A<e?this.view.getUint8(A++):null}.bind(this),t=o())}catch(t){if(A!==e)throw RangeError("Illegal range: Truncated data, "+A+" != "+e)}return t()},e.fromUTF8=function(A,t,i){if(!i&&"string"!=typeof A)throw TypeError("Illegal str: Not a string");var r=new e(s.calculateUTF16asUTF8(g(A),!0)[1],t,i),n=0;return s.encodeUTF16toUTF8(g(A),(function(A){r.view.setUint8(n++,A)})),r.limit=n,r},e}"function"==typeof require&&"object"==typeof module&&module&&"object"==typeof exports&&exports?module.exports=function(){var A;try{A=require("long")}catch(A){}return e(A)}():"function"==typeof define&&define.amd?define("ByteBuffer",["Long"],(function(A){return e(A)})):(A.dcodeIO=A.dcodeIO||{}).ByteBuffer=e(A.dcodeIO.Long)}(this),
|
|
/**
|
|
* @license protobuf.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
|
|
* Released under the Apache License, Version 2.0
|
|
* see: https://github.com/dcodeIO/protobuf.js for details
|
|
*/
|
|
function(A,e){"function"==typeof define&&define.amd?define(["bytebuffer"],e):"function"==typeof require&&"object"==typeof module&&module&&module.exports?module.exports=e(require("bytebuffer"),!0):(A.dcodeIO=A.dcodeIO||{}).ProtoBuf=e(A.dcodeIO.ByteBuffer)}(this,(function(e,t){"use strict";var i,r={};return r.ByteBuffer=e,r.Long=e.Long||null,r.VERSION="5.0.1",r.WIRE_TYPES={},r.WIRE_TYPES.VARINT=0,r.WIRE_TYPES.BITS64=1,r.WIRE_TYPES.LDELIM=2,r.WIRE_TYPES.STARTGROUP=3,r.WIRE_TYPES.ENDGROUP=4,r.WIRE_TYPES.BITS32=5,r.PACKABLE_WIRE_TYPES=[r.WIRE_TYPES.VARINT,r.WIRE_TYPES.BITS64,r.WIRE_TYPES.BITS32],r.TYPES={int32:{name:"int32",wireType:r.WIRE_TYPES.VARINT,defaultValue:0},uint32:{name:"uint32",wireType:r.WIRE_TYPES.VARINT,defaultValue:0},sint32:{name:"sint32",wireType:r.WIRE_TYPES.VARINT,defaultValue:0},int64:{name:"int64",wireType:r.WIRE_TYPES.VARINT,defaultValue:r.Long?r.Long.ZERO:void 0},uint64:{name:"uint64",wireType:r.WIRE_TYPES.VARINT,defaultValue:r.Long?r.Long.UZERO:void 0},sint64:{name:"sint64",wireType:r.WIRE_TYPES.VARINT,defaultValue:r.Long?r.Long.ZERO:void 0},bool:{name:"bool",wireType:r.WIRE_TYPES.VARINT,defaultValue:!1},double:{name:"double",wireType:r.WIRE_TYPES.BITS64,defaultValue:0},string:{name:"string",wireType:r.WIRE_TYPES.LDELIM,defaultValue:""},bytes:{name:"bytes",wireType:r.WIRE_TYPES.LDELIM,defaultValue:null},fixed32:{name:"fixed32",wireType:r.WIRE_TYPES.BITS32,defaultValue:0},sfixed32:{name:"sfixed32",wireType:r.WIRE_TYPES.BITS32,defaultValue:0},fixed64:{name:"fixed64",wireType:r.WIRE_TYPES.BITS64,defaultValue:r.Long?r.Long.UZERO:void 0},sfixed64:{name:"sfixed64",wireType:r.WIRE_TYPES.BITS64,defaultValue:r.Long?r.Long.ZERO:void 0},float:{name:"float",wireType:r.WIRE_TYPES.BITS32,defaultValue:0},enum:{name:"enum",wireType:r.WIRE_TYPES.VARINT,defaultValue:0},message:{name:"message",wireType:r.WIRE_TYPES.LDELIM,defaultValue:null},group:{name:"group",wireType:r.WIRE_TYPES.STARTGROUP,defaultValue:null}},r.MAP_KEY_TYPES=[r.TYPES.int32,r.TYPES.sint32,r.TYPES.sfixed32,r.TYPES.uint32,r.TYPES.fixed32,r.TYPES.int64,r.TYPES.sint64,r.TYPES.sfixed64,r.TYPES.uint64,r.TYPES.fixed64,r.TYPES.bool,r.TYPES.string,r.TYPES.bytes],r.ID_MIN=1,r.ID_MAX=536870911,r.convertFieldsToCamelCase=!1,r.populateAccessors=!0,r.populateDefaults=!0,r.Util=((i={}).IS_NODE=!("object"!=typeof A||A+""!="[object process]"||A.browser),i.XHR=function(){for(var A=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}],e=null,t=0;t<A.length;t++){try{e=A[t]()}catch(A){continue}break}if(!e)throw Error("XMLHttpRequest is not supported");return e},i.fetch=function(A,e){if(e&&"function"!=typeof e&&(e=null),i.IS_NODE){var t=require("fs");if(e)t.readFile(A,(function(A,t){e(A?null:""+t)}));else try{return t.readFileSync(A)}catch(A){return null}}else{var r=i.XHR();if(r.open("GET",A,!!e),r.setRequestHeader("Accept","text/plain"),"function"==typeof r.overrideMimeType&&r.overrideMimeType("text/plain"),!e)return r.send(null),200==r.status||0==r.status&&"string"==typeof r.responseText?r.responseText:null;if(r.onreadystatechange=function(){4==r.readyState&&(200==r.status||0==r.status&&"string"==typeof r.responseText?e(r.responseText):e(null))},4==r.readyState)return;r.send(null)}},i.toCamelCase=function(A){return A.replace(/_([a-zA-Z])/g,(function(A,e){return e.toUpperCase()}))},i),r.Lang={DELIM:/[\s\{\}=;:\[\],'"\(\)<>]/g,RULE:/^(?:required|optional|repeated|map)$/,TYPE:/^(?:double|float|int32|uint32|sint32|int64|uint64|sint64|fixed32|sfixed32|fixed64|sfixed64|bool|string|bytes)$/,NAME:/^[a-zA-Z_][a-zA-Z_0-9]*$/,TYPEDEF:/^[a-zA-Z][a-zA-Z_0-9]*$/,TYPEREF:/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/,FQTYPEREF:/^(?:\.[a-zA-Z][a-zA-Z_0-9]*)+$/,NUMBER:/^-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+|([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?)|inf|nan)$/,NUMBER_DEC:/^(?:[1-9][0-9]*|0)$/,NUMBER_HEX:/^0[xX][0-9a-fA-F]+$/,NUMBER_OCT:/^0[0-7]+$/,NUMBER_FLT:/^([0-9]*(\.[0-9]*)?([Ee][+-]?[0-9]+)?|inf|nan)$/,BOOL:/^(?:true|false)$/i,ID:/^(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,NEGID:/^\-?(?:[1-9][0-9]*|0|0[xX][0-9a-fA-F]+|0[0-7]+)$/,WHITESPACE:/\s/,STRING:/(?:"([^"\\]*(?:\\.[^"\\]*)*)")|(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,STRING_DQ:/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,STRING_SQ:/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g},r.DotProto=function(A,e){var t={},i=function(A){this.source=A+"",this.index=0,this.line=1,this.stack=[],this._stringOpen=null},r=i.prototype;r._readString=function(){var A='"'===this._stringOpen?e.STRING_DQ:e.STRING_SQ;A.lastIndex=this.index-1;var t=A.exec(this.source);if(!t)throw Error("unterminated string");return this.index=A.lastIndex,this.stack.push(this._stringOpen),this._stringOpen=null,t[1]},r.next=function(){if(this.stack.length>0)return this.stack.shift();if(this.index>=this.source.length)return null;if(null!==this._stringOpen)return this._readString();var A,t,i;do{for(A=!1;e.WHITESPACE.test(i=this.source.charAt(this.index));)if("\n"===i&&++this.line,++this.index===this.source.length)return null;if("/"===this.source.charAt(this.index))if(++this.index,"/"===this.source.charAt(this.index)){for(;"\n"!==this.source.charAt(++this.index);)if(this.index==this.source.length)return null;++this.index,++this.line,A=!0}else{if("*"!==(i=this.source.charAt(this.index)))return"/";do{if("\n"===i&&++this.line,++this.index===this.source.length)return null;t=i,i=this.source.charAt(this.index)}while("*"!==t||"/"!==i);++this.index,A=!0}}while(A);if(this.index===this.source.length)return null;var r=this.index;if(e.DELIM.lastIndex=0,!e.DELIM.test(this.source.charAt(r++)))for(;r<this.source.length&&!e.DELIM.test(this.source.charAt(r));)++r;var n=this.source.substring(this.index,this.index=r);return'"'!==n&&"'"!==n||(this._stringOpen=n),n},r.peek=function(){if(0===this.stack.length){var A=this.next();if(null===A)return null;this.stack.push(A)}return this.stack[0]},r.skip=function(A){var e=this.next();if(e!==A)throw Error("illegal '"+e+"', '"+A+"' expected")},r.omit=function(A){return this.peek()===A&&(this.next(),!0)},r.toString=function(){return"Tokenizer ("+this.index+"/"+this.source.length+" at line "+this.line+")"},t.Tokenizer=i;var n=function(A){this.tn=new i(A),this.proto3=!1},g=n.prototype;function o(A,t){var i=-1,r=1;if("-"==A.charAt(0)&&(r=-1,A=A.substring(1)),e.NUMBER_DEC.test(A))i=parseInt(A);else if(e.NUMBER_HEX.test(A))i=parseInt(A.substring(2),16);else{if(!e.NUMBER_OCT.test(A))throw Error("illegal id value: "+(r<0?"-":"")+A);i=parseInt(A.substring(1),8)}if(i=r*i|0,!t&&i<0)throw Error("illegal id value: "+(r<0?"-":"")+A);return i}function I(A){var t=1;if("-"==A.charAt(0)&&(t=-1,A=A.substring(1)),e.NUMBER_DEC.test(A))return t*parseInt(A,10);if(e.NUMBER_HEX.test(A))return t*parseInt(A.substring(2),16);if(e.NUMBER_OCT.test(A))return t*parseInt(A.substring(1),8);if("inf"===A)return t*(1/0);if("nan"===A)return NaN;if(e.NUMBER_FLT.test(A))return t*parseFloat(A);throw Error("illegal number value: "+(t<0?"-":"")+A)}function s(A,e,t){void 0===A[e]?A[e]=t:(Array.isArray(A[e])||(A[e]=[A[e]]),A[e].push(t))}return g.parse=function(){var A,t,i={name:"[ROOT]",package:null,messages:[],enums:[],imports:[],options:{},services:[]},r=!0;try{for(;A=this.tn.next();)switch(A){case"package":if(!r||null!==i.package)throw Error("unexpected 'package'");if(A=this.tn.next(),!e.TYPEREF.test(A))throw Error("illegal package name: "+A);this.tn.skip(";"),i.package=A;break;case"import":if(!r)throw Error("unexpected 'import'");("public"===(A=this.tn.peek())||(t="weak"===A))&&this.tn.next(),A=this._readString(),this.tn.skip(";"),t||i.imports.push(A);break;case"syntax":if(!r)throw Error("unexpected 'syntax'");this.tn.skip("="),"proto3"===(i.syntax=this._readString())&&(this.proto3=!0),this.tn.skip(";");break;case"message":this._parseMessage(i,null),r=!1;break;case"enum":this._parseEnum(i),r=!1;break;case"option":this._parseOption(i);break;case"service":this._parseService(i);break;case"extend":this._parseExtend(i);break;default:throw Error("unexpected '"+A+"'")}}catch(A){throw A.message="Parse error at line "+this.tn.line+": "+A.message,A}return delete i.name,i},n.parse=function(A){return new n(A).parse()},g._readString=function(){var A,e,t="";do{if("'"!==(e=this.tn.next())&&'"'!==e)throw Error("illegal string delimiter: "+e);t+=this.tn.next(),this.tn.skip(e),A=this.tn.peek()}while('"'===A||'"'===A);return t},g._readValue=function(A){var t=this.tn.peek();if('"'===t||"'"===t)return this._readString();if(this.tn.next(),e.NUMBER.test(t))return I(t);if(e.BOOL.test(t))return"true"===t.toLowerCase();if(A&&e.TYPEREF.test(t))return t;throw Error("illegal value: "+t)},g._parseOption=function(A,t){var i=this.tn.next(),r=!1;if("("===i&&(r=!0,i=this.tn.next()),!e.TYPEREF.test(i))throw Error("illegal option name: "+i);var n=i;r&&(this.tn.skip(")"),n="("+n+")",i=this.tn.peek(),e.FQTYPEREF.test(i)&&(n+=i,this.tn.next())),this.tn.skip("="),this._parseOptionValue(A,n),t||this.tn.skip(";")},g._parseOptionValue=function(A,t){var i=this.tn.peek();if("{"!==i)s(A.options,t,this._readValue(!0));else for(this.tn.skip("{");"}"!==(i=this.tn.next());){if(!e.NAME.test(i))throw Error("illegal option name: "+t+"."+i);this.tn.omit(":")?s(A.options,t+"."+i,this._readValue(!0)):this._parseOptionValue(A,t+"."+i)}},g._parseService=function(A){var t=this.tn.next();if(!e.NAME.test(t))throw Error("illegal service name at line "+this.tn.line+": "+t);var i={name:t,rpc:{},options:{}};for(this.tn.skip("{");"}"!==(t=this.tn.next());)if("option"===t)this._parseOption(i);else{if("rpc"!==t)throw Error("illegal service token: "+t);this._parseServiceRPC(i)}this.tn.omit(";"),A.services.push(i)},g._parseServiceRPC=function(A){var t=this.tn.next();if(!e.NAME.test(t))throw Error("illegal rpc service method name: "+t);var i=t,r={request:null,response:null,request_stream:!1,response_stream:!1,options:{}};if(this.tn.skip("("),"stream"===(t=this.tn.next()).toLowerCase()&&(r.request_stream=!0,t=this.tn.next()),!e.TYPEREF.test(t))throw Error("illegal rpc service request type: "+t);if(r.request=t,this.tn.skip(")"),"returns"!==(t=this.tn.next()).toLowerCase())throw Error("illegal rpc service request type delimiter: "+t);if(this.tn.skip("("),"stream"===(t=this.tn.next()).toLowerCase()&&(r.response_stream=!0,t=this.tn.next()),r.response=t,this.tn.skip(")"),"{"===(t=this.tn.peek())){for(this.tn.next();"}"!==(t=this.tn.next());){if("option"!==t)throw Error("illegal rpc service token: "+t);this._parseOption(r)}this.tn.omit(";")}else this.tn.skip(";");void 0===A.rpc&&(A.rpc={}),A.rpc[i]=r},g._parseMessage=function(A,t){var i=!!t,r=this.tn.next(),n={name:"",fields:[],enums:[],messages:[],options:{},services:[],oneofs:{}};if(!e.NAME.test(r))throw Error("illegal "+(i?"group":"message")+" name: "+r);for(n.name=r,i&&(this.tn.skip("="),t.id=o(this.tn.next()),n.isGroup=!0),"["===(r=this.tn.peek())&&t&&this._parseFieldOptions(t),this.tn.skip("{");"}"!==(r=this.tn.next());)if(e.RULE.test(r))this._parseMessageField(n,r);else if("oneof"===r)this._parseMessageOneOf(n);else if("enum"===r)this._parseEnum(n);else if("message"===r)this._parseMessage(n);else if("option"===r)this._parseOption(n);else if("service"===r)this._parseService(n);else if("extensions"===r)n.extensions=this._parseExtensionRanges();else if("reserved"===r)this._parseIgnored();else if("extend"===r)this._parseExtend(n);else{if(!e.TYPEREF.test(r))throw Error("illegal message token: "+r);if(!this.proto3)throw Error("illegal field rule: "+r);this._parseMessageField(n,"optional",r)}return this.tn.omit(";"),A.messages.push(n),n},g._parseIgnored=function(){for(;";"!==this.tn.peek();)this.tn.next();this.tn.skip(";")},g._parseMessageField=function(A,t,i){if(!e.RULE.test(t))throw Error("illegal message field rule: "+t);var r,n={rule:t,type:"",name:"",options:{},id:0};if("map"===t){if(i)throw Error("illegal type: "+i);if(this.tn.skip("<"),r=this.tn.next(),!e.TYPE.test(r)&&!e.TYPEREF.test(r))throw Error("illegal message field type: "+r);if(n.keytype=r,this.tn.skip(","),r=this.tn.next(),!e.TYPE.test(r)&&!e.TYPEREF.test(r))throw Error("illegal message field: "+r);if(n.type=r,this.tn.skip(">"),r=this.tn.next(),!e.NAME.test(r))throw Error("illegal message field name: "+r);n.name=r,this.tn.skip("="),n.id=o(this.tn.next()),"["===(r=this.tn.peek())&&this._parseFieldOptions(n),this.tn.skip(";")}else if("group"===(i=void 0!==i?i:this.tn.next())){var g=this._parseMessage(A,n);if(!/^[A-Z]/.test(g.name))throw Error("illegal group name: "+g.name);n.type=g.name,n.name=g.name.toLowerCase(),this.tn.omit(";")}else{if(!e.TYPE.test(i)&&!e.TYPEREF.test(i))throw Error("illegal message field type: "+i);if(n.type=i,r=this.tn.next(),!e.NAME.test(r))throw Error("illegal message field name: "+r);n.name=r,this.tn.skip("="),n.id=o(this.tn.next()),"["===(r=this.tn.peek())&&this._parseFieldOptions(n),this.tn.skip(";")}return A.fields.push(n),n},g._parseMessageOneOf=function(A){var t=this.tn.next();if(!e.NAME.test(t))throw Error("illegal oneof name: "+t);var i,r=t,n=[];for(this.tn.skip("{");"}"!==(t=this.tn.next());)(i=this._parseMessageField(A,"optional",t)).oneof=r,n.push(i.id);this.tn.omit(";"),A.oneofs[r]=n},g._parseFieldOptions=function(A){this.tn.skip("[");for(var e=!0;"]"!==this.tn.peek();)e||this.tn.skip(","),this._parseOption(A,!0),e=!1;this.tn.next()},g._parseEnum=function(A){var t={name:"",values:[],options:{}},i=this.tn.next();if(!e.NAME.test(i))throw Error("illegal name: "+i);for(t.name=i,this.tn.skip("{");"}"!==(i=this.tn.next());)if("option"===i)this._parseOption(t);else{if(!e.NAME.test(i))throw Error("illegal name: "+i);this.tn.skip("=");var r={name:i,id:o(this.tn.next(),!0)};"["===(i=this.tn.peek())&&this._parseFieldOptions({options:{}}),this.tn.skip(";"),t.values.push(r)}this.tn.omit(";"),A.enums.push(t)},g._parseExtensionRanges=function(){var e,t,i,r=[];do{for(t=[];;){switch(e=this.tn.next()){case"min":i=A.ID_MIN;break;case"max":i=A.ID_MAX;break;default:i=I(e)}if(t.push(i),2===t.length)break;if("to"!==this.tn.peek()){t.push(i);break}this.tn.next()}r.push(t)}while(this.tn.omit(","));return this.tn.skip(";"),r},g._parseExtend=function(A){var t=this.tn.next();if(!e.TYPEREF.test(t))throw Error("illegal extend reference: "+t);var i={ref:t,fields:[]};for(this.tn.skip("{");"}"!==(t=this.tn.next());)if(e.RULE.test(t))this._parseMessageField(i,t);else{if(!e.TYPEREF.test(t))throw Error("illegal extend token: "+t);if(!this.proto3)throw Error("illegal field rule: "+t);this._parseMessageField(i,"optional",t)}return this.tn.omit(";"),A.messages.push(i),i},g.toString=function(){return"Parser at line "+this.tn.line},t.Parser=n,t}(r,r.Lang),r.Reflect=function(A){var t={},i=function(A,e,t){this.builder=A,this.parent=e,this.name=t,this.className},r=i.prototype;r.fqn=function(){for(var A=this.name,e=this;null!=(e=e.parent);)A=e.name+"."+A;return A},r.toString=function(A){return(A?this.className+" ":"")+this.fqn()},r.build=function(){throw Error(this.toString(!0)+" cannot be built directly")},t.T=i;var n=function(A,e,t,r,n){i.call(this,A,e,t),this.className="Namespace",this.children=[],this.options=r||{},this.syntax=n||"proto2"},g=n.prototype=Object.create(i.prototype);g.getChildren=function(A){if(null==(A=A||null))return this.children.slice();for(var e=[],t=0,i=this.children.length;t<i;++t)this.children[t]instanceof A&&e.push(this.children[t]);return e},g.addChild=function(A){var e;if(e=this.getChild(A.name))if(e instanceof f.Field&&e.name!==e.originalName&&null===this.getChild(e.originalName))e.name=e.originalName;else{if(!(A instanceof f.Field&&A.name!==A.originalName&&null===this.getChild(A.originalName)))throw Error("Duplicate name in namespace "+this.toString(!0)+": "+A.name);A.name=A.originalName}this.children.push(A)},g.getChild=function(A){for(var e="number"==typeof A?"id":"name",t=0,i=this.children.length;t<i;++t)if(this.children[t][e]===A)return this.children[t];return null},g.resolve=function(A,e){var i,r="string"==typeof A?A.split("."):A,n=this,g=0;if(""===r[g]){for(;null!==n.parent;)n=n.parent;g++}do{do{if(!(n instanceof t.Namespace)){n=null;break}if(!(i=n.getChild(r[g]))||!(i instanceof t.T)||e&&!(i instanceof t.Namespace)){n=null;break}n=i,g++}while(g<r.length);if(null!=n)break;if(null!==this.parent)return this.parent.resolve(A,e)}while(null!=n);return n},g.qn=function(A){var e=[],i=A;do{e.unshift(i.name),i=i.parent}while(null!==i);for(var r=1;r<=e.length;r++){var n=e.slice(e.length-r);if(A===this.resolve(n,A instanceof t.Namespace))return n.join(".")}return A.fqn()},g.build=function(){for(var A,e={},t=this.children,i=0,r=t.length;i<r;++i)(A=t[i])instanceof n&&(e[A.name]=A.build());return Object.defineProperty&&Object.defineProperty(e,"$options",{value:this.buildOpt()}),e},g.buildOpt=function(){for(var A={},e=Object.keys(this.options),t=0,i=e.length;t<i;++t){var r=e[t],n=this.options[e[t]];A[r]=n}return A},g.getOption=function(A){return void 0===A?this.options:void 0!==this.options[A]?this.options[A]:null},t.Namespace=n;var o=function(e,t,i,r){if(this.type=e,this.resolvedType=t,this.isMapKey=i,this.syntax=r,i&&A.MAP_KEY_TYPES.indexOf(e)<0)throw Error("Invalid map key type: "+e.name)},I=o.prototype;function s(e,t){if(e&&"number"==typeof e.low&&"number"==typeof e.high&&"boolean"==typeof e.unsigned&&e.low==e.low&&e.high==e.high)return new A.Long(e.low,e.high,void 0===t?e.unsigned:t);if("string"==typeof e)return A.Long.fromString(e,t||!1,10);if("number"==typeof e)return A.Long.fromNumber(e,t||!1);throw Error("not convertible to Long")}o.defaultFieldValue=function(t){if("string"==typeof t&&(t=A.TYPES[t]),void 0===t.defaultValue)throw Error("default value for type "+t.name+" is not supported");return t==A.TYPES.bytes?new e(0):t.defaultValue},I.verifyValue=function(t){var i=this;function r(A,e){throw Error("Illegal value for "+i.toString(!0)+" of type "+i.type.name+": "+A+" ("+e+")")}switch(this.type){case A.TYPES.int32:case A.TYPES.sint32:case A.TYPES.sfixed32:return("number"!=typeof t||t==t&&t%1!=0)&&r(typeof t,"not an integer"),t>4294967295?0|t:t;case A.TYPES.uint32:case A.TYPES.fixed32:return("number"!=typeof t||t==t&&t%1!=0)&&r(typeof t,"not an integer"),t<0?t>>>0:t;case A.TYPES.int64:case A.TYPES.sint64:case A.TYPES.sfixed64:if(A.Long)try{return s(t,!1)}catch(A){r(typeof t,A.message)}else r(typeof t,"requires Long.js");case A.TYPES.uint64:case A.TYPES.fixed64:if(A.Long)try{return s(t,!0)}catch(A){r(typeof t,A.message)}else r(typeof t,"requires Long.js");case A.TYPES.bool:return"boolean"!=typeof t&&r(typeof t,"not a boolean"),t;case A.TYPES.float:case A.TYPES.double:return"number"!=typeof t&&r(typeof t,"not a number"),t;case A.TYPES.string:return"string"==typeof t||t&&t instanceof String||r(typeof t,"not a string"),""+t;case A.TYPES.bytes:return e.isByteBuffer(t)?t:e.wrap(t,"base64");case A.TYPES.enum:var n=this.resolvedType.getChildren(A.Reflect.Enum.Value);for(o=0;o<n.length;o++){if(n[o].name==t)return n[o].id;if(n[o].id==t)return n[o].id}if("proto3"===this.syntax)return("number"!=typeof t||t==t&&t%1!=0)&&r(typeof t,"not an integer"),(t>4294967295||t<0)&&r(typeof t,"not in range for uint32"),t;r(t,"not a valid enum value");case A.TYPES.group:case A.TYPES.message:if(t&&"object"==typeof t||r(typeof t,"object expected"),t instanceof this.resolvedType.clazz)return t;if(t instanceof A.Builder.Message){var g={};for(var o in t)t.hasOwnProperty(o)&&(g[o]=t[o]);t=g}return new this.resolvedType.clazz(t)}throw Error("[INTERNAL] Illegal value for "+this.toString(!0)+": "+t+" (undefined type "+this.type+")")},I.calculateLength=function(t,i){if(null===i)return 0;var r;switch(this.type){case A.TYPES.int32:return i<0?e.calculateVarint64(i):e.calculateVarint32(i);case A.TYPES.uint32:return e.calculateVarint32(i);case A.TYPES.sint32:return e.calculateVarint32(e.zigZagEncode32(i));case A.TYPES.fixed32:case A.TYPES.sfixed32:case A.TYPES.float:return 4;case A.TYPES.int64:case A.TYPES.uint64:return e.calculateVarint64(i);case A.TYPES.sint64:return e.calculateVarint64(e.zigZagEncode64(i));case A.TYPES.fixed64:case A.TYPES.sfixed64:return 8;case A.TYPES.bool:return 1;case A.TYPES.enum:return e.calculateVarint32(i);case A.TYPES.double:return 8;case A.TYPES.string:return r=e.calculateUTF8Bytes(i),e.calculateVarint32(r)+r;case A.TYPES.bytes:if(i.remaining()<0)throw Error("Illegal value for "+this.toString(!0)+": "+i.remaining()+" bytes remaining");return e.calculateVarint32(i.remaining())+i.remaining();case A.TYPES.message:return r=this.resolvedType.calculate(i),e.calculateVarint32(r)+r;case A.TYPES.group:return(r=this.resolvedType.calculate(i))+e.calculateVarint32(t<<3|A.WIRE_TYPES.ENDGROUP)}throw Error("[INTERNAL] Illegal value to encode in "+this.toString(!0)+": "+i+" (unknown type)")},I.encodeValue=function(t,i,r){if(null===i)return r;switch(this.type){case A.TYPES.int32:i<0?r.writeVarint64(i):r.writeVarint32(i);break;case A.TYPES.uint32:r.writeVarint32(i);break;case A.TYPES.sint32:r.writeVarint32ZigZag(i);break;case A.TYPES.fixed32:r.writeUint32(i);break;case A.TYPES.sfixed32:r.writeInt32(i);break;case A.TYPES.int64:case A.TYPES.uint64:r.writeVarint64(i);break;case A.TYPES.sint64:r.writeVarint64ZigZag(i);break;case A.TYPES.fixed64:r.writeUint64(i);break;case A.TYPES.sfixed64:r.writeInt64(i);break;case A.TYPES.bool:"string"==typeof i?r.writeVarint32("false"===i.toLowerCase()?0:!!i):r.writeVarint32(i?1:0);break;case A.TYPES.enum:r.writeVarint32(i);break;case A.TYPES.float:r.writeFloat32(i);break;case A.TYPES.double:r.writeFloat64(i);break;case A.TYPES.string:r.writeVString(i);break;case A.TYPES.bytes:if(i.remaining()<0)throw Error("Illegal value for "+this.toString(!0)+": "+i.remaining()+" bytes remaining");var n=i.offset;r.writeVarint32(i.remaining()),r.append(i),i.offset=n;break;case A.TYPES.message:var g=(new e).LE();this.resolvedType.encode(i,g),r.writeVarint32(g.offset),r.append(g.flip());break;case A.TYPES.group:this.resolvedType.encode(i,r),r.writeVarint32(t<<3|A.WIRE_TYPES.ENDGROUP);break;default:throw Error("[INTERNAL] Illegal value to encode in "+this.toString(!0)+": "+i+" (unknown type)")}return r},I.decode=function(e,t,i){if(t!=this.type.wireType)throw Error("Unexpected wire type for element");var r,n;switch(this.type){case A.TYPES.int32:return 0|e.readVarint32();case A.TYPES.uint32:return e.readVarint32()>>>0;case A.TYPES.sint32:return 0|e.readVarint32ZigZag();case A.TYPES.fixed32:return e.readUint32()>>>0;case A.TYPES.sfixed32:return 0|e.readInt32();case A.TYPES.int64:return e.readVarint64();case A.TYPES.uint64:return e.readVarint64().toUnsigned();case A.TYPES.sint64:return e.readVarint64ZigZag();case A.TYPES.fixed64:return e.readUint64();case A.TYPES.sfixed64:return e.readInt64();case A.TYPES.bool:return!!e.readVarint32();case A.TYPES.enum:return e.readVarint32();case A.TYPES.float:return e.readFloat();case A.TYPES.double:return e.readDouble();case A.TYPES.string:return e.readVString();case A.TYPES.bytes:if(n=e.readVarint32(),e.remaining()<n)throw Error("Illegal number of bytes for "+this.toString(!0)+": "+n+" required but got only "+e.remaining());return(r=e.clone()).limit=r.offset+n,e.offset+=n,r;case A.TYPES.message:return n=e.readVarint32(),this.resolvedType.decode(e,n);case A.TYPES.group:return this.resolvedType.decode(e,-1,i)}throw Error("[INTERNAL] Illegal decode type")},I.valueFromString=function(t){if(!this.isMapKey)throw Error("valueFromString() called on non-map-key element");switch(this.type){case A.TYPES.int32:case A.TYPES.sint32:case A.TYPES.sfixed32:case A.TYPES.uint32:case A.TYPES.fixed32:return this.verifyValue(parseInt(t));case A.TYPES.int64:case A.TYPES.sint64:case A.TYPES.sfixed64:case A.TYPES.uint64:case A.TYPES.fixed64:return this.verifyValue(t);case A.TYPES.bool:return"true"===t;case A.TYPES.string:return this.verifyValue(t);case A.TYPES.bytes:return e.fromBinary(t)}},I.valueToString=function(e){if(!this.isMapKey)throw Error("valueToString() called on non-map-key element");return this.type===A.TYPES.bytes?e.toString("binary"):e.toString()},t.Element=o;var f=function(A,e,t,i,r,g){n.call(this,A,e,t,i,g),this.className="Message",this.extensions=void 0,this.clazz=null,this.isGroup=!!r,this._fields=null,this._fieldsById=null,this._fieldsByName=null},a=f.prototype=Object.create(n.prototype);function h(e,t){var i=t.readVarint32(),r=7&i,n=i>>>3;switch(r){case A.WIRE_TYPES.VARINT:do{i=t.readUint8()}while(128==(128&i));break;case A.WIRE_TYPES.BITS64:t.offset+=8;break;case A.WIRE_TYPES.LDELIM:i=t.readVarint32(),t.offset+=i;break;case A.WIRE_TYPES.STARTGROUP:h(n,t);break;case A.WIRE_TYPES.ENDGROUP:if(n===e)return!1;throw Error("Illegal GROUPEND after unknown group: "+n+" ("+e+" expected)");case A.WIRE_TYPES.BITS32:t.offset+=4;break;default:throw Error("Illegal wire type in unknown group "+e+": "+r)}return!0}a.build=function(t){if(this.clazz&&!t)return this.clazz;var i=function(A,t){var i=t.getChildren(A.Reflect.Message.Field),r=t.getChildren(A.Reflect.Message.OneOf),n=function(g,o){A.Builder.Message.call(this);for(var I=0,s=r.length;I<s;++I)this[r[I].name]=null;for(I=0,s=i.length;I<s;++I){var f=i[I];this[f.name]=f.repeated?[]:f.map?new A.Map(f):null,!f.required&&"proto3"!==t.syntax||null===f.defaultValue||(this[f.name]=f.defaultValue)}var a;if(arguments.length>0)if(1!==arguments.length||null===g||"object"!=typeof g||!("function"!=typeof g.encode||g instanceof n)||Array.isArray(g)||g instanceof A.Map||e.isByteBuffer(g)||g instanceof ArrayBuffer||A.Long&&g instanceof A.Long)for(I=0,s=arguments.length;I<s;++I)void 0!==(a=arguments[I])&&this.$set(i[I].name,a);else this.$set(g)},g=n.prototype=Object.create(A.Builder.Message.prototype);g.add=function(e,i,r){var n=t._fieldsByName[e];if(!r){if(!n)throw Error(this+"#"+e+" is undefined");if(!(n instanceof A.Reflect.Message.Field))throw Error(this+"#"+e+" is not a field: "+n.toString(!0));if(!n.repeated)throw Error(this+"#"+e+" is not a repeated field");i=n.verifyValue(i,!0)}return null===this[e]&&(this[e]=[]),this[e].push(i),this},g.$add=g.add,g.set=function(e,i,r){if(e&&"object"==typeof e){for(var n in r=i,e)e.hasOwnProperty(n)&&void 0!==(i=e[n])&&this.$set(n,i,r);return this}var g=t._fieldsByName[e];if(r)this[e]=i;else{if(!g)throw Error(this+"#"+e+" is not a field: undefined");if(!(g instanceof A.Reflect.Message.Field))throw Error(this+"#"+e+" is not a field: "+g.toString(!0));this[g.name]=i=g.verifyValue(i)}if(g&&g.oneof){var o=this[g.oneof.name];null!==i?(null!==o&&o!==g.name&&(this[o]=null),this[g.oneof.name]=g.name):o===e&&(this[g.oneof.name]=null)}return this},g.$set=g.set,g.get=function(e,i){if(i)return this[e];var r=t._fieldsByName[e];if(!(r&&r instanceof A.Reflect.Message.Field))throw Error(this+"#"+e+" is not a field: undefined");if(!(r instanceof A.Reflect.Message.Field))throw Error(this+"#"+e+" is not a field: "+r.toString(!0));return this[r.name]},g.$get=g.get;for(var o=0;o<i.length;o++){var I=i[o];I instanceof A.Reflect.Message.ExtensionField||t.builder.options.populateAccessors&&function(A){var e=A.originalName.replace(/(_[a-zA-Z])/g,(function(A){return A.toUpperCase().replace("_","")}));e=e.substring(0,1).toUpperCase()+e.substring(1);var i=A.originalName.replace(/([A-Z])/g,(function(A){return"_"+A})),r=function(e,t){return this[A.name]=t?e:A.verifyValue(e),this},n=function(){return this[A.name]};null===t.getChild("set"+e)&&(g["set"+e]=r),null===t.getChild("set_"+i)&&(g["set_"+i]=r),null===t.getChild("get"+e)&&(g["get"+e]=n),null===t.getChild("get_"+i)&&(g["get_"+i]=n)}(I)}function s(t,i,r,n){if(null===t||"object"!=typeof t){if(n&&n instanceof A.Reflect.Enum){var g=A.Reflect.Enum.getName(n.object,t);if(null!==g)return g}return t}if(e.isByteBuffer(t))return i?t.toBase64():t.toBuffer();if(A.Long.isLong(t))return r?t.toString():A.Long.fromValue(t);var o;if(Array.isArray(t))return o=[],t.forEach((function(A,e){o[e]=s(A,i,r,n)})),o;if(o={},t instanceof A.Map){for(var I=t.entries(),f=I.next();!f.done;f=I.next())o[t.keyElem.valueToString(f.value[0])]=s(f.value[1],i,r,t.valueElem.resolvedType);return o}var a=t.$type,h=void 0;for(var B in t)t.hasOwnProperty(B)&&(a&&(h=a.getChild(B))?o[B]=s(t[B],i,r,h.resolvedType):o[B]=s(t[B],i,r));return o}return g.encode=function(A,i){"boolean"==typeof A&&(i=A,A=void 0);var r=!1;A||(A=new e,r=!0);var n=A.littleEndian;try{return t.encode(this,A.LE(),i),(r?A.flip():A).LE(n)}catch(e){throw A.LE(n),e}},n.encode=function(A,e,t){return new n(A).encode(e,t)},g.calculate=function(){return t.calculate(this)},g.encodeDelimited=function(A,i){var r=!1;A||(A=new e,r=!0);var n=(new e).LE();return t.encode(this,n,i).flip(),A.writeVarint32(n.remaining()),A.append(n),r?A.flip():A},g.encodeAB=function(){try{return this.encode().toArrayBuffer()}catch(A){throw A.encoded&&(A.encoded=A.encoded.toArrayBuffer()),A}},g.toArrayBuffer=g.encodeAB,g.encodeNB=function(){try{return this.encode().toBuffer()}catch(A){throw A.encoded&&(A.encoded=A.encoded.toBuffer()),A}},g.toBuffer=g.encodeNB,g.encode64=function(){try{return this.encode().toBase64()}catch(A){throw A.encoded&&(A.encoded=A.encoded.toBase64()),A}},g.toBase64=g.encode64,g.encodeHex=function(){try{return this.encode().toHex()}catch(A){throw A.encoded&&(A.encoded=A.encoded.toHex()),A}},g.toHex=g.encodeHex,g.toRaw=function(A,e){return s(this,!!A,!!e,this.$type)},g.encodeJSON=function(){return JSON.stringify(s(this,!0,!0,this.$type))},n.decode=function(A,i,r){"string"==typeof i&&(r=i,i=-1),"string"==typeof A&&(A=e.wrap(A,r||"base64"));var n=(A=e.isByteBuffer(A)?A:e.wrap(A)).littleEndian;try{var g=t.decode(A.LE());return A.LE(n),g}catch(e){throw A.LE(n),e}},n.decodeDelimited=function(A,i){if("string"==typeof A&&(A=e.wrap(A,i||"base64")),(A=e.isByteBuffer(A)?A:e.wrap(A)).remaining()<1)return null;var r=A.offset,n=A.readVarint32();if(A.remaining()<n)return A.offset=r,null;try{var g=t.decode(A.slice(A.offset,A.offset+n).LE());return A.offset+=n,g}catch(e){throw A.offset+=n,e}},n.decode64=function(A){return n.decode(A,"base64")},n.decodeHex=function(A){return n.decode(A,"hex")},n.decodeJSON=function(A){return new n(JSON.parse(A))},g.toString=function(){return t.toString()},Object.defineProperty&&(Object.defineProperty(n,"$options",{value:t.buildOpt()}),Object.defineProperty(g,"$options",{value:n.$options}),Object.defineProperty(n,"$type",{value:t}),Object.defineProperty(g,"$type",{value:t})),n}(A,this);this._fields=[],this._fieldsById={},this._fieldsByName={};for(var r,n=0,g=this.children.length;n<g;n++)if((r=this.children[n])instanceof u||r instanceof f||r instanceof l){if(i.hasOwnProperty(r.name))throw Error("Illegal reflect child of "+this.toString(!0)+": "+r.toString(!0)+" cannot override static property '"+r.name+"'");i[r.name]=r.build()}else if(r instanceof f.Field)r.build(),this._fields.push(r),this._fieldsById[r.id]=r,this._fieldsByName[r.name]=r;else if(!(r instanceof f.OneOf||r instanceof c))throw Error("Illegal reflect child of "+this.toString(!0)+": "+this.children[n].toString(!0));return this.clazz=i},a.encode=function(A,e,t){for(var i,r,n=null,g=0,o=this._fields.length;g<o;++g)r=A[(i=this._fields[g]).name],i.required&&null===r?null===n&&(n=i):i.encode(t?r:i.verifyValue(r),e,A);if(null!==n){var I=Error("Missing at least one required field for "+this.toString(!0)+": "+n);throw I.encoded=e,I}return e},a.calculate=function(A){for(var e,t,i=0,r=0,n=this._fields.length;r<n;++r){if(t=A[(e=this._fields[r]).name],e.required&&null===t)throw Error("Missing at least one required field for "+this.toString(!0)+": "+e);i+=e.calculate(t,A)}return i},a.decode=function(e,t,i){t="number"==typeof t?t:-1;for(var r,n,g,o,I=e.offset,s=new this.clazz;e.offset<I+t||-1===t&&e.remaining()>0;){if(g=(r=e.readVarint32())>>>3,(n=7&r)===A.WIRE_TYPES.ENDGROUP){if(g!==i)throw Error("Illegal group end indicator for "+this.toString(!0)+": "+g+" ("+(i?i+" expected":"not a group")+")");break}if(o=this._fieldsById[g]){if(o.repeated&&!o.options.packed)s[o.name].push(o.decode(n,e));else if(o.map){var f=o.decode(n,e);s[o.name].set(f[0],f[1])}else if(s[o.name]=o.decode(n,e),o.oneof){var a=s[o.oneof.name];null!==a&&a!==o.name&&(s[a]=null),s[o.oneof.name]=o.name}}else switch(n){case A.WIRE_TYPES.VARINT:e.readVarint32();break;case A.WIRE_TYPES.BITS32:e.offset+=4;break;case A.WIRE_TYPES.BITS64:e.offset+=8;break;case A.WIRE_TYPES.LDELIM:var B=e.readVarint32();e.offset+=B;break;case A.WIRE_TYPES.STARTGROUP:for(;h(g,e););break;default:throw Error("Illegal wire type for unknown field "+g+" in "+this.toString(!0)+"#decode: "+n)}}for(var C=0,E=this._fields.length;C<E;++C)if(null===s[(o=this._fields[C]).name])if("proto3"===this.syntax)s[o.name]=o.defaultValue;else{if(o.required){var u=Error("Missing at least one required field for "+this.toString(!0)+": "+o.name);throw u.decoded=s,u}A.populateDefaults&&null!==o.defaultValue&&(s[o.name]=o.defaultValue)}return s},t.Message=f;var B=function(e,t,r,n,g,o,I,s,a,h){i.call(this,e,t,o),this.className="Message.Field",this.required="required"===r,this.repeated="repeated"===r,this.map="map"===r,this.keyType=n||null,this.type=g,this.resolvedType=null,this.id=I,this.options=s||{},this.defaultValue=null,this.oneof=a||null,this.syntax=h||"proto2",this.originalName=this.name,this.element=null,this.keyElement=null,!this.builder.options.convertFieldsToCamelCase||this instanceof f.ExtensionField||(this.name=A.Util.toCamelCase(this.name))},C=B.prototype=Object.create(i.prototype);C.build=function(){this.element=new o(this.type,this.resolvedType,!1,this.syntax),this.map&&(this.keyElement=new o(this.keyType,void 0,!0,this.syntax)),"proto3"!==this.syntax||this.repeated||this.map?void 0!==this.options.default&&(this.defaultValue=this.verifyValue(this.options.default)):this.defaultValue=o.defaultFieldValue(this.type)},C.verifyValue=function(e,t){t=t||!1;var i,r=this;function n(A,e){throw Error("Illegal value for "+r.toString(!0)+" of type "+r.type.name+": "+A+" ("+e+")")}if(null===e)return this.required&&n(typeof e,"required"),"proto3"===this.syntax&&this.type!==A.TYPES.message&&n(typeof e,"proto3 field without field presence cannot be null"),null;if(this.repeated&&!t){Array.isArray(e)||(e=[e]);var g=[];for(i=0;i<e.length;i++)g.push(this.element.verifyValue(e[i]));return g}return this.map&&!t?e instanceof A.Map?e:(e instanceof Object||n(typeof e,"expected ProtoBuf.Map or raw object for map field"),new A.Map(this,e)):(!this.repeated&&Array.isArray(e)&&n(typeof e,"no array expected"),this.element.verifyValue(e))},C.hasWirePresence=function(e,t){if("proto3"!==this.syntax)return null!==e;if(this.oneof&&t[this.oneof.name]===this.name)return!0;switch(this.type){case A.TYPES.int32:case A.TYPES.sint32:case A.TYPES.sfixed32:case A.TYPES.uint32:case A.TYPES.fixed32:return 0!==e;case A.TYPES.int64:case A.TYPES.sint64:case A.TYPES.sfixed64:case A.TYPES.uint64:case A.TYPES.fixed64:return 0!==e.low||0!==e.high;case A.TYPES.bool:return e;case A.TYPES.float:case A.TYPES.double:return 0!==e;case A.TYPES.string:return e.length>0;case A.TYPES.bytes:return e.remaining()>0;case A.TYPES.enum:return 0!==e;case A.TYPES.message:return null!==e;default:return!0}},C.encode=function(t,i,r){if(null===this.type||"object"!=typeof this.type)throw Error("[INTERNAL] Unresolved type in "+this.toString(!0)+": "+this.type);if(null===t||this.repeated&&0==t.length)return i;try{var n;if(this.repeated)if(this.options.packed&&A.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)>=0){i.writeVarint32(this.id<<3|A.WIRE_TYPES.LDELIM),i.ensureCapacity(i.offset+=1);var g=i.offset;for(n=0;n<t.length;n++)this.element.encodeValue(this.id,t[n],i);var o=i.offset-g,I=e.calculateVarint32(o);if(I>1){var s=i.slice(g,i.offset);g+=I-1,i.offset=g,i.append(s)}i.writeVarint32(o,g-I)}else for(n=0;n<t.length;n++)i.writeVarint32(this.id<<3|this.type.wireType),this.element.encodeValue(this.id,t[n],i);else this.map?t.forEach((function(t,r,n){var g=e.calculateVarint32(8|this.keyType.wireType)+this.keyElement.calculateLength(1,r)+e.calculateVarint32(16|this.type.wireType)+this.element.calculateLength(2,t);i.writeVarint32(this.id<<3|A.WIRE_TYPES.LDELIM),i.writeVarint32(g),i.writeVarint32(8|this.keyType.wireType),this.keyElement.encodeValue(1,r,i),i.writeVarint32(16|this.type.wireType),this.element.encodeValue(2,t,i)}),this):this.hasWirePresence(t,r)&&(i.writeVarint32(this.id<<3|this.type.wireType),this.element.encodeValue(this.id,t,i))}catch(A){throw Error("Illegal value for "+this.toString(!0)+": "+t+" ("+A+")")}return i},C.calculate=function(t,i){if(t=this.verifyValue(t),null===this.type||"object"!=typeof this.type)throw Error("[INTERNAL] Unresolved type in "+this.toString(!0)+": "+this.type);if(null===t||this.repeated&&0==t.length)return 0;var r=0;try{var n,g;if(this.repeated)if(this.options.packed&&A.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)>=0){for(r+=e.calculateVarint32(this.id<<3|A.WIRE_TYPES.LDELIM),g=0,n=0;n<t.length;n++)g+=this.element.calculateLength(this.id,t[n]);r+=e.calculateVarint32(g),r+=g}else for(n=0;n<t.length;n++)r+=e.calculateVarint32(this.id<<3|this.type.wireType),r+=this.element.calculateLength(this.id,t[n]);else this.map?t.forEach((function(t,i,n){var g=e.calculateVarint32(8|this.keyType.wireType)+this.keyElement.calculateLength(1,i)+e.calculateVarint32(16|this.type.wireType)+this.element.calculateLength(2,t);r+=e.calculateVarint32(this.id<<3|A.WIRE_TYPES.LDELIM),r+=e.calculateVarint32(g),r+=g}),this):this.hasWirePresence(t,i)&&(r+=e.calculateVarint32(this.id<<3|this.type.wireType),r+=this.element.calculateLength(this.id,t))}catch(A){throw Error("Illegal value for "+this.toString(!0)+": "+t+" ("+A+")")}return r},C.decode=function(e,t,i){var r,n;if(!(!this.map&&e==this.type.wireType||!i&&this.repeated&&this.options.packed&&e==A.WIRE_TYPES.LDELIM||this.map&&e==A.WIRE_TYPES.LDELIM))throw Error("Illegal wire type for field "+this.toString(!0)+": "+e+" ("+this.type.wireType+" expected)");if(e==A.WIRE_TYPES.LDELIM&&this.repeated&&this.options.packed&&A.PACKABLE_WIRE_TYPES.indexOf(this.type.wireType)>=0&&!i){n=t.readVarint32(),n=t.offset+n;for(var g=[];t.offset<n;)g.push(this.decode(this.type.wireType,t,!0));return g}if(this.map){var I=o.defaultFieldValue(this.keyType);if(r=o.defaultFieldValue(this.type),n=t.readVarint32(),t.remaining()<n)throw Error("Illegal number of bytes for "+this.toString(!0)+": "+n+" required but got only "+t.remaining());var s=t.clone();for(s.limit=s.offset+n,t.offset+=n;s.remaining()>0;){var f=s.readVarint32();e=7&f;var a=f>>>3;if(1===a)I=this.keyElement.decode(s,e,a);else{if(2!==a)throw Error("Unexpected tag in map field key/value submessage");r=this.element.decode(s,e,a)}}return[I,r]}return this.element.decode(t,e,this.id)},t.Message.Field=B;var E=function(A,e,t,i,r,n,g){B.call(this,A,e,t,null,i,r,n,g),this.extension};E.prototype=Object.create(B.prototype),t.Message.ExtensionField=E,t.Message.OneOf=function(A,e,t){i.call(this,A,e,t),this.fields=[]};var u=function(A,e,t,i,r){n.call(this,A,e,t,i,r),this.className="Enum",this.object=null};u.getName=function(A,e){for(var t,i=Object.keys(A),r=0;r<i.length;++r)if(A[t=i[r]]===e)return t;return null},(u.prototype=Object.create(n.prototype)).build=function(e){if(this.object&&!e)return this.object;for(var t=new A.Builder.Enum,i=this.getChildren(u.Value),r=0,n=i.length;r<n;++r)t[i[r].name]=i[r].id;return Object.defineProperty&&Object.defineProperty(t,"$options",{value:this.buildOpt(),enumerable:!1}),this.object=t},t.Enum=u;var Q=function(A,e,t,r){i.call(this,A,e,t),this.className="Enum.Value",this.id=r};Q.prototype=Object.create(i.prototype),t.Enum.Value=Q;var c=function(A,e,t,r){i.call(this,A,e,t),this.field=r};c.prototype=Object.create(i.prototype),t.Extension=c;var l=function(A,e,t,i){n.call(this,A,e,t,i),this.className="Service",this.clazz=null};(l.prototype=Object.create(n.prototype)).build=function(t){return this.clazz&&!t?this.clazz:this.clazz=function(A,t){for(var i=function(e){A.Builder.Service.call(this),this.rpcImpl=e||function(A,e,t){setTimeout(t.bind(this,Error("Not implemented, see: https://github.com/dcodeIO/ProtoBuf.js/wiki/Services")),0)}},r=i.prototype=Object.create(A.Builder.Service.prototype),n=t.getChildren(A.Reflect.Service.RPCMethod),g=0;g<n.length;g++)!function(A){r[A.name]=function(i,r){try{try{i=A.resolvedRequestType.clazz.decode(e.wrap(i))}catch(A){if(!(A instanceof TypeError))throw A}if(null===i||"object"!=typeof i)throw Error("Illegal arguments");i instanceof A.resolvedRequestType.clazz||(i=new A.resolvedRequestType.clazz(i)),this.rpcImpl(A.fqn(),i,(function(e,i){if(e)r(e);else{null===i&&(i="");try{i=A.resolvedResponseType.clazz.decode(i)}catch(A){}i&&i instanceof A.resolvedResponseType.clazz?r(null,i):r(Error("Illegal response type received in service method "+t.name+"#"+A.name))}}))}catch(A){setTimeout(r.bind(this,A),0)}},i[A.name]=function(e,t,r){new i(e)[A.name](t,r)},Object.defineProperty&&(Object.defineProperty(i[A.name],"$options",{value:A.buildOpt()}),Object.defineProperty(r[A.name],"$options",{value:i[A.name].$options}))}(n[g]);return Object.defineProperty&&(Object.defineProperty(i,"$options",{value:t.buildOpt()}),Object.defineProperty(r,"$options",{value:i.$options}),Object.defineProperty(i,"$type",{value:t}),Object.defineProperty(r,"$type",{value:t})),i}(A,this)},t.Service=l;var w=function(A,e,t,r){i.call(this,A,e,t),this.className="Service.Method",this.options=r||{}};(w.prototype=Object.create(i.prototype)).buildOpt=g.buildOpt,t.Service.Method=w;var y=function(A,e,t,i,r,n,g,o){w.call(this,A,e,t,o),this.className="Service.RPCMethod",this.requestName=i,this.responseName=r,this.requestStream=n,this.responseStream=g,this.resolvedRequestType=null,this.resolvedResponseType=null};return y.prototype=Object.create(w.prototype),t.Service.RPCMethod=y,t}(r),r.Builder=function(A,e,t){var i=function(A){this.ns=new t.Namespace(this,null,""),this.ptr=this.ns,this.resolved=!1,this.result=null,this.files={},this.importRoot=null,this.options=A||{}},r=i.prototype;return i.isMessage=function(A){return"string"==typeof A.name&&void 0===A.values&&void 0===A.rpc},i.isMessageField=function(A){return"string"==typeof A.rule&&"string"==typeof A.name&&"string"==typeof A.type&&void 0!==A.id},i.isEnum=function(A){return"string"==typeof A.name&&!(void 0===A.values||!Array.isArray(A.values)||0===A.values.length)},i.isService=function(A){return!("string"!=typeof A.name||"object"!=typeof A.rpc||!A.rpc)},i.isExtend=function(A){return"string"==typeof A.ref},r.reset=function(){return this.ptr=this.ns,this},r.define=function(A){if("string"!=typeof A||!e.TYPEREF.test(A))throw Error("illegal namespace: "+A);return A.split(".").forEach((function(A){var e=this.ptr.getChild(A);null===e&&this.ptr.addChild(e=new t.Namespace(this,this.ptr,A)),this.ptr=e}),this),this},r.create=function(e){if(!e)return this;if(Array.isArray(e)){if(0===e.length)return this;e=e.slice()}else e=[e];for(var r=[e];r.length>0;){if(e=r.pop(),!Array.isArray(e))throw Error("not a valid namespace: "+JSON.stringify(e));for(;e.length>0;){var n=e.shift();if(i.isMessage(n)){var g=new t.Message(this,this.ptr,n.name,n.options,n.isGroup,n.syntax),o={};n.oneofs&&Object.keys(n.oneofs).forEach((function(A){g.addChild(o[A]=new t.Message.OneOf(this,g,A))}),this),n.fields&&n.fields.forEach((function(A){if(null!==g.getChild(0|A.id))throw Error("duplicate or invalid field id in "+g.name+": "+A.id);if(A.options&&"object"!=typeof A.options)throw Error("illegal field options in "+g.name+"#"+A.name);var e=null;if("string"==typeof A.oneof&&!(e=o[A.oneof]))throw Error("illegal oneof in "+g.name+"#"+A.name+": "+A.oneof);A=new t.Message.Field(this,g,A.rule,A.keytype,A.type,A.name,A.id,A.options,e,n.syntax),e&&e.fields.push(A),g.addChild(A)}),this);var I=[];if(n.enums&&n.enums.forEach((function(A){I.push(A)})),n.messages&&n.messages.forEach((function(A){I.push(A)})),n.services&&n.services.forEach((function(A){I.push(A)})),n.extensions&&("number"==typeof n.extensions[0]?g.extensions=[n.extensions]:g.extensions=n.extensions),this.ptr.addChild(g),I.length>0){r.push(e),e=I,I=null,this.ptr=g,g=null;continue}I=null}else if(i.isEnum(n))g=new t.Enum(this,this.ptr,n.name,n.options,n.syntax),n.values.forEach((function(A){g.addChild(new t.Enum.Value(this,g,A.name,A.id))}),this),this.ptr.addChild(g);else if(i.isService(n))g=new t.Service(this,this.ptr,n.name,n.options),Object.keys(n.rpc).forEach((function(A){var e=n.rpc[A];g.addChild(new t.Service.RPCMethod(this,g,A,e.request,e.response,!!e.request_stream,!!e.response_stream,e.options))}),this),this.ptr.addChild(g);else{if(!i.isExtend(n))throw Error("not a valid definition: "+JSON.stringify(n));if(g=this.ptr.resolve(n.ref,!0))n.fields.forEach((function(e){if(null!==g.getChild(0|e.id))throw Error("duplicate extended field id in "+g.name+": "+e.id);if(g.extensions){var i=!1;if(g.extensions.forEach((function(A){e.id>=A[0]&&e.id<=A[1]&&(i=!0)})),!i)throw Error("illegal extended field id in "+g.name+": "+e.id+" (not within valid ranges)")}var r=e.name;this.options.convertFieldsToCamelCase&&(r=A.Util.toCamelCase(r));var n=new t.Message.ExtensionField(this,g,e.rule,e.type,this.ptr.fqn()+"."+r,e.id,e.options),o=new t.Extension(this,this.ptr,e.name,n);n.extension=o,this.ptr.addChild(o),g.addChild(n)}),this);else if(!/\.?google\.protobuf\./.test(n.ref))throw Error("extended message "+n.ref+" is not defined")}n=null,g=null}e=null,this.ptr=this.ptr.parent}return this.resolved=!1,this.result=null,this},r.import=function(e,t){var i="/";if("string"==typeof t){if(A.Util.IS_NODE&&(t=require("path").resolve(t)),!0===this.files[t])return this.reset();this.files[t]=!0}else if("object"==typeof t){var r=t.root;A.Util.IS_NODE&&(r=require("path").resolve(r)),(r.indexOf("\\")>=0||t.file.indexOf("\\")>=0)&&(i="\\");var n=r+i+t.file;if(!0===this.files[n])return this.reset();this.files[n]=!0}if(e.imports&&e.imports.length>0){var g,o=!1;"object"==typeof t?(this.importRoot=t.root,o=!0,g=this.importRoot,t=t.file,(g.indexOf("\\")>=0||t.indexOf("\\")>=0)&&(i="\\")):"string"==typeof t?this.importRoot?g=this.importRoot:t.indexOf("/")>=0?""===(g=t.replace(/\/[^\/]*$/,""))&&(g="/"):t.indexOf("\\")>=0?(g=t.replace(/\\[^\\]*$/,""),i="\\"):g=".":g=null;for(var I=0;I<e.imports.length;I++)if("string"==typeof e.imports[I]){if(!g)throw Error("cannot determine import root");var s=e.imports[I];if("google/protobuf/descriptor.proto"===s)continue;if(s=g+i+s,!0===this.files[s])continue;/\.proto$/i.test(s)&&!A.DotProto&&(s=s.replace(/\.proto$/,".json"));var f=A.Util.fetch(s);if(null===f)throw Error("failed to import '"+s+"' in '"+t+"': file not found");/\.json$/i.test(s)?this.import(JSON.parse(f+""),s):this.import(A.DotProto.Parser.parse(f),s)}else t?/\.(\w+)$/.test(t)?this.import(e.imports[I],t.replace(/^(.+)\.(\w+)$/,(function(A,e,t){return e+"_import"+I+"."+t}))):this.import(e.imports[I],t+"_import"+I):this.import(e.imports[I]);o&&(this.importRoot=null)}e.package&&this.define(e.package),e.syntax&&function A(e){e.messages&&e.messages.forEach((function(t){t.syntax=e.syntax,A(t)})),e.enums&&e.enums.forEach((function(A){A.syntax=e.syntax}))}(e);var a=this.ptr;return e.options&&Object.keys(e.options).forEach((function(A){a.options[A]=e.options[A]})),e.messages&&(this.create(e.messages),this.ptr=a),e.enums&&(this.create(e.enums),this.ptr=a),e.services&&(this.create(e.services),this.ptr=a),e.extends&&this.create(e.extends),this.reset()},r.resolveAll=function(){var i;if(null==this.ptr||"object"==typeof this.ptr.type)return this;if(this.ptr instanceof t.Namespace)this.ptr.children.forEach((function(A){this.ptr=A,this.resolveAll()}),this);else if(this.ptr instanceof t.Message.Field){if(e.TYPE.test(this.ptr.type))this.ptr.type=A.TYPES[this.ptr.type];else{if(!e.TYPEREF.test(this.ptr.type))throw Error("illegal type reference in "+this.ptr.toString(!0)+": "+this.ptr.type);if(!(i=(this.ptr instanceof t.Message.ExtensionField?this.ptr.extension.parent:this.ptr.parent).resolve(this.ptr.type,!0)))throw Error("unresolvable type reference in "+this.ptr.toString(!0)+": "+this.ptr.type);if(this.ptr.resolvedType=i,i instanceof t.Enum){if(this.ptr.type=A.TYPES.enum,"proto3"===this.ptr.syntax&&"proto3"!==i.syntax)throw Error("proto3 message cannot reference proto2 enum")}else{if(!(i instanceof t.Message))throw Error("illegal type reference in "+this.ptr.toString(!0)+": "+this.ptr.type);this.ptr.type=i.isGroup?A.TYPES.group:A.TYPES.message}}if(this.ptr.map){if(!e.TYPE.test(this.ptr.keyType))throw Error("illegal key type for map field in "+this.ptr.toString(!0)+": "+this.ptr.keyType);this.ptr.keyType=A.TYPES[this.ptr.keyType]}}else if(this.ptr instanceof A.Reflect.Service.Method){if(!(this.ptr instanceof A.Reflect.Service.RPCMethod))throw Error("illegal service type in "+this.ptr.toString(!0));if(!((i=this.ptr.parent.resolve(this.ptr.requestName,!0))&&i instanceof A.Reflect.Message))throw Error("Illegal type reference in "+this.ptr.toString(!0)+": "+this.ptr.requestName);if(this.ptr.resolvedRequestType=i,!((i=this.ptr.parent.resolve(this.ptr.responseName,!0))&&i instanceof A.Reflect.Message))throw Error("Illegal type reference in "+this.ptr.toString(!0)+": "+this.ptr.responseName);this.ptr.resolvedResponseType=i}else if(!(this.ptr instanceof A.Reflect.Message.OneOf||this.ptr instanceof A.Reflect.Extension||this.ptr instanceof A.Reflect.Enum.Value))throw Error("illegal object in namespace: "+typeof this.ptr+": "+this.ptr);return this.reset()},r.build=function(A){if(this.reset(),this.resolved||(this.resolveAll(),this.resolved=!0,this.result=null),null===this.result&&(this.result=this.ns.build()),!A)return this.result;for(var e="string"==typeof A?A.split("."):A,t=this.result,i=0;i<e.length;i++){if(!t[e[i]]){t=null;break}t=t[e[i]]}return t},r.lookup=function(A,e){return A?this.ns.resolve(A,e):this.ns},r.toString=function(){return"Builder"},i.Message=function(){},i.Enum=function(){},i.Service=function(){},i}(r,r.Lang,r.Reflect),r.Map=function(A,e){var t=function(A,t){if(!A.map)throw Error("field is not a map");if(this.field=A,this.keyElem=new e.Element(A.keyType,null,!0,A.syntax),this.valueElem=new e.Element(A.type,A.resolvedType,!1,A.syntax),this.map={},Object.defineProperty(this,"size",{get:function(){return Object.keys(this.map).length}}),t)for(var i=Object.keys(t),r=0;r<i.length;r++){var n=this.keyElem.valueFromString(i[r]),g=this.valueElem.verifyValue(t[i[r]]);this.map[this.keyElem.valueToString(n)]={key:n,value:g}}},i=t.prototype;function r(A){var e=0;return{next:function(){return e<A.length?{done:!1,value:A[e++]}:{done:!0}}}}return i.clear=function(){this.map={}},i.delete=function(A){var e=this.keyElem.valueToString(this.keyElem.verifyValue(A)),t=e in this.map;return delete this.map[e],t},i.entries=function(){for(var A,e=[],t=Object.keys(this.map),i=0;i<t.length;i++)e.push([(A=this.map[t[i]]).key,A.value]);return r(e)},i.keys=function(){for(var A=[],e=Object.keys(this.map),t=0;t<e.length;t++)A.push(this.map[e[t]].key);return r(A)},i.values=function(){for(var A=[],e=Object.keys(this.map),t=0;t<e.length;t++)A.push(this.map[e[t]].value);return r(A)},i.forEach=function(A,e){for(var t,i=Object.keys(this.map),r=0;r<i.length;r++)A.call(e,(t=this.map[i[r]]).value,t.key,this)},i.set=function(A,e){var t=this.keyElem.verifyValue(A),i=this.valueElem.verifyValue(e);return this.map[this.keyElem.valueToString(t)]={key:t,value:i},this},i.get=function(A){var e=this.keyElem.valueToString(this.keyElem.verifyValue(A));if(e in this.map)return this.map[e].value},i.has=function(A){return this.keyElem.valueToString(this.keyElem.verifyValue(A))in this.map},t}(0,r.Reflect),r.loadProto=function(A,e,t){return("string"==typeof e||e&&"string"==typeof e.file&&"string"==typeof e.root)&&(t=e,e=void 0),r.loadJson(r.DotProto.Parser.parse(A),e,t)},r.protoFromString=r.loadProto,r.loadProtoFile=function(A,e,t){if(e&&"object"==typeof e?(t=e,e=null):e&&"function"==typeof e||(e=null),e)return r.Util.fetch("string"==typeof A?A:A.root+"/"+A.file,(function(i){if(null!==i)try{e(null,r.loadProto(i,t,A))}catch(A){e(A)}else e(Error("Failed to fetch file"))}));var i=r.Util.fetch("object"==typeof A?A.root+"/"+A.file:A);return null===i?null:r.loadProto(i,t,A)},r.protoFromFile=r.loadProtoFile,r.newBuilder=function(A){return void 0===(A=A||{}).convertFieldsToCamelCase&&(A.convertFieldsToCamelCase=r.convertFieldsToCamelCase),void 0===A.populateAccessors&&(A.populateAccessors=r.populateAccessors),new r.Builder(A)},r.loadJson=function(A,e,t){return("string"==typeof e||e&&"string"==typeof e.file&&"string"==typeof e.root)&&(t=e,e=null),e&&"object"==typeof e||(e=r.newBuilder()),"string"==typeof A&&(A=JSON.parse(A)),e.import(A,t),e.resolveAll(),e},r.loadJsonFile=function(A,e,t){if(e&&"object"==typeof e?(t=e,e=null):e&&"function"==typeof e||(e=null),e)return r.Util.fetch("string"==typeof A?A:A.root+"/"+A.file,(function(i){if(null!==i)try{e(null,r.loadJson(JSON.parse(i),t,A))}catch(A){e(A)}else e(Error("Failed to fetch file"))}));var i=r.Util.fetch("object"==typeof A?A.root+"/"+A.file:A);return null===i?null:r.loadJson(JSON.parse(i),t,A)},r})),function(){"use strict";function A(A){if(void 0===A||!(A instanceof ArrayBuffer)||32!=A.byteLength)throw new Error("Invalid private key")}function t(A){if(void 0===A||(33!=A.byteLength||5!=new Uint8Array(A)[0])&&32!=A.byteLength)throw new Error("Invalid public key");return 33==A.byteLength?A.slice(1):(__LOG__(4)`libsignal: WARNING: Expected pubkey of length 33, please report the ST and client that generated the pubkey`,A)}function i(A){var e=new Uint8Array(A.pubKey),t=new Uint8Array(33);return t.set(e,1),t[0]=5,{pubKey:t.buffer,privKey:A.privKey}}function r(e){return{createKeyPair:function(t){A(t);var r=e.keyPair(t);return r instanceof Promise?r.then(i):i(r)},ECDHE:function(i,r){if(i=t(i),A(r),void 0===i||32!=i.byteLength)throw new Error("Invalid public key");return e.sharedSecret(i,r)},Ed25519Sign:function(t,i){if(A(t),void 0===i)throw new Error("Invalid message");return e.sign(t,i)},Ed25519Verify:function(A,i,r){if(void 0===(A=t(A))||32!=A.byteLength)throw new Error("Invalid public key");if(void 0===i)throw new Error("Invalid message");if(void 0===r||64!=r.byteLength)throw new Error("Invalid signature");return e.verify(A,i,r)}}}function n(A){return{generateKeyPair:function(){var t=e.crypto.getRandomBytes(32);return A.createKeyPair(t)},createKeyPair:function(e){return A.createKeyPair(e)},calculateAgreement:function(e,t){return A.ECDHE(e,t)},verifySignature:function(e,t,i){return A.Ed25519Verify(e,t,i)},calculateSignature:function(e,t){return A.Ed25519Sign(e,t)}}}e.Curve=r(e.curve25519),e.Curve.async=r(e.curve25519_async),libsignal.Curve=n(e.Curve),libsignal.Curve.async=n(e.Curve.async)}(),e=e||{},function(){"use strict";var A=window.crypto;if(!A||!A.subtle||"function"!=typeof A.getRandomValues)throw new Error("WebCrypto not found");e.crypto={getRandomBytes:function(e){var t=new Uint8Array(e);return A.getRandomValues(t),t.buffer},getRandomValues:function(e){return A.getRandomValues(e)},encrypt:function(e,t,i){return A.subtle.importKey("raw",e,{name:"AES-CBC"},!1,["encrypt"]).then((function(e){return A.subtle.encrypt({name:"AES-CBC",iv:new Uint8Array(i)},e,t)}))},decrypt:function(e,t,i){return A.subtle.importKey("raw",e,{name:"AES-CBC"},!1,["decrypt"]).then((function(e){return A.subtle.decrypt({name:"AES-CBC",iv:new Uint8Array(i)},e,t)}))},sign:function(e,t){return A.subtle.importKey("raw",e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]).then((function(e){return A.subtle.sign({name:"HMAC",hash:"SHA-256"},e,t)}))},hash:function(e){return A.subtle.digest({name:"SHA-512"},e)},HKDF:function(A,t,i){return e.crypto.sign(t,A).then((function(A){var t=new ArrayBuffer(i.byteLength+1+32),r=new Uint8Array(t);return r.set(new Uint8Array(i),32),r[r.length-1]=1,e.crypto.sign(A,t.slice(32)).then((function(i){return r.set(new Uint8Array(i)),r[r.length-1]=2,e.crypto.sign(A,t).then((function(n){return r.set(new Uint8Array(n)),r[r.length-1]=3,e.crypto.sign(A,t).then((function(A){return[i,n,A]}))}))}))}))},createKeyPair:function(A){return void 0===A&&(A=e.crypto.getRandomBytes(32)),e.Curve.async.createKeyPair(A)},ECDHE:function(A,t){return e.Curve.async.ECDHE(A,t)},Ed25519Sign:function(A,t){return e.Curve.async.Ed25519Sign(A,t)},Ed25519Verify:function(A,t,i){return e.Curve.async.Ed25519Verify(A,t,i)}},e.HKDF=function(A,t,i){if(32!=t.byteLength)throw new Error("Got salt of incorrect length");return e.crypto.HKDF(A,t,EA.toArrayBuffer(i))},e.verifyMAC=function(A,t,i,r){return e.crypto.sign(t,A).then((function(A){if(i.byteLength!=r||A.byteLength<r)throw new Error("Bad MAC length");for(var e=new Uint8Array(A),t=new Uint8Array(i),n=0,g=0;g<i.byteLength;++g)n|=e[g]^t[g];if(0!==n)throw new Error("Bad MAC")}))},libsignal.HKDF={deriveSecrets:function(A,t,i){return e.HKDF(A,t,i)}},libsignal.crypto={encrypt:function(A,t,i){return e.crypto.encrypt(A,t,i)},decrypt:function(A,t,i){return e.crypto.decrypt(A,t,i)},calculateMAC:function(A,t){return e.crypto.sign(A,t)},verifyMAC:function(A,t,i,r){return e.verifyMAC(A,t,i,r)},getRandomBytes:function(A){return e.crypto.getRandomBytes(A)}}}();var EA=function(){"use strict";var A=(new ArrayBuffer).__proto__;return{toString:function(A){return"string"==typeof A?A:new dcodeIO.ByteBuffer.wrap(A).toString("binary")},toArrayBuffer:function(e){if(void 0!==e){if(e===Object(e)&&e.__proto__==A)return e;if("string"!=typeof e)throw new Error("Tried to convert a non-string of type "+typeof e+" to an array buffer");return new dcodeIO.ByteBuffer.wrap(e,"binary").toArrayBuffer()}},isEqual:function(A,e){if(void 0===A||void 0===e)return!1;A=EA.toString(A),e=EA.toString(e);var t=Math.max(A.length,e.length);if(t<5)throw new Error("a/b compare too short");return A.substring(0,Math.min(t,A.length))==e.substring(0,Math.min(t,e.length))}}}();function uA(A){return"number"==typeof A&&A%1==0&&A>=0}var QA={generateIdentityKeyPair:function(){return e.crypto.createKeyPair()},generateSenderKey:()=>e.crypto.getRandomBytes(32),generateSenderKeyId(){const A=e.crypto.getRandomValues(new Int32Array(1))[0];return A>=0?A:1+~A},generateRegistrationId:function(){return 16383&new Uint16Array(e.crypto.getRandomBytes(2))[0]},generateSignedPreKey:function(A,t){if(!(A.privKey instanceof ArrayBuffer&&32==A.privKey.byteLength&&A.pubKey instanceof ArrayBuffer&&33==A.pubKey.byteLength))throw new TypeError("Invalid argument for identityKeyPair");if(!uA(t))throw new TypeError("Invalid argument for signedKeyId: "+t);return e.crypto.createKeyPair().then((function(i){return e.crypto.Ed25519Sign(A.privKey,i.pubKey).then((function(A){return{keyId:t,keyPair:i,signature:A}}))}))},generatePreKey:function(A){if(!uA(A))throw new TypeError("Invalid argument for keyId: "+A);return e.crypto.createKeyPair().then((function(e){return{keyId:A,keyPair:e}}))}};function cA(A,e){this.name=A,this.deviceId=e}function lA(A,e){this.remoteAddress=e,this.storage=A}function wA(A,e){this.remoteAddress=e,this.storage=A}function yA(A,e,t){this.remoteAddress=e,this.groupId=t,this.storage=A}function dA(A,e,t){this.remoteAddress=t,this.groupId=e,this.storage=A}function pA(A,e){this.remoteAddress=e,this.storage=A}libsignal.KeyHelper=QA,(e=e||{}).protoText={"protos/WhisperTextProtocol.proto":'package textsecure;\noption java_package = "org.whispersystems.libsignal.protocol";\noption java_outer_classname = "WhisperProtos";\nmessage WhisperMessage {\n optional bytes ephemeralKey = 1;\n optional uint32 counter = 2;\n optional uint32 previousCounter = 3;\n optional bytes ciphertext = 4; // PushMessageContent\n}\nmessage PreKeyWhisperMessage {\n optional uint32 registrationId = 5;\n optional uint32 preKeyId = 1;\n optional uint32 signedPreKeyId = 6;\n optional bytes baseKey = 2;\n optional bytes identityKey = 3;\n optional bytes message = 4; // WhisperMessage\n}\nmessage KeyExchangeMessage {\n optional uint32 id = 1;\n optional bytes baseKey = 2;\n optional bytes ephemeralKey = 3;\n optional bytes identityKey = 4;\n optional bytes baseKeySignature = 5;\n}\n// https://github.com/signalapp/libsignal-protocol-java/blob/master/protobuf/WhisperTextProtocol.proto#L30\nmessage SenderKeyMessage {\n optional uint32 id = 1;\n optional uint32 iteration = 2;\n optional bytes ciphertext = 3;\n}\n// https://github.com/signalapp/libsignal-protocol-java/blob/master/protobuf/WhisperTextProtocol.proto#L36\nmessage SenderKeyDistributionMessage {\n optional uint32 id = 1;\n optional uint32 iteration = 2;\n optional bytes chainKey = 3;\n optional bytes signingKey = 4;\n}\n'},(e=e||{}).protobuf=function(){"use strict";var A=("WhisperTextProtocol.proto",dcodeIO.ProtoBuf.loadProto(e.protoText["protos/WhisperTextProtocol.proto"]).build("textsecure"));return{WhisperMessage:A.WhisperMessage,PreKeyWhisperMessage:A.PreKeyWhisperMessage,SenderKeyMessage:A.SenderKeyMessage,SenderKeyDistributionMessage:A.SenderKeyDistributionMessage}}(),libsignal.Protobuf={PreKeyWhisperMessage:e.protobuf.PreKeyWhisperMessage},(e=e||{}).BaseKeyType={OURS:1,THEIRS:2},e.ChainType={SENDING:1,RECEIVING:2},e.SessionRecord=function(){"use strict";var A=[{version:"v1",migrate:function(A){var e,t=A.sessions;if(A.registrationId)for(e in t)t[e].registrationId||(t[e].registrationId=A.registrationId);else for(e in t)-1===t[e].indexInfo.closed&&__LOG__(2)`libsignal: V1 session storage migration error: registrationId`}}],t=function(){this.sessions={},this.version="v1"};return t.initRecordFromData=function(e){"v1"!==e.version&&function(e){for(var t=void 0===e.version,i=0;i<A.length;++i)t?A[i].migrate(e):A[i].version===e.version&&(t=!0);if(!t)throw new Error("Error migrating SessionRecord")}(e);var i=new t;if(i.sessions=e.sessions,void 0===i.sessions||null===i.sessions||"object"!=typeof i.sessions||Array.isArray(i.sessions))throw new Error("Error deserializing SessionRecord");return i},t.prototype={prepareRecord:function(){return{sessions:this.sessions,version:this.version}},haveOpenSession:function(){var A=this.getOpenSession();return!!A&&"number"==typeof A.registrationId},getSessionByBaseKey:function(A){var t=this.sessions[EA.toString(A)];if(!t||t.indexInfo.baseKeyType!==e.BaseKeyType.OURS)return t;__LOG__(2)`libsignal: Tried to lookup a session using our basekey`},getSessionByRemoteEphemeralKey:function(A){this.detectDuplicateOpenSessions();var e,t=this.sessions,i=EA.toString(A);for(var r in t)if(-1==t[r].indexInfo.closed&&(e=t[r]),void 0!==t[r][i])return t[r];if(void 0!==e)return e},getOpenSession:function(){var A=this.sessions;if(void 0!==A)for(var e in this.detectDuplicateOpenSessions(),A)if(-1==A[e].indexInfo.closed)return A[e]},detectDuplicateOpenSessions:function(){var A,e=this.sessions;for(var t in e)if(-1==e[t].indexInfo.closed){if(void 0!==A)throw new Error("Datastore inconsistensy: multiple open sessions");A=e[t]}},updateSessionState:function(A){var e=this.sessions;this.removeOldChains(A),e[EA.toString(A.indexInfo.baseKey)]=A,this.removeOldSessions()},getSessions:function(){var A,e=[];for(var t in this.sessions)-1===this.sessions[t].indexInfo.closed?A=this.sessions[t]:e.push(this.sessions[t]);return e=e.sort((function(A,e){return A.indexInfo.closed-e.indexInfo.closed})),A&&e.push(A),e},archiveCurrentState:function(){var A=this.getOpenSession();void 0!==A&&(__LOG__(2)`libsignal: closing session`,A.indexInfo.closed=Date.now(),this.updateSessionState(A))},promoteState:function(A){__LOG__(2)`libsignal: promoting session`,A.indexInfo.closed=-1},removeOldChains:function(A){for(;A.oldRatchetList.length>10;){for(var e=0,t=A.oldRatchetList[0],i=0;i<A.oldRatchetList.length;i++)A.oldRatchetList[i].added<t.added&&(t=A.oldRatchetList[i],e=i);__LOG__(2)`libsignal: Deleting chain closed`,delete A[EA.toString(t.ephemeralKey)],A.oldRatchetList.splice(e,1)}},removeOldSessions:function(){for(var A,e,t=this.sessions;Object.keys(t).length>40;){for(var i in t){var r=t[i];r.indexInfo.closed>-1&&(!e||r.indexInfo.closed<e.indexInfo.closed)&&(A=i,e=r)}__LOG__(2)`libsignal: Deleting session closed at`,delete t[EA.toString(A)]}},deleteAllSessions:function(){this.sessions={}}},t}(),cA.prototype={getName:function(){return this.name},getDeviceId:function(){return this.deviceId},toString:function(){return this.name+"."+this.deviceId},equals:function(A){return A instanceof cA&&A.name===this.name&&A.deviceId===this.deviceId}},libsignal.SignalProtocolAddress=function(A,e){var t=new cA(A,e);["getName","getDeviceId","toString","equals"].forEach(function(A){this[A]=t[A].bind(t)}.bind(this))},libsignal.SignalProtocolAddress.fromString=function(A){if("string"!=typeof A||!A.match(/.*\.\d+/))throw new Error("Invalid SignalProtocolAddress string");var e=A.split(".");return new libsignal.SignalProtocolAddress(e[0],parseInt(e[1]))},lA.prototype={processPreKey:function(A){return e.SessionLock.queueJobForNumber(this.remoteAddress.toString(),function(){return this.storage.isTrustedIdentity(this.remoteAddress.toString(),A.identityKey,this.storage.Direction.SENDING).then((function(t){if(!t)throw new Error("Identity key changed");return e.crypto.Ed25519Verify(A.identityKey,A.signedPreKey.publicKey,A.signedPreKey.signature)})).then((function(){return e.crypto.createKeyPair()})).then(function(e){var t;return A.preKey&&(t=A.preKey.publicKey),this.initSession(!0,e,void 0,A.identityKey,t,A.signedPreKey.publicKey,A.registrationId).then((function(t){return t.pendingPreKey={signedKeyId:A.signedPreKey.keyId,baseKey:e.pubKey},A.preKey&&(t.pendingPreKey.preKeyId=A.preKey.keyId),t}))}.bind(this)).then(function(A){var t=this.remoteAddress.toString();return this.storage.loadSession(t).then(function(i){var r;const n=(r=void 0!==i?e.SessionRecord.initRecordFromData(i):new e.SessionRecord).getOpenSession();return r.archiveCurrentState(),n&&A&&!EA.isEqual(n.indexInfo.remoteIdentityKey,A.indexInfo.remoteIdentityKey)&&(__LOG__(2)`libsignal: processPreKey: deleting all sessions because identity has changed`,r.deleteAllSessions()),r.updateSessionState(A),Promise.all([this.storage.storeSession(t,r.prepareRecord()),this.storage.saveIdentity(this.remoteAddress.toString(),A.indexInfo.remoteIdentityKey)])}.bind(this))}.bind(this))}.bind(this))},processV3:function(A,e){var t,i,r;return this.storage.isTrustedIdentity(this.remoteAddress.toString(),e.identityKey.toArrayBuffer(),this.storage.Direction.RECEIVING).then(function(A){if(!A){var r=new Error("Unknown identity key");throw r.identityKey=e.identityKey.toArrayBuffer(),r}return Promise.all([this.storage.loadPreKey(e.preKeyId),this.storage.loadSignedPreKey(e.signedPreKeyId)]).then((function(A){t=A[0],i=A[1]}))}.bind(this)).then(function(){if(!(r=A.getSessionByBaseKey(e.baseKey))){if(r=A.getOpenSession(),void 0===i){if(void 0!==r&&void 0!==r.currentRatchet)return;throw new Error("Missing Signed PreKey for PreKeyWhisperMessage")}return void 0!==r&&A.archiveCurrentState(),e.preKeyId&&!t&&__LOG__(2)`libsignal: Invalid prekey id`,this.initSession(!1,t,i,e.identityKey.toArrayBuffer(),e.baseKey.toArrayBuffer(),void 0,e.registrationId).then(function(t){return r&&t&&!EA.isEqual(r.indexInfo.remoteIdentityKey,t.indexInfo.remoteIdentityKey)&&(__LOG__(2)`libsignal: deleting all sessions because identity has changed`,A.deleteAllSessions()),A.updateSessionState(t),this.storage.saveIdentity(this.remoteAddress.toString(),e.identityKey.toArrayBuffer()).then((function(){return e.preKeyId}))}.bind(this))}}.bind(this))},initSession:function(A,t,i,r,n,g,o){return this.storage.getIdentityKeyPair().then(function(I){if(A){if(void 0!==i)throw new Error("Invalid call to initSession");i=t}else{if(void 0!==g)throw new Error("Invalid call to initSession");g=n}var s;s=void 0===t||void 0===n?new Uint8Array(128):new Uint8Array(160);for(var f=0;f<32;f++)s[f]=255;return Promise.all([e.crypto.ECDHE(g,I.privKey),e.crypto.ECDHE(r,i.privKey),e.crypto.ECDHE(g,i.privKey)]).then((function(i){if(A?(s.set(new Uint8Array(i[0]),32),s.set(new Uint8Array(i[1]),64)):(s.set(new Uint8Array(i[0]),64),s.set(new Uint8Array(i[1]),32)),s.set(new Uint8Array(i[2]),96),void 0!==t&&void 0!==n)return e.crypto.ECDHE(n,t.privKey).then((function(A){s.set(new Uint8Array(A),128)}))})).then((function(){return e.HKDF(s.buffer,new ArrayBuffer(32),"WhisperText")})).then(function(I){var s={registrationId:o,currentRatchet:{rootKey:I[0],lastRemoteEphemeralKey:g,previousCounter:0},indexInfo:{remoteIdentityKey:r,closed:-1},oldRatchetList:[]};return A?(s.indexInfo.baseKey=t.pubKey,s.indexInfo.baseKeyType=e.BaseKeyType.OURS,e.crypto.createKeyPair().then(function(A){return s.currentRatchet.ephemeralKeyPair=A,this.calculateSendingRatchet(s,g).then((function(){return s}))}.bind(this))):(s.indexInfo.baseKey=n,s.indexInfo.baseKeyType=e.BaseKeyType.THEIRS,s.currentRatchet.ephemeralKeyPair=i,s)}.bind(this))}.bind(this))},calculateSendingRatchet:function(A,t){var i=A.currentRatchet;return e.crypto.ECDHE(t,EA.toArrayBuffer(i.ephemeralKeyPair.privKey)).then((function(A){return e.HKDF(A,EA.toArrayBuffer(i.rootKey),"WhisperRatchet")})).then((function(t){A[EA.toString(i.ephemeralKeyPair.pubKey)]={messageKeys:{},chainKey:{counter:-1,key:t[1]},chainType:e.ChainType.SENDING},i.rootKey=t[0]}))}},libsignal.SessionBuilder=function(A,e){var t=new lA(A,e);this.processPreKey=t.processPreKey.bind(t),this.processV3=t.processV3.bind(t)},wA.prototype={getRecord:function(A){return this.storage.loadSession(A).then((function(A){if(void 0!==A)return e.SessionRecord.initRecordFromData(A)}))},encrypt:function(A,t){return A=dcodeIO.ByteBuffer.wrap(A,t).toArrayBuffer(),e.SessionLock.queueJobForNumber(this.remoteAddress.toString(),function(){if(!(A instanceof ArrayBuffer))throw new Error("Expected buffer to be an ArrayBuffer");var t,i,r,n,g,o=this.remoteAddress.toString(),I=new e.protobuf.WhisperMessage;return Promise.all([this.storage.getIdentityKeyPair(),this.storage.getLocalRegistrationId(),this.getRecord(o)]).then(function(A){if(t=A[0],i=A[1],!(r=A[2]))throw new Error("No record for "+o);if(!(n=r.getOpenSession()))throw new Error("No session to encrypt message for "+o);if(I.ephemeralKey=EA.toArrayBuffer(n.currentRatchet.ephemeralKeyPair.pubKey),(g=n[EA.toString(I.ephemeralKey)]).chainType===e.ChainType.RECEIVING)throw new Error("Tried to encrypt on a receiving chain");return this.fillMessageKeys(g,g.chainKey.counter+1)}.bind(this)).then((function(){return e.HKDF(EA.toArrayBuffer(g.messageKeys[g.chainKey.counter]),new ArrayBuffer(32),"WhisperMessageKeys")})).then(function(i){return delete g.messageKeys[g.chainKey.counter],I.counter=g.chainKey.counter,I.previousCounter=n.currentRatchet.previousCounter,e.crypto.encrypt(i[0],A,i[2].slice(0,16)).then(function(A){I.ciphertext=A;var g=I.toArrayBuffer(),s=new Uint8Array(g.byteLength+66+1);return s.set(new Uint8Array(EA.toArrayBuffer(t.pubKey))),s.set(new Uint8Array(EA.toArrayBuffer(n.indexInfo.remoteIdentityKey)),33),s[66]=51,s.set(new Uint8Array(g),67),e.crypto.sign(i[1],s.buffer).then(function(A){var e=new Uint8Array(g.byteLength+9);return e[0]=51,e.set(new Uint8Array(g),1),e.set(new Uint8Array(A,0,8),g.byteLength+1),this.storage.isTrustedIdentity(this.remoteAddress.toString(),EA.toArrayBuffer(n.indexInfo.remoteIdentityKey),this.storage.Direction.SENDING).then((function(A){if(!A)throw new Error("Identity key changed")})).then(function(){return this.storage.saveIdentity(this.remoteAddress.toString(),n.indexInfo.remoteIdentityKey)}.bind(this)).then(function(){return r.updateSessionState(n),this.storage.storeSession(o,r.prepareRecord()).then((function(){return e}))}.bind(this))}.bind(this))}.bind(this))}.bind(this)).then((function(A){if(void 0!==n.pendingPreKey){var r=new e.protobuf.PreKeyWhisperMessage;return r.identityKey=EA.toArrayBuffer(t.pubKey),r.registrationId=i,r.baseKey=EA.toArrayBuffer(n.pendingPreKey.baseKey),n.pendingPreKey.preKeyId&&(r.preKeyId=n.pendingPreKey.preKeyId),r.signedPreKeyId=n.pendingPreKey.signedKeyId,r.message=A,{type:3,body:String.fromCharCode(51)+EA.toString(r.encode()),registrationId:n.registrationId}}return{type:1,body:EA.toString(A),registrationId:n.registrationId}}))}.bind(this))},decryptWithSessionList:function(A,e,t){if(0===e.length)return Promise.reject(t[0]);var i=e.pop();return this.doDecryptWhisperMessage(A,i).then((function(A){return{plaintext:A,session:i}})).catch(function(i){return"MessageCounterError"===i.name?Promise.reject(i):(t.push(i),this.decryptWithSessionList(A,e,t))}.bind(this))},decryptWhisperMessage:function(A,t){return A=dcodeIO.ByteBuffer.wrap(A,t).toArrayBuffer(),e.SessionLock.queueJobForNumber(this.remoteAddress.toString(),function(){var e=this.remoteAddress.toString();return this.getRecord(e).then(function(t){if(!t)throw new Error("No record for device "+e);return this.decryptWithSessionList(A,t.getSessions(),[]).then(function(A){return this.getRecord(e).then(function(t){return A.session.indexInfo.baseKey!==t.getOpenSession().indexInfo.baseKey&&(t.archiveCurrentState(),t.promoteState(A.session)),this.storage.isTrustedIdentity(this.remoteAddress.getName(),EA.toArrayBuffer(A.session.indexInfo.remoteIdentityKey),this.storage.Direction.RECEIVING).then((function(A){if(!A)throw new Error("Identity key changed")})).then(function(){return this.storage.saveIdentity(this.remoteAddress.toString(),A.session.indexInfo.remoteIdentityKey)}.bind(this)).then(function(){return t.updateSessionState(A.session),this.storage.storeSession(e,t.prepareRecord()).then((function(){return A.plaintext}))}.bind(this))}.bind(this))}.bind(this))}.bind(this))}.bind(this))},decryptPreKeyWhisperMessage:function(A,t){var i=(A=dcodeIO.ByteBuffer.wrap(A,t)).readUint8();if((15&i)>3||i>>4<3)throw new Error("Incompatible version number on PreKeyWhisperMessage");return e.SessionLock.queueJobForNumber(this.remoteAddress.toString(),function(){var t=this.remoteAddress.toString();return this.getRecord(t).then(function(i){var r=e.protobuf.PreKeyWhisperMessage.decode(A);if(!i){if(void 0===r.registrationId)throw new Error("No registrationId");i=new e.SessionRecord(r.registrationId)}return new lA(this.storage,this.remoteAddress).processV3(i,r).then(function(A){var e=i.getSessionByBaseKey(r.baseKey);return this.doDecryptWhisperMessage(r.message.toArrayBuffer(),e).then(function(A){i.updateSessionState(e);var r=i.getOpenSession();return e&&r&&!EA.isEqual(e.indexInfo.remoteIdentityKey,r.indexInfo.remoteIdentityKey)?(__LOG__(2)`libsignal: promote the old session and update identity`,i.archiveCurrentState(),i.promoteState(e),this.storage.saveIdentity(t,e.indexInfo.remoteIdentityKey).then((function(){return A}))):A}.bind(this)).then(function(e){return this.storage.storeSession(t,i.prepareRecord()).then(function(){if(null!=A)return this.storage.removePreKey(A)}.bind(this)).then((function(){return e}))}.bind(this))}.bind(this))}.bind(this))}.bind(this))},doDecryptWhisperMessage:function(A,t){if(!(A instanceof ArrayBuffer))throw new Error("Expected messageBytes to be an ArrayBuffer");var i=new Uint8Array(A)[0];if((15&i)>3||i>>4<3)throw new Error("Incompatible version number on WhisperMessage");var r=A.slice(1,A.byteLength-8),n=A.slice(A.byteLength-8,A.byteLength),g=e.protobuf.WhisperMessage.decode(r),o=g.ephemeralKey.toArrayBuffer();return void 0===t?Promise.reject(new Error("No session found to decrypt message from "+this.remoteAddress.toString())):(-1!=t.indexInfo.closed&&__LOG__(2)`libsignal: decrypting message for closed session`,this.maybeStepRatchet(t,o,g.previousCounter).then(function(){var A=t[EA.toString(g.ephemeralKey)];if(A.chainType===e.ChainType.SENDING)throw new Error("Tried to decrypt on a sending chain");return this.fillMessageKeys(A,g.counter).then((function(){var t=A.messageKeys[g.counter];if(void 0===t){var i=new Error("Message key not found. The counter was repeated or the key was not filled.");throw i.name="MessageCounterError",i}return delete A.messageKeys[g.counter],e.HKDF(EA.toArrayBuffer(t),new ArrayBuffer(32),"WhisperMessageKeys")}))}.bind(this)).then(function(A){return this.storage.getIdentityKeyPair().then(function(i){var g=new Uint8Array(r.byteLength+66+1);return g.set(new Uint8Array(EA.toArrayBuffer(t.indexInfo.remoteIdentityKey))),g.set(new Uint8Array(EA.toArrayBuffer(i.pubKey)),33),g[66]=51,g.set(new Uint8Array(r),67),e.verifyMAC(g.buffer,A[1],n,8)}.bind(this)).then((function(){return e.crypto.decrypt(A[0],g.ciphertext.toArrayBuffer(),A[2].slice(0,16))}))}.bind(this)).then((function(A){return delete t.pendingPreKey,A})))},fillMessageKeys:function(A,t){if(A.chainKey.counter>=t)return Promise.resolve();if(t-A.chainKey.counter>2e3)throw new Error("Over 2000 messages into the future!");if(void 0===A.chainKey.key)throw new Error("Got invalid request to extend chain after it was already closed");var i=EA.toArrayBuffer(A.chainKey.key),r=new Uint8Array(1);return r[0]=1,e.crypto.sign(i,r.buffer).then(function(n){return r[0]=2,e.crypto.sign(i,r.buffer).then(function(e){return A.messageKeys[A.chainKey.counter+1]=n,A.chainKey.key=e,A.chainKey.counter+=1,this.fillMessageKeys(A,t)}.bind(this))}.bind(this))},maybeStepRatchet:function(A,t,i){if(void 0!==A[EA.toString(t)])return Promise.resolve();__LOG__(2)`libsignal: New remote ephemeral key`;var r=A.currentRatchet;return Promise.resolve().then(function(){var e=A[EA.toString(r.lastRemoteEphemeralKey)];if(void 0!==e)return this.fillMessageKeys(e,i).then((function(){delete e.chainKey.key,A.oldRatchetList[A.oldRatchetList.length]={added:Date.now(),ephemeralKey:r.lastRemoteEphemeralKey}}))}.bind(this)).then(function(){return this.calculateRatchet(A,t,!1).then(function(){var i=EA.toString(r.ephemeralKeyPair.pubKey);return void 0!==A[i]&&(r.previousCounter=A[i].chainKey.counter,delete A[i]),e.crypto.createKeyPair().then(function(e){return r.ephemeralKeyPair=e,this.calculateRatchet(A,t,!0).then(function(){r.lastRemoteEphemeralKey=t}.bind(this))}.bind(this))}.bind(this))}.bind(this))},calculateRatchet:function(A,t,i){var r=A.currentRatchet;return e.crypto.ECDHE(t,EA.toArrayBuffer(r.ephemeralKeyPair.privKey)).then((function(n){return e.HKDF(n,EA.toArrayBuffer(r.rootKey),"WhisperRatchet").then((function(n){var g;g=i?r.ephemeralKeyPair.pubKey:t,A[EA.toString(g)]={messageKeys:{},chainKey:{counter:-1,key:n[1]},chainType:i?e.ChainType.SENDING:e.ChainType.RECEIVING},r.rootKey=n[0]}))}))},getRemoteRegistrationId:function(){return e.SessionLock.queueJobForNumber(this.remoteAddress.toString(),function(){return this.getRecord(this.remoteAddress.toString()).then((function(A){if(void 0!==A){var e=A.getOpenSession();return void 0===e?null:e.registrationId}}))}.bind(this))},hasOpenSession:function(){return e.SessionLock.queueJobForNumber(this.remoteAddress.toString(),function(){return this.getRecord(this.remoteAddress.toString()).then((function(A){return void 0!==A&&A.haveOpenSession()}))}.bind(this))},closeOpenSessionForDevice:function(){var A=this.remoteAddress.toString();return e.SessionLock.queueJobForNumber(A,function(){return this.getRecord(A).then(function(e){if(void 0!==e&&void 0!==e.getOpenSession())return e.archiveCurrentState(),this.storage.storeSession(A,e.prepareRecord())}.bind(this))}.bind(this))},deleteAllSessionsForDevice:function(){var A=this.remoteAddress.toString();return e.SessionLock.queueJobForNumber(A,function(){return this.getRecord(A).then(function(e){if(void 0!==e)return e.deleteAllSessions(),this.storage.storeSession(A,e.prepareRecord())}.bind(this))}.bind(this))}},libsignal.SessionCipher=function(A,e){var t=new wA(A,e);this.encrypt=t.encrypt.bind(t),this.decryptPreKeyWhisperMessage=t.decryptPreKeyWhisperMessage.bind(t),this.decryptWhisperMessage=t.decryptWhisperMessage.bind(t),this.getRemoteRegistrationId=t.getRemoteRegistrationId.bind(t),this.hasOpenSession=t.hasOpenSession.bind(t),this.closeOpenSessionForDevice=t.closeOpenSessionForDevice.bind(t),this.deleteAllSessionsForDevice=t.deleteAllSessionsForDevice.bind(t)},function(){"use strict";e.SessionLock={};var A={};e.SessionLock.queueJobForNumber=function(e,t){var i=A[e]||Promise.resolve(),r=A[e]=i.then(t,t),n=function(){A[e]===r&&delete A[e]};return r.then(n,n),r}}(),function(){function A(A,e){for(var t=((A[e]*Math.pow(2,32)+A[e+1]*Math.pow(2,24)+A[e+2]*Math.pow(2,16)+A[e+3]*Math.pow(2,8)+A[e+4])%1e5).toString();t.length<5;)t="0"+t;return t}function t(t,i,r){return function A(t,i,r){return t=dcodeIO.ByteBuffer.concat([t,i]).toArrayBuffer(),e.crypto.hash(t).then((function(e){return 0==--r?e:A(e,i,r)}))}(dcodeIO.ByteBuffer.concat([(0,new Uint16Array([0]).buffer),i,t]).toArrayBuffer(),i,r).then((function(e){return A(e=new Uint8Array(e),0)+A(e,5)+A(e,10)+A(e,15)+A(e,20)+A(e,25)}))}libsignal.FingerprintGenerator=function(A){this.iterations=A},libsignal.FingerprintGenerator.prototype={createFor:function(A,e,i,r){if(!("string"==typeof A&&"string"==typeof i&&e instanceof ArrayBuffer&&r instanceof ArrayBuffer))throw new Error("Invalid arguments");return Promise.all([t(A,e,this.iterations),t(i,r,this.iterations)]).then((function(A){return A.sort().join("")}))}}}(),(e=e||{}).SenderKeyRecord=function(){"use strict";var A=function(){this.sessions=[],this.version="v1"};return A.initRecordFromData=function(e){"v1"!==e.version&&function(A){throw new Error("Error migrating GroupSessionRecord")}();var t=new A;return t.sessions=e.sessions,t},A.prototype={prepareRecord:function(){return{sessions:this.sessions,version:this.version}},makeSenderKeyRecord:function(A,e,t,i){return{keyId:A,signatureKey:i,chainKey:{counter:e,key:t},messageKeys:[]}},addSenderKeyState:function(A,e,t,i){this.sessions.push(this.makeSenderKeyRecord(A,e,t,i)),this.sessions.length>5&&(this.sessions=this.sessions.slice(1))},getSenderKeyDistMsgData:function(){var A=this.sessions[this.sessions.length-1];return{id:A.keyId,iteration:A.chainKey.counter,chainKey:A.chainKey.key,signingKey:A.signatureKey.pubKey}},getSession:function(A){for(var e=0;e<this.sessions.length;e++)if(this.sessions[e].keyId===A)return this.sessions[e]},getOpenSession:function(){return this.sessions[this.sessions.length-1]},deleteAllSessions:function(){this.sessions={}}},A}(),yA.prototype={process:function(A,e,t){return e.addSenderKeyState(t.id,t.iteration,dcodeIO.ByteBuffer.wrap(t.chainKey).toArrayBuffer(),dcodeIO.ByteBuffer.wrap(t.signingKey).toArrayBuffer()),this.storage.storeSenderKey(A,e.prepareRecord())},create:function(A){var t=`${this.groupId}::${this.remoteAddress.toString()}`;0==A.sessions.length&&A.addSenderKeyState(libsignal.KeyHelper.generateSenderKeyId(),0,libsignal.KeyHelper.generateSenderKey(),libsignal.Curve.generateKeyPair());var i=A.getSenderKeyDistMsgData(),r=new e.protobuf.SenderKeyDistributionMessage;r.id=i.id,r.iteration=i.iteration,r.chainKey=EA.toArrayBuffer(i.chainKey),r.signingKey=EA.toArrayBuffer(i.signingKey);var n=r.encodeAB(),g=new Uint8Array(n.byteLength+1);return g[0]=51,g.set(new Uint8Array(n),1),this.storage.storeSenderKey(t,A.prepareRecord()).then((function(){return g}))}},libsignal.GroupSessionBuilder=function(A,e,t){var i=new yA(A,e,t);this.process=i.process.bind(i)},function(){"use strict";e.GroupSessionLock={};var A={};e.GroupSessionLock.queueJobForNumber=function(e,t){var i=A[e]||Promise.resolve(),r=A[e]=i.then(t,t),n=function(){A[e]===r&&delete A[e]};return r.then(n,n),r}}(),dA.prototype={getRecord:function(){return this.storage.loadSenderKey(this.getSenderKeyName()).then((function(A){if(void 0!==A)return e.SenderKeyRecord.initRecordFromData(A)}))},hkdkOutputToSymmetricMaterial(A,e){var t=new Uint8Array(32);return t.set(new Uint8Array(A.slice(16))),t.set(new Uint8Array(e.slice(0,16)),16),{key:t.buffer,iv:A.slice(0,16)}},getSenderKeyName:function(){return`${this.groupId}::${this.remoteAddress.toString()}`},encrypt:function(A){return A=dcodeIO.ByteBuffer.wrap(A).toArrayBuffer(),e.GroupSessionLock.queueJobForNumber(this.getSenderKeyName(),function(){return this.getRecord().then(function(t){if(void 0===t)throw new Error("No session senderKeyRecord");var i=t.getOpenSession();if(!i)throw new Error("No session to encrypt message for "+address);var r=new e.protobuf.SenderKeyMessage,n=0===i.chainKey.counter?0:i.chainKey.counter+1;return this.fillMessageKeys(i,n).then(function(){var A=i.messageKeys[n];return r.id=i.keyId,r.iteration=n,delete i.messageKeys[n],e.HKDF(EA.toArrayBuffer(A),new ArrayBuffer(32),"WhisperGroup")}.bind(this)).then(function(n){var g=this.hkdkOutputToSymmetricMaterial(n[0],n[1]);return e.crypto.encrypt(g.key,A,g.iv).then(function(A){r.ciphertext=A;var n=r.toArrayBuffer(),g=new Uint8Array(n.byteLength+1);g[0]=51,g.set(new Uint8Array(n),1);var o=EA.toArrayBuffer(i.signatureKey.privKey);return e.crypto.Ed25519Sign(o,g.buffer).then(function(A){var e=new Uint8Array(n.byteLength+65);return e[0]=51,e.set(new Uint8Array(n),1),e.set(new Uint8Array(A,0,64),n.byteLength+1),this.storage.storeSenderKey(this.getSenderKeyName(),t.prepareRecord()).then((function(){return e}))}.bind(this))}.bind(this))}.bind(this)).then(function(A){return EA.toString(A)}.bind(this))}.bind(this))}.bind(this))},decryptSenderKeyMessage:function(A,t){A=dcodeIO.ByteBuffer.wrap(A,t).toArrayBuffer();var i=new Uint8Array(A)[0];if((15&i)>3||i>>4<3)throw new Error("Incompatible version number on SenderKeyMessage");var r=A.slice(1,A.byteLength-64),n=A.slice(0,A.byteLength-64),g=A.slice(A.byteLength-64),o=e.protobuf.SenderKeyMessage.decode(r),I=o.id;return e.GroupSessionLock.queueJobForNumber(this.getSenderKeyName(),function(){return this.getRecord().then(function(A){if(void 0===A)return Promise.reject(new Error("No session found to decrypt message from "+this.remoteAddress.toString()));var t=A.getSession(I),i=EA.toArrayBuffer(t.signatureKey);return e.crypto.Ed25519Verify(new Uint8Array(i),new Uint8Array(n),new Uint8Array(g)).then(function(){return this.fillMessageKeys(t,o.iteration).then(function(){var A=t.messageKeys[o.iteration];if(void 0===A){var i=new Error("Message key not found. The counter was repeated or the key was not filled.");throw i.name="MessageCounterError",i}return delete t.messageKeys[o.iteration],e.HKDF(EA.toArrayBuffer(A),new ArrayBuffer(32),"WhisperGroup")}.bind(this)).then(function(A){var t=this.hkdkOutputToSymmetricMaterial(A[0],A[1]);return e.crypto.decrypt(t.key,o.ciphertext.toArrayBuffer(),t.iv)}.bind(this)).then(function(e){return this.storage.storeSenderKey(this.getSenderKeyName(),A.prepareRecord()).then((function(){return e}))}.bind(this))}.bind(this))}.bind(this))}.bind(this))},fillMessageKeys:function(A,t){if(A.chainKey.counter>t)return Promise.resolve();if(t-A.chainKey.counter>2e3)throw new Error("Over 2000 messages into the future!");if(void 0===A.chainKey.key)throw new Error("Got invalid request to extend chain after it was already closed");var i=EA.toArrayBuffer(A.chainKey.key),r=new Uint8Array(1);return r[0]=1,e.crypto.sign(i,r.buffer).then(function(n){return A.messageKeys[A.chainKey.counter]=n,r[0]=2,e.crypto.sign(i,r.buffer).then(function(e){return A.chainKey.key=e,A.chainKey.counter+=1,this.fillMessageKeys(A,t)}.bind(this))}.bind(this))},createSenderKeyDistributionMsg:function(){var A=new yA(this.storage,this.remoteAddress.toString(),this.groupId.toString());return this.getRecord().then(function(t){return t||(t=new e.SenderKeyRecord),A.create(t)}.bind(this))},decryptSenderKeyDistributionMessage:function(A){var t=(A=dcodeIO.ByteBuffer.wrap(A)).readUint8();if((15&t)>3||t>>4<3)throw new Error("Incompatible version number on PreKeyWhisperMessage");return this.remoteAddress.toString(),e.GroupSessionLock.queueJobForNumber(this.getSenderKeyName(),function(){return this.getRecord().then(function(t){t||(t=new e.SenderKeyRecord);var i=e.protobuf.SenderKeyDistributionMessage.decode(A);return new yA(this.storage,this.remoteAddress.toString(),this.groupId.toString()).process(this.getSenderKeyName(),t,i)}.bind(this))}.bind(this))}},libsignal.GroupCipher=function(A,e,t){var i=new dA(A,e,t);this.decryptSenderKeyDistributionMessage=i.decryptSenderKeyDistributionMessage.bind(i),this.createSenderKeyDistributionMsg=i.createSenderKeyDistributionMsg.bind(i),this.encrypt=i.encrypt.bind(i),this.fillMessageKeys=i.fillMessageKeys.bind(i),this.getSenderKeyName=i.getSenderKeyName.bind(i),this.decryptSenderKeyMessage=i.decryptSenderKeyMessage.bind(i),this.getRecord=i.getRecord.bind(i)},pA.prototype={getRecord:function(A){return this.storage.loadSession(A).then((function(A){if(void 0!==A)return e.SessionRecord.initRecordFromData(A)}))},getSessionBaseKey:function(){return e.SessionLock.queueJobForNumber(this.remoteAddress.toString(),function(){return this.getRecord(this.remoteAddress.toString()).then((function(A){if(void 0!==A){var e=A.getOpenSession();if(void 0!==e)return EA.toArrayBuffer(e.indexInfo.baseKey)}}))}.bind(this))}},libsignal.SessionInfo=function(A,e){var t=new pA(A,e);this.getSessionBaseKey=t.getSessionBaseKey.bind(t)}}(); |