window.EmbeddableChatbox=function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=160)}([function(e,t,n){"use strict";e.exports=n(163)},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t,n){var r=n(11),i=r.Buffer;function o(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=s),s.prototype=Object.create(i.prototype),o(i,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,n){"use strict";var r=n(16);Object.defineProperty(t,"__esModule",{value:!0}),t.logger=void 0;var i=r(n(269));const o=i.default.getLogger("matrix");t.logger=o,o.setLevel(i.default.levels.DEBUG)},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(87);function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)){var a=o?Object.getOwnPropertyDescriptor(e,s):null;a&&(a.get||a.set)?Object.defineProperty(n,s,a):n[s]=e[s]}return n.default=e,t&&t.set(e,n),n}},function(e,t,n){"use strict";var r=n(16);Object.defineProperty(t,"__esModule",{value:!0}),t.encodeParams=function(e){let t="";for(const n in e)e.hasOwnProperty(n)&&(t+="&"+encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.substring(1)},t.encodeUri=function(e,t){for(const n in t)t.hasOwnProperty(n)&&(e=e.replace(n,encodeURIComponent(t[n])));return e},t.map=function(e,t){const n=new Array(e.length);for(let r=0;r=0;r--)if(t(e[r],r,e))return e[r]}else for(r=0;r=0;r--)if(t(e[r],r,e))return i=e[r],e.splice(r,1),i}else for(r=0;r>>0;if("function"!=typeof e)throw new TypeError;const r=[],i=arguments.length>=2?arguments[1]:void 0;for(let o=0;o>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");arguments.length>1&&(n=t);const s=new Array(o);for(r=0;r>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");for(arguments.length>1&&(n=t),r=0;r{setTimeout(n,e,t)})},t.isNullOrUndefined=function(e){return null==e},t.defer=function(){let e,t;const n=new Promise((n,r)=>{e=n,t=r});return{resolve:e,reject:t,promise:n}},t.promiseMapSeries=async function(e,t){for(const n of await e)await t(await n)},t.promiseTry=function(e){return new Promise(t=>t(e()))};var i=r(n(270));const o=/[\u2000-\u200F\u202A-\u202F\u0300-\u036f\uFEFF\s]/g;function s(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}},function(e,t,n){e.exports=n(174)()},function(e,t,n){"use strict";var r,i="object"==typeof Reflect?Reflect:null,o=i&&"function"==typeof i.apply?i.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=i&&"function"==typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var c=10;function f(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){var i,o,s,a;if(f(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),s=o[t]),void 0===s)s=o[t]=n,++e._eventsCount;else if("function"==typeof s?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),(i=u(e))>0&&s.length>i&&!s.warned){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=s.length,a=c,console&&console.warn&&console.warn(a)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=d.bind(r);return i.listener=n,r.wrapFn=i,i}function p(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(s=t[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)o(c,this,t);else{var f=c.length,u=g(c,f);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){s=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return p(this,e,!0)},a.prototype.rawListeners=function(e){return p(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},a.prototype.listenerCount=m,a.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){"use strict";(function(e){ /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ var r=n(179),i=n(180),o=n(88);function s(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function p(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return q(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return I(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return R(this,t,n);case"base64":return S(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function y(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,i);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,i){var o,s=1,a=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,n/=2}function f(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){var u=-1;for(o=n;oa&&(n=a-c),o=n;o>=0;o--){for(var l=!0,d=0;di&&(r=i):r=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var s=0;s>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function S(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function I(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:f>223?3:f>191?2:1;if(i+l<=n)switch(l){case 1:f<128&&(u=f);break;case 2:128==(192&(o=e[i+1]))&&(c=(31&f)<<6|63&o)>127&&(u=c);break;case 3:o=e[i+1],s=e[i+2],128==(192&o)&&128==(192&s)&&(c=(15&f)<<12|(63&o)<<6|63&s)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:o=e[i+1],s=e[i+2],a=e[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(c=(15&f)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&c<1114112&&(u=c)}null===u?(u=65533,l=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=l}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,i){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(r>>>=0),s=(n>>>=0)-(t>>>=0),a=Math.min(o,s),f=this.slice(r,i),u=e.slice(t,n),l=0;li)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return _(this,e,t,n);case"utf8":case"utf-8":return v(this,e,t,n);case"ascii":return A(this,e,t,n);case"latin1":case"binary":return w(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function P(e,t,n,r,i,o){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function M(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function D(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function B(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function N(e,t,n,r,o){return o||B(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function j(e,t,n,r,o){return o||B(e,0,n,8),i.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},c.prototype.readUInt8=function(e,t){return t||C(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||C(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||C(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||C(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||C(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},c.prototype.readInt8=function(e,t){return t||C(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||C(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||C(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||C(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||C(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||C(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||C(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||C(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||C(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||P(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);P(this,e,t,n,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);P(this,e,t,n,i-1,-i)}var o=n-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||P(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return N(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return N(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(o<1e3||!c.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function q(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function K(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(6))},function(e,t,n){(function(e){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function o(e,t,n){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var s;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{s=n(226).Buffer}catch(e){}function a(e,t,n){for(var r=0,i=Math.min(e.length,n),o=t;o=49&&s<=54?s-49+10:s>=17&&s<=22?s-17+10:15&s}return r}function c(e,t,n,r){for(var i=0,o=Math.min(e.length,n),s=t;s=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&i++,16===t?this._parseHex(e,i):this._parseBase(e,t,i),"-"===e[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),t,n)},o.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},o.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)s=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[o]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=6)i=a(e,n,n+6),this.words[r]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,r++);n+6!==t&&(i=a(e,t,n+6),this.words[r]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var o=e.length-n,s=o%r,a=Math.min(o,o-s)+n,f=0,u=n;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=67108863&s,c=s/67108864|0;n.words[0]=a;for(var f=1;f>>26,l=67108863&c,d=Math.min(f,t.length-1),h=Math.max(0,f-e.length+1);h<=d;h++){var p=f-h|0;u+=(s=(i=0|e.words[p])*(o=0|t.words[h])+l)/67108864|0,l=67108863&s}n.words[f]=0|l,c=0|u}return 0!==c?n.words[f]=0|c:n.length--,n.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s>>24-i&16777215)||s!==this.length-1?f[6-c.length]+c+n:c+n,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var d=u[e],h=l[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?m+n:f[d-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==s),this.toArrayLike(s,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,f=new e(o),u=this.clone();if(c){for(a=0;!u.isZero();a++)s=u.andln(255),u.iushrn(8),f[a]=s;for(;a=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var o=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==o&&s>26,this.words[s]=67108863&t;if(0===o&&s>>13,h=0|s[1],p=8191&h,m=h>>>13,g=0|s[2],y=8191&g,b=g>>>13,_=0|s[3],v=8191&_,A=_>>>13,w=0|s[4],E=8191&w,k=w>>>13,S=0|s[5],I=8191&S,T=S>>>13,R=0|s[6],O=8191&R,x=R>>>13,C=0|s[7],P=8191&C,M=C>>>13,D=0|s[8],B=8191&D,N=D>>>13,j=0|s[9],U=8191&j,L=j>>>13,F=0|a[0],q=8191&F,K=F>>>13,z=0|a[1],G=8191&z,H=z>>>13,V=0|a[2],Q=8191&V,W=V>>>13,Y=0|a[3],X=8191&Y,J=Y>>>13,Z=0|a[4],$=8191&Z,ee=Z>>>13,te=0|a[5],ne=8191&te,re=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ce=8191&ae,fe=ae>>>13,ue=0|a[8],le=8191&ue,de=ue>>>13,he=0|a[9],pe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ge=(f+(r=Math.imul(l,q))|0)+((8191&(i=(i=Math.imul(l,K))+Math.imul(d,q)|0))<<13)|0;f=((o=Math.imul(d,K))+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(p,q),i=(i=Math.imul(p,K))+Math.imul(m,q)|0,o=Math.imul(m,K);var ye=(f+(r=r+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,H)|0)+Math.imul(d,G)|0))<<13)|0;f=((o=o+Math.imul(d,H)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(y,q),i=(i=Math.imul(y,K))+Math.imul(b,q)|0,o=Math.imul(b,K),r=r+Math.imul(p,G)|0,i=(i=i+Math.imul(p,H)|0)+Math.imul(m,G)|0,o=o+Math.imul(m,H)|0;var be=(f+(r=r+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,W)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(v,q),i=(i=Math.imul(v,K))+Math.imul(A,q)|0,o=Math.imul(A,K),r=r+Math.imul(y,G)|0,i=(i=i+Math.imul(y,H)|0)+Math.imul(b,G)|0,o=o+Math.imul(b,H)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,W)|0;var _e=(f+(r=r+Math.imul(l,X)|0)|0)+((8191&(i=(i=i+Math.imul(l,J)|0)+Math.imul(d,X)|0))<<13)|0;f=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(E,q),i=(i=Math.imul(E,K))+Math.imul(k,q)|0,o=Math.imul(k,K),r=r+Math.imul(v,G)|0,i=(i=i+Math.imul(v,H)|0)+Math.imul(A,G)|0,o=o+Math.imul(A,H)|0,r=r+Math.imul(y,Q)|0,i=(i=i+Math.imul(y,W)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,W)|0,r=r+Math.imul(p,X)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,J)|0;var ve=(f+(r=r+Math.imul(l,$)|0)|0)+((8191&(i=(i=i+Math.imul(l,ee)|0)+Math.imul(d,$)|0))<<13)|0;f=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(I,q),i=(i=Math.imul(I,K))+Math.imul(T,q)|0,o=Math.imul(T,K),r=r+Math.imul(E,G)|0,i=(i=i+Math.imul(E,H)|0)+Math.imul(k,G)|0,o=o+Math.imul(k,H)|0,r=r+Math.imul(v,Q)|0,i=(i=i+Math.imul(v,W)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,W)|0,r=r+Math.imul(y,X)|0,i=(i=i+Math.imul(y,J)|0)+Math.imul(b,X)|0,o=o+Math.imul(b,J)|0,r=r+Math.imul(p,$)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,ee)|0;var Ae=(f+(r=r+Math.imul(l,ne)|0)|0)+((8191&(i=(i=i+Math.imul(l,re)|0)+Math.imul(d,ne)|0))<<13)|0;f=((o=o+Math.imul(d,re)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(O,q),i=(i=Math.imul(O,K))+Math.imul(x,q)|0,o=Math.imul(x,K),r=r+Math.imul(I,G)|0,i=(i=i+Math.imul(I,H)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,H)|0,r=r+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(k,Q)|0,o=o+Math.imul(k,W)|0,r=r+Math.imul(v,X)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,J)|0,r=r+Math.imul(y,$)|0,i=(i=i+Math.imul(y,ee)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(m,ne)|0,o=o+Math.imul(m,re)|0;var we=(f+(r=r+Math.imul(l,oe)|0)|0)+((8191&(i=(i=i+Math.imul(l,se)|0)+Math.imul(d,oe)|0))<<13)|0;f=((o=o+Math.imul(d,se)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(P,q),i=(i=Math.imul(P,K))+Math.imul(M,q)|0,o=Math.imul(M,K),r=r+Math.imul(O,G)|0,i=(i=i+Math.imul(O,H)|0)+Math.imul(x,G)|0,o=o+Math.imul(x,H)|0,r=r+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,W)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,W)|0,r=r+Math.imul(E,X)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(k,X)|0,o=o+Math.imul(k,J)|0,r=r+Math.imul(v,$)|0,i=(i=i+Math.imul(v,ee)|0)+Math.imul(A,$)|0,o=o+Math.imul(A,ee)|0,r=r+Math.imul(y,ne)|0,i=(i=i+Math.imul(y,re)|0)+Math.imul(b,ne)|0,o=o+Math.imul(b,re)|0,r=r+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,se)|0;var Ee=(f+(r=r+Math.imul(l,ce)|0)|0)+((8191&(i=(i=i+Math.imul(l,fe)|0)+Math.imul(d,ce)|0))<<13)|0;f=((o=o+Math.imul(d,fe)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,q),i=(i=Math.imul(B,K))+Math.imul(N,q)|0,o=Math.imul(N,K),r=r+Math.imul(P,G)|0,i=(i=i+Math.imul(P,H)|0)+Math.imul(M,G)|0,o=o+Math.imul(M,H)|0,r=r+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,W)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,W)|0,r=r+Math.imul(I,X)|0,i=(i=i+Math.imul(I,J)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,J)|0,r=r+Math.imul(E,$)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(k,$)|0,o=o+Math.imul(k,ee)|0,r=r+Math.imul(v,ne)|0,i=(i=i+Math.imul(v,re)|0)+Math.imul(A,ne)|0,o=o+Math.imul(A,re)|0,r=r+Math.imul(y,oe)|0,i=(i=i+Math.imul(y,se)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,se)|0,r=r+Math.imul(p,ce)|0,i=(i=i+Math.imul(p,fe)|0)+Math.imul(m,ce)|0,o=o+Math.imul(m,fe)|0;var ke=(f+(r=r+Math.imul(l,le)|0)|0)+((8191&(i=(i=i+Math.imul(l,de)|0)+Math.imul(d,le)|0))<<13)|0;f=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(U,q),i=(i=Math.imul(U,K))+Math.imul(L,q)|0,o=Math.imul(L,K),r=r+Math.imul(B,G)|0,i=(i=i+Math.imul(B,H)|0)+Math.imul(N,G)|0,o=o+Math.imul(N,H)|0,r=r+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,W)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,W)|0,r=r+Math.imul(O,X)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(x,X)|0,o=o+Math.imul(x,J)|0,r=r+Math.imul(I,$)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(T,$)|0,o=o+Math.imul(T,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(k,ne)|0,o=o+Math.imul(k,re)|0,r=r+Math.imul(v,oe)|0,i=(i=i+Math.imul(v,se)|0)+Math.imul(A,oe)|0,o=o+Math.imul(A,se)|0,r=r+Math.imul(y,ce)|0,i=(i=i+Math.imul(y,fe)|0)+Math.imul(b,ce)|0,o=o+Math.imul(b,fe)|0,r=r+Math.imul(p,le)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(m,le)|0,o=o+Math.imul(m,de)|0;var Se=(f+(r=r+Math.imul(l,pe)|0)|0)+((8191&(i=(i=i+Math.imul(l,me)|0)+Math.imul(d,pe)|0))<<13)|0;f=((o=o+Math.imul(d,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(U,G),i=(i=Math.imul(U,H))+Math.imul(L,G)|0,o=Math.imul(L,H),r=r+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,W)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,W)|0,r=r+Math.imul(P,X)|0,i=(i=i+Math.imul(P,J)|0)+Math.imul(M,X)|0,o=o+Math.imul(M,J)|0,r=r+Math.imul(O,$)|0,i=(i=i+Math.imul(O,ee)|0)+Math.imul(x,$)|0,o=o+Math.imul(x,ee)|0,r=r+Math.imul(I,ne)|0,i=(i=i+Math.imul(I,re)|0)+Math.imul(T,ne)|0,o=o+Math.imul(T,re)|0,r=r+Math.imul(E,oe)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(k,oe)|0,o=o+Math.imul(k,se)|0,r=r+Math.imul(v,ce)|0,i=(i=i+Math.imul(v,fe)|0)+Math.imul(A,ce)|0,o=o+Math.imul(A,fe)|0,r=r+Math.imul(y,le)|0,i=(i=i+Math.imul(y,de)|0)+Math.imul(b,le)|0,o=o+Math.imul(b,de)|0;var Ie=(f+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;f=((o=o+Math.imul(m,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(U,Q),i=(i=Math.imul(U,W))+Math.imul(L,Q)|0,o=Math.imul(L,W),r=r+Math.imul(B,X)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(N,X)|0,o=o+Math.imul(N,J)|0,r=r+Math.imul(P,$)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,ee)|0,r=r+Math.imul(O,ne)|0,i=(i=i+Math.imul(O,re)|0)+Math.imul(x,ne)|0,o=o+Math.imul(x,re)|0,r=r+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,se)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,se)|0,r=r+Math.imul(E,ce)|0,i=(i=i+Math.imul(E,fe)|0)+Math.imul(k,ce)|0,o=o+Math.imul(k,fe)|0,r=r+Math.imul(v,le)|0,i=(i=i+Math.imul(v,de)|0)+Math.imul(A,le)|0,o=o+Math.imul(A,de)|0;var Te=(f+(r=r+Math.imul(y,pe)|0)|0)+((8191&(i=(i=i+Math.imul(y,me)|0)+Math.imul(b,pe)|0))<<13)|0;f=((o=o+Math.imul(b,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(U,X),i=(i=Math.imul(U,J))+Math.imul(L,X)|0,o=Math.imul(L,J),r=r+Math.imul(B,$)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(N,$)|0,o=o+Math.imul(N,ee)|0,r=r+Math.imul(P,ne)|0,i=(i=i+Math.imul(P,re)|0)+Math.imul(M,ne)|0,o=o+Math.imul(M,re)|0,r=r+Math.imul(O,oe)|0,i=(i=i+Math.imul(O,se)|0)+Math.imul(x,oe)|0,o=o+Math.imul(x,se)|0,r=r+Math.imul(I,ce)|0,i=(i=i+Math.imul(I,fe)|0)+Math.imul(T,ce)|0,o=o+Math.imul(T,fe)|0,r=r+Math.imul(E,le)|0,i=(i=i+Math.imul(E,de)|0)+Math.imul(k,le)|0,o=o+Math.imul(k,de)|0;var Re=(f+(r=r+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,me)|0)+Math.imul(A,pe)|0))<<13)|0;f=((o=o+Math.imul(A,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(U,$),i=(i=Math.imul(U,ee))+Math.imul(L,$)|0,o=Math.imul(L,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(N,ne)|0,o=o+Math.imul(N,re)|0,r=r+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,se)|0)+Math.imul(M,oe)|0,o=o+Math.imul(M,se)|0,r=r+Math.imul(O,ce)|0,i=(i=i+Math.imul(O,fe)|0)+Math.imul(x,ce)|0,o=o+Math.imul(x,fe)|0,r=r+Math.imul(I,le)|0,i=(i=i+Math.imul(I,de)|0)+Math.imul(T,le)|0,o=o+Math.imul(T,de)|0;var Oe=(f+(r=r+Math.imul(E,pe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(k,pe)|0))<<13)|0;f=((o=o+Math.imul(k,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(U,ne),i=(i=Math.imul(U,re))+Math.imul(L,ne)|0,o=Math.imul(L,re),r=r+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(N,oe)|0,o=o+Math.imul(N,se)|0,r=r+Math.imul(P,ce)|0,i=(i=i+Math.imul(P,fe)|0)+Math.imul(M,ce)|0,o=o+Math.imul(M,fe)|0,r=r+Math.imul(O,le)|0,i=(i=i+Math.imul(O,de)|0)+Math.imul(x,le)|0,o=o+Math.imul(x,de)|0;var xe=(f+(r=r+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,me)|0)+Math.imul(T,pe)|0))<<13)|0;f=((o=o+Math.imul(T,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(U,oe),i=(i=Math.imul(U,se))+Math.imul(L,oe)|0,o=Math.imul(L,se),r=r+Math.imul(B,ce)|0,i=(i=i+Math.imul(B,fe)|0)+Math.imul(N,ce)|0,o=o+Math.imul(N,fe)|0,r=r+Math.imul(P,le)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(M,le)|0,o=o+Math.imul(M,de)|0;var Ce=(f+(r=r+Math.imul(O,pe)|0)|0)+((8191&(i=(i=i+Math.imul(O,me)|0)+Math.imul(x,pe)|0))<<13)|0;f=((o=o+Math.imul(x,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(U,ce),i=(i=Math.imul(U,fe))+Math.imul(L,ce)|0,o=Math.imul(L,fe),r=r+Math.imul(B,le)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(N,le)|0,o=o+Math.imul(N,de)|0;var Pe=(f+(r=r+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,me)|0)+Math.imul(M,pe)|0))<<13)|0;f=((o=o+Math.imul(M,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(U,le),i=(i=Math.imul(U,de))+Math.imul(L,le)|0,o=Math.imul(L,de);var Me=(f+(r=r+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(N,pe)|0))<<13)|0;f=((o=o+Math.imul(N,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863;var De=(f+(r=Math.imul(U,pe))|0)+((8191&(i=(i=Math.imul(U,me))+Math.imul(L,pe)|0))<<13)|0;return f=((o=Math.imul(L,me))+(i>>>13)|0)+(De>>>26)|0,De&=67108863,c[0]=ge,c[1]=ye,c[2]=be,c[3]=_e,c[4]=ve,c[5]=Ae,c[6]=we,c[7]=Ee,c[8]=ke,c[9]=Se,c[10]=Ie,c[11]=Te,c[12]=Re,c[13]=Oe,c[14]=xe,c[15]=Ce,c[16]=Pe,c[17]=Me,c[18]=De,0!==f&&(c[19]=f,n.length++),n};function p(e,t,n){return(new m).mulp(e,t,n)}function m(e,t){this.x=e,this.y=t}Math.imul||(h=d),o.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?h(this,e,t):n<63?d(this,e,t):n<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,o=0;o>>26)|0)>>>26,s&=67108863}n.words[o]=a,r=s,s=i}return 0!==r?n.words[o]=r:n.length--,n.strip()}(this,e,t):p(this,e,t)},m.prototype.makeRBT=function(e){for(var t=new Array(e),n=o.prototype._countBits(e)-1,r=0;r>=1;return r},m.prototype.permute=function(e,t,n,r,i,o){for(var s=0;s>>=1)i++;return 1<>>=13,n[2*s+1]=8191&o,o>>>=13;for(s=2*t;s>=26,t+=i/67108864|0,t+=o>>>26,this.words[n]=67108863&o}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>i}return t}(e);if(0===t.length)return new o(1);for(var n=this,r=0;r=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<s)for(this.length-=s,f=0;f=0&&(0!==u||f>=i);f--){var l=0|this.words[f];this.words[f]=u<<26-o|l>>>o,u=l&a}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var i=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[i+n]=67108863&o}for(;i>26,this.words[i+n]=67108863&o;if(0===a)return this.strip();for(r(-1===a),a=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!==(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var a,c=r.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var f=0;f=0;l--){var d=67108864*(0|r.words[i.length+l])+(0|r.words[i.length+l-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,l);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,l),r.isZero()||(r.negative^=1);a&&(a.words[l]=d)}return a&&a.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:a||null,mod:r}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),o=n.cmp(r);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,i=this.length-1;i>=0;i--)n=(t*n+(0|this.words[i]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*t;this.words[n]=i/e|0,t=i%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),f=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++f;for(var u=n.clone(),l=t.clone();!t.isZero();){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(u),s.isub(l)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;0==(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(u),c.isub(l)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(f)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var f=0,u=1;0==(t.words[0]&u)&&f<26;++f,u<<=1);if(f>0)for(t.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var l=0,d=1;0==(n.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(n.iushrn(l);l-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var o=t;t=n,n=o}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){ri&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new w(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var g={k256:null,p224:null,p192:null,p25519:null};function y(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function v(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function w(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function E(e){w.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},y.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):n.strip(),n},y.prototype.split=function(e,t){e.iushrn(this.n,0,t)},y.prototype.imulK=function(e){return e.imul(this.k)},i(b,y),b.prototype.split=function(e,t){for(var n=Math.min(e.length,9),r=0;r>>22,i=o}i>>>=22,e.words[r-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(g[e])return g[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new _;else if("p192"===e)t=new v;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new A}return g[e]=t,t},w.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},w.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},w.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},w.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},w.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},w.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},w.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},w.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},w.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},w.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},w.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},w.prototype.isqr=function(e){return this.imul(e,e.clone())},w.prototype.sqr=function(e){return this.mul(e,e)},w.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),f=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new o(2*u*u).toRed(this);0!==this.pow(u,f).cmp(c);)u.redIAdd(c);for(var l=this.pow(u,i),d=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=s;0!==h.cmp(a);){for(var m=h,g=0;0!==m.cmp(a);g++)m=m.redSqr();r(g=0;r--){for(var f=t.words[r],u=c-1;u>=0;u--){var l=f>>u&1;i!==n[0]&&(i=this.sqr(i)),0!==l||0!==s?(s<<=1,s|=l,(4===++a||0===r&&0===u)&&(i=this.mul(i,n[s]),a=0,s=0)):a=0}c=26}return i},w.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},w.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new E(e)},i(E,w),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,this)}).call(this,n(112)(e))},function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var c,f=[],u=!1,l=-1;function d(){u&&c&&(u=!1,c.length?f=c.concat(f):l=-1,f.length&&h())}function h(){if(!u){var e=a(d);u=!0;for(var t=f.length;t;){for(c=f,f=[];++l1)for(var n=1;n(i>>1)-1?(i>>1)-c:c,o.isubn(a)):a=0,r[s]=a,o.iushrn(1)}return r},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r=0,i=0;e.cmpn(-r)>0||t.cmpn(-i)>0;){var o,s,a,c=e.andln(3)+r&3,f=t.andln(3)+i&3;if(3===c&&(c=-1),3===f&&(f=-1),0==(1&c))o=0;else o=3!==(a=e.andln(7)+r&7)&&5!==a||2!==f?c:-c;if(n[0].push(o),0==(1&f))s=0;else s=3!==(a=t.andln(7)+i&7)&&5!==a||2!==c?f:-f;n[1].push(s),2*r===o+1&&(r=1-r),2*i===s+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";var r=n(14),i=n(2);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function s(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?"0"+e:e}function c(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i>6|192,n[r++]=63&s|128):o(e,i)?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i>>0}return s},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r>>24,n[i+1]=o>>>16&255,n[i+2]=o>>>8&255,n[i+3]=255&o):(n[i+3]=o>>>24,n[i+2]=o>>>16&255,n[i+1]=o>>>8&255,n[i]=255&o)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},t.sum64=function(e,t,n,r){var i=e[t],o=r+e[t+1]>>>0,s=(o>>0,e[t+1]=o},t.sum64_hi=function(e,t,n,r){return(t+r>>>0>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,i,o,s,a){var c=0,f=t;return c+=(f=f+r>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,n,r,i,o,s,a){return t+r+o+a>>>0},t.sum64_5_hi=function(e,t,n,r,i,o,s,a,c,f){var u=0,l=t;return u+=(l=l+r>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,n,r,i,o,s,a,c,f){return t+r+o+a+f>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},function(e,t,n){var r=n(3).Buffer,i=n(41).Transform,o=n(60).StringDecoder;function s(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(2)(s,i),s.prototype.update=function(e,t,n){"string"==typeof e&&(e=r.from(e,t));var i=this._update(e);return this.hashMode?this:(n&&(i=this._toString(i,n)),i)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(e,t,n){var r;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){r=e}finally{n(r)}},s.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},s.prototype._finalOrDigest=function(e){var t=this.__final()||r.alloc(0);return e&&(t=this._toString(t,e,!0)),t},s.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new o(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var r=this._decoder.write(e);return n&&(r+=this._decoder.end()),r},e.exports=s},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.MatrixEvent=t.EventStatus=void 0;var i=n(10),o=r(n(8)),s=n(5);t.EventStatus={NOT_SENT:"not_sent",ENCRYPTING:"encrypting",SENDING:"sending",QUEUED:"queued",SENT:"sent",CANCELLED:"cancelled"};const a={};function c(e){return a[e]||(a[e]=e),a[e]}const f=function(e){["state_key","type","sender","room_id","membership"].forEach(t=>{e[t]&&(e[t]=c(e[t]))}),["membership","avatar_url","displayname"].forEach(t=>{e.content&&e.content[t]&&(e.content[t]=c(e.content[t]))}),["rel_type"].forEach(t=>{e.content&&e.content["m.relates_to"]&&e.content["m.relates_to"][t]&&(e.content["m.relates_to"][t]=c(e.content["m.relates_to"][t]))}),this.event=e||{},this.sender=null,this.target=null,this.status=null,this.error=null,this.forwardLooking=!0,this._pushActions=null,this._replacingEvent=null,this._localRedactionEvent=null,this._isCancelled=!1,this._clearEvent={},this._senderCurve25519Key=null,this._claimedEd25519Key=null,this._forwardingCurve25519KeyChain=[],this._decryptionPromise=null,this._retryDecryption=!1};t.MatrixEvent=f,o.inherits(f,i.EventEmitter),o.extend(f.prototype,{getId:function(){return this.event.event_id},getSender:function(){return this.event.sender||this.event.user_id},getType:function(){return this._clearEvent.type||this.event.type},getWireType:function(){return this.event.type},getRoomId:function(){return this.event.room_id},getTs:function(){return this.event.origin_server_ts},getDate:function(){return this.event.origin_server_ts?new Date(this.event.origin_server_ts):null},getOriginalContent:function(){return this._localRedactionEvent?{}:this._clearEvent.content||this.event.content||{}},getContent:function(){return this._localRedactionEvent?{}:this._replacingEvent?this._replacingEvent.getContent()["m.new_content"]||{}:this.getOriginalContent()},getWireContent:function(){return this.event.content||{}},getPrevContent:function(){return this.getUnsigned().prev_content||this.event.prev_content||{}},getDirectionalContent:function(){return this.forwardLooking?this.getContent():this.getPrevContent()},getAge:function(){return this.getUnsigned().age||this.event.age},getLocalAge:function(){return Date.now()-this.getTs()},getStateKey:function(){return this.event.state_key},isState:function(){return void 0!==this.event.state_key},makeEncrypted:function(e,t,n,r){this._clearEvent={type:this.event.type,content:this.event.content},this.event.type=e,this.event.content=t,this._senderCurve25519Key=n,this._claimedEd25519Key=r},isBeingDecrypted:function(){return null!=this._decryptionPromise},isDecryptionFailure:function(){return this._clearEvent&&this._clearEvent.content&&"m.bad.encrypted"===this._clearEvent.content.msgtype},attemptDecryption:async function(e){if(!this.isEncrypted())throw new Error("Attempt to decrypt event which isn't encrypted");if(this._clearEvent&&this._clearEvent.content&&"m.bad.encrypted"!==this._clearEvent.content.msgtype)throw new Error("Attempt to decrypt event which has already been encrypted");return this._decryptionPromise?(s.logger.log(`Event ${this.getId()} already being decrypted; queueing a retry`),this._retryDecryption=!0,this._decryptionPromise):(this._decryptionPromise=this._decryptionLoop(e),this._decryptionPromise)},cancelAndResendKeyRequest:function(e,t){const n=this.getWireContent();return e.requestRoomKey({algorithm:n.algorithm,room_id:this.getRoomId(),session_id:n.session_id,sender_key:n.sender_key},this.getKeyRequestRecipients(t),!0)},getKeyRequestRecipients:function(e){const t=this.getWireContent(),n=[{userId:e,deviceId:"*"}],r=this.getSender();return r!==e&&n.push({userId:r,deviceId:t.device_id}),n},_decryptionLoop:async function(e){for(await Promise.resolve();;){let t,n;this._retryDecryption=!1;try{t=e?await e.decryptEvent(this):this._badEncryptedMessage("Encryption not enabled")}catch(e){if("DecryptionError"!==e.name)return s.logger.error(`Error decrypting event (id=${this.getId()}): ${e.stack||e}`),this._decryptionPromise=null,void(this._retryDecryption=!1);if(n=e,this._retryDecryption){s.logger.log(`Got error decrypting event (id=${this.getId()}: `+`${e}), but retrying`);continue}s.logger.warn(`Error decrypting event (id=${this.getId()}): ${e.detailedString}`),t=this._badEncryptedMessage(e.message)}return this._decryptionPromise=null,this._retryDecryption=!1,this._setClearData(t),this.setPushActions(null),void this.emit("Event.decrypted",this,n)}},_badEncryptedMessage:function(e){return{clearEvent:{type:"m.room.message",content:{msgtype:"m.bad.encrypted",body:"** Unable to decrypt: "+e+" **"}}}},_setClearData:function(e){this._clearEvent=e.clearEvent,this._senderCurve25519Key=e.senderCurve25519Key||null,this._claimedEd25519Key=e.claimedEd25519Key||null,this._forwardingCurve25519KeyChain=e.forwardingCurve25519KeyChain||[]},getClearContent:function(){const e=this._clearEvent;return e&&e.content?e.content:null},isEncrypted:function(){return"m.room.encrypted"===this.event.type},getSenderKey:function(){return this._senderCurve25519Key},getKeysClaimed:function(){return{ed25519:this._claimedEd25519Key}},getClaimedEd25519Key:function(){return this._claimedEd25519Key},getForwardingCurve25519KeyChain:function(){return this._forwardingCurve25519KeyChain},getUnsigned:function(){return this.event.unsigned||{}},unmarkLocallyRedacted:function(){const e=this._localRedactionEvent;return this._localRedactionEvent=null,this.event.unsigned&&(this.event.unsigned.redacted_because=null),!!e},markLocallyRedacted:function(e){this._localRedactionEvent||(this.emit("Event.beforeRedaction",this,e),this._localRedactionEvent=e,this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=e.event)},makeRedacted:function(e){if(!e.event)throw new Error("invalid redaction_event in makeRedacted");let t;for(t in this._localRedactionEvent=null,this.emit("Event.beforeRedaction",this,e),this._replacingEvent=null,this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=e.event,this.event)this.event.hasOwnProperty(t)&&(u[t]||delete this.event[t]);const n=l[this.getType()]||{},r=this.getContent();for(t in r)r.hasOwnProperty(t)&&(n[t]||delete r[t])},isRedacted:function(){return Boolean(this.getUnsigned().redacted_because)},isRedaction:function(){return"m.room.redaction"===this.getType()},getPushActions:function(){return this._pushActions},setPushActions:function(e){this._pushActions=e},handleRemoteEcho:function(e){const t=this.getUnsigned(),n=this.getId();this.event=e,t.redacted_because&&(this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=t.redacted_because),this.setStatus(null),this.getId()!==n&&this.emit("Event.localEventIdReplaced",this)},isSending(){return!!this.status},setStatus(e){this.status=e,this.emit("Event.status",this,e)},replaceLocalEventId(e){this.event.event_id=e,this.emit("Event.localEventIdReplaced",this)},isRelation(e){const t=this.getWireContent(),n=t&&t["m.relates_to"];return n&&n.rel_type&&n.event_id&&(e&&n.rel_type===e||!e)},getRelation(){return this.isRelation()?this.getWireContent()["m.relates_to"]:null},makeReplaced(e){this.isRedacted()&&e||this._replacingEvent!==e&&(this._replacingEvent=e,this.emit("Event.replaced",this))},getAssociatedStatus(){return this._replacingEvent?this._replacingEvent.status:this._localRedactionEvent?this._localRedactionEvent.status:this.status},getServerAggregatedRelation(e){const t=this.getUnsigned()["m.relations"];if(t)return t[e]},replacingEventId(){const e=this.getServerAggregatedRelation("m.replace");return e?e.event_id:this._replacingEvent?this._replacingEvent.getId():void 0},replacingEvent(){return this._replacingEvent},replacingEventDate(){const e=this.getServerAggregatedRelation("m.replace");if(e){const t=e.origin_server_ts;if(Number.isFinite(t))return new Date(t)}else if(this._replacingEvent)return this._replacingEvent.getDate()},localRedactionEvent(){return this._localRedactionEvent},getAssociatedId(){const e=this.getRelation();return e?e.event_id:this.isRedaction()?this.event.redacts:void 0},hasAssocation(){return!!this.getAssociatedId()},updateAssociatedId(e){const t=this.getRelation();t?t.event_id=e:this.isRedaction()&&(this.event.redacts=e)},flagCancelled(e=!0){this._isCancelled=e},isCancelled(){return this._isCancelled},toJSON(){const e={type:this.getType(),sender:this.getSender(),content:this.getContent(),event_id:this.getId(),origin_server_ts:this.getTs(),unsigned:this.getUnsigned(),room_id:this.getRoomId()};return this.isRedaction()&&(e.redacts=this.event.redacts),this.isEncrypted()?{decrypted:e,encrypted:this.event}:e}});const u=["event_id","type","room_id","user_id","sender","state_key","prev_state","content","unsigned","origin_server_ts"].reduce((function(e,t){return e[t]=1,e}),{}),l={"m.room.member":{membership:1},"m.room.create":{creator:1},"m.room.join_rules":{join_rule:1},"m.room.power_levels":{ban:1,events:1,events_default:1,kick:1,redact:1,state_default:1,users:1,users_default:1},"m.room.aliases":{aliases:1}}},function(e,t,n){"use strict";var r=n(42),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=l;var o=Object.create(n(29));o.inherits=n(2);var s=n(89),a=n(59);o.inherits(l,s);for(var c=i(a.prototype),f=0;f{a[u]={resolve:(...n)=>{delete e._sessionsInProgress[u],t(...n)},reject:(...t)=>{delete e._sessionsInProgress[u],n(...t)}}}));const l=await e.getSessionIdForDevice(u,a[u]);null!==l&&a[u]&&(delete e._sessionsInProgress[u],a[u].resolve(),delete a[u]),(null===l||r)&&i.push([t,f]),o[t][f]={device:c,sessionId:l}}}if(0===i.length)return o;let c;try{c=await t.claimOneTimeKeys(i,"signed_curve25519")}catch(e){for(const e of Object.values(a))e.resolve();throw s.logger.log("failed to claim one-time keys",e,i),e}const u=c.one_time_keys||{},l=[];for(const t in n){if(!n.hasOwnProperty(t))continue;const i=u[t]||{},c=n[t];for(let n=0;n{a[h]&&a[h].resolve(e),o[t][d].sessionId=e},e=>{throw a[h]&&a[h].resolve(),e}));else{const e="No one-time keys (alg=signed_curve25519) for device "+t+":"+d;s.logger.warn(e),a[h]&&a[h].resolve()}}}return await Promise.all(l),o},t.verifySignature=u,t.pkSign=function(t,n,r,i){let o=!1;if(n instanceof Uint8Array){const t=new e.Olm.PkSigning;i=t.init_with_seed(n),n=t,o=!0}const s=t.signatures||{};delete t.signatures;const a=t.unsigned;t.unsigned&&delete t.unsigned;try{const e=s[r]||{};return s[r]=e,e["ed25519:"+i]=n.sign(c.default.stringify(t))}finally{t.signatures=s,a&&(t.unsigned=a),o&&n.free()}},t.pkVerify=function(t,n,r){const i="ed25519:"+n;if(!(t.signatures&&t.signatures[r]&&t.signatures[r][i]))throw new Error("No signature");const o=t.signatures[r][i],s=new e.Olm.Utility,a=t.signatures;delete t.signatures;const f=t.unsigned;t.unsigned&&delete t.unsigned;try{s.ed25519_verify(n,c.default.stringify(t),o)}finally{t.signatures=a,f&&(t.unsigned=f),s.free()}},t.encodeBase64=function(e){return r.from(e).toString("base64")},t.decodeBase64=function(e){return r.from(e,"base64")},t.MEGOLM_BACKUP_ALGORITHM=t.MEGOLM_ALGORITHM=t.OLM_ALGORITHM=void 0;var s=n(5),a=o(n(8)),c=i(n(79));t.OLM_ALGORITHM="m.olm.v1.curve25519-aes-sha2";t.MEGOLM_ALGORITHM="m.megolm.v1.aes-sha2";async function f(e,t,n,r){const i=r.deviceId;try{await u(e,t,n,i,r.getFingerprint())}catch(e){return s.logger.error("Unable to verify signature on one-time key for device "+n+":"+i+":",e),null}let o;try{o=await e.createOutboundSession(r.getIdentityKey(),t.key)}catch(e){return s.logger.error("Error starting olm session with device "+n+":"+i+": "+e),null}return s.logger.log("Started new olm sessionid "+o+" for device "+n+":"+i),o}async function u(e,t,n,r,i){const o="ed25519:"+r,s=((t.signatures||{})[n]||{})[o];if(!s)throw Error("No signature");const a=Object.assign({},t);delete a.unsigned,delete a.signatures;const f=c.default.stringify(a);e.verifySignature(i,f,s)}t.MEGOLM_BACKUP_ALGORITHM="m.megolm_backup.v1.curve25519-aes-sha2"}).call(this,n(6),n(11).Buffer)},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}}(),e.exports=n(164)},function(e,t,n){"use strict";(function(t,r){var i=n(3).Buffer,o=t.crypto||t.msCrypto;o&&o.getRandomValues?e.exports=function(e,t){if(e>4294967295)throw new RangeError("requested too many random bytes");var n=i.allocUnsafe(e);if(e>0)if(e>65536)for(var s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var o=this._hash();return e?o.toString(e):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventTimeline=i;var r=n(132);function i(e){this._eventTimelineSet=e,this._roomId=e.room?e.room.roomId:null,this._events=[],this._baseIndex=0,this._startState=new r.RoomState(this._roomId),this._startState.paginationToken=null,this._endState=new r.RoomState(this._roomId),this._endState.paginationToken=null,this._prevTimeline=null,this._nextTimeline=null,this._paginationRequests={b:null,f:null},this._name=this._roomId+":"+(new Date).toISOString()}i.BACKWARDS="b",i.FORWARDS="f",i.prototype.initialiseState=function(e){if(this._events.length>0)throw new Error("Cannot initialise state after events are added");for(const t of e)Object.freeze(t);this._startState.setStateEvents(e),this._endState.setStateEvents(e)},i.prototype.forkLive=function(e){const t=this.getState(e),n=new i(this._eventTimelineSet);return n._startState=t.clone(),n._endState=t,this._endState=t.clone(),n},i.prototype.fork=function(e){const t=this.getState(e),n=new i(this._eventTimelineSet);return n._startState=t.clone(),n._endState=t.clone(),n},i.prototype.getRoomId=function(){return this._roomId},i.prototype.getFilter=function(){return this._eventTimelineSet.getFilter()},i.prototype.getTimelineSet=function(){return this._eventTimelineSet},i.prototype.getBaseIndex=function(){return this._baseIndex},i.prototype.getEvents=function(){return this._events},i.prototype.getState=function(e){if(e==i.BACKWARDS)return this._startState;if(e==i.FORWARDS)return this._endState;throw new Error("Invalid direction '"+e+"'")},i.prototype.getPaginationToken=function(e){return this.getState(e).paginationToken},i.prototype.setPaginationToken=function(e,t){this.getState(t).paginationToken=e},i.prototype.getNeighbouringTimeline=function(e){if(e==i.BACKWARDS)return this._prevTimeline;if(e==i.FORWARDS)return this._nextTimeline;throw new Error("Invalid direction '"+e+"'")},i.prototype.setNeighbouringTimeline=function(e,t){if(this.getNeighbouringTimeline(t))throw new Error("timeline already has a neighbouring timeline - cannot reset neighbour (direction: "+t+")");if(t==i.BACKWARDS)this._prevTimeline=e;else{if(t!=i.FORWARDS)throw new Error("Invalid direction '"+t+"'");this._nextTimeline=e}this.setPaginationToken(null,t)},i.prototype.addEvent=function(e,t){const n=t?this._startState:this._endState,r=this.getTimelineSet();let o;r.room&&r.room.getUnfilteredTimelineSet()===r&&(i.setEventMetadata(e,n,t),e.isState()&&(n.setStateEvents([e]),e.sender&&("m.room.member"!==e.getType()||t)||i.setEventMetadata(e,n,t))),o=t?0:this._events.length,this._events.splice(o,0,e),t&&this._baseIndex++},i.setEventMetadata=function(e,t,n){e.sender=t.getSentinelMember(e.getSender()),"m.room.member"===e.getType()&&(e.target=t.getSentinelMember(e.getStateKey())),e.isState()&&n&&(e.forwardLooking=!1)},i.prototype.removeEvent=function(e){for(let t=this._events.length-1;t>=0;t--){const n=this._events[t];if(n.getId()==e)return this._events.splice(t,1),t=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var i=0;i>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,o=8;o{if(!this._indexedDB)return void t(new Error("no indexeddb support available"));i.logger.log(`connecting to indexeddb ${this._dbName}`);const n=this._indexedDB.open(this._dbName,a.VERSION);n.onupgradeneeded=e=>{const t=e.target.result,n=e.oldVersion;a.upgradeDatabase(t,n)},n.onblocked=()=>{i.logger.log("can't yet open IndexedDBCryptoStore because it is open elsewhere")},n.onerror=e=>{i.logger.log("Error connecting to indexeddb",e),t(e.target.error)},n.onsuccess=t=>{const n=t.target.result;i.logger.log(`connected to indexeddb ${this._dbName}`),e(new a.Backend(n))}}).then(e=>e.doTxn("readonly",[u.STORE_INBOUND_GROUP_SESSIONS,u.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],t=>{e.getEndToEndInboundGroupSession("","",t,()=>{})}).then(()=>e)).catch(t=>{if("VersionError"===t.name)throw i.logger.warn("Crypto DB is too new for us to use!",t),new c.InvalidCryptoStoreError(c.InvalidCryptoStoreError.TOO_NEW);i.logger.warn(`unable to connect to indexeddb ${this._dbName}`+`: falling back to localStorage store: ${t}`);try{return new o.LocalStorageCryptoStore(e.localStorage)}catch(t){return i.logger.warn(`unable to open localStorage: falling back to in-memory store: ${t}`),new s.MemoryCryptoStore}}),this._backendPromise)}deleteAllData(){return new Promise((e,t)=>{if(!this._indexedDB)return void t(new Error("no indexeddb support available"));i.logger.log(`Removing indexeddb instance: ${this._dbName}`);const n=this._indexedDB.deleteDatabase(this._dbName);n.onblocked=()=>{i.logger.log("can't yet delete IndexedDBCryptoStore because it is open elsewhere")},n.onerror=e=>{i.logger.log("Error deleting data from indexeddb",e),t(e.target.error)},n.onsuccess=()=>{i.logger.log(`Removed indexeddb instance: ${this._dbName}`),e()}}).catch(e=>{i.logger.warn(`unable to delete IndexedDBCryptoStore: ${e}`)})}getOrAddOutgoingRoomKeyRequest(e){return this._connect().then(t=>t.getOrAddOutgoingRoomKeyRequest(e))}getOutgoingRoomKeyRequest(e){return this._connect().then(t=>t.getOutgoingRoomKeyRequest(e))}getOutgoingRoomKeyRequestByState(e){return this._connect().then(t=>t.getOutgoingRoomKeyRequestByState(e))}getOutgoingRoomKeyRequestsByTarget(e,t,n){return this._connect().then(r=>r.getOutgoingRoomKeyRequestsByTarget(e,t,n))}updateOutgoingRoomKeyRequest(e,t,n){return this._connect().then(r=>r.updateOutgoingRoomKeyRequest(e,t,n))}deleteOutgoingRoomKeyRequest(e,t){return this._connect().then(n=>n.deleteOutgoingRoomKeyRequest(e,t))}getAccount(e,t){this._backendPromise.then(n=>{n.getAccount(e,t)})}storeAccount(e,t){this._backendPromise.then(n=>{n.storeAccount(e,t)})}getCrossSigningKeys(e,t){this._backendPromise.then(n=>{n.getCrossSigningKeys(e,t)})}storeCrossSigningKeys(e,t){this._backendPromise.then(n=>{n.storeCrossSigningKeys(e,t)})}countEndToEndSessions(e,t){this._backendPromise.then(n=>{n.countEndToEndSessions(e,t)})}getEndToEndSession(e,t,n,r){this._backendPromise.then(i=>{i.getEndToEndSession(e,t,n,r)})}getEndToEndSessions(e,t,n){this._backendPromise.then(r=>{r.getEndToEndSessions(e,t,n)})}getAllEndToEndSessions(e,t){this._backendPromise.then(n=>{n.getAllEndToEndSessions(e,t)})}storeEndToEndSession(e,t,n,r){this._backendPromise.then(i=>{i.storeEndToEndSession(e,t,n,r)})}storeEndToEndSessionProblem(e,t,n){return this._backendPromise.then(async r=>{await r.storeEndToEndSessionProblem(e,t,n)})}getEndToEndSessionProblem(e,t){return this._backendPromise.then(async n=>await n.getEndToEndSessionProblem(e,t))}filterOutNotifiedErrorDevices(e){return this._backendPromise.then(async t=>await t.filterOutNotifiedErrorDevices(e))}getEndToEndInboundGroupSession(e,t,n,r){this._backendPromise.then(i=>{i.getEndToEndInboundGroupSession(e,t,n,r)})}getAllEndToEndInboundGroupSessions(e,t){this._backendPromise.then(n=>{n.getAllEndToEndInboundGroupSessions(e,t)})}addEndToEndInboundGroupSession(e,t,n,r){this._backendPromise.then(i=>{i.addEndToEndInboundGroupSession(e,t,n,r)})}storeEndToEndInboundGroupSession(e,t,n,r){this._backendPromise.then(i=>{i.storeEndToEndInboundGroupSession(e,t,n,r)})}storeEndToEndInboundGroupSessionWithheld(e,t,n,r){this._backendPromise.then(i=>{i.storeEndToEndInboundGroupSessionWithheld(e,t,n,r)})}storeEndToEndDeviceData(e,t){this._backendPromise.then(n=>{n.storeEndToEndDeviceData(e,t)})}getEndToEndDeviceData(e,t){this._backendPromise.then(n=>{n.getEndToEndDeviceData(e,t)})}storeEndToEndRoom(e,t,n){this._backendPromise.then(r=>{r.storeEndToEndRoom(e,t,n)})}getEndToEndRooms(e,t){this._backendPromise.then(n=>{n.getEndToEndRooms(e,t)})}getSessionsNeedingBackup(e){return this._connect().then(t=>t.getSessionsNeedingBackup(e))}countSessionsNeedingBackup(e){return this._connect().then(t=>t.countSessionsNeedingBackup(e))}unmarkSessionsNeedingBackup(e,t){return this._connect().then(n=>n.unmarkSessionsNeedingBackup(e,t))}markSessionsNeedingBackup(e,t){return this._connect().then(n=>n.markSessionsNeedingBackup(e,t))}doTxn(e,t,n){return this._connect().then(r=>r.doTxn(e,t,n))}}t.IndexedDBCryptoStore=u,u.STORE_ACCOUNT="account",u.STORE_SESSIONS="sessions",u.STORE_INBOUND_GROUP_SESSIONS="inbound_group_sessions",u.STORE_INBOUND_GROUP_SESSIONS_WITHHELD="inbound_group_sessions_withheld",u.STORE_DEVICE_DATA="device_data",u.STORE_ROOMS="rooms",u.STORE_BACKUP="sessions_needing_backup"}).call(this,n(6))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.newVerificationError=i,t.errorFactory=o,t.errorFromEvent=function(e){const t=e.getContent();if(t){const{code:e,reason:n}=t;return{code:e,reason:n}}return{code:"Unknown error",reason:"m.unknown"}},t.newInvalidMessageError=t.newUserMismatchError=t.newKeyMismatchError=t.newUnexpectedMessageError=t.newUnknownMethodError=t.newUnknownTransactionError=t.newTimeoutError=t.newUserCancelledError=void 0;var r=n(19);function i(e,t,n){return(n=n||{}).code=e,n.reason=t,new r.MatrixEvent({type:"m.key.verification.cancel",content:n})}function o(e,t){return function(n){return i(e,t,n)}}const s=o("m.user","Cancelled by user");t.newUserCancelledError=s;const a=o("m.timeout","Timed out");t.newTimeoutError=a;const c=o("m.unknown_transaction","Unknown transaction");t.newUnknownTransactionError=c;const f=o("m.unknown_method","Unknown method");t.newUnknownMethodError=f;const u=o("m.unexpected_message","Unexpected message");t.newUnexpectedMessageError=u;const l=o("m.key_mismatch","Key mismatch");t.newKeyMismatchError=l;const d=o("m.user_error","User mismatch");t.newUserMismatchError=d;const h=o("m.invalid_message","Invalid message");t.newInvalidMessageError=h},function(e,t,n){(function(e){function n(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r=-1&&!i;o--){var s=o>=0?arguments[o]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(t=s+"/"+t,i="/"===s.charAt(0))}return(i?"/":"")+(t=n(r(t.split("/"),(function(e){return!!e})),!i).join("/"))||"."},t.normalize=function(e){var o=t.isAbsolute(e),s="/"===i(e,-1);return(e=n(r(e.split("/"),(function(e){return!!e})),!o).join("/"))||o||(e="."),e&&s&&(e+="/"),(o?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(r(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var i=r(e.split("/")),o=r(n.split("/")),s=Math.min(i.length,o.length),a=s,c=0;c=1;--o)if(47===(t=e.charCodeAt(o))){if(!i){r=o;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},t.basename=function(e,t){var n=function(e){"string"!=typeof e&&(e+="");var t,n=0,r=-1,i=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!i){n=t+1;break}}else-1===r&&(i=!1,r=t+1);return-1===r?"":e.slice(n,r)}(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},t.extname=function(e){"string"!=typeof e&&(e+="");for(var t=-1,n=0,r=-1,i=!0,o=0,s=e.length-1;s>=0;--s){var a=e.charCodeAt(s);if(47!==a)-1===r&&(i=!1,r=s+1),46===a?-1===t?t=s:1!==o&&(o=1):-1!==t&&(o=-1);else if(!i){n=s+1;break}}return-1===t||-1===r||0===o||1===o&&t===r-1&&t===n+1?"":e.slice(t,r)};var i="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,n(13))},function(e,t,n){"use strict";(function(e){var r=n(16),i=n(7);Object.defineProperty(t,"__esModule",{value:!0});var o={};t.default=void 0;var s=i(n(127));Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))}));var a=r(n(312)),c=r(n(313));let f;s.request((function(e,t){return e.qs=c.default.stringify(e.qs||{},e.qsStringifyOptions),(0,a.default)(e,t)}));try{f=e.indexedDB}catch(e){}f&&s.setCryptoStoreFactory((function(){return new s.IndexedDBCryptoStore(f,"matrix-js-sdk:crypto")}));var u=s;t.default=u,e.matrixcs=s}).call(this,n(6))},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),p(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),u(r,e,r.depth)}function c(e,t){var n=a.styles[t];return n?"["+a.colors[n][0]+"m"+e+"["+a.colors[n][1]+"m":e}function f(e,t){return e}function u(e,n,r){if(e.customInspect&&n&&E(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return y(i)||(i=u(e,i,r)),i}var o=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(y(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(g(t))return e.stylize(""+t,"number");if(p(t))return e.stylize(""+t,"boolean");if(m(t))return e.stylize("null","null")}(e,n);if(o)return o;var s=Object.keys(n),a=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(n)),w(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return l(n);if(0===s.length){if(E(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(_(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(A(n))return e.stylize(Date.prototype.toString.call(n),"date");if(w(n))return l(n)}var f,v="",k=!1,S=["{","}"];(h(n)&&(k=!0,S=["[","]"]),E(n))&&(v=" [Function"+(n.name?": "+n.name:"")+"]");return _(n)&&(v=" "+RegExp.prototype.toString.call(n)),A(n)&&(v=" "+Date.prototype.toUTCString.call(n)),w(n)&&(v=" "+l(n)),0!==s.length||k&&0!=n.length?r<0?_(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),f=k?function(e,t,n,r,i){for(var o=[],s=0,a=t.length;s=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(f,v,S)):S[0]+v+S[1]}function l(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,n,r,i,o){var s,a,c;if((c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?a=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(a=e.stylize("[Setter]","special")),R(r,i)||(s="["+i+"]"),a||(e.seen.indexOf(c.value)<0?(a=m(n)?u(e,c.value,null):u(e,c.value,n-1)).indexOf("\n")>-1&&(a=o?a.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),b(s)){if(o&&i.match(/^\d+$/))return a;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function h(e){return Array.isArray(e)}function p(e){return"boolean"==typeof e}function m(e){return null===e}function g(e){return"number"==typeof e}function y(e){return"string"==typeof e}function b(e){return void 0===e}function _(e){return v(e)&&"[object RegExp]"===k(e)}function v(e){return"object"==typeof e&&null!==e}function A(e){return v(e)&&"[object Date]"===k(e)}function w(e){return v(e)&&("[object Error]"===k(e)||e instanceof Error)}function E(e){return"function"==typeof e}function k(e){return Object.prototype.toString.call(e)}function S(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(o)&&(o=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!s[n])if(new RegExp("\\b"+n+"\\b","i").test(o)){var r=e.pid;s[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else s[n]=function(){};return s[n]},t.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=p,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=g,t.isString=y,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=_,t.isObject=v,t.isDate=A,t.isError=w,t.isFunction=E,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(176);var I=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[S(e.getHours()),S(e.getMinutes()),S(e.getSeconds())].join(":");return[e.getDate(),I[e.getMonth()],t].join(" ")}function R(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(177),t._extend=function(e,t){if(!t||!v(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var O="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function x(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(O&&e[O]){var t;if("function"!=typeof(t=e[O]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,O,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),i=[],o=0;o>>24]^u[p>>>16&255]^l[m>>>8&255]^d[255&g]^t[y++],s=f[p>>>24]^u[m>>>16&255]^l[g>>>8&255]^d[255&h]^t[y++],a=f[m>>>24]^u[g>>>16&255]^l[h>>>8&255]^d[255&p]^t[y++],c=f[g>>>24]^u[h>>>16&255]^l[p>>>8&255]^d[255&m]^t[y++],h=o,p=s,m=a,g=c;return o=(r[h>>>24]<<24|r[p>>>16&255]<<16|r[m>>>8&255]<<8|r[255&g])^t[y++],s=(r[p>>>24]<<24|r[m>>>16&255]<<16|r[g>>>8&255]<<8|r[255&h])^t[y++],a=(r[m>>>24]<<24|r[g>>>16&255]<<16|r[h>>>8&255]<<8|r[255&p])^t[y++],c=(r[g>>>24]<<24|r[h>>>16&255]<<16|r[p>>>8&255]<<8|r[255&m])^t[y++],[o>>>=0,s>>>=0,a>>>=0,c>>>=0]}var a=[0,1,2,4,8,16,32,64,128,27,54],c=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var n=[],r=[],i=[[],[],[],[]],o=[[],[],[],[]],s=0,a=0,c=0;c<256;++c){var f=a^a<<1^a<<2^a<<3^a<<4;f=f>>>8^255&f^99,n[s]=f,r[f]=s;var u=e[s],l=e[u],d=e[l],h=257*e[f]^16843008*f;i[0][s]=h<<24|h>>>8,i[1][s]=h<<16|h>>>16,i[2][s]=h<<8|h>>>24,i[3][s]=h,h=16843009*d^65537*l^257*u^16843008*s,o[0][f]=h<<24|h>>>8,o[1][f]=h<<16|h>>>16,o[2][f]=h<<8|h>>>24,o[3][f]=h,0===s?s=a=1:(s=u^e[e[e[d^u]]],a^=e[e[a]])}return{SBOX:n,INV_SBOX:r,SUB_MIX:i,INV_SUB_MIX:o}}();function f(e){this._key=i(e),this._reset()}f.blockSize=16,f.keySize=32,f.prototype.blockSize=f.blockSize,f.prototype.keySize=f.keySize,f.prototype._reset=function(){for(var e=this._key,t=e.length,n=t+6,r=4*(n+1),i=[],o=0;o>>24,s=c.SBOX[s>>>24]<<24|c.SBOX[s>>>16&255]<<16|c.SBOX[s>>>8&255]<<8|c.SBOX[255&s],s^=a[o/t|0]<<24):t>6&&o%t==4&&(s=c.SBOX[s>>>24]<<24|c.SBOX[s>>>16&255]<<16|c.SBOX[s>>>8&255]<<8|c.SBOX[255&s]),i[o]=i[o-t]^s}for(var f=[],u=0;u>>24]]^c.INV_SUB_MIX[1][c.SBOX[d>>>16&255]]^c.INV_SUB_MIX[2][c.SBOX[d>>>8&255]]^c.INV_SUB_MIX[3][c.SBOX[255&d]]}this._nRounds=n,this._keySchedule=i,this._invKeySchedule=f},f.prototype.encryptBlockRaw=function(e){return s(e=i(e),this._keySchedule,c.SUB_MIX,c.SBOX,this._nRounds)},f.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),n=r.allocUnsafe(16);return n.writeUInt32BE(t[0],0),n.writeUInt32BE(t[1],4),n.writeUInt32BE(t[2],8),n.writeUInt32BE(t[3],12),n},f.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var n=s(e,this._invKeySchedule,c.INV_SUB_MIX,c.INV_SBOX,this._nRounds),o=r.allocUnsafe(16);return o.writeUInt32BE(n[0],0),o.writeUInt32BE(n[3],4),o.writeUInt32BE(n[2],8),o.writeUInt32BE(n[1],12),o},f.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},e.exports.AES=f},function(e,t,n){var r=n(3).Buffer,i=n(61);e.exports=function(e,t,n,o){if(r.isBuffer(e)||(e=r.from(e,"binary")),t&&(r.isBuffer(t)||(t=r.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var s=n/8,a=r.alloc(s),c=r.alloc(o||0),f=r.alloc(0);s>0||o>0;){var u=new i;u.update(f),u.update(e),t&&u.update(t),f=u.digest();var l=0;if(s>0){var d=a.length-s;l=Math.min(s,f.length),f.copy(a,d,0,l),s-=l}if(l0){var h=c.length-o,p=Math.min(o,f.length-l);f.copy(c,h,l,l+p),o-=p}}return f.fill(0),{key:a,iv:c}}},function(e,t,n){"use strict";var r=n(12),i=n(15),o=i.getNAF,s=i.getJSF,a=i.assert;function c(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function f(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var n=e._getDoubles(),r=o(t,1,this._bitLength),i=(1<=c;t--)f=(f<<1)+r[t];s.push(f)}for(var u=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=i;d>0;d--){for(c=0;c=0;f--){for(t=0;f>=0&&0===s[f];f--)t++;if(f>=0&&t++,c=c.dblp(t),f<0)break;var u=s[f];a(0!==u),c="affine"===e.type?u>0?c.mixedAdd(i[u-1>>1]):c.mixedAdd(i[-u-1>>1].neg()):u>0?c.add(i[u-1>>1]):c.add(i[-u-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,n,r,i){for(var a=this._wnafT1,c=this._wnafT2,f=this._wnafT3,u=0,l=0;l=1;l-=2){var h=l-1,p=l;if(1===a[h]&&1===a[p]){var m=[t[h],null,null,t[p]];0===t[h].y.cmp(t[p].y)?(m[1]=t[h].add(t[p]),m[2]=t[h].toJ().mixedAdd(t[p].neg())):0===t[h].y.cmp(t[p].y.redNeg())?(m[1]=t[h].toJ().mixedAdd(t[p]),m[2]=t[h].add(t[p].neg())):(m[1]=t[h].toJ().mixedAdd(t[p]),m[2]=t[h].toJ().mixedAdd(t[p].neg()));var g=[-3,-1,-5,-7,0,7,5,1,3],y=s(n[h],n[p]);u=Math.max(y[0].length,u),f[h]=new Array(u),f[p]=new Array(u);for(var b=0;b=0;l--){for(var E=0;l>=0;){var k=!0;for(b=0;b=0&&E++,A=A.dblp(E),l<0)break;for(b=0;b0?S=c[b][I-1>>1]:I<0&&(S=c[b][-I-1>>1].neg()),A="affine"===S.type?A.mixedAdd(S):A.add(S))}}for(l=0;l=Math.ceil((e.bitLength()+1)/t.step)},f.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i0&&(g+="?"+y.join("&")),s.open("POST",g),this.useAuthorizationHeader&&s.setRequestHeader("Authorization","Bearer "+this.opts.accessToken),s.setRequestHeader("Content-Type",i),s.send(u),p=t.promise,p.abort=s.abort.bind(s)}else{const e={};r&&c&&(e.filename=c),p=this.authedRequest(n.callback,"POST","/upload",e,u,{prefix:"/_matrix/media/r0",headers:{"Content-Type":i},json:!1,bodyParser:m})}const g=this,y=p.finally((function(){for(let e=0;e{b&&(m&&a.clearTimeout(m),m=a.setTimeout((function(){y=!0,g&&g.abort&&g.abort(),p.reject(new u({error:"Locally timed out waiting for a response",errcode:"ORG.MATRIX.JSSDK_TIMEOUT",timeout:b}))}),b))};_();const v=p.promise;try{g=this.opts.request({uri:n,method:t,withCredentials:!1,qs:r,qsStringifyOptions:s.qsStringifyOptions,useQuerystring:!0,body:i,json:!1,timeout:b,headers:l||{},_matrix_opts:this.opts},(function(t,n,r){if(b&&(a.clearTimeout(m),y))return;f(p,e,c.opts.onlyData,h)(t,n,r)})),g&&("onprogress"in g&&(g.onprogress=e=>{_()}),g.abort&&(v.abort=g.abort.bind(g)))}catch(t){p.reject(t),e&&e(t)}return v}};const f=function(e,t,n,r){return t=t||function(){},function(o,s,a){if(!o)try{s.statusCode>=400?o=function(e,t){const n=e.statusCode,r=function(e){let t;e.getResponseHeader?t=e.getResponseHeader("Content-Type"):e.headers&&(t=e.headers["content-type"]||null);if(!t)return null;try{return(0,i.parse)(t)}catch(e){throw new Error(`Error parsing Content-Type '${t}': ${e}`)}}(e);let o;if(r)if("application/json"===r.type){const e="object"==typeof t?t:JSON.parse(t);o=new u(e)}else"text/plain"===r.type&&(o=new Error(`Server returned ${n} error: ${t}`));o||(o=new Error(`Server returned ${n} error`));return o.httpStatus=n,o}(s,a):r&&(a=r(a))}catch(e){o=new Error(`Error parsing server response: ${e}`)}if(o)e.reject(o),t(o);else{const r={code:s.statusCode,headers:s.headers,data:a};e.resolve(n?a:r),t(null,n?a:r)}}};function u(e){e=e||{},this.errcode=e.errcode,this.name=e.errcode||"Unknown error code",this.message=e.error||"Unknown message",this.data=e}u.prototype=Object.create(Error.prototype),u.prototype.constructor=u}).call(this,n(6))},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.getHttpUriForMxc=function(e,t,n,r,o,s){if("string"!=typeof t||!t)return"";if(0!==t.indexOf("mxc://"))return s?t:"";let a=t.slice(6),c="/_matrix/media/r0/download/";const f={};n&&(f.width=Math.round(n));r&&(f.height=Math.round(r));o&&(f.method=o);i.keys(f).length>0&&(c="/_matrix/media/r0/thumbnail/");const u=a.indexOf("#");let l="";u>=0&&(l=a.substr(u),a=a.substr(0,u));return e+c+a+(0===i.keys(f).length?"":"?"+i.encodeParams(f))+l},t.getIdenticonUri=function(e,t,n,r){if(!t)return null;n||(n=96);r||(r=96);const o={width:n,height:r},s=i.encodeUri("/_matrix/media/unstable/identicon/$ident",{$ident:t});return e+s+(0===i.keys(o).length?"":"?"+i.encodeParams(o))};var i=r(n(8))},function(e,t,n){"use strict";function r(e){Object.defineProperty(this,"deviceId",{enumerable:!0,value:e}),this.algorithms=[],this.keys={},this.verified=i.UNVERIFIED,this.known=!1,this.unsigned={},this.signatures={}}Object.defineProperty(t,"__esModule",{value:!0}),t.DeviceInfo=r,r.fromStorage=function(e,t){const n=new r(t);for(const t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n},r.prototype.toStorage=function(){return{algorithms:this.algorithms,keys:this.keys,verified:this.verified,known:this.known,unsigned:this.unsigned,signatures:this.signatures}},r.prototype.getFingerprint=function(){return this.keys["ed25519:"+this.deviceId]},r.prototype.getIdentityKey=function(){return this.keys["curve25519:"+this.deviceId]},r.prototype.getDisplayName=function(){return this.unsigned.device_display_name||null},r.prototype.isBlocked=function(){return this.verified==i.BLOCKED},r.prototype.isVerified=function(){return this.verified==i.VERIFIED},r.prototype.isUnverified=function(){return this.verified==i.UNVERIFIED},r.prototype.isKnown=function(){return 1==this.known},r.DeviceVerification={VERIFIED:1,UNVERIFIED:0,BLOCKED:-1};const i=r.DeviceVerification},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.randomString=function(e){let t="";const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let r=0;r2&&void 0!==arguments[2]?arguments[2]:{},r=Object.create(e.prototype);for(var i in n)r[i]=n[i];return r.constructor=t,t.prototype=r,t}},function(e,t,n){var r=n(87),i=n(4);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?i(e):t}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){var r=n(173);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t,n){"use strict"; /* object-assign (c) Sindre Sorhus @license MIT */var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function s(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,c=s(e),f=1;f-1?r:o.nextTick;b.WritableState=y;var f=Object.create(n(29));f.inherits=n(2);var u={deprecate:n(190)},l=n(90),d=n(58).Buffer,h=i.Uint8Array||function(){};var p,m=n(91);function g(){}function y(e,t){a=a||n(20),e=e||{};var r=t instanceof a;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var i=e.highWaterMark,f=e.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(f||0===f)?f:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===e.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,i=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,i){--t.pendingcb,n?(o.nextTick(i,r),o.nextTick(k,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(i(r),e._writableState.errorEmitted=!0,e.emit("error",r),k(e,t))}(e,n,r,t,i);else{var s=w(n);s||n.corked||n.bufferProcessing||!n.bufferedRequest||A(e,n),r?c(v,e,n,s,i):v(e,n,s,i)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new s(this)}function b(e){if(a=a||n(20),!(p.call(b,this)||this instanceof a))return new b(e);this._writableState=new y(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),l.call(this)}function _(e,t,n,r,i,o,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function v(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),k(e,t)}function A(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),o=t.corkedRequestsFree;o.entry=n;for(var a=0,c=!0;n;)i[a]=n,n.isBuf||(c=!1),n=n.next,a+=1;i.allBuffers=c,_(e,t,!0,t.length,i,"",o.finish),t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):t.corkedRequestsFree=new s(t),t.bufferedRequestCount=0}else{for(;n;){var f=n.chunk,u=n.encoding,l=n.callback;if(_(e,t,!1,t.objectMode?1:f.length,f,u,l),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function w(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function E(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),k(e,t)}))}function k(e,t){var n=w(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,o.nextTick(E,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}f.inherits(b,l),y.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(y.prototype,"buffer",{get:u.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!p.call(this,e)||this===b&&(e&&e._writableState instanceof y)}})):p=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,i=this._writableState,s=!1,a=!i.objectMode&&(r=e,d.isBuffer(r)||r instanceof h);return a&&!d.isBuffer(e)&&(e=function(e){return d.from(e)}(e)),"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof n&&(n=g),i.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),o.nextTick(t,n)}(this,n):(a||function(e,t,n,r){var i=!0,s=!1;return null===n?s=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),o.nextTick(r,s),i=!1),i}(this,i,e,n))&&(i.pendingcb++,s=function(e,t,n,r,i,o){if(!n){var s=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=d.from(t,n));return t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var a=t.objectMode?1:r.length;t.length+=a;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,k(e,t),n&&(t.finished?o.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=m.destroy,b.prototype._undestroy=m.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(188).setImmediate,n(6))},function(e,t,n){"use strict";var r=n(3).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=f,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=u,this.end=l,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function f(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function u(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.StringDecoder=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return i>0&&(e.lastNeed=i-1),i;if(--r=0)return i>0&&(e.lastNeed=i-2),i;if(--r=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";var r=n(2),i=n(94),o=n(3).Buffer,s=new Array(16);function a(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function c(e,t){return e<>>32-t}function f(e,t,n,r,i,o,s){return c(e+(t&n|~t&r)+i+o|0,s)+t|0}function u(e,t,n,r,i,o,s){return c(e+(t&r|n&~r)+i+o|0,s)+t|0}function l(e,t,n,r,i,o,s){return c(e+(t^n^r)+i+o|0,s)+t|0}function d(e,t,n,r,i,o,s){return c(e+(n^(t|~r))+i+o|0,s)+t|0}r(a,i),a.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,i=this._c,o=this._d;n=f(n,r,i,o,e[0],3614090360,7),o=f(o,n,r,i,e[1],3905402710,12),i=f(i,o,n,r,e[2],606105819,17),r=f(r,i,o,n,e[3],3250441966,22),n=f(n,r,i,o,e[4],4118548399,7),o=f(o,n,r,i,e[5],1200080426,12),i=f(i,o,n,r,e[6],2821735955,17),r=f(r,i,o,n,e[7],4249261313,22),n=f(n,r,i,o,e[8],1770035416,7),o=f(o,n,r,i,e[9],2336552879,12),i=f(i,o,n,r,e[10],4294925233,17),r=f(r,i,o,n,e[11],2304563134,22),n=f(n,r,i,o,e[12],1804603682,7),o=f(o,n,r,i,e[13],4254626195,12),i=f(i,o,n,r,e[14],2792965006,17),n=u(n,r=f(r,i,o,n,e[15],1236535329,22),i,o,e[1],4129170786,5),o=u(o,n,r,i,e[6],3225465664,9),i=u(i,o,n,r,e[11],643717713,14),r=u(r,i,o,n,e[0],3921069994,20),n=u(n,r,i,o,e[5],3593408605,5),o=u(o,n,r,i,e[10],38016083,9),i=u(i,o,n,r,e[15],3634488961,14),r=u(r,i,o,n,e[4],3889429448,20),n=u(n,r,i,o,e[9],568446438,5),o=u(o,n,r,i,e[14],3275163606,9),i=u(i,o,n,r,e[3],4107603335,14),r=u(r,i,o,n,e[8],1163531501,20),n=u(n,r,i,o,e[13],2850285829,5),o=u(o,n,r,i,e[2],4243563512,9),i=u(i,o,n,r,e[7],1735328473,14),n=l(n,r=u(r,i,o,n,e[12],2368359562,20),i,o,e[5],4294588738,4),o=l(o,n,r,i,e[8],2272392833,11),i=l(i,o,n,r,e[11],1839030562,16),r=l(r,i,o,n,e[14],4259657740,23),n=l(n,r,i,o,e[1],2763975236,4),o=l(o,n,r,i,e[4],1272893353,11),i=l(i,o,n,r,e[7],4139469664,16),r=l(r,i,o,n,e[10],3200236656,23),n=l(n,r,i,o,e[13],681279174,4),o=l(o,n,r,i,e[0],3936430074,11),i=l(i,o,n,r,e[3],3572445317,16),r=l(r,i,o,n,e[6],76029189,23),n=l(n,r,i,o,e[9],3654602809,4),o=l(o,n,r,i,e[12],3873151461,11),i=l(i,o,n,r,e[15],530742520,16),n=d(n,r=l(r,i,o,n,e[2],3299628645,23),i,o,e[0],4096336452,6),o=d(o,n,r,i,e[7],1126891415,10),i=d(i,o,n,r,e[14],2878612391,15),r=d(r,i,o,n,e[5],4237533241,21),n=d(n,r,i,o,e[12],1700485571,6),o=d(o,n,r,i,e[3],2399980690,10),i=d(i,o,n,r,e[10],4293915773,15),r=d(r,i,o,n,e[1],2240044497,21),n=d(n,r,i,o,e[8],1873313359,6),o=d(o,n,r,i,e[15],4264355552,10),i=d(i,o,n,r,e[6],2734768916,15),r=d(r,i,o,n,e[13],1309151649,21),n=d(n,r,i,o,e[4],4149444226,6),o=d(o,n,r,i,e[11],3174756917,10),i=d(i,o,n,r,e[2],718787259,15),r=d(r,i,o,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+i|0,this._d=this._d+o|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=o.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=a},function(e,t,n){"use strict";var r=n(11).Buffer,i=n(2),o=n(94),s=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],f=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],u=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],l=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function h(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<>>32-t}function m(e,t,n,r,i,o,s,a){return p(e+(t^n^r)+o+s|0,a)+i|0}function g(e,t,n,r,i,o,s,a){return p(e+(t&n|~t&r)+o+s|0,a)+i|0}function y(e,t,n,r,i,o,s,a){return p(e+((t|~n)^r)+o+s|0,a)+i|0}function b(e,t,n,r,i,o,s,a){return p(e+(t&r|n&~r)+o+s|0,a)+i|0}function _(e,t,n,r,i,o,s,a){return p(e+(t^(n|~r))+o+s|0,a)+i|0}i(h,o),h.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,r=0|this._b,i=0|this._c,o=0|this._d,h=0|this._e,v=0|this._a,A=0|this._b,w=0|this._c,E=0|this._d,k=0|this._e,S=0;S<80;S+=1){var I,T;S<16?(I=m(n,r,i,o,h,e[a[S]],l[0],f[S]),T=_(v,A,w,E,k,e[c[S]],d[0],u[S])):S<32?(I=g(n,r,i,o,h,e[a[S]],l[1],f[S]),T=b(v,A,w,E,k,e[c[S]],d[1],u[S])):S<48?(I=y(n,r,i,o,h,e[a[S]],l[2],f[S]),T=y(v,A,w,E,k,e[c[S]],d[2],u[S])):S<64?(I=b(n,r,i,o,h,e[a[S]],l[3],f[S]),T=g(v,A,w,E,k,e[c[S]],d[3],u[S])):(I=_(n,r,i,o,h,e[a[S]],l[4],f[S]),T=m(v,A,w,E,k,e[c[S]],d[4],u[S])),n=h,h=o,o=p(i,10),i=r,r=I,v=k,k=E,E=p(w,10),w=A,A=T}var R=this._b+i+E|0;this._b=this._c+o+k|0,this._c=this._d+h+v|0,this._d=this._e+n+A|0,this._e=this._a+r+w|0,this._a=R},h.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=r.alloc?r.alloc(20):new r(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=h},function(e,t,n){(t=e.exports=function(e){e=e.toLowerCase();var n=t[e];if(!n)throw new Error(e+" is not supported (we accept pull requests)");return new n}).sha=n(203),t.sha1=n(204),t.sha224=n(205),t.sha256=n(95),t.sha384=n(206),t.sha512=n(96)},function(e,t,n){"use strict";var r=n(14);function i(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}e.exports=i,i.prototype._init=function(){},i.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},i.prototype._buffer=function(e,t){for(var n=Math.min(this.buffer.length-this.bufferOff,e.length-t),r=0;r0;r--)t+=this._buffer(e,t),n+=this._flushBuffer(i,n);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,n;return e&&(t=this.update(e)),n="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(n):n},i.prototype._pad=function(e,t){if(0===t)return!1;for(;t=0||!n.umod(e.prime1)||!n.umod(e.prime2);)n=new r(i(t));return n}e.exports=o,o.getr=s}).call(this,n(11).Buffer)},function(e,t,n){"use strict";var r=t;r.version=n(232).version,r.utils=n(15),r.rand=n(67),r.curve=n(115),r.curves=n(70),r.ec=n(243),r.eddsa=n(247)},function(e,t,n){"use strict";var r,i=t,o=n(71),s=n(115),a=n(15).assert;function c(e){"short"===e.type?this.curve=new s.short(e):"edwards"===e.type?this.curve=new s.edwards(e):this.curve=new s.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function f(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var n=new c(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:n}),n}})}i.PresetCurve=c,f("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),f("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),f("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),f("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),f("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),f("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),f("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(242)}catch(e){r=void 0}f("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},function(e,t,n){var r=t;r.utils=n(17),r.common=n(32),r.sha=n(236),r.ripemd=n(240),r.hmac=n(241),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.MemoryCryptoStore=void 0;var i=n(5),o=r(n(8));t.MemoryCryptoStore=class{constructor(){this._outgoingRoomKeyRequests=[],this._account=null,this._crossSigningKeys=null,this._sessions={},this._sessionProblems={},this._notifiedErrorDevices={},this._inboundGroupSessions={},this._inboundGroupSessionsWithheld={},this._deviceData=null,this._rooms={},this._sessionsNeedingBackup={}}deleteAllData(){return Promise.resolve()}getOrAddOutgoingRoomKeyRequest(e){const t=e.requestBody;return o.promiseTry(()=>{const n=this._getOutgoingRoomKeyRequest(t);return n?(i.logger.log("already have key request outstanding for "+`${t.room_id} / ${t.session_id}: `+"not sending another"),n):(i.logger.log(`enqueueing key request for ${t.room_id} / `+t.session_id),this._outgoingRoomKeyRequests.push(e),e)})}getOutgoingRoomKeyRequest(e){return Promise.resolve(this._getOutgoingRoomKeyRequest(e))}_getOutgoingRoomKeyRequest(e){for(const t of this._outgoingRoomKeyRequests)if(o.deepCompare(t.requestBody,e))return t;return null}getOutgoingRoomKeyRequestByState(e){for(const t of this._outgoingRoomKeyRequests)for(const n of e)if(t.state===n)return Promise.resolve(t);return Promise.resolve(null)}getOutgoingRoomKeyRequestsByTarget(e,t,n){const r=[];for(const i of this._outgoingRoomKeyRequests)for(const o of n)i.state===o&&i.recipients.includes({userId:e,deviceId:t})&&r.push(i);return Promise.resolve(r)}updateOutgoingRoomKeyRequest(e,t,n){for(const r of this._outgoingRoomKeyRequests)if(r.requestId===e)return r.state!=t?(i.logger.warn(`Cannot update room key request from ${t} `+`as it was already updated to ${r.state}`),Promise.resolve(null)):(Object.assign(r,n),Promise.resolve(r));return Promise.resolve(null)}deleteOutgoingRoomKeyRequest(e,t){for(let n=0;ne.time-t.time)}async getEndToEndSessionProblem(e,t){const n=this._sessionProblems[e]||[];if(!n.length)return null;const r=n[n.length-1];for(const e of n)if(e.time>t)return Object.assign({},e,{fixed:r.fixed});return r.fixed?null:r}async filterOutNotifiedErrorDevices(e){const t=this._notifiedErrorDevices,n=[];for(const r of e){const{userId:e,deviceInfo:i}=r;e in t?i.deviceId in t[e]||(n.push(r),t[e][i.deviceId]=!0):(n.push(r),t[e]={[i.deviceId]:!0})}return n}getEndToEndInboundGroupSession(e,t,n,r){const i=e+"/"+t;r(this._inboundGroupSessions[i]||null,this._inboundGroupSessionsWithheld[i]||null)}getAllEndToEndInboundGroupSessions(e,t){for(const e of Object.keys(this._inboundGroupSessions))t({senderKey:e.substr(0,43),sessionId:e.substr(44),sessionData:this._inboundGroupSessions[e]});t(null)}addEndToEndInboundGroupSession(e,t,n,r){const i=e+"/"+t;void 0===this._inboundGroupSessions[i]&&(this._inboundGroupSessions[i]=n)}storeEndToEndInboundGroupSession(e,t,n,r){this._inboundGroupSessions[e+"/"+t]=n}storeEndToEndInboundGroupSessionWithheld(e,t,n,r){const i=e+"/"+t;this._inboundGroupSessionsWithheld[i]=n}getEndToEndDeviceData(e,t){t(this._deviceData)}storeEndToEndDeviceData(e,t){this._deviceData=e}storeEndToEndRoom(e,t,n){this._rooms[e]=t}getEndToEndRooms(e,t){t(this._rooms)}getSessionsNeedingBackup(e){const t=[];for(const n in this._sessionsNeedingBackup)if(this._inboundGroupSessions[n]&&(t.push({senderKey:n.substr(0,43),sessionId:n.substr(44),sessionData:this._inboundGroupSessions[n]}),e&&n.length>=e))break;return Promise.resolve(t)}countSessionsNeedingBackup(){return Promise.resolve(Object.keys(this._sessionsNeedingBackup).length)}unmarkSessionsNeedingBackup(e){for(const t of e){const e=t.senderKey+"/"+t.sessionId;delete this._sessionsNeedingBackup[e]}return Promise.resolve()}markSessionsNeedingBackup(e){for(const t of e){const e=t.senderKey+"/"+t.sessionId;this._sessionsNeedingBackup[e]=!0}return Promise.resolve()}doTxn(e,t,n){return Promise.resolve(n(null))}}},function(e,t,n){"use strict";var r=n(274),i=n(275);function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=_,t.resolve=function(e,t){return _(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?_(e,!1,!0).resolveObject(t):t},t.format=function(e){i.isString(e)&&(e=_(e));return e instanceof o?e.format():o.prototype.format.call(e)},t.Url=o;var s=/^([a-z0-9.+-]+:)/i,a=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,f=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(f),l=["%","/","?",";","#"].concat(u),d=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=n(276);function _(e,t,n){if(e&&i.isObject(e)&&e instanceof o)return e;var r=new o;return r.parse(e,t,n),r}o.prototype.parse=function(e,t,n){if(!i.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),a=-1!==o&&o127?M+="x":M+=P[D];if(!M.match(h)){var N=x.slice(0,T),j=x.slice(T+1),U=P.match(p);U&&(N.push(U[1]),j.unshift(U[2])),j.length&&(_="/"+j.join(".")+_),this.hostname=N.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),O||(this.hostname=r.toASCII(this.hostname));var L=this.port?":"+this.port:"",F=this.hostname||"";this.host=F+L,this.href+=this.host,O&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==_[0]&&(_="/"+_))}if(!m[w])for(T=0,C=u.length;T0)&&n.host.split("@"))&&(n.auth=O.shift(),n.host=n.hostname=O.shift());return n.search=e.search,n.query=e.query,i.isNull(n.pathname)&&i.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!E.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var S=E.slice(-1)[0],I=(n.host||e.host||E.length>1)&&("."===S||".."===S)||""===S,T=0,R=E.length;R>=0;R--)"."===(S=E[R])?E.splice(R,1):".."===S?(E.splice(R,1),T++):T&&(E.splice(R,1),T--);if(!A&&!w)for(;T--;T)E.unshift("..");!A||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),I&&"/"!==E.join("/").substr(-1)&&E.push("");var O,x=""===E[0]||E[0]&&"/"===E[0].charAt(0);k&&(n.hostname=n.host=x?"":E.length?E.shift():"",(O=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=O.shift(),n.host=n.hostname=O.shift()));return(A=A||n.host&&E.length)&&!x&&E.unshift(""),E.length?n.pathname=E.join("/"):(n.pathname=null,n.path=null),i.isNull(n.pathname)&&i.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},o.prototype.parseHost=function(){var e=this.host,t=a.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PushProcessor=s;var r=n(8);const i=["override","content","room","sender","underride"],o=[{rule_id:".m.rule.tombstone",default:!0,enabled:!0,conditions:[{kind:"event_match",key:"type",pattern:"m.room.tombstone"},{kind:"event_match",key:"state_key",pattern:""}],actions:["notify",{set_tweak:"highlight",value:!0}]},{rule_id:".m.rule.reaction",default:!0,enabled:!0,conditions:[{kind:"event_match",key:"type",pattern:"m.reaction"}],actions:["dont_notify"]}];function s(e){const t={},n=(e,t,n)=>{for(let r=0;r]*)([0-9]*)$/);if(!o)return!1;const s=o[1],a=parseInt(o[2]);if(isNaN(a))return!1;switch(s){case"":case"==":return i==a;case"<":return i":return i>a;case"<=":return i<=a;case">=":return i>=a;default:return!1}},l=function(t,n){let i=n.getContent();if(n.isEncrypted()&&n.getClearContent()&&(i=n.getClearContent()),!i||!i.body||"string"!=typeof i.body)return!1;const o=e.getRoom(n.getRoomId());if(!(o&&o.currentState&&o.currentState.members&&o.currentState.getMember(e.credentials.userId)))return!1;const s=o.currentState.getMember(e.credentials.userId).name,a=new RegExp("(^|\\W)"+(0,r.escapeRegExp)(s)+"(\\W|$)","i");return i.body.search(a)>-1},d=function(e,t){return!1},h=function(e,t){if(!e.key)return!1;const n=m(e.key,t);if("string"!=typeof n)return!1;if(e.value)return e.value===n;let r;return r="content.body"==e.key?p("(^|\\W)",e.pattern,"(\\W|$)"):p("^",e.pattern,"$"),!!n.match(r)},p=function(e,n,i){return t[n]?t[n]:(t[n]=new RegExp(e+(0,r.globToRegexp)(n)+i,"i"),t[n])},m=function(e,t){const n=e.split(".");let i;const o=n[0];for("content"===o?(i=t.getContent(),n.shift()):"type"===o?(i=t.getType(),n.shift()):i=t.event;n.length>0;){const e=n.shift();if((0,r.isNullOrUndefined)(i[e]))return null;i=i[e]}return i},g=function(t,r){const i=function(t,r){if(!r||!r.device)return null;if(t.getSender()==e.credentials.userId)return null;const i=Object.keys(r.device);for(let e=0;et.rule_id===e.rule_id)){const t=e.rule_id;console.warn(`Adding default global override for ${t}`),n.push(e)}}return t}(e.pushRules);return g(t,n)},this.getPushRuleById=function(t){for(const n of["device","global"])if(void 0!==e.pushRules[n])for(const r of i)if(void 0!==e.pushRules[n][r])for(const i of e.pushRules[n][r])if(i.rule_id===t)return i;return null}}s.actionListToActionsObject=function(e){const t={notify:!1,tweaks:{}};for(let n=0;n{const t=o.find(t=>t.rule_id===e.rule_id);return t?(e.default=t.default,e.conditions=t.conditions,e.actions=t.actions,e):e}),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Filter=o;var r=n(282);function i(e,t,n){const r=t.split(".");let i=e;for(let e=0;et!==e)}if(r)return t+" ("+e+")";return t}(this.userId,e.getDirectionalContent().displayname,t),this.rawDisplayName=e.getDirectionalContent().displayname||this.userId,n!==this.membership&&(this._updateModifiedTime(),this.emit("RoomMember.membership",e,this,n)),r!==this.name&&(this._updateModifiedTime(),this.emit("RoomMember.name",e,this,r))},a.prototype.setPowerLevelEvent=function(e){if("m.room.power_levels"!==e.getType())return;const t=e.getDirectionalContent();let n=t.users_default||0;s.forEach(s.values(t.users),(function(e){n=Math.max(n,e)}));const r=this.powerLevel,i=this.powerLevelNorm;t.users&&void 0!==t.users[this.userId]?this.powerLevel=t.users[this.userId]:void 0!==t.users_default?this.powerLevel=t.users_default:this.powerLevel=0,this.powerLevelNorm=0,n>0&&(this.powerLevelNorm=100*this.powerLevel/n),r===this.powerLevel&&i===this.powerLevelNorm||(this._updateModifiedTime(),this.emit("RoomMember.powerLevel",e,this))},a.prototype.setTypingEvent=function(e){if("m.typing"!==e.getType())return;const t=this.typing;this.typing=!1;const n=e.getContent().user_ids;s.isArray(n)&&(-1!==n.indexOf(this.userId)&&(this.typing=!0),t!==this.typing&&(this._updateModifiedTime(),this.emit("RoomMember.typing",e,this)))},a.prototype._updateModifiedTime=function(){this._modified=Date.now()},a.prototype.getLastModifiedTime=function(){return this._modified},a.prototype.isKicked=function(){return"leave"===this.membership&&this.events.member.getSender()!==this.events.member.getStateKey()},a.prototype.getDMInviter=function(){if(this.events.member){const e=this.events.member;let t=e.getContent(),n=e.getSender();if("join"===t.membership&&(t=e.getPrevContent(),n=e.getUnsigned().prev_sender),"invite"===t.membership&&t.is_direct)return n}},a.prototype.getAvatarUrl=function(e,t,n,r,i,s){void 0===i&&(i=!0);const a=this.getMxcAvatarUrl();if(!a&&!i)return null;const c=(0,o.getHttpUriForMxc)(e,a,t,n,r,s);return c||(i?(0,o.getIdenticonUri)(e,this.userId,t,n):null)},a.prototype.getMxcAvatarUrl=function(){return this.events.member?this.events.member.getDirectionalContent().avatar_url:this.user?this.user.avatarUrl:null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReEmitter=void 0;t.ReEmitter=class{constructor(e){this.target=e,this.boundHandlers={}}_handleEvent(e,...t){this.target.emit(e,...t)}reEmit(e,t){const n=(t,...n)=>{t(...n,e)};for(const r of t){void 0===this.boundHandlers[r]&&(this.boundHandlers[r]=this._handleEvent.bind(this,r));const t=n.bind(this,this.boundHandlers[r]);e.on(r,t)}}}},function(e,t,n){"use strict";function r(e,t){const n=`Store is invalid because ${e}, `+"please stop the client, delete all data and start the client again",r=Reflect.construct(Error,[n]);return Reflect.setPrototypeOf(r,Reflect.getPrototypeOf(this)),r.reason=e,r.value=t,r}function i(e){const t=`Crypto store is invalid because ${e}, `+"please stop the client, delete all data and start the client again",n=Reflect.construct(Error,[t]);return Reflect.setPrototypeOf(n,Reflect.getPrototypeOf(this)),n.reason=e,n.name="InvalidCryptoStoreError",n}Object.defineProperty(t,"__esModule",{value:!0}),t.InvalidStoreError=r,t.InvalidCryptoStoreError=i,r.TOGGLED_LAZY_LOADING="TOGGLED_LAZY_LOADING",r.prototype=Object.create(Error.prototype,{constructor:{value:Error,enumerable:!1,writable:!0,configurable:!0}}),Reflect.setPrototypeOf(r,Error),i.TOO_NEW="TOO_NEW",i.prototype=Object.create(Error.prototype,{constructor:{value:Error,enumerable:!1,writable:!0,configurable:!0}}),Reflect.setPrototypeOf(i,Error)},function(e,t,n){"use strict";for(var r=/[\\\"\x00-\x1F]/g,i={},o=0;o<32;++o)i[String.fromCharCode(o)]="\\U"+("0000"+o.toString(16)).slice(-4).toUpperCase();function s(e){return r.lastIndex=0,e.replace(r,(function(e){return i[e]}))}function a(e){switch(typeof e){case"string":return'"'+s(e)+'"';case"number":return isFinite(e)?e:"null";case"boolean":return e;case"object":return null===e?"null":Array.isArray(e)?function(e){for(var t="[",n="",r=0;re+": "+t[e]).join(", "));return n+="]",n}(this,n)}}t.DecryptionError=o;class s extends Error{constructor(e,t){super(e),this.name="UnknownDeviceError",this.devices=t}}t.UnknownDeviceError=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VerificationRequest=t.PHASE_DONE=t.PHASE_CANCELLED=t.PHASE_STARTED=t.PHASE_REQUESTED=t.PHASE_UNSENT=t.DONE_TYPE=t.CANCEL_TYPE=t.START_TYPE=t.REQUEST_TYPE=t.EVENT_PREFIX=void 0;var r=n(5),i=n(302),o=n(10),s=n(36);const a="m.key.verification.";t.EVENT_PREFIX=a;const c=a+"request";t.REQUEST_TYPE=c;const f=a+"start";t.START_TYPE=f;const u=a+"cancel";t.CANCEL_TYPE=u;t.DONE_TYPE="m.key.verification.done";t.PHASE_UNSENT=1;t.PHASE_REQUESTED=2;t.PHASE_STARTED=4;t.PHASE_CANCELLED=5;t.PHASE_DONE=6;class l extends o.EventEmitter{constructor(e,t,n,r){super(),this.channel=e,this._verificationMethods=t,this._client=r,this._commonMethods=[],this._setPhase(1,!1),this._requestEvent=null,this._otherUserId=n,this._initiatedByMe=null,this._startTimestamp=null}static validateEvent(e,t,n,i){const o=t.getContent();if(!e.startsWith(a))return!1;if(e===c&&!Array.isArray(o.methods))return!1;if(!(e!==c&&e!==f||"string"==typeof o.from_device&&0!==o.from_device.length))return!1;if(Number.isFinite(n)){const e=Date.now()-n;if(e>597e3||e<-3e5)return r.logger.log("received verification that is too old or from the future"),!1}return!0}get methods(){return this._commonMethods}get timeout(){const e=Date.now()-this._startTimestamp;return Math.max(0,6e5-e)}get event(){return this._requestEvent}get phase(){return this._phase}get verifier(){return this._verifier}get pending(){return 1!==this._phase&&6!==this._phase&&5!==this._phase}get initiatedByMe(){return this._initiatedByMe}get requestingUserId(){return this.initiatedByMe?this._client.getUserId():this._otherUserId}get receivingUserId(){return this.initiatedByMe?this._otherUserId:this._client.getUserId()}beginKeyVerification(e,t=null){if(!this._verifier&&this._hasValidPreStartPhase()){if(this._commonMethods.length&&!this._commonMethods.includes(e))throw(0,s.newUnknownMethodError)();if(this._verifier=this._createVerifier(e,null,t),!this._verifier)throw(0,s.newUnknownMethodError)()}return this._verifier}async sendRequest(){if(1===this._phase){this._initiatedByMe=!0,this._setPhase(2,!1);const e=[...this._verificationMethods.keys()];await this.channel.send(c,{methods:e}),this.emit("change")}}async cancel({reason:e="User declined",code:t="m.user"}={}){if(5!==this._phase){if(this._verifier)return this._verifier.cancel((0,s.errorFactory)(t,e));this._setPhase(5,!1),await this.channel.send(u,{code:t,reason:e}),this.emit("change")}}waitForVerifier(){return this.verifier?Promise.resolve(this.verifier):new Promise(e=>{const t=()=>{this.verifier&&(this.off("change",t),e(this.verifier))};this.on("change",t)})}_setPhase(e,t=!0){this._phase=e,t&&this.emit("change")}async handleEvent(e,t,n){const r=t.getContent();e!==c&&e!==f||null===this._startTimestamp&&(this._startTimestamp=n),e===c?await this._handleRequest(r,t):e===f&&await this._handleStart(r,t),this._verifier&&(e===u||this._verifier.events&&this._verifier.events.includes(e))&&this._verifier.handleEvent(t),e===u?this._handleCancel():"m.key.verification.done"===e&&this._handleDone()}async _handleRequest(e,t){if(1===this._phase){const n=e.methods;this._commonMethods=n.filter(e=>this._verificationMethods.has(e)),this._requestEvent=t,this._initiatedByMe=this._wasSentByMe(t),this._setPhase(2)}else 2!==this._phase&&(r.logger.warn("Ignoring flagged verification request from "+t.getSender()),await this.cancel((0,s.errorFromEvent)((0,s.newUnexpectedMessageError)())))}_hasValidPreStartPhase(){return 2===this._phase||this.channel.constructor.canCreateRequest(f)&&1===this._phase}async _handleStart(e,t){if(this._hasValidPreStartPhase()){const{method:n}=e;this._verificationMethods.has(n)?(1===this.phase&&(this._initiatedByMe=this._wasSentByMe(t)),this._verifier=this._createVerifier(n,t),this._setPhase(4)):await this.cancel((0,s.errorFromEvent)((0,s.newUnknownMethodError)()))}}handleVerifierSend(e,t){e===u?this._handleCancel():e===f&&(1!==this._phase&&2!==this._phase||(this._initiatedByMe=1===this.phase,this._setPhase(4)))}_handleCancel(){5!==this._phase&&this._setPhase(5)}_handleDone(){4===this._phase&&this._setPhase(6)}_createVerifier(e,t=null,n=null){const r=t&&this._wasSentByMe(t),{userId:o,deviceId:s}=this._getVerifierTarget(t,n),a=this._verificationMethods.get(e);if(a)return new a(new i.RequestCallbackChannel(this,this.channel),this._client,o,s,r?null:t);console.warn("could not find verifier constructor for method",e)}_getVerifierTarget(e,t){if(t)return t;{let t;if(e&&!this._wasSentByMe(e))t=e;else{if(!this._requestEvent||this._wasSentByMe(this._requestEvent))throw new Error("can't determine who the verifier should be targeted at. No .request or .start event and no targetDevice");t=this._requestEvent}const n=t.getSender(),r=t.getContent();return{userId:n,deviceId:r&&r.from_device}}}_wasSentByMe(e){if(e.getSender()!==this._client.getUserId())return!1;const t=e.getContent();return!(!t||t.from_device!==this._client.getDeviceId())}}t.VerificationRequest=l},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,i=Array.isArray,o=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r1;){var t=e.pop(),n=t.obj[t.prop];if(i(n)){for(var r=[],o=0;o=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122?i+=r.charAt(s):a<128?i+=o[a]:a<2048?i+=o[192|a>>6]+o[128|63&a]:a<55296||a>=57344?i+=o[224|a>>12]+o[128|a>>6&63]+o[128|63&a]:(s+=1,a=65536+((1023&a)<<10|1023&r.charCodeAt(s)),i+=o[240|a>>18]+o[128|a>>12&63]+o[128|a>>6&63]+o[128|63&a])}return i},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},merge:function e(t,n,o){if(!n)return t;if("object"!=typeof n){if(i(t))t.push(n);else{if(!t||"object"!=typeof t)return[t,n];(o&&(o.plainObjects||o.allowPrototypes)||!r.call(Object.prototype,n))&&(t[n]=!0)}return t}if(!t||"object"!=typeof t)return[t].concat(n);var a=t;return i(t)&&!i(n)&&(a=s(t,o)),i(t)&&i(n)?(n.forEach((function(n,i){if(r.call(t,i)){var s=t[i];s&&"object"==typeof s&&n&&"object"==typeof n?t[i]=e(s,n,o):t.push(n)}else t[i]=n})),t):Object.keys(n).reduce((function(t,i){var s=n[i];return r.call(t,i)?t[i]=e(t[i],s,o):t[i]=s,t}),a)}}},function(e,t,n){"use strict";t.__esModule=!0,t.AMPERSAND=t.CLOSEPAREN=t.CLOSEANGLEBRACKET=t.CLOSEBRACKET=t.CLOSEBRACE=t.OPENPAREN=t.OPENANGLEBRACKET=t.OPENBRACKET=t.OPENBRACE=t.WS=t.TLD=t.SYM=t.UNDERSCORE=t.SLASH=t.MAILTO=t.PROTOCOL=t.QUERY=t.POUND=t.PLUS=t.NUM=t.NL=t.LOCALHOST=t.PUNCTUATION=t.DOT=t.COLON=t.AT=t.DOMAIN=t.Base=void 0;var r=n(147),i=n(52),o=(0,r.createTokenClass)();function s(e){var t=e?{v:e}:{};return(0,i.inherits)(o,(0,r.createTokenClass)(),t)}o.prototype={toString:function(){return this.v+""}};var a=s(),c=s("@"),f=s(":"),u=s("."),l=s(),d=s(),h=s("\n"),p=s(),m=s("+"),g=s("#"),y=s(),b=s("mailto:"),_=s("?"),v=s("/"),A=s("_"),w=s(),E=s(),k=s(),S=s("{"),I=s("["),T=s("<"),R=s("("),O=s("}"),x=s("]"),C=s(">"),P=s(")"),M=s("&");t.Base=o,t.DOMAIN=a,t.AT=c,t.COLON=f,t.DOT=u,t.PUNCTUATION=l,t.LOCALHOST=d,t.NL=h,t.NUM=p,t.PLUS=m,t.POUND=g,t.QUERY=_,t.PROTOCOL=y,t.MAILTO=b,t.SLASH=v,t.UNDERSCORE=A,t.SYM=w,t.TLD=E,t.WS=k,t.OPENBRACE=S,t.OPENBRACKET=I,t.OPENANGLEBRACKET=T,t.OPENPAREN=R,t.CLOSEBRACE=O,t.CLOSEBRACKET=x,t.CLOSEANGLEBRACKET=C,t.CLOSEPAREN=P,t.AMPERSAND=M},function(e,t,n){var r=n(170),i=n(171),o=n(172);e.exports=function(e){return r(e)||i(e)||o()}},function(e,t,n){"use strict";var r=n(0),i=n.n(r),o=(n(9),n(156)),s=n.n(o);t.a=function(e){var t=e.message,n=e.userId,r=e.botId,o=e.client,a=function(){switch(t.sender){case"from-me":case n:return"from-me";case r:return"from-bot";default:return"from-support"}};if(e.placeholder)return i.a.createElement("div",{className:"message from-me placeholder"},i.a.createElement("div",{className:"text"},t.content.body));if("m.file"===t.content.msgtype){var c=o.mxcUrlToHttp(t.content.url);return(i.a.createElement("div",{className:"message ".concat(a())},i.a.createElement("div",{className:"text"},i.a.createElement("a",{href:c,target:"_blank",rel:"noopener noreferrer"},t.content.body))))}if(t.content.formatted_body)return i.a.createElement("div",{className:"message ".concat(a())},i.a.createElement("div",{className:"text",dangerouslySetInnerHTML:{__html:t.content.formatted_body}}));return i.a.createElement("div",{className:"message ".concat(a())},i.a.createElement("div",{className:"text"},i.a.createElement(s.a,{options:{linkAttributes:{rel:"noreferrer noopener"}}},t.content.body)))}},function(e,t,n){"use strict";var r=n(0),i=n.n(r);n(9);t.a=function(e){var t=e.handleToggleOpen,n=e.handleExitChat,r=e.opened;return(i.a.createElement("div",{className:"widget-header"},i.a.createElement("button",{type:"button",className:"widget-header-minimize",onClick:t,onKeyPress:t,"aria-label":"Minimize the chat window",title:"Minimize the chat window"},i.a.createElement("span",{className:"btn-icon arrow ".concat(r?"opened":"closed")},"⌃"),i.a.createElement("span",null,"".concat(r?"Hide":"Show"," the chat"))),i.a.createElement("button",{type:"button",className:"widget-header-close",onClick:n,onKeyPress:n,"aria-label":"Exit the chat",title:"Exit the chat"},i.a.createElement("span",{className:"btn-icon"},"×"))))}},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=n=function(e){return typeof e}:e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(t)}e.exports=n},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t,r){var i=n(42);e.exports=_;var o,s=n(88);_.ReadableState=b;n(10).EventEmitter;var a=function(e,t){return e.listeners(t).length},c=n(90),f=n(58).Buffer,u=t.Uint8Array||function(){};var l=Object.create(n(29));l.inherits=n(2);var d=n(185),h=void 0;h=d&&d.debuglog?d.debuglog("stream"):function(){};var p,m=n(186),g=n(91);l.inherits(_,c);var y=["error","close","destroy","pause","resume"];function b(e,t){e=e||{};var r=t instanceof(o=o||n(20));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,s=e.readableHighWaterMark,a=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(s||0===s)?s:a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=n(60).StringDecoder),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function _(e){if(o=o||n(20),!(this instanceof _))return new _(e);this._readableState=new b(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),c.call(this)}function v(e,t,n,r,i){var o,s=e._readableState;null===t?(s.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,E(e)}(e,s)):(i||(o=function(e,t){var n;r=t,f.isBuffer(r)||r instanceof u||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(s,t)),o?e.emit("error",o):s.objectMode||t&&t.length>0?("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===f.prototype||(t=function(e){return f.from(e)}(t)),r?s.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):A(e,s,t,!0):s.ended?e.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||0!==t.length?A(e,s,t,!1):S(e,s)):A(e,s,t,!1))):r||(s.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function E(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(k,e):k(e))}function k(e){h("emit readable"),e.emit("readable"),O(e)}function S(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(I,e,t))}function I(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;eo.length?o.length:e;if(s===o.length?i+=o:i+=o.slice(0,e),0===(e-=s)){s===o.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(s));break}++r}return t.length-=r,i}(e,t):function(e,t){var n=f.allocUnsafe(e),r=t.head,i=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var o=r.data,s=e>o.length?o.length:e;if(o.copy(n,n.length-e,0,s),0===(e-=s)){s===o.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(s));break}++i}return t.length-=i,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function C(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(P,t,e))}function P(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function M(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?C(this):E(this),null;if(0===(e=w(e,t))&&t.ended)return 0===t.length&&C(this),null;var r,i=t.needReadable;return h("need readable",i),(0===t.length||t.length-e0?x(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&C(this)),null!==r&&this.emit("data",r),r},_.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},_.prototype.pipe=function(e,t){var n=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,h("pipe count=%d opts=%j",o.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?u:_;function f(t,r){h("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,h("cleanup"),e.removeListener("close",y),e.removeListener("finish",b),e.removeListener("drain",l),e.removeListener("error",g),e.removeListener("unpipe",f),n.removeListener("end",u),n.removeListener("end",_),n.removeListener("data",m),d=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||l())}function u(){h("onend"),e.end()}o.endEmitted?i.nextTick(c):n.once("end",c),e.on("unpipe",f);var l=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,O(e))}}(n);e.on("drain",l);var d=!1;var p=!1;function m(t){h("ondata"),p=!1,!1!==e.write(t)||p||((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==M(o.pipes,e))&&!d&&(h("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,p=!0),n.pause())}function g(t){h("onerror",t),_(),e.removeListener("error",g),0===a(e,"error")&&e.emit("error",t)}function y(){e.removeListener("finish",b),_()}function b(){h("onfinish"),e.removeListener("close",y),_()}function _(){h("unpipe"),n.unpipe(e)}return n.on("data",m),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?s(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",g),e.once("close",y),e.once("finish",b),e.emit("pipe",n),o.flowing||(h("pipe resume"),n.resume()),e},_.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},o.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=o},function(e,t,n){var r=n(2),i=n(24),o=n(3).Buffer,s=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function c(){this.init(),this._w=a,i.call(this,64,56)}function f(e,t,n){return n^e&(t^n)}function u(e,t,n){return e&t|n&(e|t)}function l(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function h(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}r(c,i),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,p=0|this._f,m=0|this._g,g=0|this._h,y=0;y<16;++y)n[y]=e.readInt32BE(4*y);for(;y<64;++y)n[y]=0|(((t=n[y-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+n[y-7]+h(n[y-15])+n[y-16];for(var b=0;b<64;++b){var _=g+d(c)+f(c,p,m)+s[b]+n[b]|0,v=l(r)+u(r,i,o)|0;g=m,m=p,p=c,c=a+_|0,a=o,o=i,i=r,r=_+v|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0,this._f=p+this._f|0,this._g=m+this._g|0,this._h=g+this._h|0},c.prototype._hash=function(){var e=o.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=c},function(e,t,n){var r=n(2),i=n(24),o=n(3).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function c(){this.init(),this._w=a,i.call(this,128,112)}function f(e,t,n){return n^e&(t^n)}function u(e,t,n){return e&t|n&(e|t)}function l(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function y(e,t){return e>>>0>>0?1:0}r(c,i),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(e){for(var t=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,o=0|this._dh,a=0|this._eh,c=0|this._fh,b=0|this._gh,_=0|this._hh,v=0|this._al,A=0|this._bl,w=0|this._cl,E=0|this._dl,k=0|this._el,S=0|this._fl,I=0|this._gl,T=0|this._hl,R=0;R<32;R+=2)t[R]=e.readInt32BE(4*R),t[R+1]=e.readInt32BE(4*R+4);for(;R<160;R+=2){var O=t[R-30],x=t[R-30+1],C=h(O,x),P=p(x,O),M=m(O=t[R-4],x=t[R-4+1]),D=g(x,O),B=t[R-14],N=t[R-14+1],j=t[R-32],U=t[R-32+1],L=P+N|0,F=C+B+y(L,P)|0;F=(F=F+M+y(L=L+D|0,D)|0)+j+y(L=L+U|0,U)|0,t[R]=F,t[R+1]=L}for(var q=0;q<160;q+=2){F=t[q],L=t[q+1];var K=u(n,r,i),z=u(v,A,w),G=l(n,v),H=l(v,n),V=d(a,k),Q=d(k,a),W=s[q],Y=s[q+1],X=f(a,c,b),J=f(k,S,I),Z=T+Q|0,$=_+V+y(Z,T)|0;$=($=($=$+X+y(Z=Z+J|0,J)|0)+W+y(Z=Z+Y|0,Y)|0)+F+y(Z=Z+L|0,L)|0;var ee=H+z|0,te=G+K+y(ee,H)|0;_=b,T=I,b=c,I=S,c=a,S=k,a=o+$+y(k=E+Z|0,E)|0,o=i,E=w,i=r,w=A,r=n,A=v,n=$+te+y(v=Z+ee|0,Z)|0}this._al=this._al+v|0,this._bl=this._bl+A|0,this._cl=this._cl+w|0,this._dl=this._dl+E|0,this._el=this._el+k|0,this._fl=this._fl+S|0,this._gl=this._gl+I|0,this._hl=this._hl+T|0,this._ah=this._ah+n+y(this._al,v)|0,this._bh=this._bh+r+y(this._bl,A)|0,this._ch=this._ch+i+y(this._cl,w)|0,this._dh=this._dh+o+y(this._dl,E)|0,this._eh=this._eh+a+y(this._el,k)|0,this._fh=this._fh+c+y(this._fl,S)|0,this._gh=this._gh+b+y(this._gl,I)|0,this._hh=this._hh+_+y(this._hl,T)|0},c.prototype._hash=function(){var e=o.allocUnsafe(64);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=c},function(e,t,n){"use strict";var r=n(2),i=n(207),o=n(18),s=n(3).Buffer,a=n(98),c=n(62),f=n(63),u=s.alloc(128);function l(e,t){o.call(this,"digest"),"string"==typeof t&&(t=s.from(t));var n="sha512"===e||"sha384"===e?128:64;(this._alg=e,this._key=t,t.length>n)?t=("rmd160"===e?new c:f(e)).update(t).digest():t.lengthn||o!=o)throw new TypeError("Bad key length")}}).call(this,n(11).Buffer)},function(e,t,n){(function(t){var n;t.browser?n="utf-8":n=parseInt(t.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary";e.exports=n}).call(this,n(13))},function(e,t,n){var r=n(98),i=n(62),o=n(63),s=n(101),a=n(102),c=n(3).Buffer,f=c.alloc(128),u={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function l(e,t,n){var s=function(e){function t(t){return o(e).update(t).digest()}return"rmd160"===e||"ripemd160"===e?function(e){return(new i).update(e).digest()}:"md5"===e?r:t}(e),a="sha512"===e||"sha384"===e?128:64;t.length>a?t=s(t):t.length>>0},t.writeUInt32BE=function(e,t,n){e[0+n]=t>>>24,e[1+n]=t>>>16&255,e[2+n]=t>>>8&255,e[3+n]=255&t},t.ip=function(e,t,n,r){for(var i=0,o=0,s=6;s>=0;s-=2){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>>a+s&1}for(s=6;s>=0;s-=2){for(a=1;a<=25;a+=8)o<<=1,o|=t>>>a+s&1;for(a=1;a<=25;a+=8)o<<=1,o|=e>>>a+s&1}n[r+0]=i>>>0,n[r+1]=o>>>0},t.rip=function(e,t,n,r){for(var i=0,o=0,s=0;s<4;s++)for(var a=24;a>=0;a-=8)i<<=1,i|=t>>>a+s&1,i<<=1,i|=e>>>a+s&1;for(s=4;s<8;s++)for(a=24;a>=0;a-=8)o<<=1,o|=t>>>a+s&1,o<<=1,o|=e>>>a+s&1;n[r+0]=i>>>0,n[r+1]=o>>>0},t.pc1=function(e,t,n,r){for(var i=0,o=0,s=7;s>=5;s--){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+s&1}for(a=0;a<=24;a+=8)i<<=1,i|=t>>a+s&1;for(s=1;s<=3;s++){for(a=0;a<=24;a+=8)o<<=1,o|=t>>a+s&1;for(a=0;a<=24;a+=8)o<<=1,o|=e>>a+s&1}for(a=0;a<=24;a+=8)o<<=1,o|=e>>a+s&1;n[r+0]=i>>>0,n[r+1]=o>>>0},t.r28shl=function(e,t){return e<>>28-t};var r=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,n,i){for(var o=0,s=0,a=r.length>>>1,c=0;c>>r[c]&1;for(c=a;c>>r[c]&1;n[i+0]=o>>>0,n[i+1]=s>>>0},t.expand=function(e,t,n){var r=0,i=0;r=(1&e)<<5|e>>>27;for(var o=23;o>=15;o-=4)r<<=6,r|=e>>>o&63;for(o=11;o>=3;o-=4)i|=e>>>o&63,i<<=6;i|=(31&e)<<1|e>>>31,t[n+0]=r>>>0,t[n+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var n=0,r=0;r<4;r++){n<<=4,n|=i[64*r+(e>>>18-6*r&63)]}for(r=0;r<4;r++){n<<=4,n|=i[256+64*r+(t>>>18-6*r&63)]}return n>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,n=0;n>>o[n]&1;return t>>>0},t.padSplit=function(e,t,n){for(var r=e.toString(2);r.length>>1];n=o.r28shl(n,a),i=o.r28shl(i,a),o.pc2(n,i,e.keys,s)}},c.prototype._update=function(e,t,n,r){var i=this._desState,s=o.readUInt32BE(e,t),a=o.readUInt32BE(e,t+4);o.ip(s,a,i.tmp,0),s=i.tmp[0],a=i.tmp[1],"encrypt"===this.type?this._encrypt(i,s,a,i.tmp,0):this._decrypt(i,s,a,i.tmp,0),s=i.tmp[0],a=i.tmp[1],o.writeUInt32BE(n,s,r),o.writeUInt32BE(n,a,r+4)},c.prototype._pad=function(e,t){for(var n=e.length-t,r=t;r>>0,s=d}o.rip(a,s,r,i)},c.prototype._decrypt=function(e,t,n,r,i){for(var s=n,a=t,c=e.keys.length-2;c>=0;c-=2){var f=e.keys[c],u=e.keys[c+1];o.expand(s,e.tmp,0),f^=e.tmp[0],u^=e.tmp[1];var l=o.substitute(f,u),d=s;s=(a^o.permute(l))>>>0,a=d}o.rip(s,a,r,i)}},function(e,t,n){var r=n(31),i=n(3).Buffer,o=n(107);function s(e){var t=e._cipher.encryptBlockRaw(e._prev);return o(e._prev),t}t.encrypt=function(e,t){var n=Math.ceil(t.length/16),o=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*n)]);for(var a=0;ae;)n.ishrn(1);if(n.isEven()&&n.iadd(a),n.testn(1)||n.iadd(c),t.cmp(c)){if(!t.cmp(f))for(;n.mod(u).cmp(l);)n.iadd(h)}else for(;n.mod(o).cmp(d);)n.iadd(h);if(g(p=n.shrn(1))&&g(n)&&y(p)&&y(n)&&s.test(p)&&s.test(n))return n}}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r=n(12),i=n(67);function o(e){this.rand=e||new i.Rand}e.exports=o,o.create=function(e){return new o(e)},o.prototype._randbelow=function(e){var t=e.bitLength(),n=Math.ceil(t/8);do{var i=new r(this.rand.generate(n))}while(i.cmp(e)>=0);return i},o.prototype._randrange=function(e,t){var n=t.sub(e);return e.add(this._randbelow(n))},o.prototype.test=function(e,t,n){var i=e.bitLength(),o=r.mont(e),s=new r(1).toRed(o);t||(t=Math.max(1,i/48|0));for(var a=e.subn(1),c=0;!a.testn(c);c++);for(var f=e.shrn(c),u=a.toRed(o);t>0;t--){var l=this._randrange(new r(2),a);n&&n(l);var d=l.toRed(o).redPow(f);if(0!==d.cmp(s)&&0!==d.cmp(u)){for(var h=1;h0;t--){var u=this._randrange(new r(2),s),l=e.gcd(u);if(0!==l.cmpn(1))return l;var d=u.toRed(i).redPow(c);if(0!==d.cmp(o)&&0!==d.cmp(f)){for(var h=1;h>8,s=255&i;o?n.push(o,s):n.push(s)}return n},r.zero2=i,r.toHex=o,r.encode=function(e,t){return"hex"===t?o(e):e}},function(e,t,n){"use strict";var r=t;r.base=n(45),r.short=n(233),r.mont=n(234),r.edwards=n(235)},function(e,t,n){"use strict";var r=n(17).rotr32;function i(e,t,n){return e&t^~e&n}function o(e,t,n){return e&t^e&n^t&n}function s(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?i(t,n,r):1===e||3===e?s(t,n,r):2===e?o(t,n,r):void 0},t.ch32=i,t.maj32=o,t.p32=s,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},function(e,t,n){"use strict";var r=n(17),i=n(32),o=n(116),s=n(14),a=r.sum32,c=r.sum32_4,f=r.sum32_5,u=o.ch32,l=o.maj32,d=o.s0_256,h=o.s1_256,p=o.g0_256,m=o.g1_256,g=i.BlockHash,y=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function b(){if(!(this instanceof b))return new b;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=y,this.W=new Array(64)}r.inherits(b,g),e.exports=b,b.blockSize=512,b.outSize=256,b.hmacStrength=192,b.padLength=64,b.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r>6],i=0==(32&n);if(31==(31&n)){var o=n;for(n=0;128==(128&o);){if(o=e.readUInt8(t),e.isError(o))return o;n<<=7,n|=127&o}}else n&=31;return{cls:r,primitive:i,tag:n,tagStr:a.tag[n]}}function l(e,t,n){var r=e.readUInt8(n);if(e.isError(r))return r;if(!t&&128===r)return null;if(0==(128&r))return r;var i=127&r;if(i>4)return e.error("length octect is too long");r=0;for(var o=0;o=31)return r.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=a.tagClassByName[n||"universal"]<<6}(e,t,n,this.reporter);if(r.length<128)return(o=new i(2))[0]=s,o[1]=r.length,this._createEncoderBuffer([o,r]);for(var c=1,f=r.length;f>=256;f>>=8)c++;(o=new i(2+c))[0]=s,o[1]=128|c;f=1+c;for(var u=r.length;u>0;f--,u>>=8)o[f]=255&u;return this._createEncoderBuffer([o,r])},f.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var n=new i(2*e.length),r=0;r=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}var o=0;for(r=0;r=128;s>>=7)o++}var a=new i(o),c=a.length-1;for(r=e.length-1;r>=0;r--){s=e[r];for(a[c--]=127&s;(s>>=7)>0;)a[c--]=128|127&s}return this._createEncoderBuffer(a)},f.prototype._encodeTime=function(e,t){var n,r=new Date(e);return"gentime"===t?n=[u(r.getFullYear()),u(r.getUTCMonth()+1),u(r.getUTCDate()),u(r.getUTCHours()),u(r.getUTCMinutes()),u(r.getUTCSeconds()),"Z"].join(""):"utctime"===t?n=[u(r.getFullYear()%100),u(r.getUTCMonth()+1),u(r.getUTCDate()),u(r.getUTCHours()),u(r.getUTCMinutes()),u(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(n,"octstr")},f.prototype._encodeNull=function(){return this._createEncoderBuffer("")},f.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){var n=e.toArray();!e.sign&&128&n[0]&&n.unshift(0),e=new i(n)}if(i.isBuffer(e)){var r=e.length;0===e.length&&r++;var o=new i(r);return e.copy(o),0===e.length&&(o[0]=0),this._createEncoderBuffer(o)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);r=1;for(var s=e;s>=256;s>>=8)r++;for(s=(o=new Array(r)).length-1;s>=0;s--)o[s]=255&e,e>>=8;return 128&o[0]&&o.unshift(0),this._createEncoderBuffer(new i(o))},f.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},f.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},f.prototype._skipDefault=function(e,t,n){var r,i=this._baseState;if(null===i.default)return!1;var o=e.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,t,n).join()),o.length!==i.defaultBuffer.length)return!1;for(r=0;r(0,o.default)(n(135)));let P;t.ContentHelpers=C;let M=()=>new s.MemoryCryptoStore}).call(this,n(6))},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.MemoryStore=s;var i=n(47),o=r(n(8));function s(e){e=e||{},this.rooms={},this.groups={},this.users={},this.syncToken=null,this.filters={},this.accountData={},this.localStorage=e.localStorage,this._oobMembers={},this._clientOptions={}}s.prototype={getSyncToken:function(){return this.syncToken},isNewlyCreated:function(){return Promise.resolve(!0)},setSyncToken:function(e){this.syncToken=e},storeGroup:function(e){this.groups[e.groupId]=e},getGroup:function(e){return this.groups[e]||null},getGroups:function(){return o.values(this.groups)},storeRoom:function(e){this.rooms[e.roomId]=e,e.currentState.on("RoomState.members",this._onRoomMember.bind(this));const t=this;e.currentState.getMembers().forEach((function(n){t._onRoomMember(null,e.currentState,n)}))},_onRoomMember:function(e,t,n){if("invite"===n.membership)return;const r=this.users[n.userId]||new i.User(n.userId);n.name&&(r.setDisplayName(n.name),n.events.member&&r.setRawDisplayName(n.events.member.getDirectionalContent().displayname)),n.events.member&&n.events.member.getContent().avatar_url&&r.setAvatarUrl(n.events.member.getContent().avatar_url),this.users[r.userId]=r},getRoom:function(e){return this.rooms[e]||null},getRooms:function(){return o.values(this.rooms)},removeRoom:function(e){this.rooms[e]&&this.rooms[e].removeListener("RoomState.members",this._onRoomMember),delete this.rooms[e]},getRoomSummaries:function(){return o.map(o.values(this.rooms),(function(e){return e.summary}))},storeUser:function(e){this.users[e.userId]=e},getUser:function(e){return this.users[e]||null},getUsers:function(){return o.values(this.users)},scrollback:function(e,t){return[]},storeEvents:function(e,t,n,r){},storeFilter:function(e){e&&(this.filters[e.userId]||(this.filters[e.userId]={}),this.filters[e.userId][e.filterId]=e)},getFilter:function(e,t){return this.filters[e]&&this.filters[e][t]?this.filters[e][t]:null},getFilterIdByName:function(e){if(!this.localStorage)return null;try{return this.localStorage.getItem("mxjssdk_memory_filter_"+e)}catch(e){}return null},setFilterIdByName:function(e,t){if(this.localStorage)try{this.localStorage.setItem("mxjssdk_memory_filter_"+e,t)}catch(e){}},storeAccountDataEvents:function(e){const t=this;e.forEach((function(e){t.accountData[e.getType()]=e}))},getAccountData:function(e){return this.accountData[e]},setSyncData:function(e){return Promise.resolve()},wantsSave:function(){return!1},save:function(e){},startup:function(){return Promise.resolve()},getSavedSync:function(){return Promise.resolve(null)},getSavedSyncToken:function(){return Promise.resolve(null)},deleteAllData:function(){return this.rooms={},this.users={},this.syncToken=null,this.filters={},this.accountData={},Promise.resolve()},getOutOfBandMembers:function(e){return Promise.resolve(this._oobMembers[e]||null)},setOutOfBandMembers:function(e,t){return this._oobMembers[e]=t,Promise.resolve()},clearOutOfBandMembers:function(){return this._oobMembers={},Promise.resolve()},getClientOptions:function(){return Promise.resolve(this._clientOptions)},storeClientOptions:function(e){return this._clientOptions=Object.assign({},e),Promise.resolve()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SERVICE_TYPES=void 0;const r=Object.freeze({IS:"SERVICE_TYPE_IS",IM:"SERVICE_TYPE_IM"});t.SERVICE_TYPES=r},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.Room=g;var i=n(10),o=n(131),s=n(25),a=n(49),c=r(n(8)),f=n(19),u=n(76),l=n(285),d=n(5),h=n(77);const p=["1","2","3","4","5"];function m(e,t,n){const r={content:{},type:"m.receipt",room_id:t.getRoomId()};return r.content[t.getId()]={},r.content[t.getId()][n]={},r.content[t.getId()][n][e]={ts:t.getTs()},new f.MatrixEvent(r)}function g(e,t,n,r){if((r=r||{}).pendingEventOrdering=r.pendingEventOrdering||"chronological",this.reEmitter=new h.ReEmitter(this),-1===["chronological","detached"].indexOf(r.pendingEventOrdering))throw new Error("opts.pendingEventOrdering MUST be either 'chronological' or 'detached'. Got: '"+r.pendingEventOrdering+"'");this.myUserId=n,this.roomId=e,this.name=e,this.tags={},this.accountData={},this.summary=null,this.storageToken=r.storageToken,this._opts=r,this._txnToEvent={},this._receipts={},this._receiptCacheByEventId={},this._realReceipts={},this._notificationCounts={},this._timelineSets=[new o.EventTimelineSet(this,r)],this.reEmitter.reEmit(this.getUnfilteredTimelineSet(),["Room.timeline","Room.timelineReset"]),this._fixUpLegacyTimelineFields(),this._filteredTimelineSets={},"detached"==this._opts.pendingEventOrdering&&(this._pendingEventList=[]),this._blacklistUnverifiedDevices=null,this._selfMembership=null,this._summaryHeroes=null,this._client=t,this._opts.lazyLoadMembers?this._membersPromise=null:this._membersPromise=Promise.resolve()}c.inherits(g,i.EventEmitter),g.prototype.getVersion=function(){const e=this.currentState.getStateEvents("m.room.create","");if(!e)return d.logger.warn("Room "+this.room_id+" does not have an m.room.create event"),"1";const t=e.getContent().room_version;return void 0===t?"1":t},g.prototype.shouldUpgradeToVersion=function(){return p.includes(this.getVersion())?null:"5"},g.prototype.getRecommendedVersion=async function(){let e=(await this._client.getCapabilities())["m.room_versions"];if(!e){e={default:"5",available:{}};for(const t of p)e.available[t]="stable"}let t=this._checkVersionAgainstCapability(e);if(t.urgent&&t.needsUpgrade){if(d.logger.warn("Refreshing room version capability because the server looks to be supporting a newer room version we don't know about."),e=(await this._client.getCapabilities(!0))["m.room_versions"],!e)return d.logger.warn("No room version capability - assuming upgrade required."),t;t=this._checkVersionAgainstCapability(e)}return t},g.prototype._checkVersionAgainstCapability=function(e){const t=this.getVersion();d.logger.log(`[${this.roomId}] Current version: ${t}`),d.logger.log(`[${this.roomId}] Version capability: `,e);const n={version:t,needsUpgrade:!1,urgent:!1};return t===e.default?n:Object.keys(e.available).filter(t=>"stable"===e.available[t]).includes(t)?n:(n.version=e.default,n.needsUpgrade=!0,n.urgent=!!this.getVersion().match(/^[0-9]+[0-9.]*$/g),n.urgent?d.logger.warn(`URGENT upgrade required on ${this.roomId}`):d.logger.warn(`Non-urgent upgrade required on ${this.roomId}`),n)},g.prototype.userMayUpgradeRoom=function(e){return this.currentState.maySendStateEvent("m.room.tombstone",e)},g.prototype.getPendingEvents=function(){if("detached"!==this._opts.pendingEventOrdering)throw new Error("Cannot call getPendingEvents with pendingEventOrdering == "+this._opts.pendingEventOrdering);return this._pendingEventList},g.prototype.hasPendingEvent=function(e){if("detached"!==this._opts.pendingEventOrdering)throw new Error("Cannot call hasPendingEvent with pendingEventOrdering == "+this._opts.pendingEventOrdering);return this._pendingEventList.some(t=>t.getId()===e)},g.prototype.getLiveTimeline=function(){return this.getUnfilteredTimelineSet().getLiveTimeline()},g.prototype.getLastActiveTimestamp=function(){const e=this.getLiveTimeline().getEvents();if(e.length){return e[e.length-1].getTs()}return Number.MIN_SAFE_INTEGER},g.prototype.getMyMembership=function(){return this._selfMembership},g.prototype.getDMInviter=function(){if(this.myUserId){const e=this.getMember(this.myUserId);if(e)return e.getDMInviter()}if("invite"===this._selfMembership){if(2==this.getInvitedAndJoinedMemberCount()&&this._summaryHeroes.length)return this._summaryHeroes[0]}},g.prototype.guessDMUserId=function(){const e=this.getMember(this.myUserId);if(e){const t=e.getDMInviter();if(t)return t}if(Array.isArray(this._summaryHeroes)&&this._summaryHeroes.length)return this._summaryHeroes[0];const t=this.currentState.getMembers().find(e=>e.userId!==this.myUserId);return t?t.userId:this.myUserId},g.prototype.getAvatarFallbackMember=function(){if(this.getInvitedAndJoinedMemberCount()>2)return;const e=Array.isArray(this._summaryHeroes)&&this._summaryHeroes.length;if(e){const e=this._summaryHeroes.map(e=>this.getMember(e)).find(e=>!!e);if(e)return e}const t=this.currentState.getMembers();if(t.length<=2){const e=t.find(e=>e.userId!==this.myUserId);if(e)return e}if(e){const e=this._summaryHeroes.map(e=>this._client.getUser(e)).find(e=>!!e);if(e){const t=new u.RoomMember(this.roomId,e.userId);return t.user=e,t}}},g.prototype.updateMyMembership=function(e){const t=this._selfMembership;this._selfMembership=e,t!==e&&("leave"===e&&this._cleanupAfterLeaving(),this.emit("Room.myMembership",this,e,t))},g.prototype._loadMembersFromServer=async function(){const e=this._client.store.getSyncToken(),t=c.encodeParams({not_membership:"leave",at:e}),n=c.encodeUri("/rooms/$roomId/members?"+t,{$roomId:this.roomId}),r=this._client._http;return(await r.authedRequest(void 0,"GET",n)).chunk},g.prototype._loadMembers=async function(){let e=!1,t=await this._client.store.getOutOfBandMembers(this.roomId);return null===t&&(e=!0,t=await this._loadMembersFromServer(),d.logger.log(`LL: got ${t.length} `+`members from server for room ${this.roomId}`)),{memberEvents:t.map(this._client.getEventMapper()),fromServer:e}},g.prototype.loadMembersIfNeeded=function(){if(this._membersPromise)return this._membersPromise;this.currentState.markOutOfBandMembersStarted();const e=this._loadMembers().then(e=>(this.currentState.setOutOfBandMembers(e.memberEvents),this._client.isCryptoEnabled()&&this._client.isRoomEncrypted(this.roomId)&&this._client._crypto.trackRoomDevices(this.roomId),e.fromServer)).catch(e=>{throw this._membersPromise=null,this.currentState.markOutOfBandMembersFailed(),e});return e.then(e=>{if(e){const e=this.currentState.getMembers().filter(e=>e.isOutOfBand()).map(e=>e.events.member.event);return d.logger.log(`LL: telling store to write ${e.length}`+` members for room ${this.roomId}`),this._client.store.setOutOfBandMembers(this.roomId,e).catch(e=>{d.logger.log("LL: storing OOB room members failed, oh well",e)})}}).catch(e=>{d.logger.error(e)}),this._membersPromise=e,this._membersPromise},g.prototype.clearLoadedMembersIfNeeded=async function(){this._opts.lazyLoadMembers&&this._membersPromise&&(await this.loadMembersIfNeeded(),await this._client.store.clearOutOfBandMembers(this.roomId),this.currentState.clearOutOfBandMembers(),this._membersPromise=null)},g.prototype._cleanupAfterLeaving=function(){this.clearLoadedMembersIfNeeded().catch(e=>{d.logger.error("error after clearing loaded members from "+`room ${this.roomId} after leaving`),d.logger.log(e)})},g.prototype.resetLiveTimeline=function(e,t){for(let n=0;ne.isUnverified()))return!0}return!1},g.prototype.getTimelineSets=function(){return this._timelineSets},g.prototype.getUnfilteredTimelineSet=function(){return this._timelineSets[0]},g.prototype.getTimelineForEvent=function(e){return this.getUnfilteredTimelineSet().getTimelineForEvent(e)},g.prototype.addTimeline=function(){return this.getUnfilteredTimelineSet().addTimeline()},g.prototype.findEventById=function(e){return this.getUnfilteredTimelineSet().findEventById(e)},g.prototype.getUnreadNotificationCount=function(e){return e=e||"total",this._notificationCounts[e]},g.prototype.setUnreadNotificationCount=function(e,t){this._notificationCounts[e]=t},g.prototype.setSummary=function(e){const t=e["m.heroes"],n=e["m.joined_member_count"],r=e["m.invited_member_count"];Number.isInteger(n)&&this.currentState.setJoinedMemberCount(n),Number.isInteger(r)&&this.currentState.setInvitedMemberCount(r),Array.isArray(t)&&(this._summaryHeroes=t.filter(e=>e!==this.myUserId))},g.prototype.setBlacklistUnverifiedDevices=function(e){this._blacklistUnverifiedDevices=e},g.prototype.getBlacklistUnverifiedDevices=function(){return this._blacklistUnverifiedDevices},g.prototype.getAvatarUrl=function(e,t,n,r,i){const o=this.currentState.getStateEvents("m.room.avatar","");if(void 0===i&&(i=!0),!o&&!i)return null;const s=o?o.getContent().url:null;return s?(0,a.getHttpUriForMxc)(e,s,t,n,r):i?(0,a.getIdenticonUri)(e,this.roomId,t,n):null},g.prototype.getAliases=function(){const e=[],t=this.currentState.getStateEvents("m.room.aliases");if(t)for(let n=0;n"string"==typeof e&&("#"===e[0]&&!!e.endsWith(`:${r.getStateKey()}`)));Array.prototype.push.apply(e,t)}}return e},g.prototype.getCanonicalAlias=function(){const e=this.currentState.getStateEvents("m.room.canonical_alias","");return e?e.getContent().alias:null},g.prototype.addEventsToTimeline=function(e,t,n,r){n.getTimelineSet().addEventsToTimeline(e,t,n,r)},g.prototype.getMember=function(e){return this.currentState.getMember(e)},g.prototype.getJoinedMembers=function(){return this.getMembersWithMembership("join")},g.prototype.getJoinedMemberCount=function(){return this.currentState.getJoinedMemberCount()},g.prototype.getInvitedMemberCount=function(){return this.currentState.getInvitedMemberCount()},g.prototype.getInvitedAndJoinedMemberCount=function(){return this.getInvitedMemberCount()+this.getJoinedMemberCount()},g.prototype.getMembersWithMembership=function(e){return c.filter(this.currentState.getMembers(),(function(t){return t.membership===e}))},g.prototype.getEncryptionTargetMembers=async function(){await this.loadMembersIfNeeded();let e=this.getMembersWithMembership("join");return this.shouldEncryptForInvitedMembers()&&(e=e.concat(this.getMembersWithMembership("invite"))),e},g.prototype.shouldEncryptForInvitedMembers=function(){const e=this.currentState.getStateEvents("m.room.history_visibility","");return e&&e.getContent()&&"joined"!==e.getContent().history_visibility},g.prototype.getDefaultRoomName=function(e){return b(this,e,!0)},g.prototype.hasMembershipState=function(e,t){const n=this.getMember(e);return!!n&&n.membership===t},g.prototype.getOrCreateFilteredTimelineSet=function(e){if(this._filteredTimelineSets[e.filterId])return this._filteredTimelineSets[e.filterId];const t=Object.assign({filter:e},this._opts),n=new o.EventTimelineSet(this,t);this.reEmitter.reEmit(n,["Room.timeline","Room.timelineReset"]),this._filteredTimelineSets[e.filterId]=n,this._timelineSets.push(n);const r=this.getLiveTimeline();r.getEvents().forEach((function(e){n.addLiveEvent(e)}));let i=r;for(;i.getNeighbouringTimeline(s.EventTimeline.BACKWARDS);)i=i.getNeighbouringTimeline(s.EventTimeline.BACKWARDS);return n.getLiveTimeline().setPaginationToken(i.getPaginationToken(s.EventTimeline.BACKWARDS),s.EventTimeline.BACKWARDS),n},g.prototype.removeFilteredTimelineSet=function(e){const t=this._filteredTimelineSets[e.filterId];delete this._filteredTimelineSets[e.filterId];const n=this._timelineSets.indexOf(t);n>-1&&this._timelineSets.splice(n,1)},g.prototype._addLiveEvent=function(e,t){if(e.isRedaction()){const t=e.event.redacts,n=this.getUnfilteredTimelineSet().findEventById(t);if(n){if(n.makeRedacted(e),n.getStateKey()){this.currentState.getStateEvents(n.getType(),n.getStateKey()).getId()===n.getId()&&this.currentState.setStateEvents([n])}this.emit("Room.redaction",e,this)}}if(e.getUnsigned().transaction_id){const t=this._txnToEvent[e.getUnsigned().transaction_id];if(t)return void this._handleRemoteEcho(e,t)}for(let n=0;ne.status===f.EventStatus.NOT_SENT)&&(d.logger.warn("Setting event as NOT_SENT due to messages in the same state"),e.setStatus(f.EventStatus.NOT_SENT)),this._pendingEventList.push(e),e.isRelation()&&this._aggregateNonLiveRelation(e),e.isRedaction()){const t=e.event.redacts;let n=this._pendingEventList&&this._pendingEventList.find(e=>e.getId()===t);n||(n=this.getUnfilteredTimelineSet().findEventById(t)),n&&(n.markLocallyRedacted(e),this.emit("Room.redaction",e,this))}}else for(let t=0;t{const n=e.getMember(t);return n?n.name:t});else{let n=e.currentState.getMembers().filter(e=>e.userId!==t&&("invite"===e.membership||"join"===e.membership));n.sort((e,t)=>e.userId.localeCompare(t.userId)),n=n.slice(0,5),o=n.map(e=>e.name)}if(i)return _(o,i);if("join"==e.getMyMembership()){const t=e.currentState.getStateEvents("m.room.third_party_invite");if(t&&t.length){return`Inviting ${_(t.map(e=>e.getContent().display_name))}`}}let s=o;return s.length||(s=e.currentState.getMembers().filter(e=>e.userId!==t&&"invite"!==e.membership&&"join"!==e.membership).map(e=>e.name)),s.length?`Empty room (was ${_(s)})`:"Empty room"}function _(e,t=e.length+1){const n=t-1;if(e.length){if(1===e.length&&n<=1)return e[0];if(2===e.length&&n<=2)return`${e[0]} and ${e[1]}`;return n>1?`${e[0]} and ${n} others`:`${e[0]} and 1 other`}return"Empty room"}y[f.EventStatus.ENCRYPTING]=[f.EventStatus.SENDING,f.EventStatus.NOT_SENT],y[f.EventStatus.SENDING]=[f.EventStatus.ENCRYPTING,f.EventStatus.QUEUED,f.EventStatus.NOT_SENT,f.EventStatus.SENT],y[f.EventStatus.QUEUED]=[f.EventStatus.SENDING,f.EventStatus.CANCELLED],y[f.EventStatus.SENT]=[],y[f.EventStatus.NOT_SENT]=[f.EventStatus.SENDING,f.EventStatus.QUEUED,f.EventStatus.CANCELLED],y[f.EventStatus.CANCELLED]=[],g.prototype.updatePendingEvent=function(e,t,n){if(d.logger.log(`setting pendingEvent status to ${t} in ${e.getRoomId()}`),t==f.EventStatus.SENT&&!n)throw new Error("updatePendingEvent called with status=SENT, but no new event id");if(t==f.EventStatus.SENT){if(this.getUnfilteredTimelineSet().eventIdToTimeline(n))return}const r=e.status,i=e.getId();if(!r)throw new Error("updatePendingEventStatus called on an event which is not a local echo.");const o=y[r];if(!o||o.indexOf(t)<0)throw new Error("Invalid EventStatus transition "+r+"->"+t);if(e.setStatus(t),t==f.EventStatus.SENT){e.replaceLocalEventId(n);for(let e=0;ee.getId()===i);if(-1!==e){const[t]=this._pendingEventList.splice(e,1);t.isRedaction()&&this._revertRedactionLocalEcho(t)}}this.removeEvent(i)}this.emit("Room.localEchoUpdated",e,this,i,r)},g.prototype._revertRedactionLocalEcho=function(e){const t=e.event.redacts;if(!t)return;const n=this.getUnfilteredTimelineSet().findEventById(t);n&&(n.unmarkLocallyRedacted(),this.emit("Room.redactionCancelled",e,this),n.isRelation()&&this._aggregateNonLiveRelation(n))},g.prototype.addLiveEvents=function(e,t){let n;if(t&&-1===["replace","ignore"].indexOf(t))throw new Error("duplicateStrategy MUST be either 'replace' or 'ignore'");for(n=0;n=0;--e){const r=this.timeline[e];if(r.getId()===t)return!1;if(r.getId()===n)return!0}return!1},g.prototype.getReceiptsForEvent=function(e){return this._receiptCacheByEventId[e.getId()]||[]},g.prototype.addReceipt=function(e,t){void 0===t&&(t=!1),t||this._addReceiptsToStructure(e,this._realReceipts),this._addReceiptsToStructure(e,this._receipts),this._receiptCacheByEventId=this._buildReceiptCache(this._receipts),this.emit("Room.receipt",e,this)},g.prototype._addReceiptsToStructure=function(e,t){const n=this;c.keys(e.getContent()).forEach((function(r){c.keys(e.getContent()[r]).forEach((function(i){c.keys(e.getContent()[r][i]).forEach((function(o){const s=e.getContent()[r][i][o];t[i]||(t[i]={});const a=t[i][o];if(a){const e=n.getUnfilteredTimelineSet().compareEventOrdering(a.eventId,r);if(null!==e&&e>=0)return}else t[i][o]={};t[i][o]={eventId:r,data:s}}))}))}))},g.prototype._buildReceiptCache=function(e){const t={};return c.keys(e).forEach((function(n){c.keys(e[n]).forEach((function(r){const i=e[n][r];t[i.eventId]||(t[i.eventId]=[]),t[i.eventId].push({userId:r,type:n,data:i.data})}))})),t},g.prototype._addLocalEchoReceipt=function(e,t,n){this.addReceipt(m(e,t,n),!0)},g.prototype.addTags=function(e){this.tags=e.getContent().tags||{},this.emit("Room.tags",e,this)},g.prototype.addAccountData=function(e){for(let t=0;t{this.aggregateRelations(e)});const t=e.getRelation();if(!t)return;const n=t.event_id,r=t.rel_type,i=e.getType();let o=this._relations[n];o||(o=this._relations[n]={});let a=o[r];a||(a=o[r]={});let c,u=a[i],l=!1;u||(u=a[i]=new f.Relations(r,i,this.room),l=!0,c=this.findEventById(n),c&&u.setTargetEvent(c)),u.addEvent(e),l&&c&&c.emit("Event.relationsCreated",r,i)}},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.RoomState=c;var i=n(10),o=n(76),s=n(5),a=r(n(8));function c(e,t){this.roomId=e,this.members={},this.events={},this.paginationToken=null,this._sentinels={},this._updateModifiedTime(),this._displayNameToUserIds={},this._userIdsToDisplayNames={},this._tokenToInvite={},this._joinedMemberCount=null,this._summaryJoinedMemberCount=null,this._invitedMemberCount=null,this._summaryInvitedMemberCount=null,t||(t={status:1}),this._oobMemberFlags=t}function f(e,t,n){const r=e._userIdsToDisplayNames[t];if(delete e._userIdsToDisplayNames[t],r){const n=a.removeHiddenChars(r),i=e._displayNameToUserIds[n];if(i){const r=i.filter(e=>e!==t);e._displayNameToUserIds[n]=r}}e._userIdsToDisplayNames[t]=n;const i=n&&a.removeHiddenChars(n);i&&(e._displayNameToUserIds[i]||(e._displayNameToUserIds[i]=[]),e._displayNameToUserIds[i].push(t))}a.inherits(c,i.EventEmitter),c.prototype.getJoinedMemberCount=function(){return null!==this._summaryJoinedMemberCount?this._summaryJoinedMemberCount:(null===this._joinedMemberCount&&(this._joinedMemberCount=this.getMembers().reduce((e,t)=>"join"===t.membership?e+1:e,0)),this._joinedMemberCount)},c.prototype.setJoinedMemberCount=function(e){this._summaryJoinedMemberCount=e},c.prototype.getInvitedMemberCount=function(){return null!==this._summaryInvitedMemberCount?this._summaryInvitedMemberCount:(null===this._invitedMemberCount&&(this._invitedMemberCount=this.getMembers().reduce((e,t)=>"invite"===t.membership?e+1:e,0)),this._invitedMemberCount)},c.prototype.setInvitedMemberCount=function(e){this._summaryInvitedMemberCount=e},c.prototype.getMembers=function(){return a.values(this.members)},c.prototype.getMembersExcept=function(e){return a.values(this.members).filter(t=>!e.includes(t.userId))},c.prototype.getMember=function(e){return this.members[e]||null},c.prototype.getSentinelMember=function(e){if(!e)return null;let t=this._sentinels[e];if(void 0===t){t=new o.RoomMember(this.roomId,e);const n=this.members[e];n&&t.setMembershipEvent(n.events.member,this),this._sentinels[e]=t}return t},c.prototype.getStateEvents=function(e,t){if(!this.events[e])return void 0===t?[]:null;if(void 0===t)return a.values(this.events[e]);const n=this.events[e][t];return n||null},c.prototype.clone=function(){const e=new c(this.roomId,this._oobMemberFlags),t=this._oobMemberFlags.status;return this._oobMemberFlags.status=1,Object.values(this.events).forEach(t=>{const n=Object.values(t);e.setStateEvents(n)}),this._oobMemberFlags.status=t,null!==this._summaryInvitedMemberCount&&e.setInvitedMemberCount(this.getInvitedMemberCount()),null!==this._summaryJoinedMemberCount&&e.setJoinedMemberCount(this.getJoinedMemberCount()),3==this._oobMemberFlags.status&&this.getMembers().forEach(t=>{if(t.isOutOfBand()){e.getMember(t.userId).markOutOfBand()}}),e},c.prototype.setUnknownStateEvents=function(e){const t=e.filter(e=>void 0===this.events[e.getType()]||void 0===this.events[e.getType()][e.getStateKey()]);this.setStateEvents(t)},c.prototype.setStateEvents=function(e){const t=this;this._updateModifiedTime(),a.forEach(e,(function(e){e.getRoomId()===t.roomId&&e.isState()&&(t._setStateEvent(e),"m.room.member"===e.getType()&&(f(t,e.getStateKey(),e.getContent().displayname),function(e,t){if(!t.getContent().third_party_invite)return;const n=(t.getContent().third_party_invite.signed||{}).token;if(!n)return;if(!e.getStateEvents("m.room.third_party_invite",n))return;e._tokenToInvite[n]=t}(t,e)),t.emit("RoomState.events",e,t))})),a.forEach(e,(function(e){if(e.getRoomId()===t.roomId&&e.isState())if("m.room.member"===e.getType()){const n=e.getStateKey();"leave"!==e.getContent().membership&&"ban"!==e.getContent().membership||(e.getContent().avatar_url=e.getContent().avatar_url||e.getPrevContent().avatar_url,e.getContent().displayname=e.getContent().displayname||e.getPrevContent().displayname);const r=t._getOrCreateMember(n,e);r.setMembershipEvent(e,t),t._updateMember(r),t.emit("RoomState.members",e,t,r)}else if("m.room.power_levels"===e.getType()){const n=a.values(t.members);a.forEach(n,(function(n){n.setPowerLevelEvent(e),t.emit("RoomState.members",e,t,n)})),t._sentinels={}}}))},c.prototype._getOrCreateMember=function(e,t){let n=this.members[e];return n||(n=new o.RoomMember(this.roomId,e),this.members[e]=n,this.emit("RoomState.newMember",t,this,n)),n},c.prototype._setStateEvent=function(e){void 0===this.events[e.getType()]&&(this.events[e.getType()]={}),this.events[e.getType()][e.getStateKey()]=e},c.prototype._updateMember=function(e){const t=this.getStateEvents("m.room.power_levels","");t&&e.setPowerLevelEvent(t),delete this._sentinels[e.userId],this.members[e.userId]=e,this._joinedMemberCount=null,this._invitedMemberCount=null},c.prototype.needsOutOfBandMembers=function(){return 1===this._oobMemberFlags.status},c.prototype.markOutOfBandMembersStarted=function(){1===this._oobMemberFlags.status&&(this._oobMemberFlags.status=2)},c.prototype.markOutOfBandMembersFailed=function(){2===this._oobMemberFlags.status&&(this._oobMemberFlags.status=1)},c.prototype.clearOutOfBandMembers=function(){let e=0;Object.keys(this.members).forEach(t=>{this.members[t].isOutOfBand()&&(++e,delete this.members[t])}),s.logger.log(`LL: RoomState removed ${e} members...`),this._oobMemberFlags.status=1},c.prototype.setOutOfBandMembers=function(e){s.logger.log(`LL: RoomState about to set ${e.length} OOB members ...`),2===this._oobMemberFlags.status&&(s.logger.log("LL: RoomState put in OOB_STATUS_FINISHED state ..."),this._oobMemberFlags.status=3,e.forEach(e=>this._setOutOfBandMember(e)))},c.prototype._setOutOfBandMember=function(e){if("m.room.member"!==e.getType())return;const t=e.getStateKey(),n=this.getMember(t);if(n&&!n.isOutOfBand())return;const r=this._getOrCreateMember(t,e);r.setMembershipEvent(e,this),r.markOutOfBand(),f(this,r.userId,r.name),this._setStateEvent(e),this._updateMember(r),this.emit("RoomState.members",e,this,r)},c.prototype.setTypingEvent=function(e){a.forEach(a.values(this.members),(function(t){t.setTypingEvent(e)}))},c.prototype.getInviteForThreePidToken=function(e){return this._tokenToInvite[e]||null},c.prototype._updateModifiedTime=function(){this._modified=Date.now()},c.prototype.getLastModifiedTime=function(){return this._modified},c.prototype.getUserIdsWithDisplayName=function(e){return this._displayNameToUserIds[a.removeHiddenChars(e)]||[]},c.prototype.maySendRedactionForEvent=function(e,t){const n=this.getMember(t);if(!n||"leave"===n.membership)return!1;if(e.status||e.isRedacted())return!1;const r=this.maySendEvent("m.room.redaction",t);return e.getSender()===t?r:this._hasSufficientPowerLevelFor("redact",n.powerLevel)},c.prototype._hasSufficientPowerLevelFor=function(e,t){const n=this.getStateEvents("m.room.power_levels","");let r={};n&&(r=n.getContent());let i=50;return a.isNumber(r[e])&&(i=r[e]),t>=i},c.prototype.maySendMessage=function(e){return this._maySendEventOfType("m.room.message",e,!1)},c.prototype.maySendEvent=function(e,t){return this._maySendEventOfType(e,t,!1)},c.prototype.mayClientSendStateEvent=function(e,t){return!t.isGuest()&&this.maySendStateEvent(e,t.credentials.userId)},c.prototype.maySendStateEvent=function(e,t){return this._maySendEventOfType(e,t,!0)},c.prototype._maySendEventOfType=function(e,t,n){const r=this.getStateEvents("m.room.power_levels","");let i,o={},s=0,a=0,c=0;if(r){i=r.getContent(),o=i.events||{},s=Number.isFinite(i.state_default)?i.state_default:50;const e=i.users&&i.users[t];Number.isFinite(e)?c=e:Number.isFinite(i.users_default)&&(c=i.users_default),Number.isFinite(i.events_default)&&(a=i.events_default)}let f=n?s:a;return Number.isFinite(o[e])&&(f=o[e]),c>=f},c.prototype.mayTriggerNotifOfType=function(e,t){const n=this.getMember(t);if(!n)return!1;const r=this.getStateEvents("m.room.power_levels","");let i=50;return r&&r.getContent()&&r.getContent().notifications&&a.isNumber(r.getContent().notifications[e])&&(i=r.getContent().notifications[e]),n.powerLevel>=i}},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.Group=s;var i=r(n(8)),o=n(10);function s(e){this.groupId=e,this.name=null,this.avatarUrl=null,this.myMembership=null,this.inviter=null}i.inherits(s,o.EventEmitter),s.prototype.setProfile=function(e,t){this.name===e&&this.avatarUrl===t||(this.name=e||this.groupId,this.avatarUrl=t,this.emit("Group.profile",this))},s.prototype.setMyMembership=function(e){this.myMembership!==e&&(this.myMembership=e,this.emit("Group.myMembership",this))},s.prototype.setInviter=function(e){this.inviter=e}},function(e,t,n){"use strict";(function(e){var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.MatrixCall=a,t.setAudioOutput=function(e){T=e},t.setAudioInput=function(e){R=e},t.setVideoInput=function(e){O=e},t.createNewMatrixCall=function(t,n,r){const o=e.window,s=e.document;if(!o||!s)return null;const c={};c.isOpenWebRTC=function(){const e=s.getElementById("script");if(!e||!e.length)return!1;for(let t=0;t-1)return!0;return!1};const f=o.navigator.getUserMedia||o.navigator.webkitGetUserMedia||o.navigator.mozGetUserMedia;f&&(c.getUserMedia=function(){return f.apply(o.navigator,arguments)});try{c.RtcPeerConnection=o.RTCPeerConnection||o.webkitRTCPeerConnection||o.mozRTCPeerConnection,c.RtcSessionDescription=o.RTCSessionDescription||o.webkitRTCSessionDescription||o.mozRTCSessionDescription,c.RtcIceCandidate=o.RTCIceCandidate||o.webkitRTCIceCandidate||o.mozRTCIceCandidate,c.vendor=null,o.mozRTCPeerConnection?c.vendor="mozilla":o.webkitRTCPeerConnection?c.vendor="webkit":o.RTCPeerConnection&&(c.vendor="generic")}catch(e){return i.logger.error("Failed to set up WebRTC object: possible browser interference?"),i.logger.error(e),null}if(!(c.RtcIceCandidate&&c.RtcSessionDescription&&c.RtcPeerConnection&&c.getUserMedia))return null;const u=!!r&&r.forceTURN;return new a({webRtc:c,client:t,URL:o.URL,roomId:n,turnServers:t.getTurnServers(),forceTURN:t._forceTURN||u})};var i=n(5),o=n(10),s=r(n(8));function a(e){this.roomId=e.roomId,this.client=e.client,this.webRtc=e.webRtc,this.forceTURN=e.forceTURN,this.URL=e.URL,this.turnServers=e.turnServers||[],0===this.turnServers.length&&this.client.isFallbackICEServerAllowed()&&this.turnServers.push({urls:[a.FALLBACK_ICE_SERVER]}),s.forEach(this.turnServers,(function(e){s.checkObjectHasKeys(e,["urls"])})),this.callId="c"+(new Date).getTime()+Math.random(),this.state="fledgling",this.didConnect=!1,this.candidateSendQueue=[],this.candidateSendTries=0,this.mediaPromises=Object.create(null),this.screenSharingStream=null,this._answerContent=null}a.CALL_TIMEOUT_MS=6e4,a.FALLBACK_ICE_SERVER="stun:turn.matrix.org",a.ERR_LOCAL_OFFER_FAILED="local_offer_failed",a.ERR_NO_USER_MEDIA="no_user_media",a.ERR_UNKNOWN_DEVICES="unknown_devices",a.ERR_SEND_INVITE="send_invite",a.ERR_SEND_ANSWER="send_answer",s.inherits(a,o.EventEmitter),a.prototype.placeVoiceCall=function(){_("placeVoiceCall"),y(this),A(this,k("voice")),this.type="voice"},a.prototype.placeVideoCall=function(e,t){_("placeVideoCall"),y(this),this.localVideoElement=t,this.remoteVideoElement=e,A(this,k("video")),this.type="video",m(this)},a.prototype.placeScreenSharingCall=function(e,t){_("placeScreenSharingCall"),y(this);const n=E(this);if(!n)return;this.localVideoElement=t,this.remoteVideoElement=e;const r=this;this.webRtc.getUserMedia(n,(function(e){r.screenSharingStream=e,_("Got screen stream, requesting audio stream...");const t=k("voice");A(r,t)}),(function(e){r.emit("error",b(a.ERR_NO_USER_MEDIA,"Failed to get screen-sharing stream: "+e))})),this.type="video",m(this)},a.prototype.playElement=function(e,t){i.logger.log("queuing play on "+t+" and element "+e),this.mediaPromises[t]?this.mediaPromises[t]=this.mediaPromises[t].then((function(){return i.logger.log("previous promise completed for "+t),e.play()}),(function(){return i.logger.log("previous promise failed for "+t),e.play()})):this.mediaPromises[t]=e.play()},a.prototype.pauseElement=function(e,t){i.logger.log("queuing pause on "+t+" and element "+e),this.mediaPromises[t]?this.mediaPromises[t]=this.mediaPromises[t].then((function(){return i.logger.log("previous promise completed for "+t),e.pause()}),(function(){return i.logger.log("previous promise failed for "+t),e.pause()})):this.mediaPromises[t]=e.pause()},a.prototype.assignElement=function(e,t,n){i.logger.log("queuing assign on "+n+" element "+e+" for "+t),this.mediaPromises[n]?this.mediaPromises[n]=this.mediaPromises[n].then((function(){i.logger.log("previous promise completed for "+n),e.srcObject=t}),(function(){i.logger.log("previous promise failed for "+n),e.srcObject=t})):e.srcObject=t},a.prototype.getLocalVideoElement=function(){return this.localVideoElement},a.prototype.getRemoteVideoElement=function(){return this.remoteVideoElement},a.prototype.getRemoteAudioElement=function(){return this.remoteAudioElement},a.prototype.setLocalVideoElement=function(e){if(this.localVideoElement=e,e&&this.localAVStream&&"video"===this.type){e.autoplay=!0,this.assignElement(e,this.localAVStream,"localVideo"),e.muted=!0;const t=this;setTimeout((function(){const e=t.getLocalVideoElement();e.play&&t.playElement(e,"localVideo")}),0)}},a.prototype.setRemoteVideoElement=function(e){this.remoteVideoElement=e,m(this)},a.prototype.setRemoteAudioElement=function(e){this.remoteVideoElement.muted=!0,this.remoteAudioElement=e,this.remoteAudioElement.muted=!1,g(this)},a.prototype._initWithInvite=function(e){this.msg=e.getContent(),this.peerConn=w(this);const t=this;this.peerConn&&this.peerConn.setRemoteDescription(new this.webRtc.RtcSessionDescription(this.msg.offer),S(t,t._onSetRemoteDescriptionSuccess),S(t,t._onSetRemoteDescriptionError)),u(this,"ringing"),this.direction="inbound",this.msg.offer&&this.msg.offer.sdp&&this.msg.offer.sdp.indexOf("m=video")>-1?this.type="video":this.type="voice",e.getAge()&&setTimeout((function(){"ringing"==t.state&&(_("Call invite has expired. Hanging up."),t.hangupParty="remote",u(t,"ended"),p(t),"closed"!=t.peerConn.signalingState&&t.peerConn.close(),t.emit("hangup",t))}),this.msg.lifetime-e.getAge())},a.prototype._initWithHangup=function(e){this.msg=e.getContent(),u(this,"ended")},a.prototype.answer=function(){_("Answering call %s of type %s",this.callId,this.type);const e=this;e._answerContent?e._sendAnswer():this.localAVStream||this.waitForLocalAVStream?this.localAVStream?this._maybeGotUserMediaForAnswer(this.localAVStream):this.waitForLocalAVStream&&u(this,"wait_local_media"):(this.webRtc.getUserMedia(k(this.type),S(e,e._maybeGotUserMediaForAnswer),S(e,e._maybeGotUserMediaForAnswer)),u(this,"wait_local_media"))},a.prototype._replacedBy=function(e){_(this.callId+" being replaced by "+e.callId),"wait_local_media"==this.state?(_("Telling new call to wait for local media"),e.waitForLocalAVStream=!0):"create_offer"==this.state?(_("Handing local stream to new call"),e._maybeGotUserMediaForAnswer(this.localAVStream),delete this.localAVStream):"invite_sent"==this.state&&(_("Handing local stream to new call"),e._maybeGotUserMediaForAnswer(this.localAVStream),delete this.localAVStream),e.localVideoElement=this.localVideoElement,e.remoteVideoElement=this.remoteVideoElement,e.remoteAudioElement=this.remoteAudioElement,this.successor=e,this.emit("replaced",e),this.hangup(!0)},a.prototype.hangup=function(e,t){if("ended"==this.state)return;_("Ending call "+this.callId),h(this,"local",e,!t);const n={version:0,call_id:this.callId,reason:e};l(this,"m.call.hangup",n)},a.prototype.setLocalVideoMuted=function(e){this.localAVStream&&c(this.localAVStream.getVideoTracks(),!e)},a.prototype.isLocalVideoMuted=function(){return!!this.localAVStream&&!f(this.localAVStream.getVideoTracks())},a.prototype.setMicrophoneMuted=function(e){this.localAVStream&&c(this.localAVStream.getAudioTracks(),!e)},a.prototype.isMicrophoneMuted=function(){return!!this.localAVStream&&!f(this.localAVStream.getAudioTracks())},a.prototype._maybeGotUserMediaForInvite=function(e){if(this.successor)return void this.successor._maybeGotUserMediaForAnswer(e);if("ended"==this.state)return;_("_maybeGotUserMediaForInvite -> "+this.type);const t=this,n=e,r={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:"video"===t.type}};if(e instanceof MediaStream){const n=this.getLocalVideoElement();n&&"video"==this.type&&(n.autoplay=!0,this.screenSharingStream?(_("Setting screen sharing stream to the local video element"),this.assignElement(n,this.screenSharingStream,"localVideo")):this.assignElement(n,e,"localVideo"),n.muted=!0,setTimeout((function(){const e=t.getLocalVideoElement();e.play&&t.playElement(e,"localVideo")}),0)),this.screenSharingStream&&(this.screenSharingStream.addTrack(e.getAudioTracks()[0]),e=this.screenSharingStream),this.localAVStream=e,c(e.getAudioTracks(),!0),this.peerConn=w(this),this.peerConn.addStream(e)}else{if("PermissionDeniedError"!==n.name)return _("Failed to getUserMedia: "+n.name),void this._getUserMediaFailed(n);_("User denied access to camera/microphone. Or possibly you are using an insecure domain. Receiving only."),this.peerConn=w(this)}this.peerConn.createOffer(S(t,t._gotLocalOffer),S(t,t._getLocalOfferFailed),r),u(t,"create_offer")},a.prototype._sendAnswer=function(e){l(this,"m.call.answer",this._answerContent).then(()=>{u(this,"connecting"),v(this)}).catch(e=>{u(this,"ringing"),this.client.cancelPendingEvent(e.event);let t=a.ERR_SEND_ANSWER,n="Failed to send answer";throw"UnknownDeviceError"==e.name&&(t=a.ERR_UNKNOWN_DEVICES,n="Unknown devices present in the room"),this.emit("error",b(t,n)),e})},a.prototype._maybeGotUserMediaForAnswer=function(e){const t=this;if("ended"==t.state)return;const n=e;if(e instanceof MediaStream){const n=t.getLocalVideoElement();n&&"video"==t.type&&(n.autoplay=!0,this.assignElement(n,e,"localVideo"),n.muted=!0,setTimeout((function(){const e=t.getLocalVideoElement();e.play&&t.playElement(e,"localVideo")}),0)),t.localAVStream=e,c(e.getAudioTracks(),!0),t.peerConn.addStream(e)}else{if("PermissionDeniedError"!==n.name)return _("Failed to getUserMedia: "+n.name),void this._getUserMediaFailed(n);_("User denied access to camera/microphone. Or possibly you are using an insecure domain. Receiving only.")}const r={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:"video"===t.type}};t.peerConn.createAnswer((function(e){_("Created answer: ",e),t.peerConn.setLocalDescription(e,(function(){t._answerContent={version:0,call_id:t.callId,answer:{sdp:t.peerConn.localDescription.sdp,type:t.peerConn.localDescription.type}},t._sendAnswer()}),(function(){_("Error setting local description!")}),r)}),(function(e){_("Failed to create answer: "+e)})),u(t,"create_answer")},a.prototype._gotLocalIceCandidate=function(e){if(e.candidate){if(_("Got local ICE "+e.candidate.sdpMid+" candidate: "+e.candidate.candidate),"ended"==this.state)return;const t={candidate:e.candidate.candidate,sdpMid:e.candidate.sdpMid,sdpMLineIndex:e.candidate.sdpMLineIndex};d(this,t)}},a.prototype._gotRemoteIceCandidate=function(e){"ended"!=this.state&&(_("Got remote ICE "+e.sdpMid+" candidate: "+e.candidate),this.peerConn.addIceCandidate(new this.webRtc.RtcIceCandidate(e),(function(){}),(function(e){})))},a.prototype._receivedAnswer=function(e){if("ended"==this.state)return;this.peerConn.setRemoteDescription(new this.webRtc.RtcSessionDescription(e.answer),S(this,this._onSetRemoteDescriptionSuccess),S(this,this._onSetRemoteDescriptionError)),u(this,"connecting")},a.prototype._gotLocalOffer=function(e){const t=this;_("Created offer: ",e),"ended"!=t.state?t.peerConn.setLocalDescription(e,(function(){const e={version:0,call_id:t.callId,offer:{sdp:t.peerConn.localDescription.sdp,type:t.peerConn.localDescription.type},lifetime:a.CALL_TIMEOUT_MS};l(t,"m.call.invite",e).then(()=>{u(t,"invite_sent"),setTimeout((function(){"invite_sent"==t.state&&t.hangup("invite_timeout")}),a.CALL_TIMEOUT_MS)}).catch(e=>{let n=a.ERR_SEND_INVITE,r="Failed to send invite";throw"UnknownDeviceError"==e.name&&(n=a.ERR_UNKNOWN_DEVICES,r="Unknown devices present in the room"),t.client.cancelPendingEvent(e.event),h(t,"local",n,!1),t.emit("error",b(n,r)),e})}),(function(){_("Error setting local description!")})):_("Ignoring newly created offer on call ID "+t.callId+" because the call has ended")},a.prototype._getLocalOfferFailed=function(e){this.emit("error",b(a.ERR_LOCAL_OFFER_FAILED,"Failed to start audio for call!"))},a.prototype._getUserMediaFailed=function(e){h(this,"local","user_media_failed",!1),this.emit("error",b(a.ERR_NO_USER_MEDIA,"Couldn't start capturing media! Is your microphone set up and does this app have permission?"))},a.prototype._onIceConnectionStateChanged=function(){"ended"!=this.state&&(_("Ice connection state changed to: "+this.peerConn.iceConnectionState),"completed"==this.peerConn.iceConnectionState||"connected"==this.peerConn.iceConnectionState?(u(this,"connected"),this.didConnect=!0):"failed"==this.peerConn.iceConnectionState&&this.hangup("ice_failed"))},a.prototype._onSignallingStateChanged=function(){_("call "+this.callId+": Signalling state changed to: "+this.peerConn.signalingState)},a.prototype._onSetRemoteDescriptionSuccess=function(){_("Set remote description")},a.prototype._onSetRemoteDescriptionError=function(e){_("Failed to set remote description"+e)},a.prototype._onAddStream=function(e){_("Stream id "+e.stream.id+" added");const t=e.stream;t.getVideoTracks().length>0?(this.type="video",this.remoteAVStream=t,this.remoteAStream=t):(this.type="voice",this.remoteAStream=t);const n=this;I(t,(function(e){_("Track id "+e.id+" added"),e.onstarted=S(n,n._onRemoteStreamTrackStarted)})),void 0!==e.stream.oninactive?e.stream.oninactive=S(n,n._onRemoteStreamEnded):e.stream.onended=S(n,n._onRemoteStreamEnded),e.stream.onstarted=S(n,n._onRemoteStreamStarted),"video"===this.type?(m(this),g(this)):g(this)},a.prototype._onRemoteStreamStarted=function(e){u(this,"connected")},a.prototype._onRemoteStreamEnded=function(e){_("Remote stream ended"),this.hangupParty="remote",u(this,"ended"),p(this),"closed"!=this.peerConn.signalingState&&this.peerConn.close(),this.emit("hangup",this)},a.prototype._onRemoteStreamTrackStarted=function(e){u(this,"connected")},a.prototype._onHangupReceived=function(e){_("Hangup received"),h(this,"remote",e.reason,!0)},a.prototype._onAnsweredElsewhere=function(e){_("Answered elsewhere"),h(this,"remote","answered_elsewhere",!0)};const c=function(e,t){for(let n=0;n5)return _("Failed to send candidates on attempt %s. Giving up for now.",e.candidateSendTries),void(e.candidateSendTries=0);const r=500*Math.pow(2,e.candidateSendTries);++e.candidateSendTries,_("Failed to send candidates. Retrying in "+r+"ms"),setTimeout((function(){v(e)}),r)}))},A=function(e,t){e.client.callList[e.callId]=e,e.webRtc.getUserMedia(t,S(e,e._maybeGotUserMediaForInvite),S(e,e._maybeGotUserMediaForInvite)),u(e,"wait_local_media"),e.direction="outbound",e.config=t},w=function(e){const t=new e.webRtc.RtcPeerConnection({iceTransportPolicy:e.forceTURN?"relay":void 0,iceServers:e.turnServers});return t.oniceconnectionstatechange=S(e,e._onIceConnectionStateChanged),t.onsignalingstatechange=S(e,e._onSignallingStateChanged),t.onicecandidate=S(e,e._gotLocalIceCandidate),t.onaddstream=S(e,e._onAddStream),t},E=function(t){const n=e.screen;if(n)return{video:{mediaSource:"screen",mandatory:{chromeMediaSource:"screen",chromeMediaSourceId:""+Date.now(),maxWidth:n.width,maxHeight:n.height,minFrameRate:1,maxFrameRate:10}}};t.emit("error",b(a.ERR_NO_USER_MEDIA,"Couldn't determine screen sharing constaints."))},k=function(t){const n=!!e.window.navigator.webkitGetUserMedia;switch(t){case"voice":return{audio:{deviceId:R?{ideal:R}:void 0},video:!1};case"video":return{audio:{deviceId:R?{ideal:R}:void 0},video:{deviceId:O?{ideal:O}:void 0,width:n?{exact:640}:{ideal:640},height:n?{exact:360}:{ideal:360}}}}},S=function(e,t){return function(){return t.apply(e,arguments)}},I=function(e,t){!function(e,t){const n=e.getVideoTracks();for(let e=0;e{let i=!0;const o=e.open(t);o.onupgradeneeded=()=>{i=!1},o.onblocked=()=>r(),o.onsuccess=()=>{o.result.close(),i||e.deleteDatabase(t),n(i)},o.onerror=e=>r(e.target.error)})}},function(e,t,n){"use strict";(function(e){var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.OlmDevice=c,t.WITHHELD_MESSAGES=void 0;var i=n(5),o=n(35),s=r(n(138));function a(e){if(void 0===e)throw new Error("payloadString undefined");if(e.length>49152)throw new Error("Message too long ("+e.length+" bytes). The maximum for an encrypted message is 49152 bytes.")}function c(e){this._cryptoStore=e,this._pickleKey="DEFAULT_KEY",this.deviceCurve25519Key=null,this.deviceEd25519Key=null,this._maxOneTimeKeys=null,this._outboundGroupSessionStore={},this._inboundGroupSessionMessageIndexes={},this._sessionsInProgress={}}c.prototype.init=async function(){let t;const n=new e.Olm.Account;try{await async function(e,t,n){await e.doTxn("readwrite",[o.IndexedDBCryptoStore.STORE_ACCOUNT],r=>{e.getAccount(r,i=>{null!==i?n.unpickle(t,i):(n.create(),i=n.pickle(t),e.storeAccount(r,i))})})}(this._cryptoStore,this._pickleKey,n),t=JSON.parse(n.identity_keys()),this._maxOneTimeKeys=n.max_number_of_one_time_keys()}finally{n.free()}this.deviceCurve25519Key=t.curve25519,this.deviceEd25519Key=t.ed25519},c.getOlmVersion=function(){return e.Olm.get_library_version()},c.prototype._getAccount=function(t,n){this._cryptoStore.getAccount(t,t=>{const r=new e.Olm.Account;try{r.unpickle(this._pickleKey,t),n(r)}finally{r.free()}})},c.prototype._storeAccount=function(e,t){this._cryptoStore.storeAccount(e,t.pickle(this._pickleKey))},c.prototype._getSession=function(e,t,n,r){this._cryptoStore.getEndToEndSession(e,t,n,e=>{this._unpickleSession(e,r)})},c.prototype._unpickleSession=function(t,n){const r=new e.Olm.Session;try{r.unpickle(this._pickleKey,t.session),n(Object.assign({},t,{session:r}))}finally{r.free()}},c.prototype._saveSession=function(e,t,n){const r=t.session.session_id(),i=Object.assign(t,{session:t.session.pickle(this._pickleKey)});this._cryptoStore.storeEndToEndSession(e,r,i,n)},c.prototype._getUtility=function(t){const n=new e.Olm.Utility;try{return t(n)}finally{n.free()}},c.prototype.sign=async function(e){let t;return await this._cryptoStore.doTxn("readonly",[o.IndexedDBCryptoStore.STORE_ACCOUNT],n=>{this._getAccount(n,n=>{t=n.sign(e)})}),t},c.prototype.getOneTimeKeys=async function(){let e;return await this._cryptoStore.doTxn("readonly",[o.IndexedDBCryptoStore.STORE_ACCOUNT],t=>{this._getAccount(t,t=>{e=JSON.parse(t.one_time_keys())})}),e},c.prototype.maxNumberOfOneTimeKeys=function(){return this._maxOneTimeKeys},c.prototype.markKeysAsPublished=async function(){await this._cryptoStore.doTxn("readwrite",[o.IndexedDBCryptoStore.STORE_ACCOUNT],e=>{this._getAccount(e,t=>{t.mark_keys_as_published(),this._storeAccount(e,t)})})},c.prototype.generateOneTimeKeys=function(e){return this._cryptoStore.doTxn("readwrite",[o.IndexedDBCryptoStore.STORE_ACCOUNT],t=>{this._getAccount(t,n=>{n.generate_one_time_keys(e),this._storeAccount(t,n)})})},c.prototype.createOutboundSession=async function(t,n){let r;return await this._cryptoStore.doTxn("readwrite",[o.IndexedDBCryptoStore.STORE_ACCOUNT,o.IndexedDBCryptoStore.STORE_SESSIONS],i=>{this._getAccount(i,o=>{const s=new e.Olm.Session;try{s.create_outbound(o,t,n),r=s.session_id(),this._storeAccount(i,o);const e={session:s,lastReceivedMessageTs:Date.now()};this._saveSession(t,e,i)}finally{s.free()}})}),r},c.prototype.createInboundSession=async function(t,n,r){if(0!==n)throw new Error("Need messageType == 0 to create inbound session");let i;return await this._cryptoStore.doTxn("readwrite",[o.IndexedDBCryptoStore.STORE_ACCOUNT,o.IndexedDBCryptoStore.STORE_SESSIONS],o=>{this._getAccount(o,s=>{const a=new e.Olm.Session;try{a.create_inbound_from(s,t,r),s.remove_one_time_keys(a),this._storeAccount(o,s);const e=a.decrypt(n,r),c={session:a,lastReceivedMessageTs:Date.now()};this._saveSession(t,c,o),i={payload:e,session_id:a.session_id()}}finally{a.free()}})}),i},c.prototype.getSessionIdsForDevice=async function(e){if(this._sessionsInProgress[e]){i.logger.log("waiting for olm session to be created");try{await this._sessionsInProgress[e]}catch(e){}}let t;return await this._cryptoStore.doTxn("readonly",[o.IndexedDBCryptoStore.STORE_SESSIONS],n=>{this._cryptoStore.getEndToEndSessions(e,n,e=>{t=Object.keys(e)})}),t},c.prototype.getSessionIdForDevice=async function(e,t){const n=await this.getSessionInfoForDevice(e,t);if(0===n.length)return null;let r=0;for(let e=1;es||i===s&&t.sessionId{this._cryptoStore.getEndToEndSessions(e,t,e=>{const t=Object.keys(e).sort();for(const r of t)this._unpickleSession(e[r],e=>{n.push({lastReceivedMessageTs:e.lastReceivedMessageTs,hasReceivedMessage:e.session.has_received_message(),sessionId:r})})})}),n},c.prototype.encryptMessage=async function(e,t,n){let r;return a(n),await this._cryptoStore.doTxn("readwrite",[o.IndexedDBCryptoStore.STORE_SESSIONS],o=>{this._getSession(e,t,o,s=>{const a=s.session.describe();i.logger.log("encryptMessage: Olm Session ID "+t+" to "+e+": "+a),r=s.session.encrypt(n),this._saveSession(e,s,o)})}),r},c.prototype.decryptMessage=async function(e,t,n,r){let s;return await this._cryptoStore.doTxn("readwrite",[o.IndexedDBCryptoStore.STORE_SESSIONS],o=>{this._getSession(e,t,o,a=>{const c=a.session.describe();i.logger.log("decryptMessage: Olm Session ID "+t+" from "+e+": "+c),s=a.session.decrypt(n,r),a.lastReceivedMessageTs=Date.now(),this._saveSession(e,a,o)})}),s},c.prototype.matchesSession=async function(e,t,n,r){if(0!==n)return!1;let i;return await this._cryptoStore.doTxn("readonly",[o.IndexedDBCryptoStore.STORE_SESSIONS],n=>{this._getSession(e,t,n,e=>{i=e.session.matches_inbound(r)})}),i},c.prototype.recordSessionProblem=async function(e,t,n){await this._cryptoStore.storeEndToEndSessionProblem(e,t,n)},c.prototype.sessionMayHaveProblems=async function(e,t){return await this._cryptoStore.getEndToEndSessionProblem(e,t)},c.prototype.filterOutNotifiedErrorDevices=async function(e){return await this._cryptoStore.filterOutNotifiedErrorDevices(e)},c.prototype._saveOutboundGroupSession=function(e){const t=e.pickle(this._pickleKey);this._outboundGroupSessionStore[e.session_id()]=t},c.prototype._getOutboundGroupSession=function(t,n){const r=this._outboundGroupSessionStore[t];if(void 0===r)throw new Error("Unknown outbound group session "+t);const i=new e.Olm.OutboundGroupSession;try{return i.unpickle(this._pickleKey,r),n(i)}finally{i.free()}},c.prototype.createOutboundGroupSession=function(){const t=new e.Olm.OutboundGroupSession;try{return t.create(),this._saveOutboundGroupSession(t),t.session_id()}finally{t.free()}},c.prototype.encryptGroupMessage=function(e,t){const n=this;return i.logger.log(`encrypting msg with megolm session ${e}`),a(t),this._getOutboundGroupSession(e,(function(e){const r=e.encrypt(t);return n._saveOutboundGroupSession(e),r}))},c.prototype.getOutboundGroupSessionKey=function(e){return this._getOutboundGroupSession(e,(function(e){return{chain_index:e.message_index(),key:e.session_key()}}))},c.prototype._unpickleInboundGroupSession=function(t,n){const r=new e.Olm.InboundGroupSession;try{return r.unpickle(this._pickleKey,t.session),n(r)}finally{r.free()}},c.prototype._getInboundGroupSession=function(e,t,n,r,i){this._cryptoStore.getEndToEndInboundGroupSession(t,n,r,(t,n)=>{if(null!==t){if(null!==e&&e!==t.room_id)throw new Error("Mismatched room_id for inbound group session (expected "+t.room_id+", was "+e+")");this._unpickleInboundGroupSession(t,e=>{i(e,t,n)})}else i(null,null,n)})},c.prototype.addInboundGroupSession=async function(t,n,r,s,a,c,f){await this._cryptoStore.doTxn("readwrite",[o.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,o.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],o=>{this._getInboundGroupSession(t,n,s,o,(u,l)=>{const d=new e.Olm.InboundGroupSession;try{if(f?d.import_session(a):d.create(a),s!=d.session_id())throw new Error("Mismatched group session ID from senderKey: "+n);if(u&&(i.logger.log("Update for megolm session "+n+"/"+s),u.first_known_index()<=d.first_known_index()))return void i.logger.log(`Keeping existing megolm session ${s}`);const e={room_id:t,session:d.pickle(this._pickleKey),keysClaimed:c,forwardingCurve25519KeyChain:r};this._cryptoStore.storeEndToEndInboundGroupSession(n,s,e,o)}finally{d.free()}})})},c.prototype.addInboundGroupSessionWithheld=async function(e,t,n,r,i){await this._cryptoStore.doTxn("readwrite",[o.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],o=>{this._cryptoStore.storeEndToEndInboundGroupSessionWithheld(t,n,{room_id:e,code:r,reason:i},o)})};const f={"m.unverified":"The sender has disabled encrypting to unverified devices.","m.blacklisted":"The sender has blocked you.","m.unauthorised":"You are not authorised to read the message.","m.no_olm":"Unable to establish a secure channel."};function u(e){return e.code&&e.code in f?f[e.code]:e.reason?e.reason:"decryption key withheld"}t.WITHHELD_MESSAGES=f,c.prototype.decryptGroupMessage=async function(e,t,n,r,i,a){let c,f;if(await this._cryptoStore.doTxn("readwrite",[o.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,o.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],o=>{this._getInboundGroupSession(e,t,n,o,(e,l,d)=>{if(null===e)return d&&(f=new s.DecryptionError("MEGOLM_UNKNOWN_INBOUND_SESSION_ID",u(d),{session:t+"|"+n})),void(c=null);let h;try{h=e.decrypt(r)}catch(e){return void(f=e&&"OLM.UNKNOWN_MESSAGE_INDEX"===e.message&&d?new s.DecryptionError("MEGOLM_UNKNOWN_INBOUND_SESSION_ID",u(d),{session:t+"|"+n}):e)}let p=h.plaintext;if(void 0===p)p=h;else{const e=t+"|"+n+"|"+h.message_index;if(e in this._inboundGroupSessionMessageIndexes){const t=this._inboundGroupSessionMessageIndexes[e];if(t.id!==i||t.timestamp!==a)return void(f=new Error("Duplicate message index, possible replay attack: "+e))}this._inboundGroupSessionMessageIndexes[e]={id:i,timestamp:a}}l.session=e.pickle(this._pickleKey),this._cryptoStore.storeEndToEndInboundGroupSession(t,n,l,o),c={result:p,keysClaimed:l.keysClaimed||{},senderKey:t,forwardingCurve25519KeyChain:l.forwardingCurve25519KeyChain||[]}})}),f)throw f;return c},c.prototype.hasInboundSessionKeys=async function(e,t,n){let r;return await this._cryptoStore.doTxn("readonly",[o.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,o.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],o=>{this._cryptoStore.getEndToEndInboundGroupSession(t,n,o,o=>{null!==o?e!==o.room_id?(i.logger.warn(`requested keys for inbound group session ${t}|`+`${n}, with incorrect room_id `+`(expected ${o.room_id}, `+`was ${e})`),r=!1):r=!0:r=!1})}),r},c.prototype.getInboundGroupSessionKey=async function(e,t,n,r){let i;return await this._cryptoStore.doTxn("readonly",[o.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,o.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],o=>{this._getInboundGroupSession(e,t,n,o,(e,t)=>{if(null===e)return void(i=null);void 0===r&&(r=e.first_known_index());const n=e.export_session(r),o=(t.keysClaimed||{}).ed25519||null;i={chain_index:r,key:n,forwarding_curve25519_key_chain:t.forwardingCurve25519KeyChain||[],sender_claimed_ed25519_key:o}})}),i},c.prototype.exportInboundGroupSession=function(e,t,n){return this._unpickleInboundGroupSession(n,r=>{const i=r.first_known_index();return{sender_key:e,sender_claimed_keys:n.keysClaimed,room_id:n.room_id,session_id:t,session_key:r.export_session(i),forwarding_curve25519_key_chain:r.forwardingCurve25519KeyChain||[],first_known_index:r.first_known_index()}})},c.prototype.verifySignature=function(e,t,n){this._getUtility((function(r){r.ed25519_verify(e,t,n)}))}}).call(this,n(6))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(293),n(294);var r=n(80);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}})}))},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.DeviceTrustLevel=t.UserTrustLevel=t.CrossSigningLevel=t.CrossSigningInfo=void 0;var r=n(21),i=n(10),o=n(5);function s(e){return Object.values(e.keys)[0]}class a extends i.EventEmitter{constructor(e,t){super(),Object.defineProperty(this,"userId",{enumerable:!0,value:e}),this._callbacks=t||{},this.keys={},this.firstUse=!0}async getCrossSigningKey(t,n){if(!this._callbacks.getCrossSigningKey)throw new Error("No getCrossSigningKey callback supplied");void 0===n&&(n=this.getId(t));const r=await this._callbacks.getCrossSigningKey(t,n);if(!r)throw new Error("getCrossSigningKey callback for "+t+" returned falsey");const i=new e.Olm.PkSigning,o=i.init_with_seed(r);if(o!==n)throw i.free(),new Error("Key type "+t+" from getCrossSigningKey callback did not match");return[o,i]}static fromStorage(e,t){const n=new a(t);for(const t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}toStorage(){return{keys:this.keys,firstUse:this.firstUse}}async isStoredInSecretStorage(e){let t=!0;for(const n of["master","self_signing","user_signing"])t&=await e.isStored(`m.cross_signing.${n}`,!1);return t}static async storeInSecretStorage(e,t){for(const n of Object.keys(e)){const i=(0,r.encodeBase64)(e[n]);await t.store(`m.cross_signing.${n}`,i)}}static async getFromSecretStorage(e,t){const n=await t.get(`m.cross_signing.${e}`);return(0,r.decodeBase64)(n)}getId(e){if(e=e||"master",!this.keys[e])return null;return s(this.keys[e])}async resetKeys(t){if(!this._callbacks.saveCrossSigningKeys)throw new Error("No saveCrossSigningKeys callback supplied");if(void 0===t||t&c.MASTER||!this.keys.master)t=c.MASTER|c.USER_SIGNING|c.SELF_SIGNING;else if(0===t)return;const n={},i={};let o,s;try{if(t&c.MASTER?(o=new e.Olm.PkSigning,n.master=o.generate_seed(),s=o.init_with_seed(n.master),i.master={user_id:this.userId,usage:["master"],keys:{["ed25519:"+s]:s}}):[s,o]=await this.getCrossSigningKey("master"),t&c.SELF_SIGNING){const t=new e.Olm.PkSigning;try{n.self_signing=t.generate_seed();const e=t.init_with_seed(n.self_signing);i.self_signing={user_id:this.userId,usage:["self_signing"],keys:{["ed25519:"+e]:e}},(0,r.pkSign)(i.self_signing,o,this.userId,s)}finally{t.free()}}if(t&c.USER_SIGNING){const t=new e.Olm.PkSigning;try{n.user_signing=t.generate_seed();const e=t.init_with_seed(n.user_signing);i.user_signing={user_id:this.userId,usage:["user_signing"],keys:{["ed25519:"+e]:e}},(0,r.pkSign)(i.user_signing,o,this.userId,s)}finally{t.free()}}Object.assign(this.keys,i),this._callbacks.saveCrossSigningKeys(n)}finally{o&&o.free()}}setKeys(e){const t={};if(e.master){if(e.master.user_id!==this.userId){const t="Mismatched user ID "+e.master.user_id+" in master key from "+this.userId;throw o.logger.error(t),new Error(t)}this.keys.master?s(e.master)!==this.getId()&&(this.firstUse=!1):this.firstUse=!0,t.master=e.master}else{if(!this.keys.master)throw new Error("Tried to set cross-signing keys without a master key");t.master=this.keys.master}const n=s(t.master);if(e.user_signing){if(e.user_signing.user_id!==this.userId){const t="Mismatched user ID "+e.master.user_id+" in user_signing key from "+this.userId;throw o.logger.error(t),new Error(t)}try{(0,r.pkVerify)(e.user_signing,n,this.userId)}catch(e){throw o.logger.error("invalid signature on user-signing key"),e}}if(e.self_signing){if(e.self_signing.user_id!==this.userId){const t="Mismatched user ID "+e.master.user_id+" in self_signing key from "+this.userId;throw o.logger.error(t),new Error(t)}try{(0,r.pkVerify)(e.self_signing,n,this.userId)}catch(e){throw o.logger.error("invalid signature on self-signing key"),e}}e.master&&(this.keys.master=e.master,this.keys.self_signing=null,this.keys.user_signing=null),e.self_signing&&(this.keys.self_signing=e.self_signing),e.user_signing&&(this.keys.user_signing=e.user_signing)}async signObject(e,t){if(!this.keys[t])throw new Error("Attempted to sign with "+t+" key but no such key present");const[n,i]=await this.getCrossSigningKey(t);try{return(0,r.pkSign)(e,i,this.userId,n),e}finally{i.free()}}async signUser(e){if(this.keys.user_signing)return this.signObject(e.keys.master,"user_signing")}async signDevice(e,t){if(e!==this.userId)throw new Error(`Trying to sign ${e}'s device; can only sign our own device`);if(this.keys.self_signing)return this.signObject({algorithms:t.algorithms,keys:t.keys,device_id:t.deviceId,user_id:e},"self_signing")}checkUserTrust(e){if(this.userId===e.userId&&this.getId()&&this.getId()===e.getId()&&this.getId("self_signing")&&this.getId("self_signing")===e.getId("self_signing"))return new f(!0,this.firstUse);if(!this.keys.user_signing)return new f(!1,e.firstUse);let t;const n=e.keys.master,i=this.getId("user_signing");try{(0,r.pkVerify)(n,i,this.userId),t=!0}catch(e){t=!1}return new f(t,e.firstUse)}checkDeviceTrust(e,t,n){const i=this.checkUserTrust(e),o=e.keys.self_signing;if(!o)return new u(!1,!1,n);const a=function(e,t){return{algorithms:e.algorithms,keys:e.keys,device_id:e.deviceId,user_id:t,signatures:e.signatures}}(t,e.userId);try{return(0,r.pkVerify)(o,e.getId(),e.userId),(0,r.pkVerify)(a,s(o),e.userId),u.fromUserTrustLevel(i,n)}catch(e){return new u(!1,!1,n)}}}t.CrossSigningInfo=a;const c={MASTER:4,USER_SIGNING:2,SELF_SIGNING:1};t.CrossSigningLevel=c;class f{constructor(e,t){this._crossSigningVerified=e,this._tofu=t}isVerified(){return this.isCrossSigningVerified()}isCrossSigningVerified(){return this._crossSigningVerified}isTofu(){return this._tofu}}t.UserTrustLevel=f;class u{constructor(e,t,n){this._crossSigningVerified=e,this._tofu=t,this._localVerified=n}static fromUserTrustLevel(e,t){return new u(e._crossSigningVerified,e._tofu,t)}isVerified(){return this.isCrossSigningVerified()||this.isLocallyVerified()}isCrossSigningVerified(){return this._crossSigningVerified}isLocallyVerified(){return this._localVerified}isTofu(){return this._tofu}}t.DeviceTrustLevel=u}).call(this,n(6))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VerificationBase=void 0;var r=n(19),i=n(10),o=n(5),s=n(50),a=n(36);const c=new Error("Verification timed out");class f extends i.EventEmitter{constructor(e,t,n,r,i,o){super(),this._channel=e,this._baseApis=t,this.userId=n,this.deviceId=r,this.startEvent=i,this.request=o,this.cancelled=!1,this._done=!1,this._promise=null,this._transactionTimeoutTimer=null,this._resetTimer()}_resetTimer(){o.logger.info("Refreshing/starting the verification transaction timeout timer"),null!==this._transactionTimeoutTimer&&clearTimeout(this._transactionTimeoutTimer),this._transactionTimeoutTimer=setTimeout(()=>{this._done||this.cancelled||(o.logger.info("Triggering verification timeout"),this.cancel(c))},6e5)}_endTimer(){null!==this._transactionTimeoutTimer&&(clearTimeout(this._transactionTimeoutTimer),this._transactionTimeoutTimer=null)}_send(e,t){return this._channel.send(e,t)}_waitForEvent(e){return this._done?Promise.reject(new Error("Verification is already done")):(this._expectedEvent=e,new Promise((e,t)=>{this._resolveEvent=e,this._rejectEvent=t}))}handleEvent(e){if(!this._done)if(e.getType()===this._expectedEvent)"m.key.verification.done"!==this._expectedEvent&&(this._expectedEvent=void 0,this._rejectEvent=void 0,this._resetTimer(),this._resolveEvent(e));else if("m.key.verification.cancel"===e.getType()){const e=this._reject;this._reject=void 0,e(new Error("Other side cancelled verification"))}else{const t=new Error("Unexpected message: expecting "+this._expectedEvent+" but got "+e.getType());if(this._expectedEvent=void 0,this._rejectEvent){const e=this._rejectEvent;this._rejectEvent=void 0,e(t)}this.cancel(t)}}done(){this._endTimer(),this._done||(this._channel.needsDoneMessage&&this._send("m.key.verification.done",{}),this._resolve())}cancel(e){if(this._endTimer(),!this._done){if(this.cancelled=!0,this.userId&&this.deviceId)if(e===c){const e=(0,a.newTimeoutError)();this._send(e.getType(),e.getContent())}else if(e instanceof r.MatrixEvent){if(e.getSender()!==this.userId){const t=e.getContent();"m.key.verification.cancel"===e.getType()?(t.code=t.code||"m.unknown",t.reason=t.reason||t.body||"Unknown reason",this._send("m.key.verification.cancel",t)):this._send("m.key.verification.cancel",{code:"m.unknown",reason:t.body||"Unknown reason"})}}else this._send("m.key.verification.cancel",{code:"m.unknown",reason:e.toString()});null!==this._promise?this._reject&&this._reject(e):this._promise=Promise.reject(e),this.emit("cancel",e)}}verify(){return this._promise?this._promise:(this._promise=new Promise((e,t)=>{this._resolve=(...t)=>{this._done=!0,this._endTimer(),e(...t)},this._reject=(...e)=>{this._done=!0,this._endTimer(),t(...e)}}),this._doVerification&&!this._started&&(this._started=!0,this._resetTimer(),Promise.resolve(this._doVerification()).then(this.done.bind(this),this.cancel.bind(this))),this._promise)}async _verifyKeys(e,t,n){const r=[];for(const[i,a]of Object.entries(t)){const t=i.split(":",2)[1],c=await this._baseApis.getStoredDevice(e,t);if(c)await n(i,c,a),r.push(t);else{const c=this._baseApis._crypto._deviceList.getStoredCrossSigningForUser(e);c&&c.getId()===t?(await n(i,s.DeviceInfo.fromStorage({keys:{[i]:t}},t),a),r.push(t)):o.logger.warn(`verification: Could not find device ${t} to verify`)}}if(!r.length)throw new Error("No devices could be verified");for(const t of r)await this._baseApis.setDeviceVerified(e,t)}}t.VerificationBase=f},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.keyFromAuthData=async function(t,n){if(!e.Olm)throw new Error("Olm is not available");if(!t.private_key_salt||!t.private_key_iterations)throw new Error("Salt and/or iterations not found: this backup cannot be restored with a passphrase");return await i(n,t.private_key_salt,t.private_key_iterations)},t.keyFromPassphrase=async function(t){if(!e.Olm)throw new Error("Olm is not available");const n=(0,r.randomString)(32);return{key:await i(t,n,5e5),salt:n,iterations:5e5}},t.deriveKey=i;var r=n(51);async function i(t,n,r){const i=e.crypto.subtle,o=e.TextEncoder;if(!i||!o)throw new Error("Password-based backup is not avaiable on this platform");const s=await i.importKey("raw",(new o).encode(t),{name:"PBKDF2"},!1,["deriveBits"]),a=await i.deriveBits({name:"PBKDF2",salt:(new o).encode(n),iterations:r,hash:"SHA-512"},s,8*e.Olm.PRIVATE_KEY_LENGTH);return new Uint8Array(a)}}).call(this,n(6))},function(e,t,n){"use strict";(function(e,r){var i=n(16);Object.defineProperty(t,"__esModule",{value:!0}),t.encodeRecoveryKey=function(t){const n=new e(s.length+t.length+1);n.set(s,0),n.set(t,s.length);let r=0;for(let e=0;e{this.accountData[e.type]=e})}_accumulateRooms(e){e.rooms&&(e.rooms.invite&&Object.keys(e.rooms.invite).forEach(t=>{this._accumulateRoom(t,"invite",e.rooms.invite[t])}),e.rooms.join&&Object.keys(e.rooms.join).forEach(t=>{this._accumulateRoom(t,"join",e.rooms.join[t])}),e.rooms.leave&&Object.keys(e.rooms.leave).forEach(t=>{this._accumulateRoom(t,"leave",e.rooms.leave[t])}))}_accumulateRoom(e,t,n){switch(t){case"invite":this._accumulateInviteState(e,n);break;case"join":this.inviteRooms[e]&&delete this.inviteRooms[e],this._accumulateJoinState(e,n);break;case"leave":this.inviteRooms[e]?delete this.inviteRooms[e]:delete this.joinRooms[e];break;default:r.logger.error("Unknown cateogory: ",t)}}_accumulateInviteState(e,t){if(!t.invite_state||!t.invite_state.events)return;if(!this.inviteRooms[e])return void(this.inviteRooms[e]={invite_state:t.invite_state});const n=this.inviteRooms[e];t.invite_state.events.forEach(e=>{let t=!1;for(let r=0;r{n._accountData[e.type]=e}),t.unread_notifications&&(n._unreadNotifications=t.unread_notifications),t.summary){const e="m.heroes",r="m.invited_member_count",i="m.joined_member_count",o=n._summary,s=t.summary;o[e]=s[e]||o[e],o[i]=s[i]||o[i],o[r]=s[r]||o[r]}if(t.ephemeral&&t.ephemeral.events&&t.ephemeral.events.forEach(e=>{"m.receipt"===e.type&&e.content&&Object.keys(e.content).forEach(t=>{e.content[t]["m.read"]&&Object.keys(e.content[t]["m.read"]).forEach(r=>{n._readReceipts[r]={data:e.content[t]["m.read"][r],eventId:t}})})}),t.timeline&&t.timeline.limited&&(n._timeline=[]),t.state&&t.state.events&&t.state.events.forEach(e=>{o(n._currentState,e)}),t.timeline&&t.timeline.events&&t.timeline.events.forEach((e,r)=>{o(n._currentState,e),n._timeline.push({event:e,token:0===r?t.timeline.prev_batch:null})}),n._timeline.length>this.opts.maxTimelineEntries){for(let e=n._timeline.length-this.opts.maxTimelineEntries;e{this._accumulateGroup(t,"invite",e.groups.invite[t])}),e.groups.join&&Object.keys(e.groups.join).forEach(t=>{this._accumulateGroup(t,"join",e.groups.join[t])}),e.groups.leave&&Object.keys(e.groups.leave).forEach(t=>{this._accumulateGroup(t,"leave",e.groups.leave[t])}))}_accumulateGroup(e,t,n){for(const t of["invite","join","leave"])delete this.groups[t][e];this.groups[t][e]=n}getJSON(){const e={join:{},invite:{},leave:{}};Object.keys(this.inviteRooms).forEach(t=>{e.invite[t]=this.inviteRooms[t]}),Object.keys(this.joinRooms).forEach(t=>{const n=this.joinRooms[t],r={ephemeral:{events:[]},account_data:{events:[]},state:{events:[]},timeline:{events:[],prev_batch:null},unread_notifications:n._unreadNotifications,summary:n._summary};Object.keys(n._accountData).forEach(e=>{r.account_data.events.push(n._accountData[e])});const s={type:"m.receipt",room_id:t,content:{}};Object.keys(n._readReceipts).forEach(e=>{const t=n._readReceipts[e];s.content[t.eventId]||(s.content[t.eventId]={"m.read":{}}),s.content[t.eventId]["m.read"][e]=t.data}),Object.keys(s.content).length>0&&r.ephemeral.events.push(s),n._timeline.forEach(e=>{if(!r.timeline.prev_batch){if(!e.token)return;r.timeline.prev_batch=e.token}r.timeline.events.push(e.event)});const a=Object.create(null);for(let e=r.timeline.events.length-1;e>=0;e--){const t=r.timeline.events[e];if(null===t.state_key||void 0===t.state_key)continue;const n=(0,i.deepCopy)(t);n.unsigned&&(n.unsigned.prev_content&&(n.content=n.unsigned.prev_content),n.unsigned.prev_sender&&(n.sender=n.unsigned.prev_sender)),o(a,n)}Object.keys(n._currentState).forEach(e=>{Object.keys(n._currentState[e]).forEach(t=>{let i=n._currentState[e][t];a[e]&&a[e][t]&&(i=a[e][t]),r.state.events.push(i)})}),e.join[t]=r});const t=[];return Object.keys(this.accountData).forEach(e=>{t.push(this.accountData[e])}),{nextBatch:this.nextBatch,roomsData:e,groupsData:this.groups,accountData:t}}getNextBatchToken(){return this.nextBatch}}},function(e,t,n){"use strict";var r=String.prototype.replace,i=/%20/g,o=n(82),s={RFC1738:"RFC1738",RFC3986:"RFC3986"};e.exports=o.assign({default:s.RFC3986,formatters:{RFC1738:function(e){return r.call(e,i,"+")},RFC3986:function(e){return String(e)}}},s)},function(e,t){for(var n=[],r=0;r<256;++r)n[r]=(r+256).toString(16).substr(1);e.exports=function(e,t){var r=t||0,i=n;return[i[e[r++]],i[e[r++]],i[e[r++]],i[e[r++]],"-",i[e[r++]],i[e[r++]],"-",i[e[r++]],i[e[r++]],"-",i[e[r++]],i[e[r++]],"-",i[e[r++]],i[e[r++]],i[e[r++]],i[e[r++]],i[e[r++]],i[e[r++]]].join("")}},function(e,t,n){"use strict";t.__esModule=!0,t.stateify=t.TokenState=t.CharacterState=void 0;var r=n(52);var i=function(e){this.j=[],this.T=e||null};i.prototype={defaultTransition:!1,on:function(e,t){if(e instanceof Array){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=this.next(new e(""));return n===this.defaultTransition?(n=new this.constructor(t),this.on(e,n)):t&&(n.T=t),n},test:function(e,t){return e instanceof t}});t.CharacterState=o,t.TokenState=s,t.stateify=function(e,t,n,r){for(var i=0,s=e.length,a=t,c=[],f=void 0;i=s)return[];for(;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}},function(e,t,n){"use strict";(function(e){var r=n(152),i=n.n(r),o=n(84),s=n.n(o),a=n(26),c=n.n(a),f=n(27),u=n.n(f),l=n(53),d=n.n(l),h=n(54),p=n.n(h),m=n(4),g=n.n(m),y=n(55),b=n.n(y),_=n(1),v=n.n(_),A=n(0),w=n.n(A),E=n(9),k=n.n(E),S=n(331),I=(n(39),n(153)),T=n(37),R=(n(40),n(154)),O=n(155),x=n(38),C=n(28),P=n(85),M=n(157),D=n(86),B=n(159);n(327);function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function j(e){for(var t=1;t0&&void 0!==arguments[0])||arguments[0];if(r.state.client){await r.state.client.leave(r.state.roomId);var t={type:"m.login.password",user:r.state.userId,identifier:{type:"m.id.user",user:r.state.userId},password:r.state.password};await r.state.client.deactivateAccount(t,!0),await r.state.client.stopClient(),await r.state.client.clearStores(),r.setState({client:null,ready:!0}),window.clearInterval(r.state.waitIntervalId)}r.state.localStorage&&r.state.localStorage.clear(),e&&r.setState(r.initialState)})),v()(g()(r),"createLocalStorage",(async function(t,n){var r=e.localStorage;if(null==r){var i="matrix-chat-".concat(t,"-").concat(n),o=T.resolve(T.join(I.homedir(),".local-storage",i));r=new R.LocalStorage(o)}return r})),v()(g()(r),"createClientWithAccount",(async function(){var e=x.createClient(r.props.matrixServerUrl);try{await e.registerRequest({})}catch(c){var t=Object(C.uuid)(),n=Object(C.uuid)(),i=c.data.session,o=await e.registerRequest({auth:{session:i,type:"m.login.dummy"},inhibit_login:!1,password:n,username:t,x_show_msisdn:!0}),s=await r.createLocalStorage(o.device_id,i);r.setState({accessToken:o.access_token,userId:o.user_id,username:t,password:n,localStorage:s,sessionId:i,deviceId:o.device_id});var a={baseUrl:r.props.matrixServerUrl,accessToken:o.access_token,userId:o.user_id,deviceId:o.device_id,sessionStore:new x.WebStorageSessionStore(s)};return x.createClient(a)}})),v()(g()(r),"initializeChat",(async function(){r.setState({ready:!1});var e=await r.createClientWithAccount();try{await e.initCrypto()}catch(e){return r.restartWithoutCrypto()}await e.startClient(),e.once("sync",(async function(t,n,i){"PREPARED"===t&&(r.setState({client:e}),e.setDisplayName(r.props.anonymousDisplayName),r.setMatrixListeners(e),await r.createRoom(e))}))})),v()(g()(r),"restartWithoutCrypto",(async function(){r.state.client&&(r.state.client.leave(r.state.roomId),r.state.client.stopClient(),r.state.client.clearStores(),r.state.localStorage.clear()),r.setState({ready:!1,facilitatorInvited:!1,decryptionErrors:{},roomId:null,typingStatus:null,client:null,isCryptoEnabled:!1}),r.displayBotMessage({body:"Restarting chat without encryption."});var e,t={baseUrl:r.props.matrixServerUrl,accessToken:r.state.accessToken,userId:r.state.userId,deviceId:r.state.deviceId};e=x.createClient(t),await e.startClient(),e.once("sync",(async function(t,n,i){if("PREPARED"===t)try{r.setState({client:e}),e.setDisplayName(r.props.anonymousDisplayName),r.setMatrixListeners(e),await r.createRoom(e),r.displayBotMessage({body:"Messages in this chat are not encrypted."})}catch(e){console.log("error",e),r.handleInitError(e)}}))})),v()(g()(r),"initializeUnencryptedChat",(async function(){r.setState({ready:!1});var e=await r.createClientWithAccount();await e.startClient(),e.once("sync",(async function(t,n,i){e.setDisplayName(r.props.anonymousDisplayName),r.setMatrixListeners(e),await r.createRoom(e)}))})),v()(g()(r),"handleInitError",(function(e){console.log("error",e),r.displayBotMessage({body:r.props.chatUnavailableMessage}),r.setState({ready:!0})})),v()(g()(r),"handleDecryptionError",(async function(e,t){var n=e.getId();r.handleMessageEvent(e),r.setState({decryptionErrors:v()({},n,!0)})})),v()(g()(r),"verifyAllRoomDevices",(async function(e,t){if(t&&e&&r.state.isCryptoEnabled){var n=(await t.getEncryptionTargetMembers()).map((function(e){return e.userId})),i=await e.downloadKeys(n);for(var o in i)for(var s in i[o])await e.setDeviceVerified(o,s)}})),v()(g()(r),"createRoom",(async function(e){var t=new Date,n=t.toLocaleDateString(),i=t.toLocaleTimeString(),o={room_alias_name:"private-support-chat-".concat(Object(C.uuid)()),invite:[r.props.botId],visibility:"private",name:"".concat(i,", ").concat(n," - ").concat(r.props.roomName)},s=await e.isCryptoEnabled();s&&(o.initial_state=[{type:"m.room.encryption",state_key:"",content:U}]);var a=(await e.createRoom(o)).room_id;e.setPowerLevel(a,r.props.botId,100),r.setState({roomId:a,isCryptoEnabled:s})})),v()(g()(r),"sendMessage",(async function(e){if(r.state.client&&r.state.roomId)try{await r.state.client.sendTextMessage(r.state.roomId,e)}catch(t){switch(t.name){case"UnknownDeviceError":Object.keys(t.devices).forEach((function(e){Object.keys(t.devices[e]).map((async function(t){await r.state.client.setDeviceKnown(e,t,!0)}))})),r.sendMessage(e);break;default:r.displayBotMessage({body:"Your message was not sent."}),console.log("Error sending message",t)}}})),v()(g()(r),"displayFakeMessage",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Object(C.uuid)(),i={id:n,type:"m.room.message",sender:t,roomId:r.state.roomId,content:e,timestamp:Date.now()};r.setState({messages:j({},r.state.messages,v()({},n,i))})})),v()(g()(r),"displayBotMessage",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Object(C.uuid)(),i={id:n,type:"m.room.message",sender:r.props.botId,roomId:t||r.state.roomId,content:e,timestamp:Date.now()};r.setState({messages:j({},r.state.messages,v()({},n,i))})})),v()(g()(r),"handleMessageEvent",(function(e){var t={id:e.getId(),type:e.getType(),sender:e.getSender(),roomId:e.getRoomId(),content:e.getContent(),timestamp:e.getTs()};if(!(t.content.showToUser&&t.content.showToUser!==r.state.userId||t.content.body.startsWith("!bot")&&t.sender!==r.state.userId)){var n=s()(r.state.messagesInFlight),i=n.findIndex((function(e){return e===t.content.body}));i>-1&&(n.splice(i,1),r.setState({messagesInFlight:n}));var o=j({},r.state.decryptionErrors);delete o[t.id];var a="m.notice"===t.content.msgtype&&"CHAT_OFFLINE"===t.content.body,c=t;a&&(c=j({},t,{content:j({},t.content,{body:r.props.chatOfflineMessage})}),r.handleChatOffline()),r.setState({messages:j({},r.state.messages,v()({},t.id,c)),decryptionErrors:o})}})),v()(g()(r),"handleChatOffline",(function(){r.exitChat(!1),r.setState({ready:!0})})),v()(g()(r),"handleKeyDown",(function(e){switch(e.keyCode){case 27:r.state.emojiSelectorOpen?r.closeEmojiSelector():r.state.opened&&r.handleToggleOpen()}})),v()(g()(r),"setMatrixListeners",(function(e){e.on("sync",(function(t,n,i){switch(t){case"ERROR":case"SYNCING":break;case"PREPARED":r.setState({client:e})}})),e.on("Room.timeline",(function(t,n){var i=t.getType(),o=t.getContent(),s=t.getSender();if("m.room.encryption"===i&&(r.displayBotMessage({body:"Messages in this chat are secured with end-to-end encryption."},n.room_id),r.verifyAllRoomDevices(e,n)),"m.room.message"===i&&!r.state.isCryptoEnabled){if(t.isEncrypted())return;r.handleMessageEvent(t)}"m.room.member"===i&&"invite"===o.membership&&s===r.props.botId&&r.setState({facilitatorInvited:!0}),"m.room.member"===i&&"join"===o.membership&&s!==r.props.botId&&s!==r.state.userId&&(r.verifyAllRoomDevices(e,n),r.setState({facilitatorId:s,ready:!0}),window.clearInterval(r.state.waitIntervalId))})),e.on("Event.decrypted",(function(e,t){if(t)return r.handleDecryptionError(e,t);"m.room.message"===e.getType()&&r.handleMessageEvent(e)})),e.on("RoomMember.typing",(function(e,t){t.typing&&t.roomId===r.state.roomId?r.setState({typingStatus:"".concat(t.name," is typing...")}):r.setState({typingStatus:null})})),e.on("event",(function(e){var t=e.getType(),n=e.getContent();"m.bot.signal"===t&&r.handleBotSignal(n.signal)}))})),v()(g()(r),"handleBotSignal",(function(e){switch(e){case"END_CHAT":return r.displayBotMessage({body:r.props.exitMessage}),r.exitChat(!1)}})),v()(g()(r),"handleInputChange",(function(e){r.setState({inputValue:e.target.value})})),v()(g()(r),"handleAcceptTerms",(function(){r.setState({awaitingAgreement:!1}),r.startWaitTimeForFacilitator();try{r.props.isEncryptionDisabled?r.initializeUnencryptedChat():r.initializeChat()}catch(e){r.handleInitError(e)}})),v()(g()(r),"startWaitTimeForFacilitator",(function(){var e=window.setInterval((function(){r.state.facilitatorId||r.state.ready||r.displayBotMessage({body:r.props.waitMessage})}),r.props.waitInterval);r.setState({waitIntervalId:e})})),v()(g()(r),"handleRejectTerms",(function(){r.exitChat(),r.displayBotMessage({body:r.props.exitMessage})})),v()(g()(r),"handleSubmit",(function(e){e.preventDefault();var t=r.state.inputValue;if(!Boolean(t))return null;if(r.state.isCryptoEnabled&&r.state.client&&(!r.state.client.isRoomEncrypted(r.state.roomId)||!r.state.client.isCryptoEnabled()))return null;if(r.state.client&&r.state.roomId){var n=s()(r.state.messagesInFlight);n.push(t),r.setState({inputValue:"",messagesInFlight:n},(function(){return r.sendMessage(t)})),r.chatboxInput.current.focus()}})),v()(g()(r),"onEmojiClick",(function(e,t){e.preventDefault();var n=t.emoji;r.setState({inputValue:r.state.inputValue.concat(n),emojiSelectorOpen:!1},r.chatboxInput.current.focus())})),r.initialState={opened:!1,showDock:!0,client:null,ready:!0,accessToken:null,userId:null,password:null,localStorage:null,messages:{},inputValue:"",errors:[],roomId:null,typingStatus:null,awaitingAgreement:!0,emojiSelectorOpen:!1,facilitatorInvited:!1,isMobile:!0,isSlowConnection:!0,decryptionErrors:{},messagesInFlight:[]},r.state=r.initialState,r.chatboxInput=w.a.createRef(),r.messageWindow=w.a.createRef(),r.termsUrl=w.a.createRef(),r}return b()(n,t),u()(n,[{key:"componentDidUpdate",value:function(e,t){t.messages===this.state.messages&&t.messagesInFlight===this.state.messagesInFlight&&t.typingStatus===this.state.typingStatus||this.messageWindow.current.scrollTo&&this.messageWindow.current.scrollTo(0,this.messageWindow.current.scrollHeight),!t.facilitatorInvited&&this.state.facilitatorInvited&&this.displayBotMessage({body:this.props.confirmationMessage}),!t.opened&&this.state.opened&&this.detectMobile()}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown,!1),window.addEventListener("beforeunload",this.exitChat)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown,!1),window.removeEventListener("beforeunload",this.exitChat),this.exitChat()}},{key:"render",value:function(){var e,t=this,n=this.state,r=n.ready,o=n.messages,s=n.messagesInFlight,a=n.inputValue,c=n.userId,f=n.roomId,u=n.typingStatus,l=n.opened,d=n.showDock,h=n.emojiSelectorOpen,p=n.isMobile,m=n.decryptionErrors,g=Object.values(o).sort((function(e,t){return e.timestamp-t.timestamp})),y=this.props.position.split(" "),b=i()(y,2),_=b[0],A=b[1];return w.a.createElement("div",{id:"safesupport"},w.a.createElement("div",{className:"docked-widget size-".concat(this.props.size),role:"complementary",style:(e={},v()(e,_,"10px"),v()(e,A,"10px"),e)},w.a.createElement(S.a,{in:l,timeout:250,onExited:this.handleWidgetExit,onEntered:this.handleWidgetEnter},(function(e){return w.a.createElement("div",{className:"widget widget-".concat(e," position-").concat(_),"aria-hidden":!l},w.a.createElement("div",{id:"safesupport-chatbox","aria-haspopup":"dialog"},w.a.createElement(D.a,{handleToggleOpen:t.handleToggleOpen,opened:l,handleExitChat:t.handleExitChat}),w.a.createElement("div",{className:"message-window",ref:t.messageWindow},w.a.createElement("div",{className:"messages"},w.a.createElement("div",{className:"message from-bot"},w.a.createElement("div",{className:"text"},t.props.introMessage)),w.a.createElement("div",{className:"message from-bot"},w.a.createElement("div",{className:"text"},"Please read the full ",w.a.createElement("a",{href:t.props.termsUrl,ref:t.termsUrl,target:"_blank",rel:"noopener noreferrer"},"terms and conditions"),". By using this chat, you agree to these terms.")),w.a.createElement("div",{className:"message from-bot"},w.a.createElement("div",{className:"text"},t.props.agreementMessage)),w.a.createElement("div",{className:"message from-bot"},w.a.createElement("div",{className:"text buttons"},"👉",w.a.createElement("button",{className:"btn",id:"accept",onClick:t.handleAcceptTerms},"YES"),w.a.createElement("button",{className:"btn",id:"reject",onClick:t.handleRejectTerms},"NO"))),g.map((function(e,n){return w.a.createElement(P.a,{key:e.id,message:e,userId:c,botId:t.props.botId,client:t.state.client})})),s.map((function(e,t){return w.a.createElement(P.a,{key:"message-inflight-".concat(t),message:{content:{body:e}},placeholder:!0})})),u&&w.a.createElement("div",{className:"notices"},w.a.createElement("div",{role:"status"},u)),Boolean(Object.keys(m).length)&&w.a.createElement("div",{className:"message from-bot"},w.a.createElement("div",{className:"text buttons"},"Restart chat without encryption?",w.a.createElement("button",{className:"btn",id:"accept",onClick:t.restartWithoutCrypto},"RESTART"))),!r&&w.a.createElement("div",{className:"loader"},"loading..."))),w.a.createElement("div",{className:"input-window"},w.a.createElement("form",{onSubmit:t.handleSubmit},w.a.createElement("div",{className:"message-input-container"},w.a.createElement("input",{id:"message-input",type:"text",onChange:t.handleInputChange,value:a,"aria-label":"Send a message...",placeholder:"Send a message...",autoFocus:!0,ref:t.chatboxInput}),"entered"===e&&!p&&w.a.createElement(B.a,{onEmojiClick:t.onEmojiClick,emojiSelectorOpen:h,toggleEmojiSelector:t.toggleEmojiSelector,closeEmojiSelector:t.closeEmojiSelector})),w.a.createElement("input",{type:"submit",value:"Send",id:"submit",onClick:t.handleSubmit})))))})),d&&!f&&w.a.createElement(M.a,{handleToggleOpen:this.handleToggleOpen,size:this.props.size}),d&&f&&w.a.createElement(D.a,{handleToggleOpen:this.handleToggleOpen,opened:l,handleExitChat:this.handleExitChat})))}}]),n}(w.a.Component);L.propTypes={matrixServerUrl:k.a.string.isRequired,botId:k.a.string.isRequired,termsUrl:k.a.string,introMessage:k.a.string,roomName:k.a.string,agreementMessage:k.a.string,confirmationMessage:k.a.string,exitMessage:k.a.string,chatUnavailableMessage:k.a.string,anonymousDisplayName:k.a.string,waitMessage:k.a.string,chatOfflineMessage:k.a.string,isEncryptionDisabled:k.a.bool,position:k.a.oneOf(["top left","top right","bottom left","bottom right"]),size:k.a.oneOf(["small","large"]),maxWaitTime:k.a.number,waitInterval:k.a.number},L.defaultProps={matrixServerUrl:"https://matrix.rhok.space/",botId:"@help-bot:rhok.space",termsUrl:"https://tosdr.org/",roomName:"Support Chat",introMessage:"This chat application does not collect any of your personal data or any data from your use of this service.",agreementMessage:"Do you want to continue?",confirmationMessage:"Waiting for a facilitator to join the chat...",exitMessage:"The chat is closed. You may close this window.",anonymousDisplayName:"Anonymous",chatUnavailableMessage:"The chat service is not available right now. Please try again later.",waitMessage:"Please be patient, our online facilitators are currently responding to other support requests.",chatOfflineMessage:"All of the chat facilitators are currently offline.",isEncryptionDisabled:!1,position:"bottom right",size:"large",maxWaitTime:6e5,waitInterval:12e4},t.a=L}).call(this,n(6))},function(e,t,n){var r=n(167),i=n(168),o=n(169);e.exports=function(e,t){return r(e)||i(e,t)||o()}},function(e,t){t.endianness=function(){return"LE"},t.hostname=function(){return"undefined"!=typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"}},function(e,t,n){(function(e){(function(){var r,i,o,s,a,c,f,u,l,d,h,p,m,g=function(e,t){for(var n in t)y.call(t,n)&&(e[n]=t[n]);function r(){this.constructor=e}return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},y={}.hasOwnProperty;p=n(37),h=n(40),d=n(10),m=n(178).sync,c=function(e){var t,n,r,i,o;for(o=[],t=0,n=(i=h.readdirSync(e)).length;tthis.quota)throw new s;if(m(c,y,"utf8"),i||((l=new o(n,this._keys.push(e)-1)).size=b,this._metaKeyMap[e]=l,this.length+=1,this._bytesInUse+=b),u)return r=new a(e,g,t,this._eventUrl),this.emit("storage",r)},r.prototype.getItem=function(e){var t,n;return e=f(e),(n=this._metaKeyMap[e])?(t=p.join(this._location,n.key),h.readFileSync(t,"utf8")):null},r.prototype._getStat=function(e){var t;e=f(e),t=p.join(this._location,encodeURIComponent(e));try{return h.statSync(t)}catch(e){return null}},r.prototype.removeItem=function(e){var t,n,r,i,o,s,c,l;if(e=f(e),s=this._metaKeyMap[e]){for(i in c=null,(r=d.EventEmitter.listenerCount(this,"storage"))&&(c=this.getItem(e)),delete this._metaKeyMap[e],this.length-=1,this._bytesInUse-=s.size,n=p.join(this._location,s.key),this._keys.splice(s.index,1),l=this._metaKeyMap)l[i],(o=this._metaKeyMap[i]).index>s.index&&(o.index-=1);if(u(n),r)return t=new a(e,c,null,this._eventUrl),this.emit("storage",t)}},r.prototype.key=function(e){var t;return"---.EMPTY_STRING.---"===(t=this._keys[e])?"":t},r.prototype.clear=function(){var e;if(c(this._location),this._metaKeyMap=l(),this._keys=[],this.length=0,this._bytesInUse=0,d.EventEmitter.listenerCount(this,"storage"))return e=new a(null,null,null,this._eventUrl),this.emit("storage",e)},r.prototype._getBytesInUse=function(){return this._bytesInUse},r.prototype._deleteLocation=function(){return delete n[this._location],u(this._location),this._metaKeyMap={},this._keys=[],this.length=0,this._bytesInUse=0},r}(d.EventEmitter)),t.LocalStorage=i,t.JSONStorage=r,t.QUOTA_EXCEEDED_ERR=s}).call(this)}).call(this,n(13))},function(e,t,n){(function(t,r,i,o){var s,a,c,f,u={},l=(c="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(f){var l,d;if(f=f||{},l||(l=void 0!==f?f:{}),"undefined"!=typeof window)d=function(e){window.crypto.getRandomValues(e)};else{if(!e.exports)throw Error("Cannot find global to attach library to");var h=n(202);d=function(e){var t=h.randomBytes(e.length);e.set(t)},r=t.process}if("undefined"!=typeof OLM_OPTIONS)for(var p in OLM_OPTIONS)OLM_OPTIONS.hasOwnProperty(p)&&(l[p]=OLM_OPTIONS[p]);l.onRuntimeInitialized=function(){We=l._olm_error(),u.PRIVATE_KEY_LENGTH=l._olm_pk_private_key_length(),s&&s()},l.onAbort=function(e){a&&a(e)};var m,g={};for(m in l)l.hasOwnProperty(m)&&(g[m]=l[m]);l.arguments=[],l.thisProgram="./this.program",l.quit=function(e,t){throw t},l.preRun=[],l.postRun=[];var y=!1,b=!1,_=!1,v=!1;y="object"==typeof window,b="function"==typeof importScripts,_="object"==typeof r&&!y&&!b,v=!y&&!_&&!b;var A,w,E="";_?(E=i+"/",l.read=function(e,t){var r=we(e);return r||(A||(A=n(40)),w||(w=n(37)),e=w.normalize(e),r=A.readFileSync(e)),t?r:r.toString()},l.readBinary=function(e){return(e=l.read(e,!0)).buffer||(e=new Uint8Array(e)),x(e.buffer),e},1>2];return e=t+e+15&-16,U[V>>2]=e,(e=e>=$)&&(J(),e=!0),e?(U[V>>2]=t,0):t}function R(e){var t;return t||(t=16),Math.ceil(e/t)*t}g=void 0;var O=!1;function x(e,t){e||Be("Assertion failed: "+t)}function C(e){var t="i8";switch("*"===t.charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":B[e>>0]=0;break;case"i16":j[e>>1]=0;break;case"i32":U[e>>2]=0;break;case"i64":tempI64=[0,(tempDouble=0,1<=+ce(tempDouble)?0>>0:~~+fe((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],U[e>>2]=tempI64[0],U[e+4>>2]=tempI64[1];break;case"float":L[e>>2]=0;break;case"double":F[e>>3]=0;break;default:Be("invalid type for setValue: "+t)}}function P(e,t){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return B[e>>0];case"i16":return j[e>>1];case"i32":case"i64":return U[e>>2];case"float":return L[e>>2];case"double":return F[e>>3];default:Be("invalid type for getValue: "+t)}return null}function M(e){var t,n=l.ALLOC_STACK;if("number"==typeof e)var r=!0,i=e;else r=!1,i=e.length;if(t=4==n?o:["function"==typeof ke?ke:I,Se,I,T][void 0===n?2:n](Math.max(i,1)),r){var o=t;for(x(0==(3&t)),e=t+(-4&i);o>2]=0;for(e=t+i;o>0]=0;return t}return e.subarray||e.slice?N.set(e,t):N.set(new Uint8Array(e),t),t}var D,B,N,j,U,L,F,q,K,z,G,H,V,Q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function W(e){for(var t=N,n=e;t[n];)++n;if(16r?n+=String.fromCharCode(r):(r-=65536,n+=String.fromCharCode(55296|r>>10,56320|1023&r))}}else n+=String.fromCharCode(r)}}function Y(e,t,n,r){if(!(0=s&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o)),127>=s){if(n>=r)break;t[n++]=s}else{if(2047>=s){if(n+1>=r)break;t[n++]=192|s>>6}else{if(65535>=s){if(n+2>=r)break;t[n++]=224|s>>12}else{if(2097151>=s){if(n+3>=r)break;t[n++]=240|s>>18}else{if(67108863>=s){if(n+4>=r)break;t[n++]=248|s>>24}else{if(n+5>=r)break;t[n++]=252|s>>30,t[n++]=128|s>>24&63}t[n++]=128|s>>18&63}t[n++]=128|s>>12&63}t[n++]=128|s>>6&63}t[n++]=128|63&s}}return t[n]=0,n-i}function X(e){for(var t=0,n=0;n=r&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++n)),127>=r?++t:t=2047>=r?t+2:65535>=r?t+3:2097151>=r?t+4:67108863>=r?t+5:t+6}return t}function J(){Be("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+$+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le"),q=K=z=G=H=V=0;var Z=l.TOTAL_STACK||5242880,$=l.TOTAL_MEMORY||16777216;function ee(e){for(;0>0]=e.charCodeAt(n)}var ce=Math.abs,fe=Math.ceil,ue=Math.floor,le=Math.min,de=0,he=null,pe=null;l.preloadedImages={},l.preloadedAudios={};var me=null,ge="data:application/octet-stream;base64,";q=39112,ne.push(),me="data:application/octet-stream;base64,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dmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE5vIGVycm9yIGluZm9ybWF0aW9uAAAAAAAAXZQAAAgAAABmlAAACwAAALiSAABUlAAACAAAALiSAAC0mAAAAAAAAAEAAAABAAAAAQAAAAIAAAACAAAAuJIAANiUAAALAAAAuJIAACKWAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPTE1fS0VZUwBPTE1fUk9PVABPTE1fUkFUQ0hFVABzZW5kZXIgY2hhaW4gaW5kZXg6ICVkIAByZWNlaXZlciBjaGFpbiBpbmRpY2VzOgAgc2tpcHBlZCBtZXNzYWdlIGtleXM6ACAlZAABAiJjdXJ2ZTI1NTE5IjoAImVkMjU1MTkiOgBNRUdPTE1fS0VZUwAAAQIDVU5LTk9XTl9FUlJPUgBTVUNDRVNTAE5PVF9FTk9VR0hfUkFORE9NAE9VVFBVVF9CVUZGRVJfVE9PX1NNQUxMAEJBRF9NRVNTQUdFX1ZFUlNJT04AQkFEX01FU1NBR0VfRk9STUFUAEJBRF9NRVNTQUdFX01BQwBCQURfTUVTU0FHRV9LRVlfSUQASU5WQUxJRF9CQVNFNjQAQkFEX0FDQ09VTlRfS0VZAFVOS05PV05fUElDS0xFX1ZFUlNJT04AQ09SUlVQVEVEX1BJQ0tMRQBCQURfU0VTU0lPTl9LRVkAVU5LTk9XTl9NRVNTQUdFX0lOREVYAEJBRF9MRUdBQ1lfQUNDT1VOVF9QSUNLTEUAQkFEX1NJR05BVFVSRQBPTE1fSU5QVVRfQlVGRkVSX1RPT19TTUFMTABQaWNrbGUALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOAC4=";var ye=q;q+=16,V=I(4),K=z=R(q),H=R(G=K+Z),U[V>>2]=H;var be=!1;function _e(e){var t=Array(X(e)+1);return e=Y(e,t,0,t.length),t.length=e,t}function ve(e){for(var t=[],n=0;n>4,i=(15&i)<<4|o>>2;var a=(3&o)<<6|s;t+=String.fromCharCode(r),64!==o&&(t+=String.fromCharCode(i)),64!==s&&(t+=String.fromCharCode(a))}while(n>2]=e),e},_emscripten_memcpy_big:function(e,t,n){return N.set(N.subarray(t,t+n),e),e},DYNAMICTOP_PTR:V,tempDoublePtr:ye,STACKTOP:z,STACK_MAX:G};var Ee=function(e,t,n){"use asm";var r=new e.Int8Array(n);var i=new e.Int16Array(n);var o=new e.Int32Array(n);var s=new e.Uint8Array(n);var a=new e.Uint16Array(n);var c=new e.Uint32Array(n);var f=new e.Float32Array(n);var u=new e.Float64Array(n);var l=t.DYNAMICTOP_PTR|0;var d=t.tempDoublePtr|0;var h=t.STACKTOP|0;var p=t.STACK_MAX|0;var m=0;var g=0;var y=0;var b=0;var _=e.NaN,v=e.Infinity;var A=0,w=0,E=0,k=0,S=0.0;var I=0;var T=e.Math.floor;var R=e.Math.abs;var O=e.Math.sqrt;var x=e.Math.pow;var C=e.Math.cos;var P=e.Math.sin;var M=e.Math.tan;var D=e.Math.acos;var B=e.Math.asin;var N=e.Math.atan;var j=e.Math.atan2;var U=e.Math.exp;var L=e.Math.log;var F=e.Math.ceil;var q=e.Math.imul;var K=e.Math.min;var z=e.Math.max;var G=e.Math.clz32;var H=t.abort;var V=t.assert;var Q=t.enlargeMemory;var W=t.getTotalMemory;var Y=t.abortOnCannotGrowMemory;var X=t.invoke_ii;var J=t.invoke_iii;var Z=t.invoke_iiii;var $=t.invoke_iiiiiiiiii;var ee=t.___setErrNo;var te=t._emscripten_memcpy_big;var ne=0.0;function re(e){e=e|0;var t=0;t=h;h=h+e|0;h=h+15&-16;return t|0}function ie(){return h|0}function oe(e){e=e|0;h=e}function se(e,t){e=e|0;t=t|0;h=e;p=t}function ae(e,t){e=e|0;t=t|0;if(!m){m=e;g=t}}function ce(e){e=e|0;I=e}function fe(){return I|0}function ue(e){e=e|0;var t=0;t=e+2|0;e=(t>>>0)/3|0;return(e<<2|t-(e*3|0))+-2|0}function le(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,a=0,c=0,f=0;a=t-((t>>>0)%3|0)|0;o=e+a|0;if(!a){a=n;o=e}else{i=e;do{a=s[i>>0]|0;c=a<<8|(s[i+1>>0]|0);f=s[i+2>>0]|0;i=i+3|0;r[n+3>>0]=r[16+(f&63)>>0]|0;r[n+2>>0]=r[16+((c<<8|f)>>>6&63)>>0]|0;r[n+1>>0]=r[16+(c>>>4&63)>>0]|0;r[n>>0]=r[16+(a>>>2)>>0]|0;n=n+4|0}while((i|0)!=(o|0));a=n}n=e+t-o|0;if(!n){f=a;return f|0}i=s[o>>0]|0;if((n|0)==2){n=s[o+1>>0]|0;r[a+2>>0]=r[16+(n<<2&60)>>0]|0;n=(i<<8|n)>>>4;i=3}else{n=i<<4;i=2}r[a+1>>0]=r[16+(n&63)>>0]|0;r[a>>0]=r[16+(n>>>6)>>0]|0;f=a+i|0;return f|0}function de(e){e=e|0;var t=0;t=e+2|0;return((e&3|0)==1?-1:(t&3)+-2+((t>>>2)*3|0)|0)|0}function he(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,a=0,c=0,f=0,u=0,l=0;f=t&-4;a=e+f|0;if(!f)c=e;else{c=(((f+-4|0)>>>2)*3|0)+3|0;i=n;o=e;while(1){u=(s[80+(r[o>>0]&127)>>0]|0)<<6|(s[80+(r[o+1>>0]&127)>>0]|0);l=u<<6|(s[80+(r[o+2>>0]&127)>>0]|0);r[i+2>>0]=l<<6|(s[80+(r[o+3>>0]&127)>>0]|0);o=o+4|0;r[i+1>>0]=l>>>2;r[i>>0]=u>>>4;if((o|0)==(a|0))break;else i=i+3|0}n=n+c|0;c=e+f|0}i=e+t|0;o=i-c|0;if(!o)return i|0;a=(s[80+(r[c>>0]&127)>>0]|0)<<6|(s[80+(r[c+1>>0]&127)>>0]|0);if((o|0)==3)r[n+1>>0]=(a<<6|(s[80+(r[c+2>>0]&127)>>0]|0))>>>2;r[n>>0]=a>>>4;return i|0}function pe(e){e=e|0;var t=0;t=e+2|0;e=(t>>>0)/3|0;return(e<<2|t-(e*3|0))+-2|0}function me(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,a=0,c=0,f=0,u=0;c=t-((t>>>0)%3|0)|0;a=e+c|0;if(!c){c=n;a=e}else{i=n;o=e;do{c=s[o>>0]|0;f=c<<8|(s[o+1>>0]|0);u=s[o+2>>0]|0;o=o+3|0;r[i+3>>0]=r[16+(u&63)>>0]|0;r[i+2>>0]=r[16+((f<<8|u)>>>6&63)>>0]|0;r[i+1>>0]=r[16+(f>>>4&63)>>0]|0;r[i>>0]=r[16+(c>>>2)>>0]|0;i=i+4|0}while((o|0)!=(a|0));c=i}i=e+t-a|0;if(!i){f=c;u=n;u=f-u|0;return u|0}o=s[a>>0]|0;if((i|0)==2){i=s[a+1>>0]|0;r[c+2>>0]=r[16+(i<<2&60)>>0]|0;i=(o<<8|i)>>>4;o=3}else{i=o<<4;o=2}r[c+1>>0]=r[16+(i&63)>>0]|0;r[c>>0]=r[16+(i>>>6)>>0]|0;f=c+o|0;u=n;u=f-u|0;return u|0}function ge(e){e=e|0;var t=0;t=e+2|0;return((e&3|0)==1?-1:(t&3)+-2+((t>>>2)*3|0)|0)|0}function ye(e,t,n){e=e|0;t=t|0;n=n|0;he(e,t,n)|0;n=t+2|0;return((t&3|0)==1?-1:(n&3)+-2+((n>>>2)*3|0)|0)|0}function be(e,t){e=e|0;t=t|0;r[e+3>>0]=t;r[e+2>>0]=t>>>8;r[e+1>>0]=t>>>16;r[e>>0]=t>>>24;return e+4|0}function _e(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;o[n>>2]=0;r=e+4|0;if(r>>>0>t>>>0){r=t;return r|0}o[n>>2]=0;t=(s[e>>0]|0)<<8;o[n>>2]=t;t=(t|(s[e+1>>0]|0))<<8;o[n>>2]=t;t=(t|(s[e+2>>0]|0))<<8;o[n>>2]=t;o[n>>2]=t|(s[e+3>>0]|0);return r|0}function ve(e,t){e=e|0;t=t|0;r[e>>0]=t&1;return e+1|0}function Ae(e,t,n){e=e|0;t=t|0;n=n|0;if((e|0)==(t|0)){n=e;return n|0}r[n>>0]=(r[e>>0]|0)!=0&1;n=e+1|0;return n|0}function we(e,t,n){e=e|0;t=t|0;n=n|0;Ms(e|0,t|0,n|0)|0;return e+n|0}function Ee(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;i=e+r|0;if(i>>>0>t>>>0){i=t;return i|0}Ms(n|0,e|0,r|0)|0;return i|0}function ke(e){e=e|0;return 32}function Se(e,t){e=e|0;t=t|0;var n=0,i=0;i=e;n=i+32|0;do{r[i>>0]=r[t>>0]|0;i=i+1|0;t=t+1|0}while((i|0)<(n|0));return e+32|0}function Ie(e,t,n){e=e|0;t=t|0;n=n|0;var i=0;i=e+32|0;if(i>>>0>t>>>0){i=t;return i|0}t=e;e=n+32|0;do{r[n>>0]=r[t>>0]|0;n=n+1|0;t=t+1|0}while((n|0)<(e|0));return i|0}function Te(e){e=e|0;return 64}function Re(e,t){e=e|0;t=t|0;var n=0,i=0,o=0;n=e;i=t;o=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(o|0));n=e+32|0;i=t+32|0;o=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(o|0));return e+64|0}function Oe(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,a=0;i=e+32|0;if(i>>>0>t>>>0)i=t;else{a=n;s=a+32|0;do{r[a>>0]=r[e>>0]|0;a=a+1|0;e=e+1|0}while((a|0)<(s|0))}o=i+32|0;if(o>>>0>t>>>0){a=t;return a|0}a=n+32|0;e=i;s=a+32|0;do{r[a>>0]=r[e>>0]|0;a=a+1|0;e=e+1|0}while((a|0)<(s|0));a=o;return a|0}function xe(e){e=e|0;return 32}function Ce(e,t){e=e|0;t=t|0;var n=0,i=0;i=e;n=i+32|0;do{r[i>>0]=r[t>>0]|0;i=i+1|0;t=t+1|0}while((i|0)<(n|0));return e+32|0}function Pe(e,t,n){e=e|0;t=t|0;n=n|0;var i=0;i=e+32|0;if(i>>>0>t>>>0){i=t;return i|0}t=e;e=n+32|0;do{r[n>>0]=r[t>>0]|0;n=n+1|0;t=t+1|0}while((n|0)<(e|0));return i|0}function Me(e){e=e|0;return 96}function De(e,t){e=e|0;t=t|0;var n=0,i=0,o=0;n=e;i=t;o=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(o|0));n=e+32|0;i=t+32|0;o=n+64|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(o|0));return e+96|0}function Be(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,a=0;i=e+32|0;if(i>>>0>t>>>0)i=t;else{a=n;s=a+32|0;do{r[a>>0]=r[e>>0]|0;a=a+1|0;e=e+1|0}while((a|0)<(s|0))}o=i+64|0;if(o>>>0>t>>>0){a=t;return a|0}a=n+32|0;e=i;s=a+64|0;do{r[a>>0]=r[e>>0]|0;a=a+1|0;e=e+1|0}while((a|0)<(s|0));a=o;return a|0}function Ne(e,t){e=e|0;t=t|0;r[e+3>>0]=t;r[e+2>>0]=t>>>8;r[e+1>>0]=t>>>16;r[e>>0]=t>>>24;return e+4|0}function je(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;o[n>>2]=0;r=e+4|0;if(r>>>0>t>>>0){r=t;return r|0}o[n>>2]=0;t=(s[e>>0]|0)<<8;o[n>>2]=t;t=(t|(s[e+1>>0]|0))<<8;o[n>>2]=t;t=(t|(s[e+2>>0]|0))<<8;o[n>>2]=t;o[n>>2]=t|(s[e+3>>0]|0);return r|0}function Ue(e,t){e=e|0;t=t|0;r[e>>0]=(t|0)!=0&1;return e+1|0}function Le(e,t,n){e=e|0;t=t|0;n=n|0;if((e|0)==(t|0)){n=e;return n|0}r[n>>0]=(r[e>>0]|0)!=0&1;n=e+1|0;return n|0}function Fe(e,t,n){e=e|0;t=t|0;n=n|0;Ms(e|0,t|0,n|0)|0;return e+n|0}function qe(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;i=e+r|0;if(i>>>0>t>>>0){i=t;return i|0}Ms(n|0,e|0,r|0)|0;return i|0}function Ke(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,o=0,s=0;if(t>>>0>127){o=t;i=1;while(1){i=i+1|0;if(o>>>0>16383)o=o>>>7;else{s=i;break}}}else s=1;if(e>>>0>127){i=1;while(1){i=i+1|0;if(e>>>0>16383)e=e>>>7;else{o=i;break}}}else o=1;if(n>>>0>127){e=n;i=1;while(1){i=i+1|0;if(e>>>0>16383)e=e>>>7;else break}}else i=1;return t+4+n+r+s+o+i|0}function ze(e,t,n,i,s,a){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;a=a|0;var c=0,f=0;r[a>>0]=t;t=a+2|0;r[a+1>>0]=10;if(i>>>0>127){c=t;f=i;while(1){t=c+1|0;r[c>>0]=f|128;a=f>>>7;if(f>>>0>16383){c=t;f=a}else break}}else a=i;f=t+1|0;r[t>>0]=a;o[e>>2]=f;i=f+i|0;t=i+1|0;r[i>>0]=16;if(n>>>0>127)while(1){a=t+1|0;r[t>>0]=n|128;c=n>>>7;if(n>>>0>16383){t=a;n=c}else{n=c;break}}else a=t;r[a>>0]=n;c=e+4|0;t=a+2|0;r[a+1>>0]=34;if(s>>>0<=127){f=s;i=t;f=f&255;e=i+1|0;r[i>>0]=f;o[c>>2]=e;return}a=t;while(1){t=a+1|0;r[a>>0]=s|128;n=s>>>7;if(s>>>0>16383){a=t;s=n}else break}i=n&255;e=t+1|0;r[t>>0]=i;o[c>>2]=e;return}function Ge(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0;s=n-i|0;f=t+s|0;o[e+8>>2]=t;o[e+12>>2]=n;l=e+1|0;r[l>>0]=0;d=e+16|0;h=e+20|0;p=e+24|0;u=e+28|0;o[d>>2]=0;o[d+4>>2]=0;o[d+8>>2]=0;o[d+12>>2]=0;if(n>>>0>>0|(s|0)==0)return;r[e>>0]=r[t>>0]|0;if((s|0)==1)return;a=e+4|0;c=f;s=t+1|0;e:while(1){if((r[s>>0]|0)==10){t=s+1|0;if((t|0)!=(f|0)){e=t;while(1){i=e;e=e+1|0;if((r[i>>0]|0)>-1)break;if((e|0)==(f|0)){e=f;break}}if((e|0)!=(t|0)){n=0;i=e;do{i=i+-1|0;n=n<<7|r[i>>0]&127}while((i|0)!=(t|0));if(n>>>0>(c-e|0)>>>0){s=58;break}}else{n=0;e=t}}else{n=0;e=f}o[d>>2]=e;o[h>>2]=n;e=e+n|0}else e=s;if((e|0)==(f|0)){s=58;break}if((r[e>>0]|0)==16){t=e+1|0;if((t|0)!=(f|0)){e=t;while(1){i=e;e=e+1|0;if((r[i>>0]|0)>-1)break;if((e|0)==(f|0)){e=f;break}}if((e|0)==(t|0)){n=0;e=t}else{n=0;i=e;do{i=i+-1|0;n=n<<7|r[i>>0]&127}while((i|0)!=(t|0))}}else{n=0;e=f}o[a>>2]=n;r[l>>0]=1}if((e|0)==(f|0)){s=58;break}if((r[e>>0]|0)==34){t=e+1|0;if((t|0)!=(f|0)){e=t;while(1){i=e;e=e+1|0;if((r[i>>0]|0)>-1)break;if((e|0)==(f|0)){e=f;break}}if((e|0)!=(t|0)){n=0;i=e;do{i=i+-1|0;n=n<<7|r[i>>0]&127}while((i|0)!=(t|0));if(n>>>0>(c-e|0)>>>0){s=58;break}}else{n=0;e=t}}else{n=0;e=f}o[p>>2]=e;o[u>>2]=n;e=e+n|0}t:do{if(!((s|0)!=(e|0)|(e|0)==(f|0))){n=r[s>>0]|0;switch(n&7){case 0:{s=s+1|0;e=(s|0)==(f|0);if(n<<24>>24<=-1)while(1){if(e){s=58;break e}n=s+1|0;e=(n|0)==(f|0);if((r[s>>0]|0)>-1){s=n;break}else s=n}if(e)break t;while(1){t=s;s=s+1|0;if((r[t>>0]|0)>-1)break t;if((s|0)==(f|0)){s=58;break e}}}case 2:break;default:{s=58;break e}}s=s+1|0;e=(s|0)==(f|0);if(n<<24>>24<=-1)while(1){if(e){s=58;break e}n=s+1|0;e=(n|0)==(f|0);if((r[s>>0]|0)>-1){s=n;break}else s=n}if(!e){e=s;while(1){t=e;e=e+1|0;if((r[t>>0]|0)>-1)break;if((e|0)==(f|0)){e=f;break}}if((e|0)!=(s|0)){n=0;i=e;do{i=i+-1|0;n=n<<7|r[i>>0]&127}while((i|0)!=(s|0));if(n>>>0>(c-e|0)>>>0){s=58;break e}else s=e+n|0}}}else s=e}while(0);if((s|0)==(f|0)){s=58;break}}if((s|0)==58)return}function He(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,o=0,s=0,a=0,c=0;if(e>>>0>127){o=e;i=1;while(1){i=i+1|0;if(o>>>0>16383)o=o>>>7;else break}}else i=1;if(t>>>0>127){s=t;o=1;while(1){o=o+1|0;if(s>>>0>16383)s=s>>>7;else break}}else o=1;if(n>>>0>127){a=n;s=1;while(1){s=s+1|0;if(a>>>0>16383)a=a>>>7;else{c=s;break}}}else c=1;if(r>>>0>127){a=r;s=1;while(1){s=s+1|0;if(a>>>0>16383)a=a>>>7;else break}}else s=1;return e+5+t+n+r+i+o+c+s|0}function Ve(e,t,n,i,s,a,c){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;a=a|0;c=c|0;var f=0,u=0,l=0;r[c>>0]=t;l=e+8|0;t=c+2|0;r[c+1>>0]=10;if(s>>>0>127){f=t;u=s;while(1){t=f+1|0;r[f>>0]=u|128;c=u>>>7;if(u>>>0>16383){f=t;u=c}else break}}else c=s;u=t+1|0;r[t>>0]=c;o[l>>2]=u;s=u+s|0;l=e+4|0;t=s+1|0;r[s>>0]=18;if(i>>>0>127){f=i;while(1){u=t+1|0;r[t>>0]=f|128;c=f>>>7;if(f>>>0>16383){t=u;f=c}else{t=u;break}}}else c=i;s=t+1|0;r[t>>0]=c;o[l>>2]=s;i=s+i|0;t=i+1|0;r[i>>0]=26;if(n>>>0>127){f=n;while(1){u=t+1|0;r[t>>0]=f|128;c=f>>>7;if(f>>>0>16383){t=u;f=c}else{t=u;break}}}else c=n;u=t+1|0;r[t>>0]=c;o[e>>2]=u;n=u+n|0;u=e+12|0;t=n+1|0;r[n>>0]=34;if(a>>>0<=127){i=a;e=t;i=i&255;n=e+1|0;r[e>>0]=i;o[u>>2]=n;return}f=t;while(1){t=f+1|0;r[f>>0]=a|128;c=a>>>7;if(a>>>0>16383){f=t;a=c}else break}e=c&255;n=t+1|0;r[t>>0]=e;o[u>>2]=n;return}function Qe(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0;u=t+n|0;l=e+20|0;d=e+24|0;h=e+4|0;p=e+8|0;m=e+12|0;g=e+16|0;c=e+28|0;f=e+32|0;o[h>>2]=0;o[h+4>>2]=0;o[h+8>>2]=0;o[h+12>>2]=0;o[h+16>>2]=0;o[h+20>>2]=0;o[h+24>>2]=0;o[h+28>>2]=0;if(!n)return;r[e>>0]=r[t>>0]|0;if((n|0)==1)return;a=u;e=t+1|0;e:while(1){if((r[e>>0]|0)==10){s=e+1|0;if((s|0)!=(u|0)){n=s;while(1){i=n;n=n+1|0;if((r[i>>0]|0)>-1)break;if((n|0)==(u|0)){n=u;break}}if((n|0)!=(s|0)){t=0;i=n;do{i=i+-1|0;t=t<<7|r[i>>0]&127}while((i|0)!=(s|0));if(t>>>0>(a-n|0)>>>0){e=70;break}}else{t=0;n=s}}else{t=0;n=u}o[l>>2]=n;o[d>>2]=t;n=n+t|0}else n=e;if((n|0)==(u|0)){e=70;break}if((r[n>>0]|0)==18){s=n+1|0;if((s|0)!=(u|0)){n=s;while(1){i=n;n=n+1|0;if((r[i>>0]|0)>-1)break;if((n|0)==(u|0)){n=u;break}}if((n|0)!=(s|0)){t=0;i=n;do{i=i+-1|0;t=t<<7|r[i>>0]&127}while((i|0)!=(s|0));if(t>>>0>(a-n|0)>>>0){e=70;break}}else{t=0;n=s}}else{t=0;n=u}o[m>>2]=n;o[g>>2]=t;n=n+t|0}if((n|0)==(u|0)){e=70;break}if((r[n>>0]|0)==26){s=n+1|0;if((s|0)!=(u|0)){n=s;while(1){i=n;n=n+1|0;if((r[i>>0]|0)>-1)break;if((n|0)==(u|0)){n=u;break}}if((n|0)!=(s|0)){t=0;i=n;do{i=i+-1|0;t=t<<7|r[i>>0]&127}while((i|0)!=(s|0));if(t>>>0>(a-n|0)>>>0){e=70;break}}else{t=0;n=s}}else{t=0;n=u}o[h>>2]=n;o[p>>2]=t;n=n+t|0}if((n|0)==(u|0)){e=70;break}if((r[n>>0]|0)==34){s=n+1|0;if((s|0)!=(u|0)){n=s;while(1){i=n;n=n+1|0;if((r[i>>0]|0)>-1)break;if((n|0)==(u|0)){n=u;break}}if((n|0)!=(s|0)){t=0;i=n;do{i=i+-1|0;t=t<<7|r[i>>0]&127}while((i|0)!=(s|0));if(t>>>0>(a-n|0)>>>0){e=70;break}}else{t=0;n=s}}else{t=0;n=u}o[c>>2]=n;o[f>>2]=t;n=n+t|0}t:do{if(!((e|0)!=(n|0)|(n|0)==(u|0))){t=r[e>>0]|0;switch(t&7){case 0:{e=e+1|0;n=(e|0)==(u|0);if(t<<24>>24<=-1)while(1){if(n){e=70;break e}t=e+1|0;n=(t|0)==(u|0);if((r[e>>0]|0)>-1){e=t;break}else e=t}if(n)break t;while(1){s=e;e=e+1|0;if((r[s>>0]|0)>-1)break t;if((e|0)==(u|0)){e=70;break e}}}case 2:break;default:{e=70;break e}}e=e+1|0;n=(e|0)==(u|0);if(t<<24>>24<=-1)while(1){if(n){e=70;break e}t=e+1|0;n=(t|0)==(u|0);if((r[e>>0]|0)>-1){e=t;break}else e=t}if(!n){n=e;while(1){s=n;n=n+1|0;if((r[s>>0]|0)>-1)break;if((n|0)==(u|0)){n=u;break}}if((n|0)!=(e|0)){t=0;i=n;do{i=i+-1|0;t=t<<7|r[i>>0]&127}while((i|0)!=(e|0));if(t>>>0>(a-n|0)>>>0){e=70;break e}else e=n+t|0}}}else e=n}while(0);if((e|0)==(u|0)){e=70;break}}if((e|0)==70)return}function We(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,o=0;if(e>>>0>127){i=1;while(1){i=i+1|0;if(e>>>0>16383)e=e>>>7;else break}}else i=1;if(t>>>0>127){o=t;e=1;while(1){e=e+1|0;if(o>>>0>16383)o=o>>>7;else break}}else e=1;return t+3+n+r+i+e|0}function Ye(e,t,n,i,s){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;var a=0,c=0;r[i>>0]=e;a=i+2|0;r[i+1>>0]=8;if(t>>>0>127){c=a;while(1){a=c+1|0;r[c>>0]=t|128;e=t>>>7;if(t>>>0>16383){c=a;t=e}else break}}else e=t;r[a>>0]=e;e=a+2|0;r[a+1>>0]=18;if(n>>>0>127){t=n;while(1){c=e+1|0;r[e>>0]=t|128;a=t>>>7;if(t>>>0>16383){e=c;t=a}else{e=c;break}}}else a=n;c=e+1|0;r[e>>0]=a;o[s>>2]=c;return c+n-i|0}function Xe(e,t,n,i,s){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;var a=0,c=0,f=0,u=0,l=0,d=0,h=0;f=i+n|0;n=t-f|0;u=e+n|0;l=s+4|0;o[l>>2]=0;d=s+12|0;o[d>>2]=0;h=s+16|0;o[h>>2]=0;if(f>>>0>t>>>0|(n|0)==0)return;r[s>>0]=r[e>>0]|0;e:do{if((n|0)==1)n=0;else{f=u;n=0;i=e+1|0;do{if((r[i>>0]|0)==8){a=i+1|0;if((a|0)!=(u|0)){n=a;while(1){c=n;n=n+1|0;if((r[c>>0]|0)>-1)break;if((n|0)==(u|0)){n=u;break}}if((n|0)==(a|0)){t=0;n=a}else{t=0;e=n;do{e=e+-1|0;t=t<<7|r[e>>0]&127}while((e|0)!=(a|0))}}else{t=0;n=u}o[l>>2]=t;t=n;n=1}else t=i;if((t|0)==(u|0))break e;if((r[t>>0]|0)==18){c=t+1|0;if((c|0)!=(u|0)){t=c;while(1){a=t;t=t+1|0;if((r[a>>0]|0)>-1)break;if((t|0)==(u|0)){t=u;break}}if((t|0)!=(c|0)){e=0;a=t;do{a=a+-1|0;e=e<<7|r[a>>0]&127}while((a|0)!=(c|0));if(e>>>0>(f-t|0)>>>0)break e}else{e=0;t=c}}else{e=0;t=u}o[d>>2]=t;o[h>>2]=e;t=t+e|0}t:do{if(!((i|0)!=(t|0)|(t|0)==(u|0))){e=r[i>>0]|0;switch(e&7){case 0:{i=i+1|0;t=(i|0)==(u|0);if(e<<24>>24<=-1)while(1){if(t)break e;e=i+1|0;t=(e|0)==(u|0);if((r[i>>0]|0)>-1){i=e;break}else i=e}if(t)break t;while(1){c=i;i=i+1|0;if((r[c>>0]|0)>-1)break t;if((i|0)==(u|0))break e}}case 2:break;default:break e}i=i+1|0;t=(i|0)==(u|0);if(e<<24>>24<=-1)while(1){if(t)break e;e=i+1|0;t=(e|0)==(u|0);if((r[i>>0]|0)>-1){i=e;break}else i=e}if(!t){t=i;while(1){c=t;t=t+1|0;if((r[c>>0]|0)>-1)break;if((t|0)==(u|0)){t=u;break}}if((t|0)!=(i|0)){e=0;a=t;do{a=a+-1|0;e=e<<7|r[a>>0]&127}while((a|0)!=(i|0));if(e>>>0>(f-t|0)>>>0)break e;else i=t+e|0}}}else i=t}while(0)}while((i|0)!=(u|0))}}while(0);o[s+8>>2]=n&255;return}function Je(e){e=e|0;gn(e,37520,37536);o[e+3216>>2]=0;r[e+3220>>0]=0;return}function Ze(e){e=e|0;return 64}function $e(e,t,n,i,s,a){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;a=a|0;var c=0,f=0,u=0,l=0,d=0;d=h;h=h+224|0;f=d+160|0;u=d+96|0;l=d;if(a>>>0<64){o[e+3216>>2]=1;l=-1;h=d;return l|0}else{pt(s,f);pt(s+32|0,u);t=t+96|0;r[e+3220>>0]=0;s=e+3221|0;a=t;c=s+32|0;do{r[s>>0]=r[a>>0]|0;s=s+1|0;a=a+1|0}while((s|0)<(c|0));s=e+3253|0;a=f;c=s+32|0;do{r[s>>0]=r[a>>0]|0;s=s+1|0;a=a+1|0}while((s|0)<(c|0));s=e+3285|0;a=i;c=s+32|0;do{r[s>>0]=r[a>>0]|0;s=s+1|0;a=a+1|0}while((s|0)<(c|0));mt(t,i,l);mt(f,n,l+32|0);mt(f,i,l+64|0);bn(e,l,96,u);Hr(f,64);Hr(u,64);Hr(l,96);l=0;h=d;return l|0}return 0}function et(e,t,n,i,s){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;var a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0;b=h;h=h+208|0;p=b+128|0;m=b+96|0;g=b+168|0;y=b;Qe(p,i,s);c=(n|0)!=0;i=o[p+4>>2]|0;a=(i|0)!=0;s=c|a;if(i)s=s&(o[p+8>>2]|0)==32;l=o[p+28>>2]|0;u=o[p+12>>2]|0;d=o[p+20>>2]|0;if(!(s&(l|0)!=0&(u|0)!=0&(o[p+16>>2]|0)==32&(d|0)!=0&(o[p+24>>2]|0)==32)){o[e+3216>>2]=4;y=-1;h=b;return y|0}if(c&a?qo(n,i,32)|0:0){o[e+3216>>2]=6;y=-1;h=b;return y|0}f=e+3221|0;n=f;a=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(a|0));c=e+3253|0;n=c;i=u;a=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(a|0));s=e+3285|0;n=s;i=d;a=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(a|0));p=o[p+32>>2]|0;i=o[e+4>>2]|0;Ge(m,l,p,Gs[o[o[i>>2]>>2]&1](i)|0);i=o[m+16>>2]|0;if((i|0)!=0?(o[m+20>>2]|0)==32:0){n=g;a=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(a|0));i=Tr(t,s)|0;if(!i){o[e+3216>>2]=6;i=-1}else{i=i+5|0;mt(i,f,y);mt(t+96|0,c,y+32|0);mt(i,c,y+64|0);yn(e,y,96,g);Hr(y,96);i=0}}else{o[e+3216>>2]=4;i=-1}y=i;h=b;return y|0}function tt(e){e=e|0;return 32}function nt(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0;c=h;h=h+96|0;a=c;if(n>>>0<32){o[e+3216>>2]=2;a=-1;h=c;return a|0}else{n=a;i=e+3221|0;s=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(s|0));n=a+32|0;i=e+3253|0;s=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(s|0));n=a+64|0;i=e+3285|0;s=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(s|0));wt(a,96,t);a=32;h=c;return a|0}return 0}function rt(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,s=0,a=0,c=0,f=0,u=0;u=h;h=h+48|0;f=u;Qe(f,n,r);c=(t|0)!=0;a=o[f+4>>2]|0;n=c|(a|0)!=0;r=(a|0)==0;if(!r)n=n&(o[f+8>>2]|0)==32;i=o[f+12>>2]|0;s=o[f+20>>2]|0;if(!(n&(o[f+28>>2]|0)!=0&(i|0)!=0&(o[f+16>>2]|0)==32&(s|0)!=0&(o[f+24>>2]|0)==32)){t=0;h=u;return t|0}if(r)n=1;else n=(qo(a,e+3221|0,32)|0)==0;if(c){if(!n){t=0;h=u;return t|0}if(qo(t,e+3221|0,32)|0){t=0;h=u;return t|0}}else if(!n){t=0;h=u;return t|0}if(qo(i,e+3253|0,32)|0){t=0;h=u;return t|0}t=(qo(s,e+3285|0,32)|0)==0;h=u;return t|0}function it(e){e=e|0;return s[e+3220>>0]|0|0}function ot(e,t){e=e|0;t=t|0;t=wn(e,t)|0;if(r[e+3220>>0]|0){e=t;return e|0}e=He(32,32,32,t)|0;return e|0}function st(e){e=e|0;return En(e)|0}function at(e,t,n,i,s,a,c){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;a=a|0;c=c|0;var f=0,u=0,l=0,d=0,p=0;p=h;h=h+16|0;d=p;f=wn(e,n)|0;u=e+3220|0;if(!(r[u>>0]|0))f=He(32,32,32,f)|0;if(f>>>0>c>>>0){o[e+3216>>2]=2;e=-1;h=p;return e|0}l=wn(e,n)|0;if(!(r[u>>0]|0)){Ve(d,3,32,32,32,l,a);a=o[d+8>>2]|0;f=e+3285|0;c=a+32|0;do{r[a>>0]=r[f>>0]|0;a=a+1|0;f=f+1|0}while((a|0)<(c|0));a=o[d>>2]|0;f=e+3221|0;c=a+32|0;do{r[a>>0]=r[f>>0]|0;a=a+1|0;f=f+1|0}while((a|0)<(c|0));a=o[d+4>>2]|0;f=e+3253|0;c=a+32|0;do{r[a>>0]=r[f>>0]|0;a=a+1|0;f=f+1|0}while((a|0)<(c|0));a=o[d+12>>2]|0}a=kn(e,t,n,i,s,a,l)|0;if((a|0)!=-1){e=a;h=p;return e|0}s=e+8|0;o[e+3216>>2]=o[s>>2];o[s>>2]=0;e=-1;h=p;return e|0}function ct(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,s=0;s=h;h=h+48|0;i=s;do{if((t|0)!=1){Qe(i,n,r);n=o[i+28>>2]|0;if(n|0){r=o[i+32>>2]|0;break}o[e+3216>>2]=4;e=-1;h=s;return e|0}}while(0);n=Sn(e,n,r)|0;if((n|0)!=-1){e=n;h=s;return e|0}i=e+8|0;o[e+3216>>2]=o[i>>2];o[i>>2]=0;e=-1;h=s;return e|0}function ft(e,t,n,i,s,a){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;a=a|0;var c=0,f=0;f=h;h=h+48|0;c=f;do{if((t|0)!=1){Qe(c,n,i);n=o[c+28>>2]|0;if(n|0){i=o[c+32>>2]|0;break}o[e+3216>>2]=4;e=-1;h=f;return e|0}}while(0);n=In(e,n,i,s,a)|0;if((n|0)==-1){a=e+8|0;o[e+3216>>2]=o[a>>2];o[a>>2]=0;e=-1;h=f;return e|0}else{r[e+3220>>0]=1;e=n;h=f;return e|0}return 0}function ut(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0;m=h;h=h+48|0;p=m+32|0;u=m+24|0;l=m+16|0;i=m;if(!n){h=m;return}r[t>>0]=0;f=t;o[i>>2]=o[e+112>>2];i=vs(t,n,38002,i)|0;i=(i|0)>0?t+i|0:t;d=f+n|0;a=vs(i,d-i|0,38026,m+8|0)|0;i=(a|0)>0?i+a|0:i;a=e+148|0;c=e+152|0;t=f-i+n|0;if((o[a>>2]|0)!=(c|0)){s=0;do{o[u>>2]=o[e+152+(s*68|0)+32>>2];t=vs(i,t,38073,u)|0;i=(t|0)>0?i+t|0:i;s=s+1|0;t=f-i+n|0}while(s>>>0<(((o[a>>2]|0)-c|0)/68|0)>>>0)}t=vs(i,t,38050,l)|0;a=e+492|0;c=e+496|0;if((o[a>>2]|0)==(c|0)){h=m;return}s=0;t=(t|0)>-1?i+t|0:i;while(1){o[p>>2]=o[e+496+(s*68|0)+32>>2];i=vs(t,d-t|0,38073,p)|0;s=s+1|0;if(s>>>0>=(((o[a>>2]|0)-c|0)/68|0)>>>0)break;else t=(i|0)>0?t+i|0:t}h=m;return}function lt(e){e=e|0;var t=0;t=(ke(e+3221|0)|0)+5|0;t=t+(ke(e+3253|0)|0)|0;t=t+(ke(e+3285|0)|0)|0;return t+(_n(e)|0)|0}function dt(e,t){e=e|0;t=t|0;e=be(e,1)|0;return vn(Se(Se(Se(ve(e,(r[t+3220>>0]|0)!=0)|0,t+3221|0)|0,t+3253|0)|0,t+3285|0)|0,t)|0}function ht(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0;s=h;h=h+16|0;r=s;i=_e(e,t,r)|0;e=o[r>>2]|0;e:do{if((e|0)<1){switch(e|0){case-2147483647:break;default:{r=3;break e}}e=1;r=4}else switch(e|0){case 1:{e=0;r=4;break}default:r=3}}while(0);if((r|0)==3){o[n+3216>>2]=9;n=t;h=s;return n|0}else if((r|0)==4){n=An(Ie(Ie(Ie(Ae(i,t,n+3220|0)|0,t,n+3221|0)|0,t,n+3253|0)|0,t,n+3285|0)|0,t,n,e)|0;h=s;return n|0}return 0}function pt(e,t){e=e|0;t=t|0;var n=0,i=0,o=0;i=t+32|0;o=i;n=o+32|0;do{r[o>>0]=r[e>>0]|0;o=o+1|0;e=e+1|0}while((o|0)<(n|0));Po(t,i,208)|0;return}function mt(e,t,n){e=e|0;t=t|0;n=n|0;Po(n,e+32|0,t)|0;return}function gt(e,t){e=e|0;t=t|0;hi(t,t+32|0,e);return}function yt(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;bi(r,t,n,e,e+32|0);return}function bt(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return(yi(r,t,n,e)|0)!=0|0}function _t(e){e=e|0;return e+16-(e&15)|0}function vt(e,t,n,i,o){e=e|0;t=t|0;n=n|0;i=i|0;o=o|0;var a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0,C=0;C=h;h=h+256|0;O=C+16|0;x=C;Oo(e,O,256);T=x;k=T+16|0;do{r[T>>0]=r[t>>0]|0;T=T+1|0;t=t+1|0}while((T|0)<(k|0));if(i>>>0>15){A=x+1|0;w=x+2|0;a=x+3|0;c=x+4|0;f=x+5|0;u=x+6|0;l=x+7|0;d=x+8|0;p=x+9|0;m=x+10|0;g=x+11|0;y=x+12|0;b=x+13|0;_=x+14|0;v=x+15|0;S=i+-16|0;I=S&-16;R=I+16|0;E=o+R|0;e=i;i=n;while(1){r[x>>0]=r[x>>0]^r[i>>0];r[A>>0]=r[A>>0]^r[i+1>>0];r[w>>0]=r[w>>0]^r[i+2>>0];r[a>>0]=r[a>>0]^r[i+3>>0];r[c>>0]=r[c>>0]^r[i+4>>0];r[f>>0]=r[f>>0]^r[i+5>>0];r[u>>0]=r[u>>0]^r[i+6>>0];r[l>>0]=r[l>>0]^r[i+7>>0];r[d>>0]=r[d>>0]^r[i+8>>0];r[p>>0]=r[p>>0]^r[i+9>>0];r[m>>0]=r[m>>0]^r[i+10>>0];r[g>>0]=r[g>>0]^r[i+11>>0];r[y>>0]=r[y>>0]^r[i+12>>0];r[b>>0]=r[b>>0]^r[i+13>>0];r[_>>0]=r[_>>0]^r[i+14>>0];r[v>>0]=r[v>>0]^r[i+15>>0];To(x,o,O,256);T=x;t=o;k=T+16|0;do{r[T>>0]=r[t>>0]|0;T=T+1|0;t=t+1|0}while((T|0)<(k|0));e=e+-16|0;if(e>>>0<=15)break;else{o=o+16|0;i=i+16|0}}o=E;t=S-I|0;n=n+R|0}else t=i;if(t){e=0;do{R=x+e|0;r[R>>0]=r[R>>0]^r[n+e>>0];e=e+1|0}while((e|0)!=(t|0));if(t>>>0<16)n=t;else{To(x,o,O,256);Hr(O,240);Hr(x,16);h=C;return}}else n=0;e=16-t|0;do{R=x+n|0;r[R>>0]=e^(s[R>>0]|0);n=n+1|0}while((n|0)!=16);To(x,o,O,256);Hr(O,240);Hr(x,16);h=C;return}function At(e,t,n,i,s){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;var a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0;O=h;h=h+272|0;I=O+32|0;T=O+16|0;R=O;Oo(e,I,256);S=T;k=S+16|0;do{r[S>>0]=r[t>>0]|0;S=S+1|0;t=t+1|0}while((S|0)<(k|0));if(!i){Hr(I,240);Hr(T,16);Hr(R,16);R=i+-1|0;R=s+R|0;R=r[R>>0]|0;R=R&255;T=R>>>0>i>>>0;R=i-R|0;R=T?-1:R;h=O;return R|0}E=T+1|0;a=T+2|0;c=T+3|0;f=T+4|0;u=T+5|0;l=T+6|0;d=T+7|0;p=T+8|0;m=T+9|0;g=T+10|0;y=T+11|0;b=T+12|0;_=T+13|0;v=T+14|0;A=T+15|0;e=0;do{w=n+e|0;S=R;t=w;k=S+16|0;do{r[S>>0]=r[t>>0]|0;S=S+1|0;t=t+1|0}while((S|0)<(k|0));S=s+e|0;Co(w,S,I,256);r[S>>0]=r[S>>0]^r[T>>0];k=S+1|0;r[k>>0]=r[k>>0]^r[E>>0];k=S+2|0;r[k>>0]=r[k>>0]^r[a>>0];k=S+3|0;r[k>>0]=r[k>>0]^r[c>>0];k=S+4|0;r[k>>0]=r[k>>0]^r[f>>0];k=S+5|0;r[k>>0]=r[k>>0]^r[u>>0];k=S+6|0;r[k>>0]=r[k>>0]^r[l>>0];k=S+7|0;r[k>>0]=r[k>>0]^r[d>>0];k=S+8|0;r[k>>0]=r[k>>0]^r[p>>0];k=S+9|0;r[k>>0]=r[k>>0]^r[m>>0];k=S+10|0;r[k>>0]=r[k>>0]^r[g>>0];k=S+11|0;r[k>>0]=r[k>>0]^r[y>>0];k=S+12|0;r[k>>0]=r[k>>0]^r[b>>0];k=S+13|0;r[k>>0]=r[k>>0]^r[_>>0];k=S+14|0;r[k>>0]=r[k>>0]^r[v>>0];S=S+15|0;r[S>>0]=r[S>>0]^r[A>>0];o[T>>2]=o[R>>2];o[T+4>>2]=o[R+4>>2];o[T+8>>2]=o[R+8>>2];o[T+12>>2]=o[R+12>>2];e=e+16|0}while(e>>>0>>0);Hr(I,240);Hr(T,16);Hr(R,16);R=i+-1|0;R=s+R|0;R=r[R>>0]|0;R=R&255;T=R>>>0>i>>>0;R=i-R|0;R=T?-1:R;h=O;return R|0}function wt(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+112|0;i=r;ko(i);So(i,e,t);Io(i,n);Hr(i,112);h=r;return}function Et(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0,c=0,f=0,u=0,l=0;u=h;h=h+288|0;s=u+176|0;a=u;c=u+64|0;f=a;l=f+64|0;do{o[f>>2]=0;f=f+4|0}while((f|0)<(l|0));if(t>>>0>64){ko(s);So(s,e,t);Io(s,a)}else Ms(a|0,e|0,t|0)|0;kt(c,a);So(c,n,r);St(c,a,i);Hr(a,64);Hr(c,112);h=u;return}function kt(e,t){e=e|0;t=t|0;var n=0,i=0,o=0,s=0;s=h;h=h+64|0;i=s;o=i;n=o+64|0;do{r[o>>0]=r[t>>0]|0;o=o+1|0;t=t+1|0}while((o|0)<(n|0));r[i>>0]=r[i>>0]^54;o=i+1|0;r[o>>0]=r[o>>0]^54;o=i+2|0;r[o>>0]=r[o>>0]^54;o=i+3|0;r[o>>0]=r[o>>0]^54;o=i+4|0;r[o>>0]=r[o>>0]^54;o=i+5|0;r[o>>0]=r[o>>0]^54;o=i+6|0;r[o>>0]=r[o>>0]^54;o=i+7|0;r[o>>0]=r[o>>0]^54;o=i+8|0;r[o>>0]=r[o>>0]^54;o=i+9|0;r[o>>0]=r[o>>0]^54;o=i+10|0;r[o>>0]=r[o>>0]^54;o=i+11|0;r[o>>0]=r[o>>0]^54;o=i+12|0;r[o>>0]=r[o>>0]^54;o=i+13|0;r[o>>0]=r[o>>0]^54;o=i+14|0;r[o>>0]=r[o>>0]^54;o=i+15|0;r[o>>0]=r[o>>0]^54;o=i+16|0;r[o>>0]=r[o>>0]^54;o=i+17|0;r[o>>0]=r[o>>0]^54;o=i+18|0;r[o>>0]=r[o>>0]^54;o=i+19|0;r[o>>0]=r[o>>0]^54;o=i+20|0;r[o>>0]=r[o>>0]^54;o=i+21|0;r[o>>0]=r[o>>0]^54;o=i+22|0;r[o>>0]=r[o>>0]^54;o=i+23|0;r[o>>0]=r[o>>0]^54;o=i+24|0;r[o>>0]=r[o>>0]^54;o=i+25|0;r[o>>0]=r[o>>0]^54;o=i+26|0;r[o>>0]=r[o>>0]^54;o=i+27|0;r[o>>0]=r[o>>0]^54;o=i+28|0;r[o>>0]=r[o>>0]^54;o=i+29|0;r[o>>0]=r[o>>0]^54;o=i+30|0;r[o>>0]=r[o>>0]^54;o=i+31|0;r[o>>0]=r[o>>0]^54;o=i+32|0;r[o>>0]=r[o>>0]^54;o=i+33|0;r[o>>0]=r[o>>0]^54;o=i+34|0;r[o>>0]=r[o>>0]^54;o=i+35|0;r[o>>0]=r[o>>0]^54;o=i+36|0;r[o>>0]=r[o>>0]^54;o=i+37|0;r[o>>0]=r[o>>0]^54;o=i+38|0;r[o>>0]=r[o>>0]^54;o=i+39|0;r[o>>0]=r[o>>0]^54;o=i+40|0;r[o>>0]=r[o>>0]^54;o=i+41|0;r[o>>0]=r[o>>0]^54;o=i+42|0;r[o>>0]=r[o>>0]^54;o=i+43|0;r[o>>0]=r[o>>0]^54;o=i+44|0;r[o>>0]=r[o>>0]^54;o=i+45|0;r[o>>0]=r[o>>0]^54;o=i+46|0;r[o>>0]=r[o>>0]^54;o=i+47|0;r[o>>0]=r[o>>0]^54;o=i+48|0;r[o>>0]=r[o>>0]^54;o=i+49|0;r[o>>0]=r[o>>0]^54;o=i+50|0;r[o>>0]=r[o>>0]^54;o=i+51|0;r[o>>0]=r[o>>0]^54;o=i+52|0;r[o>>0]=r[o>>0]^54;o=i+53|0;r[o>>0]=r[o>>0]^54;o=i+54|0;r[o>>0]=r[o>>0]^54;o=i+55|0;r[o>>0]=r[o>>0]^54;o=i+56|0;r[o>>0]=r[o>>0]^54;o=i+57|0;r[o>>0]=r[o>>0]^54;o=i+58|0;r[o>>0]=r[o>>0]^54;o=i+59|0;r[o>>0]=r[o>>0]^54;o=i+60|0;r[o>>0]=r[o>>0]^54;o=i+61|0;r[o>>0]=r[o>>0]^54;o=i+62|0;r[o>>0]=r[o>>0]^54;o=i+63|0;r[o>>0]=r[o>>0]^54;ko(e);So(e,i,64);Hr(i,64);h=s;return}function St(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,a=0,c=0;c=h;h=h+208|0;o=c;s=c+96|0;a=o;i=a+64|0;do{r[a>>0]=r[t>>0]|0;a=a+1|0;t=t+1|0}while((a|0)<(i|0));r[o>>0]=r[o>>0]^92;a=o+1|0;r[a>>0]=r[a>>0]^92;a=o+2|0;r[a>>0]=r[a>>0]^92;a=o+3|0;r[a>>0]=r[a>>0]^92;a=o+4|0;r[a>>0]=r[a>>0]^92;a=o+5|0;r[a>>0]=r[a>>0]^92;a=o+6|0;r[a>>0]=r[a>>0]^92;a=o+7|0;r[a>>0]=r[a>>0]^92;a=o+8|0;r[a>>0]=r[a>>0]^92;a=o+9|0;r[a>>0]=r[a>>0]^92;a=o+10|0;r[a>>0]=r[a>>0]^92;a=o+11|0;r[a>>0]=r[a>>0]^92;a=o+12|0;r[a>>0]=r[a>>0]^92;a=o+13|0;r[a>>0]=r[a>>0]^92;a=o+14|0;r[a>>0]=r[a>>0]^92;a=o+15|0;r[a>>0]=r[a>>0]^92;a=o+16|0;r[a>>0]=r[a>>0]^92;a=o+17|0;r[a>>0]=r[a>>0]^92;a=o+18|0;r[a>>0]=r[a>>0]^92;a=o+19|0;r[a>>0]=r[a>>0]^92;a=o+20|0;r[a>>0]=r[a>>0]^92;a=o+21|0;r[a>>0]=r[a>>0]^92;a=o+22|0;r[a>>0]=r[a>>0]^92;a=o+23|0;r[a>>0]=r[a>>0]^92;a=o+24|0;r[a>>0]=r[a>>0]^92;a=o+25|0;r[a>>0]=r[a>>0]^92;a=o+26|0;r[a>>0]=r[a>>0]^92;a=o+27|0;r[a>>0]=r[a>>0]^92;a=o+28|0;r[a>>0]=r[a>>0]^92;a=o+29|0;r[a>>0]=r[a>>0]^92;a=o+30|0;r[a>>0]=r[a>>0]^92;a=o+31|0;r[a>>0]=r[a>>0]^92;a=o+32|0;r[a>>0]=r[a>>0]^92;a=o+33|0;r[a>>0]=r[a>>0]^92;a=o+34|0;r[a>>0]=r[a>>0]^92;a=o+35|0;r[a>>0]=r[a>>0]^92;a=o+36|0;r[a>>0]=r[a>>0]^92;a=o+37|0;r[a>>0]=r[a>>0]^92;a=o+38|0;r[a>>0]=r[a>>0]^92;a=o+39|0;r[a>>0]=r[a>>0]^92;a=o+40|0;r[a>>0]=r[a>>0]^92;a=o+41|0;r[a>>0]=r[a>>0]^92;a=o+42|0;r[a>>0]=r[a>>0]^92;a=o+43|0;r[a>>0]=r[a>>0]^92;a=o+44|0;r[a>>0]=r[a>>0]^92;a=o+45|0;r[a>>0]=r[a>>0]^92;a=o+46|0;r[a>>0]=r[a>>0]^92;a=o+47|0;r[a>>0]=r[a>>0]^92;a=o+48|0;r[a>>0]=r[a>>0]^92;a=o+49|0;r[a>>0]=r[a>>0]^92;a=o+50|0;r[a>>0]=r[a>>0]^92;a=o+51|0;r[a>>0]=r[a>>0]^92;a=o+52|0;r[a>>0]=r[a>>0]^92;a=o+53|0;r[a>>0]=r[a>>0]^92;a=o+54|0;r[a>>0]=r[a>>0]^92;a=o+55|0;r[a>>0]=r[a>>0]^92;a=o+56|0;r[a>>0]=r[a>>0]^92;a=o+57|0;r[a>>0]=r[a>>0]^92;a=o+58|0;r[a>>0]=r[a>>0]^92;a=o+59|0;r[a>>0]=r[a>>0]^92;a=o+60|0;r[a>>0]=r[a>>0]^92;a=o+61|0;r[a>>0]=r[a>>0]^92;a=o+62|0;r[a>>0]=r[a>>0]^92;a=o+63|0;r[a>>0]=r[a>>0]^92;Io(e,o+64|0);ko(s);So(s,o,96);Io(s,n);Hr(s,112);Hr(o,96);h=c;return}function It(e,t,n,i,s,a,c,f){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;a=a|0;c=c|0;f=f|0;var u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0;_=h;h=h+336|0;l=_+208|0;b=_+96|0;m=_+32|0;g=_;y=_+320|0;r[y>>0]=1;d=(n|0)==0;u=d?32:i;i=d?38496:n;d=m;p=d+64|0;do{o[d>>2]=0;d=d+4|0}while((d|0)<(p|0));if(u>>>0>64){ko(l);So(l,i,u);Io(l,m)}else Ms(m|0,i|0,u|0)|0;kt(b,m);So(b,e,t);St(b,m,g);p=m+32|0;o[p>>2]=0;o[p+4>>2]=0;o[p+8>>2]=0;o[p+12>>2]=0;o[p+16>>2]=0;o[p+20>>2]=0;o[p+24>>2]=0;o[p+28>>2]=0;o[m>>2]=o[g>>2];o[m+4>>2]=o[g+4>>2];o[m+8>>2]=o[g+8>>2];o[m+12>>2]=o[g+12>>2];o[m+16>>2]=o[g+16>>2];o[m+20>>2]=o[g+20>>2];o[m+24>>2]=o[g+24>>2];o[m+28>>2]=o[g+28>>2];kt(b,m);So(b,s,a);So(b,y,1);St(b,m,g);if(f>>>0<=32){a=f;Ms(c|0,g|0,a|0)|0;Hr(b,112);Hr(m,64);Hr(g,32);h=_;return}e=f+-33&-32;t=e+32|0;l=f+-32|0;u=c;i=f;while(1){d=u;n=g;p=d+32|0;do{r[d>>0]=r[n>>0]|0;d=d+1|0;n=n+1|0}while((d|0)<(p|0));i=i+-32|0;r[y>>0]=(r[y>>0]|0)+1<<24>>24;kt(b,m);So(b,g,32);So(b,s,a);So(b,y,1);St(b,m,g);if(i>>>0<=32)break;else u=u+32|0}a=l-e|0;c=c+t|0;Ms(c|0,g|0,a|0)|0;Hr(b,112);Hr(m,64);Hr(g,32);h=_;return}function Tt(e){e=e|0;return Si(o[e>>2]|0)|0}function Rt(){return 36}function Ot(e){e=e|0;Hr(e,36);return e|0}function xt(e){e=e|0;var t=0;Hr(e,36);t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));return 36}function Ct(e,t,n){e=e|0;t=t|0;n=n|0;if((ue(32)|0)>>>0>n>>>0){o[e>>2]=15;n=-1;return n|0}else{he(t,ue(32)|0,e+4|0)|0;n=0;return n|0}return 0}function Pt(){return ue(32)|0}function Mt(e,t){e=e|0;t=t|0;return ue(Hs[o[37564>>2]&3](37548,t)|0)|0}function Dt(e){e=e|0;return ue(Gs[o[9390]&1](37548)|0)|0}function Bt(e){e=e|0;return 32}function Nt(e,t,n,r,i,s,a,c,f,u,l){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;a=a|0;c=c|0;f=f|0;u=u|0;l=l|0;var d=0,p=0,m=0,g=0;g=h;h=h+112|0;d=g+40|0;p=g;m=g+32|0;if(((ue(Hs[o[37564>>2]&3](37548,n)|0)|0)>>>0<=i>>>0?(Gs[o[9390]&1](37548)|0)>>>0<=a>>>0:0)?(ue(32)|0)>>>0<=f>>>0:0){if(l>>>0<32){o[e>>2]=1;s=-1;h=g;return s|0}pt(u,d);le(d,32,c)|0;mt(d,e+4|0,p);d=Hs[o[37564>>2]&3](37548,n)|0;l=r+i+(0-d)|0;e=Qs[o[37568>>2]&3](37548,p,32,t,n,l,d,m,8)|0;if((e|0)!=-1){le(m,8,s)|0;le(l,d,r)|0}s=e;h=g;return s|0}o[e>>2]=2;s=-1;h=g;return s|0}function jt(e){e=e|0;return Si(o[e>>2]|0)|0}function Ut(){return 68}function Lt(e){e=e|0;Hr(e,68);return e|0}function Ft(e){e=e|0;var t=0;Hr(e,68);t=e+68|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));return 68}function qt(){return 32}function Kt(){return 32}function zt(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;if((ue(32)|0)>>>0>n>>>0){o[e>>2]=2;i=-1;return i|0}if(i>>>0<32){o[e>>2]=15;i=-1;return i|0}else{i=e+4|0;pt(r,i);le(i,32,t)|0;i=0;return i|0}return 0}function Gt(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;if((ue(32)|0)>>>0>n>>>0){o[e>>2]=2;i=-1;return i|0}if(i>>>0<32){o[e>>2]=15;i=-1;return i|0}else{i=e+4|0;pt(r,i);le(i,32,t)|0;i=0;return i|0}return 0}function Ht(e){e=e|0;return Ii((Te(e+4|0)|0)+4|0)|0}function Vt(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0;s=e+4|0;a=(Te(s)|0)+4|0;if((Ii(a)|0)>>>0>i>>>0){o[e>>2]=2;a=-1;return a|0}else{Re(be(Ti(r,a)|0,1)|0,s)|0;a=Ri(t,n,r,a)|0;return a|0}return 0}function Qt(e,t,n,r,i,s,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;a=a|0;var c=0,f=0,u=0,l=0;l=h;h=h+16|0;f=l;u=(s|0)!=0;if(u?(ue(32)|0)>>>0>a>>>0:0){o[e>>2]=2;i=-1}else c=4;do{if((c|0)==4){t=Oi(t,n,r,i,e)|0;if((t|0)!=-1){a=r+t|0;t=a+1|0;n=_e(r,t,f)|0;if((o[f>>2]|0)==1)t=Oe(n,t,e+4|0)|0;else o[e>>2]=9;if((a|0)==(t|0)){if(!u)break;le(e+4|0,32,s)|0;break}else{if(o[e>>2]|0){i=-1;break}o[e>>2]=10;i=-1;break}}else i=-1}}while(0);h=l;return i|0}function Wt(e,t){e=e|0;t=t|0;e=o[9393]|0;t=de(t)|0;return Hs[e&3](37548,t)|0}function Yt(e,t,n,r,i,s,a,c,f){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;a=a|0;c=c|0;f=f|0;var u=0,l=0,d=0,p=0,m=0;d=h;h=h+80|0;l=d+40|0;i=d;u=d+32|0;m=o[9393]|0;p=de(a)|0;if((Hs[m&3](37548,p)|0)>>>0>f>>>0){o[e>>2]=2;m=-1;h=d;return m|0}he(t,n,l)|0;mt(e+4|0,l,i);he(r,ue(8)|0,u)|0;m=de(a)|0;he(s,a,s)|0;i=Qs[o[37576>>2]&3](37548,i,32,u,8,s,m,c,f)|0;if((i|0)==-1){o[e>>2]=5;i=-1}m=i;h=d;return m|0}function Xt(e,t,n){e=e|0;t=t|0;n=n|0;if(n>>>0<32){o[e>>2]=2;e=-1;return e|0}else{n=e+36|0;e=t+32|0;do{r[t>>0]=r[n>>0]|0;t=t+1|0;n=n+1|0}while((t|0)<(e|0));e=32;return e|0}return 0}function Jt(){return 100}function Zt(e){e=e|0;Hr(e,100);return e|0}function $t(e){e=e|0;return Si(o[e>>2]|0)|0}function en(e){e=e|0;var t=0;Hr(e,100);t=e+100|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));return 100}function tn(){return 32}function nn(){return ue(32)|0}function rn(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;if((ue(32)|0)>>>0>n>>>0){o[e>>2]=2;i=-1;return i|0}if(i>>>0<32){o[e>>2]=15;i=-1;return i|0}else{i=e+4|0;gt(r,i);le(i,32,t)|0;i=0;return i|0}return 0}function on(){return ue(64)|0}function sn(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;if((ue(64)|0)>>>0>i>>>0){o[e>>2]=2;i=-1;return i|0}else{i=r+(ue(64)|0)+-64|0;yt(e+4|0,t,n,i);le(i,64,r)|0;i=ue(64)|0;return i|0}return 0}function an(e){e=e|0;return 8}function cn(e,t){e=e|0;t=t|0;return _t(t)|0}function fn(e,t,n,i,s,a,c,f,u){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;a=a|0;c=c|0;f=f|0;u=u|0;var l=0,d=0,p=0,m=0;m=h;h=h+192|0;p=m+32|0;l=m+112|0;d=m;if(u>>>0<8|(_t(s)|0)>>>0>c>>>0){p=-1;h=m;return p|0}It(t,n,0,0,o[e+4>>2]|0,o[e+8>>2]|0,p,80);t=l;n=p;c=t+32|0;do{r[t>>0]=r[n>>0]|0;t=t+1|0;n=n+1|0}while((t|0)<(c|0));e=l+32|0;t=e;n=p+32|0;c=t+32|0;do{r[t>>0]=r[n>>0]|0;t=t+1|0;n=n+1|0}while((t|0)<(c|0));t=l+64|0;n=p+64|0;c=t+16|0;do{r[t>>0]=r[n>>0]|0;t=t+1|0;n=n+1|0}while((t|0)<(c|0));Hr(p,80);vt(l,l+64|0,i,s,a);Et(e,32,f,u+-8|0,d);a=d;s=o[a>>2]|0;a=o[a+4>>2]|0;p=f+u+-8|0;f=p;r[f>>0]=s;r[f+1>>0]=s>>8;r[f+2>>0]=s>>16;r[f+3>>0]=s>>24;p=p+4|0;r[p>>0]=a;r[p+1>>0]=a>>8;r[p+2>>0]=a>>16;r[p+3>>0]=a>>24;Hr(l,80);p=u;h=m;return p|0}function un(e,t){e=e|0;t=t|0;return t|0}function ln(e,t,n,i,s,a,c,f,u){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;a=a|0;c=c|0;f=f|0;u=u|0;var l=0,d=0,p=0,m=0;m=h;h=h+192|0;p=m+32|0;l=m+112|0;d=m;if(s>>>0<8|c>>>0>u>>>0){p=-1;h=m;return p|0}It(t,n,0,0,o[e+4>>2]|0,o[e+8>>2]|0,p,80);t=l;n=p;u=t+32|0;do{r[t>>0]=r[n>>0]|0;t=t+1|0;n=n+1|0}while((t|0)<(u|0));e=l+32|0;t=e;n=p+32|0;u=t+32|0;do{r[t>>0]=r[n>>0]|0;t=t+1|0;n=n+1|0}while((t|0)<(u|0));t=l+64|0;n=p+64|0;u=t+16|0;do{r[t>>0]=r[n>>0]|0;t=t+1|0;n=n+1|0}while((t|0)<(u|0));Hr(p,80);Et(e,32,i,s+-8|0,d);if(Vr(i+s+-8|0,d,8)|0){e=At(l,l+64|0,a,c,f)|0;Hr(l,80)}else{Hr(l,80);e=-1}p=e;h=m;return p|0}function dn(e){e=e|0;o[e>>2]=0;return}function hn(e){e=e|0;return 32}function pn(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;if(i>>>0<32){o[e>>2]=2;i=-1;return i|0}else{wt(t,n,r);i=32;return i|0}return 0}function mn(e,t,n,r,i,s){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;if(s>>>0>=64?bt(t,n,r,i)|0:0){s=0;return s|0}o[e>>2]=5;s=-1;return s|0}function gn(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;o[e+8>>2]=0;o[e+44>>2]=e+48;o[e+148>>2]=e+152;o[e+492>>2]=e+496;return}function yn(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var s=0,a=0,c=0,f=0,u=0,l=0;l=h;h=h+64|0;u=l;f=o[e>>2]|0;It(t,n,0,0,o[f>>2]|0,o[f+4>>2]|0,u,64);f=e+152|0;t=e+148|0;n=o[t>>2]|0;if((n|0)==(e+492|0)){c=(n|0)==(f|0)?e+84|0:f;t=n}else{a=n+68|0;o[t>>2]=a;c=f;t=a}t=t+-68|0;if((t|0)!=(c|0))do{n=t;t=t+-68|0;s=t;a=n+68|0;do{o[n>>2]=o[s>>2];n=n+4|0;s=s+4|0}while((n|0)<(a|0))}while((t|0)!=(c|0));o[e+184>>2]=0;n=e+12|0;s=u;a=n+32|0;do{r[n>>0]=r[s>>0]|0;n=n+1|0;s=s+1|0}while((n|0)<(a|0));n=e+188|0;s=u+32|0;a=n+32|0;do{r[n>>0]=r[s>>0]|0;n=n+1|0;s=s+1|0}while((n|0)<(a|0));n=f;s=i;a=n+32|0;do{r[n>>0]=r[s>>0]|0;n=n+1|0;s=s+1|0}while((n|0)<(a|0));Hr(u,64);h=l;return}function bn(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var s=0,a=0,c=0,f=0,u=0,l=0;l=h;h=h+64|0;u=l;f=o[e>>2]|0;It(t,n,0,0,o[f>>2]|0,o[f+4>>2]|0,u,64);f=e+48|0;t=e+44|0;n=o[t>>2]|0;if((n|0)==(e+148|0)){c=(n|0)==(f|0)?e+-52|0:f;t=n}else{a=n+100|0;o[t>>2]=a;c=f;t=a}t=t+-100|0;if((t|0)!=(c|0))do{n=t;t=t+-100|0;s=t;a=n+100|0;do{o[n>>2]=o[s>>2];n=n+4|0;s=s+4|0}while((n|0)<(a|0))}while((t|0)!=(c|0));o[e+112>>2]=0;n=e+12|0;s=u;a=n+32|0;do{r[n>>0]=r[s>>0]|0;n=n+1|0;s=s+1|0}while((n|0)<(a|0));n=e+116|0;s=u+32|0;a=n+32|0;do{r[n>>0]=r[s>>0]|0;n=n+1|0;s=s+1|0}while((n|0)<(a|0));n=f;s=i;a=n+64|0;do{r[n>>0]=r[s>>0]|0;n=n+1|0;s=s+1|0}while((n|0)<(a|0));Hr(u,64);h=l;return}function _n(e){e=e|0;var t=0,n=0,r=0,i=0;t=e+48|0;r=o[e+44>>2]|0;if((t|0)==(r|0))i=36;else{n=4;do{n=n+36+(Te(t)|0)|0;t=t+100|0}while((t|0)!=(r|0));i=n+32|0}t=e+152|0;r=o[e+148>>2]|0;if((t|0)==(r|0))t=4;else{n=t;t=4;do{t=t+36+(ke(n)|0)|0;n=n+68|0}while((n|0)!=(r|0))}i=i+t|0;t=e+496|0;r=o[e+492>>2]|0;if((t|0)==(r|0)){e=4;e=i+e|0;return e|0}n=t;t=4;do{t=t+36+(ke(n)|0)|0;n=n+68|0}while((n|0)!=(r|0));e=i+t|0;return e|0}function vn(e,t){e=e|0;t=t|0;var n=0,r=0;e=we(e,t+12|0,32)|0;r=t+44|0;n=t+48|0;e=be(e,((o[r>>2]|0)-n|0)/100|0)|0;r=o[r>>2]|0;if((n|0)!=(r|0))do{e=we(Re(e,n)|0,n+68|0,32)|0;e=be(e,o[n+64>>2]|0)|0;n=n+100|0}while((n|0)!=(r|0));r=t+148|0;n=t+152|0;e=be(e,((o[r>>2]|0)-n|0)/68|0)|0;r=o[r>>2]|0;if((n|0)!=(r|0))do{e=we(Se(e,n)|0,n+36|0,32)|0;e=be(e,o[n+32>>2]|0)|0;n=n+68|0}while((n|0)!=(r|0));r=t+492|0;n=t+496|0;e=be(e,((o[r>>2]|0)-n|0)/68|0)|0;r=o[r>>2]|0;if((n|0)==(r|0)){t=e;return t|0}do{e=we(Se(e,n)|0,n+36|0,32)|0;e=be(e,o[n+32>>2]|0)|0;n=n+68|0}while((n|0)!=(r|0));return e|0}function An(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,s=0,a=0,c=0,f=0,u=0;u=h;h=h+16|0;f=u;e=_e(Ee(e,t,n+12|0,32)|0,t,f)|0;c=o[f>>2]|0;o[f>>2]=c+-1;if(!((e|0)==(t|0)|(c|0)==0)){s=n+44|0;a=n+148|0;c=n+48|0;do{i=o[s>>2]|0;if((i|0)==(a|0))i=c;else o[s>>2]=i+100;e=_e(Ee(Oe(e,t,i)|0,t,i+68|0,32)|0,t,i+64|0)|0;i=o[f>>2]|0;o[f>>2]=i+-1}while(!((e|0)==(t|0)|(i|0)==0))}e=_e(e,t,f)|0;c=o[f>>2]|0;o[f>>2]=c+-1;if(!((e|0)==(t|0)|(c|0)==0)){s=n+148|0;a=n+492|0;c=n+424|0;do{i=o[s>>2]|0;if((i|0)==(a|0))i=c;else o[s>>2]=i+68;e=_e(Ee(Ie(e,t,i)|0,t,i+36|0,32)|0,t,i+32|0)|0;i=o[f>>2]|0;o[f>>2]=i+-1}while(!((e|0)==(t|0)|(i|0)==0))}e=_e(e,t,f)|0;c=o[f>>2]|0;o[f>>2]=c+-1;if(!((e|0)==(t|0)|(c|0)==0)){a=n+492|0;c=n+3216|0;s=n+3148|0;do{i=o[a>>2]|0;if((i|0)==(c|0))i=s;else o[a>>2]=i+68;e=_e(Ee(Ie(e,t,i)|0,t,i+36|0,32)|0,t,i+32|0)|0;n=o[f>>2]|0;o[f>>2]=n+-1}while(!((e|0)==(t|0)|(n|0)==0))}if(!r){f=e;h=u;return f|0}f=_e(e,t,f)|0;h=u;return f|0}function wn(e,t){e=e|0;t=t|0;var n=0,r=0;if((o[e+44>>2]|0)==(e+48|0))n=0;else n=o[e+112>>2]|0;r=e+4|0;e=o[r>>2]|0;e=Hs[o[(o[e>>2]|0)+4>>2]&3](e,t)|0;t=o[r>>2]|0;return Ke(n,32,e,Gs[o[o[t>>2]>>2]&1](t)|0)|0}function En(e){e=e|0;return((o[e+44>>2]|0)==(e+48|0)?32:0)|0}function kn(e,t,n,i,s,a,c){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;a=a|0;c=c|0;var f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0;y=h;h=h+112|0;m=y+64|0;g=y;u=e+44|0;d=e+48|0;if((o[u>>2]|0)==(d|0))f=0;else f=o[e+112>>2]|0;p=e+4|0;b=o[p>>2]|0;b=Hs[o[(o[b>>2]|0)+4>>2]&3](b,n)|0;l=o[p>>2]|0;l=Ke(f,32,b,Gs[o[o[l>>2]>>2]&1](l)|0)|0;f=(o[u>>2]|0)==(d|0);if((f?32:0)>>>0>s>>>0){o[e+8>>2]=1;b=-1;h=y;return b|0}if(l>>>0>c>>>0){o[e+8>>2]=2;b=-1;h=y;return b|0}if(f){o[u>>2]=e+148;pt(i,d);c=o[e>>2]|0;mt(d,e+152|0,m);i=e+12|0;It(m,32,i,32,o[c+8>>2]|0,o[c+12>>2]|0,g,64);c=g;u=i+32|0;do{r[i>>0]=r[c>>0]|0;i=i+1|0;c=c+1|0}while((i|0)<(u|0));f=e+116|0;i=f;c=g+32|0;u=i+32|0;do{r[i>>0]=r[c>>0]|0;i=i+1|0;c=c+1|0}while((i|0)<(u|0));i=e+112|0;o[i>>2]=0;Hr(g,64);Hr(m,32)}else{i=e+112|0;f=e+116|0}s=m+4|0;Et(f,32,38077,1,s);o[m>>2]=o[i>>2];Et(f,32,38078,1,f);o[i>>2]=(o[i>>2]|0)+1;f=o[p>>2]|0;f=Hs[o[(o[f>>2]|0)+4>>2]&3](f,n)|0;ze(g,3,o[m>>2]|0,32,f,a);i=o[g>>2]|0;c=d;u=i+32|0;do{r[i>>0]=r[c>>0]|0;i=i+1|0;c=c+1|0}while((i|0)<(u|0));b=o[p>>2]|0;Qs[o[(o[b>>2]|0)+8>>2]&3](b,s,32,t,n,o[g+4>>2]|0,f,a,l)|0;Hr(m,36);b=l;h=y;return b|0}function Sn(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0,a=0;s=h;h=h+32|0;r=s;i=e+4|0;a=o[i>>2]|0;Ge(r,t,n,Gs[o[o[a>>2]>>2]&1](a)|0);if(!(o[r+24>>2]|0)){o[e+8>>2]=4;a=-1;h=s;return a|0}else{a=o[i>>2]|0;a=Hs[o[(o[a>>2]|0)+12>>2]&3](a,o[r+28>>2]|0)|0;h=s;return a|0}return 0}function In(e,t,n,i,s){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;var a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0;T=h;h=h+240|0;E=T+96|0;k=T+32|0;l=T;d=T+160|0;S=T+128|0;g=e+4|0;A=o[g>>2]|0;Ge(S,t,n,Gs[o[o[A>>2]>>2]&1](A)|0);if((r[S>>0]|0)!=3){o[e+8>>2]=3;I=-1;h=T;return I|0}if((r[S+1>>0]|0?(w=S+16|0,o[w>>2]|0):0)?(b=S+24|0,o[b>>2]|0):0){A=o[g>>2]|0;m=S+28|0;if((Hs[o[(o[A>>2]|0)+12>>2]&3](A,o[m>>2]|0)|0)>>>0>s>>>0){o[e+8>>2]=2;I=-1;h=T;return I|0}if((o[S+20>>2]|0)!=32){o[e+8>>2]=4;I=-1;h=T;return I|0}c=e+152|0;A=e+148|0;n=o[A>>2]|0;e:do{if((c|0)!=(n|0)){f=o[w>>2]|0;u=0;t=c;do{p=(qo(t,f,32)|0)==0;u=p?t:u;t=t+68|0}while(!(p|(t|0)==(n|0)));if(u){t=u+32|0;d=S+4|0;n=o[d>>2]|0;if((o[t>>2]|0)>>>0<=n>>>0){v=u;I=Tn(e,t,S,i,s)|0;y=1;_=31;break}t=e+496|0;p=e+492|0;f=o[p>>2]|0;if((t|0)!=(f|0)){u=S+8|0;l=S+12|0;while(1){if(((n|0)==(o[t+32>>2]|0)?(qo(t,o[w>>2]|0,32)|0)==0:0)?(a=o[g>>2]|0,a=Qs[o[(o[a>>2]|0)+16>>2]&3](a,t+36|0,32,o[u>>2]|0,o[l>>2]|0,o[b>>2]|0,o[m>>2]|0,i,s)|0,(a|0)!=-1):0)break;t=t+68|0;if((t|0)==(f|0))break e;n=o[d>>2]|0}Hr(t,68);I=(o[p>>2]|0)+-68|0;o[p>>2]=I;if((I|0)==(t|0)){I=a;h=T;return I|0}do{g=t;t=t+68|0;y=t;b=g+68|0;do{o[g>>2]=o[y>>2];g=g+4|0;y=y+4|0}while((g|0)<(b|0))}while((t|0)!=(o[p>>2]|0));h=T;return a|0}}else _=15}else _=15}while(0);if((_|0)==15){a=e+48|0;if((o[e+44>>2]|0)!=(a|0)?(o[S+4>>2]|0)>>>0<=2e3:0){g=d;y=o[w>>2]|0;b=g+32|0;do{r[g>>0]=r[y>>0]|0;g=g+1|0;y=y+1|0}while((g|0)<(b|0));v=o[e>>2]|0;I=d+32|0;mt(a,d,E);It(E,32,e+12|0,32,o[v+8>>2]|0,o[v+12>>2]|0,k,64);o[l>>2]=o[k>>2];o[l+4>>2]=o[k+4>>2];o[l+8>>2]=o[k+8>>2];o[l+12>>2]=o[k+12>>2];o[l+16>>2]=o[k+16>>2];o[l+20>>2]=o[k+20>>2];o[l+24>>2]=o[k+24>>2];o[l+28>>2]=o[k+28>>2];v=k+32|0;a=d+36|0;o[a>>2]=o[v>>2];o[a+4>>2]=o[v+4>>2];o[a+8>>2]=o[v+8>>2];o[a+12>>2]=o[v+12>>2];o[a+16>>2]=o[v+16>>2];o[a+20>>2]=o[v+20>>2];o[a+24>>2]=o[v+24>>2];o[a+28>>2]=o[v+28>>2];o[I>>2]=0;Hr(k,64);Hr(E,32);a=Tn(e,I,S,i,s)|0;Hr(l,32);Hr(d,68)}else a=-1;v=0;I=a;y=0;_=31}if((_|0)==31?(I|0)!=-1:0){if(!y){a=o[A>>2]|0;if((a|0)==(e+492|0))c=(a|0)==(c|0)?e+84|0:c;else{a=a+68|0;o[A>>2]=a}a=a+-68|0;if((a|0)!=(c|0))do{g=a;a=a+-68|0;y=a;b=g+68|0;do{o[g>>2]=o[y>>2];g=g+4|0;y=y+4|0}while((g|0)<(b|0))}while((a|0)!=(c|0));g=c;y=o[w>>2]|0;b=g+32|0;do{r[g>>0]=r[y>>0]|0;g=g+1|0;y=y+1|0}while((g|0)<(b|0));a=e+48|0;y=o[e>>2]|0;mt(a,c,E);g=e+12|0;It(E,32,g,32,o[y+8>>2]|0,o[y+12>>2]|0,k,64);y=k;b=g+32|0;do{r[g>>0]=r[y>>0]|0;g=g+1|0;y=y+1|0}while((g|0)<(b|0));g=c+36|0;y=k+32|0;b=g+32|0;do{r[g>>0]=r[y>>0]|0;g=g+1|0;y=y+1|0}while((g|0)<(b|0));n=c+32|0;o[n>>2]=0;Hr(k,64);Hr(E,32);Hr(a,100);t=e+44|0;k=(o[t>>2]|0)+-100|0;o[t>>2]=k;if((k|0)==(a|0))m=c;else{do{g=a;a=a+100|0;y=a;b=g+100|0;do{o[g>>2]=o[y>>2];g=g+4|0;y=y+4|0}while((g|0)<(b|0))}while((a|0)!=(o[t>>2]|0));m=c}}else{m=v;n=v+32|0}f=S+4|0;if((o[n>>2]|0)>>>0<(o[f>>2]|0)>>>0){u=e+496|0;l=e+492|0;d=e+3216|0;a=m+36|0;p=e+532|0;c=e+528|0;do{t=o[l>>2]|0;if((t|0)==(d|0))t=d;else{t=t+68|0;o[l>>2]=t}t=t+-68|0;if((t|0)!=(u|0))do{g=t;t=t+-68|0;y=t;b=g+68|0;do{o[g>>2]=o[y>>2];g=g+4|0;y=y+4|0}while((g|0)<(b|0))}while((t|0)!=(u|0));Et(a,32,38077,1,p);o[c>>2]=o[n>>2];g=u;y=m;b=g+32|0;do{r[g>>0]=r[y>>0]|0;g=g+1|0;y=y+1|0}while((g|0)<(b|0));Et(a,32,38078,1,a);e=(o[n>>2]|0)+1|0;o[n>>2]=e}while(e>>>0<(o[f>>2]|0)>>>0)}else a=m+36|0;Et(a,32,38078,1,a);o[n>>2]=(o[n>>2]|0)+1;h=T;return I|0}o[e+8>>2]=5;I=-1;h=T;return I|0}o[e+8>>2]=4;I=-1;h=T;return I|0}function Tn(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0,c=0,f=0,u=0,l=0,d=0;d=h;h=h+80|0;c=d+36|0;f=d;u=n+4|0;l=o[u>>2]|0;a=o[t>>2]|0;if(l>>>0>>0|(l-a|0)>>>0>2e3){l=-1;h=d;return l|0}a=c;s=a+36|0;do{o[a>>2]=o[t>>2];a=a+4|0;t=t+4|0}while((a|0)<(s|0));t=c+4|0;if((o[c>>2]|0)>>>0>>0)do{Et(t,32,38078,1,t);l=(o[c>>2]|0)+1|0;o[c>>2]=l}while(l>>>0<(o[u>>2]|0)>>>0);l=f+4|0;Et(t,32,38077,1,l);o[f>>2]=o[c>>2];u=o[e+4>>2]|0;l=Qs[o[(o[u>>2]|0)+16>>2]&3](u,l,32,o[n+8>>2]|0,o[n+12>>2]|0,o[n+24>>2]|0,o[n+28>>2]|0,r,i)|0;Hr(c,36);h=d;return l|0}function Rn(e,t,n){e=e|0;t=t|0;n=n|0;if(e|0)r[e>>0]=3;if(t|0)r[t>>0]=1;if(!n)return;r[n>>0]=3;return}function On(){return-1}function xn(e){e=e|0;return Si(o[e+7368>>2]|0)|0}function Cn(e){e=e|0;return Si(o[e+3216>>2]|0)|0}function Pn(e){e=e|0;return Si(o[e>>2]|0)|0}function Mn(){return 7372}function Dn(){return 3320}function Bn(){return 4}function Nn(e){e=e|0;Hr(e,7372);Ir(e);return e|0}function jn(e){e=e|0;Hr(e,3320);Je(e);return e|0}function Un(e){e=e|0;Hr(e,4);dn(e);return e|0}function Ln(e){e=e|0;Hr(e,7372);Ir(e);return 7372}function Fn(e){e=e|0;Hr(e,3320);Je(e);return 3320}function qn(e){e=e|0;Hr(e,4);dn(e);return 4}function Kn(e){e=e|0;return Ii(qr(e)|0)|0}function zn(e){e=e|0;return Ii(lt(e)|0)|0}function Gn(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0;s=qr(e)|0;if((Ii(s)|0)>>>0>i>>>0){o[e+7368>>2]=2;s=-1;return s|0}else{Kr(Ti(r,s)|0,e)|0;s=Ri(t,n,r,s)|0;return s|0}return 0}function Hn(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0;s=lt(e)|0;if((Ii(s)|0)>>>0>i>>>0){o[e+3216>>2]=2;s=-1;return s|0}else{dt(Ti(r,s)|0,e)|0;s=Ri(t,n,r,s)|0;return s|0}return 0}function Vn(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0;s=e+7368|0;t=Oi(t,n,r,i,s)|0;if((t|0)==-1){s=-1;return s|0}n=r+t|0;if((n|0)==(zr(r,n+1|0,e)|0)){s=i;return s|0}if(o[s>>2]|0){s=-1;return s|0}o[s>>2]=10;s=-1;return s|0}function Qn(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0;s=e+3216|0;t=Oi(t,n,r,i,s)|0;if((t|0)==-1){s=-1;return s|0}n=r+t|0;if((n|0)==(ht(r,n+1|0,e)|0)){s=i;return s|0}if(o[s>>2]|0){s=-1;return s|0}o[s>>2]=10;s=-1;return s|0}function Wn(e){e=e|0;return Or(e)|0}function Yn(e,t,n){e=e|0;t=t|0;n=n|0;e=xr(e,t,n)|0;Hr(t,n);return e|0}function Xn(e){e=e|0;return Cr(e)|0}function Jn(e,t,n){e=e|0;t=t|0;n=n|0;return Pr(e,t,n)|0}function Zn(e){e=e|0;return ue(Mr(e)|0)|0}function $n(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0;s=Mr(e)|0;if((ue(s)|0)>>>0>i>>>0){o[e+7368>>2]=2;s=-1;return s|0}else{a=0-s|0;Dr(e,t,n,r+(ue(s)|0)+a|0,s)|0;i=ue(s)|0;le(r+i+a|0,s,r)|0;s=i;return s|0}return 0}function er(e){e=e|0;return Br(e)|0}function tr(e,t,n){e=e|0;t=t|0;n=n|0;return Nr(e,t,n)|0}function nr(e){e=e|0;return jr(e)|0}function rr(e){e=e|0;return Ur(e)|0}function ir(e,t){e=e|0;t=t|0;return Lr(e,t)|0}function or(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;t=Fr(e,t,n,r)|0;Hr(n,r);return t|0}function sr(e){e=e|0;return Ze(e)|0}function ar(e,t,n,r,i,s,a,c){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;a=a|0;c=c|0;var f=0,u=0,l=0;l=h;h=h+64|0;f=l+32|0;u=l;if((de(r)|0)==32?(de(s)|0)==32:0){he(n,r,f)|0;he(i,s,u)|0;u=$e(e,t,f,u,a,c)|0;Hr(a,c);h=l;return u|0}o[e+3216>>2]=7;u=-1;h=l;return u|0}function cr(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;i=de(r)|0;if((i|0)==-1){o[e+3216>>2]=7;i=-1;return i|0}else{he(n,r,n)|0;i=et(e,t,0,n,i)|0;return i|0}return 0}function fr(e,t,n,r,i,s){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;var a=0,c=0;c=h;h=h+32|0;a=c;if((de(r)|0)!=32){o[e+3216>>2]=7;a=-1;h=c;return a|0}he(n,r,a)|0;n=de(s)|0;if((n|0)==-1){o[e+3216>>2]=7;n=-1}else{he(i,s,i)|0;n=et(e,t,a,i,n)|0}a=n;h=c;return a|0}function ur(e){e=e|0;return ue(tt(e)|0)|0}function lr(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=tt(e)|0;if((ue(r)|0)>>>0>n>>>0){o[e+3216>>2]=2;r=-1;return r|0}n=0-r|0;if((nt(e,t+(ue(r)|0)+n|0,r)|0)==-1){r=-1;return r|0}e=ue(r)|0;le(t+e+n|0,r,t)|0;r=e;return r|0}function dr(e){e=e|0;return s[e+3220>>0]|0|0}function hr(e,t,n){e=e|0;t=t|0;n=n|0;ut(e,t,n);return}function pr(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=de(n)|0;if((r|0)==-1){o[e+3216>>2]=7;r=-1;return r|0}else{he(t,n,t)|0;r=(rt(e,0,t,r)|0)&1;return r|0}return 0}function mr(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0;a=h;h=h+32|0;s=a;if((de(n)|0)!=32){o[e+3216>>2]=7;s=-1;h=a;return s|0}he(t,n,s)|0;t=de(i)|0;if((t|0)==-1){o[e+3216>>2]=7;t=-1}else{he(r,i,r)|0;t=(rt(e,s,r,t)|0)&1}s=t;h=a;return s|0}function gr(e,t){e=e|0;t=t|0;t=Rr(e,t+3285|0)|0;if((t|0)!=-1)return t|0;o[e+7368>>2]=6;return t|0}function yr(e){e=e|0;return it(e)|0}function br(e){e=e|0;return st(e)|0}function _r(e,t){e=e|0;t=t|0;return ue(ot(e,t)|0)|0}function vr(e,t,n,r,i,s,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;a=a|0;var c=0;c=ot(e,n)|0;if((ue(c)|0)>>>0>a>>>0){o[e+3216>>2]=2;c=-1;return c|0}a=0-c|0;n=at(e,t,n,r,i,s+(ue(c)|0)+a|0,c)|0;Hr(r,i);if((n|0)==-1){c=-1;return c|0}i=ue(c)|0;le(s+i+a|0,c,s)|0;c=i;return c|0}function Ar(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;i=de(r)|0;if((i|0)==-1){o[e+3216>>2]=7;i=-1;return i|0}else{he(n,r,n)|0;i=ct(e,t,n,i)|0;return i|0}return 0}function wr(e,t,n,r,i,s){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;var a=0;a=de(r)|0;if((a|0)==-1){o[e+3216>>2]=7;a=-1;return a|0}else{he(n,r,n)|0;a=ft(e,t,n,a,i,s)|0;return a|0}return 0}function Er(e){e=e|0;return ue(hn(e)|0)|0}function kr(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0;s=hn(e)|0;if((ue(s)|0)>>>0>i>>>0){o[e>>2]=2;s=-1;return s|0}i=0-s|0;if((pn(e,t,n,r+(ue(s)|0)+i|0,s)|0)==-1){s=-1;return s|0}n=ue(s)|0;le(r+n+i|0,s,r)|0;s=n;return s|0}function Sr(e,t,n,r,i,s,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;a=a|0;var c=0,f=0;f=h;h=h+32|0;c=f;if((de(n)|0)!=32){o[e>>2]=7;c=-1;h=f;return c|0}he(t,n,c)|0;t=de(a)|0;if((t|0)==-1){o[e>>2]=7;t=-1}else{he(s,a,s)|0;t=mn(e,c,r,i,s,t)|0}c=t;h=f;return c|0}function Ir(e){e=e|0;o[e+160>>2]=e+164;o[e+7364>>2]=0;o[e+7368>>2]=0;return}function Tr(e,t){e=e|0;t=t|0;var n=0;n=e+164|0;e=o[e+160>>2]|0;if((n|0)==(e|0)){t=0;return t|0}while(1){if(Vr(n+5|0,t,32)|0){e=5;break}n=n+72|0;if((n|0)==(e|0)){n=0;e=5;break}}if((e|0)==5)return n|0;return 0}function Rr(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,s=0;n=e+164|0;s=e+160|0;if((n|0)==(o[s>>2]|0)){s=-1;return s|0}while(1){if(Vr(n+5|0,t,32)|0)break;e=n+72|0;if((e|0)==(o[s>>2]|0)){e=-1;r=8;break}else n=e}if((r|0)==8)return e|0;e=o[n>>2]|0;i=(o[s>>2]|0)+-72|0;o[s>>2]=i;if((i|0)==(n|0)){s=e;return s|0}do{t=n;n=n+72|0;r=n;i=t+72|0;do{o[t>>2]=o[r>>2];t=t+4|0;r=r+4|0}while((t|0)<(i|0))}while((n|0)!=(o[s>>2]|0));return e|0}function Or(e){e=e|0;return 64}function xr(e,t,n){e=e|0;t=t|0;n=n|0;if(n>>>0<64){o[e+7368>>2]=1;n=-1;return n|0}else{gt(t,e);pt(t+32|0,e+96|0);n=0;return n|0}return 0}function Cr(e){e=e|0;e=ue(32)|0;return e+30+(ue(32)|0)|0}function Pr(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0;a=ue(32)|0;if((a+30+(ue(32)|0)|0)>>>0>n>>>0){o[e+7368>>2]=2;t=-1;return t|0}else{r[t>>0]=123;i=t+1|0;s=38079;a=i+13|0;do{r[i>>0]=r[s>>0]|0;i=i+1|0;s=s+1|0}while((i|0)<(a|0));r[t+14>>0]=34;n=le(e+96|0,32,t+15|0)|0;r[n>>0]=34;r[n+1>>0]=44;i=n+2|0;s=38093;a=i+10|0;do{r[i>>0]=r[s>>0]|0;i=i+1|0;s=s+1|0}while((i|0)<(a|0));r[n+12>>0]=34;e=le(e,32,n+13|0)|0;r[e>>0]=34;r[e+1>>0]=125;t=e+2-t|0;return t|0}return 0}function Mr(e){e=e|0;return 64}function Dr(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;if(i>>>0<64){o[e+7368>>2]=2;i=-1;return i|0}else{yt(e,t,n,r);i=64;return i|0}return 0}function Br(e){e=e|0;var t=0,n=0,i=0;n=e+164|0;i=o[e+160>>2]|0;if((n|0)!=(i|0)){t=1;e=0;do{if(!(r[n+4>>0]|0)){t=ue(4)|0;e=e+6+t+(ue(32)|0)|0;t=0}n=n+72|0}while((n|0)!=(i|0));if(!t){i=e;n=16;i=n+i|0;return i|0}}else e=0;i=e;n=17;i=n+i|0;return i|0}function Nr(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0;p=h;h=h+16|0;l=p;u=e+164|0;f=e+160|0;c=o[f>>2]|0;if((u|0)!=(c|0)){s=1;a=u;i=0;do{if(!(r[a+4>>0]|0)){s=ue(4)|0;i=i+6+s+(ue(32)|0)|0;s=0}a=a+72|0}while((a|0)!=(c|0));if(s)d=4;else s=16}else{i=0;d=4}if((d|0)==4)s=17;if((s+i|0)>>>0>n>>>0){o[e+7368>>2]=2;d=-1;h=p;return d|0}r[t>>0]=123;i=t+1|0;s=38079;a=i+13|0;do{r[i>>0]=r[s>>0]|0;i=i+1|0;s=s+1|0}while((i|0)<(a|0));i=t+14|0;c=o[f>>2]|0;if((u|0)!=(c|0)){a=u;s=123;do{if(!(r[a+4>>0]|0)){r[i>>0]=s;r[i+1>>0]=34;Ne(l,o[a>>2]|0)|0;i=le(l,4,i+2|0)|0;r[i>>0]=34;r[i+1>>0]=58;r[i+2>>0]=34;i=le(a+5|0,32,i+3|0)|0;r[i>>0]=34;i=i+1|0;s=44}a=a+72|0}while((a|0)!=(c|0));if(s<<24>>24!=44)d=16}else{s=123;d=16}if((d|0)==16){r[i>>0]=s;i=i+1|0}r[i>>0]=125;r[i+1>>0]=125;d=i+2-t|0;h=p;return d|0}function jr(e){e=e|0;var t=0,n=0,i=0;t=e+164|0;i=o[e+160>>2]|0;if((t|0)==(i|0)){i=0;return i|0}e=0;do{n=t+4|0;if(!(r[n>>0]|0)){r[n>>0]=1;e=e+1|0}t=t+72|0}while((t|0)!=(i|0));return e|0}function Ur(e){e=e|0;return 100}function Lr(e,t){e=e|0;t=t|0;return t<<5|0}function Fr(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0;if(t<<5>>>0>i>>>0){o[e+7368>>2]=1;p=-1;return p|0}if(!t){p=0;return p|0}h=e+164|0;p=e+160|0;u=e+7364|0;l=e+7364|0;d=e+168|0;f=e+169|0;c=0;while(1){i=o[p>>2]|0;if((i|0)==(u|0))i=u;else{i=i+72|0;o[p>>2]=i}i=i+-72|0;if((i|0)!=(h|0))do{e=i;i=i+-72|0;s=i;a=e+72|0;do{o[e>>2]=o[s>>2];e=e+4|0;s=s+4|0}while((e|0)<(a|0))}while((i|0)!=(h|0));a=(o[l>>2]|0)+1|0;o[l>>2]=a;o[h>>2]=a;r[d>>0]=0;pt(n,f);c=c+1|0;if((c|0)==(t|0))break;else n=n+32|0}return t|0}function qr(e){e=e|0;var t=0,n=0,r=0,i=0;r=Me(e)|0;i=Te(e+96|0)|0;t=e+164|0;n=o[e+160>>2]|0;if((t|0)==(n|0)){n=4;r=r+8|0;i=r+i|0;i=i+n|0;return i|0}e=4;do{e=e+5+(Te(t+5|0)|0)|0;t=t+72|0}while((t|0)!=(n|0));r=r+8|0;i=r+i|0;i=i+e|0;return i|0}function Kr(e,t){e=e|0;t=t|0;var n=0,i=0;e=Re(De(be(e,2)|0,t)|0,t+96|0)|0;i=t+160|0;n=t+164|0;e=be(e,((o[i>>2]|0)-n|0)/72|0)|0;i=o[i>>2]|0;if((n|0)==(i|0)){i=e;t=t+7364|0;t=o[t>>2]|0;t=be(i,t)|0;return t|0}do{e=be(e,o[n>>2]|0)|0;e=Re(ve(e,(r[n+4>>0]|0)!=0)|0,n+5|0)|0;n=n+72|0}while((n|0)!=(i|0));t=t+7364|0;t=o[t>>2]|0;t=be(e,t)|0;return t|0}function zr(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0,a=0,c=0,f=0;f=h;h=h+16|0;c=f+4|0;a=f;e=_e(e,t,a)|0;switch(o[a>>2]|0){case 2:{e=_e(Oe(Be(e,t,n)|0,t,n+96|0)|0,t,c)|0;a=o[c>>2]|0;o[c>>2]=a+-1;if(!((e|0)==(t|0)|(a|0)==0)){i=n+160|0;s=n+7364|0;a=n+7292|0;do{r=o[i>>2]|0;if((r|0)==(s|0))r=a;else o[i>>2]=r+72;e=Oe(Ae(_e(e,t,r)|0,t,r+4|0)|0,t,r+5|0)|0;r=o[c>>2]|0;o[c>>2]=r+-1}while(!((e|0)==(t|0)|(r|0)==0))}n=_e(e,t,n+7364|0)|0;h=f;return n|0}case 1:{o[n+7368>>2]=13;n=t;h=f;return n|0}default:{o[n+7368>>2]=9;n=t;h=f;return n|0}}return 0}function Gr(e,t){e=e|0;t=t|0;var n=0;n=e+t|0;if(!t)return;do{r[e>>0]=0;e=e+1|0}while((e|0)!=(n|0));return}function Hr(e,t){e=e|0;t=t|0;var n=0;n=e+t|0;if(!t)return;do{r[e>>0]=0;e=e+1|0}while((e|0)!=(n|0));return}function Vr(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0;o=h;h=h+16|0;i=o;r[i>>0]=0;if(n|0)while(1){n=n+-1|0;r[i>>0]=r[i>>0]|r[t>>0]^r[e>>0];if(!n)break;else{t=t+1|0;e=e+1|0}}h=o;return(r[i>>0]|0)==0|0}function Qr(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0;E=s[t>>0]|0;g=Cs(s[t+1>>0]|0|0,0,8)|0;T=I;O=Cs(s[t+2>>0]|0|0,0,16)|0;T=T|I;l=Cs(s[t+3>>0]|0|0,0,24)|0;T=T|I;R=r[t+6>>0]|0;f=s[t+4>>0]|0;k=Cs(s[t+5>>0]|0|0,0,8)|0;u=I;R=Cs(R&255|0,0,16)|0;u=Cs(k|f|R|0,u|I|0,6)|0;R=I;f=r[t+9>>0]|0;k=s[t+7>>0]|0;a=Cs(s[t+8>>0]|0|0,0,8)|0;v=I;f=Cs(f&255|0,0,16)|0;v=Cs(a|k|f|0,v|I|0,5)|0;f=I;k=r[t+12>>0]|0;a=s[t+10>>0]|0;b=Cs(s[t+11>>0]|0|0,0,8)|0;S=I;k=Cs(k&255|0,0,16)|0;S=Cs(b|a|k|0,S|I|0,3)|0;k=I;a=r[t+15>>0]|0;b=s[t+13>>0]|0;p=Cs(s[t+14>>0]|0|0,0,8)|0;c=I;a=Cs(a&255|0,0,16)|0;c=Cs(p|b|a|0,c|I|0,2)|0;a=I;b=s[t+16>>0]|0;p=Cs(s[t+17>>0]|0|0,0,8)|0;A=I;n=Cs(s[t+18>>0]|0|0,0,16)|0;A=A|I;w=Cs(s[t+19>>0]|0|0,0,24)|0;w=p|b|n|w;A=A|I;n=r[t+22>>0]|0;b=s[t+20>>0]|0;p=Cs(s[t+21>>0]|0|0,0,8)|0;i=I;n=Cs(n&255|0,0,16)|0;i=Cs(p|b|n|0,i|I|0,7)|0;n=I;b=r[t+25>>0]|0;p=s[t+23>>0]|0;x=Cs(s[t+24>>0]|0|0,0,8)|0;_=I;b=Cs(b&255|0,0,16)|0;_=Cs(x|p|b|0,_|I|0,5)|0;b=I;p=r[t+28>>0]|0;x=s[t+26>>0]|0;m=Cs(s[t+27>>0]|0|0,0,8)|0;h=I;p=Cs(p&255|0,0,16)|0;h=Cs(m|x|p|0,h|I|0,4)|0;p=I;x=r[t+31>>0]|0;m=s[t+29>>0]|0;d=Cs(s[t+30>>0]|0|0,0,8)|0;y=I;t=Cs(x&255|0,0,16)|0;y=Cs(d|m|t|0,y|I|0,2)|0;y=y&33554428;t=ks(y|0,0,16777216,0)|0;m=xs(t|0,I|0,25)|0;m=Ss(0,0,m|0,I|0)|0;T=ks(m&19|0,0,g|E|O|l|0,T|0)|0;l=I;O=ks(u|0,R|0,16777216,0)|0;E=xs(O|0,I|0,25)|0;E=ks(v|0,f|0,E|0,I|0)|0;f=I;O=Ss(u|0,R|0,O&-33554432|0,0)|0;R=I;u=ks(S|0,k|0,16777216,0)|0;v=xs(u|0,I|0,25)|0;v=ks(c|0,a|0,v|0,I|0)|0;a=I;c=ks(w|0,A|0,16777216,0)|0;g=xs(c|0,I|0,25)|0;g=ks(i|0,n|0,g|0,I|0)|0;n=I;i=ks(_|0,b|0,16777216,0)|0;m=xs(i|0,I|0,25)|0;m=ks(h|0,p|0,m|0,I|0)|0;p=I;h=ks(T|0,l|0,33554432,0)|0;d=xs(h|0,I|0,26)|0;d=ks(O|0,R|0,d|0,I|0)|0;h=Ss(T|0,l|0,h&-67108864|0,0)|0;l=ks(E|0,f|0,33554432,0)|0;T=xs(l|0,I|0,26)|0;k=ks(T|0,I|0,S|0,k|0)|0;u=Ss(k|0,I|0,u&-33554432|0,0)|0;l=Ss(E|0,f|0,l&-67108864|0,0)|0;f=ks(v|0,a|0,33554432,0)|0;E=xs(f|0,I|0,26)|0;A=ks(E|0,I|0,w|0,A|0)|0;c=Ss(A|0,I|0,c&-33554432|0,0)|0;f=Ss(v|0,a|0,f&-67108864|0,0)|0;a=ks(g|0,n|0,33554432,0)|0;v=xs(a|0,I|0,26)|0;b=ks(v|0,I|0,_|0,b|0)|0;i=Ss(b|0,I|0,i&-33554432|0,0)|0;a=Ss(g|0,n|0,a&-67108864|0,0)|0;n=ks(m|0,p|0,33554432,0)|0;g=xs(n|0,I|0,26)|0;g=ks(y|0,0,g|0,I|0)|0;t=Ss(g|0,I|0,t&33554432|0,0)|0;n=Ss(m|0,p|0,n&-67108864|0,0)|0;o[e>>2]=h;o[e+4>>2]=d;o[e+8>>2]=l;o[e+12>>2]=u;o[e+16>>2]=f;o[e+20>>2]=c;o[e+24>>2]=a;o[e+28>>2]=i;o[e+32>>2]=n;o[e+36>>2]=t;return}function Wr(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,o=0,s=0;s=h;h=h+192|0;n=s+144|0;r=s+96|0;i=s+48|0;o=s;Yr(n,t);Yr(r,n);Yr(r,r);Xr(r,t,r);Xr(n,n,r);Yr(i,n);Xr(r,r,i);Yr(i,r);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Xr(r,i,r);Yr(i,r);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Xr(i,i,r);Yr(o,i);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Xr(i,o,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Xr(r,i,r);Yr(i,r);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Xr(i,i,r);Yr(o,i);t=1;do{Yr(o,o);t=t+1|0}while((t|0)!=100);Xr(i,o,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Xr(r,i,r);Yr(r,r);Yr(r,r);Yr(r,r);Yr(r,r);Yr(r,r);Xr(e,r,n);h=s;return}function Yr(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0,ce=0,fe=0,ue=0,le=0,de=0,he=0,pe=0,me=0,ge=0,ye=0,be=0,_e=0,ve=0,Ae=0,we=0,Ee=0,ke=0,Se=0,Ie=0,Te=0,Re=0,Oe=0,xe=0,Ce=0,Pe=0,Me=0,De=0,Be=0,Ne=0,je=0,Ue=0,Le=0,Fe=0,qe=0,Ke=0,ze=0,Ge=0,He=0,Ve=0,Qe=0,We=0,Ye=0,Xe=0,Je=0,Ze=0,$e=0,et=0,tt=0,nt=0,rt=0,it=0,ot=0,st=0;tt=o[t>>2]|0;Ae=o[t+4>>2]|0;u=o[t+8>>2]|0;de=o[t+12>>2]|0;s=o[t+16>>2]|0;rt=o[t+20>>2]|0;a=o[t+24>>2]|0;p=o[t+28>>2]|0;q=o[t+32>>2]|0;O=o[t+36>>2]|0;y=tt<<1;n=Ae<<1;Ye=u<<1;c=de<<1;pe=s<<1;i=rt<<1;d=a<<1;r=p<<1;Ue=rt*38|0;be=a*19|0;Ee=p*38|0;ie=q*19|0;st=O*38|0;nt=((tt|0)<0)<<31>>31;nt=Es(tt|0,nt|0,tt|0,nt|0)|0;tt=I;b=((y|0)<0)<<31>>31;ve=((Ae|0)<0)<<31>>31;Ne=Es(y|0,b|0,Ae|0,ve|0)|0;Be=I;f=((u|0)<0)<<31>>31;We=Es(u|0,f|0,y|0,b|0)|0;Qe=I;he=((de|0)<0)<<31>>31;Ve=Es(de|0,he|0,y|0,b|0)|0;He=I;J=((s|0)<0)<<31>>31;Fe=Es(s|0,J|0,y|0,b|0)|0;Le=I;it=((rt|0)<0)<<31>>31;Ie=Es(rt|0,it|0,y|0,b|0)|0;Se=I;we=((a|0)<0)<<31>>31;ae=Es(a|0,we|0,y|0,b|0)|0;se=I;R=((p|0)<0)<<31>>31;G=Es(p|0,R|0,y|0,b|0)|0;z=I;K=((q|0)<0)<<31>>31;P=Es(q|0,K|0,y|0,b|0)|0;C=I;x=((O|0)<0)<<31>>31;b=Es(O|0,x|0,y|0,b|0)|0;y=I;l=((n|0)<0)<<31>>31;ve=Es(n|0,l|0,Ae|0,ve|0)|0;Ae=I;ne=Es(n|0,l|0,u|0,f|0)|0;re=I;g=((c|0)<0)<<31>>31;Ge=Es(c|0,g|0,n|0,l|0)|0;ze=I;xe=Es(s|0,J|0,n|0,l|0)|0;Oe=I;m=((i|0)<0)<<31>>31;fe=Es(i|0,m|0,n|0,l|0)|0;ce=I;V=Es(a|0,we|0,n|0,l|0)|0;H=I;t=((r|0)<0)<<31>>31;D=Es(r|0,t|0,n|0,l|0)|0;M=I;v=Es(q|0,K|0,n|0,l|0)|0;_=I;ot=((st|0)<0)<<31>>31;l=Es(st|0,ot|0,n|0,l|0)|0;n=I;Ke=Es(u|0,f|0,u|0,f|0)|0;qe=I;Xe=((Ye|0)<0)<<31>>31;Re=Es(Ye|0,Xe|0,de|0,he|0)|0;Te=I;le=Es(s|0,J|0,Ye|0,Xe|0)|0;ue=I;X=Es(rt|0,it|0,Ye|0,Xe|0)|0;Y=I;F=Es(a|0,we|0,Ye|0,Xe|0)|0;L=I;w=Es(p|0,R|0,Ye|0,Xe|0)|0;A=I;oe=((ie|0)<0)<<31>>31;Xe=Es(ie|0,oe|0,Ye|0,Xe|0)|0;Ye=I;f=Es(st|0,ot|0,u|0,f|0)|0;u=I;he=Es(c|0,g|0,de|0,he|0)|0;de=I;W=Es(c|0,g|0,s|0,J|0)|0;Q=I;N=Es(i|0,m|0,c|0,g|0)|0;B=I;T=Es(a|0,we|0,c|0,g|0)|0;S=I;ke=((Ee|0)<0)<<31>>31;Ze=Es(Ee|0,ke|0,c|0,g|0)|0;Je=I;Pe=Es(ie|0,oe|0,c|0,g|0)|0;Ce=I;g=Es(st|0,ot|0,c|0,g|0)|0;c=I;U=Es(s|0,J|0,s|0,J|0)|0;j=I;me=((pe|0)<0)<<31>>31;k=Es(pe|0,me|0,rt|0,it|0)|0;E=I;_e=((be|0)<0)<<31>>31;et=Es(be|0,_e|0,pe|0,me|0)|0;$e=I;De=Es(Ee|0,ke|0,s|0,J|0)|0;Me=I;me=Es(ie|0,oe|0,pe|0,me|0)|0;pe=I;J=Es(st|0,ot|0,s|0,J|0)|0;s=I;it=Es(Ue|0,((Ue|0)<0)<<31>>31|0,rt|0,it|0)|0;rt=I;Ue=Es(be|0,_e|0,i|0,m|0)|0;je=I;ye=Es(Ee|0,ke|0,i|0,m|0)|0;ge=I;$=Es(ie|0,oe|0,i|0,m|0)|0;Z=I;m=Es(st|0,ot|0,i|0,m|0)|0;i=I;_e=Es(be|0,_e|0,a|0,we|0)|0;be=I;te=Es(Ee|0,ke|0,a|0,we|0)|0;ee=I;d=Es(ie|0,oe|0,d|0,((d|0)<0)<<31>>31|0)|0;h=I;we=Es(st|0,ot|0,a|0,we|0)|0;a=I;R=Es(Ee|0,ke|0,p|0,R|0)|0;p=I;ke=Es(ie|0,oe|0,r|0,t|0)|0;Ee=I;t=Es(st|0,ot|0,r|0,t|0)|0;r=I;oe=Es(ie|0,oe|0,q|0,K|0)|0;ie=I;K=Es(st|0,ot|0,q|0,K|0)|0;q=I;x=Es(st|0,ot|0,O|0,x|0)|0;O=I;tt=ks(it|0,rt|0,nt|0,tt|0)|0;$e=ks(tt|0,I|0,et|0,$e|0)|0;Je=ks($e|0,I|0,Ze|0,Je|0)|0;Ye=ks(Je|0,I|0,Xe|0,Ye|0)|0;n=ks(Ye|0,I|0,l|0,n|0)|0;l=I;Ae=ks(We|0,Qe|0,ve|0,Ae|0)|0;ve=I;re=ks(Ve|0,He|0,ne|0,re|0)|0;ne=I;qe=ks(Ge|0,ze|0,Ke|0,qe|0)|0;Le=ks(qe|0,I|0,Fe|0,Le|0)|0;p=ks(Le|0,I|0,R|0,p|0)|0;h=ks(p|0,I|0,d|0,h|0)|0;i=ks(h|0,I|0,m|0,i|0)|0;m=I;h=ks(n|0,l|0,33554432,0)|0;d=I;p=Os(h|0,d|0,26)|0;R=I;Be=ks(Ue|0,je|0,Ne|0,Be|0)|0;Me=ks(Be|0,I|0,De|0,Me|0)|0;Ce=ks(Me|0,I|0,Pe|0,Ce|0)|0;u=ks(Ce|0,I|0,f|0,u|0)|0;R=ks(u|0,I|0,p|0,R|0)|0;p=I;d=Ss(n|0,l|0,h&-67108864|0,d|0)|0;h=I;l=ks(i|0,m|0,33554432,0)|0;n=I;u=Os(l|0,n|0,26)|0;f=I;Te=ks(xe|0,Oe|0,Re|0,Te|0)|0;Se=ks(Te|0,I|0,Ie|0,Se|0)|0;Ee=ks(Se|0,I|0,ke|0,Ee|0)|0;a=ks(Ee|0,I|0,we|0,a|0)|0;f=ks(a|0,I|0,u|0,f|0)|0;u=I;n=Ss(i|0,m|0,l&-67108864|0,n|0)|0;l=I;m=ks(R|0,p|0,16777216,0)|0;i=Os(m|0,I|0,25)|0;a=I;be=ks(Ae|0,ve|0,_e|0,be|0)|0;ge=ks(be|0,I|0,ye|0,ge|0)|0;pe=ks(ge|0,I|0,me|0,pe|0)|0;c=ks(pe|0,I|0,g|0,c|0)|0;a=ks(c|0,I|0,i|0,a|0)|0;i=I;m=Ss(R|0,p|0,m&-33554432|0,0)|0;p=I;R=ks(f|0,u|0,16777216,0)|0;c=Os(R|0,I|0,25)|0;g=I;ue=ks(he|0,de|0,le|0,ue|0)|0;ce=ks(ue|0,I|0,fe|0,ce|0)|0;se=ks(ce|0,I|0,ae|0,se|0)|0;ie=ks(se|0,I|0,oe|0,ie|0)|0;r=ks(ie|0,I|0,t|0,r|0)|0;g=ks(r|0,I|0,c|0,g|0)|0;c=I;R=Ss(f|0,u|0,R&-33554432|0,0)|0;u=I;f=ks(a|0,i|0,33554432,0)|0;r=Os(f|0,I|0,26)|0;t=I;ee=ks(re|0,ne|0,te|0,ee|0)|0;Z=ks(ee|0,I|0,$|0,Z|0)|0;s=ks(Z|0,I|0,J|0,s|0)|0;t=ks(s|0,I|0,r|0,t|0)|0;r=I;f=Ss(a|0,i|0,f&-67108864|0,0)|0;i=ks(g|0,c|0,33554432,0)|0;a=Os(i|0,I|0,26)|0;s=I;Q=ks(X|0,Y|0,W|0,Q|0)|0;H=ks(Q|0,I|0,V|0,H|0)|0;z=ks(H|0,I|0,G|0,z|0)|0;q=ks(z|0,I|0,K|0,q|0)|0;s=ks(q|0,I|0,a|0,s|0)|0;a=I;i=Ss(g|0,c|0,i&-67108864|0,0)|0;c=ks(t|0,r|0,16777216,0)|0;g=Os(c|0,I|0,25)|0;l=ks(g|0,I|0,n|0,l|0)|0;n=I;c=Ss(t|0,r|0,c&-33554432|0,0)|0;r=ks(s|0,a|0,16777216,0)|0;t=Os(r|0,I|0,25)|0;g=I;j=ks(F|0,L|0,U|0,j|0)|0;B=ks(j|0,I|0,N|0,B|0)|0;M=ks(B|0,I|0,D|0,M|0)|0;C=ks(M|0,I|0,P|0,C|0)|0;O=ks(C|0,I|0,x|0,O|0)|0;g=ks(O|0,I|0,t|0,g|0)|0;t=I;r=Ss(s|0,a|0,r&-33554432|0,0)|0;a=ks(l|0,n|0,33554432,0)|0;s=xs(a|0,I|0,26)|0;s=ks(R|0,u|0,s|0,I|0)|0;a=Ss(l|0,n|0,a&-67108864|0,0)|0;n=ks(g|0,t|0,33554432,0)|0;l=Os(n|0,I|0,26)|0;u=I;E=ks(T|0,S|0,k|0,E|0)|0;A=ks(E|0,I|0,w|0,A|0)|0;_=ks(A|0,I|0,v|0,_|0)|0;y=ks(_|0,I|0,b|0,y|0)|0;u=ks(y|0,I|0,l|0,u|0)|0;l=I;n=Ss(g|0,t|0,n&-67108864|0,0)|0;t=ks(u|0,l|0,16777216,0)|0;g=Os(t|0,I|0,25)|0;g=Es(g|0,I|0,19,0)|0;h=ks(g|0,I|0,d|0,h|0)|0;d=I;t=Ss(u|0,l|0,t&-33554432|0,0)|0;l=ks(h|0,d|0,33554432,0)|0;u=xs(l|0,I|0,26)|0;u=ks(m|0,p|0,u|0,I|0)|0;l=Ss(h|0,d|0,l&-67108864|0,0)|0;o[e>>2]=l;o[e+4>>2]=u;o[e+8>>2]=f;o[e+12>>2]=c;o[e+16>>2]=a;o[e+20>>2]=s;o[e+24>>2]=i;o[e+28>>2]=r;o[e+32>>2]=n;o[e+36>>2]=t;return}function Xr(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0,ce=0,fe=0,ue=0,le=0,de=0,he=0,pe=0,me=0,ge=0,ye=0,be=0,_e=0,ve=0,Ae=0,we=0,Ee=0,ke=0,Se=0,Ie=0,Te=0,Re=0,Oe=0,xe=0,Ce=0,Pe=0,Me=0,De=0,Be=0,Ne=0,je=0,Ue=0,Le=0,Fe=0,qe=0,Ke=0,ze=0,Ge=0,He=0,Ve=0,Qe=0,We=0,Ye=0,Xe=0,Je=0,Ze=0,$e=0,et=0,tt=0,nt=0,rt=0,it=0,ot=0,st=0,at=0,ct=0,ft=0,ut=0,lt=0,dt=0,ht=0,pt=0,mt=0,gt=0,yt=0,bt=0,_t=0,vt=0,At=0,wt=0,Et=0,kt=0,St=0,It=0,Tt=0,Rt=0,Ot=0,xt=0,Ct=0,Pt=0,Mt=0,Dt=0,Bt=0,Nt=0,jt=0,Ut=0,Lt=0,Ft=0,qt=0,Kt=0,zt=0,Gt=0,Ht=0,Vt=0,Qt=0,Wt=0,Yt=0,Xt=0,Jt=0,Zt=0,$t=0,en=0,tn=0,nn=0,rn=0,on=0,sn=0,an=0,cn=0,fn=0,un=0,ln=0,dn=0,hn=0,pn=0,mn=0,gn=0,yn=0,bn=0,_n=0,vn=0,An=0,wn=0,En=0,kn=0,Sn=0,In=0,Tn=0,Rn=0,On=0,xn=0,Cn=0,Pn=0,Mn=0,Dn=0,Bn=0,Nn=0,jn=0,Un=0,Ln=0,Fn=0,qn=0,Kn=0,zn=0,Gn=0,Hn=0;y=o[t>>2]|0;_=o[t+4>>2]|0;u=o[t+8>>2]|0;Ht=o[t+12>>2]|0;s=o[t+16>>2]|0;Ie=o[t+20>>2]|0;a=o[t+24>>2]|0;Tt=o[t+28>>2]|0;oe=o[t+32>>2]|0;ae=o[t+36>>2]|0;D=o[n>>2]|0;N=o[n+4>>2]|0;P=o[n+8>>2]|0;x=o[n+12>>2]|0;R=o[n+16>>2]|0;S=o[n+20>>2]|0;E=o[n+24>>2]|0;A=o[n+28>>2]|0;f=o[n+32>>2]|0;v=o[n+36>>2]|0;qn=N*19|0;rn=P*19|0;bt=x*19|0;De=R*19|0;un=S*19|0;Ct=E*19|0;Ve=A*19|0;Hn=f*19|0;zn=v*19|0;t=_<<1;c=Ht<<1;i=Ie<<1;r=Tt<<1;L=ae<<1;b=((y|0)<0)<<31>>31;B=((D|0)<0)<<31>>31;Ln=Es(D|0,B|0,y|0,b|0)|0;Un=I;j=((N|0)<0)<<31>>31;En=Es(N|0,j|0,y|0,b|0)|0;wn=I;M=((P|0)<0)<<31>>31;At=Es(P|0,M|0,y|0,b|0)|0;vt=I;C=((x|0)<0)<<31>>31;je=Es(x|0,C|0,y|0,b|0)|0;Ne=I;O=((R|0)<0)<<31>>31;hn=Es(R|0,O|0,y|0,b|0)|0;dn=I;T=((S|0)<0)<<31>>31;Dt=Es(S|0,T|0,y|0,b|0)|0;Mt=I;k=((E|0)<0)<<31>>31;Ye=Es(E|0,k|0,y|0,b|0)|0;We=I;w=((A|0)<0)<<31>>31;ue=Es(A|0,w|0,y|0,b|0)|0;fe=I;Kn=((f|0)<0)<<31>>31;K=Es(f|0,Kn|0,y|0,b|0)|0;q=I;b=Es(v|0,((v|0)<0)<<31>>31|0,y|0,b|0)|0;y=I;v=((_|0)<0)<<31>>31;sn=Es(D|0,B|0,_|0,v|0)|0;an=I;l=((t|0)<0)<<31>>31;St=Es(N|0,j|0,t|0,l|0)|0;kt=I;Le=Es(P|0,M|0,_|0,v|0)|0;Ue=I;mn=Es(x|0,C|0,t|0,l|0)|0;pn=I;Nt=Es(R|0,O|0,_|0,v|0)|0;Bt=I;Je=Es(S|0,T|0,t|0,l|0)|0;Xe=I;de=Es(E|0,k|0,_|0,v|0)|0;le=I;G=Es(A|0,w|0,t|0,l|0)|0;z=I;v=Es(f|0,Kn|0,_|0,v|0)|0;_=I;Kn=((zn|0)<0)<<31>>31;l=Es(zn|0,Kn|0,t|0,l|0)|0;t=I;f=((u|0)<0)<<31>>31;Et=Es(D|0,B|0,u|0,f|0)|0;wt=I;ze=Es(N|0,j|0,u|0,f|0)|0;Ke=I;yn=Es(P|0,M|0,u|0,f|0)|0;gn=I;Ut=Es(x|0,C|0,u|0,f|0)|0;jt=I;$e=Es(R|0,O|0,u|0,f|0)|0;Ze=I;pe=Es(S|0,T|0,u|0,f|0)|0;he=I;V=Es(E|0,k|0,u|0,f|0)|0;H=I;w=Es(A|0,w|0,u|0,f|0)|0;A=I;Gn=((Hn|0)<0)<<31>>31;Sn=Es(Hn|0,Gn|0,u|0,f|0)|0;kn=I;f=Es(zn|0,Kn|0,u|0,f|0)|0;u=I;Vt=((Ht|0)<0)<<31>>31;qe=Es(D|0,B|0,Ht|0,Vt|0)|0;Fe=I;g=((c|0)<0)<<31>>31;An=Es(N|0,j|0,c|0,g|0)|0;vn=I;Ft=Es(P|0,M|0,Ht|0,Vt|0)|0;Lt=I;tt=Es(x|0,C|0,c|0,g|0)|0;et=I;ge=Es(R|0,O|0,Ht|0,Vt|0)|0;me=I;W=Es(S|0,T|0,c|0,g|0)|0;Q=I;k=Es(E|0,k|0,Ht|0,Vt|0)|0;E=I;Qe=((Ve|0)<0)<<31>>31;Tn=Es(Ve|0,Qe|0,c|0,g|0)|0;In=I;Vt=Es(Hn|0,Gn|0,Ht|0,Vt|0)|0;Ht=I;g=Es(zn|0,Kn|0,c|0,g|0)|0;c=I;Se=((s|0)<0)<<31>>31;_n=Es(D|0,B|0,s|0,Se|0)|0;bn=I;Gt=Es(N|0,j|0,s|0,Se|0)|0;zt=I;rt=Es(P|0,M|0,s|0,Se|0)|0;nt=I;be=Es(x|0,C|0,s|0,Se|0)|0;ye=I;X=Es(R|0,O|0,s|0,Se|0)|0;Y=I;T=Es(S|0,T|0,s|0,Se|0)|0;S=I;Pt=((Ct|0)<0)<<31>>31;On=Es(Ct|0,Pt|0,s|0,Se|0)|0;Rn=I;Wt=Es(Ve|0,Qe|0,s|0,Se|0)|0;Qt=I;ft=Es(Hn|0,Gn|0,s|0,Se|0)|0;ct=I;Se=Es(zn|0,Kn|0,s|0,Se|0)|0;s=I;Te=((Ie|0)<0)<<31>>31;Kt=Es(D|0,B|0,Ie|0,Te|0)|0;qt=I;m=((i|0)<0)<<31>>31;at=Es(N|0,j|0,i|0,m|0)|0;st=I;ve=Es(P|0,M|0,Ie|0,Te|0)|0;_e=I;Z=Es(x|0,C|0,i|0,m|0)|0;J=I;O=Es(R|0,O|0,Ie|0,Te|0)|0;R=I;ln=((un|0)<0)<<31>>31;Cn=Es(un|0,ln|0,i|0,m|0)|0;xn=I;Xt=Es(Ct|0,Pt|0,Ie|0,Te|0)|0;Yt=I;lt=Es(Ve|0,Qe|0,i|0,m|0)|0;ut=I;Te=Es(Hn|0,Gn|0,Ie|0,Te|0)|0;Ie=I;m=Es(zn|0,Kn|0,i|0,m|0)|0;i=I;It=((a|0)<0)<<31>>31;ot=Es(D|0,B|0,a|0,It|0)|0;it=I;ke=Es(N|0,j|0,a|0,It|0)|0;Ee=I;ee=Es(P|0,M|0,a|0,It|0)|0;$=I;C=Es(x|0,C|0,a|0,It|0)|0;x=I;Be=((De|0)<0)<<31>>31;Mn=Es(De|0,Be|0,a|0,It|0)|0;Pn=I;Zt=Es(un|0,ln|0,a|0,It|0)|0;Jt=I;ht=Es(Ct|0,Pt|0,a|0,It|0)|0;dt=I;Oe=Es(Ve|0,Qe|0,a|0,It|0)|0;Re=I;d=Es(Hn|0,Gn|0,a|0,It|0)|0;h=I;It=Es(zn|0,Kn|0,a|0,It|0)|0;a=I;Rt=((Tt|0)<0)<<31>>31;we=Es(D|0,B|0,Tt|0,Rt|0)|0;Ae=I;n=((r|0)<0)<<31>>31;ie=Es(N|0,j|0,r|0,n|0)|0;re=I;M=Es(P|0,M|0,Tt|0,Rt|0)|0;P=I;_t=((bt|0)<0)<<31>>31;Bn=Es(bt|0,_t|0,r|0,n|0)|0;Dn=I;en=Es(De|0,Be|0,Tt|0,Rt|0)|0;$t=I;mt=Es(un|0,ln|0,r|0,n|0)|0;pt=I;Ce=Es(Ct|0,Pt|0,Tt|0,Rt|0)|0;xe=I;U=Es(Ve|0,Qe|0,r|0,n|0)|0;p=I;Rt=Es(Hn|0,Gn|0,Tt|0,Rt|0)|0;Tt=I;n=Es(zn|0,Kn|0,r|0,n|0)|0;r=I;se=((oe|0)<0)<<31>>31;ne=Es(D|0,B|0,oe|0,se|0)|0;te=I;j=Es(N|0,j|0,oe|0,se|0)|0;N=I;on=((rn|0)<0)<<31>>31;jn=Es(rn|0,on|0,oe|0,se|0)|0;Nn=I;nn=Es(bt|0,_t|0,oe|0,se|0)|0;tn=I;yt=Es(De|0,Be|0,oe|0,se|0)|0;gt=I;Me=Es(un|0,ln|0,oe|0,se|0)|0;Pe=I;fn=Es(Ct|0,Pt|0,oe|0,se|0)|0;cn=I;xt=Es(Ve|0,Qe|0,oe|0,se|0)|0;Ot=I;He=Es(Hn|0,Gn|0,oe|0,se|0)|0;Ge=I;se=Es(zn|0,Kn|0,oe|0,se|0)|0;oe=I;ce=((ae|0)<0)<<31>>31;B=Es(D|0,B|0,ae|0,ce|0)|0;D=I;F=((L|0)<0)<<31>>31;qn=Es(qn|0,((qn|0)<0)<<31>>31|0,L|0,F|0)|0;Fn=I;on=Es(rn|0,on|0,ae|0,ce|0)|0;rn=I;_t=Es(bt|0,_t|0,L|0,F|0)|0;bt=I;Be=Es(De|0,Be|0,ae|0,ce|0)|0;De=I;ln=Es(un|0,ln|0,L|0,F|0)|0;un=I;Pt=Es(Ct|0,Pt|0,ae|0,ce|0)|0;Ct=I;Qe=Es(Ve|0,Qe|0,L|0,F|0)|0;Ve=I;ce=Es(Hn|0,Gn|0,ae|0,ce|0)|0;ae=I;F=Es(zn|0,Kn|0,L|0,F|0)|0;L=I;Un=ks(qn|0,Fn|0,Ln|0,Un|0)|0;Nn=ks(Un|0,I|0,jn|0,Nn|0)|0;Dn=ks(Nn|0,I|0,Bn|0,Dn|0)|0;Pn=ks(Dn|0,I|0,Mn|0,Pn|0)|0;xn=ks(Pn|0,I|0,Cn|0,xn|0)|0;Rn=ks(xn|0,I|0,On|0,Rn|0)|0;In=ks(Rn|0,I|0,Tn|0,In|0)|0;kn=ks(In|0,I|0,Sn|0,kn|0)|0;t=ks(kn|0,I|0,l|0,t|0)|0;l=I;an=ks(En|0,wn|0,sn|0,an|0)|0;sn=I;bn=ks(An|0,vn|0,_n|0,bn|0)|0;gn=ks(bn|0,I|0,yn|0,gn|0)|0;pn=ks(gn|0,I|0,mn|0,pn|0)|0;dn=ks(pn|0,I|0,hn|0,dn|0)|0;un=ks(dn|0,I|0,ln|0,un|0)|0;cn=ks(un|0,I|0,fn|0,cn|0)|0;p=ks(cn|0,I|0,U|0,p|0)|0;h=ks(p|0,I|0,d|0,h|0)|0;i=ks(h|0,I|0,m|0,i|0)|0;m=I;h=ks(t|0,l|0,33554432,0)|0;d=I;p=Os(h|0,d|0,26)|0;U=I;rn=ks(an|0,sn|0,on|0,rn|0)|0;tn=ks(rn|0,I|0,nn|0,tn|0)|0;$t=ks(tn|0,I|0,en|0,$t|0)|0;Jt=ks($t|0,I|0,Zt|0,Jt|0)|0;Yt=ks(Jt|0,I|0,Xt|0,Yt|0)|0;Qt=ks(Yt|0,I|0,Wt|0,Qt|0)|0;Ht=ks(Qt|0,I|0,Vt|0,Ht|0)|0;u=ks(Ht|0,I|0,f|0,u|0)|0;U=ks(u|0,I|0,p|0,U|0)|0;p=I;d=Ss(t|0,l|0,h&-67108864|0,d|0)|0;h=I;l=ks(i|0,m|0,33554432,0)|0;t=I;u=Os(l|0,t|0,26)|0;f=I;qt=ks(Gt|0,zt|0,Kt|0,qt|0)|0;Lt=ks(qt|0,I|0,Ft|0,Lt|0)|0;jt=ks(Lt|0,I|0,Ut|0,jt|0)|0;Bt=ks(jt|0,I|0,Nt|0,Bt|0)|0;Mt=ks(Bt|0,I|0,Dt|0,Mt|0)|0;Ct=ks(Mt|0,I|0,Pt|0,Ct|0)|0;Ot=ks(Ct|0,I|0,xt|0,Ot|0)|0;Tt=ks(Ot|0,I|0,Rt|0,Tt|0)|0;a=ks(Tt|0,I|0,It|0,a|0)|0;f=ks(a|0,I|0,u|0,f|0)|0;u=I;t=Ss(i|0,m|0,l&-67108864|0,t|0)|0;l=I;m=ks(U|0,p|0,16777216,0)|0;i=Os(m|0,I|0,25)|0;a=I;wt=ks(St|0,kt|0,Et|0,wt|0)|0;vt=ks(wt|0,I|0,At|0,vt|0)|0;bt=ks(vt|0,I|0,_t|0,bt|0)|0;gt=ks(bt|0,I|0,yt|0,gt|0)|0;pt=ks(gt|0,I|0,mt|0,pt|0)|0;dt=ks(pt|0,I|0,ht|0,dt|0)|0;ut=ks(dt|0,I|0,lt|0,ut|0)|0;ct=ks(ut|0,I|0,ft|0,ct|0)|0;c=ks(ct|0,I|0,g|0,c|0)|0;a=ks(c|0,I|0,i|0,a|0)|0;i=I;m=Ss(U|0,p|0,m&-33554432|0,0)|0;p=I;U=ks(f|0,u|0,16777216,0)|0;c=Os(U|0,I|0,25)|0;g=I;it=ks(at|0,st|0,ot|0,it|0)|0;nt=ks(it|0,I|0,rt|0,nt|0)|0;et=ks(nt|0,I|0,tt|0,et|0)|0;Ze=ks(et|0,I|0,$e|0,Ze|0)|0;Xe=ks(Ze|0,I|0,Je|0,Xe|0)|0;We=ks(Xe|0,I|0,Ye|0,We|0)|0;Ve=ks(We|0,I|0,Qe|0,Ve|0)|0;Ge=ks(Ve|0,I|0,He|0,Ge|0)|0;r=ks(Ge|0,I|0,n|0,r|0)|0;g=ks(r|0,I|0,c|0,g|0)|0;c=I;U=Ss(f|0,u|0,U&-33554432|0,0)|0;u=I;f=ks(a|0,i|0,33554432,0)|0;r=Os(f|0,I|0,26)|0;n=I;Fe=ks(ze|0,Ke|0,qe|0,Fe|0)|0;Ue=ks(Fe|0,I|0,Le|0,Ue|0)|0;Ne=ks(Ue|0,I|0,je|0,Ne|0)|0;De=ks(Ne|0,I|0,Be|0,De|0)|0;Pe=ks(De|0,I|0,Me|0,Pe|0)|0;xe=ks(Pe|0,I|0,Ce|0,xe|0)|0;Re=ks(xe|0,I|0,Oe|0,Re|0)|0;Ie=ks(Re|0,I|0,Te|0,Ie|0)|0;s=ks(Ie|0,I|0,Se|0,s|0)|0;n=ks(s|0,I|0,r|0,n|0)|0;r=I;f=Ss(a|0,i|0,f&-67108864|0,0)|0;i=ks(g|0,c|0,33554432,0)|0;a=Os(i|0,I|0,26)|0;s=I;Ae=ks(ke|0,Ee|0,we|0,Ae|0)|0;_e=ks(Ae|0,I|0,ve|0,_e|0)|0;ye=ks(_e|0,I|0,be|0,ye|0)|0;me=ks(ye|0,I|0,ge|0,me|0)|0;he=ks(me|0,I|0,pe|0,he|0)|0;le=ks(he|0,I|0,de|0,le|0)|0;fe=ks(le|0,I|0,ue|0,fe|0)|0;ae=ks(fe|0,I|0,ce|0,ae|0)|0;oe=ks(ae|0,I|0,se|0,oe|0)|0;s=ks(oe|0,I|0,a|0,s|0)|0;a=I;i=Ss(g|0,c|0,i&-67108864|0,0)|0;c=ks(n|0,r|0,16777216,0)|0;g=Os(c|0,I|0,25)|0;l=ks(g|0,I|0,t|0,l|0)|0;t=I;c=Ss(n|0,r|0,c&-33554432|0,0)|0;r=ks(s|0,a|0,16777216,0)|0;n=Os(r|0,I|0,25)|0;g=I;te=ks(ie|0,re|0,ne|0,te|0)|0;$=ks(te|0,I|0,ee|0,$|0)|0;J=ks($|0,I|0,Z|0,J|0)|0;Y=ks(J|0,I|0,X|0,Y|0)|0;Q=ks(Y|0,I|0,W|0,Q|0)|0;H=ks(Q|0,I|0,V|0,H|0)|0;z=ks(H|0,I|0,G|0,z|0)|0;q=ks(z|0,I|0,K|0,q|0)|0;L=ks(q|0,I|0,F|0,L|0)|0;g=ks(L|0,I|0,n|0,g|0)|0;n=I;r=Ss(s|0,a|0,r&-33554432|0,0)|0;a=ks(l|0,t|0,33554432,0)|0;s=xs(a|0,I|0,26)|0;s=ks(U|0,u|0,s|0,I|0)|0;a=Ss(l|0,t|0,a&-67108864|0,0)|0;t=ks(g|0,n|0,33554432,0)|0;l=Os(t|0,I|0,26)|0;u=I;D=ks(j|0,N|0,B|0,D|0)|0;P=ks(D|0,I|0,M|0,P|0)|0;x=ks(P|0,I|0,C|0,x|0)|0;R=ks(x|0,I|0,O|0,R|0)|0;S=ks(R|0,I|0,T|0,S|0)|0;E=ks(S|0,I|0,k|0,E|0)|0;A=ks(E|0,I|0,w|0,A|0)|0;_=ks(A|0,I|0,v|0,_|0)|0;y=ks(_|0,I|0,b|0,y|0)|0;u=ks(y|0,I|0,l|0,u|0)|0;l=I;t=Ss(g|0,n|0,t&-67108864|0,0)|0;n=ks(u|0,l|0,16777216,0)|0;g=Os(n|0,I|0,25)|0;g=Es(g|0,I|0,19,0)|0;h=ks(g|0,I|0,d|0,h|0)|0;d=I;n=Ss(u|0,l|0,n&-33554432|0,0)|0;l=ks(h|0,d|0,33554432,0)|0;u=xs(l|0,I|0,26)|0;u=ks(m|0,p|0,u|0,I|0)|0;l=Ss(h|0,d|0,l&-67108864|0,0)|0;o[e>>2]=l;o[e+4>>2]=u;o[e+8>>2]=f;o[e+12>>2]=c;o[e+16>>2]=a;o[e+20>>2]=s;o[e+24>>2]=i;o[e+28>>2]=r;o[e+32>>2]=t;o[e+36>>2]=n;return}function Jr(e,t){e=e|0;t=t|0;var n=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0;_=o[t>>2]|0;b=o[t+4>>2]|0;g=o[t+8>>2]|0;p=o[t+12>>2]|0;d=o[t+16>>2]|0;l=o[t+20>>2]|0;u=o[t+24>>2]|0;c=o[t+28>>2]|0;s=o[t+32>>2]|0;n=o[t+36>>2]|0;_=(((((((((((((n*19|0)+16777216>>25)+_>>26)+b>>25)+g>>26)+p>>25)+d>>26)+l>>25)+u>>26)+c>>25)+s>>26)+n>>25)*19|0)+_|0;b=(_>>26)+b|0;g=(b>>25)+g|0;y=b&33554431;p=(g>>26)+p|0;m=g&67108863;d=(p>>25)+d|0;h=p&33554431;l=(d>>26)+l|0;u=(l>>25)+u|0;c=(u>>26)+c|0;f=u&67108863;s=(c>>25)+s|0;a=c&33554431;n=(s>>26)+n|0;i=s&67108863;t=n&33554431;r[e>>0]=_;r[e+1>>0]=_>>>8;r[e+2>>0]=_>>>16;r[e+3>>0]=y<<2|_>>>24&3;r[e+4>>0]=b>>>6;r[e+5>>0]=b>>>14;r[e+6>>0]=m<<3|y>>>22;r[e+7>>0]=g>>>5;r[e+8>>0]=g>>>13;r[e+9>>0]=h<<5|m>>>21;r[e+10>>0]=p>>>3;r[e+11>>0]=p>>>11;r[e+12>>0]=d<<6|h>>>19;r[e+13>>0]=d>>>2;r[e+14>>0]=d>>>10;r[e+15>>0]=d>>>18;r[e+16>>0]=l;r[e+17>>0]=l>>>8;r[e+18>>0]=l>>>16;r[e+19>>0]=f<<1|l>>>24&1;r[e+20>>0]=u>>>7;r[e+21>>0]=u>>>15;r[e+22>>0]=a<<3|f>>>23;r[e+23>>0]=c>>>5;r[e+24>>0]=c>>>13;r[e+25>>0]=i<<4|a>>>21;r[e+26>>0]=s>>>4;r[e+27>>0]=s>>>12;r[e+28>>0]=t<<6|i>>>20;r[e+29>>0]=n>>>2;r[e+30>>0]=n>>>10;r[e+31>>0]=t>>>18;return}function Zr(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,o=0,s=0;s=h;h=h+144|0;r=s+96|0;i=s+48|0;o=s;Yr(r,t);Yr(i,r);Yr(i,i);Xr(i,t,i);Xr(r,r,i);Yr(r,r);Xr(r,i,r);Yr(i,r);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Xr(r,i,r);Yr(i,r);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Xr(i,i,r);Yr(o,i);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Yr(o,o);Xr(i,o,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Xr(r,i,r);Yr(i,r);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Xr(i,i,r);Yr(o,i);n=1;do{Yr(o,o);n=n+1|0}while((n|0)!=100);Xr(i,o,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Yr(i,i);Xr(r,i,r);Yr(r,r);Yr(r,r);Xr(e,r,t);h=s;return}function $r(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0,ce=0,fe=0,ue=0,le=0,de=0,he=0,pe=0,me=0,ge=0,ye=0,be=0,_e=0,ve=0,Ae=0,we=0,Ee=0,ke=0,Se=0,Ie=0,Te=0,Re=0,Oe=0,xe=0,Ce=0,Pe=0,Me=0,De=0,Be=0,Ne=0,je=0,Ue=0,Le=0,Fe=0,qe=0,Ke=0,ze=0,Ge=0,He=0,Ve=0,Qe=0,We=0,Ye=0,Xe=0,Je=0,Ze=0,$e=0,et=0,tt=0,nt=0,rt=0,it=0,ot=0,st=0;tt=o[t>>2]|0;je=o[t+4>>2]|0;_=o[t+8>>2]|0;re=o[t+12>>2]|0;v=o[t+16>>2]|0;rt=o[t+20>>2]|0;f=o[t+24>>2]|0;me=o[t+28>>2]|0;s=o[t+32>>2]|0;g=o[t+36>>2]|0;u=tt<<1;y=je<<1;Ye=_<<1;w=re<<1;Ce=v<<1;m=rt<<1;pe=f<<1;A=me<<1;We=rt*38|0;Be=f*19|0;oe=me*38|0;Y=s*19|0;st=g*38|0;nt=((tt|0)<0)<<31>>31;nt=Es(tt|0,nt|0,tt|0,nt|0)|0;tt=I;l=((u|0)<0)<<31>>31;Ue=((je|0)<0)<<31>>31;Ve=Es(u|0,l|0,je|0,Ue|0)|0;He=I;p=((_|0)<0)<<31>>31;Fe=Es(_|0,p|0,u|0,l|0)|0;Le=I;ie=((re|0)<0)<<31>>31;xe=Es(re|0,ie|0,u|0,l|0)|0;Oe=I;r=((v|0)<0)<<31>>31;be=Es(v|0,r|0,u|0,l|0)|0;ye=I;it=((rt|0)<0)<<31>>31;ce=Es(rt|0,it|0,u|0,l|0)|0;ae=I;b=((f|0)<0)<<31>>31;Z=Es(f|0,b|0,u|0,l|0)|0;J=I;ge=((me|0)<0)<<31>>31;K=Es(me|0,ge|0,u|0,l|0)|0;q=I;a=((s|0)<0)<<31>>31;P=Es(s|0,a|0,u|0,l|0)|0;C=I;t=((g|0)<0)<<31>>31;l=Es(g|0,t|0,u|0,l|0)|0;u=I;n=((y|0)<0)<<31>>31;Ue=Es(y|0,n|0,je|0,Ue|0)|0;je=I;Re=Es(y|0,n|0,_|0,p|0)|0;Te=I;i=((w|0)<0)<<31>>31;we=Es(w|0,i|0,y|0,n|0)|0;Ae=I;de=Es(v|0,r|0,y|0,n|0)|0;le=I;E=((m|0)<0)<<31>>31;ee=Es(m|0,E|0,y|0,n|0)|0;$=I;G=Es(f|0,b|0,y|0,n|0)|0;z=I;c=((A|0)<0)<<31>>31;D=Es(A|0,c|0,y|0,n|0)|0;M=I;d=Es(s|0,a|0,y|0,n|0)|0;h=I;ot=((st|0)<0)<<31>>31;n=Es(st|0,ot|0,y|0,n|0)|0;y=I;ve=Es(_|0,p|0,_|0,p|0)|0;_e=I;Xe=((Ye|0)<0)<<31>>31;ue=Es(Ye|0,Xe|0,re|0,ie|0)|0;fe=I;ne=Es(v|0,r|0,Ye|0,Xe|0)|0;te=I;W=Es(rt|0,it|0,Ye|0,Xe|0)|0;Q=I;F=Es(f|0,b|0,Ye|0,Xe|0)|0;L=I;S=Es(me|0,ge|0,Ye|0,Xe|0)|0;k=I;X=((Y|0)<0)<<31>>31;Xe=Es(Y|0,X|0,Ye|0,Xe|0)|0;Ye=I;p=Es(st|0,ot|0,_|0,p|0)|0;_=I;ie=Es(w|0,i|0,re|0,ie|0)|0;re=I;V=Es(w|0,i|0,v|0,r|0)|0;H=I;N=Es(m|0,E|0,w|0,i|0)|0;B=I;x=Es(f|0,b|0,w|0,i|0)|0;O=I;se=((oe|0)<0)<<31>>31;Ze=Es(oe|0,se|0,w|0,i|0)|0;Je=I;Ke=Es(Y|0,X|0,w|0,i|0)|0;qe=I;i=Es(st|0,ot|0,w|0,i|0)|0;w=I;U=Es(v|0,r|0,v|0,r|0)|0;j=I;Pe=((Ce|0)<0)<<31>>31;R=Es(Ce|0,Pe|0,rt|0,it|0)|0;T=I;Ne=((Be|0)<0)<<31>>31;et=Es(Be|0,Ne|0,Ce|0,Pe|0)|0;$e=I;Ge=Es(oe|0,se|0,v|0,r|0)|0;ze=I;Pe=Es(Y|0,X|0,Ce|0,Pe|0)|0;Ce=I;r=Es(st|0,ot|0,v|0,r|0)|0;v=I;it=Es(We|0,((We|0)<0)<<31>>31|0,rt|0,it|0)|0;rt=I;We=Es(Be|0,Ne|0,m|0,E|0)|0;Qe=I;De=Es(oe|0,se|0,m|0,E|0)|0;Me=I;ke=Es(Y|0,X|0,m|0,E|0)|0;Ee=I;E=Es(st|0,ot|0,m|0,E|0)|0;m=I;Ne=Es(Be|0,Ne|0,f|0,b|0)|0;Be=I;Ie=Es(oe|0,se|0,f|0,b|0)|0;Se=I;pe=Es(Y|0,X|0,pe|0,((pe|0)<0)<<31>>31|0)|0;he=I;b=Es(st|0,ot|0,f|0,b|0)|0;f=I;ge=Es(oe|0,se|0,me|0,ge|0)|0;me=I;se=Es(Y|0,X|0,A|0,c|0)|0;oe=I;c=Es(st|0,ot|0,A|0,c|0)|0;A=I;X=Es(Y|0,X|0,s|0,a|0)|0;Y=I;a=Es(st|0,ot|0,s|0,a|0)|0;s=I;t=Es(st|0,ot|0,g|0,t|0)|0;g=I;tt=ks(it|0,rt|0,nt|0,tt|0)|0;$e=ks(tt|0,I|0,et|0,$e|0)|0;Je=ks($e|0,I|0,Ze|0,Je|0)|0;Ye=ks(Je|0,I|0,Xe|0,Ye|0)|0;y=ks(Ye|0,I|0,n|0,y|0)|0;n=I;He=ks(We|0,Qe|0,Ve|0,He|0)|0;ze=ks(He|0,I|0,Ge|0,ze|0)|0;qe=ks(ze|0,I|0,Ke|0,qe|0)|0;_=ks(qe|0,I|0,p|0,_|0)|0;p=I;je=ks(Fe|0,Le|0,Ue|0,je|0)|0;Be=ks(je|0,I|0,Ne|0,Be|0)|0;Me=ks(Be|0,I|0,De|0,Me|0)|0;Ce=ks(Me|0,I|0,Pe|0,Ce|0)|0;w=ks(Ce|0,I|0,i|0,w|0)|0;i=I;Te=ks(xe|0,Oe|0,Re|0,Te|0)|0;Se=ks(Te|0,I|0,Ie|0,Se|0)|0;Ee=ks(Se|0,I|0,ke|0,Ee|0)|0;v=ks(Ee|0,I|0,r|0,v|0)|0;r=I;_e=ks(we|0,Ae|0,ve|0,_e|0)|0;ye=ks(_e|0,I|0,be|0,ye|0)|0;me=ks(ye|0,I|0,ge|0,me|0)|0;he=ks(me|0,I|0,pe|0,he|0)|0;m=ks(he|0,I|0,E|0,m|0)|0;E=I;fe=ks(de|0,le|0,ue|0,fe|0)|0;ae=ks(fe|0,I|0,ce|0,ae|0)|0;oe=ks(ae|0,I|0,se|0,oe|0)|0;f=ks(oe|0,I|0,b|0,f|0)|0;b=I;te=ks(ie|0,re|0,ne|0,te|0)|0;$=ks(te|0,I|0,ee|0,$|0)|0;J=ks($|0,I|0,Z|0,J|0)|0;Y=ks(J|0,I|0,X|0,Y|0)|0;A=ks(Y|0,I|0,c|0,A|0)|0;c=I;H=ks(W|0,Q|0,V|0,H|0)|0;z=ks(H|0,I|0,G|0,z|0)|0;q=ks(z|0,I|0,K|0,q|0)|0;s=ks(q|0,I|0,a|0,s|0)|0;a=I;j=ks(F|0,L|0,U|0,j|0)|0;B=ks(j|0,I|0,N|0,B|0)|0;M=ks(B|0,I|0,D|0,M|0)|0;C=ks(M|0,I|0,P|0,C|0)|0;g=ks(C|0,I|0,t|0,g|0)|0;t=I;T=ks(x|0,O|0,R|0,T|0)|0;k=ks(T|0,I|0,S|0,k|0)|0;h=ks(k|0,I|0,d|0,h|0)|0;u=ks(h|0,I|0,l|0,u|0)|0;l=I;n=Cs(y|0,n|0,1)|0;y=I;p=Cs(_|0,p|0,1)|0;_=I;i=Cs(w|0,i|0,1)|0;w=I;r=Cs(v|0,r|0,1)|0;v=I;E=Cs(m|0,E|0,1)|0;m=I;b=Cs(f|0,b|0,1)|0;f=I;c=Cs(A|0,c|0,1)|0;A=I;a=Cs(s|0,a|0,1)|0;s=I;t=Cs(g|0,t|0,1)|0;g=I;l=Cs(u|0,l|0,1)|0;u=I;h=ks(n|0,y|0,33554432,0)|0;d=I;k=Os(h|0,d|0,26)|0;_=ks(k|0,I|0,p|0,_|0)|0;p=I;d=Ss(n|0,y|0,h&-67108864|0,d|0)|0;h=I;y=ks(E|0,m|0,33554432,0)|0;n=I;k=Os(y|0,n|0,26)|0;f=ks(k|0,I|0,b|0,f|0)|0;b=I;n=Ss(E|0,m|0,y&-67108864|0,n|0)|0;y=I;m=ks(_|0,p|0,16777216,0)|0;E=Os(m|0,I|0,25)|0;w=ks(E|0,I|0,i|0,w|0)|0;i=I;m=Ss(_|0,p|0,m&-33554432|0,0)|0;p=I;_=ks(f|0,b|0,16777216,0)|0;E=Os(_|0,I|0,25)|0;A=ks(E|0,I|0,c|0,A|0)|0;c=I;_=Ss(f|0,b|0,_&-33554432|0,0)|0;b=I;f=ks(w|0,i|0,33554432,0)|0;E=Os(f|0,I|0,26)|0;v=ks(E|0,I|0,r|0,v|0)|0;r=I;f=Ss(w|0,i|0,f&-67108864|0,0)|0;i=ks(A|0,c|0,33554432,0)|0;w=Os(i|0,I|0,26)|0;s=ks(w|0,I|0,a|0,s|0)|0;a=I;i=Ss(A|0,c|0,i&-67108864|0,0)|0;c=ks(v|0,r|0,16777216,0)|0;A=Os(c|0,I|0,25)|0;y=ks(A|0,I|0,n|0,y|0)|0;n=I;c=Ss(v|0,r|0,c&-33554432|0,0)|0;r=ks(s|0,a|0,16777216,0)|0;v=Os(r|0,I|0,25)|0;g=ks(v|0,I|0,t|0,g|0)|0;t=I;r=Ss(s|0,a|0,r&-33554432|0,0)|0;a=ks(y|0,n|0,33554432,0)|0;s=xs(a|0,I|0,26)|0;s=ks(_|0,b|0,s|0,I|0)|0;a=Ss(y|0,n|0,a&-67108864|0,0)|0;n=ks(g|0,t|0,33554432,0)|0;y=Os(n|0,I|0,26)|0;u=ks(y|0,I|0,l|0,u|0)|0;l=I;n=Ss(g|0,t|0,n&-67108864|0,0)|0;t=ks(u|0,l|0,16777216,0)|0;g=Os(t|0,I|0,25)|0;g=Es(g|0,I|0,19,0)|0;h=ks(g|0,I|0,d|0,h|0)|0;d=I;t=Ss(u|0,l|0,t&-33554432|0,0)|0;l=ks(h|0,d|0,33554432,0)|0;u=xs(l|0,I|0,26)|0;u=ks(m|0,p|0,u|0,I|0)|0;l=Ss(h|0,d|0,l&-67108864|0,0)|0;o[e>>2]=l;o[e+4>>2]=u;o[e+8>>2]=f;o[e+12>>2]=c;o[e+16>>2]=a;o[e+20>>2]=s;o[e+24>>2]=i;o[e+28>>2]=r;o[e+32>>2]=n;o[e+36>>2]=t;return}function ei(e){e=e|0;var t=0,n=0,i=0,o=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0,ce=0,fe=0,ue=0,le=0,de=0,he=0,pe=0,me=0,ge=0,ye=0,be=0,_e=0,ve=0,Ae=0,we=0,Ee=0,ke=0,Se=0,Ie=0,Te=0,Re=0,Oe=0,xe=0,Ce=0,Pe=0,Me=0,De=0,Be=0,Ne=0,je=0,Ue=0,Le=0,Fe=0,qe=0,Ke=0,ze=0,Ge=0,He=0,Ve=0,Qe=0,We=0,Ye=0,Xe=0,Je=0,Ze=0,$e=0,et=0,tt=0,nt=0,rt=0,it=0,ot=0,st=0;de=e+1|0;fe=e+2|0;K=r[fe>>0]|0;we=s[e>>0]|0;P=Cs(s[de>>0]|0|0,0,8)|0;_e=I;K=K&255;ve=Cs(K|0,0,16)|0;ce=e+3|0;A=Cs(s[ce>>0]|0|0,0,8)|0;te=I;ie=e+4|0;Z=Cs(s[ie>>0]|0|0,0,16)|0;te=te|I;re=e+5|0;q=s[re>>0]|0;$=Cs(q|0,0,24)|0;te=xs(A|K|Z|$|0,te|I|0,5)|0;$=e+6|0;Z=e+7|0;K=r[Z>>0]|0;A=Cs(s[$>>0]|0|0,0,8)|0;Re=I;K=K&255;J=Cs(K|0,0,16)|0;Re=xs(A|q|J|0,Re|I|0,2)|0;J=e+8|0;q=Cs(s[J>>0]|0|0,0,8)|0;A=I;Q=e+9|0;Te=Cs(s[Q>>0]|0|0,0,16)|0;A=A|I;V=e+10|0;Ve=s[V>>0]|0;H=Cs(Ve|0,0,24)|0;A=xs(q|K|Te|H|0,A|I|0,7)|0;H=e+11|0;Te=Cs(s[H>>0]|0|0,0,8)|0;K=I;q=e+12|0;B=Cs(s[q>>0]|0|0,0,16)|0;K=K|I;F=e+13|0;w=s[F>>0]|0;N=Cs(w|0,0,24)|0;K=xs(Te|Ve|B|N|0,K|I|0,4)|0;N=e+14|0;B=e+15|0;Ve=r[B>>0]|0;Te=Cs(s[N>>0]|0|0,0,8)|0;ye=I;Ve=Ve&255;D=Cs(Ve|0,0,16)|0;ye=xs(Te|w|D|0,ye|I|0,1)|0;D=e+16|0;w=Cs(s[D>>0]|0|0,0,8)|0;Te=I;x=e+17|0;k=Cs(s[x>>0]|0|0,0,16)|0;Te=Te|I;O=e+18|0;E=s[O>>0]|0;R=Cs(E|0,0,24)|0;Te=xs(w|Ve|k|R|0,Te|I|0,6)|0;R=e+19|0;k=e+20|0;Ve=r[k>>0]|0;w=Cs(s[R>>0]|0|0,0,8)|0;Qe=I;Ve=Cs(Ve&255|0,0,16)|0;Qe=xs(w|E|Ve|0,Qe|I|0,3)|0;Ve=I;E=e+21|0;w=e+22|0;_=e+23|0;n=r[_>>0]|0;et=s[E>>0]|0;tt=Cs(s[w>>0]|0|0,0,8)|0;Ze=I;n=n&255;$e=Cs(n|0,0,16)|0;b=e+24|0;Ue=Cs(s[b>>0]|0|0,0,8)|0;ze=I;p=e+25|0;c=Cs(s[p>>0]|0|0,0,16)|0;ze=ze|I;h=e+26|0;pe=s[h>>0]|0;f=Cs(pe|0,0,24)|0;ze=xs(Ue|n|c|f|0,ze|I|0,5)|0;f=e+27|0;c=e+28|0;n=r[c>>0]|0;Ue=Cs(s[f>>0]|0|0,0,8)|0;Je=I;n=n&255;a=Cs(n|0,0,16)|0;Je=xs(Ue|pe|a|0,Je|I|0,2)|0;a=e+29|0;pe=Cs(s[a>>0]|0|0,0,8)|0;Ue=I;o=e+30|0;ot=Cs(s[o>>0]|0|0,0,16)|0;Ue=Ue|I;t=e+31|0;ne=s[t>>0]|0;u=Cs(ne|0,0,24)|0;Ue=xs(pe|n|ot|u|0,Ue|I|0,7)|0;u=Cs(s[e+32>>0]|0|0,0,8)|0;ot=I;n=Cs(s[e+33>>0]|0|0,0,16)|0;ot=ot|I;pe=s[e+34>>0]|0;g=Cs(pe|0,0,24)|0;ot=xs(u|ne|n|g|0,ot|I|0,4)|0;g=r[e+36>>0]|0;n=Cs(s[e+35>>0]|0|0,0,8)|0;ne=I;g=g&255;u=Cs(g|0,0,16)|0;ne=xs(n|pe|u|0,ne|I|0,1)|0;u=Cs(s[e+37>>0]|0|0,0,8)|0;pe=I;n=Cs(s[e+38>>0]|0|0,0,16)|0;pe=pe|I;Fe=s[e+39>>0]|0;ee=Cs(Fe|0,0,24)|0;pe=xs(u|g|n|ee|0,pe|I|0,6)|0;ee=r[e+41>>0]|0;n=Cs(s[e+40>>0]|0|0,0,8)|0;g=I;ee=Cs(ee&255|0,0,16)|0;g=xs(n|Fe|ee|0,g|I|0,3)|0;ee=I;Fe=r[e+44>>0]|0;n=s[e+42>>0]|0;u=Cs(s[e+43>>0]|0|0,0,8)|0;j=I;Fe=Fe&255;y=Cs(Fe|0,0,16)|0;S=Cs(s[e+45>>0]|0|0,0,8)|0;oe=I;Ce=Cs(s[e+46>>0]|0|0,0,16)|0;oe=oe|I;st=s[e+47>>0]|0;U=Cs(st|0,0,24)|0;oe=xs(S|Fe|Ce|U|0,oe|I|0,5)|0;U=r[e+49>>0]|0;Ce=Cs(s[e+48>>0]|0|0,0,8)|0;Fe=I;U=U&255;S=Cs(U|0,0,16)|0;Fe=xs(Ce|st|S|0,Fe|I|0,2)|0;Fe=Fe&2097151;S=Cs(s[e+50>>0]|0|0,0,8)|0;st=I;Ce=Cs(s[e+51>>0]|0|0,0,16)|0;st=st|I;ue=s[e+52>>0]|0;L=Cs(ue|0,0,24)|0;st=xs(S|U|Ce|L|0,st|I|0,7)|0;st=st&2097151;L=Cs(s[e+53>>0]|0|0,0,8)|0;Ce=I;U=Cs(s[e+54>>0]|0|0,0,16)|0;Ce=Ce|I;S=s[e+55>>0]|0;W=Cs(S|0,0,24)|0;Ce=xs(L|ue|U|W|0,Ce|I|0,4)|0;Ce=Ce&2097151;W=r[e+57>>0]|0;U=Cs(s[e+56>>0]|0|0,0,8)|0;ue=I;W=W&255;L=Cs(W|0,0,16)|0;ue=xs(U|S|L|0,ue|I|0,1)|0;ue=ue&2097151;L=Cs(s[e+58>>0]|0|0,0,8)|0;S=I;U=Cs(s[e+59>>0]|0|0,0,16)|0;S=S|I;he=s[e+60>>0]|0;ge=Cs(he|0,0,24)|0;S=xs(L|W|U|ge|0,S|I|0,6)|0;S=S&2097151;ge=Cs(s[e+61>>0]|0|0,0,8)|0;U=I;W=Cs(s[e+62>>0]|0|0,0,16)|0;U=U|I;L=Cs(s[e+63>>0]|0|0,0,24)|0;U=xs(ge|he|W|L|0,U|I|0,3)|0;L=I;W=Es(U|0,L|0,666643,0)|0;he=I;ge=Es(U|0,L|0,470296,0)|0;ae=I;v=Es(U|0,L|0,654183,0)|0;C=I;Ae=Es(U|0,L|0,-997805,-1)|0;Ie=I;d=Es(U|0,L|0,136657,0)|0;Se=I;L=Es(U|0,L|0,-683901,-1)|0;j=ks(L|0,I|0,u|n|y&2031616|0,j|0)|0;y=I;n=Es(S|0,0,666643,0)|0;u=I;L=Es(S|0,0,470296,0)|0;U=I;Ye=Es(S|0,0,654183,0)|0;M=I;Y=Es(S|0,0,-997805,-1)|0;z=I;ke=Es(S|0,0,136657,0)|0;me=I;S=Es(S|0,0,-683901,-1)|0;G=I;Oe=Es(ue|0,0,666643,0)|0;Ee=I;se=Es(ue|0,0,470296,0)|0;Le=I;Me=Es(ue|0,0,654183,0)|0;Pe=I;nt=Es(ue|0,0,-997805,-1)|0;We=I;l=Es(ue|0,0,136657,0)|0;m=I;ue=Es(ue|0,0,-683901,-1)|0;pe=ks(ue|0,I|0,pe&2097151|0,0)|0;me=ks(pe|0,I|0,ke|0,me|0)|0;Ie=ks(me|0,I|0,Ae|0,Ie|0)|0;Ae=I;me=Es(Ce|0,0,666643,0)|0;ke=I;pe=Es(Ce|0,0,470296,0)|0;ue=I;be=Es(Ce|0,0,654183,0)|0;X=I;Be=Es(Ce|0,0,-997805,-1)|0;De=I;it=Es(Ce|0,0,136657,0)|0;rt=I;Ce=Es(Ce|0,0,-683901,-1)|0;xe=I;i=Es(st|0,0,666643,0)|0;T=I;Ge=Es(st|0,0,470296,0)|0;He=I;Ke=Es(st|0,0,654183,0)|0;qe=I;Xe=Es(st|0,0,-997805,-1)|0;le=I;je=Es(st|0,0,136657,0)|0;Ne=I;st=Es(st|0,0,-683901,-1)|0;ot=ks(st|0,I|0,ot&2097151|0,0)|0;rt=ks(ot|0,I|0,it|0,rt|0)|0;We=ks(rt|0,I|0,nt|0,We|0)|0;M=ks(We|0,I|0,Ye|0,M|0)|0;ae=ks(M|0,I|0,ge|0,ae|0)|0;ge=I;M=Es(Fe|0,0,666643,0)|0;Te=ks(M|0,I|0,Te&2097151|0,0)|0;M=I;Ye=Es(Fe|0,0,470296,0)|0;We=I;nt=Es(Fe|0,0,654183,0)|0;Ze=ks(nt|0,I|0,tt|et|$e&2031616|0,Ze|0)|0;He=ks(Ze|0,I|0,Ge|0,He|0)|0;ke=ks(He|0,I|0,me|0,ke|0)|0;me=I;He=Es(Fe|0,0,-997805,-1)|0;Ge=I;Ze=Es(Fe|0,0,136657,0)|0;Je=ks(Ze|0,I|0,Je&2097151|0,0)|0;le=ks(Je|0,I|0,Xe|0,le|0)|0;X=ks(le|0,I|0,be|0,X|0)|0;Le=ks(X|0,I|0,se|0,Le|0)|0;u=ks(Le|0,I|0,n|0,u|0)|0;n=I;Fe=Es(Fe|0,0,-683901,-1)|0;Le=I;se=ks(Te|0,M|0,1048576,0)|0;X=I;be=xs(se|0,X|0,21)|0;le=I;Ve=ks(Ye|0,We|0,Qe|0,Ve|0)|0;le=ks(Ve|0,I|0,be|0,le|0)|0;T=ks(le|0,I|0,i|0,T|0)|0;i=I;X=Ss(Te|0,M|0,se&-2097152|0,X&2047|0)|0;se=I;M=ks(ke|0,me|0,1048576,0)|0;Te=I;le=xs(M|0,Te|0,21)|0;be=I;ze=ks(He|0,Ge|0,ze&2097151|0,0)|0;qe=ks(ze|0,I|0,Ke|0,qe|0)|0;ue=ks(qe|0,I|0,pe|0,ue|0)|0;Ee=ks(ue|0,I|0,Oe|0,Ee|0)|0;be=ks(Ee|0,I|0,le|0,be|0)|0;le=I;Ee=ks(u|0,n|0,1048576,0)|0;Oe=I;ue=Os(Ee|0,Oe|0,21)|0;pe=I;Ue=ks(Fe|0,Le|0,Ue&2097151|0,0)|0;Ne=ks(Ue|0,I|0,je|0,Ne|0)|0;De=ks(Ne|0,I|0,Be|0,De|0)|0;Pe=ks(De|0,I|0,Me|0,Pe|0)|0;U=ks(Pe|0,I|0,L|0,U|0)|0;he=ks(U|0,I|0,W|0,he|0)|0;pe=ks(he|0,I|0,ue|0,pe|0)|0;ue=I;he=ks(ae|0,ge|0,1048576,0)|0;W=I;U=Os(he|0,W|0,21)|0;L=I;ne=ks(Ce|0,xe|0,ne&2097151|0,0)|0;m=ks(ne|0,I|0,l|0,m|0)|0;z=ks(m|0,I|0,Y|0,z|0)|0;C=ks(z|0,I|0,v|0,C|0)|0;L=ks(C|0,I|0,U|0,L|0)|0;U=I;W=Ss(ae|0,ge|0,he&-2097152|0,W|0)|0;he=I;ge=ks(Ie|0,Ae|0,1048576,0)|0;ae=I;C=Os(ge|0,ae|0,21)|0;v=I;ee=ks(S|0,G|0,g|0,ee|0)|0;Se=ks(ee|0,I|0,d|0,Se|0)|0;v=ks(Se|0,I|0,C|0,v|0)|0;C=I;ae=Ss(Ie|0,Ae|0,ge&-2097152|0,ae|0)|0;ge=I;Ae=ks(j|0,y|0,1048576,0)|0;Ie=I;Se=Os(Ae|0,Ie|0,21)|0;oe=ks(Se|0,I|0,oe&2097151|0,0)|0;Se=I;Ie=Ss(j|0,y|0,Ae&-2097152|0,Ie|0)|0;Ae=I;y=ks(T|0,i|0,1048576,0)|0;j=I;d=xs(y|0,j|0,21)|0;ee=I;j=Ss(T|0,i|0,y&-2097152|0,j|0)|0;y=I;i=ks(be|0,le|0,1048576,0)|0;T=I;g=Os(i|0,T|0,21)|0;G=I;T=Ss(be|0,le|0,i&-2097152|0,T|0)|0;i=I;le=ks(pe|0,ue|0,1048576,0)|0;be=I;S=Os(le|0,be|0,21)|0;he=ks(S|0,I|0,W|0,he|0)|0;W=I;be=Ss(pe|0,ue|0,le&-2097152|0,be|0)|0;le=I;ue=ks(L|0,U|0,1048576,0)|0;pe=I;S=Os(ue|0,pe|0,21)|0;ge=ks(S|0,I|0,ae|0,ge|0)|0;ae=I;pe=Ss(L|0,U|0,ue&-2097152|0,pe|0)|0;ue=I;U=ks(v|0,C|0,1048576,0)|0;L=I;S=Os(U|0,L|0,21)|0;Ae=ks(S|0,I|0,Ie|0,Ae|0)|0;Ie=I;L=Ss(v|0,C|0,U&-2097152|0,L|0)|0;U=I;C=Es(oe|0,Se|0,666643,0)|0;ye=ks(C|0,I|0,ye&2097151|0,0)|0;C=I;v=Es(oe|0,Se|0,470296,0)|0;v=ks(X|0,se|0,v|0,I|0)|0;se=I;X=Es(oe|0,Se|0,654183,0)|0;X=ks(j|0,y|0,X|0,I|0)|0;y=I;j=Es(oe|0,Se|0,-997805,-1)|0;S=I;z=Es(oe|0,Se|0,136657,0)|0;z=ks(T|0,i|0,z|0,I|0)|0;i=I;Se=Es(oe|0,Se|0,-683901,-1)|0;oe=I;G=ks(u|0,n|0,g|0,G|0)|0;Oe=Ss(G|0,I|0,Ee&-2097152|0,Oe|0)|0;oe=ks(Oe|0,I|0,Se|0,oe|0)|0;Se=I;Oe=Es(Ae|0,Ie|0,666643,0)|0;K=ks(Oe|0,I|0,K&2097151|0,0)|0;Oe=I;Ee=Es(Ae|0,Ie|0,470296,0)|0;Ee=ks(ye|0,C|0,Ee|0,I|0)|0;C=I;ye=Es(Ae|0,Ie|0,654183,0)|0;ye=ks(v|0,se|0,ye|0,I|0)|0;se=I;v=Es(Ae|0,Ie|0,-997805,-1)|0;v=ks(X|0,y|0,v|0,I|0)|0;y=I;X=Es(Ae|0,Ie|0,136657,0)|0;G=I;Ie=Es(Ae|0,Ie|0,-683901,-1)|0;Ie=ks(z|0,i|0,Ie|0,I|0)|0;i=I;z=Es(L|0,U|0,666643,0)|0;A=ks(z|0,I|0,A&2097151|0,0)|0;z=I;Ae=Es(L|0,U|0,470296,0)|0;Ae=ks(K|0,Oe|0,Ae|0,I|0)|0;Oe=I;K=Es(L|0,U|0,654183,0)|0;K=ks(Ee|0,C|0,K|0,I|0)|0;C=I;Ee=Es(L|0,U|0,-997805,-1)|0;Ee=ks(ye|0,se|0,Ee|0,I|0)|0;se=I;ye=Es(L|0,U|0,136657,0)|0;ye=ks(v|0,y|0,ye|0,I|0)|0;y=I;U=Es(L|0,U|0,-683901,-1)|0;L=I;ee=ks(ke|0,me|0,d|0,ee|0)|0;Te=Ss(ee|0,I|0,M&-2097152|0,Te|0)|0;S=ks(Te|0,I|0,j|0,S|0)|0;G=ks(S|0,I|0,X|0,G|0)|0;L=ks(G|0,I|0,U|0,L|0)|0;U=I;G=Es(ge|0,ae|0,666643,0)|0;X=I;S=Es(ge|0,ae|0,470296,0)|0;j=I;Te=Es(ge|0,ae|0,654183,0)|0;M=I;ee=Es(ge|0,ae|0,-997805,-1)|0;d=I;me=Es(ge|0,ae|0,136657,0)|0;me=ks(Ee|0,se|0,me|0,I|0)|0;se=I;ae=Es(ge|0,ae|0,-683901,-1)|0;ae=ks(ye|0,y|0,ae|0,I|0)|0;y=I;ye=Es(pe|0,ue|0,666643,0)|0;ge=I;Ee=Es(pe|0,ue|0,470296,0)|0;ke=I;v=Es(pe|0,ue|0,654183,0)|0;g=I;n=Es(pe|0,ue|0,-997805,-1)|0;u=I;T=Es(pe|0,ue|0,136657,0)|0;Y=I;ue=Es(pe|0,ue|0,-683901,-1)|0;ue=ks(me|0,se|0,ue|0,I|0)|0;se=I;me=Es(he|0,W|0,666643,0)|0;_e=ks(me|0,I|0,P|we|ve&2031616|0,_e|0)|0;ve=I;we=Es(he|0,W|0,470296,0)|0;P=I;me=Es(he|0,W|0,654183,0)|0;Re=ks(me|0,I|0,Re&2097151|0,0)|0;X=ks(Re|0,I|0,G|0,X|0)|0;ke=ks(X|0,I|0,Ee|0,ke|0)|0;Ee=I;X=Es(he|0,W|0,-997805,-1)|0;G=I;Re=Es(he|0,W|0,136657,0)|0;Re=ks(Ae|0,Oe|0,Re|0,I|0)|0;M=ks(Re|0,I|0,Te|0,M|0)|0;u=ks(M|0,I|0,n|0,u|0)|0;n=I;W=Es(he|0,W|0,-683901,-1)|0;he=I;M=ks(_e|0,ve|0,1048576,0)|0;Te=I;Re=Os(M|0,Te|0,21)|0;Oe=I;te=ks(we|0,P|0,te&2097151|0,0)|0;ge=ks(te|0,I|0,ye|0,ge|0)|0;Oe=ks(ge|0,I|0,Re|0,Oe|0)|0;Re=I;Te=Ss(_e|0,ve|0,M&-2097152|0,Te|0)|0;M=I;ve=ks(ke|0,Ee|0,1048576,0)|0;_e=I;ge=Os(ve|0,_e|0,21)|0;ye=I;G=ks(A|0,z|0,X|0,G|0)|0;j=ks(G|0,I|0,S|0,j|0)|0;g=ks(j|0,I|0,v|0,g|0)|0;ye=ks(g|0,I|0,ge|0,ye|0)|0;ge=I;g=ks(u|0,n|0,1048576,0)|0;v=I;j=Os(g|0,v|0,21)|0;S=I;he=ks(K|0,C|0,W|0,he|0)|0;d=ks(he|0,I|0,ee|0,d|0)|0;Y=ks(d|0,I|0,T|0,Y|0)|0;S=ks(Y|0,I|0,j|0,S|0)|0;j=I;Y=ks(ue|0,se|0,1048576,0)|0;T=I;d=Os(Y|0,T|0,21)|0;d=ks(ae|0,y|0,d|0,I|0)|0;y=I;T=Ss(ue|0,se|0,Y&-2097152|0,T|0)|0;Y=I;se=ks(L|0,U|0,1048576,0)|0;ue=I;ae=Os(se|0,ue|0,21)|0;ae=ks(Ie|0,i|0,ae|0,I|0)|0;i=I;ue=Ss(L|0,U|0,se&-2097152|0,ue|0)|0;se=I;U=ks(oe|0,Se|0,1048576,0)|0;L=I;Ie=Os(U|0,L|0,21)|0;Ie=ks(be|0,le|0,Ie|0,I|0)|0;le=I;L=Ss(oe|0,Se|0,U&-2097152|0,L|0)|0;U=I;Se=ks(Oe|0,Re|0,1048576,0)|0;oe=I;be=Os(Se|0,oe|0,21)|0;ee=I;he=ks(ye|0,ge|0,1048576,0)|0;W=I;C=Os(he|0,W|0,21)|0;K=I;G=ks(S|0,j|0,1048576,0)|0;X=I;z=Os(G|0,X|0,21)|0;z=ks(T|0,Y|0,z|0,I|0)|0;Y=I;T=ks(d|0,y|0,1048576,0)|0;A=I;te=Os(T|0,A|0,21)|0;te=ks(ue|0,se|0,te|0,I|0)|0;se=I;A=Ss(d|0,y|0,T&-2097152|0,A|0)|0;T=I;y=ks(ae|0,i|0,1048576,0)|0;d=I;ue=Os(y|0,d|0,21)|0;ue=ks(L|0,U|0,ue|0,I|0)|0;U=I;d=Ss(ae|0,i|0,y&-2097152|0,d|0)|0;y=I;i=ks(Ie|0,le|0,1048576,0)|0;ae=I;L=Os(i|0,ae|0,21)|0;P=I;ae=Ss(Ie|0,le|0,i&-2097152|0,ae|0)|0;i=I;le=Es(L|0,P|0,666643,0)|0;le=ks(Te|0,M|0,le|0,I|0)|0;M=I;Te=Es(L|0,P|0,470296,0)|0;Ie=I;we=Es(L|0,P|0,654183,0)|0;Ae=I;me=Es(L|0,P|0,-997805,-1)|0;pe=I;m=Es(L|0,P|0,136657,0)|0;l=I;P=Es(L|0,P|0,-683901,-1)|0;L=I;M=Os(le|0,M|0,21)|0;ne=I;Ie=ks(Oe|0,Re|0,Te|0,Ie|0)|0;oe=Ss(Ie|0,I|0,Se&-2097152|0,oe|0)|0;ne=ks(oe|0,I|0,M|0,ne|0)|0;M=Os(ne|0,I|0,21)|0;oe=I;Ae=ks(ke|0,Ee|0,we|0,Ae|0)|0;_e=Ss(Ae|0,I|0,ve&-2097152|0,_e|0)|0;ee=ks(_e|0,I|0,be|0,ee|0)|0;oe=ks(ee|0,I|0,M|0,oe|0)|0;M=Os(oe|0,I|0,21)|0;ee=I;pe=ks(ye|0,ge|0,me|0,pe|0)|0;W=Ss(pe|0,I|0,he&-2097152|0,W|0)|0;ee=ks(W|0,I|0,M|0,ee|0)|0;M=Os(ee|0,I|0,21)|0;W=I;l=ks(u|0,n|0,m|0,l|0)|0;v=Ss(l|0,I|0,g&-2097152|0,v|0)|0;K=ks(v|0,I|0,C|0,K|0)|0;W=ks(K|0,I|0,M|0,W|0)|0;M=Os(W|0,I|0,21)|0;K=I;L=ks(S|0,j|0,P|0,L|0)|0;X=Ss(L|0,I|0,G&-2097152|0,X|0)|0;K=ks(X|0,I|0,M|0,K|0)|0;M=Os(K|0,I|0,21)|0;M=ks(z|0,Y|0,M|0,I|0)|0;Y=Os(M|0,I|0,21)|0;T=ks(Y|0,I|0,A|0,T|0)|0;A=Os(T|0,I|0,21)|0;A=ks(te|0,se|0,A|0,I|0)|0;se=Os(A|0,I|0,21)|0;y=ks(se|0,I|0,d|0,y|0)|0;d=Os(y|0,I|0,21)|0;d=ks(ue|0,U|0,d|0,I|0)|0;U=Os(d|0,I|0,21)|0;i=ks(U|0,I|0,ae|0,i|0)|0;ae=Os(i|0,I|0,21)|0;U=I;ue=Es(ae|0,U|0,666643,0)|0;le=ks(ue|0,I|0,le&2097151|0,0)|0;ue=I;se=Es(ae|0,U|0,470296,0)|0;ne=ks(se|0,I|0,ne&2097151|0,0)|0;se=I;te=Es(ae|0,U|0,654183,0)|0;oe=ks(te|0,I|0,oe&2097151|0,0)|0;te=I;Y=Es(ae|0,U|0,-997805,-1)|0;ee=ks(Y|0,I|0,ee&2097151|0,0)|0;Y=I;z=Es(ae|0,U|0,136657,0)|0;W=ks(z|0,I|0,W&2097151|0,0)|0;z=I;U=Es(ae|0,U|0,-683901,-1)|0;K=ks(U|0,I|0,K&2097151|0,0)|0;U=I;ae=Os(le|0,ue|0,21)|0;ae=ks(ne|0,se|0,ae|0,I|0)|0;se=I;ne=Os(ae|0,se|0,21)|0;ne=ks(oe|0,te|0,ne|0,I|0)|0;te=I;oe=ae&2097151;X=Os(ne|0,te|0,21)|0;X=ks(ee|0,Y|0,X|0,I|0)|0;Y=I;ee=ne&2097151;G=Os(X|0,Y|0,21)|0;G=ks(W|0,z|0,G|0,I|0)|0;z=I;W=X&2097151;L=Os(G|0,z|0,21)|0;L=ks(K|0,U|0,L|0,I|0)|0;U=I;K=G&2097151;P=Os(L|0,U|0,21)|0;M=ks(P|0,I|0,M&2097151|0,0)|0;P=I;j=L&2097151;S=Os(M|0,P|0,21)|0;T=ks(S|0,I|0,T&2097151|0,0)|0;S=I;C=M&2097151;v=Os(T|0,S|0,21)|0;A=ks(v|0,I|0,A&2097151|0,0)|0;v=I;g=Os(A|0,v|0,21)|0;y=ks(g|0,I|0,y&2097151|0,0)|0;g=I;l=Os(y|0,g|0,21)|0;d=ks(l|0,I|0,d&2097151|0,0)|0;l=I;m=y&2097151;n=Os(d|0,l|0,21)|0;i=ks(n|0,I|0,i&2097151|0,0)|0;n=I;u=d&2097151;r[e>>0]=le;e=xs(le|0,ue|0,8)|0;r[de>>0]=e;e=xs(le|0,ue|0,16)|0;ue=Cs(oe|0,0,5)|0;r[fe>>0]=ue|e&31;e=xs(ae|0,se|0,3)|0;r[ce>>0]=e;e=xs(ae|0,se|0,11)|0;r[ie>>0]=e;e=xs(oe|0,0,19)|0;oe=I;ie=Cs(ee|0,0,2)|0;r[re>>0]=ie|e;e=xs(ne|0,te|0,6)|0;r[$>>0]=e;e=xs(ee|0,0,14)|0;ee=I;$=Cs(W|0,0,7)|0;r[Z>>0]=$|e;e=xs(X|0,Y|0,1)|0;r[J>>0]=e;e=xs(X|0,Y|0,9)|0;r[Q>>0]=e;e=xs(W|0,0,17)|0;W=I;Q=Cs(K|0,0,4)|0;r[V>>0]=Q|e;e=xs(G|0,z|0,4)|0;r[H>>0]=e;e=xs(G|0,z|0,12)|0;r[q>>0]=e;e=xs(K|0,0,20)|0;K=I;q=Cs(j|0,0,1)|0;r[F>>0]=q|e;e=xs(L|0,U|0,7)|0;r[N>>0]=e;e=xs(j|0,0,15)|0;j=I;N=Cs(C|0,0,6)|0;r[B>>0]=N|e;e=xs(M|0,P|0,2)|0;r[D>>0]=e;e=xs(M|0,P|0,10)|0;r[x>>0]=e;e=xs(C|0,0,18)|0;C=I;x=Cs(T|0,S|0,3)|0;r[O>>0]=x|e;e=xs(T|0,S|0,5)|0;r[R>>0]=e;e=xs(T|0,S|0,13)|0;r[k>>0]=e;r[E>>0]=A;e=xs(A|0,v|0,8)|0;r[w>>0]=e;e=xs(A|0,v|0,16)|0;v=Cs(m|0,0,5)|0;r[_>>0]=v|e&31;e=xs(y|0,g|0,3)|0;r[b>>0]=e;e=xs(y|0,g|0,11)|0;r[p>>0]=e;e=xs(m|0,0,19)|0;m=I;p=Cs(u|0,0,2)|0;r[h>>0]=p|e;e=xs(d|0,l|0,6)|0;r[f>>0]=e;e=xs(u|0,0,14)|0;u=I;f=Cs(i|0,n|0,7)|0;r[c>>0]=f|e;e=xs(i|0,n|0,1)|0;r[a>>0]=e;e=xs(i|0,n|0,9)|0;r[o>>0]=e;e=Os(i|0,n|0,17)|0;r[t>>0]=e;return}function ti(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var o=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0,ce=0,fe=0,ue=0,le=0,de=0,he=0,pe=0,me=0,ge=0,ye=0,be=0,_e=0,ve=0,Ae=0,we=0,Ee=0,ke=0,Se=0,Ie=0,Te=0,Re=0,Oe=0,xe=0,Ce=0,Pe=0,Me=0,De=0,Be=0,Ne=0,je=0,Ue=0,Le=0,Fe=0,qe=0,Ke=0,ze=0,Ge=0,He=0,Ve=0,Qe=0,We=0,Ye=0,Xe=0,Je=0,Ze=0,$e=0,et=0,tt=0,nt=0,rt=0,it=0,ot=0,st=0,at=0,ct=0,ft=0,ut=0,lt=0,dt=0,ht=0,pt=0,mt=0,gt=0,yt=0,bt=0,_t=0,vt=0,At=0,wt=0,Et=0,kt=0,St=0,It=0,Tt=0,Rt=0,Ot=0,xt=0,Ct=0,Pt=0,Mt=0,Dt=0,Bt=0,Nt=0,jt=0,Ut=0,Lt=0,Ft=0,qt=0,Kt=0,zt=0,Gt=0,Ht=0,Vt=0,Qt=0,Wt=0,Yt=0,Xt=0,Jt=0,Zt=0,$t=0,en=0,tn=0,nn=0,rn=0,on=0,sn=0,an=0,cn=0,fn=0,un=0,ln=0,dn=0,hn=0,pn=0,mn=0,gn=0,yn=0,bn=0,_n=0,vn=0,An=0,wn=0;ot=r[t+2>>0]|0;pe=s[t>>0]|0;pt=Cs(s[t+1>>0]|0|0,0,8)|0;Ue=I;ot=ot&255;Le=Cs(ot|0,0,16)|0;Le=pt|pe|Le&2031616;pe=Cs(s[t+3>>0]|0|0,0,8)|0;pt=I;$e=Cs(s[t+4>>0]|0|0,0,16)|0;pt=pt|I;ht=s[t+5>>0]|0;L=Cs(ht|0,0,24)|0;pt=xs(pe|ot|$e|L|0,pt|I|0,5)|0;pt=pt&2097151;L=r[t+7>>0]|0;$e=Cs(s[t+6>>0]|0|0,0,8)|0;ot=I;L=L&255;pe=Cs(L|0,0,16)|0;ot=xs($e|ht|pe|0,ot|I|0,2)|0;ot=ot&2097151;pe=Cs(s[t+8>>0]|0|0,0,8)|0;ht=I;$e=Cs(s[t+9>>0]|0|0,0,16)|0;ht=ht|I;G=s[t+10>>0]|0;B=Cs(G|0,0,24)|0;ht=xs(pe|L|$e|B|0,ht|I|0,7)|0;ht=ht&2097151;B=Cs(s[t+11>>0]|0|0,0,8)|0;$e=I;L=Cs(s[t+12>>0]|0|0,0,16)|0;$e=$e|I;pe=s[t+13>>0]|0;m=Cs(pe|0,0,24)|0;$e=xs(B|G|L|m|0,$e|I|0,4)|0;$e=$e&2097151;m=r[t+15>>0]|0;L=Cs(s[t+14>>0]|0|0,0,8)|0;G=I;m=m&255;B=Cs(m|0,0,16)|0;G=xs(L|pe|B|0,G|I|0,1)|0;G=G&2097151;B=Cs(s[t+16>>0]|0|0,0,8)|0;pe=I;L=Cs(s[t+17>>0]|0|0,0,16)|0;pe=pe|I;N=s[t+18>>0]|0;l=Cs(N|0,0,24)|0;pe=xs(B|m|L|l|0,pe|I|0,6)|0;pe=pe&2097151;l=r[t+20>>0]|0;L=Cs(s[t+19>>0]|0|0,0,8)|0;m=I;l=Cs(l&255|0,0,16)|0;m=xs(L|N|l|0,m|I|0,3)|0;l=I;N=r[t+23>>0]|0;L=s[t+21>>0]|0;B=Cs(s[t+22>>0]|0|0,0,8)|0;z=I;N=N&255;x=Cs(N|0,0,16)|0;x=B|L|x&2031616;L=Cs(s[t+24>>0]|0|0,0,8)|0;B=I;Je=Cs(s[t+25>>0]|0|0,0,16)|0;B=B|I;ge=s[t+26>>0]|0;E=Cs(ge|0,0,24)|0;B=xs(L|N|Je|E|0,B|I|0,5)|0;B=B&2097151;E=r[t+28>>0]|0;Je=Cs(s[t+27>>0]|0|0,0,8)|0;N=I;E=E&255;L=Cs(E|0,0,16)|0;N=xs(Je|ge|L|0,N|I|0,2)|0;N=N&2097151;L=Cs(s[t+29>>0]|0|0,0,8)|0;ge=I;Je=Cs(s[t+30>>0]|0|0,0,16)|0;ge=ge|I;ye=Cs(s[t+31>>0]|0|0,0,24)|0;ge=xs(L|E|Je|ye|0,ge|I|0,7)|0;ye=I;Je=r[n+2>>0]|0;E=s[n>>0]|0;L=Cs(s[n+1>>0]|0|0,0,8)|0;Et=I;Je=Je&255;wt=Cs(Je|0,0,16)|0;wt=L|E|wt&2031616;E=Cs(s[n+3>>0]|0|0,0,8)|0;L=I;u=Cs(s[n+4>>0]|0|0,0,16)|0;L=L|I;b=s[n+5>>0]|0;bn=Cs(b|0,0,24)|0;L=xs(E|Je|u|bn|0,L|I|0,5)|0;L=L&2097151;bn=r[n+7>>0]|0;u=Cs(s[n+6>>0]|0|0,0,8)|0;Je=I;bn=bn&255;E=Cs(bn|0,0,16)|0;Je=xs(u|b|E|0,Je|I|0,2)|0;Je=Je&2097151;E=Cs(s[n+8>>0]|0|0,0,8)|0;b=I;u=Cs(s[n+9>>0]|0|0,0,16)|0;b=b|I;d=s[n+10>>0]|0;w=Cs(d|0,0,24)|0;b=xs(E|bn|u|w|0,b|I|0,7)|0;b=b&2097151;w=Cs(s[n+11>>0]|0|0,0,8)|0;u=I;bn=Cs(s[n+12>>0]|0|0,0,16)|0;u=u|I;E=s[n+13>>0]|0;wn=Cs(E|0,0,24)|0;u=xs(w|d|bn|wn|0,u|I|0,4)|0;u=u&2097151;wn=r[n+15>>0]|0;bn=Cs(s[n+14>>0]|0|0,0,8)|0;d=I;wn=wn&255;w=Cs(wn|0,0,16)|0;d=xs(bn|E|w|0,d|I|0,1)|0;d=d&2097151;w=Cs(s[n+16>>0]|0|0,0,8)|0;E=I;bn=Cs(s[n+17>>0]|0|0,0,16)|0;E=E|I;vt=s[n+18>>0]|0;Z=Cs(vt|0,0,24)|0;E=xs(w|wn|bn|Z|0,E|I|0,6)|0;E=E&2097151;Z=r[n+20>>0]|0;bn=Cs(s[n+19>>0]|0|0,0,8)|0;wn=I;Z=Cs(Z&255|0,0,16)|0;wn=xs(bn|vt|Z|0,wn|I|0,3)|0;Z=I;vt=r[n+23>>0]|0;bn=s[n+21>>0]|0;w=Cs(s[n+22>>0]|0|0,0,8)|0;ke=I;vt=vt&255;Se=Cs(vt|0,0,16)|0;Se=w|bn|Se&2031616;bn=Cs(s[n+24>>0]|0|0,0,8)|0;w=I;Me=Cs(s[n+25>>0]|0|0,0,16)|0;w=w|I;Q=s[n+26>>0]|0;_n=Cs(Q|0,0,24)|0;w=xs(bn|vt|Me|_n|0,w|I|0,5)|0;w=w&2097151;_n=r[n+28>>0]|0;Me=Cs(s[n+27>>0]|0|0,0,8)|0;vt=I;_n=_n&255;bn=Cs(_n|0,0,16)|0;vt=xs(Me|Q|bn|0,vt|I|0,2)|0;vt=vt&2097151;bn=Cs(s[n+29>>0]|0|0,0,8)|0;Q=I;Me=Cs(s[n+30>>0]|0|0,0,16)|0;Q=Q|I;V=Cs(s[n+31>>0]|0|0,0,24)|0;Q=xs(bn|_n|Me|V|0,Q|I|0,7)|0;V=I;Me=r[i+2>>0]|0;_n=s[i>>0]|0;bn=Cs(s[i+1>>0]|0|0,0,8)|0;Oe=I;Me=Me&255;vn=Cs(Me|0,0,16)|0;Ge=Cs(s[i+3>>0]|0|0,0,8)|0;_e=I;Te=Cs(s[i+4>>0]|0|0,0,16)|0;_e=_e|I;Ee=s[i+5>>0]|0;g=Cs(Ee|0,0,24)|0;_e=xs(Ge|Me|Te|g|0,_e|I|0,5)|0;g=r[i+7>>0]|0;Te=Cs(s[i+6>>0]|0|0,0,8)|0;Me=I;g=g&255;Ge=Cs(g|0,0,16)|0;Me=xs(Te|Ee|Ge|0,Me|I|0,2)|0;Ge=Cs(s[i+8>>0]|0|0,0,8)|0;Ee=I;Te=Cs(s[i+9>>0]|0|0,0,16)|0;Ee=Ee|I;De=s[i+10>>0]|0;ve=Cs(De|0,0,24)|0;Ee=xs(Ge|g|Te|ve|0,Ee|I|0,7)|0;ve=Cs(s[i+11>>0]|0|0,0,8)|0;Te=I;g=Cs(s[i+12>>0]|0|0,0,16)|0;Te=Te|I;Ge=s[i+13>>0]|0;le=Cs(Ge|0,0,24)|0;Te=xs(ve|De|g|le|0,Te|I|0,4)|0;le=r[i+15>>0]|0;g=Cs(s[i+14>>0]|0|0,0,8)|0;De=I;le=le&255;ve=Cs(le|0,0,16)|0;De=xs(g|Ge|ve|0,De|I|0,1)|0;ve=Cs(s[i+16>>0]|0|0,0,8)|0;Ge=I;g=Cs(s[i+17>>0]|0|0,0,16)|0;Ge=Ge|I;te=s[i+18>>0]|0;ue=Cs(te|0,0,24)|0;Ge=xs(ve|le|g|ue|0,Ge|I|0,6)|0;ue=r[i+20>>0]|0;g=Cs(s[i+19>>0]|0|0,0,8)|0;le=I;ue=Cs(ue&255|0,0,16)|0;le=xs(g|te|ue|0,le|I|0,3)|0;ue=I;te=r[i+23>>0]|0;g=s[i+21>>0]|0;ve=Cs(s[i+22>>0]|0|0,0,8)|0;X=I;te=te&255;J=Cs(te|0,0,16)|0;O=Cs(s[i+24>>0]|0|0,0,8)|0;Ae=I;Re=Cs(s[i+25>>0]|0|0,0,16)|0;Ae=Ae|I;rt=s[i+26>>0]|0;j=Cs(rt|0,0,24)|0;Ae=xs(O|te|Re|j|0,Ae|I|0,5)|0;j=r[i+28>>0]|0;Re=Cs(s[i+27>>0]|0|0,0,8)|0;te=I;j=j&255;O=Cs(j|0,0,16)|0;te=xs(Re|rt|O|0,te|I|0,2)|0;O=Cs(s[i+29>>0]|0|0,0,8)|0;rt=I;Re=Cs(s[i+30>>0]|0|0,0,16)|0;rt=rt|I;ft=Cs(s[i+31>>0]|0|0,0,24)|0;rt=xs(O|j|Re|ft|0,rt|I|0,7)|0;ft=I;Re=Es(wt|0,Et|0,Le|0,Ue|0)|0;Re=ks(bn|_n|vn&2031616|0,Oe|0,Re|0,I|0)|0;Oe=I;vn=Es(L|0,0,Le|0,Ue|0)|0;_n=I;bn=Es(wt|0,Et|0,pt|0,0)|0;j=I;O=Es(Je|0,0,Le|0,Ue|0)|0;Pe=I;re=Es(L|0,0,pt|0,0)|0;hn=I;we=Es(wt|0,Et|0,ot|0,0)|0;we=ks(re|0,hn|0,we|0,I|0)|0;Pe=ks(we|0,I|0,O|0,Pe|0)|0;Me=ks(Pe|0,I|0,Me&2097151|0,0)|0;Pe=I;O=Es(b|0,0,Le|0,Ue|0)|0;we=I;hn=Es(Je|0,0,pt|0,0)|0;re=I;yn=Es(L|0,0,ot|0,0)|0;gn=I;mn=Es(wt|0,Et|0,ht|0,0)|0;pn=I;H=Es(u|0,0,Le|0,Ue|0)|0;Ie=I;rn=Es(b|0,0,pt|0,0)|0;Be=I;sn=Es(Je|0,0,ot|0,0)|0;R=I;an=Es(L|0,0,ht|0,0)|0;cn=I;on=Es(wt|0,Et|0,$e|0,0)|0;on=ks(an|0,cn|0,on|0,I|0)|0;R=ks(on|0,I|0,sn|0,R|0)|0;Be=ks(R|0,I|0,rn|0,Be|0)|0;Ie=ks(Be|0,I|0,H|0,Ie|0)|0;Te=ks(Ie|0,I|0,Te&2097151|0,0)|0;Ie=I;H=Es(d|0,0,Le|0,Ue|0)|0;Be=I;rn=Es(u|0,0,pt|0,0)|0;R=I;sn=Es(b|0,0,ot|0,0)|0;on=I;cn=Es(Je|0,0,ht|0,0)|0;an=I;dn=Es(L|0,0,$e|0,0)|0;ln=I;un=Es(wt|0,Et|0,G|0,0)|0;fn=I;T=Es(E|0,0,Le|0,Ue|0)|0;He=I;Gt=Es(d|0,0,pt|0,0)|0;o=I;Vt=Es(u|0,0,ot|0,0)|0;zt=I;Wt=Es(b|0,0,ht|0,0)|0;Ht=I;Xt=Es(Je|0,0,$e|0,0)|0;Qt=I;Jt=Es(L|0,0,G|0,0)|0;Zt=I;Yt=Es(wt|0,Et|0,pe|0,0)|0;Yt=ks(Jt|0,Zt|0,Yt|0,I|0)|0;Qt=ks(Yt|0,I|0,Xt|0,Qt|0)|0;Ht=ks(Qt|0,I|0,Wt|0,Ht|0)|0;zt=ks(Ht|0,I|0,Vt|0,zt|0)|0;o=ks(zt|0,I|0,Gt|0,o|0)|0;He=ks(o|0,I|0,T|0,He|0)|0;Ge=ks(He|0,I|0,Ge&2097151|0,0)|0;He=I;T=Es(wn|0,Z|0,Le|0,Ue|0)|0;o=I;Gt=Es(E|0,0,pt|0,0)|0;zt=I;Vt=Es(d|0,0,ot|0,0)|0;Ht=I;Wt=Es(u|0,0,ht|0,0)|0;Qt=I;Xt=Es(b|0,0,$e|0,0)|0;Yt=I;Zt=Es(Je|0,0,G|0,0)|0;Jt=I;nn=Es(L|0,0,pe|0,0)|0;tn=I;en=Es(wt|0,Et|0,m|0,l|0)|0;$t=I;ee=Es(Se|0,ke|0,Le|0,Ue|0)|0;It=I;Tt=Es(wn|0,Z|0,pt|0,0)|0;Rt=I;Ot=Es(E|0,0,ot|0,0)|0;xt=I;Ct=Es(d|0,0,ht|0,0)|0;Pt=I;Mt=Es(u|0,0,$e|0,0)|0;Dt=I;Bt=Es(b|0,0,G|0,0)|0;Nt=I;jt=Es(Je|0,0,pe|0,0)|0;Ut=I;Ft=Es(L|0,0,m|0,l|0)|0;qt=I;Kt=Es(wt|0,Et|0,x|0,z|0)|0;Kt=ks(Ft|0,qt|0,Kt|0,I|0)|0;Ut=ks(Kt|0,I|0,jt|0,Ut|0)|0;Nt=ks(Ut|0,I|0,Bt|0,Nt|0)|0;Dt=ks(Nt|0,I|0,Mt|0,Dt|0)|0;Pt=ks(Dt|0,I|0,Ct|0,Pt|0)|0;xt=ks(Pt|0,I|0,Ot|0,xt|0)|0;Rt=ks(xt|0,I|0,Tt|0,Rt|0)|0;It=ks(Rt|0,I|0,ee|0,It|0)|0;X=ks(It|0,I|0,ve|g|J&2031616|0,X|0)|0;J=I;g=Es(w|0,0,Le|0,Ue|0)|0;ve=I;It=Es(Se|0,ke|0,pt|0,0)|0;ee=I;Rt=Es(wn|0,Z|0,ot|0,0)|0;Tt=I;xt=Es(E|0,0,ht|0,0)|0;Ot=I;Pt=Es(d|0,0,$e|0,0)|0;Ct=I;Dt=Es(u|0,0,G|0,0)|0;Mt=I;Nt=Es(b|0,0,pe|0,0)|0;Bt=I;Ut=Es(Je|0,0,m|0,l|0)|0;jt=I;Kt=Es(L|0,0,x|0,z|0)|0;qt=I;Ft=Es(wt|0,Et|0,B|0,0)|0;Lt=I;et=Es(vt|0,0,Le|0,Ue|0)|0;ne=I;je=Es(w|0,0,pt|0,0)|0;tt=I;gt=Es(Se|0,ke|0,ot|0,0)|0;Ne=I;f=Es(wn|0,Z|0,ht|0,0)|0;yt=I;Ke=Es(E|0,0,$e|0,0)|0;v=I;st=Es(d|0,0,G|0,0)|0;ze=I;i=Es(u|0,0,pe|0,0)|0;at=I;We=Es(b|0,0,m|0,l|0)|0;t=I;he=Es(Je|0,0,x|0,z|0)|0;Ye=I;kt=Es(L|0,0,B|0,0)|0;St=I;be=Es(wt|0,Et|0,N|0,0)|0;be=ks(kt|0,St|0,be|0,I|0)|0;Ye=ks(be|0,I|0,he|0,Ye|0)|0;t=ks(Ye|0,I|0,We|0,t|0)|0;at=ks(t|0,I|0,i|0,at|0)|0;ze=ks(at|0,I|0,st|0,ze|0)|0;v=ks(ze|0,I|0,Ke|0,v|0)|0;yt=ks(v|0,I|0,f|0,yt|0)|0;Ne=ks(yt|0,I|0,gt|0,Ne|0)|0;tt=ks(Ne|0,I|0,je|0,tt|0)|0;ne=ks(tt|0,I|0,et|0,ne|0)|0;te=ks(ne|0,I|0,te&2097151|0,0)|0;ne=I;Ue=Es(Q|0,V|0,Le|0,Ue|0)|0;Le=I;et=Es(vt|0,0,pt|0,0)|0;tt=I;je=Es(w|0,0,ot|0,0)|0;Ne=I;gt=Es(Se|0,ke|0,ht|0,0)|0;yt=I;f=Es(wn|0,Z|0,$e|0,0)|0;v=I;Ke=Es(E|0,0,G|0,0)|0;ze=I;st=Es(d|0,0,pe|0,0)|0;at=I;i=Es(u|0,0,m|0,l|0)|0;t=I;We=Es(b|0,0,x|0,z|0)|0;Ye=I;he=Es(Je|0,0,B|0,0)|0;be=I;St=Es(L|0,0,N|0,0)|0;kt=I;Et=Es(wt|0,Et|0,ge|0,ye|0)|0;wt=I;pt=Es(Q|0,V|0,pt|0,0)|0;mt=I;P=Es(vt|0,0,ot|0,0)|0;it=I;fe=Es(w|0,0,ht|0,0)|0;n=I;bt=Es(Se|0,ke|0,$e|0,0)|0;Fe=I;k=Es(wn|0,Z|0,G|0,0)|0;_t=I;ie=Es(E|0,0,pe|0,0)|0;F=I;qe=Es(d|0,0,m|0,l|0)|0;oe=I;W=Es(u|0,0,x|0,z|0)|0;ce=I;U=Es(b|0,0,B|0,0)|0;Y=I;dt=Es(Je|0,0,N|0,0)|0;Xe=I;L=Es(L|0,0,ge|0,ye|0)|0;L=ks(dt|0,Xe|0,L|0,I|0)|0;Y=ks(L|0,I|0,U|0,Y|0)|0;ce=ks(Y|0,I|0,W|0,ce|0)|0;oe=ks(ce|0,I|0,qe|0,oe|0)|0;F=ks(oe|0,I|0,ie|0,F|0)|0;_t=ks(F|0,I|0,k|0,_t|0)|0;Fe=ks(_t|0,I|0,bt|0,Fe|0)|0;n=ks(Fe|0,I|0,fe|0,n|0)|0;it=ks(n|0,I|0,P|0,it|0)|0;mt=ks(it|0,I|0,pt|0,mt|0)|0;pt=I;ot=Es(Q|0,V|0,ot|0,0)|0;it=I;P=Es(vt|0,0,ht|0,0)|0;n=I;fe=Es(w|0,0,$e|0,0)|0;Fe=I;bt=Es(Se|0,ke|0,G|0,0)|0;_t=I;k=Es(wn|0,Z|0,pe|0,0)|0;F=I;ie=Es(E|0,0,m|0,l|0)|0;oe=I;qe=Es(d|0,0,x|0,z|0)|0;ce=I;W=Es(u|0,0,B|0,0)|0;Y=I;U=Es(b|0,0,N|0,0)|0;L=I;Je=Es(Je|0,0,ge|0,ye|0)|0;Xe=I;ht=Es(Q|0,V|0,ht|0,0)|0;dt=I;ut=Es(vt|0,0,$e|0,0)|0;Ze=I;K=Es(w|0,0,G|0,0)|0;lt=I;$=Es(Se|0,ke|0,pe|0,0)|0;q=I;ae=Es(wn|0,Z|0,m|0,l|0)|0;C=I;A=Es(E|0,0,x|0,z|0)|0;se=I;h=Es(d|0,0,B|0,0)|0;c=I;At=Es(u|0,0,N|0,0)|0;a=I;b=Es(b|0,0,ge|0,ye|0)|0;b=ks(At|0,a|0,b|0,I|0)|0;c=ks(b|0,I|0,h|0,c|0)|0;se=ks(c|0,I|0,A|0,se|0)|0;C=ks(se|0,I|0,ae|0,C|0)|0;q=ks(C|0,I|0,$|0,q|0)|0;lt=ks(q|0,I|0,K|0,lt|0)|0;Ze=ks(lt|0,I|0,ut|0,Ze|0)|0;dt=ks(Ze|0,I|0,ht|0,dt|0)|0;ht=I;$e=Es(Q|0,V|0,$e|0,0)|0;Ze=I;ut=Es(vt|0,0,G|0,0)|0;lt=I;K=Es(w|0,0,pe|0,0)|0;q=I;$=Es(Se|0,ke|0,m|0,l|0)|0;C=I;ae=Es(wn|0,Z|0,x|0,z|0)|0;se=I;A=Es(E|0,0,B|0,0)|0;c=I;h=Es(d|0,0,N|0,0)|0;b=I;u=Es(u|0,0,ge|0,ye|0)|0;a=I;G=Es(Q|0,V|0,G|0,0)|0;At=I;_=Es(vt|0,0,pe|0,0)|0;me=I;M=Es(w|0,0,m|0,l|0)|0;p=I;Qe=Es(Se|0,ke|0,x|0,z|0)|0;D=I;y=Es(wn|0,Z|0,B|0,0)|0;Ve=I;Ce=Es(E|0,0,N|0,0)|0;S=I;d=Es(d|0,0,ge|0,ye|0)|0;d=ks(Ce|0,S|0,d|0,I|0)|0;Ve=ks(d|0,I|0,y|0,Ve|0)|0;D=ks(Ve|0,I|0,Qe|0,D|0)|0;p=ks(D|0,I|0,M|0,p|0)|0;me=ks(p|0,I|0,_|0,me|0)|0;At=ks(me|0,I|0,G|0,At|0)|0;G=I;pe=Es(Q|0,V|0,pe|0,0)|0;me=I;_=Es(vt|0,0,m|0,l|0)|0;p=I;M=Es(w|0,0,x|0,z|0)|0;D=I;Qe=Es(Se|0,ke|0,B|0,0)|0;Ve=I;y=Es(wn|0,Z|0,N|0,0)|0;d=I;E=Es(E|0,0,ge|0,ye|0)|0;S=I;l=Es(Q|0,V|0,m|0,l|0)|0;m=I;Ce=Es(vt|0,0,x|0,z|0)|0;xe=I;ct=Es(w|0,0,B|0,0)|0;nt=I;de=Es(Se|0,ke|0,N|0,0)|0;An=I;Z=Es(wn|0,Z|0,ge|0,ye|0)|0;Z=ks(de|0,An|0,Z|0,I|0)|0;nt=ks(Z|0,I|0,ct|0,nt|0)|0;xe=ks(nt|0,I|0,Ce|0,xe|0)|0;m=ks(xe|0,I|0,l|0,m|0)|0;l=I;z=Es(Q|0,V|0,x|0,z|0)|0;x=I;xe=Es(vt|0,0,B|0,0)|0;Ce=I;nt=Es(w|0,0,N|0,0)|0;ct=I;ke=Es(Se|0,ke|0,ge|0,ye|0)|0;Se=I;B=Es(Q|0,V|0,B|0,0)|0;Z=I;An=Es(vt|0,0,N|0,0)|0;de=I;w=Es(w|0,0,ge|0,ye|0)|0;w=ks(An|0,de|0,w|0,I|0)|0;Z=ks(w|0,I|0,B|0,Z|0)|0;B=I;N=Es(Q|0,V|0,N|0,0)|0;w=I;vt=Es(vt|0,0,ge|0,ye|0)|0;vt=ks(N|0,w|0,vt|0,I|0)|0;w=I;ye=Es(Q|0,V|0,ge|0,ye|0)|0;ge=I;V=ks(Re|0,Oe|0,1048576,0)|0;Q=I;N=xs(V|0,Q|0,21)|0;de=I;j=ks(vn|0,_n|0,bn|0,j|0)|0;de=ks(j|0,I|0,N|0,de|0)|0;_e=ks(de|0,I|0,_e&2097151|0,0)|0;de=I;Q=Ss(Re|0,Oe|0,V&-2097152|0,Q&4095|0)|0;V=I;Oe=ks(Me|0,Pe|0,1048576,0)|0;Re=I;N=xs(Oe|0,Re|0,21)|0;j=I;pn=ks(yn|0,gn|0,mn|0,pn|0)|0;re=ks(pn|0,I|0,hn|0,re|0)|0;we=ks(re|0,I|0,O|0,we|0)|0;Ee=ks(we|0,I|0,Ee&2097151|0,0)|0;j=ks(Ee|0,I|0,N|0,j|0)|0;N=I;Ee=ks(Te|0,Ie|0,1048576,0)|0;we=I;O=Os(Ee|0,we|0,21)|0;re=I;fn=ks(dn|0,ln|0,un|0,fn|0)|0;an=ks(fn|0,I|0,cn|0,an|0)|0;on=ks(an|0,I|0,sn|0,on|0)|0;R=ks(on|0,I|0,rn|0,R|0)|0;Be=ks(R|0,I|0,H|0,Be|0)|0;De=ks(Be|0,I|0,De&2097151|0,0)|0;re=ks(De|0,I|0,O|0,re|0)|0;O=I;De=ks(Ge|0,He|0,1048576,0)|0;Be=I;H=Os(De|0,Be|0,21)|0;R=I;$t=ks(nn|0,tn|0,en|0,$t|0)|0;Jt=ks($t|0,I|0,Zt|0,Jt|0)|0;Yt=ks(Jt|0,I|0,Xt|0,Yt|0)|0;Qt=ks(Yt|0,I|0,Wt|0,Qt|0)|0;Ht=ks(Qt|0,I|0,Vt|0,Ht|0)|0;zt=ks(Ht|0,I|0,Gt|0,zt|0)|0;o=ks(zt|0,I|0,T|0,o|0)|0;ue=ks(o|0,I|0,le|0,ue|0)|0;R=ks(ue|0,I|0,H|0,R|0)|0;H=I;ue=ks(X|0,J|0,1048576,0)|0;le=I;o=Os(ue|0,le|0,21)|0;T=I;Lt=ks(Kt|0,qt|0,Ft|0,Lt|0)|0;jt=ks(Lt|0,I|0,Ut|0,jt|0)|0;Bt=ks(jt|0,I|0,Nt|0,Bt|0)|0;Mt=ks(Bt|0,I|0,Dt|0,Mt|0)|0;Ct=ks(Mt|0,I|0,Pt|0,Ct|0)|0;Ot=ks(Ct|0,I|0,xt|0,Ot|0)|0;Tt=ks(Ot|0,I|0,Rt|0,Tt|0)|0;ee=ks(Tt|0,I|0,It|0,ee|0)|0;ve=ks(ee|0,I|0,g|0,ve|0)|0;Ae=ks(ve|0,I|0,Ae&2097151|0,0)|0;T=ks(Ae|0,I|0,o|0,T|0)|0;o=I;Ae=ks(te|0,ne|0,1048576,0)|0;ve=I;g=Os(Ae|0,ve|0,21)|0;ee=I;wt=ks(St|0,kt|0,Et|0,wt|0)|0;be=ks(wt|0,I|0,he|0,be|0)|0;Ye=ks(be|0,I|0,We|0,Ye|0)|0;t=ks(Ye|0,I|0,i|0,t|0)|0;at=ks(t|0,I|0,st|0,at|0)|0;ze=ks(at|0,I|0,Ke|0,ze|0)|0;v=ks(ze|0,I|0,f|0,v|0)|0;yt=ks(v|0,I|0,gt|0,yt|0)|0;Ne=ks(yt|0,I|0,je|0,Ne|0)|0;tt=ks(Ne|0,I|0,et|0,tt|0)|0;Le=ks(tt|0,I|0,Ue|0,Le|0)|0;ft=ks(Le|0,I|0,rt|0,ft|0)|0;ee=ks(ft|0,I|0,g|0,ee|0)|0;g=I;ft=ks(mt|0,pt|0,1048576,0)|0;rt=I;Le=Os(ft|0,rt|0,21)|0;Ue=I;Xe=ks(U|0,L|0,Je|0,Xe|0)|0;Y=ks(Xe|0,I|0,W|0,Y|0)|0;ce=ks(Y|0,I|0,qe|0,ce|0)|0;oe=ks(ce|0,I|0,ie|0,oe|0)|0;F=ks(oe|0,I|0,k|0,F|0)|0;_t=ks(F|0,I|0,bt|0,_t|0)|0;Fe=ks(_t|0,I|0,fe|0,Fe|0)|0;n=ks(Fe|0,I|0,P|0,n|0)|0;it=ks(n|0,I|0,ot|0,it|0)|0;Ue=ks(it|0,I|0,Le|0,Ue|0)|0;Le=I;it=ks(dt|0,ht|0,1048576,0)|0;ot=I;n=Os(it|0,ot|0,21)|0;P=I;a=ks(h|0,b|0,u|0,a|0)|0;c=ks(a|0,I|0,A|0,c|0)|0;se=ks(c|0,I|0,ae|0,se|0)|0;C=ks(se|0,I|0,$|0,C|0)|0;q=ks(C|0,I|0,K|0,q|0)|0;lt=ks(q|0,I|0,ut|0,lt|0)|0;Ze=ks(lt|0,I|0,$e|0,Ze|0)|0;P=ks(Ze|0,I|0,n|0,P|0)|0;n=I;Ze=ks(At|0,G|0,1048576,0)|0;$e=I;lt=Os(Ze|0,$e|0,21)|0;ut=I;S=ks(y|0,d|0,E|0,S|0)|0;Ve=ks(S|0,I|0,Qe|0,Ve|0)|0;D=ks(Ve|0,I|0,M|0,D|0)|0;p=ks(D|0,I|0,_|0,p|0)|0;me=ks(p|0,I|0,pe|0,me|0)|0;ut=ks(me|0,I|0,lt|0,ut|0)|0;lt=I;me=ks(m|0,l|0,1048576,0)|0;pe=I;p=Os(me|0,pe|0,21)|0;_=I;Se=ks(nt|0,ct|0,ke|0,Se|0)|0;Ce=ks(Se|0,I|0,xe|0,Ce|0)|0;x=ks(Ce|0,I|0,z|0,x|0)|0;_=ks(x|0,I|0,p|0,_|0)|0;p=I;pe=Ss(m|0,l|0,me&-2097152|0,pe|0)|0;me=I;l=ks(Z|0,B|0,1048576,0)|0;m=I;x=xs(l|0,m|0,21)|0;x=ks(vt|0,w|0,x|0,I|0)|0;w=I;m=Ss(Z|0,B|0,l&-2097152|0,m&2147483647|0)|0;l=I;B=ks(ye|0,ge|0,1048576,0)|0;Z=I;vt=xs(B|0,Z|0,21)|0;z=I;Z=Ss(ye|0,ge|0,B&-2097152|0,Z&2147483647|0)|0;B=I;ge=ks(_e|0,de|0,1048576,0)|0;ye=I;Ce=xs(ge|0,ye|0,21)|0;xe=I;ye=Ss(_e|0,de|0,ge&-2097152|0,ye|0)|0;ge=I;de=ks(j|0,N|0,1048576,0)|0;_e=I;Se=Os(de|0,_e|0,21)|0;ke=I;_e=Ss(j|0,N|0,de&-2097152|0,_e|0)|0;de=I;N=ks(re|0,O|0,1048576,0)|0;j=I;ct=Os(N|0,j|0,21)|0;nt=I;D=ks(R|0,H|0,1048576,0)|0;M=I;Ve=Os(D|0,M|0,21)|0;Qe=I;S=ks(T|0,o|0,1048576,0)|0;E=I;d=Os(S|0,E|0,21)|0;y=I;q=ks(ee|0,g|0,1048576,0)|0;K=I;C=Os(q|0,K|0,21)|0;$=I;se=ks(Ue|0,Le|0,1048576,0)|0;ae=I;c=Os(se|0,ae|0,21)|0;A=I;a=ks(P|0,n|0,1048576,0)|0;u=I;b=Os(a|0,u|0,21)|0;h=I;Fe=ks(ut|0,lt|0,1048576,0)|0;fe=I;_t=Os(Fe|0,fe|0,21)|0;me=ks(_t|0,I|0,pe|0,me|0)|0;pe=I;fe=Ss(ut|0,lt|0,Fe&-2097152|0,fe|0)|0;Fe=I;lt=ks(_|0,p|0,1048576,0)|0;ut=I;_t=Os(lt|0,ut|0,21)|0;l=ks(_t|0,I|0,m|0,l|0)|0;m=I;ut=Ss(_|0,p|0,lt&-2097152|0,ut|0)|0;lt=I;p=ks(x|0,w|0,1048576,0)|0;_=I;_t=xs(p|0,_|0,21)|0;B=ks(_t|0,I|0,Z|0,B|0)|0;Z=I;_=Ss(x|0,w|0,p&-2097152|0,_&2147483647|0)|0;p=I;w=Es(vt|0,z|0,666643,0)|0;x=I;_t=Es(vt|0,z|0,470296,0)|0;bt=I;F=Es(vt|0,z|0,654183,0)|0;k=I;oe=Es(vt|0,z|0,-997805,-1)|0;ie=I;ce=Es(vt|0,z|0,136657,0)|0;qe=I;z=Es(vt|0,z|0,-683901,-1)|0;z=ks(At|0,G|0,z|0,I|0)|0;$e=Ss(z|0,I|0,Ze&-2097152|0,$e|0)|0;h=ks($e|0,I|0,b|0,h|0)|0;b=I;$e=Es(B|0,Z|0,666643,0)|0;Ze=I;z=Es(B|0,Z|0,470296,0)|0;G=I;At=Es(B|0,Z|0,654183,0)|0;vt=I;Y=Es(B|0,Z|0,-997805,-1)|0;W=I;Xe=Es(B|0,Z|0,136657,0)|0;Je=I;Z=Es(B|0,Z|0,-683901,-1)|0;B=I;L=Es(_|0,p|0,666643,0)|0;U=I;tt=Es(_|0,p|0,470296,0)|0;et=I;Ne=Es(_|0,p|0,654183,0)|0;je=I;yt=Es(_|0,p|0,-997805,-1)|0;gt=I;v=Es(_|0,p|0,136657,0)|0;f=I;p=Es(_|0,p|0,-683901,-1)|0;_=I;ie=ks(dt|0,ht|0,oe|0,ie|0)|0;Je=ks(ie|0,I|0,Xe|0,Je|0)|0;_=ks(Je|0,I|0,p|0,_|0)|0;ot=Ss(_|0,I|0,it&-2097152|0,ot|0)|0;A=ks(ot|0,I|0,c|0,A|0)|0;c=I;ot=Es(l|0,m|0,666643,0)|0;it=I;_=Es(l|0,m|0,470296,0)|0;p=I;Je=Es(l|0,m|0,654183,0)|0;Xe=I;ie=Es(l|0,m|0,-997805,-1)|0;oe=I;ht=Es(l|0,m|0,136657,0)|0;dt=I;m=Es(l|0,m|0,-683901,-1)|0;l=I;ze=Es(ut|0,lt|0,666643,0)|0;Ke=I;at=Es(ut|0,lt|0,470296,0)|0;st=I;t=Es(ut|0,lt|0,654183,0)|0;i=I;Ye=Es(ut|0,lt|0,-997805,-1)|0;We=I;be=Es(ut|0,lt|0,136657,0)|0;he=I;lt=Es(ut|0,lt|0,-683901,-1)|0;ut=I;bt=ks(At|0,vt|0,_t|0,bt|0)|0;gt=ks(bt|0,I|0,yt|0,gt|0)|0;pt=ks(gt|0,I|0,mt|0,pt|0)|0;dt=ks(pt|0,I|0,ht|0,dt|0)|0;ut=ks(dt|0,I|0,lt|0,ut|0)|0;rt=Ss(ut|0,I|0,ft&-2097152|0,rt|0)|0;$=ks(rt|0,I|0,C|0,$|0)|0;C=I;rt=Es(me|0,pe|0,666643,0)|0;rt=ks(ct|0,nt|0,rt|0,I|0)|0;He=ks(rt|0,I|0,Ge|0,He|0)|0;Be=Ss(He|0,I|0,De&-2097152|0,Be|0)|0;De=I;He=Es(me|0,pe|0,470296,0)|0;Ge=I;rt=Es(me|0,pe|0,654183,0)|0;nt=I;it=ks(at|0,st|0,ot|0,it|0)|0;nt=ks(it|0,I|0,rt|0,nt|0)|0;Qe=ks(nt|0,I|0,Ve|0,Qe|0)|0;J=ks(Qe|0,I|0,X|0,J|0)|0;le=Ss(J|0,I|0,ue&-2097152|0,le|0)|0;ue=I;J=Es(me|0,pe|0,-997805,-1)|0;X=I;Qe=Es(me|0,pe|0,136657,0)|0;Ve=I;Ze=ks(tt|0,et|0,$e|0,Ze|0)|0;Xe=ks(Ze|0,I|0,Je|0,Xe|0)|0;We=ks(Xe|0,I|0,Ye|0,We|0)|0;Ve=ks(We|0,I|0,Qe|0,Ve|0)|0;y=ks(Ve|0,I|0,d|0,y|0)|0;ne=ks(y|0,I|0,te|0,ne|0)|0;ve=Ss(ne|0,I|0,Ae&-2097152|0,ve|0)|0;Ae=I;pe=Es(me|0,pe|0,-683901,-1)|0;me=I;ne=ks(Be|0,De|0,1048576,0)|0;te=I;y=Os(ne|0,te|0,21)|0;d=I;Ke=ks(He|0,Ge|0,ze|0,Ke|0)|0;H=ks(Ke|0,I|0,R|0,H|0)|0;M=Ss(H|0,I|0,D&-2097152|0,M|0)|0;d=ks(M|0,I|0,y|0,d|0)|0;y=I;M=ks(le|0,ue|0,1048576,0)|0;D=I;H=Os(M|0,D|0,21)|0;R=I;U=ks(_|0,p|0,L|0,U|0)|0;i=ks(U|0,I|0,t|0,i|0)|0;X=ks(i|0,I|0,J|0,X|0)|0;o=ks(X|0,I|0,T|0,o|0)|0;E=Ss(o|0,I|0,S&-2097152|0,E|0)|0;R=ks(E|0,I|0,H|0,R|0)|0;H=I;E=ks(ve|0,Ae|0,1048576,0)|0;S=I;o=Os(E|0,S|0,21)|0;T=I;x=ks(z|0,G|0,w|0,x|0)|0;je=ks(x|0,I|0,Ne|0,je|0)|0;oe=ks(je|0,I|0,ie|0,oe|0)|0;he=ks(oe|0,I|0,be|0,he|0)|0;me=ks(he|0,I|0,pe|0,me|0)|0;g=ks(me|0,I|0,ee|0,g|0)|0;K=Ss(g|0,I|0,q&-2097152|0,K|0)|0;T=ks(K|0,I|0,o|0,T|0)|0;o=I;K=ks($|0,C|0,1048576,0)|0;q=I;g=Os(K|0,q|0,21)|0;ee=I;k=ks(Y|0,W|0,F|0,k|0)|0;f=ks(k|0,I|0,v|0,f|0)|0;l=ks(f|0,I|0,m|0,l|0)|0;Le=ks(l|0,I|0,Ue|0,Le|0)|0;ae=Ss(Le|0,I|0,se&-2097152|0,ae|0)|0;ee=ks(ae|0,I|0,g|0,ee|0)|0;g=I;q=Ss($|0,C|0,K&-2097152|0,q|0)|0;K=I;C=ks(A|0,c|0,1048576,0)|0;$=I;ae=Os(C|0,$|0,21)|0;se=I;qe=ks(Z|0,B|0,ce|0,qe|0)|0;n=ks(qe|0,I|0,P|0,n|0)|0;u=Ss(n|0,I|0,a&-2097152|0,u|0)|0;se=ks(u|0,I|0,ae|0,se|0)|0;ae=I;$=Ss(A|0,c|0,C&-2097152|0,$|0)|0;C=I;c=ks(h|0,b|0,1048576,0)|0;A=I;u=Os(c|0,A|0,21)|0;Fe=ks(u|0,I|0,fe|0,Fe|0)|0;fe=I;A=Ss(h|0,b|0,c&-2097152|0,A|0)|0;c=I;b=ks(d|0,y|0,1048576,0)|0;h=I;u=Os(b|0,h|0,21)|0;a=I;n=ks(R|0,H|0,1048576,0)|0;P=I;qe=Os(n|0,P|0,21)|0;ce=I;B=ks(T|0,o|0,1048576,0)|0;Z=I;Le=Os(B|0,Z|0,21)|0;K=ks(Le|0,I|0,q|0,K|0)|0;q=I;Z=Ss(T|0,o|0,B&-2097152|0,Z|0)|0;B=I;o=ks(ee|0,g|0,1048576,0)|0;T=I;Le=Os(o|0,T|0,21)|0;C=ks(Le|0,I|0,$|0,C|0)|0;$=I;T=Ss(ee|0,g|0,o&-2097152|0,T|0)|0;o=I;g=ks(se|0,ae|0,1048576,0)|0;ee=I;Le=Os(g|0,ee|0,21)|0;c=ks(Le|0,I|0,A|0,c|0)|0;A=I;ee=Ss(se|0,ae|0,g&-2097152|0,ee|0)|0;g=I;ae=Es(Fe|0,fe|0,666643,0)|0;se=I;Le=Es(Fe|0,fe|0,470296,0)|0;Ue=I;l=Es(Fe|0,fe|0,654183,0)|0;m=I;f=Es(Fe|0,fe|0,-997805,-1)|0;v=I;k=Es(Fe|0,fe|0,136657,0)|0;F=I;fe=Es(Fe|0,fe|0,-683901,-1)|0;fe=ks(qe|0,ce|0,fe|0,I|0)|0;Ae=ks(fe|0,I|0,ve|0,Ae|0)|0;S=Ss(Ae|0,I|0,E&-2097152|0,S|0)|0;E=I;Ae=Es(c|0,A|0,666643,0)|0;ve=I;fe=Es(c|0,A|0,470296,0)|0;ce=I;qe=Es(c|0,A|0,654183,0)|0;Fe=I;W=Es(c|0,A|0,-997805,-1)|0;Y=I;me=Es(c|0,A|0,136657,0)|0;pe=I;A=Es(c|0,A|0,-683901,-1)|0;c=I;he=Es(ee|0,g|0,666643,0)|0;he=ks(_e|0,de|0,he|0,I|0)|0;de=I;_e=Es(ee|0,g|0,470296,0)|0;be=I;oe=Es(ee|0,g|0,654183,0)|0;ie=I;je=Es(ee|0,g|0,-997805,-1)|0;Ne=I;x=Es(ee|0,g|0,136657,0)|0;w=I;g=Es(ee|0,g|0,-683901,-1)|0;ee=I;v=ks(me|0,pe|0,f|0,v|0)|0;ee=ks(v|0,I|0,g|0,ee|0)|0;a=ks(ee|0,I|0,u|0,a|0)|0;ue=ks(a|0,I|0,le|0,ue|0)|0;D=Ss(ue|0,I|0,M&-2097152|0,D|0)|0;M=I;ue=Es(C|0,$|0,666643,0)|0;le=I;a=Es(C|0,$|0,470296,0)|0;u=I;ee=Es(C|0,$|0,654183,0)|0;g=I;v=Es(C|0,$|0,-997805,-1)|0;f=I;pe=Es(C|0,$|0,136657,0)|0;me=I;$=Es(C|0,$|0,-683901,-1)|0;C=I;G=Es(T|0,o|0,666643,0)|0;z=I;X=Es(T|0,o|0,470296,0)|0;J=I;i=Es(T|0,o|0,654183,0)|0;t=I;U=Es(T|0,o|0,-997805,-1)|0;L=I;p=Es(T|0,o|0,136657,0)|0;_=I;o=Es(T|0,o|0,-683901,-1)|0;T=I;Ue=ks(qe|0,Fe|0,Le|0,Ue|0)|0;Ne=ks(Ue|0,I|0,je|0,Ne|0)|0;De=ks(Ne|0,I|0,Be|0,De|0)|0;te=Ss(De|0,I|0,ne&-2097152|0,te|0)|0;me=ks(te|0,I|0,pe|0,me|0)|0;T=ks(me|0,I|0,o|0,T|0)|0;o=I;me=Es(K|0,q|0,666643,0)|0;V=ks(me|0,I|0,Q|0,V|0)|0;Q=I;me=Es(K|0,q|0,470296,0)|0;pe=I;te=Es(K|0,q|0,654183,0)|0;ne=I;xe=ks(Me|0,Pe|0,Ce|0,xe|0)|0;Re=Ss(xe|0,I|0,Oe&-2097152|0,Re|0)|0;ne=ks(Re|0,I|0,te|0,ne|0)|0;le=ks(ne|0,I|0,ue|0,le|0)|0;J=ks(le|0,I|0,X|0,J|0)|0;X=I;le=Es(K|0,q|0,-997805,-1)|0;ue=I;ne=Es(K|0,q|0,136657,0)|0;te=I;ke=ks(Te|0,Ie|0,Se|0,ke|0)|0;we=Ss(ke|0,I|0,Ee&-2097152|0,we|0)|0;ve=ks(we|0,I|0,Ae|0,ve|0)|0;be=ks(ve|0,I|0,_e|0,be|0)|0;te=ks(be|0,I|0,ne|0,te|0)|0;g=ks(te|0,I|0,ee|0,g|0)|0;L=ks(g|0,I|0,U|0,L|0)|0;U=I;q=Es(K|0,q|0,-683901,-1)|0;K=I;g=ks(V|0,Q|0,1048576,0)|0;ee=I;te=Os(g|0,ee|0,21)|0;ne=I;pe=ks(ye|0,ge|0,me|0,pe|0)|0;z=ks(pe|0,I|0,G|0,z|0)|0;ne=ks(z|0,I|0,te|0,ne|0)|0;te=I;ee=Ss(V|0,Q|0,g&-2097152|0,ee|0)|0;g=I;Q=ks(J|0,X|0,1048576,0)|0;V=I;z=Os(Q|0,V|0,21)|0;G=I;ue=ks(he|0,de|0,le|0,ue|0)|0;u=ks(ue|0,I|0,a|0,u|0)|0;t=ks(u|0,I|0,i|0,t|0)|0;G=ks(t|0,I|0,z|0,G|0)|0;z=I;t=ks(L|0,U|0,1048576,0)|0;i=I;u=Os(t|0,i|0,21)|0;a=I;se=ks(fe|0,ce|0,ae|0,se|0)|0;ie=ks(se|0,I|0,oe|0,ie|0)|0;O=ks(ie|0,I|0,re|0,O|0)|0;j=Ss(O|0,I|0,N&-2097152|0,j|0)|0;K=ks(j|0,I|0,q|0,K|0)|0;f=ks(K|0,I|0,v|0,f|0)|0;_=ks(f|0,I|0,p|0,_|0)|0;a=ks(_|0,I|0,u|0,a|0)|0;u=I;_=ks(T|0,o|0,1048576,0)|0;p=I;f=Os(_|0,p|0,21)|0;v=I;m=ks(W|0,Y|0,l|0,m|0)|0;w=ks(m|0,I|0,x|0,w|0)|0;y=ks(w|0,I|0,d|0,y|0)|0;h=Ss(y|0,I|0,b&-2097152|0,h|0)|0;C=ks(h|0,I|0,$|0,C|0)|0;v=ks(C|0,I|0,f|0,v|0)|0;f=I;p=Ss(T|0,o|0,_&-2097152|0,p|0)|0;_=I;o=ks(D|0,M|0,1048576,0)|0;T=I;C=Os(o|0,T|0,21)|0;$=I;F=ks(A|0,c|0,k|0,F|0)|0;H=ks(F|0,I|0,R|0,H|0)|0;$=ks(H|0,I|0,C|0,$|0)|0;P=Ss($|0,I|0,n&-2097152|0,P|0)|0;n=I;T=Ss(D|0,M|0,o&-2097152|0,T|0)|0;o=I;M=ks(S|0,E|0,1048576,0)|0;D=I;$=Os(M|0,D|0,21)|0;$=ks(Z|0,B|0,$|0,I|0)|0;B=I;Z=ks(ne|0,te|0,1048576,0)|0;C=I;H=Os(Z|0,C|0,21)|0;R=I;F=ks(G|0,z|0,1048576,0)|0;k=I;c=Os(F|0,k|0,21)|0;A=I;h=ks(a|0,u|0,1048576,0)|0;b=I;y=Os(h|0,b|0,21)|0;y=ks(p|0,_|0,y|0,I|0)|0;_=I;p=ks(v|0,f|0,1048576,0)|0;d=I;w=Os(p|0,d|0,21)|0;w=ks(T|0,o|0,w|0,I|0)|0;o=I;d=Ss(v|0,f|0,p&-2097152|0,d|0)|0;p=I;f=ks(P|0,n|0,1048576,0)|0;v=I;T=Os(f|0,v|0,21)|0;x=I;v=Ss(P|0,n|0,f&-2097152|0,v|0)|0;f=I;n=ks($|0,B|0,1048576,0)|0;P=I;m=Os(n|0,P|0,21)|0;l=I;P=Ss($|0,B|0,n&-2097152|0,P|0)|0;n=I;B=Es(m|0,l|0,666643,0)|0;B=ks(ee|0,g|0,B|0,I|0)|0;g=I;ee=Es(m|0,l|0,470296,0)|0;$=I;Y=Es(m|0,l|0,654183,0)|0;W=I;K=Es(m|0,l|0,-997805,-1)|0;q=I;j=Es(m|0,l|0,136657,0)|0;N=I;l=Es(m|0,l|0,-683901,-1)|0;m=I;g=Os(B|0,g|0,21)|0;O=I;$=ks(ne|0,te|0,ee|0,$|0)|0;C=Ss($|0,I|0,Z&-2097152|0,C|0)|0;O=ks(C|0,I|0,g|0,O|0)|0;g=Os(O|0,I|0,21)|0;C=I;W=ks(J|0,X|0,Y|0,W|0)|0;V=Ss(W|0,I|0,Q&-2097152|0,V|0)|0;R=ks(V|0,I|0,H|0,R|0)|0;C=ks(R|0,I|0,g|0,C|0)|0;g=Os(C|0,I|0,21)|0;R=I;q=ks(G|0,z|0,K|0,q|0)|0;k=Ss(q|0,I|0,F&-2097152|0,k|0)|0;R=ks(k|0,I|0,g|0,R|0)|0;g=Os(R|0,I|0,21)|0;k=I;N=ks(L|0,U|0,j|0,N|0)|0;i=Ss(N|0,I|0,t&-2097152|0,i|0)|0;A=ks(i|0,I|0,c|0,A|0)|0;k=ks(A|0,I|0,g|0,k|0)|0;g=Os(k|0,I|0,21)|0;A=I;m=ks(a|0,u|0,l|0,m|0)|0;b=Ss(m|0,I|0,h&-2097152|0,b|0)|0;A=ks(b|0,I|0,g|0,A|0)|0;g=Os(A|0,I|0,21)|0;g=ks(y|0,_|0,g|0,I|0)|0;_=Os(g|0,I|0,21)|0;p=ks(_|0,I|0,d|0,p|0)|0;d=Os(p|0,I|0,21)|0;d=ks(w|0,o|0,d|0,I|0)|0;o=Os(d|0,I|0,21)|0;f=ks(o|0,I|0,v|0,f|0)|0;v=Os(f|0,I|0,21)|0;o=I;x=ks(S|0,E|0,T|0,x|0)|0;D=Ss(x|0,I|0,M&-2097152|0,D|0)|0;o=ks(D|0,I|0,v|0,o|0)|0;v=Os(o|0,I|0,21)|0;n=ks(v|0,I|0,P|0,n|0)|0;P=Os(n|0,I|0,21)|0;v=I;D=Es(P|0,v|0,666643,0)|0;B=ks(D|0,I|0,B&2097151|0,0)|0;D=I;M=Es(P|0,v|0,470296,0)|0;O=ks(M|0,I|0,O&2097151|0,0)|0;M=I;x=Es(P|0,v|0,654183,0)|0;C=ks(x|0,I|0,C&2097151|0,0)|0;x=I;T=Es(P|0,v|0,-997805,-1)|0;R=ks(T|0,I|0,R&2097151|0,0)|0;T=I;E=Es(P|0,v|0,136657,0)|0;k=ks(E|0,I|0,k&2097151|0,0)|0;E=I;v=Es(P|0,v|0,-683901,-1)|0;A=ks(v|0,I|0,A&2097151|0,0)|0;v=I;P=Os(B|0,D|0,21)|0;P=ks(O|0,M|0,P|0,I|0)|0;M=I;O=Os(P|0,M|0,21)|0;O=ks(C|0,x|0,O|0,I|0)|0;x=I;C=P&2097151;S=Os(O|0,x|0,21)|0;S=ks(R|0,T|0,S|0,I|0)|0;T=I;R=O&2097151;w=Os(S|0,T|0,21)|0;w=ks(k|0,E|0,w|0,I|0)|0;E=I;k=S&2097151;_=Os(w|0,E|0,21)|0;_=ks(A|0,v|0,_|0,I|0)|0;v=I;A=w&2097151;y=Os(_|0,v|0,21)|0;g=ks(y|0,I|0,g&2097151|0,0)|0;y=I;b=_&2097151;h=Os(g|0,y|0,21)|0;p=ks(h|0,I|0,p&2097151|0,0)|0;h=I;m=g&2097151;l=Os(p|0,h|0,21)|0;d=ks(l|0,I|0,d&2097151|0,0)|0;l=I;u=Os(d|0,l|0,21)|0;f=ks(u|0,I|0,f&2097151|0,0)|0;u=I;a=Os(f|0,u|0,21)|0;o=ks(a|0,I|0,o&2097151|0,0)|0;a=I;c=f&2097151;i=Os(o|0,a|0,21)|0;n=ks(i|0,I|0,n&2097151|0,0)|0;i=I;t=o&2097151;r[e>>0]=B;N=xs(B|0,D|0,8)|0;r[e+1>>0]=N;D=xs(B|0,D|0,16)|0;B=Cs(C|0,0,5)|0;r[e+2>>0]=B|D&31;D=xs(P|0,M|0,3)|0;r[e+3>>0]=D;M=xs(P|0,M|0,11)|0;r[e+4>>0]=M;C=xs(C|0,0,19)|0;M=I;P=Cs(R|0,0,2)|0;r[e+5>>0]=P|C;x=xs(O|0,x|0,6)|0;r[e+6>>0]=x;R=xs(R|0,0,14)|0;x=I;O=Cs(k|0,0,7)|0;r[e+7>>0]=O|R;R=xs(S|0,T|0,1)|0;r[e+8>>0]=R;T=xs(S|0,T|0,9)|0;r[e+9>>0]=T;k=xs(k|0,0,17)|0;T=I;S=Cs(A|0,0,4)|0;r[e+10>>0]=S|k;k=xs(w|0,E|0,4)|0;r[e+11>>0]=k;E=xs(w|0,E|0,12)|0;r[e+12>>0]=E;A=xs(A|0,0,20)|0;E=I;w=Cs(b|0,0,1)|0;r[e+13>>0]=w|A;v=xs(_|0,v|0,7)|0;r[e+14>>0]=v;b=xs(b|0,0,15)|0;v=I;_=Cs(m|0,0,6)|0;r[e+15>>0]=_|b;b=xs(g|0,y|0,2)|0;r[e+16>>0]=b;y=xs(g|0,y|0,10)|0;r[e+17>>0]=y;m=xs(m|0,0,18)|0;y=I;g=Cs(p|0,h|0,3)|0;r[e+18>>0]=g|m;m=xs(p|0,h|0,5)|0;r[e+19>>0]=m;h=xs(p|0,h|0,13)|0;r[e+20>>0]=h;r[e+21>>0]=d;h=xs(d|0,l|0,8)|0;r[e+22>>0]=h;l=xs(d|0,l|0,16)|0;d=Cs(c|0,0,5)|0;r[e+23>>0]=d|l&31;l=xs(f|0,u|0,3)|0;r[e+24>>0]=l;u=xs(f|0,u|0,11)|0;r[e+25>>0]=u;c=xs(c|0,0,19)|0;u=I;f=Cs(t|0,0,2)|0;r[e+26>>0]=f|c;a=xs(o|0,a|0,6)|0;r[e+27>>0]=a;t=xs(t|0,0,14)|0;a=I;o=Cs(n|0,i|0,7)|0;r[e+28>>0]=o|t;t=xs(n|0,i|0,1)|0;r[e+29>>0]=t;t=xs(n|0,i|0,9)|0;r[e+30>>0]=t;i=Os(n|0,i|0,17)|0;r[e+31>>0]=i;return}function ni(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0;Q=t+40|0;u=t+44|0;h=t+48|0;g=t+52|0;_=t+56|0;w=t+60|0;S=t+64|0;R=t+68|0;C=t+72|0;O=t+76|0;G=t+4|0;K=t+8|0;i=t+12|0;d=t+16|0;p=t+20|0;A=t+24|0;E=t+28|0;x=t+32|0;q=t+36|0;se=(o[G>>2]|0)+(o[u>>2]|0)|0;oe=(o[K>>2]|0)+(o[h>>2]|0)|0;ie=(o[i>>2]|0)+(o[g>>2]|0)|0;re=(o[d>>2]|0)+(o[_>>2]|0)|0;ne=(o[p>>2]|0)+(o[w>>2]|0)|0;te=(o[A>>2]|0)+(o[S>>2]|0)|0;ee=(o[E>>2]|0)+(o[R>>2]|0)|0;$=(o[x>>2]|0)+(o[C>>2]|0)|0;X=(o[q>>2]|0)+(o[O>>2]|0)|0;o[e>>2]=(o[t>>2]|0)+(o[Q>>2]|0);ae=e+4|0;o[ae>>2]=se;se=e+8|0;o[se>>2]=oe;oe=e+12|0;o[oe>>2]=ie;ie=e+16|0;o[ie>>2]=re;re=e+20|0;o[re>>2]=ne;ne=e+24|0;o[ne>>2]=te;te=e+28|0;o[te>>2]=ee;ee=e+32|0;o[ee>>2]=$;$=e+36|0;o[$>>2]=X;X=e+40|0;G=(o[u>>2]|0)-(o[G>>2]|0)|0;K=(o[h>>2]|0)-(o[K>>2]|0)|0;i=(o[g>>2]|0)-(o[i>>2]|0)|0;d=(o[_>>2]|0)-(o[d>>2]|0)|0;p=(o[w>>2]|0)-(o[p>>2]|0)|0;A=(o[S>>2]|0)-(o[A>>2]|0)|0;E=(o[R>>2]|0)-(o[E>>2]|0)|0;x=(o[C>>2]|0)-(o[x>>2]|0)|0;q=(o[O>>2]|0)-(o[q>>2]|0)|0;o[X>>2]=(o[Q>>2]|0)-(o[t>>2]|0);Q=e+44|0;o[Q>>2]=G;G=e+48|0;o[G>>2]=K;K=e+52|0;o[K>>2]=i;i=e+56|0;o[i>>2]=d;d=e+60|0;o[d>>2]=p;p=e+64|0;o[p>>2]=A;A=e+68|0;o[A>>2]=E;E=e+72|0;o[E>>2]=x;x=e+76|0;o[x>>2]=q;q=e+80|0;Xr(q,e,n);Xr(X,X,n+40|0);O=e+120|0;Xr(O,n+120|0,t+120|0);Xr(e,t+80|0,n+80|0);C=o[e>>2]<<1;R=o[ae>>2]<<1;S=o[se>>2]<<1;w=o[oe>>2]<<1;_=o[ie>>2]<<1;g=o[re>>2]<<1;h=o[ne>>2]<<1;u=o[te>>2]<<1;a=o[ee>>2]<<1;r=o[$>>2]<<1;J=o[q>>2]|0;F=e+84|0;W=o[F>>2]|0;L=e+88|0;H=o[L>>2]|0;U=e+92|0;t=o[U>>2]|0;j=e+96|0;s=o[j>>2]|0;N=e+100|0;c=o[N>>2]|0;B=e+104|0;m=o[B>>2]|0;D=e+108|0;y=o[D>>2]|0;M=e+112|0;k=o[M>>2]|0;P=e+116|0;I=o[P>>2]|0;Z=o[X>>2]|0;Y=o[Q>>2]|0;V=o[G>>2]|0;z=o[K>>2]|0;n=o[i>>2]|0;f=o[d>>2]|0;l=o[p>>2]|0;b=o[A>>2]|0;v=o[E>>2]|0;T=o[x>>2]|0;o[e>>2]=J-Z;o[ae>>2]=W-Y;o[se>>2]=H-V;o[oe>>2]=t-z;o[ie>>2]=s-n;o[re>>2]=c-f;o[ne>>2]=m-l;o[te>>2]=y-b;o[ee>>2]=k-v;o[$>>2]=I-T;o[X>>2]=Z+J;o[Q>>2]=Y+W;o[G>>2]=V+H;o[K>>2]=z+t;o[i>>2]=n+s;o[d>>2]=f+c;o[p>>2]=l+m;o[A>>2]=b+y;o[E>>2]=v+k;o[x>>2]=T+I;x=o[O>>2]|0;I=e+124|0;T=o[I>>2]|0;E=e+128|0;k=o[E>>2]|0;v=e+132|0;A=o[v>>2]|0;y=e+136|0;b=o[y>>2]|0;p=e+140|0;m=o[p>>2]|0;l=e+144|0;d=o[l>>2]|0;c=e+148|0;f=o[c>>2]|0;i=e+152|0;s=o[i>>2]|0;n=e+156|0;t=o[n>>2]|0;o[q>>2]=x+C;o[F>>2]=T+R;o[L>>2]=k+S;o[U>>2]=A+w;o[j>>2]=b+_;o[N>>2]=m+g;o[B>>2]=d+h;o[D>>2]=f+u;o[M>>2]=s+a;o[P>>2]=t+r;o[O>>2]=C-x;o[I>>2]=R-T;o[E>>2]=S-k;o[v>>2]=w-A;o[y>>2]=_-b;o[p>>2]=g-m;o[l>>2]=h-d;o[c>>2]=u-f;o[i>>2]=a-s;o[n>>2]=r-t;return}function ri(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var s=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0;v=h;h=h+2400|0;d=v+2272|0;m=v+1536|0;g=v+1280|0;y=v;b=v+2112|0;_=v+1952|0;l=v+1792|0;ii(m,t);ii(g,i);oi(y,n);w=o[n+4>>2]|0;A=o[n+8>>2]|0;u=o[n+12>>2]|0;t=o[n+16>>2]|0;f=o[n+20>>2]|0;c=o[n+24>>2]|0;a=o[n+28>>2]|0;s=o[n+32>>2]|0;i=o[n+36>>2]|0;o[d>>2]=o[n>>2];o[d+4>>2]=w;o[d+8>>2]=A;o[d+12>>2]=u;o[d+16>>2]=t;o[d+20>>2]=f;o[d+24>>2]=c;o[d+28>>2]=a;o[d+32>>2]=s;o[d+36>>2]=i;i=o[n+44>>2]|0;s=o[n+48>>2]|0;a=o[n+52>>2]|0;c=o[n+56>>2]|0;f=o[n+60>>2]|0;t=o[n+64>>2]|0;u=o[n+68>>2]|0;A=o[n+72>>2]|0;w=o[n+76>>2]|0;o[d+40>>2]=o[n+40>>2];o[d+44>>2]=i;o[d+48>>2]=s;o[d+52>>2]=a;o[d+56>>2]=c;o[d+60>>2]=f;o[d+64>>2]=t;o[d+68>>2]=u;o[d+72>>2]=A;o[d+76>>2]=w;w=o[n+84>>2]|0;A=o[n+88>>2]|0;u=o[n+92>>2]|0;t=o[n+96>>2]|0;f=o[n+100>>2]|0;c=o[n+104>>2]|0;a=o[n+108>>2]|0;s=o[n+112>>2]|0;i=o[n+116>>2]|0;o[d+80>>2]=o[n+80>>2];o[d+84>>2]=w;o[d+88>>2]=A;o[d+92>>2]=u;o[d+96>>2]=t;o[d+100>>2]=f;o[d+104>>2]=c;o[d+108>>2]=a;o[d+112>>2]=s;o[d+116>>2]=i;si(b,d);d=b+120|0;Xr(l,b,d);i=b+40|0;s=b+80|0;Xr(l+40|0,i,s);Xr(l+80|0,s,d);Xr(l+120|0,b,i);ni(b,l,y);Xr(_,b,d);a=_+40|0;Xr(a,i,s);c=_+80|0;Xr(c,s,d);f=_+120|0;Xr(f,b,i);t=y+160|0;oi(t,_);ni(b,l,t);Xr(_,b,d);Xr(a,i,s);Xr(c,s,d);Xr(f,b,i);t=y+320|0;oi(t,_);ni(b,l,t);Xr(_,b,d);Xr(a,i,s);Xr(c,s,d);Xr(f,b,i);t=y+480|0;oi(t,_);ni(b,l,t);Xr(_,b,d);Xr(a,i,s);Xr(c,s,d);Xr(f,b,i);t=y+640|0;oi(t,_);ni(b,l,t);Xr(_,b,d);Xr(a,i,s);Xr(c,s,d);Xr(f,b,i);t=y+800|0;oi(t,_);ni(b,l,t);Xr(_,b,d);Xr(a,i,s);Xr(c,s,d);Xr(f,b,i);t=y+960|0;oi(t,_);ni(b,l,t);Xr(_,b,d);Xr(a,i,s);Xr(c,s,d);Xr(f,b,i);oi(y+1120|0,_);t=e;n=t+40|0;do{o[t>>2]=0;t=t+4|0}while((t|0)<(n|0));u=e+40|0;o[u>>2]=1;t=e+44|0;n=t+36|0;do{o[t>>2]=0;t=t+4|0}while((t|0)<(n|0));l=e+80|0;o[l>>2]=1;t=e+84|0;n=t+36|0;do{o[t>>2]=0;t=t+4|0}while((t|0)<(n|0));t=255;while(1){if(r[m+t>>0]|0)break;if(r[g+t>>0]|0)break;if(!t){p=16;break}else t=t+-1|0}if((p|0)==16){h=v;return}if((t|0)<=-1){h=v;return}while(1){si(b,e);n=r[m+t>>0]|0;if(n<<24>>24<=0){if(n<<24>>24<0){Xr(_,b,d);Xr(a,i,s);Xr(c,s,d);Xr(f,b,i);ai(b,_,y+((((n<<24>>24)/-2|0)<<24>>24)*160|0)|0)}}else{Xr(_,b,d);Xr(a,i,s);Xr(c,s,d);Xr(f,b,i);ni(b,_,y+(((n&255)>>>1&255)*160|0)|0)}n=r[g+t>>0]|0;if(n<<24>>24<=0){if(n<<24>>24<0){Xr(_,b,d);Xr(a,i,s);Xr(c,s,d);Xr(f,b,i);fi(b,_,240+((((n<<24>>24)/-2|0)<<24>>24)*120|0)|0)}}else{Xr(_,b,d);Xr(a,i,s);Xr(c,s,d);Xr(f,b,i);ci(b,_,240+(((n&255)>>>1&255)*120|0)|0)}Xr(e,b,d);Xr(u,i,s);Xr(l,s,d);if((t|0)>0)t=t+-1|0;else break}h=v;return}function ii(e,t){e=e|0;t=t|0;var n=0,i=0,o=0,a=0,c=0,f=0,u=0,l=0,d=0;n=0;do{r[e+n>>0]=(s[t+(n>>>3)>>0]|0)>>>(n&7)&1;n=n+1|0}while((n|0)!=256);u=0;do{f=e+u|0;n=r[f>>0]|0;c=u;u=u+1|0;e:do{if(n<<24>>24!=0&u>>>0<256){o=e+u|0;t=r[o>>0]|0;t:do{if(t<<24>>24){i=n<<24>>24;n=t<<24>>24<<1;t=n+i|0;if((t|0)<16){r[f>>0]=t;r[o>>0]=0;break}n=i-n|0;if((n|0)<=-16)break e;r[f>>0]=n;n=u;while(1){t=e+n|0;if(!(r[t>>0]|0))break;r[t>>0]=0;if(n>>>0<255)n=n+1|0;else break t}r[t>>0]=1}}while(0);n=c+2|0;if(n>>>0<256){o=e+n|0;t=r[o>>0]|0;t:do{if(t<<24>>24){a=r[f>>0]|0;t=t<<24>>24<<2;i=t+a|0;if((i|0)<16){r[f>>0]=i;r[o>>0]=0;break}t=a-t|0;if((t|0)<=-16)break e;r[f>>0]=t;while(1){t=e+n|0;if(!(r[t>>0]|0))break;r[t>>0]=0;if(n>>>0<255)n=n+1|0;else break t}r[t>>0]=1}}while(0);n=c+3|0;if(n>>>0<256){o=e+n|0;t=r[o>>0]|0;t:do{if(t<<24>>24){a=r[f>>0]|0;t=t<<24>>24<<3;i=t+a|0;if((i|0)<16){r[f>>0]=i;r[o>>0]=0;break}t=a-t|0;if((t|0)<=-16)break e;r[f>>0]=t;while(1){t=e+n|0;if(!(r[t>>0]|0))break;r[t>>0]=0;if(n>>>0<255)n=n+1|0;else break t}r[t>>0]=1}}while(0);n=c+4|0;if(n>>>0<256){o=e+n|0;t=r[o>>0]|0;t:do{if(t<<24>>24){a=r[f>>0]|0;t=t<<24>>24<<4;i=t+a|0;if((i|0)<16){r[f>>0]=i;r[o>>0]=0;break}t=a-t|0;if((t|0)<=-16)break e;r[f>>0]=t;while(1){t=e+n|0;if(!(r[t>>0]|0))break;r[t>>0]=0;if(n>>>0<255)n=n+1|0;else break t}r[t>>0]=1}}while(0);n=c+5|0;if(n>>>0<256){o=e+n|0;t=r[o>>0]|0;t:do{if(t<<24>>24){a=r[f>>0]|0;t=t<<24>>24<<5;i=t+a|0;if((i|0)<16){r[f>>0]=i;r[o>>0]=0;break}t=a-t|0;if((t|0)<=-16)break e;r[f>>0]=t;while(1){t=e+n|0;if(!(r[t>>0]|0))break;r[t>>0]=0;if(n>>>0<255)n=n+1|0;else break t}r[t>>0]=1}}while(0);n=c+6|0;if(n>>>0<256?(l=e+n|0,d=r[l>>0]|0,d<<24>>24):0){t=r[f>>0]|0;i=d<<24>>24<<6;o=i+t|0;if((o|0)<16){r[f>>0]=o;r[l>>0]=0;break}t=t-i|0;if((t|0)>-16){r[f>>0]=t;while(1){t=e+n|0;if(!(r[t>>0]|0))break;r[t>>0]=0;if(n>>>0<255)n=n+1|0;else break e}r[t>>0]=1}}}}}}}}while(0)}while((u|0)!=256);return}function oi(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0;d=t+40|0;A=t+44|0;v=t+48|0;_=t+52|0;b=t+56|0;y=t+60|0;g=t+64|0;m=t+68|0;p=t+72|0;h=t+76|0;n=t+4|0;r=t+8|0;i=t+12|0;s=t+16|0;a=t+20|0;c=t+24|0;f=t+28|0;u=t+32|0;l=t+36|0;x=(o[n>>2]|0)+(o[A>>2]|0)|0;O=(o[r>>2]|0)+(o[v>>2]|0)|0;R=(o[i>>2]|0)+(o[_>>2]|0)|0;T=(o[s>>2]|0)+(o[b>>2]|0)|0;I=(o[a>>2]|0)+(o[y>>2]|0)|0;S=(o[c>>2]|0)+(o[g>>2]|0)|0;k=(o[f>>2]|0)+(o[m>>2]|0)|0;E=(o[u>>2]|0)+(o[p>>2]|0)|0;w=(o[l>>2]|0)+(o[h>>2]|0)|0;o[e>>2]=(o[t>>2]|0)+(o[d>>2]|0);o[e+4>>2]=x;o[e+8>>2]=O;o[e+12>>2]=R;o[e+16>>2]=T;o[e+20>>2]=I;o[e+24>>2]=S;o[e+28>>2]=k;o[e+32>>2]=E;o[e+36>>2]=w;n=(o[A>>2]|0)-(o[n>>2]|0)|0;r=(o[v>>2]|0)-(o[r>>2]|0)|0;i=(o[_>>2]|0)-(o[i>>2]|0)|0;s=(o[b>>2]|0)-(o[s>>2]|0)|0;a=(o[y>>2]|0)-(o[a>>2]|0)|0;c=(o[g>>2]|0)-(o[c>>2]|0)|0;f=(o[m>>2]|0)-(o[f>>2]|0)|0;u=(o[p>>2]|0)-(o[u>>2]|0)|0;l=(o[h>>2]|0)-(o[l>>2]|0)|0;o[e+40>>2]=(o[d>>2]|0)-(o[t>>2]|0);o[e+44>>2]=n;o[e+48>>2]=r;o[e+52>>2]=i;o[e+56>>2]=s;o[e+60>>2]=a;o[e+64>>2]=c;o[e+68>>2]=f;o[e+72>>2]=u;o[e+76>>2]=l;l=o[t+84>>2]|0;u=o[t+88>>2]|0;f=o[t+92>>2]|0;c=o[t+96>>2]|0;a=o[t+100>>2]|0;s=o[t+104>>2]|0;i=o[t+108>>2]|0;r=o[t+112>>2]|0;n=o[t+116>>2]|0;o[e+80>>2]=o[t+80>>2];o[e+84>>2]=l;o[e+88>>2]=u;o[e+92>>2]=f;o[e+96>>2]=c;o[e+100>>2]=a;o[e+104>>2]=s;o[e+108>>2]=i;o[e+112>>2]=r;o[e+116>>2]=n;Xr(e+120|0,t+120|0,1200);return}function si(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0,ce=0,fe=0,ue=0;n=h;h=h+48|0;D=n;Yr(e,t);G=e+80|0;fe=t+40|0;Yr(G,fe);A=e+120|0;$r(A,t+80|0);ue=e+40|0;ce=(o[t+44>>2]|0)+(o[t+4>>2]|0)|0;ae=(o[t+48>>2]|0)+(o[t+8>>2]|0)|0;se=(o[t+52>>2]|0)+(o[t+12>>2]|0)|0;oe=(o[t+56>>2]|0)+(o[t+16>>2]|0)|0;ie=(o[t+60>>2]|0)+(o[t+20>>2]|0)|0;re=(o[t+64>>2]|0)+(o[t+24>>2]|0)|0;ne=(o[t+68>>2]|0)+(o[t+28>>2]|0)|0;te=(o[t+72>>2]|0)+(o[t+32>>2]|0)|0;ee=(o[t+76>>2]|0)+(o[t+36>>2]|0)|0;o[ue>>2]=(o[fe>>2]|0)+(o[t>>2]|0);fe=e+44|0;o[fe>>2]=ce;ce=e+48|0;o[ce>>2]=ae;ae=e+52|0;o[ae>>2]=se;se=e+56|0;o[se>>2]=oe;oe=e+60|0;o[oe>>2]=ie;ie=e+64|0;o[ie>>2]=re;re=e+68|0;o[re>>2]=ne;ne=e+72|0;o[ne>>2]=te;te=e+76|0;o[te>>2]=ee;Yr(D,ue);ee=o[G>>2]|0;z=e+84|0;$=o[z>>2]|0;K=e+88|0;Z=o[K>>2]|0;q=e+92|0;J=o[q>>2]|0;F=e+96|0;X=o[F>>2]|0;L=e+100|0;Y=o[L>>2]|0;U=e+104|0;W=o[U>>2]|0;j=e+108|0;Q=o[j>>2]|0;N=e+112|0;V=o[N>>2]|0;B=e+116|0;H=o[B>>2]|0;w=o[e>>2]|0;C=e+4|0;v=o[C>>2]|0;O=e+8|0;b=o[O>>2]|0;T=e+12|0;g=o[T>>2]|0;S=e+16|0;p=o[S>>2]|0;t=e+20|0;l=o[t>>2]|0;s=e+24|0;f=o[s>>2]|0;u=e+28|0;a=o[u>>2]|0;m=e+32|0;i=o[m>>2]|0;_=e+36|0;E=o[_>>2]|0;M=w+ee|0;P=v+$|0;x=b+Z|0;R=g+J|0;I=p+X|0;k=l+Y|0;r=f+W|0;c=a+Q|0;d=i+V|0;y=E+H|0;o[ue>>2]=M;o[fe>>2]=P;o[ce>>2]=x;o[ae>>2]=R;o[se>>2]=I;o[oe>>2]=k;o[ie>>2]=r;o[re>>2]=c;o[ne>>2]=d;o[te>>2]=y;w=ee-w|0;v=$-v|0;b=Z-b|0;g=J-g|0;p=X-p|0;l=Y-l|0;f=W-f|0;a=Q-a|0;i=V-i|0;E=H-E|0;o[G>>2]=w;o[z>>2]=v;o[K>>2]=b;o[q>>2]=g;o[F>>2]=p;o[L>>2]=l;o[U>>2]=f;o[j>>2]=a;o[N>>2]=i;o[B>>2]=E;P=(o[D+4>>2]|0)-P|0;x=(o[D+8>>2]|0)-x|0;R=(o[D+12>>2]|0)-R|0;I=(o[D+16>>2]|0)-I|0;k=(o[D+20>>2]|0)-k|0;r=(o[D+24>>2]|0)-r|0;c=(o[D+28>>2]|0)-c|0;d=(o[D+32>>2]|0)-d|0;y=(o[D+36>>2]|0)-y|0;o[e>>2]=(o[D>>2]|0)-M;o[C>>2]=P;o[O>>2]=x;o[T>>2]=R;o[S>>2]=I;o[t>>2]=k;o[s>>2]=r;o[u>>2]=c;o[m>>2]=d;o[_>>2]=y;_=e+124|0;y=e+128|0;m=e+132|0;d=e+136|0;u=e+140|0;c=e+144|0;s=e+148|0;r=e+152|0;t=e+156|0;v=(o[_>>2]|0)-v|0;b=(o[y>>2]|0)-b|0;g=(o[m>>2]|0)-g|0;p=(o[d>>2]|0)-p|0;l=(o[u>>2]|0)-l|0;f=(o[c>>2]|0)-f|0;a=(o[s>>2]|0)-a|0;i=(o[r>>2]|0)-i|0;e=(o[t>>2]|0)-E|0;o[A>>2]=(o[A>>2]|0)-w;o[_>>2]=v;o[y>>2]=b;o[m>>2]=g;o[d>>2]=p;o[u>>2]=l;o[c>>2]=f;o[s>>2]=a;o[r>>2]=i;o[t>>2]=e;h=n;return}function ai(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0;Q=t+40|0;c=t+44|0;l=t+48|0;p=t+52|0;y=t+56|0;v=t+60|0;E=t+64|0;I=t+68|0;O=t+72|0;R=t+76|0;G=t+4|0;q=t+8|0;r=t+12|0;d=t+16|0;h=t+20|0;A=t+24|0;w=t+28|0;x=t+32|0;F=t+36|0;se=(o[G>>2]|0)+(o[c>>2]|0)|0;oe=(o[q>>2]|0)+(o[l>>2]|0)|0;ie=(o[r>>2]|0)+(o[p>>2]|0)|0;re=(o[d>>2]|0)+(o[y>>2]|0)|0;ne=(o[h>>2]|0)+(o[v>>2]|0)|0;te=(o[A>>2]|0)+(o[E>>2]|0)|0;ee=(o[w>>2]|0)+(o[I>>2]|0)|0;$=(o[x>>2]|0)+(o[O>>2]|0)|0;X=(o[F>>2]|0)+(o[R>>2]|0)|0;o[e>>2]=(o[t>>2]|0)+(o[Q>>2]|0);ae=e+4|0;o[ae>>2]=se;se=e+8|0;o[se>>2]=oe;oe=e+12|0;o[oe>>2]=ie;ie=e+16|0;o[ie>>2]=re;re=e+20|0;o[re>>2]=ne;ne=e+24|0;o[ne>>2]=te;te=e+28|0;o[te>>2]=ee;ee=e+32|0;o[ee>>2]=$;$=e+36|0;o[$>>2]=X;X=e+40|0;G=(o[c>>2]|0)-(o[G>>2]|0)|0;q=(o[l>>2]|0)-(o[q>>2]|0)|0;r=(o[p>>2]|0)-(o[r>>2]|0)|0;d=(o[y>>2]|0)-(o[d>>2]|0)|0;h=(o[v>>2]|0)-(o[h>>2]|0)|0;A=(o[E>>2]|0)-(o[A>>2]|0)|0;w=(o[I>>2]|0)-(o[w>>2]|0)|0;x=(o[O>>2]|0)-(o[x>>2]|0)|0;F=(o[R>>2]|0)-(o[F>>2]|0)|0;o[X>>2]=(o[Q>>2]|0)-(o[t>>2]|0);Q=e+44|0;o[Q>>2]=G;G=e+48|0;o[G>>2]=q;q=e+52|0;o[q>>2]=r;r=e+56|0;o[r>>2]=d;d=e+60|0;o[d>>2]=h;h=e+64|0;o[h>>2]=A;A=e+68|0;o[A>>2]=w;w=e+72|0;o[w>>2]=x;x=e+76|0;o[x>>2]=F;F=e+80|0;Xr(F,e,n+40|0);Xr(X,X,n);R=e+120|0;Xr(R,n+120|0,t+120|0);Xr(e,t+80|0,n+80|0);O=o[e>>2]<<1;I=o[ae>>2]<<1;E=o[se>>2]<<1;v=o[oe>>2]<<1;y=o[ie>>2]<<1;p=o[re>>2]<<1;l=o[ne>>2]<<1;c=o[te>>2]<<1;i=o[ee>>2]<<1;t=o[$>>2]<<1;J=o[F>>2]|0;L=e+84|0;W=o[L>>2]|0;U=e+88|0;H=o[U>>2]|0;j=e+92|0;K=o[j>>2]|0;N=e+96|0;s=o[N>>2]|0;B=e+100|0;a=o[B>>2]|0;D=e+104|0;m=o[D>>2]|0;M=e+108|0;g=o[M>>2]|0;P=e+112|0;k=o[P>>2]|0;C=e+116|0;S=o[C>>2]|0;Z=o[X>>2]|0;Y=o[Q>>2]|0;V=o[G>>2]|0;z=o[q>>2]|0;n=o[r>>2]|0;f=o[d>>2]|0;u=o[h>>2]|0;b=o[A>>2]|0;_=o[w>>2]|0;T=o[x>>2]|0;o[e>>2]=J-Z;o[ae>>2]=W-Y;o[se>>2]=H-V;o[oe>>2]=K-z;o[ie>>2]=s-n;o[re>>2]=a-f;o[ne>>2]=m-u;o[te>>2]=g-b;o[ee>>2]=k-_;o[$>>2]=S-T;o[X>>2]=Z+J;o[Q>>2]=Y+W;o[G>>2]=V+H;o[q>>2]=z+K;o[r>>2]=n+s;o[d>>2]=f+a;o[h>>2]=u+m;o[A>>2]=b+g;o[w>>2]=_+k;o[x>>2]=T+S;x=o[R>>2]|0;S=e+124|0;T=o[S>>2]|0;w=e+128|0;k=o[w>>2]|0;_=e+132|0;A=o[_>>2]|0;g=e+136|0;b=o[g>>2]|0;h=e+140|0;m=o[h>>2]|0;u=e+144|0;d=o[u>>2]|0;a=e+148|0;f=o[a>>2]|0;r=e+152|0;s=o[r>>2]|0;n=e+156|0;e=o[n>>2]|0;o[F>>2]=O-x;o[L>>2]=I-T;o[U>>2]=E-k;o[j>>2]=v-A;o[N>>2]=y-b;o[B>>2]=p-m;o[D>>2]=l-d;o[M>>2]=c-f;o[P>>2]=i-s;o[C>>2]=t-e;o[R>>2]=x+O;o[S>>2]=T+I;o[w>>2]=k+E;o[_>>2]=A+v;o[g>>2]=b+y;o[h>>2]=m+p;o[u>>2]=d+l;o[a>>2]=f+c;o[r>>2]=s+i;o[n>>2]=e+t;return}function ci(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0;Q=t+40|0;u=t+44|0;h=t+48|0;g=t+52|0;_=t+56|0;w=t+60|0;S=t+64|0;R=t+68|0;C=t+72|0;O=t+76|0;G=t+4|0;K=t+8|0;i=t+12|0;d=t+16|0;p=t+20|0;A=t+24|0;E=t+28|0;x=t+32|0;q=t+36|0;se=(o[G>>2]|0)+(o[u>>2]|0)|0;oe=(o[K>>2]|0)+(o[h>>2]|0)|0;ie=(o[i>>2]|0)+(o[g>>2]|0)|0;re=(o[d>>2]|0)+(o[_>>2]|0)|0;ne=(o[p>>2]|0)+(o[w>>2]|0)|0;te=(o[A>>2]|0)+(o[S>>2]|0)|0;ee=(o[E>>2]|0)+(o[R>>2]|0)|0;$=(o[x>>2]|0)+(o[C>>2]|0)|0;X=(o[q>>2]|0)+(o[O>>2]|0)|0;o[e>>2]=(o[t>>2]|0)+(o[Q>>2]|0);ae=e+4|0;o[ae>>2]=se;se=e+8|0;o[se>>2]=oe;oe=e+12|0;o[oe>>2]=ie;ie=e+16|0;o[ie>>2]=re;re=e+20|0;o[re>>2]=ne;ne=e+24|0;o[ne>>2]=te;te=e+28|0;o[te>>2]=ee;ee=e+32|0;o[ee>>2]=$;$=e+36|0;o[$>>2]=X;X=e+40|0;G=(o[u>>2]|0)-(o[G>>2]|0)|0;K=(o[h>>2]|0)-(o[K>>2]|0)|0;i=(o[g>>2]|0)-(o[i>>2]|0)|0;d=(o[_>>2]|0)-(o[d>>2]|0)|0;p=(o[w>>2]|0)-(o[p>>2]|0)|0;A=(o[S>>2]|0)-(o[A>>2]|0)|0;E=(o[R>>2]|0)-(o[E>>2]|0)|0;x=(o[C>>2]|0)-(o[x>>2]|0)|0;q=(o[O>>2]|0)-(o[q>>2]|0)|0;o[X>>2]=(o[Q>>2]|0)-(o[t>>2]|0);Q=e+44|0;o[Q>>2]=G;G=e+48|0;o[G>>2]=K;K=e+52|0;o[K>>2]=i;i=e+56|0;o[i>>2]=d;d=e+60|0;o[d>>2]=p;p=e+64|0;o[p>>2]=A;A=e+68|0;o[A>>2]=E;E=e+72|0;o[E>>2]=x;x=e+76|0;o[x>>2]=q;q=e+80|0;Xr(q,e,n);Xr(X,X,n+40|0);O=e+120|0;Xr(O,n+80|0,t+120|0);C=o[t+80>>2]<<1;R=o[t+84>>2]<<1;S=o[t+88>>2]<<1;w=o[t+92>>2]<<1;_=o[t+96>>2]<<1;g=o[t+100>>2]<<1;h=o[t+104>>2]<<1;u=o[t+108>>2]<<1;a=o[t+112>>2]<<1;r=o[t+116>>2]<<1;J=o[q>>2]|0;F=e+84|0;W=o[F>>2]|0;L=e+88|0;H=o[L>>2]|0;U=e+92|0;t=o[U>>2]|0;j=e+96|0;s=o[j>>2]|0;N=e+100|0;c=o[N>>2]|0;B=e+104|0;m=o[B>>2]|0;D=e+108|0;y=o[D>>2]|0;M=e+112|0;k=o[M>>2]|0;P=e+116|0;I=o[P>>2]|0;Z=o[X>>2]|0;Y=o[Q>>2]|0;V=o[G>>2]|0;z=o[K>>2]|0;n=o[i>>2]|0;f=o[d>>2]|0;l=o[p>>2]|0;b=o[A>>2]|0;v=o[E>>2]|0;T=o[x>>2]|0;o[e>>2]=J-Z;o[ae>>2]=W-Y;o[se>>2]=H-V;o[oe>>2]=t-z;o[ie>>2]=s-n;o[re>>2]=c-f;o[ne>>2]=m-l;o[te>>2]=y-b;o[ee>>2]=k-v;o[$>>2]=I-T;o[X>>2]=Z+J;o[Q>>2]=Y+W;o[G>>2]=V+H;o[K>>2]=z+t;o[i>>2]=n+s;o[d>>2]=f+c;o[p>>2]=l+m;o[A>>2]=b+y;o[E>>2]=v+k;o[x>>2]=T+I;x=o[O>>2]|0;I=e+124|0;T=o[I>>2]|0;E=e+128|0;k=o[E>>2]|0;v=e+132|0;A=o[v>>2]|0;y=e+136|0;b=o[y>>2]|0;p=e+140|0;m=o[p>>2]|0;l=e+144|0;d=o[l>>2]|0;c=e+148|0;f=o[c>>2]|0;i=e+152|0;s=o[i>>2]|0;n=e+156|0;t=o[n>>2]|0;o[q>>2]=x+C;o[F>>2]=T+R;o[L>>2]=k+S;o[U>>2]=A+w;o[j>>2]=b+_;o[N>>2]=m+g;o[B>>2]=d+h;o[D>>2]=f+u;o[M>>2]=s+a;o[P>>2]=t+r;o[O>>2]=C-x;o[I>>2]=R-T;o[E>>2]=S-k;o[v>>2]=w-A;o[y>>2]=_-b;o[p>>2]=g-m;o[l>>2]=h-d;o[c>>2]=u-f;o[i>>2]=a-s;o[n>>2]=r-t;return}function fi(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0;Q=t+40|0;c=t+44|0;l=t+48|0;p=t+52|0;y=t+56|0;v=t+60|0;E=t+64|0;I=t+68|0;O=t+72|0;R=t+76|0;G=t+4|0;q=t+8|0;r=t+12|0;d=t+16|0;h=t+20|0;A=t+24|0;w=t+28|0;x=t+32|0;F=t+36|0;se=(o[G>>2]|0)+(o[c>>2]|0)|0;oe=(o[q>>2]|0)+(o[l>>2]|0)|0;ie=(o[r>>2]|0)+(o[p>>2]|0)|0;re=(o[d>>2]|0)+(o[y>>2]|0)|0;ne=(o[h>>2]|0)+(o[v>>2]|0)|0;te=(o[A>>2]|0)+(o[E>>2]|0)|0;ee=(o[w>>2]|0)+(o[I>>2]|0)|0;$=(o[x>>2]|0)+(o[O>>2]|0)|0;X=(o[F>>2]|0)+(o[R>>2]|0)|0;o[e>>2]=(o[t>>2]|0)+(o[Q>>2]|0);ae=e+4|0;o[ae>>2]=se;se=e+8|0;o[se>>2]=oe;oe=e+12|0;o[oe>>2]=ie;ie=e+16|0;o[ie>>2]=re;re=e+20|0;o[re>>2]=ne;ne=e+24|0;o[ne>>2]=te;te=e+28|0;o[te>>2]=ee;ee=e+32|0;o[ee>>2]=$;$=e+36|0;o[$>>2]=X;X=e+40|0;G=(o[c>>2]|0)-(o[G>>2]|0)|0;q=(o[l>>2]|0)-(o[q>>2]|0)|0;r=(o[p>>2]|0)-(o[r>>2]|0)|0;d=(o[y>>2]|0)-(o[d>>2]|0)|0;h=(o[v>>2]|0)-(o[h>>2]|0)|0;A=(o[E>>2]|0)-(o[A>>2]|0)|0;w=(o[I>>2]|0)-(o[w>>2]|0)|0;x=(o[O>>2]|0)-(o[x>>2]|0)|0;F=(o[R>>2]|0)-(o[F>>2]|0)|0;o[X>>2]=(o[Q>>2]|0)-(o[t>>2]|0);Q=e+44|0;o[Q>>2]=G;G=e+48|0;o[G>>2]=q;q=e+52|0;o[q>>2]=r;r=e+56|0;o[r>>2]=d;d=e+60|0;o[d>>2]=h;h=e+64|0;o[h>>2]=A;A=e+68|0;o[A>>2]=w;w=e+72|0;o[w>>2]=x;x=e+76|0;o[x>>2]=F;F=e+80|0;Xr(F,e,n+40|0);Xr(X,X,n);R=e+120|0;Xr(R,n+80|0,t+120|0);O=o[t+80>>2]<<1;I=o[t+84>>2]<<1;E=o[t+88>>2]<<1;v=o[t+92>>2]<<1;y=o[t+96>>2]<<1;p=o[t+100>>2]<<1;l=o[t+104>>2]<<1;c=o[t+108>>2]<<1;i=o[t+112>>2]<<1;t=o[t+116>>2]<<1;J=o[F>>2]|0;L=e+84|0;W=o[L>>2]|0;U=e+88|0;H=o[U>>2]|0;j=e+92|0;K=o[j>>2]|0;N=e+96|0;s=o[N>>2]|0;B=e+100|0;a=o[B>>2]|0;D=e+104|0;m=o[D>>2]|0;M=e+108|0;g=o[M>>2]|0;P=e+112|0;k=o[P>>2]|0;C=e+116|0;S=o[C>>2]|0;Z=o[X>>2]|0;Y=o[Q>>2]|0;V=o[G>>2]|0;z=o[q>>2]|0;n=o[r>>2]|0;f=o[d>>2]|0;u=o[h>>2]|0;b=o[A>>2]|0;_=o[w>>2]|0;T=o[x>>2]|0;o[e>>2]=J-Z;o[ae>>2]=W-Y;o[se>>2]=H-V;o[oe>>2]=K-z;o[ie>>2]=s-n;o[re>>2]=a-f;o[ne>>2]=m-u;o[te>>2]=g-b;o[ee>>2]=k-_;o[$>>2]=S-T;o[X>>2]=Z+J;o[Q>>2]=Y+W;o[G>>2]=V+H;o[q>>2]=z+K;o[r>>2]=n+s;o[d>>2]=f+a;o[h>>2]=u+m;o[A>>2]=b+g;o[w>>2]=_+k;o[x>>2]=T+S;x=o[R>>2]|0;S=e+124|0;T=o[S>>2]|0;w=e+128|0;k=o[w>>2]|0;_=e+132|0;A=o[_>>2]|0;g=e+136|0;b=o[g>>2]|0;h=e+140|0;m=o[h>>2]|0;u=e+144|0;d=o[u>>2]|0;a=e+148|0;f=o[a>>2]|0;r=e+152|0;s=o[r>>2]|0;n=e+156|0;e=o[n>>2]|0;o[F>>2]=O-x;o[L>>2]=I-T;o[U>>2]=E-k;o[j>>2]=v-A;o[N>>2]=y-b;o[B>>2]=p-m;o[D>>2]=l-d;o[M>>2]=c-f;o[P>>2]=i-s;o[C>>2]=t-e;o[R>>2]=x+O;o[S>>2]=T+I;o[w>>2]=k+E;o[_>>2]=A+v;o[g>>2]=b+y;o[h>>2]=m+p;o[u>>2]=d+l;o[a>>2]=f+c;o[r>>2]=s+i;o[n>>2]=e+t;return}function ui(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0,ce=0,fe=0,ue=0,le=0,de=0,he=0,pe=0,me=0;me=h;h=h+272|0;ue=me+240|0;le=me+192|0;c=me+144|0;f=me+96|0;de=me+48|0;he=me;pe=e+40|0;Qr(pe,t);u=e+80|0;o[u>>2]=1;a=e+84|0;n=a;i=n+36|0;do{o[n>>2]=0;n=n+4|0}while((n|0)<(i|0));Yr(le,pe);Xr(c,le,1248);te=le+4|0;ne=le+8|0;re=le+12|0;ie=le+16|0;oe=le+20|0;se=le+24|0;ae=le+28|0;ce=le+32|0;fe=le+36|0;x=o[u>>2]|0;O=o[a>>2]|0;T=o[e+88>>2]|0;S=o[e+92>>2]|0;E=o[e+96>>2]|0;A=o[e+100>>2]|0;i=o[e+104>>2]|0;ee=o[e+108>>2]|0;Z=o[e+112>>2]|0;X=o[e+116>>2]|0;_=(o[le>>2]|0)-x|0;v=(o[te>>2]|0)-O|0;u=(o[ne>>2]|0)-T|0;l=(o[re>>2]|0)-S|0;d=(o[ie>>2]|0)-E|0;p=(o[oe>>2]|0)-A|0;m=(o[se>>2]|0)-i|0;g=(o[ae>>2]|0)-ee|0;y=(o[ce>>2]|0)-Z|0;b=(o[fe>>2]|0)-X|0;o[le>>2]=_;o[te>>2]=v;o[ne>>2]=u;o[re>>2]=l;o[ie>>2]=d;o[oe>>2]=p;o[se>>2]=m;o[ae>>2]=g;o[ce>>2]=y;o[fe>>2]=b;R=c+4|0;I=c+8|0;k=c+12|0;w=c+16|0;a=c+20|0;n=c+24|0;$=c+28|0;J=c+32|0;Y=c+36|0;O=(o[R>>2]|0)+O|0;T=(o[I>>2]|0)+T|0;S=(o[k>>2]|0)+S|0;E=(o[w>>2]|0)+E|0;A=(o[a>>2]|0)+A|0;i=(o[n>>2]|0)+i|0;ee=(o[$>>2]|0)+ee|0;Z=(o[J>>2]|0)+Z|0;X=(o[Y>>2]|0)+X|0;o[c>>2]=(o[c>>2]|0)+x;o[R>>2]=O;o[I>>2]=T;o[k>>2]=S;o[w>>2]=E;o[a>>2]=A;o[n>>2]=i;o[$>>2]=ee;o[J>>2]=Z;o[Y>>2]=X;Yr(f,c);Xr(f,f,c);Yr(e,f);Xr(e,e,c);Xr(e,e,le);Zr(e,e);Xr(e,e,f);Xr(e,e,le);Yr(de,e);Xr(de,de,c);Y=de+4|0;X=de+8|0;J=de+12|0;Z=de+16|0;$=de+20|0;ee=de+24|0;n=de+28|0;i=de+32|0;a=de+36|0;f=(o[Y>>2]|0)-v|0;u=(o[X>>2]|0)-u|0;l=(o[J>>2]|0)-l|0;d=(o[Z>>2]|0)-d|0;p=(o[$>>2]|0)-p|0;m=(o[ee>>2]|0)-m|0;g=(o[n>>2]|0)-g|0;y=(o[i>>2]|0)-y|0;b=(o[a>>2]|0)-b|0;o[he>>2]=(o[de>>2]|0)-_;c=he+4|0;o[c>>2]=f;f=he+8|0;o[f>>2]=u;u=he+12|0;o[u>>2]=l;l=he+16|0;o[l>>2]=d;d=he+20|0;o[d>>2]=p;p=he+24|0;o[p>>2]=m;m=he+28|0;o[m>>2]=g;g=he+32|0;o[g>>2]=y;y=he+36|0;o[y>>2]=b;Jr(ue,he);b=ue+1|0;_=ue+2|0;v=ue+3|0;A=ue+4|0;w=ue+5|0;E=ue+6|0;k=ue+7|0;S=ue+8|0;I=ue+9|0;T=ue+10|0;R=ue+11|0;O=ue+12|0;x=ue+13|0;C=ue+14|0;P=ue+15|0;M=ue+16|0;D=ue+17|0;B=ue+18|0;N=ue+19|0;j=ue+20|0;U=ue+21|0;L=ue+22|0;F=ue+23|0;q=ue+24|0;K=ue+25|0;z=ue+26|0;G=ue+27|0;H=ue+28|0;V=ue+29|0;Q=ue+30|0;W=ue+31|0;do{if((r[b>>0]|r[ue>>0]|r[_>>0]|r[v>>0]|r[A>>0]|r[w>>0]|r[E>>0]|r[k>>0]|r[S>>0]|r[I>>0]|r[T>>0]|r[R>>0]|r[O>>0]|r[x>>0]|r[C>>0]|r[P>>0]|r[M>>0]|r[D>>0]|r[B>>0]|r[N>>0]|r[j>>0]|r[U>>0]|r[L>>0]|r[F>>0]|r[q>>0]|r[K>>0]|r[z>>0]|r[G>>0]|r[H>>0]|r[V>>0]|r[Q>>0]|r[W>>0])<<24>>24){te=(o[te>>2]|0)+(o[Y>>2]|0)|0;ne=(o[ne>>2]|0)+(o[X>>2]|0)|0;re=(o[re>>2]|0)+(o[J>>2]|0)|0;ie=(o[ie>>2]|0)+(o[Z>>2]|0)|0;oe=(o[oe>>2]|0)+(o[$>>2]|0)|0;se=(o[se>>2]|0)+(o[ee>>2]|0)|0;ae=(o[ae>>2]|0)+(o[n>>2]|0)|0;ce=(o[ce>>2]|0)+(o[i>>2]|0)|0;fe=(o[fe>>2]|0)+(o[a>>2]|0)|0;o[he>>2]=(o[le>>2]|0)+(o[de>>2]|0);o[c>>2]=te;o[f>>2]=ne;o[u>>2]=re;o[l>>2]=ie;o[d>>2]=oe;o[p>>2]=se;o[m>>2]=ae;o[g>>2]=ce;o[y>>2]=fe;Jr(ue,he);if(!((r[b>>0]|r[ue>>0]|r[_>>0]|r[v>>0]|r[A>>0]|r[w>>0]|r[E>>0]|r[k>>0]|r[S>>0]|r[I>>0]|r[T>>0]|r[R>>0]|r[O>>0]|r[x>>0]|r[C>>0]|r[P>>0]|r[M>>0]|r[D>>0]|r[B>>0]|r[N>>0]|r[j>>0]|r[U>>0]|r[L>>0]|r[F>>0]|r[q>>0]|r[K>>0]|r[z>>0]|r[G>>0]|r[H>>0]|r[V>>0]|r[Q>>0]|r[W>>0])<<24>>24)){Xr(e,e,1296);break}else{pe=-1;h=me;return pe|0}}}while(0);Jr(ue,e);if(((s[t+31>>0]|0)>>>7|0)==(r[ue>>0]&1|0)){Z=e+4|0;ee=e+8|0;ne=e+12|0;ie=e+16|0;se=e+20|0;ce=e+24|0;t=e+28|0;le=e+32|0;he=e+36|0;J=0-(o[Z>>2]|0)|0;$=0-(o[ee>>2]|0)|0;te=0-(o[ne>>2]|0)|0;re=0-(o[ie>>2]|0)|0;oe=0-(o[se>>2]|0)|0;ae=0-(o[ce>>2]|0)|0;fe=0-(o[t>>2]|0)|0;ue=0-(o[le>>2]|0)|0;de=0-(o[he>>2]|0)|0;o[e>>2]=0-(o[e>>2]|0);o[Z>>2]=J;o[ee>>2]=$;o[ne>>2]=te;o[ie>>2]=re;o[se>>2]=oe;o[ce>>2]=ae;o[t>>2]=fe;o[le>>2]=ue;o[he>>2]=de}Xr(e+120|0,e,pe);pe=0;h=me;return pe|0}function li(e,t){e=e|0;t=t|0;var n=0,i=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0;_=h;h=h+592|0;p=_+464|0;g=_;y=_+304|0;m=_+184|0;b=_+64|0;i=r[t>>0]|0;r[g>>0]=i&15;r[g+1>>0]=(i&255)>>>4;i=r[t+1>>0]|0;r[g+2>>0]=i&15;r[g+3>>0]=(i&255)>>>4;i=r[t+2>>0]|0;r[g+4>>0]=i&15;r[g+5>>0]=(i&255)>>>4;i=r[t+3>>0]|0;r[g+6>>0]=i&15;r[g+7>>0]=(i&255)>>>4;i=r[t+4>>0]|0;r[g+8>>0]=i&15;r[g+9>>0]=(i&255)>>>4;i=r[t+5>>0]|0;r[g+10>>0]=i&15;r[g+11>>0]=(i&255)>>>4;i=r[t+6>>0]|0;r[g+12>>0]=i&15;r[g+13>>0]=(i&255)>>>4;i=r[t+7>>0]|0;r[g+14>>0]=i&15;r[g+15>>0]=(i&255)>>>4;i=r[t+8>>0]|0;r[g+16>>0]=i&15;r[g+17>>0]=(i&255)>>>4;i=r[t+9>>0]|0;r[g+18>>0]=i&15;r[g+19>>0]=(i&255)>>>4;i=r[t+10>>0]|0;r[g+20>>0]=i&15;r[g+21>>0]=(i&255)>>>4;i=r[t+11>>0]|0;r[g+22>>0]=i&15;r[g+23>>0]=(i&255)>>>4;i=r[t+12>>0]|0;r[g+24>>0]=i&15;r[g+25>>0]=(i&255)>>>4;i=r[t+13>>0]|0;r[g+26>>0]=i&15;r[g+27>>0]=(i&255)>>>4;i=r[t+14>>0]|0;r[g+28>>0]=i&15;r[g+29>>0]=(i&255)>>>4;i=r[t+15>>0]|0;r[g+30>>0]=i&15;r[g+31>>0]=(i&255)>>>4;i=r[t+16>>0]|0;r[g+32>>0]=i&15;r[g+33>>0]=(i&255)>>>4;i=r[t+17>>0]|0;r[g+34>>0]=i&15;r[g+35>>0]=(i&255)>>>4;i=r[t+18>>0]|0;r[g+36>>0]=i&15;r[g+37>>0]=(i&255)>>>4;i=r[t+19>>0]|0;r[g+38>>0]=i&15;r[g+39>>0]=(i&255)>>>4;i=r[t+20>>0]|0;r[g+40>>0]=i&15;r[g+41>>0]=(i&255)>>>4;i=r[t+21>>0]|0;r[g+42>>0]=i&15;r[g+43>>0]=(i&255)>>>4;i=r[t+22>>0]|0;r[g+44>>0]=i&15;r[g+45>>0]=(i&255)>>>4;i=r[t+23>>0]|0;r[g+46>>0]=i&15;r[g+47>>0]=(i&255)>>>4;i=r[t+24>>0]|0;r[g+48>>0]=i&15;r[g+49>>0]=(i&255)>>>4;i=r[t+25>>0]|0;r[g+50>>0]=i&15;r[g+51>>0]=(i&255)>>>4;i=r[t+26>>0]|0;r[g+52>>0]=i&15;r[g+53>>0]=(i&255)>>>4;i=r[t+27>>0]|0;r[g+54>>0]=i&15;r[g+55>>0]=(i&255)>>>4;i=r[t+28>>0]|0;r[g+56>>0]=i&15;r[g+57>>0]=(i&255)>>>4;i=r[t+29>>0]|0;r[g+58>>0]=i&15;r[g+59>>0]=(i&255)>>>4;i=r[t+30>>0]|0;r[g+60>>0]=i&15;r[g+61>>0]=(i&255)>>>4;t=r[t+31>>0]|0;r[g+62>>0]=t&15;i=g+63|0;r[i>>0]=(t&255)>>>4;t=0;n=0;do{d=g+n|0;l=t+(s[d>>0]|0)|0;t=(l<<24)+134217728>>28;r[d>>0]=l-(t<<4);n=n+1|0}while((n|0)!=63);r[i>>0]=t+(s[i>>0]|0);t=e;n=t+40|0;do{o[t>>2]=0;t=t+4|0}while((t|0)<(n|0));l=e+40|0;o[l>>2]=1;f=e+44|0;t=f;n=t+36|0;do{o[t>>2]=0;t=t+4|0}while((t|0)<(n|0));d=e+80|0;o[d>>2]=1;u=e+84|0;t=u;n=t+76|0;do{o[t>>2]=0;t=t+4|0}while((t|0)<(n|0));n=y+120|0;i=y+40|0;a=y+80|0;c=e+120|0;t=1;do{di(b,t>>>1,r[g+t>>0]|0);ci(y,e,b);Xr(e,y,n);Xr(l,i,a);Xr(d,a,n);Xr(c,y,i);t=t+2|0}while(t>>>0<64);T=o[e+4>>2]|0;S=o[e+8>>2]|0;k=o[e+12>>2]|0;E=o[e+16>>2]|0;w=o[e+20>>2]|0;A=o[e+24>>2]|0;v=o[e+28>>2]|0;t=o[e+32>>2]|0;I=o[e+36>>2]|0;o[p>>2]=o[e>>2];o[p+4>>2]=T;o[p+8>>2]=S;o[p+12>>2]=k;o[p+16>>2]=E;o[p+20>>2]=w;o[p+24>>2]=A;o[p+28>>2]=v;o[p+32>>2]=t;o[p+36>>2]=I;I=o[f>>2]|0;t=o[e+48>>2]|0;f=o[e+52>>2]|0;v=o[e+56>>2]|0;A=o[e+60>>2]|0;w=o[e+64>>2]|0;E=o[e+68>>2]|0;k=o[e+72>>2]|0;S=o[e+76>>2]|0;o[p+40>>2]=o[l>>2];o[p+44>>2]=I;o[p+48>>2]=t;o[p+52>>2]=f;o[p+56>>2]=v;o[p+60>>2]=A;o[p+64>>2]=w;o[p+68>>2]=E;o[p+72>>2]=k;o[p+76>>2]=S;S=o[u>>2]|0;k=o[e+88>>2]|0;E=o[e+92>>2]|0;w=o[e+96>>2]|0;A=o[e+100>>2]|0;v=o[e+104>>2]|0;f=o[e+108>>2]|0;u=o[e+112>>2]|0;t=o[e+116>>2]|0;o[p+80>>2]=o[d>>2];o[p+84>>2]=S;o[p+88>>2]=k;o[p+92>>2]=E;o[p+96>>2]=w;o[p+100>>2]=A;o[p+104>>2]=v;o[p+108>>2]=f;o[p+112>>2]=u;o[p+116>>2]=t;si(y,p);Xr(m,y,n);p=m+40|0;Xr(p,i,a);t=m+80|0;Xr(t,a,n);si(y,m);Xr(m,y,n);Xr(p,i,a);Xr(t,a,n);si(y,m);Xr(m,y,n);Xr(p,i,a);Xr(t,a,n);si(y,m);Xr(e,y,n);Xr(l,i,a);Xr(d,a,n);Xr(c,y,i);t=0;do{di(b,t>>>1,r[g+t>>0]|0);ci(y,e,b);Xr(e,y,n);Xr(l,i,a);Xr(d,a,n);Xr(c,y,i);t=t+2|0}while(t>>>0<64);h=_;return}function di(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0,ce=0,fe=0,ue=0,le=0,de=0,he=0,pe=0,me=0,ge=0,ye=0,be=0,_e=0,ve=0;r=n<<24>>24;b=0-((n&255)>>>7&255)|0;n=r-((b&r)<<1)&255;o[e>>2]=1;r=e+4|0;_=r;v=_+36|0;do{o[_>>2]=0;_=_+4|0}while((_|0)<(v|0));i=e+40|0;o[i>>2]=1;s=e+44|0;a=e+80|0;c=ks((n^1)&255|0,0,-1,-1)|0;c=xs(c|0,I|0,63)|0;f=1344+(t*960|0)|0;u=e+8|0;l=e+12|0;d=e+16|0;h=e+20|0;p=e+24|0;m=e+28|0;g=e+32|0;y=e+36|0;_=s;v=_+76|0;do{o[_>>2]=0;_=_+4|0}while((_|0)<(v|0));ve=0-c|0;ye=o[1344+(t*960|0)+4>>2]&ve;ge=o[1344+(t*960|0)+8>>2]&ve;me=o[1344+(t*960|0)+12>>2]&ve;pe=o[1344+(t*960|0)+16>>2]&ve;he=o[1344+(t*960|0)+20>>2]&ve;de=o[1344+(t*960|0)+24>>2]&ve;le=o[1344+(t*960|0)+28>>2]&ve;ue=o[1344+(t*960|0)+32>>2]&ve;fe=o[1344+(t*960|0)+36>>2]&ve;be=(o[f>>2]^1)&ve^1;o[e>>2]=be;o[r>>2]=ye;o[u>>2]=ge;o[l>>2]=me;o[d>>2]=pe;o[h>>2]=he;o[p>>2]=de;o[m>>2]=le;o[g>>2]=ue;o[y>>2]=fe;ne=e+48|0;$=e+52|0;X=e+56|0;Q=e+60|0;G=e+64|0;q=e+68|0;U=e+72|0;B=e+76|0;oe=o[1344+(t*960|0)+44>>2]&ve;re=o[1344+(t*960|0)+48>>2]&ve;ee=o[1344+(t*960|0)+52>>2]&ve;J=o[1344+(t*960|0)+56>>2]&ve;W=o[1344+(t*960|0)+60>>2]&ve;H=o[1344+(t*960|0)+64>>2]&ve;K=o[1344+(t*960|0)+68>>2]&ve;L=o[1344+(t*960|0)+72>>2]&ve;N=o[1344+(t*960|0)+76>>2]&ve;ae=(o[1344+(t*960|0)+40>>2]^1)&ve^1;o[i>>2]=ae;o[s>>2]=oe;o[ne>>2]=re;o[$>>2]=ee;o[X>>2]=J;o[Q>>2]=W;o[G>>2]=H;o[q>>2]=K;o[U>>2]=L;o[B>>2]=N;D=o[a>>2]|0;P=e+84|0;M=o[P>>2]|0;x=e+88|0;C=o[x>>2]|0;R=e+92|0;O=o[R>>2]|0;S=e+96|0;T=o[S>>2]|0;E=e+100|0;k=o[E>>2]|0;A=e+104|0;w=o[A>>2]|0;c=e+108|0;Z=o[c>>2]|0;_=e+112|0;f=o[_>>2]|0;v=e+116|0;se=o[v>>2]|0;ie=(o[1344+(t*960|0)+84>>2]^M)&ve;te=(o[1344+(t*960|0)+88>>2]^C)&ve;Y=(o[1344+(t*960|0)+92>>2]^O)&ve;V=(o[1344+(t*960|0)+96>>2]^T)&ve;z=(o[1344+(t*960|0)+100>>2]^k)&ve;F=(o[1344+(t*960|0)+104>>2]^w)&ve;j=(o[1344+(t*960|0)+108>>2]^Z)&ve;ce=(o[1344+(t*960|0)+112>>2]^f)&ve;_e=(o[1344+(t*960|0)+116>>2]^se)&ve;D=(o[1344+(t*960|0)+80>>2]^D)&ve^D;o[a>>2]=D;M=ie^M;o[P>>2]=M;C=te^C;o[x>>2]=C;O=Y^O;o[R>>2]=O;T=V^T;o[S>>2]=T;k=z^k;o[E>>2]=k;w=F^w;o[A>>2]=w;Z=j^Z;o[c>>2]=Z;f=ce^f;o[_>>2]=f;se=_e^se;o[v>>2]=se;_e=ks((n^2)&255|0,0,-1,-1)|0;_e=xs(_e|0,I|0,63)|0;_e=0-_e|0;ce=(o[1344+(t*960|0)+124>>2]^ye)&_e;j=(o[1344+(t*960|0)+128>>2]^ge)&_e;F=(o[1344+(t*960|0)+132>>2]^me)&_e;z=(o[1344+(t*960|0)+136>>2]^pe)&_e;V=(o[1344+(t*960|0)+140>>2]^he)&_e;Y=(o[1344+(t*960|0)+144>>2]^de)&_e;te=(o[1344+(t*960|0)+148>>2]^le)&_e;ie=(o[1344+(t*960|0)+152>>2]^ue)&_e;ve=(o[1344+(t*960|0)+156>>2]^fe)&_e;be=(o[1344+(t*960|0)+120>>2]^be)&_e^be;o[e>>2]=be;ye=ce^ye;o[r>>2]=ye;ge=j^ge;o[u>>2]=ge;me=F^me;o[l>>2]=me;pe=z^pe;o[d>>2]=pe;he=V^he;o[h>>2]=he;de=Y^de;o[p>>2]=de;le=te^le;o[m>>2]=le;ue=ie^ue;o[g>>2]=ue;fe=ve^fe;o[y>>2]=fe;ve=(o[1344+(t*960|0)+164>>2]^oe)&_e;ie=(o[1344+(t*960|0)+168>>2]^re)&_e;te=(o[1344+(t*960|0)+172>>2]^ee)&_e;Y=(o[1344+(t*960|0)+176>>2]^J)&_e;V=(o[1344+(t*960|0)+180>>2]^W)&_e;z=(o[1344+(t*960|0)+184>>2]^H)&_e;F=(o[1344+(t*960|0)+188>>2]^K)&_e;j=(o[1344+(t*960|0)+192>>2]^L)&_e;ce=(o[1344+(t*960|0)+196>>2]^N)&_e;ae=(o[1344+(t*960|0)+160>>2]^ae)&_e^ae;o[i>>2]=ae;oe=ve^oe;o[s>>2]=oe;re=ie^re;o[ne>>2]=re;ee=te^ee;o[$>>2]=ee;J=Y^J;o[X>>2]=J;W=V^W;o[Q>>2]=W;H=z^H;o[G>>2]=H;K=F^K;o[q>>2]=K;L=j^L;o[U>>2]=L;N=ce^N;o[B>>2]=N;ce=(o[1344+(t*960|0)+204>>2]^M)&_e;j=(o[1344+(t*960|0)+208>>2]^C)&_e;F=(o[1344+(t*960|0)+212>>2]^O)&_e;z=(o[1344+(t*960|0)+216>>2]^T)&_e;V=(o[1344+(t*960|0)+220>>2]^k)&_e;Y=(o[1344+(t*960|0)+224>>2]^w)&_e;te=(o[1344+(t*960|0)+228>>2]^Z)&_e;ie=(o[1344+(t*960|0)+232>>2]^f)&_e;ve=(o[1344+(t*960|0)+236>>2]^se)&_e;D=(o[1344+(t*960|0)+200>>2]^D)&_e^D;o[a>>2]=D;M=ce^M;o[P>>2]=M;C=j^C;o[x>>2]=C;O=F^O;o[R>>2]=O;T=z^T;o[S>>2]=T;k=V^k;o[E>>2]=k;w=Y^w;o[A>>2]=w;Z=te^Z;o[c>>2]=Z;f=ie^f;o[_>>2]=f;se=ve^se;o[v>>2]=se;ve=ks((n^3)&255|0,0,-1,-1)|0;ve=xs(ve|0,I|0,63)|0;ve=0-ve|0;ie=(o[1344+(t*960|0)+244>>2]^ye)&ve;te=(o[1344+(t*960|0)+248>>2]^ge)&ve;Y=(o[1344+(t*960|0)+252>>2]^me)&ve;V=(o[1344+(t*960|0)+256>>2]^pe)&ve;z=(o[1344+(t*960|0)+260>>2]^he)&ve;F=(o[1344+(t*960|0)+264>>2]^de)&ve;j=(o[1344+(t*960|0)+268>>2]^le)&ve;ce=(o[1344+(t*960|0)+272>>2]^ue)&ve;_e=(o[1344+(t*960|0)+276>>2]^fe)&ve;be=(o[1344+(t*960|0)+240>>2]^be)&ve^be;o[e>>2]=be;ye=ie^ye;o[r>>2]=ye;ge=te^ge;o[u>>2]=ge;me=Y^me;o[l>>2]=me;pe=V^pe;o[d>>2]=pe;he=z^he;o[h>>2]=he;de=F^de;o[p>>2]=de;le=j^le;o[m>>2]=le;ue=ce^ue;o[g>>2]=ue;fe=_e^fe;o[y>>2]=fe;_e=(o[1344+(t*960|0)+284>>2]^oe)&ve;ce=(o[1344+(t*960|0)+288>>2]^re)&ve;j=(o[1344+(t*960|0)+292>>2]^ee)&ve;F=(o[1344+(t*960|0)+296>>2]^J)&ve;z=(o[1344+(t*960|0)+300>>2]^W)&ve;V=(o[1344+(t*960|0)+304>>2]^H)&ve;Y=(o[1344+(t*960|0)+308>>2]^K)&ve;te=(o[1344+(t*960|0)+312>>2]^L)&ve;ie=(o[1344+(t*960|0)+316>>2]^N)&ve;ae=(o[1344+(t*960|0)+280>>2]^ae)&ve^ae;o[i>>2]=ae;oe=_e^oe;o[s>>2]=oe;re=ce^re;o[ne>>2]=re;ee=j^ee;o[$>>2]=ee;J=F^J;o[X>>2]=J;W=z^W;o[Q>>2]=W;H=V^H;o[G>>2]=H;K=Y^K;o[q>>2]=K;L=te^L;o[U>>2]=L;N=ie^N;o[B>>2]=N;ie=(o[1344+(t*960|0)+324>>2]^M)&ve;te=(o[1344+(t*960|0)+328>>2]^C)&ve;Y=(o[1344+(t*960|0)+332>>2]^O)&ve;V=(o[1344+(t*960|0)+336>>2]^T)&ve;z=(o[1344+(t*960|0)+340>>2]^k)&ve;F=(o[1344+(t*960|0)+344>>2]^w)&ve;j=(o[1344+(t*960|0)+348>>2]^Z)&ve;ce=(o[1344+(t*960|0)+352>>2]^f)&ve;_e=(o[1344+(t*960|0)+356>>2]^se)&ve;D=(o[1344+(t*960|0)+320>>2]^D)&ve^D;o[a>>2]=D;M=ie^M;o[P>>2]=M;C=te^C;o[x>>2]=C;O=Y^O;o[R>>2]=O;T=V^T;o[S>>2]=T;k=z^k;o[E>>2]=k;w=F^w;o[A>>2]=w;Z=j^Z;o[c>>2]=Z;f=ce^f;o[_>>2]=f;se=_e^se;o[v>>2]=se;_e=ks((n^4)&255|0,0,-1,-1)|0;_e=xs(_e|0,I|0,63)|0;_e=0-_e|0;ce=(o[1344+(t*960|0)+364>>2]^ye)&_e;j=(o[1344+(t*960|0)+368>>2]^ge)&_e;F=(o[1344+(t*960|0)+372>>2]^me)&_e;z=(o[1344+(t*960|0)+376>>2]^pe)&_e;V=(o[1344+(t*960|0)+380>>2]^he)&_e;Y=(o[1344+(t*960|0)+384>>2]^de)&_e;te=(o[1344+(t*960|0)+388>>2]^le)&_e;ie=(o[1344+(t*960|0)+392>>2]^ue)&_e;ve=(o[1344+(t*960|0)+396>>2]^fe)&_e;be=(o[1344+(t*960|0)+360>>2]^be)&_e^be;o[e>>2]=be;ye=ce^ye;o[r>>2]=ye;ge=j^ge;o[u>>2]=ge;me=F^me;o[l>>2]=me;pe=z^pe;o[d>>2]=pe;he=V^he;o[h>>2]=he;de=Y^de;o[p>>2]=de;le=te^le;o[m>>2]=le;ue=ie^ue;o[g>>2]=ue;fe=ve^fe;o[y>>2]=fe;ve=(o[1344+(t*960|0)+404>>2]^oe)&_e;ie=(o[1344+(t*960|0)+408>>2]^re)&_e;te=(o[1344+(t*960|0)+412>>2]^ee)&_e;Y=(o[1344+(t*960|0)+416>>2]^J)&_e;V=(o[1344+(t*960|0)+420>>2]^W)&_e;z=(o[1344+(t*960|0)+424>>2]^H)&_e;F=(o[1344+(t*960|0)+428>>2]^K)&_e;j=(o[1344+(t*960|0)+432>>2]^L)&_e;ce=(o[1344+(t*960|0)+436>>2]^N)&_e;ae=(o[1344+(t*960|0)+400>>2]^ae)&_e^ae;o[i>>2]=ae;oe=ve^oe;o[s>>2]=oe;re=ie^re;o[ne>>2]=re;ee=te^ee;o[$>>2]=ee;J=Y^J;o[X>>2]=J;W=V^W;o[Q>>2]=W;H=z^H;o[G>>2]=H;K=F^K;o[q>>2]=K;L=j^L;o[U>>2]=L;N=ce^N;o[B>>2]=N;ce=(o[1344+(t*960|0)+444>>2]^M)&_e;j=(o[1344+(t*960|0)+448>>2]^C)&_e;F=(o[1344+(t*960|0)+452>>2]^O)&_e;z=(o[1344+(t*960|0)+456>>2]^T)&_e;V=(o[1344+(t*960|0)+460>>2]^k)&_e;Y=(o[1344+(t*960|0)+464>>2]^w)&_e;te=(o[1344+(t*960|0)+468>>2]^Z)&_e;ie=(o[1344+(t*960|0)+472>>2]^f)&_e;ve=(o[1344+(t*960|0)+476>>2]^se)&_e;D=(o[1344+(t*960|0)+440>>2]^D)&_e^D;o[a>>2]=D;M=ce^M;o[P>>2]=M;C=j^C;o[x>>2]=C;O=F^O;o[R>>2]=O;T=z^T;o[S>>2]=T;k=V^k;o[E>>2]=k;w=Y^w;o[A>>2]=w;Z=te^Z;o[c>>2]=Z;f=ie^f;o[_>>2]=f;se=ve^se;o[v>>2]=se;ve=ks((n^5)&255|0,0,-1,-1)|0;ve=xs(ve|0,I|0,63)|0;ve=0-ve|0;ie=(o[1344+(t*960|0)+484>>2]^ye)&ve;te=(o[1344+(t*960|0)+488>>2]^ge)&ve;Y=(o[1344+(t*960|0)+492>>2]^me)&ve;V=(o[1344+(t*960|0)+496>>2]^pe)&ve;z=(o[1344+(t*960|0)+500>>2]^he)&ve;F=(o[1344+(t*960|0)+504>>2]^de)&ve;j=(o[1344+(t*960|0)+508>>2]^le)&ve;ce=(o[1344+(t*960|0)+512>>2]^ue)&ve;_e=(o[1344+(t*960|0)+516>>2]^fe)&ve;be=(o[1344+(t*960|0)+480>>2]^be)&ve^be;o[e>>2]=be;ye=ie^ye;o[r>>2]=ye;ge=te^ge;o[u>>2]=ge;me=Y^me;o[l>>2]=me;pe=V^pe;o[d>>2]=pe;he=z^he;o[h>>2]=he;de=F^de;o[p>>2]=de;le=j^le;o[m>>2]=le;ue=ce^ue;o[g>>2]=ue;fe=_e^fe;o[y>>2]=fe;_e=(o[1344+(t*960|0)+524>>2]^oe)&ve;ce=(o[1344+(t*960|0)+528>>2]^re)&ve;j=(o[1344+(t*960|0)+532>>2]^ee)&ve;F=(o[1344+(t*960|0)+536>>2]^J)&ve;z=(o[1344+(t*960|0)+540>>2]^W)&ve;V=(o[1344+(t*960|0)+544>>2]^H)&ve;Y=(o[1344+(t*960|0)+548>>2]^K)&ve;te=(o[1344+(t*960|0)+552>>2]^L)&ve;ie=(o[1344+(t*960|0)+556>>2]^N)&ve;ae=(o[1344+(t*960|0)+520>>2]^ae)&ve^ae;o[i>>2]=ae;oe=_e^oe;o[s>>2]=oe;re=ce^re;o[ne>>2]=re;ee=j^ee;o[$>>2]=ee;J=F^J;o[X>>2]=J;W=z^W;o[Q>>2]=W;H=V^H;o[G>>2]=H;K=Y^K;o[q>>2]=K;L=te^L;o[U>>2]=L;N=ie^N;o[B>>2]=N;ie=(o[1344+(t*960|0)+564>>2]^M)&ve;te=(o[1344+(t*960|0)+568>>2]^C)&ve;Y=(o[1344+(t*960|0)+572>>2]^O)&ve;V=(o[1344+(t*960|0)+576>>2]^T)&ve;z=(o[1344+(t*960|0)+580>>2]^k)&ve;F=(o[1344+(t*960|0)+584>>2]^w)&ve;j=(o[1344+(t*960|0)+588>>2]^Z)&ve;ce=(o[1344+(t*960|0)+592>>2]^f)&ve;_e=(o[1344+(t*960|0)+596>>2]^se)&ve;D=(o[1344+(t*960|0)+560>>2]^D)&ve^D;o[a>>2]=D;M=ie^M;o[P>>2]=M;C=te^C;o[x>>2]=C;O=Y^O;o[R>>2]=O;T=V^T;o[S>>2]=T;k=z^k;o[E>>2]=k;w=F^w;o[A>>2]=w;Z=j^Z;o[c>>2]=Z;f=ce^f;o[_>>2]=f;se=_e^se;o[v>>2]=se;_e=ks((n^6)&255|0,0,-1,-1)|0;_e=xs(_e|0,I|0,63)|0;_e=0-_e|0;ce=(o[1344+(t*960|0)+604>>2]^ye)&_e;j=(o[1344+(t*960|0)+608>>2]^ge)&_e;F=(o[1344+(t*960|0)+612>>2]^me)&_e;z=(o[1344+(t*960|0)+616>>2]^pe)&_e;V=(o[1344+(t*960|0)+620>>2]^he)&_e;Y=(o[1344+(t*960|0)+624>>2]^de)&_e;te=(o[1344+(t*960|0)+628>>2]^le)&_e;ie=(o[1344+(t*960|0)+632>>2]^ue)&_e;ve=(o[1344+(t*960|0)+636>>2]^fe)&_e;be=(o[1344+(t*960|0)+600>>2]^be)&_e^be;o[e>>2]=be;ye=ce^ye;o[r>>2]=ye;ge=j^ge;o[u>>2]=ge;me=F^me;o[l>>2]=me;pe=z^pe;o[d>>2]=pe;he=V^he;o[h>>2]=he;de=Y^de;o[p>>2]=de;le=te^le;o[m>>2]=le;ue=ie^ue;o[g>>2]=ue;fe=ve^fe;o[y>>2]=fe;ve=(o[1344+(t*960|0)+644>>2]^oe)&_e;ie=(o[1344+(t*960|0)+648>>2]^re)&_e;te=(o[1344+(t*960|0)+652>>2]^ee)&_e;Y=(o[1344+(t*960|0)+656>>2]^J)&_e;V=(o[1344+(t*960|0)+660>>2]^W)&_e;z=(o[1344+(t*960|0)+664>>2]^H)&_e;F=(o[1344+(t*960|0)+668>>2]^K)&_e;j=(o[1344+(t*960|0)+672>>2]^L)&_e;ce=(o[1344+(t*960|0)+676>>2]^N)&_e;ae=(o[1344+(t*960|0)+640>>2]^ae)&_e^ae;o[i>>2]=ae;oe=ve^oe;o[s>>2]=oe;re=ie^re;o[ne>>2]=re;ee=te^ee;o[$>>2]=ee;J=Y^J;o[X>>2]=J;W=V^W;o[Q>>2]=W;H=z^H;o[G>>2]=H;K=F^K;o[q>>2]=K;L=j^L;o[U>>2]=L;N=ce^N;o[B>>2]=N;ce=(o[1344+(t*960|0)+684>>2]^M)&_e;j=(o[1344+(t*960|0)+688>>2]^C)&_e;F=(o[1344+(t*960|0)+692>>2]^O)&_e;z=(o[1344+(t*960|0)+696>>2]^T)&_e;V=(o[1344+(t*960|0)+700>>2]^k)&_e;Y=(o[1344+(t*960|0)+704>>2]^w)&_e;te=(o[1344+(t*960|0)+708>>2]^Z)&_e;ie=(o[1344+(t*960|0)+712>>2]^f)&_e;ve=(o[1344+(t*960|0)+716>>2]^se)&_e;D=(o[1344+(t*960|0)+680>>2]^D)&_e^D;o[a>>2]=D;M=ce^M;o[P>>2]=M;C=j^C;o[x>>2]=C;O=F^O;o[R>>2]=O;T=z^T;o[S>>2]=T;k=V^k;o[E>>2]=k;w=Y^w;o[A>>2]=w;Z=te^Z;o[c>>2]=Z;f=ie^f;o[_>>2]=f;se=ve^se;o[v>>2]=se;ve=ks((n^7)&255|0,0,-1,-1)|0;ve=xs(ve|0,I|0,63)|0;ve=0-ve|0;ie=(o[1344+(t*960|0)+724>>2]^ye)&ve;te=(o[1344+(t*960|0)+728>>2]^ge)&ve;Y=(o[1344+(t*960|0)+732>>2]^me)&ve;V=(o[1344+(t*960|0)+736>>2]^pe)&ve;z=(o[1344+(t*960|0)+740>>2]^he)&ve;F=(o[1344+(t*960|0)+744>>2]^de)&ve;j=(o[1344+(t*960|0)+748>>2]^le)&ve;ce=(o[1344+(t*960|0)+752>>2]^ue)&ve;_e=(o[1344+(t*960|0)+756>>2]^fe)&ve;be=(o[1344+(t*960|0)+720>>2]^be)&ve^be;o[e>>2]=be;ye=ie^ye;o[r>>2]=ye;ge=te^ge;o[u>>2]=ge;me=Y^me;o[l>>2]=me;pe=V^pe;o[d>>2]=pe;he=z^he;o[h>>2]=he;de=F^de;o[p>>2]=de;le=j^le;o[m>>2]=le;ue=ce^ue;o[g>>2]=ue;fe=_e^fe;o[y>>2]=fe;_e=(o[1344+(t*960|0)+764>>2]^oe)&ve;ce=(o[1344+(t*960|0)+768>>2]^re)&ve;j=(o[1344+(t*960|0)+772>>2]^ee)&ve;F=(o[1344+(t*960|0)+776>>2]^J)&ve;z=(o[1344+(t*960|0)+780>>2]^W)&ve;V=(o[1344+(t*960|0)+784>>2]^H)&ve;Y=(o[1344+(t*960|0)+788>>2]^K)&ve;te=(o[1344+(t*960|0)+792>>2]^L)&ve;ie=(o[1344+(t*960|0)+796>>2]^N)&ve;ae=(o[1344+(t*960|0)+760>>2]^ae)&ve^ae;o[i>>2]=ae;oe=_e^oe;o[s>>2]=oe;re=ce^re;o[ne>>2]=re;ee=j^ee;o[$>>2]=ee;J=F^J;o[X>>2]=J;W=z^W;o[Q>>2]=W;H=V^H;o[G>>2]=H;K=Y^K;o[q>>2]=K;L=te^L;o[U>>2]=L;N=ie^N;o[B>>2]=N;ie=(o[1344+(t*960|0)+804>>2]^M)&ve;te=(o[1344+(t*960|0)+808>>2]^C)&ve;Y=(o[1344+(t*960|0)+812>>2]^O)&ve;V=(o[1344+(t*960|0)+816>>2]^T)&ve;z=(o[1344+(t*960|0)+820>>2]^k)&ve;F=(o[1344+(t*960|0)+824>>2]^w)&ve;j=(o[1344+(t*960|0)+828>>2]^Z)&ve;ce=(o[1344+(t*960|0)+832>>2]^f)&ve;_e=(o[1344+(t*960|0)+836>>2]^se)&ve;D=(o[1344+(t*960|0)+800>>2]^D)&ve^D;o[a>>2]=D;M=ie^M;o[P>>2]=M;C=te^C;o[x>>2]=C;O=Y^O;o[R>>2]=O;T=V^T;o[S>>2]=T;k=z^k;o[E>>2]=k;w=F^w;o[A>>2]=w;Z=j^Z;o[c>>2]=Z;f=ce^f;o[_>>2]=f;se=_e^se;o[v>>2]=se;_e=ks((n^8)&255|0,0,-1,-1)|0;_e=xs(_e|0,I|0,63)|0;_e=0-_e|0;ce=(o[1344+(t*960|0)+844>>2]^ye)&_e;j=(o[1344+(t*960|0)+848>>2]^ge)&_e;F=(o[1344+(t*960|0)+852>>2]^me)&_e;z=(o[1344+(t*960|0)+856>>2]^pe)&_e;V=(o[1344+(t*960|0)+860>>2]^he)&_e;Y=(o[1344+(t*960|0)+864>>2]^de)&_e;n=(o[1344+(t*960|0)+868>>2]^le)&_e;te=(o[1344+(t*960|0)+872>>2]^ue)&_e;ie=(o[1344+(t*960|0)+876>>2]^fe)&_e;be=(o[1344+(t*960|0)+840>>2]^be)&_e^be;o[e>>2]=be;ye=ce^ye;o[r>>2]=ye;ge=j^ge;o[u>>2]=ge;me=F^me;o[l>>2]=me;pe=z^pe;o[d>>2]=pe;he=V^he;o[h>>2]=he;de=Y^de;o[p>>2]=de;le=n^le;o[m>>2]=le;ue=te^ue;o[g>>2]=ue;fe=ie^fe;o[y>>2]=fe;ie=(o[1344+(t*960|0)+884>>2]^oe)&_e;te=(o[1344+(t*960|0)+888>>2]^re)&_e;n=(o[1344+(t*960|0)+892>>2]^ee)&_e;Y=(o[1344+(t*960|0)+896>>2]^J)&_e;V=(o[1344+(t*960|0)+900>>2]^W)&_e;z=(o[1344+(t*960|0)+904>>2]^H)&_e;F=(o[1344+(t*960|0)+908>>2]^K)&_e;j=(o[1344+(t*960|0)+912>>2]^L)&_e;ce=(o[1344+(t*960|0)+916>>2]^N)&_e;ae=(o[1344+(t*960|0)+880>>2]^ae)&_e^ae;o[i>>2]=ae;oe=ie^oe;o[s>>2]=oe;re=te^re;o[ne>>2]=re;ee=n^ee;o[$>>2]=ee;J=Y^J;o[X>>2]=J;W=V^W;o[Q>>2]=W;H=z^H;o[G>>2]=H;K=F^K;o[q>>2]=K;L=j^L;o[U>>2]=L;N=ce^N;o[B>>2]=N;ce=(o[1344+(t*960|0)+924>>2]^M)&_e;j=(o[1344+(t*960|0)+928>>2]^C)&_e;F=(o[1344+(t*960|0)+932>>2]^O)&_e;z=(o[1344+(t*960|0)+936>>2]^T)&_e;V=(o[1344+(t*960|0)+940>>2]^k)&_e;Y=(o[1344+(t*960|0)+944>>2]^w)&_e;n=(o[1344+(t*960|0)+948>>2]^Z)&_e;te=(o[1344+(t*960|0)+952>>2]^f)&_e;ie=(o[1344+(t*960|0)+956>>2]^se)&_e;D=(o[1344+(t*960|0)+920>>2]^D)&_e^D;o[a>>2]=D;M=ce^M;o[P>>2]=M;C=j^C;o[x>>2]=C;O=F^O;o[R>>2]=O;T=z^T;o[S>>2]=T;k=V^k;o[E>>2]=k;w=Y^w;o[A>>2]=w;n=n^Z;o[c>>2]=n;f=te^f;o[_>>2]=f;t=ie^se;o[v>>2]=t;se=o[r>>2]|0;ie=o[u>>2]|0;te=o[l>>2]|0;Z=o[d>>2]|0;Y=o[h>>2]|0;V=o[p>>2]|0;z=o[m>>2]|0;F=o[g>>2]|0;j=o[y>>2]|0;ce=(ae^be)&b;o[e>>2]=ce^be;o[r>>2]=(oe^ye)&b^ye;o[u>>2]=(re^ge)&b^ge;o[l>>2]=(ee^me)&b^me;o[d>>2]=(J^pe)&b^pe;o[h>>2]=(W^he)&b^he;o[p>>2]=(H^de)&b^de;o[m>>2]=(K^le)&b^le;o[g>>2]=(L^ue)&b^ue;o[y>>2]=(N^fe)&b^fe;o[i>>2]=ce^ae;o[s>>2]=(se^oe)&b^oe;o[ne>>2]=(ie^re)&b^re;o[$>>2]=(te^ee)&b^ee;o[X>>2]=(Z^J)&b^J;o[Q>>2]=(Y^W)&b^W;o[G>>2]=(V^H)&b^H;o[q>>2]=(z^K)&b^K;o[U>>2]=(F^L)&b^L;o[B>>2]=(j^N)&b^N;o[a>>2]=(D^0-D)&b^D;o[P>>2]=(M^0-M)&b^M;o[x>>2]=(C^0-C)&b^C;o[R>>2]=(O^0-O)&b^O;o[S>>2]=(T^0-T)&b^T;o[E>>2]=(k^0-k)&b^k;o[A>>2]=(w^0-w)&b^w;o[c>>2]=(n^0-n)&b^n;o[_>>2]=(f^0-f)&b^f;o[v>>2]=(t^0-t)&b^t;return}function hi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0,a=0,c=0,f=0;i=h;h=h+336|0;o=i+144|0;c=i+96|0;s=i+48|0;a=i;f=i+176|0;pi(n,32,t)|0;r[t>>0]=r[t>>0]&-8;n=t+31|0;r[n>>0]=r[n>>0]&63|64;li(f,t);Wr(c,f+80|0);Xr(s,f,c);Xr(a,f+40|0,c);Jr(e,a);Jr(o,s);n=e+31|0;r[n>>0]=r[n>>0]^r[o>>0]<<7&255;h=i;return}function pi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0,f=0,u=0,l=0;l=h;h=h+208|0;c=l;f=c+72|0;o[f>>2]=0;u=c;o[u>>2]=0;o[u+4>>2]=0;u=c+8|0;o[u>>2]=-205731576;o[u+4>>2]=1779033703;u=c+16|0;o[u>>2]=-2067093701;o[u+4>>2]=-1150833019;u=c+24|0;o[u>>2]=-23791573;o[u+4>>2]=1013904242;u=c+32|0;o[u>>2]=1595750129;o[u+4>>2]=-1521486534;u=c+40|0;o[u>>2]=-1377402159;o[u+4>>2]=1359893119;u=c+48|0;o[u>>2]=725511199;o[u+4>>2]=-1694144372;u=c+56|0;o[u>>2]=-79577749;o[u+4>>2]=528734635;u=c+64|0;o[u>>2]=327033209;o[u+4>>2]=1541459225;if(!e){u=1;h=l;return u|0}e:do{if(t|0){u=c+76|0;s=0;while(1){if(!((s|0)==0&t>>>0>127)){a=128-s|0;a=t>>>0>>0?t:a;if(a|0){i=0;do{r[i+s+(c+76)>>0]=r[e+i>>0]|0;i=i+1|0}while(i>>>0>>0)}s=s+a|0;o[f>>2]=s;e=e+a|0;t=t-a|0;if((s|0)==128){mi(c,u);s=c;s=ks(o[s>>2]|0,o[s+4>>2]|0,1024,0)|0;a=c;o[a>>2]=s;o[a+4>>2]=I;o[f>>2]=0}}else{mi(c,e);s=c;s=ks(o[s>>2]|0,o[s+4>>2]|0,1024,0)|0;a=c;o[a>>2]=s;o[a+4>>2]=I;t=t+-128|0;e=e+128|0}if(!t)break e;s=o[f>>2]|0}}}while(0);u=gi(c,n)|0;h=l;return u|0}function mi(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0;E=h;h=h+704|0;a=E+640|0;A=E;w=e+8|0;n=a;r=w;i=n+64|0;do{o[n>>2]=o[r>>2];n=n+4|0;r=r+4|0}while((n|0)<(i|0));n=0;do{b=t+(n<<3)|0;d=Cs(s[b>>0]|0|0,0,56)|0;_=I;l=Cs(s[b+1>>0]|0|0,0,48)|0;_=I|_;p=Cs(s[b+2>>0]|0|0,0,40)|0;_=_|I|(s[b+3>>0]|0);m=Cs(s[b+4>>0]|0|0,0,24)|0;_=_|I;g=Cs(s[b+5>>0]|0|0,0,16)|0;_=_|I;y=Cs(s[b+6>>0]|0|0,0,8)|0;v=A+(n<<3)|0;o[v>>2]=l|d|p|m|g|y|(s[b+7>>0]|0);o[v+4>>2]=_|I;n=n+1|0}while((n|0)!=16);i=A;n=16;r=o[i>>2]|0;i=o[i+4>>2]|0;do{u=A+(n+-2<<3)|0;k=o[u>>2]|0;u=o[u+4>>2]|0;l=xs(k|0,u|0,19)|0;p=I;d=Cs(k|0,u|0,45)|0;p=p|I;c=xs(k|0,u|0,61)|0;t=I;f=Cs(k|0,u|0,3)|0;t=t|I;u=xs(k|0,u|0,6)|0;p=t^I^p;t=A+(n+-7<<3)|0;k=o[t>>2]|0;t=o[t+4>>2]|0;b=A+(n+-15<<3)|0;T=r;r=o[b>>2]|0;S=i;i=o[b+4>>2]|0;b=xs(r|0,i|0,1)|0;_=I;v=Cs(r|0,i|0,63)|0;_=_|I;m=xs(r|0,i|0,8)|0;R=I;g=Cs(r|0,i|0,56)|0;R=R|I;y=xs(r|0,i|0,7)|0;_=R^I^_;t=ks(T|0,S|0,k|0,t|0)|0;p=ks(t|0,I|0,(c|f)^u^(l|d)|0,p|0)|0;_=ks(p|0,I|0,(m|g)^y^(b|v)|0,_|0)|0;v=A+(n<<3)|0;o[v>>2]=_;o[v+4>>2]=I;n=n+1|0}while((n|0)!=80);l=a+56|0;i=a+32|0;c=a+48|0;f=a+40|0;p=a;g=a+8|0;b=a+16|0;v=a+24|0;n=0;r=o[i>>2]|0;i=o[i+4>>2]|0;t=o[c>>2]|0;a=o[f>>2]|0;c=o[c+4>>2]|0;f=o[f+4>>2]|0;u=o[l>>2]|0;l=o[l+4>>2]|0;d=o[p>>2]|0;p=o[p+4>>2]|0;m=o[g>>2]|0;g=o[g+4>>2]|0;y=o[b>>2]|0;b=o[b+4>>2]|0;_=o[v>>2]|0;v=o[v+4>>2]|0;do{S=xs(r|0,i|0,14)|0;Q=I;T=Cs(r|0,i|0,50)|0;Q=Q|I;Y=xs(r|0,i|0,18)|0;K=I;L=Cs(r|0,i|0,46)|0;K=Q^(K|I);Q=xs(r|0,i|0,41)|0;V=I;B=Cs(r|0,i|0,23)|0;V=K^(V|I);K=32064+(n<<3)|0;C=A+(n<<3)|0;N=o[C>>2]|0;C=o[C+4>>2]|0;K=ks(o[K>>2]|0,o[K+4>>2]|0,u|0,l|0)|0;V=ks(K|0,I|0,(S|T)^(Y|L)^(Q|B)|0,V|0)|0;C=ks(V|0,I|0,N|0,C|0)|0;C=ks(C|0,I|0,(a^t)&r^t|0,(f^c)&i^c|0)|0;N=I;V=xs(d|0,p|0,28)|0;B=I;Q=Cs(d|0,p|0,36)|0;B=B|I;L=xs(d|0,p|0,34)|0;Y=I;T=Cs(d|0,p|0,30)|0;Y=B^(Y|I);B=xs(d|0,p|0,39)|0;S=I;K=Cs(d|0,p|0,25)|0;S=Y^(S|I);Y=ks(_|0,v|0,C|0,N|0)|0;F=I;N=ks((m|d)&y|m&d|0,(g|p)&b|g&p|0,C|0,N|0)|0;S=ks(N|0,I|0,(V|Q)^(L|T)^(B|K)|0,S|0)|0;K=I;B=xs(Y|0,F|0,14)|0;T=I;L=Cs(Y|0,F|0,50)|0;T=T|I;Q=xs(Y|0,F|0,18)|0;V=I;N=Cs(Y|0,F|0,46)|0;V=T^(V|I);T=xs(Y|0,F|0,41)|0;C=I;R=Cs(Y|0,F|0,23)|0;C=V^(C|I);V=n|1;H=32064+(V<<3)|0;M=o[H>>2]|0;H=o[H+4>>2]|0;V=A+(V<<3)|0;j=o[V>>2]|0;V=o[V+4>>2]|0;P=ks(Y&(a^r)^a|0,F&(f^i)^f|0,t|0,c|0)|0;H=ks(P|0,I|0,M|0,H|0)|0;V=ks(H|0,I|0,j|0,V|0)|0;C=ks(V|0,I|0,(B|L)^(Q|N)^(T|R)|0,C|0)|0;R=I;T=xs(S|0,K|0,28)|0;N=I;Q=Cs(S|0,K|0,36)|0;N=N|I;L=xs(S|0,K|0,34)|0;B=I;V=Cs(S|0,K|0,30)|0;B=N^(B|I);N=xs(S|0,K|0,39)|0;j=I;H=Cs(S|0,K|0,25)|0;j=ks((T|Q)^(L|V)^(N|H)|0,B^(j|I)|0,(S|d)&m|S&d|0,(K|p)&g|K&p|0)|0;B=I;H=ks(C|0,R|0,y|0,b|0)|0;N=I;R=ks(j|0,B|0,C|0,R|0)|0;C=I;B=xs(H|0,N|0,14)|0;j=I;V=Cs(H|0,N|0,50)|0;j=j|I;L=xs(H|0,N|0,18)|0;Q=I;T=Cs(H|0,N|0,46)|0;Q=j^(Q|I);j=xs(H|0,N|0,41)|0;M=I;P=Cs(H|0,N|0,23)|0;M=Q^(M|I);Q=n|2;q=32064+(Q<<3)|0;Q=A+(Q<<3)|0;D=o[Q>>2]|0;Q=o[Q+4>>2]|0;q=ks(o[q>>2]|0,o[q+4>>2]|0,a|0,f|0)|0;Q=ks(q|0,I|0,D|0,Q|0)|0;Q=ks(Q|0,I|0,H&(Y^r)^r|0,N&(F^i)^i|0)|0;M=ks(Q|0,I|0,(B|V)^(L|T)^(j|P)|0,M|0)|0;P=I;j=xs(R|0,C|0,28)|0;T=I;L=Cs(R|0,C|0,36)|0;T=T|I;V=xs(R|0,C|0,34)|0;B=I;Q=Cs(R|0,C|0,30)|0;B=T^(B|I);T=xs(R|0,C|0,39)|0;D=I;q=Cs(R|0,C|0,25)|0;D=ks((j|L)^(V|Q)^(T|q)|0,B^(D|I)|0,(R|S)&d|R&S|0,(C|K)&p|C&K|0)|0;B=I;q=ks(M|0,P|0,m|0,g|0)|0;T=I;P=ks(D|0,B|0,M|0,P|0)|0;M=I;B=xs(q|0,T|0,14)|0;D=I;Q=Cs(q|0,T|0,50)|0;D=D|I;V=xs(q|0,T|0,18)|0;L=I;j=Cs(q|0,T|0,46)|0;L=D^(L|I);D=xs(q|0,T|0,41)|0;O=I;x=Cs(q|0,T|0,23)|0;O=L^(O|I);L=n|3;U=32064+(L<<3)|0;L=A+(L<<3)|0;W=o[L>>2]|0;L=o[L+4>>2]|0;U=ks(o[U>>2]|0,o[U+4>>2]|0,r|0,i|0)|0;L=ks(U|0,I|0,W|0,L|0)|0;L=ks(L|0,I|0,q&(H^Y)^Y|0,T&(N^F)^F|0)|0;O=ks(L|0,I|0,(B|Q)^(V|j)^(D|x)|0,O|0)|0;x=I;D=xs(P|0,M|0,28)|0;j=I;V=Cs(P|0,M|0,36)|0;j=j|I;Q=xs(P|0,M|0,34)|0;B=I;L=Cs(P|0,M|0,30)|0;B=j^(B|I);j=xs(P|0,M|0,39)|0;W=I;U=Cs(P|0,M|0,25)|0;W=ks((D|V)^(Q|L)^(j|U)|0,B^(W|I)|0,(P|R)&S|P&R|0,(M|C)&K|M&C|0)|0;B=I;U=ks(O|0,x|0,d|0,p|0)|0;j=I;x=ks(W|0,B|0,O|0,x|0)|0;O=I;B=xs(U|0,j|0,14)|0;W=I;L=Cs(U|0,j|0,50)|0;W=W|I;Q=xs(U|0,j|0,18)|0;V=I;D=Cs(U|0,j|0,46)|0;V=W^(V|I);W=xs(U|0,j|0,41)|0;G=I;k=Cs(U|0,j|0,23)|0;G=V^(G|I);V=n|4;X=32064+(V<<3)|0;V=A+(V<<3)|0;z=o[V>>2]|0;V=o[V+4>>2]|0;F=ks(o[X>>2]|0,o[X+4>>2]|0,Y|0,F|0)|0;V=ks(F|0,I|0,z|0,V|0)|0;V=ks(V|0,I|0,U&(q^H)^H|0,j&(T^N)^N|0)|0;G=ks(V|0,I|0,(B|L)^(Q|D)^(W|k)|0,G|0)|0;k=I;W=xs(x|0,O|0,28)|0;D=I;Q=Cs(x|0,O|0,36)|0;D=D|I;L=xs(x|0,O|0,34)|0;B=I;V=Cs(x|0,O|0,30)|0;B=D^(B|I);D=xs(x|0,O|0,39)|0;z=I;F=Cs(x|0,O|0,25)|0;z=ks((W|Q)^(L|V)^(D|F)|0,B^(z|I)|0,(x|P)&R|x&P|0,(O|M)&C|O&M|0)|0;B=I;u=ks(G|0,k|0,S|0,K|0)|0;l=I;_=ks(z|0,B|0,G|0,k|0)|0;v=I;k=xs(u|0,l|0,14)|0;G=I;B=Cs(u|0,l|0,50)|0;G=G|I;z=xs(u|0,l|0,18)|0;K=I;S=Cs(u|0,l|0,46)|0;K=G^(K|I);G=xs(u|0,l|0,41)|0;F=I;D=Cs(u|0,l|0,23)|0;F=K^(F|I);K=n|5;V=32064+(K<<3)|0;K=A+(K<<3)|0;L=o[K>>2]|0;K=o[K+4>>2]|0;N=ks(o[V>>2]|0,o[V+4>>2]|0,H|0,N|0)|0;K=ks(N|0,I|0,L|0,K|0)|0;K=ks(K|0,I|0,u&(U^q)^q|0,l&(j^T)^T|0)|0;F=ks(K|0,I|0,(k|B)^(z|S)^(G|D)|0,F|0)|0;D=I;G=xs(_|0,v|0,28)|0;S=I;z=Cs(_|0,v|0,36)|0;S=S|I;B=xs(_|0,v|0,34)|0;k=I;K=Cs(_|0,v|0,30)|0;k=S^(k|I);S=xs(_|0,v|0,39)|0;L=I;N=Cs(_|0,v|0,25)|0;L=ks((G|z)^(B|K)^(S|N)|0,k^(L|I)|0,(_|x)&P|_&x|0,(v|O)&M|v&O|0)|0;k=I;t=ks(F|0,D|0,R|0,C|0)|0;c=I;y=ks(L|0,k|0,F|0,D|0)|0;b=I;D=xs(t|0,c|0,14)|0;F=I;k=Cs(t|0,c|0,50)|0;F=F|I;L=xs(t|0,c|0,18)|0;C=I;R=Cs(t|0,c|0,46)|0;C=F^(C|I);F=xs(t|0,c|0,41)|0;N=I;S=Cs(t|0,c|0,23)|0;N=C^(N|I);C=n|6;K=32064+(C<<3)|0;C=A+(C<<3)|0;B=o[C>>2]|0;C=o[C+4>>2]|0;T=ks(o[K>>2]|0,o[K+4>>2]|0,q|0,T|0)|0;C=ks(T|0,I|0,B|0,C|0)|0;C=ks(C|0,I|0,t&(u^U)^U|0,c&(l^j)^j|0)|0;N=ks(C|0,I|0,(D|k)^(L|R)^(F|S)|0,N|0)|0;S=I;F=xs(y|0,b|0,28)|0;R=I;L=Cs(y|0,b|0,36)|0;R=R|I;k=xs(y|0,b|0,34)|0;D=I;C=Cs(y|0,b|0,30)|0;D=R^(D|I);R=xs(y|0,b|0,39)|0;B=I;T=Cs(y|0,b|0,25)|0;B=ks((F|L)^(k|C)^(R|T)|0,D^(B|I)|0,(y|_)&x|y&_|0,(b|v)&O|b&v|0)|0;D=I;a=ks(N|0,S|0,P|0,M|0)|0;f=I;m=ks(B|0,D|0,N|0,S|0)|0;g=I;S=xs(a|0,f|0,14)|0;N=I;D=Cs(a|0,f|0,50)|0;N=N|I;B=xs(a|0,f|0,18)|0;M=I;P=Cs(a|0,f|0,46)|0;M=N^(M|I);N=xs(a|0,f|0,41)|0;T=I;R=Cs(a|0,f|0,23)|0;T=M^(T|I);M=n|7;C=32064+(M<<3)|0;M=A+(M<<3)|0;k=o[M>>2]|0;M=o[M+4>>2]|0;C=ks(U|0,j|0,o[C>>2]|0,o[C+4>>2]|0)|0;M=ks(C|0,I|0,k|0,M|0)|0;M=ks(M|0,I|0,a&(t^u)^u|0,f&(c^l)^l|0)|0;T=ks(M|0,I|0,(S|D)^(B|P)^(N|R)|0,T|0)|0;R=I;N=xs(m|0,g|0,28)|0;P=I;B=Cs(m|0,g|0,36)|0;P=P|I;D=xs(m|0,g|0,34)|0;S=I;M=Cs(m|0,g|0,30)|0;S=P^(S|I);P=xs(m|0,g|0,39)|0;k=I;C=Cs(m|0,g|0,25)|0;k=ks((N|B)^(D|M)^(P|C)|0,S^(k|I)|0,(m|y)&_|m&y|0,(g|b)&v|g&b|0)|0;S=I;r=ks(T|0,R|0,x|0,O|0)|0;i=I;d=ks(k|0,S|0,T|0,R|0)|0;p=I;n=n+8|0}while(n>>>0<80);Y=w;Y=ks(d|0,p|0,o[Y>>2]|0,o[Y+4>>2]|0)|0;X=w;o[X>>2]=Y;o[X+4>>2]=I;X=e+16|0;Y=X;Y=ks(m|0,g|0,o[Y>>2]|0,o[Y+4>>2]|0)|0;o[X>>2]=Y;o[X+4>>2]=I;X=e+24|0;Y=X;Y=ks(y|0,b|0,o[Y>>2]|0,o[Y+4>>2]|0)|0;o[X>>2]=Y;o[X+4>>2]=I;X=e+32|0;Y=X;Y=ks(_|0,v|0,o[Y>>2]|0,o[Y+4>>2]|0)|0;o[X>>2]=Y;o[X+4>>2]=I;X=e+40|0;Y=X;Y=ks(r|0,i|0,o[Y>>2]|0,o[Y+4>>2]|0)|0;o[X>>2]=Y;o[X+4>>2]=I;X=e+48|0;Y=X;Y=ks(a|0,f|0,o[Y>>2]|0,o[Y+4>>2]|0)|0;o[X>>2]=Y;o[X+4>>2]=I;X=e+56|0;Y=X;Y=ks(t|0,c|0,o[Y>>2]|0,o[Y+4>>2]|0)|0;o[X>>2]=Y;o[X+4>>2]=I;X=e+64|0;Y=X;Y=ks(u|0,l|0,o[Y>>2]|0,o[Y+4>>2]|0)|0;o[X>>2]=Y;o[X+4>>2]=I;h=E;return}function gi(e,t){e=e|0;t=t|0;var n=0,i=0,s=0,a=0;if((e|0)==0|(t|0)==0){s=1;return s|0}s=e+72|0;n=o[s>>2]|0;if(n>>>0>127){s=1;return s|0}a=Cs(n|0,0,3)|0;i=e;a=ks(o[i>>2]|0,o[i+4>>2]|0,a|0,I|0)|0;i=e;o[i>>2]=a;o[i+4>>2]=I;i=e+76|0;o[s>>2]=n+1;r[e+76+n>>0]=-128;n=o[s>>2]|0;if(n>>>0>112){if(n>>>0<128)do{o[s>>2]=n+1;r[e+76+n>>0]=0;n=o[s>>2]|0}while(n>>>0<128);mi(e,i);o[s>>2]=0;n=0}do{o[s>>2]=n+1;r[e+76+n>>0]=0;n=o[s>>2]|0}while(n>>>0<120);s=e;a=o[s>>2]|0;s=o[s+4>>2]|0;n=xs(a|0,s|0,56)|0;r[e+196>>0]=n;n=xs(a|0,s|0,48)|0;r[e+197>>0]=n;n=xs(a|0,s|0,40)|0;r[e+198>>0]=n;r[e+199>>0]=s;n=xs(a|0,s|0,24)|0;r[e+200>>0]=n;n=xs(a|0,s|0,16)|0;r[e+201>>0]=n;s=xs(a|0,s|0,8)|0;r[e+202>>0]=s;r[e+203>>0]=a;mi(e,i);a=e+8|0;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,56)|0;r[t>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,48)|0;r[t+1>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,40)|0;r[t+2>>0]=s;r[t+3>>0]=o[a+4>>2];s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,24)|0;r[t+4>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,16)|0;r[t+5>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,8)|0;r[t+6>>0]=s;r[t+7>>0]=o[a>>2];a=e+16|0;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,56)|0;r[t+8>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,48)|0;r[t+9>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,40)|0;r[t+10>>0]=s;r[t+11>>0]=o[a+4>>2];s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,24)|0;r[t+12>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,16)|0;r[t+13>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,8)|0;r[t+14>>0]=s;r[t+15>>0]=o[a>>2];a=e+24|0;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,56)|0;r[t+16>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,48)|0;r[t+17>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,40)|0;r[t+18>>0]=s;r[t+19>>0]=o[a+4>>2];s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,24)|0;r[t+20>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,16)|0;r[t+21>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,8)|0;r[t+22>>0]=s;r[t+23>>0]=o[a>>2];a=e+32|0;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,56)|0;r[t+24>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,48)|0;r[t+25>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,40)|0;r[t+26>>0]=s;r[t+27>>0]=o[a+4>>2];s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,24)|0;r[t+28>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,16)|0;r[t+29>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,8)|0;r[t+30>>0]=s;r[t+31>>0]=o[a>>2];a=e+40|0;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,56)|0;r[t+32>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,48)|0;r[t+33>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,40)|0;r[t+34>>0]=s;r[t+35>>0]=o[a+4>>2];s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,24)|0;r[t+36>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,16)|0;r[t+37>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,8)|0;r[t+38>>0]=s;r[t+39>>0]=o[a>>2];a=e+48|0;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,56)|0;r[t+40>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,48)|0;r[t+41>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,40)|0;r[t+42>>0]=s;r[t+43>>0]=o[a+4>>2];s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,24)|0;r[t+44>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,16)|0;r[t+45>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,8)|0;r[t+46>>0]=s;r[t+47>>0]=o[a>>2];a=e+56|0;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,56)|0;r[t+48>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,48)|0;r[t+49>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,40)|0;r[t+50>>0]=s;r[t+51>>0]=o[a+4>>2];s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,24)|0;r[t+52>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,16)|0;r[t+53>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,8)|0;r[t+54>>0]=s;r[t+55>>0]=o[a>>2];a=e+64|0;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,56)|0;r[t+56>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,48)|0;r[t+57>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,40)|0;r[t+58>>0]=s;r[t+59>>0]=o[a+4>>2];s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,24)|0;r[t+60>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,16)|0;r[t+61>>0]=s;s=a;s=xs(o[s>>2]|0,o[s+4>>2]|0,8)|0;r[t+62>>0]=s;r[t+63>>0]=o[a>>2];a=0;return a|0}function yi(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0;k=h;h=h+768|0;y=k+240|0;b=k+192|0;_=k+144|0;A=k+96|0;w=k+32|0;E=k;d=k+272|0;p=k+600|0;m=k+480|0;if((s[e+63>>0]|0)>31){E=0;h=k;return E|0}if(ui(p,i)|0){E=0;h=k;return E|0}g=d+72|0;o[g>>2]=0;v=d;o[v>>2]=0;o[v+4>>2]=0;v=d+8|0;o[v>>2]=-205731576;o[v+4>>2]=1779033703;v=d+16|0;o[v>>2]=-2067093701;o[v+4>>2]=-1150833019;v=d+24|0;o[v>>2]=-23791573;o[v+4>>2]=1013904242;v=d+32|0;o[v>>2]=1595750129;o[v+4>>2]=-1521486534;v=d+40|0;o[v>>2]=-1377402159;o[v+4>>2]=1359893119;v=d+48|0;o[v>>2]=725511199;o[v+4>>2]=-1694144372;v=d+56|0;o[v>>2]=-79577749;o[v+4>>2]=528734635;v=d+64|0;o[v>>2]=327033209;o[v+4>>2]=1541459225;v=d+76|0;r[d+76>>0]=r[e>>0]|0;r[d+77>>0]=r[e+1>>0]|0;r[d+78>>0]=r[e+2>>0]|0;r[d+79>>0]=r[e+3>>0]|0;r[d+80>>0]=r[e+4>>0]|0;r[d+81>>0]=r[e+5>>0]|0;r[d+82>>0]=r[e+6>>0]|0;r[d+83>>0]=r[e+7>>0]|0;r[d+84>>0]=r[e+8>>0]|0;r[d+85>>0]=r[e+9>>0]|0;r[d+86>>0]=r[e+10>>0]|0;r[d+87>>0]=r[e+11>>0]|0;r[d+88>>0]=r[e+12>>0]|0;r[d+89>>0]=r[e+13>>0]|0;r[d+90>>0]=r[e+14>>0]|0;r[d+91>>0]=r[e+15>>0]|0;r[d+92>>0]=r[e+16>>0]|0;r[d+93>>0]=r[e+17>>0]|0;r[d+94>>0]=r[e+18>>0]|0;r[d+95>>0]=r[e+19>>0]|0;r[d+96>>0]=r[e+20>>0]|0;r[d+97>>0]=r[e+21>>0]|0;r[d+98>>0]=r[e+22>>0]|0;r[d+99>>0]=r[e+23>>0]|0;r[d+100>>0]=r[e+24>>0]|0;r[d+101>>0]=r[e+25>>0]|0;r[d+102>>0]=r[e+26>>0]|0;r[d+103>>0]=r[e+27>>0]|0;r[d+104>>0]=r[e+28>>0]|0;r[d+105>>0]=r[e+29>>0]|0;r[d+106>>0]=r[e+30>>0]|0;r[d+107>>0]=r[e+31>>0]|0;o[g>>2]=32;e:do{if(i|0?(f=o[g>>2]|0,f>>>0<=128):0){a=32;while(1){if(!((f|0)==0&a>>>0>127)){l=128-f|0;l=a>>>0>>0?a:l;if(l|0){u=0;do{r[u+f+(d+76)>>0]=r[i+u>>0]|0;u=u+1|0}while(u>>>0>>0)}u=f+l|0;o[g>>2]=u;i=i+l|0;a=a-l|0;if((u|0)==128){mi(d,v);u=d;u=ks(o[u>>2]|0,o[u+4>>2]|0,1024,0)|0;l=d;o[l>>2]=u;o[l+4>>2]=I;o[g>>2]=0}}else{mi(d,i);u=d;u=ks(o[u>>2]|0,o[u+4>>2]|0,1024,0)|0;l=d;o[l>>2]=u;o[l+4>>2]=I;a=a+-128|0;i=i+128|0}if(!a)break e;f=o[g>>2]|0}}}while(0);e:do{if(t|0?(c=o[g>>2]|0,!((n|0)==0|c>>>0>128)):0)while(1){if(!((c|0)==0&n>>>0>127)){i=128-c|0;i=n>>>0>>0?n:i;if(i|0){a=0;do{r[a+c+(d+76)>>0]=r[t+a>>0]|0;a=a+1|0}while(a>>>0>>0)}l=c+i|0;o[g>>2]=l;t=t+i|0;n=n-i|0;if((l|0)==128){mi(d,v);u=d;u=ks(o[u>>2]|0,o[u+4>>2]|0,1024,0)|0;l=d;o[l>>2]=u;o[l+4>>2]=I;o[g>>2]=0}}else{mi(d,t);u=d;u=ks(o[u>>2]|0,o[u+4>>2]|0,1024,0)|0;l=d;o[l>>2]=u;o[l+4>>2]=I;n=n+-128|0;t=t+128|0}if(!n)break e;c=o[g>>2]|0}}while(0);gi(d,w)|0;ei(w);ri(m,w,p,e+32|0);Wr(b,m+80|0);Xr(_,m,b);Xr(A,m+40|0,b);Jr(E,A);Jr(y,_);A=E+31|0;w=r[A>>0]^r[y>>0]<<7&255;r[A>>0]=w;E=(r[e+1>>0]^r[E+1>>0]|r[e>>0]^r[E>>0]|r[e+2>>0]^r[E+2>>0]|r[e+3>>0]^r[E+3>>0]|r[e+4>>0]^r[E+4>>0]|r[e+5>>0]^r[E+5>>0]|r[e+6>>0]^r[E+6>>0]|r[e+7>>0]^r[E+7>>0]|r[e+8>>0]^r[E+8>>0]|r[e+9>>0]^r[E+9>>0]|r[e+10>>0]^r[E+10>>0]|r[e+11>>0]^r[E+11>>0]|r[e+12>>0]^r[E+12>>0]|r[e+13>>0]^r[E+13>>0]|r[e+14>>0]^r[E+14>>0]|r[e+15>>0]^r[E+15>>0]|r[e+16>>0]^r[E+16>>0]|r[e+17>>0]^r[E+17>>0]|r[e+18>>0]^r[E+18>>0]|r[e+19>>0]^r[E+19>>0]|r[e+20>>0]^r[E+20>>0]|r[e+21>>0]^r[E+21>>0]|r[e+22>>0]^r[E+22>>0]|r[e+23>>0]^r[E+23>>0]|r[e+24>>0]^r[E+24>>0]|r[e+25>>0]^r[E+25>>0]|r[e+26>>0]^r[E+26>>0]|r[e+27>>0]^r[E+27>>0]|r[e+28>>0]^r[E+28>>0]|r[e+29>>0]^r[E+29>>0]|r[e+30>>0]^r[E+30>>0]|r[e+31>>0]^w)<<24>>24==0&1;h=k;return E|0}function bi(e,t,n,i,s){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;var a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0;D=h;h=h+672|0;w=D+272|0;k=D+224|0;S=D+176|0;T=D+128|0;M=D+304|0;O=D+64|0;x=D;p=D+512|0;C=M+72|0;o[C>>2]=0;m=M;o[m>>2]=0;o[m+4>>2]=0;m=M+8|0;g=m;o[g>>2]=-205731576;o[g+4>>2]=1779033703;g=M+16|0;y=g;o[y>>2]=-2067093701;o[y+4>>2]=-1150833019;y=M+24|0;b=y;o[b>>2]=-23791573;o[b+4>>2]=1013904242;b=M+32|0;_=b;o[_>>2]=1595750129;o[_+4>>2]=-1521486534;_=M+40|0;v=_;o[v>>2]=-1377402159;o[v+4>>2]=1359893119;v=M+48|0;A=v;o[A>>2]=725511199;o[A+4>>2]=-1694144372;A=M+56|0;E=A;o[E>>2]=-79577749;o[E+4>>2]=528734635;E=M+64|0;P=E;o[P>>2]=327033209;o[P+4>>2]=1541459225;P=M+76|0;r[M+76>>0]=r[s+32>>0]|0;r[M+77>>0]=r[s+33>>0]|0;r[M+78>>0]=r[s+34>>0]|0;r[M+79>>0]=r[s+35>>0]|0;r[M+80>>0]=r[s+36>>0]|0;r[M+81>>0]=r[s+37>>0]|0;r[M+82>>0]=r[s+38>>0]|0;r[M+83>>0]=r[s+39>>0]|0;r[M+84>>0]=r[s+40>>0]|0;r[M+85>>0]=r[s+41>>0]|0;r[M+86>>0]=r[s+42>>0]|0;r[M+87>>0]=r[s+43>>0]|0;r[M+88>>0]=r[s+44>>0]|0;r[M+89>>0]=r[s+45>>0]|0;r[M+90>>0]=r[s+46>>0]|0;r[M+91>>0]=r[s+47>>0]|0;r[M+92>>0]=r[s+48>>0]|0;r[M+93>>0]=r[s+49>>0]|0;r[M+94>>0]=r[s+50>>0]|0;r[M+95>>0]=r[s+51>>0]|0;r[M+96>>0]=r[s+52>>0]|0;r[M+97>>0]=r[s+53>>0]|0;r[M+98>>0]=r[s+54>>0]|0;r[M+99>>0]=r[s+55>>0]|0;r[M+100>>0]=r[s+56>>0]|0;r[M+101>>0]=r[s+57>>0]|0;r[M+102>>0]=r[s+58>>0]|0;r[M+103>>0]=r[s+59>>0]|0;r[M+104>>0]=r[s+60>>0]|0;r[M+105>>0]=r[s+61>>0]|0;r[M+106>>0]=r[s+62>>0]|0;r[M+107>>0]=r[s+63>>0]|0;o[C>>2]=32;R=(t|0)==0;e:do{if(!R?(u=o[C>>2]|0,!((n|0)==0|u>>>0>128)):0){a=n;c=t;while(1){if(!((u|0)==0&a>>>0>127)){d=128-u|0;d=a>>>0>>0?a:d;if(d|0){l=0;do{r[l+u+(M+76)>>0]=r[c+l>>0]|0;l=l+1|0}while(l>>>0>>0)}l=u+d|0;o[C>>2]=l;c=c+d|0;a=a-d|0;if((l|0)==128){mi(M,P);l=M;l=ks(o[l>>2]|0,o[l+4>>2]|0,1024,0)|0;d=M;o[d>>2]=l;o[d+4>>2]=I;o[C>>2]=0}}else{mi(M,c);l=M;l=ks(o[l>>2]|0,o[l+4>>2]|0,1024,0)|0;d=M;o[d>>2]=l;o[d+4>>2]=I;a=a+-128|0;c=c+128|0}if(!a)break e;u=o[C>>2]|0}}}while(0);gi(M,x)|0;ei(x);li(p,x);Wr(k,p+80|0);Xr(S,p,k);Xr(T,p+40|0,k);Jr(e,T);Jr(w,S);T=e+31|0;r[T>>0]=r[T>>0]^r[w>>0]<<7&255;o[C>>2]=0;T=M;o[T>>2]=0;o[T+4>>2]=0;T=m;o[T>>2]=-205731576;o[T+4>>2]=1779033703;T=g;o[T>>2]=-2067093701;o[T+4>>2]=-1150833019;T=y;o[T>>2]=-23791573;o[T+4>>2]=1013904242;T=b;o[T>>2]=1595750129;o[T+4>>2]=-1521486534;T=_;o[T>>2]=-1377402159;o[T+4>>2]=1359893119;T=v;o[T>>2]=725511199;o[T+4>>2]=-1694144372;T=A;o[T>>2]=-79577749;o[T+4>>2]=528734635;T=E;o[T>>2]=327033209;o[T+4>>2]=1541459225;if(e|0){r[M+76>>0]=r[e>>0]|0;r[M+77>>0]=r[e+1>>0]|0;r[M+78>>0]=r[e+2>>0]|0;r[M+79>>0]=r[e+3>>0]|0;r[M+80>>0]=r[e+4>>0]|0;r[M+81>>0]=r[e+5>>0]|0;r[M+82>>0]=r[e+6>>0]|0;r[M+83>>0]=r[e+7>>0]|0;r[M+84>>0]=r[e+8>>0]|0;r[M+85>>0]=r[e+9>>0]|0;r[M+86>>0]=r[e+10>>0]|0;r[M+87>>0]=r[e+11>>0]|0;r[M+88>>0]=r[e+12>>0]|0;r[M+89>>0]=r[e+13>>0]|0;r[M+90>>0]=r[e+14>>0]|0;r[M+91>>0]=r[e+15>>0]|0;r[M+92>>0]=r[e+16>>0]|0;r[M+93>>0]=r[e+17>>0]|0;r[M+94>>0]=r[e+18>>0]|0;r[M+95>>0]=r[e+19>>0]|0;r[M+96>>0]=r[e+20>>0]|0;r[M+97>>0]=r[e+21>>0]|0;r[M+98>>0]=r[e+22>>0]|0;r[M+99>>0]=r[e+23>>0]|0;r[M+100>>0]=r[e+24>>0]|0;r[M+101>>0]=r[e+25>>0]|0;r[M+102>>0]=r[e+26>>0]|0;r[M+103>>0]=r[e+27>>0]|0;r[M+104>>0]=r[e+28>>0]|0;r[M+105>>0]=r[e+29>>0]|0;r[M+106>>0]=r[e+30>>0]|0;r[M+107>>0]=r[e+31>>0]|0;o[C>>2]=32}e:do{if(i|0?(f=o[C>>2]|0,f>>>0<=128):0){a=32;while(1){if(!((f|0)==0&a>>>0>127)){u=128-f|0;u=a>>>0>>0?a:u;if(u|0){c=0;do{r[c+f+(M+76)>>0]=r[i+c>>0]|0;c=c+1|0}while(c>>>0>>0)}T=f+u|0;o[C>>2]=T;i=i+u|0;a=a-u|0;if((T|0)==128){mi(M,P);S=M;S=ks(o[S>>2]|0,o[S+4>>2]|0,1024,0)|0;T=M;o[T>>2]=S;o[T+4>>2]=I;o[C>>2]=0}}else{mi(M,i);S=M;S=ks(o[S>>2]|0,o[S+4>>2]|0,1024,0)|0;T=M;o[T>>2]=S;o[T+4>>2]=I;a=a+-128|0;i=i+128|0}if(!a)break e;f=o[C>>2]|0}}}while(0);if(R){gi(M,O)|0;ei(O);M=e+32|0;ti(M,O,s,x);h=D;return}a=o[C>>2]|0;if((n|0)==0|a>>>0>128){gi(M,O)|0;ei(O);M=e+32|0;ti(M,O,s,x);h=D;return}i=a;while(1){if(!((i|0)==0&n>>>0>127)){c=128-i|0;c=n>>>0>>0?n:c;if(c|0){a=0;do{r[a+i+(M+76)>>0]=r[t+a>>0]|0;a=a+1|0}while(a>>>0>>0)}R=i+c|0;o[C>>2]=R;t=t+c|0;n=n-c|0;if((R|0)==128){mi(M,P);T=M;T=ks(o[T>>2]|0,o[T+4>>2]|0,1024,0)|0;R=M;o[R>>2]=T;o[R+4>>2]=I;o[C>>2]=0}}else{mi(M,t);T=M;T=ks(o[T>>2]|0,o[T+4>>2]|0,1024,0)|0;R=M;o[R>>2]=T;o[R+4>>2]=I;n=n+-128|0;t=t+128|0}if(!n)break;i=o[C>>2]|0}gi(M,O)|0;ei(O);M=e+32|0;ti(M,O,s,x);h=D;return}function _i(e,t,n){e=e|0;t=t|0;n=n|0;o[e+128>>2]=n;n=t;t=e+128|0;do{r[e>>0]=r[n>>0]|0;e=e+1|0;n=n+1|0}while((e|0)<(t|0));return}function vi(e){e=e|0;return 132}function Ai(e,t){e=e|0;t=t|0;t=Fe(t,e,128)|0;return Ne(t,o[e+128>>2]|0)|0}function wi(e,t,n){e=e|0;t=t|0;n=n|0;return je(qe(t,n,e,128)|0,n,e+128|0)|0}function Ei(e){e=e|0;var t=0,n=0,r=0,i=0;r=e+128|0;i=(o[r>>2]|0)+1|0;o[r>>2]=i;if(i&16777215){n=0;r=16777215;while(1){t=n+1|0;r=r>>>8;if(n>>>0>2|(r&i|0)==0)break;else n=t}if(n>>>0>2)return}else t=0;r=e+(t<<5)|0;n=3;while(1){Et(r,32,38116+n|0,1,e+(n<<5)|0);if((n|0)>(t|0))n=n+-1|0;else break}return}function ki(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,s=0;s=e+128|0;n=o[s>>2]|0;r=(t>>>24)-(n>>>24)|0;switch((r&255)<<24>>24){case 0:{if(n>>>0>t>>>0){n=256;i=3}break}case 1:{i=5;break}default:{n=r&255;i=3}}if((i|0)==3){do{Et(e,32,38116,1,e);n=n+-1|0}while(n>>>0>1);i=5}if((i|0)==5){Et(e,32,38119,1,e+96|0);Et(e,32,38118,1,e+64|0);Et(e,32,38117,1,e+32|0);Et(e,32,38116,1,e);n=t&-16777216;o[s>>2]=n}r=(t>>>16)-(n>>>16)|0;switch((r&255)<<24>>24){case 0:{if(n>>>0>t>>>0){n=256;i=8}break}case 1:{i=10;break}default:{n=r&255;i=8}}if((i|0)==8){r=e+32|0;do{Et(r,32,38117,1,r);n=n+-1|0}while(n>>>0>1);i=10}if((i|0)==10){n=e+32|0;Et(n,32,38119,1,e+96|0);Et(n,32,38118,1,e+64|0);Et(n,32,38117,1,e+32|0);n=t&-65536;o[s>>2]=n}r=(t>>>8)-(n>>>8)|0;switch((r&255)<<24>>24){case 0:{if(n>>>0>t>>>0){n=256;i=13}break}case 1:{i=15;break}default:{n=r&255;i=13}}if((i|0)==13){r=e+64|0;do{Et(r,32,38118,1,r);n=n+-1|0}while(n>>>0>1);i=15}if((i|0)==15){n=e+64|0;Et(n,32,38119,1,e+96|0);Et(n,32,38118,1,e+64|0);n=t&-256;o[s>>2]=n}r=t-n|0;switch((r&255)<<24>>24){case 0:{if(n>>>0>t>>>0){n=256;i=18}else return;break}case 1:break;default:{n=r&255;i=18}}if((i|0)==18){r=e+96|0;do{Et(r,32,38119,1,r);n=n+-1|0}while(n>>>0>1)}Et(e+96|0,32,38119,1,e+96|0);o[s>>2]=t;return}function Si(e){e=e|0;if(e>>>0>=16){e=38120;return e|0}e=o[32704+(e<<2)>>2]|0;return e|0}function Ii(e){e=e|0;e=Hs[o[37564>>2]&3](37592,e)|0;return pe((Gs[o[9390]&1](37592)|0)+e|0)|0}function Ti(e,t){e=e|0;t=t|0;t=Hs[o[37564>>2]&3](37592,t)|0;t=(Gs[o[9390]&1](37592)|0)+t|0;return e+(pe(t)|0)+(0-t)|0}function Ri(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,s=0,a=0,c=0;c=Hs[o[37564>>2]&3](37592,r)|0;s=(Gs[o[9390]&1](37592)|0)+c|0;i=pe(s)|0;a=n+i+(0-s)|0;Qs[o[37568>>2]&3](37592,e,t,a,r,a,c,a,s)|0;me(a,s,n)|0;return i|0}function Oi(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0;s=ge(r)|0;if((s|0)==-1){if(!i){i=-1;return i|0}o[i>>2]=7;i=-1;return i|0}else{ye(n,r,n)|0;r=s-(Gs[o[9390]&1](37592)|0)|0;e=Qs[o[37576>>2]&3](37592,e,t,n,s,n,r,n,r)|0;if(!((i|0)!=0&(e|0)==-1)){i=e;return i|0}o[i>>2]=8;i=-1;return i|0}return 0}function xi(){return 304}function Ci(e){e=e|0;Gr(e,304);return e|0}function Pi(e){e=e|0;Gr(e,304);return 304}function Mi(e){e=e|0;return Si(o[e+300>>2]|0)|0}function Di(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,c=0,f=0;f=h;h=h+240|0;c=f;switch(ge(n)|0){case-1:{o[e+300>>2]=7;c=-1;h=f;return c|0}case 229:{ye(t,n,c)|0;do{if((r[c>>0]|0)==2){t=((s[c+1>>0]<<8|s[c+2>>0])<<8|s[c+3>>0])<<8|s[c+4>>0];n=c+5|0;_i(e,n,t);_i(e+132|0,n,t);t=e+264|0;n=t;i=c+133|0;a=n+32|0;do{r[n>>0]=r[i>>0]|0;n=n+1|0;i=i+1|0}while((n|0)<(a|0));if(!(bt(t,c,165,c+165|0)|0)){o[e+300>>2]=14;t=-1;break}else{o[e+296>>2]=1;t=0;break}}else{o[e+300>>2]=11;t=-1}}while(0);Gr(c,229);c=t;h=f;return c|0}default:{o[e+300>>2]=11;c=-1;h=f;return c|0}}return 0}function Bi(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0;a=h;h=h+176|0;i=a;switch(ge(n)|0){case-1:{o[e+300>>2]=7;i=-1;h=a;return i|0}case 165:{ye(t,n,i)|0;if((r[i>>0]|0)==1){t=((s[i+1>>0]<<8|s[i+2>>0])<<8|s[i+3>>0])<<8|s[i+4>>0];n=i+5|0;_i(e,n,t);_i(e+132|0,n,t);e=e+264|0;t=i+133|0;n=e+32|0;do{r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0}while((e|0)<(n|0));e=0}else{o[e+300>>2]=11;e=-1}Gr(i,165);i=e;h=a;return i|0}default:{o[e+300>>2]=11;i=-1;h=a;return i|0}}return 0}function Ni(e){e=e|0;var t=0,n=0;n=vi(e)|0;t=vi(e+132|0)|0;return Ii(n+5+t+(xe(e+264|0)|0)|0)|0}function ji(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0,c=0,f=0;f=vi(e)|0;a=e+132|0;s=vi(a)|0;c=e+264|0;s=f+5+s+(xe(c)|0)|0;if((Ii(s)|0)>>>0>i>>>0){o[e+300>>2]=2;f=-1;return f|0}else{f=Ce(Ai(a,Ai(e,Ne(Ti(r,s)|0,2)|0)|0)|0,c)|0;Ue(f,o[e+296>>2]|0)|0;f=Ri(t,n,r,s)|0;return f|0}return 0}function Ui(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0,c=0,f=0;f=h;h=h+16|0;a=f;c=e+300|0;t=Oi(t,n,r,i,c)|0;if((t|0)==-1){c=-1;h=f;return c|0}s=r+t|0;t=je(r,s,a)|0;if(((o[a>>2]|0)+-1|0)>>>0>1){o[c>>2]=9;c=-1;h=f;return c|0}t=Pe(wi(e+132|0,wi(e,t,s)|0,s)|0,s,e+264|0)|0;n=e+296|0;if((o[a>>2]|0)==1)o[n>>2]=1;else t=Le(t,s,n)|0;if((s|0)==(t|0)){c=i;h=f;return c|0}o[c>>2]=10;c=-1;h=f;return c|0}function Li(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0;s=h;h=h+32|0;i=s;n=ye(t,n,t)|0;if((n|0)==-1){o[e+300>>2]=7;i=-1;h=s;return i|0}Xe(t,n,Gs[o[o[9395]>>2]&1](37580)|0,64,i);do{if((r[i>>0]|0)==3)if(!(o[i+12>>2]|0)){o[e+300>>2]=4;n=-1;break}else{n=Hs[o[(o[9395]|0)+12>>2]&3](37580,o[i+16>>2]|0)|0;break}else{o[e+300>>2]=3;n=-1}}while(0);i=n;h=s;return i|0}function Fi(e,t,n,i,s,a){e=e|0;t=t|0;n=n|0;i=i|0;s=s|0;a=a|0;var c=0,f=0,u=0,l=0,d=0,p=0;p=h;h=h+160|0;u=p+132|0;d=p;n=ye(t,n,t)|0;if((n|0)==-1){o[e+300>>2]=7;d=-1;h=p;return d|0}Xe(t,n,Gs[o[o[9395]>>2]&1](37580)|0,64,u);e:do{if((r[u>>0]|0)==3){if(o[u+8>>2]|0?(l=u+12|0,o[l>>2]|0):0){if(a|0)o[a>>2]=o[u+4>>2];c=n+-64|0;if(!(bt(e+264|0,t,c,t+c|0)|0)){o[e+300>>2]=14;n=-1;break}f=u+16|0;if((Hs[o[(o[9395]|0)+12>>2]&3](37580,o[f>>2]|0)|0)>>>0>s>>>0){o[e+300>>2]=2;n=-1;break}n=o[u+4>>2]|0;a=e+132|0;do{if((n-(o[e+260>>2]|0)|0)<=-1)if((n-(o[e+128>>2]|0)|0)<0){o[e+300>>2]=12;n=-1;break e}else{Ms(d|0,e|0,132)|0;ki(d,n);break}else{ki(a,n);Ms(d|0,a|0,132)|0}}while(0);n=Qs[o[(o[9395]|0)+16>>2]&3](37580,d,128,t,c,o[l>>2]|0,o[f>>2]|0,i,s)|0;Gr(d,132);if((n|0)==-1){o[e+300>>2]=5;n=-1;break}else{o[e+296>>2]=1;break}}o[e+300>>2]=4;n=-1}else{o[e+300>>2]=3;n=-1}}while(0);d=n;h=p;return d|0}function qi(e){e=e|0;return pe(32)|0}function Ki(e,t,n){e=e|0;t=t|0;n=n|0;if((pe(32)|0)>>>0>n>>>0){o[e+300>>2]=2;n=-1;return n|0}else{n=me(e+264|0,32,t)|0;return n|0}return 0}function zi(e){e=e|0;return o[e+128>>2]|0}function Gi(e){e=e|0;return o[e+296>>2]|0}function Hi(e){e=e|0;return pe(165)|0}function Vi(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var s=0,a=0,c=0,f=0,u=0;u=h;h=h+144|0;f=u;s=pe(165)|0;if(s>>>0>n>>>0){o[e+300>>2]=2;t=-1;h=u;return t|0}n=e+132|0;do{if((i-(o[e+260>>2]|0)|0)>-1){ki(n,i);Ms(f|0,n|0,132)|0}else{if((i-(o[e+128>>2]|0)|0)>=0){Ms(f|0,e|0,132)|0;ki(f,i);break}o[e+300>>2]=12;t=-1;h=u;return t|0}}while(0);c=t+s+-165|0;r[c>>0]=1;a=c+1|0;r[a>>0]=i>>>24;a=a+1|0;r[a>>0]=i>>>16;a=a+1|0;r[a>>0]=i>>>8;r[a+1>>0]=i;a=t+(s+-161)|0;s=t+(s+-160)|0;n=f;i=s+128|0;do{r[s>>0]=r[n>>0]|0;s=s+1|0;n=n+1|0}while((s|0)<(i|0));s=a+129|0;n=e+264|0;i=s+32|0;do{r[s>>0]=r[n>>0]|0;s=s+1|0;n=n+1|0}while((s|0)<(i|0));t=me(c,165,t)|0;h=u;return t|0}function Qi(e){e=e|0;return Si(o[e>>2]|0)|0}function Wi(){return 100}function Yi(e){e=e|0;Gr(e,100);return e|0}function Xi(e){e=e|0;Gr(e,100);return 100}function Ji(e){e=e|0;return 32}function Zi(e,t,n){e=e|0;t=t|0;n=n|0;if(n>>>0<32){o[e>>2]=1;n=-1;return n|0}else{pt(t,e+4|0);n=0;return n|0}return 0}function $i(e){e=e|0;return pe(32)|0}function eo(e,t,n){e=e|0;t=t|0;n=n|0;if((pe(32)|0)>>>0>n>>>0){o[e>>2]=2;n=-1;return n|0}else{me(e+4|0,32,t)|0;n=0;return n|0}return 0}function to(e,t,n){e=e|0;t=t|0;n=n|0;if((pe(32)|0)>>>0>n>>>0){o[e>>2]=15;n=-1;return n|0}else{ye(t,n,t)|0;mt(e+4|0,t,e+68|0);n=0;return n|0}return 0}function no(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;It(e+68|0,32,0,0,t,n,r,i);return 0}function ro(e){e=e|0;return pe(32)|0}function io(e,t,n,r,i,s,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;a=a|0;var c=0,f=0;f=h;h=h+32|0;c=f;if((pe(32)|0)>>>0>a>>>0){o[e>>2]=2;c=-1;h=f;return c|0}else{It(e+68|0,32,0,0,r,i,c,32);Et(c,32,t,n,s);me(s,32,s)|0;c=0;h=f;return c|0}return 0}function oo(e,t,n,r,i,s,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;s=s|0;a=a|0;var c=0,f=0;f=h;h=h+256|0;c=f;if((pe(32)|0)>>>0>a>>>0){o[e>>2]=2;c=-1;h=f;return c|0}else{It(e+68|0,32,0,0,r,i,c,256);Et(c,256,t,n,s);me(s,32,s)|0;c=0;h=f;return c|0}return 0}function so(){return 232}function ao(e){e=e|0;Gr(e,232);return e|0}function co(e){e=e|0;Gr(e,232);return 232}function fo(e){e=e|0;return Si(o[e+228>>2]|0)|0}function uo(e){e=e|0;var t=0;t=(vi(e)|0)+4|0;return Ii(t+(Me(e+132|0)|0)|0)|0}function lo(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0;a=(vi(e)|0)+4|0;s=e+132|0;a=a+(Me(s)|0)|0;if((Ii(a)|0)>>>0>i>>>0){o[e+228>>2]=2;a=-1;return a|0}else{De(Ai(e,Ne(Ti(r,a)|0,1)|0)|0,s)|0;a=Ri(t,n,r,a)|0;return a|0}return 0}function ho(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0,c=0;c=h;h=h+16|0;s=c;a=e+228|0;t=Oi(t,n,r,i,a)|0;do{if((t|0)!=-1){n=r+t|0;t=je(r,n,s)|0;if((o[s>>2]|0)!=1){o[a>>2]=9;i=-1;break}if((n|0)!=(Be(wi(e,t,n)|0,n,e+132|0)|0)){o[a>>2]=10;i=-1}}else i=-1}while(0);h=c;return i|0}function po(e){e=e|0;return 160}function mo(e,t,n){e=e|0;t=t|0;n=n|0;if(n>>>0<160){o[e+228>>2]=1;n=-1;return n|0}else{_i(e,t,0);gt(t+128|0,e+132|0);Gr(t,n);n=0;return n|0}return 0}function go(e,t){e=e|0;t=t|0;var n=0;n=Hs[o[(o[9395]|0)+4>>2]&3](37580,t)|0;t=Gs[o[o[9395]>>2]&1](37580)|0;return pe(We(o[e+128>>2]|0,n,t,64)|0)|0}function yo(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0,c=0,f=0,u=0,l=0;u=h;h=h+16|0;f=u;a=Hs[o[(o[9395]|0)+4>>2]&3](37580,n)|0;c=Gs[o[o[9395]>>2]&1](37580)|0;s=e+128|0;c=We(o[s>>2]|0,a,c,64)|0;if((pe(c)|0)>>>0>i>>>0){o[e+228>>2]=2;f=-1;h=u;return f|0}a=r+(pe(c)|0)+(0-c)|0;l=Hs[o[(o[9395]|0)+4>>2]&3](37580,n)|0;i=Gs[o[o[9395]>>2]&1](37580)|0;i=(Ye(3,o[s>>2]|0,l,a,f)|0)+i|0;if((Qs[o[(o[9395]|0)+8>>2]&3](37580,e,128,t,n,o[f>>2]|0,l,a,i)|0)==-1){l=-1;h=u;return l|0}else{Ei(e);yt(e+132|0,a,i,a+i|0);l=me(a,c,r)|0;h=u;return l|0}return 0}function bo(e){e=e|0;return pe(32)|0}function _o(e,t,n){e=e|0;t=t|0;n=n|0;if((pe(32)|0)>>>0>n>>>0){o[e+228>>2]=2;n=-1;return n|0}else{n=me(e+132|0,32,t)|0;return n|0}return 0}function vo(e){e=e|0;return o[e+128>>2]|0}function Ao(e){e=e|0;return pe(229)|0}function wo(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0,f=0;i=pe(229)|0;if(i>>>0>n>>>0){o[e+228>>2]=2;t=-1;return t|0}else{c=t+i+-229|0;r[c>>0]=2;s=o[e+128>>2]|0;f=c+1|0;r[f>>0]=s>>>24;f=f+1|0;r[f>>0]=s>>>16;f=f+1|0;r[f>>0]=s>>>8;r[f+1>>0]=s;f=t+(i+-225)|0;i=t+(i+-224)|0;s=e;a=i+128|0;do{r[i>>0]=r[s>>0]|0;i=i+1|0;s=s+1|0}while((i|0)<(a|0));n=e+132|0;i=f+129|0;s=n;a=i+32|0;do{r[i>>0]=r[s>>0]|0;i=i+1|0;s=s+1|0}while((i|0)<(a|0));f=f+161|0;yt(n,c,f-c|0,f);t=me(c,229,t)|0;return t|0}return 0}function Eo(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0;O=h;h=h+256|0;R=O;o[R>>2]=(s[t+1>>0]|0)<<16|(s[t>>0]|0)<<24|(s[t+2>>0]|0)<<8|(s[t+3>>0]|0);o[R+4>>2]=(s[t+5>>0]|0)<<16|(s[t+4>>0]|0)<<24|(s[t+6>>0]|0)<<8|(s[t+7>>0]|0);o[R+8>>2]=(s[t+9>>0]|0)<<16|(s[t+8>>0]|0)<<24|(s[t+10>>0]|0)<<8|(s[t+11>>0]|0);o[R+12>>2]=(s[t+13>>0]|0)<<16|(s[t+12>>0]|0)<<24|(s[t+14>>0]|0)<<8|(s[t+15>>0]|0);o[R+16>>2]=(s[t+17>>0]|0)<<16|(s[t+16>>0]|0)<<24|(s[t+18>>0]|0)<<8|(s[t+19>>0]|0);o[R+20>>2]=(s[t+21>>0]|0)<<16|(s[t+20>>0]|0)<<24|(s[t+22>>0]|0)<<8|(s[t+23>>0]|0);o[R+24>>2]=(s[t+25>>0]|0)<<16|(s[t+24>>0]|0)<<24|(s[t+26>>0]|0)<<8|(s[t+27>>0]|0);o[R+28>>2]=(s[t+29>>0]|0)<<16|(s[t+28>>0]|0)<<24|(s[t+30>>0]|0)<<8|(s[t+31>>0]|0);o[R+32>>2]=(s[t+33>>0]|0)<<16|(s[t+32>>0]|0)<<24|(s[t+34>>0]|0)<<8|(s[t+35>>0]|0);o[R+36>>2]=(s[t+37>>0]|0)<<16|(s[t+36>>0]|0)<<24|(s[t+38>>0]|0)<<8|(s[t+39>>0]|0);o[R+40>>2]=(s[t+41>>0]|0)<<16|(s[t+40>>0]|0)<<24|(s[t+42>>0]|0)<<8|(s[t+43>>0]|0);o[R+44>>2]=(s[t+45>>0]|0)<<16|(s[t+44>>0]|0)<<24|(s[t+46>>0]|0)<<8|(s[t+47>>0]|0);o[R+48>>2]=(s[t+49>>0]|0)<<16|(s[t+48>>0]|0)<<24|(s[t+50>>0]|0)<<8|(s[t+51>>0]|0);o[R+52>>2]=(s[t+53>>0]|0)<<16|(s[t+52>>0]|0)<<24|(s[t+54>>0]|0)<<8|(s[t+55>>0]|0);o[R+56>>2]=(s[t+57>>0]|0)<<16|(s[t+56>>0]|0)<<24|(s[t+58>>0]|0)<<8|(s[t+59>>0]|0);o[R+60>>2]=(s[t+61>>0]|0)<<16|(s[t+60>>0]|0)<<24|(s[t+62>>0]|0)<<8|(s[t+63>>0]|0);t=16;n=o[R>>2]|0;do{T=o[R+(t+-2<<2)>>2]|0;I=n;n=o[R+(t+-15<<2)>>2]|0;o[R+(t<<2)>>2]=I+(o[R+(t+-7<<2)>>2]|0)+((T>>>19|T<<13)^T>>>10^(T>>>17|T<<15))+((n>>>18|n<<14)^n>>>3^(n>>>7|n<<25));t=t+1|0}while((t|0)!=64);p=e+80|0;m=o[p>>2]|0;g=e+84|0;y=o[g>>2]|0;b=e+88|0;_=o[b>>2]|0;v=e+92|0;A=o[v>>2]|0;w=e+96|0;E=o[w>>2]|0;k=e+100|0;S=o[k>>2]|0;I=e+104|0;T=o[I>>2]|0;l=e+108|0;d=o[l>>2]|0;e=y;t=d;r=T;i=S;a=E;n=A;c=_;f=m;u=0;while(1){x=((a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7))+t+(r&~a^i&a)+(o[32768+(u<<2)>>2]|0)+(o[R+(u<<2)>>2]|0)|0;t=x+n|0;n=((f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10))+(f&(e^c)^e&c)+x|0;u=u+1|0;if((u|0)==64)break;else{D=c;M=a;P=i;C=r;x=f;a=t;f=n;c=e;n=D;i=M;r=P;t=C;e=x}}o[p>>2]=n+m;o[g>>2]=f+y;o[b>>2]=e+_;o[v>>2]=c+A;o[w>>2]=t+E;o[k>>2]=a+S;o[I>>2]=i+T;o[l>>2]=r+d;h=O;return}function ko(e){e=e|0;var t=0;o[e+64>>2]=0;t=e+72|0;o[t>>2]=0;o[t+4>>2]=0;o[e+80>>2]=1779033703;o[e+84>>2]=-1150833019;o[e+88>>2]=1013904242;o[e+92>>2]=-1521486534;o[e+96>>2]=1359893119;o[e+100>>2]=-1694144372;o[e+104>>2]=528734635;o[e+108>>2]=1541459225;return}function So(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0,f=0;if(!n)return;a=e+64|0;c=e+72|0;s=0;i=o[a>>2]|0;do{r[e+i>>0]=r[t+s>>0]|0;i=(o[a>>2]|0)+1|0;o[a>>2]=i;if((i|0)==64){Eo(e,e);f=c;f=ks(o[f>>2]|0,o[f+4>>2]|0,512,0)|0;i=c;o[i>>2]=f;o[i+4>>2]=I;o[a>>2]=0;i=0}s=s+1|0}while((s|0)!=(n|0));return}function Io(e,t){e=e|0;t=t|0;var n=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0;s=e+64|0;n=o[s>>2]|0;i=n+1|0;r[e+n>>0]=-128;if(n>>>0<56){if(i>>>0<56)Ds(e+i|0,0,55-n|0)|0}else{if(i>>>0<64)Ds(e+i|0,0,63-n|0)|0;Eo(e,e);n=e;i=n+56|0;do{o[n>>2]=0;n=n+4|0}while((n|0)<(i|0))}f=e+72|0;u=f;u=ks(o[u>>2]|0,o[u+4>>2]|0,o[s>>2]<<3|0,0)|0;l=I;o[f>>2]=u;o[f+4>>2]=l;r[e+63>>0]=u;f=xs(u|0,l|0,8)|0;r[e+62>>0]=f;f=xs(u|0,l|0,16)|0;r[e+61>>0]=f;f=xs(u|0,l|0,24)|0;r[e+60>>0]=f;r[e+59>>0]=l;f=xs(u|0,l|0,40)|0;r[e+58>>0]=f;f=xs(u|0,l|0,48)|0;r[e+57>>0]=f;l=xs(u|0,l|0,56)|0;r[e+56>>0]=l;Eo(e,e);l=e+80|0;u=e+84|0;f=e+88|0;c=e+92|0;a=e+96|0;n=e+100|0;i=e+104|0;s=e+108|0;r[t>>0]=(o[l>>2]|0)>>>24;r[t+4>>0]=(o[u>>2]|0)>>>24;r[t+8>>0]=(o[f>>2]|0)>>>24;r[t+12>>0]=(o[c>>2]|0)>>>24;r[t+16>>0]=(o[a>>2]|0)>>>24;r[t+20>>0]=(o[n>>2]|0)>>>24;r[t+24>>0]=(o[i>>2]|0)>>>24;r[t+28>>0]=(o[s>>2]|0)>>>24;r[t+1>>0]=(o[l>>2]|0)>>>16;r[t+5>>0]=(o[u>>2]|0)>>>16;r[t+9>>0]=(o[f>>2]|0)>>>16;r[t+13>>0]=(o[c>>2]|0)>>>16;r[t+17>>0]=(o[a>>2]|0)>>>16;r[t+21>>0]=(o[n>>2]|0)>>>16;r[t+25>>0]=(o[i>>2]|0)>>>16;r[t+29>>0]=(o[s>>2]|0)>>>16;r[t+2>>0]=(o[l>>2]|0)>>>8;r[t+6>>0]=(o[u>>2]|0)>>>8;r[t+10>>0]=(o[f>>2]|0)>>>8;r[t+14>>0]=(o[c>>2]|0)>>>8;r[t+18>>0]=(o[a>>2]|0)>>>8;r[t+22>>0]=(o[n>>2]|0)>>>8;r[t+26>>0]=(o[i>>2]|0)>>>8;r[t+30>>0]=(o[s>>2]|0)>>>8;r[t+3>>0]=o[l>>2];r[t+7>>0]=o[u>>2];r[t+11>>0]=o[f>>2];r[t+15>>0]=o[c>>2];r[t+19>>0]=o[a>>2];r[t+23>>0]=o[n>>2];r[t+27>>0]=o[i>>2];r[t+31>>0]=o[s>>2];return}function To(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0;L=h;h=h+16|0;M=L;U=M+4|0;E=M+8|0;k=M+12|0;v=r[e+4>>0]|0;S=M+1|0;f=r[e+5>>0]|0;I=M+5|0;m=r[e+6>>0]|0;T=M+9|0;l=r[e+7>>0]|0;R=M+13|0;b=r[e+8>>0]|0;O=M+2|0;d=r[e+9>>0]|0;x=M+6|0;w=r[e+10>>0]|0;C=M+10|0;u=r[e+11>>0]|0;P=M+14|0;a=r[e+12>>0]|0;D=M+3|0;q=r[e+13>>0]|0;B=M+7|0;g=r[e+14>>0]|0;N=M+11|0;p=r[e+15>>0]|0;j=M+15|0;_=o[n>>2]|0;y=_>>>24^(s[e>>0]|0);A=_>>>16^(s[e+1>>0]|0);c=_>>>8^(s[e+2>>0]|0);_=_^(s[e+3>>0]|0);r[k>>0]=_;F=o[n+4>>2]|0;v=F>>>24^v&255;f=F>>>16^f&255;m=F>>>8^m&255;l=F^l&255;F=o[n+8>>2]|0;b=F>>>24^b&255;d=F>>>16^d&255;w=F>>>8^w&255;u=F^u&255;F=o[n+12>>2]|0;a=F>>>24^a&255;e=F>>>16^q&255;g=F>>>8^g&255;p=F^p&255;r[M>>0]=r[(y&15)+(33024+(y>>>4<<4))>>0]|0;r[S>>0]=r[(v&15)+(33024+(v>>>4<<4))>>0]|0;r[O>>0]=r[(b&15)+(33024+(b>>>4<<4))>>0]|0;r[D>>0]=r[(a&15)+(33024+(a>>>4<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;e=r[(e&15)+(33024+((e>>>4&15)<<4))>>0]|0;c=r[(c&15)+(33024+((c>>>4&15)<<4))>>0]|0;m=r[(m&15)+(33024+((m>>>4&15)<<4))>>0]|0;w=r[(w&15)+(33024+((w>>>4&15)<<4))>>0]|0;g=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;l=r[(l&15)+(33024+((l>>>4&15)<<4))>>0]|0;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;p=r[(p&15)+(33024+((p>>>4&15)<<4))>>0]|0;r[U>>0]=r[(f&15)+(33024+((f>>>4&15)<<4))>>0]|0;r[I>>0]=d;r[x>>0]=e;r[B>>0]=A;r[E>>0]=w;r[C>>0]=c;r[T>>0]=g;r[N>>0]=m;r[k>>0]=p;r[j>>0]=u;r[P>>0]=l;r[R>>0]=_;Ro(M);_=o[n+16>>2]|0;l=_>>>24^(s[M>>0]|0);u=_>>>16^(s[U>>0]|0);p=_>>>8^(s[E>>0]|0);r[E>>0]=p;_=_^(s[k>>0]|0);r[k>>0]=_;m=o[n+20>>2]|0;g=m>>>24^(s[S>>0]|0);c=m>>>16^(s[I>>0]|0);w=m>>>8^(s[T>>0]|0);m=m^(s[R>>0]|0);r[R>>0]=m;A=o[n+24>>2]|0;e=A>>>24^(s[O>>0]|0);d=A>>>16^(s[x>>0]|0);f=A>>>8^(s[C>>0]|0);A=A^(s[P>>0]|0);a=o[n+28>>2]|0;b=a>>>24^(s[D>>0]|0);v=a>>>16^(s[B>>0]|0);y=a>>>8^(s[N>>0]|0);a=a^(s[j>>0]|0);r[M>>0]=r[(l&15)+(33024+(l>>>4<<4))>>0]|0;r[S>>0]=r[(g&15)+(33024+(g>>>4<<4))>>0]|0;r[O>>0]=r[(e&15)+(33024+(e>>>4<<4))>>0]|0;r[D>>0]=r[(b&15)+(33024+(b>>>4<<4))>>0]|0;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;v=r[(v&15)+(33024+((v>>>4&15)<<4))>>0]|0;p=r[(p&15)+(33024+((p>>>4&15)<<4))>>0]|0;w=r[(w&15)+(33024+((w>>>4&15)<<4))>>0]|0;f=r[(f&15)+(33024+((f>>>4&15)<<4))>>0]|0;y=r[(y&15)+(33024+((y>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;m=r[(m&15)+(33024+((m>>>4&15)<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;a=r[(a&15)+(33024+((a>>>4&15)<<4))>>0]|0;r[U>>0]=r[(c&15)+(33024+((c>>>4&15)<<4))>>0]|0;r[I>>0]=d;r[x>>0]=v;r[B>>0]=u;r[E>>0]=f;r[C>>0]=p;r[T>>0]=y;r[N>>0]=w;r[k>>0]=a;r[j>>0]=A;r[P>>0]=m;r[R>>0]=_;Ro(M);_=o[n+32>>2]|0;m=_>>>24^(s[M>>0]|0);A=_>>>16^(s[U>>0]|0);a=_>>>8^(s[E>>0]|0);r[E>>0]=a;_=_^(s[k>>0]|0);r[k>>0]=_;w=o[n+36>>2]|0;y=w>>>24^(s[S>>0]|0);p=w>>>16^(s[I>>0]|0);f=w>>>8^(s[T>>0]|0);w=w^(s[R>>0]|0);r[R>>0]=w;u=o[n+40>>2]|0;v=u>>>24^(s[O>>0]|0);d=u>>>16^(s[x>>0]|0);c=u>>>8^(s[C>>0]|0);u=u^(s[P>>0]|0);b=o[n+44>>2]|0;e=b>>>24^(s[D>>0]|0);g=b>>>16^(s[B>>0]|0);l=b>>>8^(s[N>>0]|0);b=b^(s[j>>0]|0);r[M>>0]=r[(m&15)+(33024+(m>>>4<<4))>>0]|0;r[S>>0]=r[(y&15)+(33024+(y>>>4<<4))>>0]|0;r[O>>0]=r[(v&15)+(33024+(v>>>4<<4))>>0]|0;r[D>>0]=r[(e&15)+(33024+(e>>>4<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;g=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;a=r[(a&15)+(33024+((a>>>4&15)<<4))>>0]|0;f=r[(f&15)+(33024+((f>>>4&15)<<4))>>0]|0;c=r[(c&15)+(33024+((c>>>4&15)<<4))>>0]|0;l=r[(l&15)+(33024+((l>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;w=r[(w&15)+(33024+((w>>>4&15)<<4))>>0]|0;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;b=r[(b&15)+(33024+((b>>>4&15)<<4))>>0]|0;r[U>>0]=r[(p&15)+(33024+((p>>>4&15)<<4))>>0]|0;r[I>>0]=d;r[x>>0]=g;r[B>>0]=A;r[E>>0]=c;r[C>>0]=a;r[T>>0]=l;r[N>>0]=f;r[k>>0]=b;r[j>>0]=u;r[P>>0]=w;r[R>>0]=_;Ro(M);_=o[n+48>>2]|0;w=_>>>24^(s[M>>0]|0);u=_>>>16^(s[U>>0]|0);b=_>>>8^(s[E>>0]|0);r[E>>0]=b;_=_^(s[k>>0]|0);r[k>>0]=_;f=o[n+52>>2]|0;l=f>>>24^(s[S>>0]|0);a=f>>>16^(s[I>>0]|0);c=f>>>8^(s[T>>0]|0);f=f^(s[R>>0]|0);r[R>>0]=f;A=o[n+56>>2]|0;g=A>>>24^(s[O>>0]|0);d=A>>>16^(s[x>>0]|0);p=A>>>8^(s[C>>0]|0);A=A^(s[P>>0]|0);e=o[n+60>>2]|0;v=e>>>24^(s[D>>0]|0);y=e>>>16^(s[B>>0]|0);m=e>>>8^(s[N>>0]|0);e=e^(s[j>>0]|0);r[M>>0]=r[(w&15)+(33024+(w>>>4<<4))>>0]|0;r[S>>0]=r[(l&15)+(33024+(l>>>4<<4))>>0]|0;r[O>>0]=r[(g&15)+(33024+(g>>>4<<4))>>0]|0;r[D>>0]=r[(v&15)+(33024+(v>>>4<<4))>>0]|0;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;y=r[(y&15)+(33024+((y>>>4&15)<<4))>>0]|0;b=r[(b&15)+(33024+((b>>>4&15)<<4))>>0]|0;c=r[(c&15)+(33024+((c>>>4&15)<<4))>>0]|0;p=r[(p&15)+(33024+((p>>>4&15)<<4))>>0]|0;m=r[(m&15)+(33024+((m>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;f=r[(f&15)+(33024+((f>>>4&15)<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;e=r[(e&15)+(33024+((e>>>4&15)<<4))>>0]|0;r[U>>0]=r[(a&15)+(33024+((a>>>4&15)<<4))>>0]|0;r[I>>0]=d;r[x>>0]=y;r[B>>0]=u;r[E>>0]=p;r[C>>0]=b;r[T>>0]=m;r[N>>0]=c;r[k>>0]=e;r[j>>0]=A;r[P>>0]=f;r[R>>0]=_;Ro(M);_=o[n+64>>2]|0;f=_>>>24^(s[M>>0]|0);A=_>>>16^(s[U>>0]|0);e=_>>>8^(s[E>>0]|0);r[E>>0]=e;_=_^(s[k>>0]|0);r[k>>0]=_;c=o[n+68>>2]|0;m=c>>>24^(s[S>>0]|0);b=c>>>16^(s[I>>0]|0);p=c>>>8^(s[T>>0]|0);c=c^(s[R>>0]|0);r[R>>0]=c;u=o[n+72>>2]|0;y=u>>>24^(s[O>>0]|0);d=u>>>16^(s[x>>0]|0);a=u>>>8^(s[C>>0]|0);u=u^(s[P>>0]|0);v=o[n+76>>2]|0;g=v>>>24^(s[D>>0]|0);l=v>>>16^(s[B>>0]|0);w=v>>>8^(s[N>>0]|0);v=v^(s[j>>0]|0);r[M>>0]=r[(f&15)+(33024+(f>>>4<<4))>>0]|0;r[S>>0]=r[(m&15)+(33024+(m>>>4<<4))>>0]|0;r[O>>0]=r[(y&15)+(33024+(y>>>4<<4))>>0]|0;r[D>>0]=r[(g&15)+(33024+(g>>>4<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;l=r[(l&15)+(33024+((l>>>4&15)<<4))>>0]|0;e=r[(e&15)+(33024+((e>>>4&15)<<4))>>0]|0;p=r[(p&15)+(33024+((p>>>4&15)<<4))>>0]|0;a=r[(a&15)+(33024+((a>>>4&15)<<4))>>0]|0;w=r[(w&15)+(33024+((w>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;c=r[(c&15)+(33024+((c>>>4&15)<<4))>>0]|0;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;v=r[(v&15)+(33024+((v>>>4&15)<<4))>>0]|0;r[U>>0]=r[(b&15)+(33024+((b>>>4&15)<<4))>>0]|0;r[I>>0]=d;r[x>>0]=l;r[B>>0]=A;r[E>>0]=a;r[C>>0]=e;r[T>>0]=w;r[N>>0]=p;r[k>>0]=v;r[j>>0]=u;r[P>>0]=c;r[R>>0]=_;Ro(M);_=o[n+80>>2]|0;c=_>>>24^(s[M>>0]|0);u=_>>>16^(s[U>>0]|0);v=_>>>8^(s[E>>0]|0);r[E>>0]=v;_=_^(s[k>>0]|0);r[k>>0]=_;p=o[n+84>>2]|0;w=p>>>24^(s[S>>0]|0);e=p>>>16^(s[I>>0]|0);a=p>>>8^(s[T>>0]|0);p=p^(s[R>>0]|0);r[R>>0]=p;A=o[n+88>>2]|0;l=A>>>24^(s[O>>0]|0);d=A>>>16^(s[x>>0]|0);b=A>>>8^(s[C>>0]|0);A=A^(s[P>>0]|0);g=o[n+92>>2]|0;y=g>>>24^(s[D>>0]|0);m=g>>>16^(s[B>>0]|0);f=g>>>8^(s[N>>0]|0);g=g^(s[j>>0]|0);r[M>>0]=r[(c&15)+(33024+(c>>>4<<4))>>0]|0;r[S>>0]=r[(w&15)+(33024+(w>>>4<<4))>>0]|0;r[O>>0]=r[(l&15)+(33024+(l>>>4<<4))>>0]|0;r[D>>0]=r[(y&15)+(33024+(y>>>4<<4))>>0]|0;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;m=r[(m&15)+(33024+((m>>>4&15)<<4))>>0]|0;v=r[(v&15)+(33024+((v>>>4&15)<<4))>>0]|0;a=r[(a&15)+(33024+((a>>>4&15)<<4))>>0]|0;b=r[(b&15)+(33024+((b>>>4&15)<<4))>>0]|0;f=r[(f&15)+(33024+((f>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;p=r[(p&15)+(33024+((p>>>4&15)<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;g=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;r[U>>0]=r[(e&15)+(33024+((e>>>4&15)<<4))>>0]|0;r[I>>0]=d;r[x>>0]=m;r[B>>0]=u;r[E>>0]=b;r[C>>0]=v;r[T>>0]=f;r[N>>0]=a;r[k>>0]=g;r[j>>0]=A;r[P>>0]=p;r[R>>0]=_;Ro(M);_=o[n+96>>2]|0;p=_>>>24^(s[M>>0]|0);A=_>>>16^(s[U>>0]|0);g=_>>>8^(s[E>>0]|0);r[E>>0]=g;_=_^(s[k>>0]|0);r[k>>0]=_;a=o[n+100>>2]|0;f=a>>>24^(s[S>>0]|0);v=a>>>16^(s[I>>0]|0);b=a>>>8^(s[T>>0]|0);a=a^(s[R>>0]|0);r[R>>0]=a;u=o[n+104>>2]|0;m=u>>>24^(s[O>>0]|0);d=u>>>16^(s[x>>0]|0);e=u>>>8^(s[C>>0]|0);u=u^(s[P>>0]|0);y=o[n+108>>2]|0;l=y>>>24^(s[D>>0]|0);w=y>>>16^(s[B>>0]|0);c=y>>>8^(s[N>>0]|0);y=y^(s[j>>0]|0);r[M>>0]=r[(p&15)+(33024+(p>>>4<<4))>>0]|0;r[S>>0]=r[(f&15)+(33024+(f>>>4<<4))>>0]|0;r[O>>0]=r[(m&15)+(33024+(m>>>4<<4))>>0]|0;r[D>>0]=r[(l&15)+(33024+(l>>>4<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;w=r[(w&15)+(33024+((w>>>4&15)<<4))>>0]|0;g=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;b=r[(b&15)+(33024+((b>>>4&15)<<4))>>0]|0;e=r[(e&15)+(33024+((e>>>4&15)<<4))>>0]|0;c=r[(c&15)+(33024+((c>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;a=r[(a&15)+(33024+((a>>>4&15)<<4))>>0]|0;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;y=r[(y&15)+(33024+((y>>>4&15)<<4))>>0]|0;r[U>>0]=r[(v&15)+(33024+((v>>>4&15)<<4))>>0]|0;r[I>>0]=d;r[x>>0]=w;r[B>>0]=A;r[E>>0]=e;r[C>>0]=g;r[T>>0]=c;r[N>>0]=b;r[k>>0]=y;r[j>>0]=u;r[P>>0]=a;r[R>>0]=_;Ro(M);_=o[n+112>>2]|0;a=_>>>24^(s[M>>0]|0);u=_>>>16^(s[U>>0]|0);y=_>>>8^(s[E>>0]|0);r[E>>0]=y;_=_^(s[k>>0]|0);r[k>>0]=_;b=o[n+116>>2]|0;c=b>>>24^(s[S>>0]|0);g=b>>>16^(s[I>>0]|0);e=b>>>8^(s[T>>0]|0);b=b^(s[R>>0]|0);r[R>>0]=b;A=o[n+120>>2]|0;w=A>>>24^(s[O>>0]|0);d=A>>>16^(s[x>>0]|0);v=A>>>8^(s[C>>0]|0);A=A^(s[P>>0]|0);l=o[n+124>>2]|0;m=l>>>24^(s[D>>0]|0);f=l>>>16^(s[B>>0]|0);p=l>>>8^(s[N>>0]|0);l=l^(s[j>>0]|0);r[M>>0]=r[(a&15)+(33024+(a>>>4<<4))>>0]|0;r[S>>0]=r[(c&15)+(33024+(c>>>4<<4))>>0]|0;r[O>>0]=r[(w&15)+(33024+(w>>>4<<4))>>0]|0;r[D>>0]=r[(m&15)+(33024+(m>>>4<<4))>>0]|0;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;f=r[(f&15)+(33024+((f>>>4&15)<<4))>>0]|0;y=r[(y&15)+(33024+((y>>>4&15)<<4))>>0]|0;e=r[(e&15)+(33024+((e>>>4&15)<<4))>>0]|0;v=r[(v&15)+(33024+((v>>>4&15)<<4))>>0]|0;p=r[(p&15)+(33024+((p>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;b=r[(b&15)+(33024+((b>>>4&15)<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;l=r[(l&15)+(33024+((l>>>4&15)<<4))>>0]|0;r[U>>0]=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;r[I>>0]=d;r[x>>0]=f;r[B>>0]=u;r[E>>0]=v;r[C>>0]=y;r[T>>0]=p;r[N>>0]=e;r[k>>0]=l;r[j>>0]=A;r[P>>0]=b;r[R>>0]=_;Ro(M);_=o[n+128>>2]|0;b=_>>>24^(s[M>>0]|0);A=_>>>16^(s[U>>0]|0);l=_>>>8^(s[E>>0]|0);r[E>>0]=l;_=_^(s[k>>0]|0);r[k>>0]=_;e=o[n+132>>2]|0;p=e>>>24^(s[S>>0]|0);y=e>>>16^(s[I>>0]|0);v=e>>>8^(s[T>>0]|0);e=e^(s[R>>0]|0);r[R>>0]=e;u=o[n+136>>2]|0;f=u>>>24^(s[O>>0]|0);d=u>>>16^(s[x>>0]|0);g=u>>>8^(s[C>>0]|0);u=u^(s[P>>0]|0);m=o[n+140>>2]|0;w=m>>>24^(s[D>>0]|0);c=m>>>16^(s[B>>0]|0);a=m>>>8^(s[N>>0]|0);m=m^(s[j>>0]|0);r[M>>0]=r[(b&15)+(33024+(b>>>4<<4))>>0]|0;r[S>>0]=r[(p&15)+(33024+(p>>>4<<4))>>0]|0;r[O>>0]=r[(f&15)+(33024+(f>>>4<<4))>>0]|0;r[D>>0]=r[(w&15)+(33024+(w>>>4<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;c=r[(c&15)+(33024+((c>>>4&15)<<4))>>0]|0;l=r[(l&15)+(33024+((l>>>4&15)<<4))>>0]|0;v=r[(v&15)+(33024+((v>>>4&15)<<4))>>0]|0;g=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;a=r[(a&15)+(33024+((a>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;e=r[(e&15)+(33024+((e>>>4&15)<<4))>>0]|0;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;m=r[(m&15)+(33024+((m>>>4&15)<<4))>>0]|0;r[U>>0]=r[(y&15)+(33024+((y>>>4&15)<<4))>>0]|0;r[I>>0]=d;r[x>>0]=c;r[B>>0]=A;r[E>>0]=g;r[C>>0]=l;r[T>>0]=a;r[N>>0]=v;r[k>>0]=m;r[j>>0]=u;r[P>>0]=e;r[R>>0]=_;Ro(M);_=o[n+144>>2]|0;e=_>>>24^(s[M>>0]|0);u=_>>>16^(s[U>>0]|0);m=_>>>8^(s[E>>0]|0);r[E>>0]=m;_=_^(s[k>>0]|0);r[k>>0]=_;v=o[n+148>>2]|0;a=v>>>24^(s[S>>0]|0);l=v>>>16^(s[I>>0]|0);g=v>>>8^(s[T>>0]|0);v=v^(s[R>>0]|0);r[R>>0]=v;A=o[n+152>>2]|0;c=A>>>24^(s[O>>0]|0);d=A>>>16^(s[x>>0]|0);y=A>>>8^(s[C>>0]|0);A=A^(s[P>>0]|0);w=o[n+156>>2]|0;f=w>>>24^(s[D>>0]|0);p=w>>>16^(s[B>>0]|0);b=w>>>8^(s[N>>0]|0);w=w^(s[j>>0]|0);e=r[(e&15)+(33024+(e>>>4<<4))>>0]|0;r[M>>0]=e;a=r[(a&15)+(33024+(a>>>4<<4))>>0]|0;r[S>>0]=a;c=r[(c&15)+(33024+(c>>>4<<4))>>0]|0;r[O>>0]=c;f=r[(f&15)+(33024+(f>>>4<<4))>>0]|0;r[D>>0]=f;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;l=r[(l&15)+(33024+((l>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;p=r[(p&15)+(33024+((p>>>4&15)<<4))>>0]|0;m=r[(m&15)+(33024+((m>>>4&15)<<4))>>0]|0;g=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;y=r[(y&15)+(33024+((y>>>4&15)<<4))>>0]|0;b=r[(b&15)+(33024+((b>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;v=r[(v&15)+(33024+((v>>>4&15)<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;w=r[(w&15)+(33024+((w>>>4&15)<<4))>>0]|0;r[U>>0]=l;r[I>>0]=d;r[x>>0]=p;r[B>>0]=u;r[E>>0]=y;r[C>>0]=m;r[T>>0]=b;r[N>>0]=g;r[k>>0]=w;r[j>>0]=A;r[P>>0]=v;r[R>>0]=_;if((i|0)==128){K=b;z=d;G=41;H=w;w=y;V=l;q=e;e=40;F=A;b=g;y=u;g=f;d=43;i=p;l=c;p=42;f=n+(e<<2)|0;f=o[f>>2]|0;A=f>>>24;c=f>>>16;u=f>>>8;q=q&255;q=A^q;q=q&255;r[M>>0]=q;A=V&255;A=c^A;A=A&255;r[U>>0]=A;w=w&255;w=u^w;w=w&255;r[E>>0]=w;E=H&255;E=f^E;E=E&255;r[k>>0]=E;U=n+(G<<2)|0;U=o[U>>2]|0;f=U>>>24;u=U>>>16;M=U>>>8;k=a&255;k=f^k;k=k&255;r[S>>0]=k;S=z&255;S=u^S;S=S&255;r[I>>0]=S;I=K&255;I=M^I;I=I&255;r[T>>0]=I;T=_&255;T=U^T;T=T&255;r[R>>0]=T;U=n+(p<<2)|0;U=o[U>>2]|0;p=U>>>24;_=U>>>16;M=U>>>8;R=l&255;R=p^R;R=R&255;r[O>>0]=R;i=i&255;i=_^i;i=i&255;r[x>>0]=i;x=m&255;x=M^x;x=x&255;r[C>>0]=x;C=v&255;C=U^C;C=C&255;r[P>>0]=C;P=n+(d<<2)|0;P=o[P>>2]|0;n=P>>>24;U=P>>>16;O=P>>>8;M=g&255;M=n^M;M=M&255;r[D>>0]=M;D=y&255;D=U^D;D=D&255;r[B>>0]=D;U=b&255;U=O^U;U=U&255;r[N>>0]=U;F=F&255;F=P^F;F=F&255;r[j>>0]=F;r[t>>0]=q;q=t+1|0;r[q>>0]=A;q=t+2|0;r[q>>0]=w;q=t+3|0;r[q>>0]=E;q=t+4|0;r[q>>0]=k;q=t+5|0;r[q>>0]=S;q=t+6|0;r[q>>0]=I;q=t+7|0;r[q>>0]=T;q=t+8|0;r[q>>0]=R;q=t+9|0;r[q>>0]=i;q=t+10|0;r[q>>0]=x;q=t+11|0;r[q>>0]=C;q=t+12|0;r[q>>0]=M;q=t+13|0;r[q>>0]=D;q=t+14|0;r[q>>0]=U;q=t+15|0;r[q>>0]=F;h=L;return}Ro(M);_=o[n+160>>2]|0;b=_>>>24^(s[M>>0]|0);A=_>>>16^(s[U>>0]|0);l=_>>>8^(s[E>>0]|0);r[E>>0]=l;_=_^(s[k>>0]|0);r[k>>0]=_;e=o[n+164>>2]|0;p=e>>>24^(s[S>>0]|0);y=e>>>16^(s[I>>0]|0);v=e>>>8^(s[T>>0]|0);e=e^(s[R>>0]|0);r[R>>0]=e;u=o[n+168>>2]|0;f=u>>>24^(s[O>>0]|0);d=u>>>16^(s[x>>0]|0);g=u>>>8^(s[C>>0]|0);u=u^(s[P>>0]|0);m=o[n+172>>2]|0;w=m>>>24^(s[D>>0]|0);c=m>>>16^(s[B>>0]|0);a=m>>>8^(s[N>>0]|0);m=m^(s[j>>0]|0);r[M>>0]=r[(b&15)+(33024+(b>>>4<<4))>>0]|0;r[S>>0]=r[(p&15)+(33024+(p>>>4<<4))>>0]|0;r[O>>0]=r[(f&15)+(33024+(f>>>4<<4))>>0]|0;r[D>>0]=r[(w&15)+(33024+(w>>>4<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;c=r[(c&15)+(33024+((c>>>4&15)<<4))>>0]|0;l=r[(l&15)+(33024+((l>>>4&15)<<4))>>0]|0;v=r[(v&15)+(33024+((v>>>4&15)<<4))>>0]|0;g=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;a=r[(a&15)+(33024+((a>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;e=r[(e&15)+(33024+((e>>>4&15)<<4))>>0]|0;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;m=r[(m&15)+(33024+((m>>>4&15)<<4))>>0]|0;r[U>>0]=r[(y&15)+(33024+((y>>>4&15)<<4))>>0]|0;r[I>>0]=d;r[x>>0]=c;r[B>>0]=A;r[E>>0]=g;r[C>>0]=l;r[T>>0]=a;r[N>>0]=v;r[k>>0]=m;r[j>>0]=u;r[P>>0]=e;r[R>>0]=_;Ro(M);_=o[n+176>>2]|0;e=_>>>24^(s[M>>0]|0);u=_>>>16^(s[U>>0]|0);m=_>>>8^(s[E>>0]|0);r[E>>0]=m;_=_^(s[k>>0]|0);r[k>>0]=_;v=o[n+180>>2]|0;a=v>>>24^(s[S>>0]|0);l=v>>>16^(s[I>>0]|0);g=v>>>8^(s[T>>0]|0);v=v^(s[R>>0]|0);r[R>>0]=v;A=o[n+184>>2]|0;c=A>>>24^(s[O>>0]|0);d=A>>>16^(s[x>>0]|0);y=A>>>8^(s[C>>0]|0);A=A^(s[P>>0]|0);w=o[n+188>>2]|0;f=w>>>24^(s[D>>0]|0);p=w>>>16^(s[B>>0]|0);b=w>>>8^(s[N>>0]|0);w=w^(s[j>>0]|0);e=r[(e&15)+(33024+(e>>>4<<4))>>0]|0;r[M>>0]=e;a=r[(a&15)+(33024+(a>>>4<<4))>>0]|0;r[S>>0]=a;c=r[(c&15)+(33024+(c>>>4<<4))>>0]|0;r[O>>0]=c;f=r[(f&15)+(33024+(f>>>4<<4))>>0]|0;r[D>>0]=f;u=r[(u&15)+(33024+((u>>>4&15)<<4))>>0]|0;l=r[(l&15)+(33024+((l>>>4&15)<<4))>>0]|0;d=r[(d&15)+(33024+((d>>>4&15)<<4))>>0]|0;p=r[(p&15)+(33024+((p>>>4&15)<<4))>>0]|0;m=r[(m&15)+(33024+((m>>>4&15)<<4))>>0]|0;g=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;y=r[(y&15)+(33024+((y>>>4&15)<<4))>>0]|0;b=r[(b&15)+(33024+((b>>>4&15)<<4))>>0]|0;_=r[(_&15)+(33024+((_>>>4&15)<<4))>>0]|0;v=r[(v&15)+(33024+((v>>>4&15)<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;w=r[(w&15)+(33024+((w>>>4&15)<<4))>>0]|0;r[U>>0]=l;r[I>>0]=d;r[x>>0]=p;r[B>>0]=u;r[E>>0]=y;r[C>>0]=m;r[T>>0]=b;r[N>>0]=g;r[k>>0]=w;r[j>>0]=A;r[P>>0]=v;r[R>>0]=_;if((i|0)==192){Q=b;W=49;Y=w;w=y;V=e;e=48;H=A;G=g;z=u;K=f;b=51;q=v;F=m;y=p;g=c;v=50;i=_;m=n+(e<<2)|0;m=o[m>>2]|0;A=m>>>24;p=m>>>16;_=m>>>8;V=V&255;V=A^V;V=V&255;r[M>>0]=V;A=l&255;A=p^A;A=A&255;r[U>>0]=A;w=w&255;w=_^w;w=w&255;r[E>>0]=w;E=Y&255;E=m^E;E=E&255;r[k>>0]=E;U=n+(W<<2)|0;U=o[U>>2]|0;m=U>>>24;_=U>>>16;M=U>>>8;k=a&255;k=m^k;k=k&255;r[S>>0]=k;S=d&255;S=_^S;S=S&255;r[I>>0]=S;I=Q&255;I=M^I;I=I&255;r[T>>0]=I;i=i&255;i=U^i;i=i&255;r[R>>0]=i;R=n+(v<<2)|0;R=o[R>>2]|0;U=R>>>24;v=R>>>16;T=R>>>8;M=g&255;M=U^M;M=M&255;r[O>>0]=M;U=y&255;U=v^U;U=U&255;r[x>>0]=U;F=F&255;F=T^F;F=F&255;r[C>>0]=F;q=q&255;q=R^q;q=q&255;r[P>>0]=q;P=n+(b<<2)|0;P=o[P>>2]|0;O=P>>>24;x=P>>>16;C=P>>>8;K=K&255;K=O^K;K=K&255;r[D>>0]=K;z=z&255;z=x^z;z=z&255;r[B>>0]=z;G=G&255;G=C^G;G=G&255;r[N>>0]=G;H=H&255;H=P^H;H=H&255;r[j>>0]=H;r[t>>0]=V;V=t+1|0;r[V>>0]=A;V=t+2|0;r[V>>0]=w;V=t+3|0;r[V>>0]=E;V=t+4|0;r[V>>0]=k;V=t+5|0;r[V>>0]=S;V=t+6|0;r[V>>0]=I;V=t+7|0;r[V>>0]=i;V=t+8|0;r[V>>0]=M;V=t+9|0;r[V>>0]=U;V=t+10|0;r[V>>0]=F;V=t+11|0;r[V>>0]=q;V=t+12|0;r[V>>0]=K;V=t+13|0;r[V>>0]=z;V=t+14|0;r[V>>0]=G;V=t+15|0;r[V>>0]=H;h=L;return}Ro(M);F=o[n+192>>2]|0;y=F>>>24^(s[M>>0]|0);W=F>>>16^(s[U>>0]|0);A=F>>>8^(s[E>>0]|0);r[E>>0]=A;F=F^(s[k>>0]|0);r[k>>0]=F;Y=o[n+196>>2]|0;K=Y>>>24^(s[S>>0]|0);w=Y>>>16^(s[I>>0]|0);G=Y>>>8^(s[T>>0]|0);Y=Y^(s[R>>0]|0);r[R>>0]=Y;V=o[n+200>>2]|0;H=V>>>24^(s[O>>0]|0);g=V>>>16^(s[x>>0]|0);Q=V>>>8^(s[C>>0]|0);V=V^(s[P>>0]|0);z=o[n+204>>2]|0;p=z>>>24^(s[D>>0]|0);q=z>>>16^(s[B>>0]|0);i=z>>>8^(s[N>>0]|0);z=z^(s[j>>0]|0);r[M>>0]=r[(y&15)+(33024+(y>>>4<<4))>>0]|0;r[S>>0]=r[(K&15)+(33024+(K>>>4<<4))>>0]|0;r[O>>0]=r[(H&15)+(33024+(H>>>4<<4))>>0]|0;r[D>>0]=r[(p&15)+(33024+(p>>>4<<4))>>0]|0;W=r[(W&15)+(33024+((W>>>4&15)<<4))>>0]|0;g=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;q=r[(q&15)+(33024+((q>>>4&15)<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;G=r[(G&15)+(33024+((G>>>4&15)<<4))>>0]|0;Q=r[(Q&15)+(33024+((Q>>>4&15)<<4))>>0]|0;i=r[(i&15)+(33024+((i>>>4&15)<<4))>>0]|0;F=r[(F&15)+(33024+((F>>>4&15)<<4))>>0]|0;Y=r[(Y&15)+(33024+((Y>>>4&15)<<4))>>0]|0;V=r[(V&15)+(33024+((V>>>4&15)<<4))>>0]|0;z=r[(z&15)+(33024+((z>>>4&15)<<4))>>0]|0;r[U>>0]=r[(w&15)+(33024+((w>>>4&15)<<4))>>0]|0;r[I>>0]=g;r[x>>0]=q;r[B>>0]=W;r[E>>0]=Q;r[C>>0]=A;r[T>>0]=i;r[N>>0]=G;r[k>>0]=z;r[j>>0]=V;r[P>>0]=Y;r[R>>0]=F;Ro(M);F=o[n+208>>2]|0;Y=F>>>24^(s[M>>0]|0);V=F>>>16^(s[U>>0]|0);z=F>>>8^(s[E>>0]|0);r[E>>0]=z;F=F^(s[k>>0]|0);r[k>>0]=F;G=o[n+212>>2]|0;i=G>>>24^(s[S>>0]|0);A=G>>>16^(s[I>>0]|0);Q=G>>>8^(s[T>>0]|0);G=G^(s[R>>0]|0);r[R>>0]=G;W=o[n+216>>2]|0;q=W>>>24^(s[O>>0]|0);g=W>>>16^(s[x>>0]|0);w=W>>>8^(s[C>>0]|0);W=W^(s[P>>0]|0);p=o[n+220>>2]|0;H=p>>>24^(s[D>>0]|0);K=p>>>16^(s[B>>0]|0);y=p>>>8^(s[N>>0]|0);p=p^(s[j>>0]|0);Y=r[(Y&15)+(33024+(Y>>>4<<4))>>0]|0;i=r[(i&15)+(33024+(i>>>4<<4))>>0]|0;r[S>>0]=i;q=r[(q&15)+(33024+(q>>>4<<4))>>0]|0;r[O>>0]=q;H=r[(H&15)+(33024+(H>>>4<<4))>>0]|0;r[D>>0]=H;y=r[(y&15)+(33024+((y>>>4&15)<<4))>>0]|0;g=r[(g&15)+(33024+((g>>>4&15)<<4))>>0]|0;b=57;p=r[(p&15)+(33024+((p>>>4&15)<<4))>>0]|0;w=r[(w&15)+(33024+((w>>>4&15)<<4))>>0]|0;A=r[(A&15)+(33024+((A>>>4&15)<<4))>>0]|0;m=56;W=r[(W&15)+(33024+((W>>>4&15)<<4))>>0]|0;Q=r[(Q&15)+(33024+((Q>>>4&15)<<4))>>0]|0;V=r[(V&15)+(33024+((V>>>4&15)<<4))>>0]|0;v=59;G=r[(G&15)+(33024+((G>>>4&15)<<4))>>0]|0;z=r[(z&15)+(33024+((z>>>4&15)<<4))>>0]|0;K=r[(K&15)+(33024+((K>>>4&15)<<4))>>0]|0;_=58;F=r[(F&15)+(33024+((F>>>4&15)<<4))>>0]|0;m=n+(m<<2)|0;m=o[m>>2]|0;u=m>>>24;l=m>>>16;d=m>>>8;Y=Y&255;Y=u^Y;Y=Y&255;r[M>>0]=Y;A=A&255;A=l^A;A=A&255;r[U>>0]=A;w=w&255;w=d^w;w=w&255;r[E>>0]=w;E=p&255;E=m^E;E=E&255;r[k>>0]=E;k=n+(b<<2)|0;k=o[k>>2]|0;M=k>>>24;U=k>>>16;b=k>>>8;i=i&255;i=M^i;i=i&255;r[S>>0]=i;M=g&255;M=U^M;M=M&255;r[I>>0]=M;U=y&255;U=b^U;U=U&255;r[T>>0]=U;F=F&255;F=k^F;F=F&255;r[R>>0]=F;R=n+(_<<2)|0;R=o[R>>2]|0;S=R>>>24;I=R>>>16;T=R>>>8;q=q&255;q=S^q;q=q&255;r[O>>0]=q;K=K&255;K=I^K;K=K&255;r[x>>0]=K;z=z&255;z=T^z;z=z&255;r[C>>0]=z;G=G&255;G=R^G;G=G&255;r[P>>0]=G;P=n+(v<<2)|0;P=o[P>>2]|0;O=P>>>24;x=P>>>16;C=P>>>8;H=H&255;H=O^H;H=H&255;r[D>>0]=H;V=V&255;V=x^V;V=V&255;r[B>>0]=V;Q=Q&255;Q=C^Q;Q=Q&255;r[N>>0]=Q;W=W&255;W=P^W;W=W&255;r[j>>0]=W;r[t>>0]=Y;Y=t+1|0;r[Y>>0]=A;Y=t+2|0;r[Y>>0]=w;Y=t+3|0;r[Y>>0]=E;Y=t+4|0;r[Y>>0]=i;Y=t+5|0;r[Y>>0]=M;Y=t+6|0;r[Y>>0]=U;Y=t+7|0;r[Y>>0]=F;Y=t+8|0;r[Y>>0]=q;Y=t+9|0;r[Y>>0]=K;Y=t+10|0;r[Y>>0]=z;Y=t+11|0;r[Y>>0]=G;Y=t+12|0;r[Y>>0]=H;Y=t+13|0;r[Y>>0]=V;Y=t+14|0;r[Y>>0]=Q;Y=t+15|0;r[Y>>0]=W;h=L;return}function Ro(e){e=e|0;var t=0,n=0,i=0,o=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0;h=r[e>>0]|0;l=e+4|0;i=r[l>>0]|0;o=e+8|0;s=r[o>>0]|0;a=e+12|0;n=r[a>>0]|0;f=h&255;c=i&255;t=s&255;d=n&255;r[e>>0]=n^s^r[33280+(f*6|0)>>0]^r[33280+(c*6|0)+1>>0];r[l>>0]=r[33280+(c*6|0)>>0]^h^n^r[33280+(t*6|0)+1>>0];r[o>>0]=r[33280+(d*6|0)+1>>0]^(r[33280+(t*6|0)>>0]^(i^h));r[a>>0]=s^i^r[33280+(f*6|0)+1>>0]^r[33280+(d*6|0)>>0];a=e+1|0;d=r[a>>0]|0;f=e+5|0;i=r[f>>0]|0;s=e+9|0;o=r[s>>0]|0;h=e+13|0;t=r[h>>0]|0;l=d&255;n=i&255;c=o&255;u=t&255;r[a>>0]=t^o^r[33280+(l*6|0)>>0]^r[33280+(n*6|0)+1>>0];r[f>>0]=r[33280+(n*6|0)>>0]^d^t^r[33280+(c*6|0)+1>>0];r[s>>0]=r[33280+(u*6|0)+1>>0]^(r[33280+(c*6|0)>>0]^(i^d));r[h>>0]=o^i^r[33280+(l*6|0)+1>>0]^r[33280+(u*6|0)>>0];h=e+2|0;u=r[h>>0]|0;l=e+6|0;i=r[l>>0]|0;o=e+10|0;s=r[o>>0]|0;d=e+14|0;c=r[d>>0]|0;f=u&255;t=i&255;n=s&255;a=c&255;r[h>>0]=c^s^r[33280+(f*6|0)>>0]^r[33280+(t*6|0)+1>>0];r[l>>0]=r[33280+(t*6|0)>>0]^u^c^r[33280+(n*6|0)+1>>0];r[o>>0]=r[33280+(a*6|0)+1>>0]^(r[33280+(n*6|0)>>0]^(i^u));r[d>>0]=s^i^r[33280+(f*6|0)+1>>0]^r[33280+(a*6|0)>>0];d=e+3|0;a=r[d>>0]|0;f=e+7|0;i=r[f>>0]|0;s=e+11|0;o=r[s>>0]|0;e=e+15|0;u=r[e>>0]|0;n=a&255;l=i&255;c=o&255;t=u&255;r[d>>0]=u^o^r[33280+(n*6|0)>>0]^r[33280+(l*6|0)+1>>0];r[f>>0]=r[33280+(l*6|0)>>0]^a^u^r[33280+(c*6|0)+1>>0];r[s>>0]=r[33280+(t*6|0)+1>>0]^(r[33280+(c*6|0)>>0]^(i^a));r[e>>0]=o^i^r[33280+(n*6|0)+1>>0]^r[33280+(t*6|0)>>0];return}function Oo(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,a=0;switch(n|0){case 128:{i=4;a=44;break}case 192:{i=6;a=52;break}case 256:{i=8;a=60;break}default:return}n=0;do{r=n<<2;o[t+(n<<2)>>2]=(s[e+(r|1)>>0]|0)<<16|(s[e+r>>0]|0)<<24|(s[e+(r|2)>>0]|0)<<8|(s[e+(r|3)>>0]|0);n=n+1|0}while(n>>>0>>0);if(i>>>0<=6){r=i;do{e=r+-1|0;n=o[t+(e<<2)>>2]|0;if(!((r>>>0)%(i>>>0)|0))n=((s[(n&15)+(33024+((n>>>4&15)<<4))>>0]|0)<<8|(s[(n>>>24&15)+(33024+(n>>>28<<4))>>0]|0)|(s[(n>>>8&15)+(33024+((n>>>12&15)<<4))>>0]|0)<<16|(s[(n>>>16&15)+(33024+((n>>>20&15)<<4))>>0]|0)<<24)^o[34816+(((e|0)/(i|0)|0)<<2)>>2];o[t+(r<<2)>>2]=o[t+(r-i<<2)>>2]^n;r=r+1|0}while((r|0)!=(a|0));return}r=i;do{e=r+-1|0;n=o[t+(e<<2)>>2]|0;switch(((r>>>0)%(i>>>0)|0)&15){case 0:{n=((s[(n&15)+(33024+((n>>>4&15)<<4))>>0]|0)<<8|(s[(n>>>24&15)+(33024+(n>>>28<<4))>>0]|0)|(s[(n>>>8&15)+(33024+((n>>>12&15)<<4))>>0]|0)<<16|(s[(n>>>16&15)+(33024+((n>>>20&15)<<4))>>0]|0)<<24)^o[34816+(((e|0)/(i|0)|0)<<2)>>2];break}case 4:{n=(s[(n>>>8&15)+(33024+((n>>>12&15)<<4))>>0]|0)<<8|(s[(n&15)+(33024+((n>>>4&15)<<4))>>0]|0)|(s[(n>>>16&15)+(33024+((n>>>20&15)<<4))>>0]|0)<<16|(s[(n>>>24&15)+(33024+(n>>>28<<4))>>0]|0)<<24;break}default:{}}o[t+(r<<2)>>2]=o[t+(r-i<<2)>>2]^n;r=r+1|0}while((r|0)!=(a|0));return}function xo(e){e=e|0;var t=0,n=0,i=0,o=0,a=0,c=0,f=0,u=0;f=e+4|0;i=e+8|0;n=e+12|0;t=s[e>>0]|0;a=s[f>>0]|0;u=s[i>>0]|0;o=s[n>>0]|0;r[e>>0]=r[33280+(o*6|0)+2>>0]^(r[33280+(u*6|0)+4>>0]^(r[33280+(a*6|0)+3>>0]^r[33280+(t*6|0)+5>>0]));r[f>>0]=r[33280+(o*6|0)+4>>0]^(r[33280+(u*6|0)+3>>0]^(r[33280+(a*6|0)+5>>0]^r[33280+(t*6|0)+2>>0]));r[i>>0]=r[33280+(o*6|0)+3>>0]^(r[33280+(u*6|0)+5>>0]^(r[33280+(a*6|0)+2>>0]^r[33280+(t*6|0)+4>>0]));r[n>>0]=r[33280+(o*6|0)+5>>0]^(r[33280+(u*6|0)+2>>0]^(r[33280+(a*6|0)+4>>0]^r[33280+(t*6|0)+3>>0]));n=e+1|0;t=e+5|0;a=e+9|0;u=e+13|0;o=s[n>>0]|0;i=s[t>>0]|0;f=s[a>>0]|0;c=s[u>>0]|0;r[n>>0]=r[33280+(c*6|0)+2>>0]^(r[33280+(f*6|0)+4>>0]^(r[33280+(i*6|0)+3>>0]^r[33280+(o*6|0)+5>>0]));r[t>>0]=r[33280+(c*6|0)+4>>0]^(r[33280+(f*6|0)+3>>0]^(r[33280+(i*6|0)+5>>0]^r[33280+(o*6|0)+2>>0]));r[a>>0]=r[33280+(c*6|0)+3>>0]^(r[33280+(f*6|0)+5>>0]^(r[33280+(i*6|0)+2>>0]^r[33280+(o*6|0)+4>>0]));r[u>>0]=r[33280+(c*6|0)+5>>0]^(r[33280+(f*6|0)+2>>0]^(r[33280+(i*6|0)+4>>0]^r[33280+(o*6|0)+3>>0]));u=e+2|0;o=e+6|0;i=e+10|0;f=e+14|0;c=s[u>>0]|0;a=s[o>>0]|0;t=s[i>>0]|0;n=s[f>>0]|0;r[u>>0]=r[33280+(n*6|0)+2>>0]^(r[33280+(t*6|0)+4>>0]^(r[33280+(a*6|0)+3>>0]^r[33280+(c*6|0)+5>>0]));r[o>>0]=r[33280+(n*6|0)+4>>0]^(r[33280+(t*6|0)+3>>0]^(r[33280+(a*6|0)+5>>0]^r[33280+(c*6|0)+2>>0]));r[i>>0]=r[33280+(n*6|0)+3>>0]^(r[33280+(t*6|0)+5>>0]^(r[33280+(a*6|0)+2>>0]^r[33280+(c*6|0)+4>>0]));r[f>>0]=r[33280+(n*6|0)+5>>0]^(r[33280+(t*6|0)+2>>0]^(r[33280+(a*6|0)+4>>0]^r[33280+(c*6|0)+3>>0]));f=e+3|0;c=e+7|0;a=e+11|0;e=e+15|0;t=s[f>>0]|0;n=s[c>>0]|0;i=s[a>>0]|0;o=s[e>>0]|0;r[f>>0]=r[33280+(o*6|0)+2>>0]^(r[33280+(i*6|0)+4>>0]^(r[33280+(n*6|0)+3>>0]^r[33280+(t*6|0)+5>>0]));r[c>>0]=r[33280+(o*6|0)+4>>0]^(r[33280+(i*6|0)+3>>0]^(r[33280+(n*6|0)+5>>0]^r[33280+(t*6|0)+2>>0]));r[a>>0]=r[33280+(o*6|0)+3>>0]^(r[33280+(i*6|0)+5>>0]^(r[33280+(n*6|0)+2>>0]^r[33280+(t*6|0)+4>>0]));r[e>>0]=r[33280+(o*6|0)+5>>0]^(r[33280+(i*6|0)+2>>0]^(r[33280+(n*6|0)+4>>0]^r[33280+(t*6|0)+3>>0]));return}function Co(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,I=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0;L=h;h=h+16|0;D=L;A=r[e>>0]|0;r[D>>0]=A;w=r[e+1>>0]|0;U=D+4|0;r[U>>0]=w;a=r[e+2>>0]|0;k=D+8|0;r[k>>0]=a;c=r[e+3>>0]|0;S=D+12|0;r[S>>0]=c;f=r[e+4>>0]|0;I=D+1|0;r[I>>0]=f;u=r[e+5>>0]|0;T=D+5|0;r[T>>0]=u;l=r[e+6>>0]|0;R=D+9|0;r[R>>0]=l;d=r[e+7>>0]|0;O=D+13|0;r[O>>0]=d;p=r[e+8>>0]|0;x=D+2|0;r[x>>0]=p;m=r[e+9>>0]|0;C=D+6|0;r[C>>0]=m;g=r[e+10>>0]|0;P=D+10|0;r[P>>0]=g;y=r[e+11>>0]|0;M=D+14|0;r[M>>0]=y;b=r[e+12>>0]|0;B=D+3|0;r[B>>0]=b;_=r[e+13>>0]|0;N=D+7|0;r[N>>0]=_;v=r[e+14>>0]|0;j=D+11|0;r[j>>0]=v;e=r[e+15>>0]|0;E=D+15|0;r[E>>0]=e;if((i|0)>128){if((i|0)>192){F=o[n+224>>2]|0;H=F>>>24^A&255;G=F>>>16^w&255;K=F>>>8^a&255;A=F^c&255;F=o[n+228>>2]|0;w=F>>>24^f&255;z=F>>>16^u&255;q=F>>>8^l&255;F=F^d&255;c=o[n+232>>2]|0;a=c>>>24^p&255;p=c>>>16^m&255;i=c>>>8^g&255;c=c^y&255;f=o[n+236>>2]|0;g=f>>>24^b&255;u=f>>>16^_&255;m=f>>>8^v&255;f=f^e&255;_=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;r[I>>0]=w;a=r[(a&15)+(34880+(a>>>4<<4))>>0]|0;r[x>>0]=a;g=r[(g&15)+(34880+(g>>>4<<4))>>0]|0;r[B>>0]=g;u=r[(u&15)+(34880+((u>>>4&15)<<4))>>0]|0;l=r[(G&15)+(34880+((G>>>4&15)<<4))>>0]|0;d=r[(z&15)+(34880+((z>>>4&15)<<4))>>0]|0;r[C>>0]=d;y=r[(p&15)+(34880+((p>>>4&15)<<4))>>0]|0;r[N>>0]=y;i=r[(i&15)+(34880+((i>>>4&15)<<4))>>0]|0;m=r[(m&15)+(34880+((m>>>4&15)<<4))>>0]|0;v=r[(K&15)+(34880+((K>>>4&15)<<4))>>0]|0;p=r[(q&15)+(34880+((q>>>4&15)<<4))>>0]|0;r[j>>0]=p;e=r[(F&15)+(34880+((F>>>4&15)<<4))>>0]|0;c=r[(c&15)+(34880+((c>>>4&15)<<4))>>0]|0;f=r[(f&15)+(34880+((f>>>4&15)<<4))>>0]|0;A=r[(A&15)+(34880+((A>>>4&15)<<4))>>0]|0;b=o[n+208>>2]|0;r[D>>0]=b>>>24^_&255;r[U>>0]=b>>>16^u&255;r[k>>0]=b>>>8^i&255;r[S>>0]=b^e&255;e=o[n+212>>2]|0;r[I>>0]=e>>>24^w&255;r[T>>0]=e>>>16^l&255;r[R>>0]=e>>>8^m&255;r[O>>0]=e^c&255;c=o[n+216>>2]|0;r[x>>0]=c>>>24^a&255;r[C>>0]=c>>>16^d&255;r[P>>0]=c>>>8^v&255;r[M>>0]=c^f&255;f=o[n+220>>2]|0;r[B>>0]=f>>>24^g&255;r[N>>0]=f>>>16^y&255;r[j>>0]=f>>>8^p&255;r[E>>0]=f^A&255;xo(D);A=r[N>>0]|0;f=r[C>>0]|0;p=r[T>>0]|0;y=r[U>>0]|0;g=r[j>>0]|0;c=r[R>>0]|0;v=r[P>>0]|0;d=r[k>>0]|0;a=r[E>>0]|0;e=r[S>>0]|0;m=r[O>>0]|0;l=r[M>>0]|0;w=s[D>>0]|0;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;r[D>>0]=w;b=s[I>>0]|0;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;r[I>>0]=b;i=s[x>>0]|0;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;r[x>>0]=i;u=s[B>>0]|0;u=r[(u&15)+(34880+(u>>>4<<4))>>0]|0;r[B>>0]=u;A=A&255;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;y=y&255;y=r[(y&15)+(34880+(y>>>4<<4))>>0]|0;p=p&255;p=r[(p&15)+(34880+(p>>>4<<4))>>0]|0;r[C>>0]=p;f=f&255;f=r[(f&15)+(34880+(f>>>4<<4))>>0]|0;r[N>>0]=f;v=v&255;v=r[(v&15)+(34880+(v>>>4<<4))>>0]|0;g=g&255;g=r[(g&15)+(34880+(g>>>4<<4))>>0]|0;d=d&255;d=r[(d&15)+(34880+(d>>>4<<4))>>0]|0;c=c&255;c=r[(c&15)+(34880+(c>>>4<<4))>>0]|0;r[j>>0]=c;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;l=l&255;l=r[(l&15)+(34880+(l>>>4<<4))>>0]|0;a=a&255;a=r[(a&15)+(34880+(a>>>4<<4))>>0]|0;e=e&255;e=r[(e&15)+(34880+(e>>>4<<4))>>0]|0;_=o[n+192>>2]|0;r[D>>0]=_>>>24^w&255;r[U>>0]=_>>>16^A&255;r[k>>0]=_>>>8^v&255;r[S>>0]=_^m&255;m=o[n+196>>2]|0;r[I>>0]=m>>>24^b&255;r[T>>0]=m>>>16^y&255;r[R>>0]=m>>>8^g&255;r[O>>0]=m^l&255;l=o[n+200>>2]|0;r[x>>0]=l>>>24^i&255;r[C>>0]=l>>>16^p&255;r[P>>0]=l>>>8^d&255;r[M>>0]=l^a&255;a=o[n+204>>2]|0;r[B>>0]=a>>>24^u&255;r[N>>0]=a>>>16^f&255;r[j>>0]=a>>>8^c&255;r[E>>0]=a^e&255;xo(D);e=r[D>>0]|0;a=r[I>>0]|0;c=r[x>>0]|0;f=r[B>>0]|0;u=r[N>>0]|0;l=r[U>>0]|0;d=r[T>>0]|0;p=r[C>>0]|0;i=r[P>>0]|0;m=r[j>>0]|0;g=r[k>>0]|0;y=r[R>>0]|0;b=r[O>>0]|0;_=r[M>>0]|0;v=r[E>>0]|0;A=r[S>>0]|0}else{G=o[n+192>>2]|0;V=(G>>>24^A&255)&255;r[D>>0]=V;F=(G>>>16^w&255)&255;r[U>>0]=F;K=(G>>>8^a&255)&255;r[k>>0]=K;A=(G^c&255)&255;r[S>>0]=A;G=o[n+196>>2]|0;a=(G>>>24^f&255)&255;r[I>>0]=a;q=(G>>>16^u&255)&255;r[T>>0]=q;z=(G>>>8^l&255)&255;r[R>>0]=z;G=(G^d&255)&255;r[O>>0]=G;H=o[n+200>>2]|0;c=(H>>>24^p&255)&255;r[x>>0]=c;p=(H>>>16^m&255)&255;r[C>>0]=p;i=(H>>>8^g&255)&255;r[P>>0]=i;H=(H^y&255)&255;r[M>>0]=H;l=o[n+204>>2]|0;f=(l>>>24^b&255)&255;r[B>>0]=f;u=(l>>>16^_&255)&255;r[N>>0]=u;m=(l>>>8^v&255)&255;r[j>>0]=m;v=(l^e&255)&255;r[E>>0]=v;e=V;l=F;d=q;g=K;y=z;b=G;_=H}H=e&255;H=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;V=a&255;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;r[I>>0]=V;e=c&255;e=r[(e&15)+(34880+(e>>>4<<4))>>0]|0;r[x>>0]=e;a=f&255;a=r[(a&15)+(34880+(a>>>4<<4))>>0]|0;r[B>>0]=a;u=u&255;u=r[(u&15)+(34880+(u>>>4<<4))>>0]|0;l=l&255;l=r[(l&15)+(34880+(l>>>4<<4))>>0]|0;d=d&255;d=r[(d&15)+(34880+(d>>>4<<4))>>0]|0;r[C>>0]=d;c=p&255;c=r[(c&15)+(34880+(c>>>4<<4))>>0]|0;r[N>>0]=c;i=i&255;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;g=g&255;g=r[(g&15)+(34880+(g>>>4<<4))>>0]|0;p=y&255;p=r[(p&15)+(34880+(p>>>4<<4))>>0]|0;r[j>>0]=p;b=b&255;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;y=_&255;y=r[(y&15)+(34880+(y>>>4<<4))>>0]|0;f=v&255;f=r[(f&15)+(34880+(f>>>4<<4))>>0]|0;A=A&255;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;v=o[n+176>>2]|0;r[D>>0]=v>>>24^H&255;r[U>>0]=v>>>16^u&255;r[k>>0]=v>>>8^i&255;r[S>>0]=v^b&255;v=o[n+180>>2]|0;r[I>>0]=v>>>24^V&255;r[T>>0]=v>>>16^l&255;r[R>>0]=v>>>8^m&255;r[O>>0]=v^y&255;y=o[n+184>>2]|0;r[x>>0]=y>>>24^e&255;r[C>>0]=y>>>16^d&255;r[P>>0]=y>>>8^g&255;r[M>>0]=y^f&255;f=o[n+188>>2]|0;r[B>>0]=f>>>24^a&255;r[N>>0]=f>>>16^c&255;r[j>>0]=f>>>8^p&255;r[E>>0]=f^A&255;xo(D);A=r[N>>0]|0;f=r[C>>0]|0;p=r[T>>0]|0;y=r[U>>0]|0;g=r[j>>0]|0;c=r[R>>0]|0;v=r[P>>0]|0;d=r[k>>0]|0;a=r[E>>0]|0;e=r[S>>0]|0;m=r[O>>0]|0;l=r[M>>0]|0;V=s[D>>0]|0;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;r[D>>0]=V;b=s[I>>0]|0;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;r[I>>0]=b;i=s[x>>0]|0;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;r[x>>0]=i;u=s[B>>0]|0;u=r[(u&15)+(34880+(u>>>4<<4))>>0]|0;r[B>>0]=u;A=A&255;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;y=y&255;y=r[(y&15)+(34880+(y>>>4<<4))>>0]|0;p=p&255;p=r[(p&15)+(34880+(p>>>4<<4))>>0]|0;r[C>>0]=p;f=f&255;f=r[(f&15)+(34880+(f>>>4<<4))>>0]|0;r[N>>0]=f;v=v&255;v=r[(v&15)+(34880+(v>>>4<<4))>>0]|0;g=g&255;g=r[(g&15)+(34880+(g>>>4<<4))>>0]|0;d=d&255;d=r[(d&15)+(34880+(d>>>4<<4))>>0]|0;c=c&255;c=r[(c&15)+(34880+(c>>>4<<4))>>0]|0;r[j>>0]=c;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;l=l&255;l=r[(l&15)+(34880+(l>>>4<<4))>>0]|0;a=a&255;a=r[(a&15)+(34880+(a>>>4<<4))>>0]|0;e=e&255;e=r[(e&15)+(34880+(e>>>4<<4))>>0]|0;_=o[n+160>>2]|0;r[D>>0]=_>>>24^V&255;r[U>>0]=_>>>16^A&255;r[k>>0]=_>>>8^v&255;r[S>>0]=_^m&255;m=o[n+164>>2]|0;r[I>>0]=m>>>24^b&255;r[T>>0]=m>>>16^y&255;r[R>>0]=m>>>8^g&255;r[O>>0]=m^l&255;l=o[n+168>>2]|0;r[x>>0]=l>>>24^i&255;r[C>>0]=l>>>16^p&255;r[P>>0]=l>>>8^d&255;r[M>>0]=l^a&255;a=o[n+172>>2]|0;r[B>>0]=a>>>24^u&255;r[N>>0]=a>>>16^f&255;r[j>>0]=a>>>8^c&255;r[E>>0]=a^e&255;xo(D);e=r[D>>0]|0;a=r[I>>0]|0;c=r[x>>0]|0;f=r[B>>0]|0;u=r[N>>0]|0;l=r[U>>0]|0;d=r[T>>0]|0;p=r[C>>0]|0;i=r[P>>0]|0;m=r[j>>0]|0;g=r[k>>0]|0;y=r[R>>0]|0;b=r[O>>0]|0;_=r[M>>0]|0;v=r[E>>0]|0;A=r[S>>0]|0}else{H=o[n+160>>2]|0;F=(H>>>24^A&255)&255;r[D>>0]=F;q=(H>>>16^w&255)&255;r[U>>0]=q;z=(H>>>8^a&255)&255;r[k>>0]=z;A=(H^c&255)&255;r[S>>0]=A;H=o[n+164>>2]|0;a=(H>>>24^f&255)&255;r[I>>0]=a;K=(H>>>16^u&255)&255;r[T>>0]=K;G=(H>>>8^l&255)&255;r[R>>0]=G;H=(H^d&255)&255;r[O>>0]=H;V=o[n+168>>2]|0;c=(V>>>24^p&255)&255;r[x>>0]=c;p=(V>>>16^m&255)&255;r[C>>0]=p;i=(V>>>8^g&255)&255;r[P>>0]=i;V=(V^y&255)&255;r[M>>0]=V;l=o[n+172>>2]|0;f=(l>>>24^b&255)&255;r[B>>0]=f;u=(l>>>16^_&255)&255;r[N>>0]=u;m=(l>>>8^v&255)&255;r[j>>0]=m;v=(l^e&255)&255;r[E>>0]=v;e=F;l=q;d=K;g=z;y=G;b=H;_=V}e=e&255;e=r[(e&15)+(34880+(e>>>4<<4))>>0]|0;a=a&255;a=r[(a&15)+(34880+(a>>>4<<4))>>0]|0;r[I>>0]=a;w=c&255;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;r[x>>0]=w;V=f&255;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;r[B>>0]=V;u=u&255;u=r[(u&15)+(34880+(u>>>4<<4))>>0]|0;K=l&255;K=r[(K&15)+(34880+(K>>>4<<4))>>0]|0;H=d&255;H=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;r[C>>0]=H;G=p&255;G=r[(G&15)+(34880+(G>>>4<<4))>>0]|0;r[N>>0]=G;p=i&255;p=r[(p&15)+(34880+(p>>>4<<4))>>0]|0;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;F=g&255;F=r[(F&15)+(34880+(F>>>4<<4))>>0]|0;q=y&255;q=r[(q&15)+(34880+(q>>>4<<4))>>0]|0;r[j>>0]=q;i=b&255;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;b=_&255;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;z=v&255;z=r[(z&15)+(34880+(z>>>4<<4))>>0]|0;_=A&255;_=r[(_&15)+(34880+(_>>>4<<4))>>0]|0;A=o[n+144>>2]|0;r[D>>0]=A>>>24^e&255;r[U>>0]=A>>>16^u&255;r[k>>0]=A>>>8^p&255;r[S>>0]=A^i&255;A=o[n+148>>2]|0;r[I>>0]=A>>>24^a&255;r[T>>0]=A>>>16^K&255;r[R>>0]=A>>>8^m&255;r[O>>0]=A^b&255;A=o[n+152>>2]|0;r[x>>0]=A>>>24^w&255;r[C>>0]=A>>>16^H&255;r[P>>0]=A>>>8^F&255;r[M>>0]=A^z&255;z=o[n+156>>2]|0;r[B>>0]=z>>>24^V&255;r[N>>0]=z>>>16^G&255;r[j>>0]=z>>>8^q&255;r[E>>0]=z^_&255;xo(D);_=r[N>>0]|0;z=r[C>>0]|0;q=r[T>>0]|0;G=r[U>>0]|0;A=r[j>>0]|0;b=r[R>>0]|0;V=r[P>>0]|0;F=r[k>>0]|0;m=r[E>>0]|0;H=r[S>>0]|0;i=r[O>>0]|0;w=r[M>>0]|0;g=s[D>>0]|0;g=r[(g&15)+(34880+(g>>>4<<4))>>0]|0;r[D>>0]=g;p=s[I>>0]|0;p=r[(p&15)+(34880+(p>>>4<<4))>>0]|0;r[I>>0]=p;K=s[x>>0]|0;K=r[(K&15)+(34880+(K>>>4<<4))>>0]|0;r[x>>0]=K;v=s[B>>0]|0;v=r[(v&15)+(34880+(v>>>4<<4))>>0]|0;r[B>>0]=v;_=_&255;_=r[(_&15)+(34880+(_>>>4<<4))>>0]|0;G=G&255;G=r[(G&15)+(34880+(G>>>4<<4))>>0]|0;q=q&255;q=r[(q&15)+(34880+(q>>>4<<4))>>0]|0;r[C>>0]=q;z=z&255;z=r[(z&15)+(34880+(z>>>4<<4))>>0]|0;r[N>>0]=z;V=V&255;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;A=A&255;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;F=F&255;F=r[(F&15)+(34880+(F>>>4<<4))>>0]|0;b=b&255;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;r[j>>0]=b;i=i&255;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;w=w&255;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;H=H&255;H=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;y=o[n+128>>2]|0;r[D>>0]=y>>>24^g&255;r[U>>0]=y>>>16^_&255;r[k>>0]=y>>>8^V&255;r[S>>0]=y^i&255;i=o[n+132>>2]|0;r[I>>0]=i>>>24^p&255;r[T>>0]=i>>>16^G&255;r[R>>0]=i>>>8^A&255;r[O>>0]=i^w&255;w=o[n+136>>2]|0;r[x>>0]=w>>>24^K&255;r[C>>0]=w>>>16^q&255;r[P>>0]=w>>>8^F&255;r[M>>0]=w^m&255;m=o[n+140>>2]|0;r[B>>0]=m>>>24^v&255;r[N>>0]=m>>>16^z&255;r[j>>0]=m>>>8^b&255;r[E>>0]=m^H&255;xo(D);H=r[N>>0]|0;m=r[C>>0]|0;b=r[T>>0]|0;z=r[U>>0]|0;v=r[j>>0]|0;w=r[R>>0]|0;F=r[P>>0]|0;q=r[k>>0]|0;K=r[E>>0]|0;i=r[S>>0]|0;A=r[O>>0]|0;G=r[M>>0]|0;p=s[D>>0]|0;p=r[(p&15)+(34880+(p>>>4<<4))>>0]|0;r[D>>0]=p;y=s[I>>0]|0;y=r[(y&15)+(34880+(y>>>4<<4))>>0]|0;r[I>>0]=y;V=s[x>>0]|0;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;r[x>>0]=V;_=s[B>>0]|0;_=r[(_&15)+(34880+(_>>>4<<4))>>0]|0;r[B>>0]=_;H=H&255;H=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;z=z&255;z=r[(z&15)+(34880+(z>>>4<<4))>>0]|0;b=b&255;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;r[C>>0]=b;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;r[N>>0]=m;F=F&255;F=r[(F&15)+(34880+(F>>>4<<4))>>0]|0;v=v&255;v=r[(v&15)+(34880+(v>>>4<<4))>>0]|0;q=q&255;q=r[(q&15)+(34880+(q>>>4<<4))>>0]|0;w=w&255;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;r[j>>0]=w;A=A&255;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;G=G&255;G=r[(G&15)+(34880+(G>>>4<<4))>>0]|0;K=K&255;K=r[(K&15)+(34880+(K>>>4<<4))>>0]|0;i=i&255;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;g=o[n+112>>2]|0;r[D>>0]=g>>>24^p&255;r[U>>0]=g>>>16^H&255;r[k>>0]=g>>>8^F&255;r[S>>0]=g^A&255;A=o[n+116>>2]|0;r[I>>0]=A>>>24^y&255;r[T>>0]=A>>>16^z&255;r[R>>0]=A>>>8^v&255;r[O>>0]=A^G&255;G=o[n+120>>2]|0;r[x>>0]=G>>>24^V&255;r[C>>0]=G>>>16^b&255;r[P>>0]=G>>>8^q&255;r[M>>0]=G^K&255;K=o[n+124>>2]|0;r[B>>0]=K>>>24^_&255;r[N>>0]=K>>>16^m&255;r[j>>0]=K>>>8^w&255;r[E>>0]=K^i&255;xo(D);i=r[N>>0]|0;K=r[C>>0]|0;w=r[T>>0]|0;m=r[U>>0]|0;_=r[j>>0]|0;G=r[R>>0]|0;q=r[P>>0]|0;b=r[k>>0]|0;V=r[E>>0]|0;A=r[S>>0]|0;v=r[O>>0]|0;z=r[M>>0]|0;y=s[D>>0]|0;y=r[(y&15)+(34880+(y>>>4<<4))>>0]|0;r[D>>0]=y;g=s[I>>0]|0;g=r[(g&15)+(34880+(g>>>4<<4))>>0]|0;r[I>>0]=g;F=s[x>>0]|0;F=r[(F&15)+(34880+(F>>>4<<4))>>0]|0;r[x>>0]=F;H=s[B>>0]|0;H=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;r[B>>0]=H;i=i&255;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;w=w&255;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;r[C>>0]=w;K=K&255;K=r[(K&15)+(34880+(K>>>4<<4))>>0]|0;r[N>>0]=K;q=q&255;q=r[(q&15)+(34880+(q>>>4<<4))>>0]|0;_=_&255;_=r[(_&15)+(34880+(_>>>4<<4))>>0]|0;b=b&255;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;G=G&255;G=r[(G&15)+(34880+(G>>>4<<4))>>0]|0;r[j>>0]=G;v=v&255;v=r[(v&15)+(34880+(v>>>4<<4))>>0]|0;z=z&255;z=r[(z&15)+(34880+(z>>>4<<4))>>0]|0;V=V&255;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;A=A&255;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;p=o[n+96>>2]|0;r[D>>0]=p>>>24^y&255;r[U>>0]=p>>>16^i&255;r[k>>0]=p>>>8^q&255;r[S>>0]=p^v&255;v=o[n+100>>2]|0;r[I>>0]=v>>>24^g&255;r[T>>0]=v>>>16^m&255;r[R>>0]=v>>>8^_&255;r[O>>0]=v^z&255;z=o[n+104>>2]|0;r[x>>0]=z>>>24^F&255;r[C>>0]=z>>>16^w&255;r[P>>0]=z>>>8^b&255;r[M>>0]=z^V&255;V=o[n+108>>2]|0;r[B>>0]=V>>>24^H&255;r[N>>0]=V>>>16^K&255;r[j>>0]=V>>>8^G&255;r[E>>0]=V^A&255;xo(D);A=r[N>>0]|0;V=r[C>>0]|0;G=r[T>>0]|0;K=r[U>>0]|0;H=r[j>>0]|0;z=r[R>>0]|0;b=r[P>>0]|0;w=r[k>>0]|0;F=r[E>>0]|0;v=r[S>>0]|0;_=r[O>>0]|0;m=r[M>>0]|0;g=s[D>>0]|0;g=r[(g&15)+(34880+(g>>>4<<4))>>0]|0;r[D>>0]=g;p=s[I>>0]|0;p=r[(p&15)+(34880+(p>>>4<<4))>>0]|0;r[I>>0]=p;q=s[x>>0]|0;q=r[(q&15)+(34880+(q>>>4<<4))>>0]|0;r[x>>0]=q;i=s[B>>0]|0;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;r[B>>0]=i;A=A&255;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;K=K&255;K=r[(K&15)+(34880+(K>>>4<<4))>>0]|0;G=G&255;G=r[(G&15)+(34880+(G>>>4<<4))>>0]|0;r[C>>0]=G;V=V&255;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;r[N>>0]=V;b=b&255;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;H=H&255;H=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;w=w&255;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;z=z&255;z=r[(z&15)+(34880+(z>>>4<<4))>>0]|0;r[j>>0]=z;_=_&255;_=r[(_&15)+(34880+(_>>>4<<4))>>0]|0;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;F=F&255;F=r[(F&15)+(34880+(F>>>4<<4))>>0]|0;v=v&255;v=r[(v&15)+(34880+(v>>>4<<4))>>0]|0;y=o[n+80>>2]|0;r[D>>0]=y>>>24^g&255;r[U>>0]=y>>>16^A&255;r[k>>0]=y>>>8^b&255;r[S>>0]=y^_&255;_=o[n+84>>2]|0;r[I>>0]=_>>>24^p&255;r[T>>0]=_>>>16^K&255;r[R>>0]=_>>>8^H&255;r[O>>0]=_^m&255;m=o[n+88>>2]|0;r[x>>0]=m>>>24^q&255;r[C>>0]=m>>>16^G&255;r[P>>0]=m>>>8^w&255;r[M>>0]=m^F&255;F=o[n+92>>2]|0;r[B>>0]=F>>>24^i&255;r[N>>0]=F>>>16^V&255;r[j>>0]=F>>>8^z&255;r[E>>0]=F^v&255;xo(D);v=r[N>>0]|0;F=r[C>>0]|0;z=r[T>>0]|0;V=r[U>>0]|0;i=r[j>>0]|0;m=r[R>>0]|0;w=r[P>>0]|0;G=r[k>>0]|0;q=r[E>>0]|0;_=r[S>>0]|0;H=r[O>>0]|0;K=r[M>>0]|0;p=s[D>>0]|0;p=r[(p&15)+(34880+(p>>>4<<4))>>0]|0;r[D>>0]=p;y=s[I>>0]|0;y=r[(y&15)+(34880+(y>>>4<<4))>>0]|0;r[I>>0]=y;b=s[x>>0]|0;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;r[x>>0]=b;A=s[B>>0]|0;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;r[B>>0]=A;v=v&255;v=r[(v&15)+(34880+(v>>>4<<4))>>0]|0;V=V&255;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;z=z&255;z=r[(z&15)+(34880+(z>>>4<<4))>>0]|0;r[C>>0]=z;F=F&255;F=r[(F&15)+(34880+(F>>>4<<4))>>0]|0;r[N>>0]=F;w=w&255;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;i=i&255;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;G=G&255;G=r[(G&15)+(34880+(G>>>4<<4))>>0]|0;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;r[j>>0]=m;H=H&255;H=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;K=K&255;K=r[(K&15)+(34880+(K>>>4<<4))>>0]|0;q=q&255;q=r[(q&15)+(34880+(q>>>4<<4))>>0]|0;_=_&255;_=r[(_&15)+(34880+(_>>>4<<4))>>0]|0;g=o[n+64>>2]|0;r[D>>0]=g>>>24^p&255;r[U>>0]=g>>>16^v&255;r[k>>0]=g>>>8^w&255;r[S>>0]=g^H&255;H=o[n+68>>2]|0;r[I>>0]=H>>>24^y&255;r[T>>0]=H>>>16^V&255;r[R>>0]=H>>>8^i&255;r[O>>0]=H^K&255;K=o[n+72>>2]|0;r[x>>0]=K>>>24^b&255;r[C>>0]=K>>>16^z&255;r[P>>0]=K>>>8^G&255;r[M>>0]=K^q&255;q=o[n+76>>2]|0;r[B>>0]=q>>>24^A&255;r[N>>0]=q>>>16^F&255;r[j>>0]=q>>>8^m&255;r[E>>0]=q^_&255;xo(D);_=r[N>>0]|0;q=r[C>>0]|0;m=r[T>>0]|0;F=r[U>>0]|0;A=r[j>>0]|0;K=r[R>>0]|0;G=r[P>>0]|0;z=r[k>>0]|0;b=r[E>>0]|0;H=r[S>>0]|0;i=r[O>>0]|0;V=r[M>>0]|0;y=s[D>>0]|0;y=r[(y&15)+(34880+(y>>>4<<4))>>0]|0;r[D>>0]=y;g=s[I>>0]|0;g=r[(g&15)+(34880+(g>>>4<<4))>>0]|0;r[I>>0]=g;w=s[x>>0]|0;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;r[x>>0]=w;v=s[B>>0]|0;v=r[(v&15)+(34880+(v>>>4<<4))>>0]|0;r[B>>0]=v;_=_&255;_=r[(_&15)+(34880+(_>>>4<<4))>>0]|0;F=F&255;F=r[(F&15)+(34880+(F>>>4<<4))>>0]|0;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;r[C>>0]=m;q=q&255;q=r[(q&15)+(34880+(q>>>4<<4))>>0]|0;r[N>>0]=q;G=G&255;G=r[(G&15)+(34880+(G>>>4<<4))>>0]|0;A=A&255;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;z=z&255;z=r[(z&15)+(34880+(z>>>4<<4))>>0]|0;K=K&255;K=r[(K&15)+(34880+(K>>>4<<4))>>0]|0;r[j>>0]=K;i=i&255;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;V=V&255;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;b=b&255;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;H=H&255;H=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;p=o[n+48>>2]|0;r[D>>0]=p>>>24^y&255;r[U>>0]=p>>>16^_&255;r[k>>0]=p>>>8^G&255;r[S>>0]=p^i&255;i=o[n+52>>2]|0;r[I>>0]=i>>>24^g&255;r[T>>0]=i>>>16^F&255;r[R>>0]=i>>>8^A&255;r[O>>0]=i^V&255;V=o[n+56>>2]|0;r[x>>0]=V>>>24^w&255;r[C>>0]=V>>>16^m&255;r[P>>0]=V>>>8^z&255;r[M>>0]=V^b&255;b=o[n+60>>2]|0;r[B>>0]=b>>>24^v&255;r[N>>0]=b>>>16^q&255;r[j>>0]=b>>>8^K&255;r[E>>0]=b^H&255;xo(D);H=r[N>>0]|0;b=r[C>>0]|0;K=r[T>>0]|0;q=r[U>>0]|0;v=r[j>>0]|0;V=r[R>>0]|0;z=r[P>>0]|0;m=r[k>>0]|0;w=r[E>>0]|0;i=r[S>>0]|0;A=r[O>>0]|0;F=r[M>>0]|0;g=s[D>>0]|0;g=r[(g&15)+(34880+(g>>>4<<4))>>0]|0;r[D>>0]=g;p=s[I>>0]|0;p=r[(p&15)+(34880+(p>>>4<<4))>>0]|0;r[I>>0]=p;G=s[x>>0]|0;G=r[(G&15)+(34880+(G>>>4<<4))>>0]|0;r[x>>0]=G;_=s[B>>0]|0;_=r[(_&15)+(34880+(_>>>4<<4))>>0]|0;r[B>>0]=_;H=H&255;H=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;q=q&255;q=r[(q&15)+(34880+(q>>>4<<4))>>0]|0;K=K&255;K=r[(K&15)+(34880+(K>>>4<<4))>>0]|0;r[C>>0]=K;b=b&255;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;r[N>>0]=b;z=z&255;z=r[(z&15)+(34880+(z>>>4<<4))>>0]|0;v=v&255;v=r[(v&15)+(34880+(v>>>4<<4))>>0]|0;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;V=V&255;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;r[j>>0]=V;A=A&255;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;F=F&255;F=r[(F&15)+(34880+(F>>>4<<4))>>0]|0;w=w&255;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;i=i&255;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;y=o[n+32>>2]|0;r[D>>0]=y>>>24^g&255;r[U>>0]=y>>>16^H&255;r[k>>0]=y>>>8^z&255;r[S>>0]=y^A&255;A=o[n+36>>2]|0;r[I>>0]=A>>>24^p&255;r[T>>0]=A>>>16^q&255;r[R>>0]=A>>>8^v&255;r[O>>0]=A^F&255;F=o[n+40>>2]|0;r[x>>0]=F>>>24^G&255;r[C>>0]=F>>>16^K&255;r[P>>0]=F>>>8^m&255;r[M>>0]=F^w&255;w=o[n+44>>2]|0;r[B>>0]=w>>>24^_&255;r[N>>0]=w>>>16^b&255;r[j>>0]=w>>>8^V&255;r[E>>0]=w^i&255;xo(D);i=r[N>>0]|0;w=r[C>>0]|0;V=r[T>>0]|0;b=r[U>>0]|0;_=r[j>>0]|0;F=r[R>>0]|0;m=r[P>>0]|0;K=r[k>>0]|0;G=r[E>>0]|0;A=r[S>>0]|0;v=r[O>>0]|0;q=r[M>>0]|0;p=s[D>>0]|0;p=r[(p&15)+(34880+(p>>>4<<4))>>0]|0;r[D>>0]=p;y=s[I>>0]|0;y=r[(y&15)+(34880+(y>>>4<<4))>>0]|0;r[I>>0]=y;z=s[x>>0]|0;z=r[(z&15)+(34880+(z>>>4<<4))>>0]|0;r[x>>0]=z;H=s[B>>0]|0;H=r[(H&15)+(34880+(H>>>4<<4))>>0]|0;r[B>>0]=H;i=i&255;i=r[(i&15)+(34880+(i>>>4<<4))>>0]|0;b=b&255;b=r[(b&15)+(34880+(b>>>4<<4))>>0]|0;V=V&255;V=r[(V&15)+(34880+(V>>>4<<4))>>0]|0;r[C>>0]=V;w=w&255;w=r[(w&15)+(34880+(w>>>4<<4))>>0]|0;r[N>>0]=w;m=m&255;m=r[(m&15)+(34880+(m>>>4<<4))>>0]|0;_=_&255;_=r[(_&15)+(34880+(_>>>4<<4))>>0]|0;K=K&255;K=r[(K&15)+(34880+(K>>>4<<4))>>0]|0;F=F&255;F=r[(F&15)+(34880+(F>>>4<<4))>>0]|0;r[j>>0]=F;v=v&255;v=r[(v&15)+(34880+(v>>>4<<4))>>0]|0;q=q&255;q=r[(q&15)+(34880+(q>>>4<<4))>>0]|0;G=G&255;G=r[(G&15)+(34880+(G>>>4<<4))>>0]|0;A=A&255;A=r[(A&15)+(34880+(A>>>4<<4))>>0]|0;g=o[n+16>>2]|0;r[D>>0]=g>>>24^p&255;r[U>>0]=g>>>16^i&255;r[k>>0]=g>>>8^m&255;r[S>>0]=g^v&255;v=o[n+20>>2]|0;r[I>>0]=v>>>24^y&255;r[T>>0]=v>>>16^b&255;r[R>>0]=v>>>8^_&255;r[O>>0]=v^q&255;q=o[n+24>>2]|0;r[x>>0]=q>>>24^z&255;r[C>>0]=q>>>16^V&255;r[P>>0]=q>>>8^K&255;r[M>>0]=q^G&255;G=o[n+28>>2]|0;r[B>>0]=G>>>24^H&255;r[N>>0]=G>>>16^w&255;r[j>>0]=G>>>8^F&255;r[E>>0]=G^A&255;xo(D);A=r[N>>0]|0;G=r[C>>0]|0;F=r[T>>0]|0;w=r[U>>0]|0;T=r[j>>0]|0;H=r[R>>0]|0;P=r[P>>0]|0;q=r[k>>0]|0;K=r[E>>0]|0;V=r[S>>0]|0;C=r[O>>0]|0;N=r[M>>0]|0;R=s[D>>0]|0;R=r[(R&15)+(34880+(R>>>4<<4))>>0]|0;r[D>>0]=R;M=s[I>>0]|0;M=r[(M&15)+(34880+(M>>>4<<4))>>0]|0;r[I>>0]=M;U=s[x>>0]|0;U=r[(U&15)+(34880+(U>>>4<<4))>>0]|0;r[x>>0]=U;z=s[B>>0]|0;O=A&255;D=w&255;F=F&255;G=G&255;x=P&255;B=T&255;q=q&255;H=H&255;C=C&255;N=N&255;K=K&255;V=V&255;T=o[n>>2]|0;O=(T>>>16^(s[(O&15)+(34880+(O>>>4<<4))>>0]|0))&255;x=(T>>>8^(s[(x&15)+(34880+(x>>>4<<4))>>0]|0))&255;C=(T^(s[(C&15)+(34880+(C>>>4<<4))>>0]|0))&255;P=o[n+4>>2]|0;D=(P>>>16^(s[(D&15)+(34880+(D>>>4<<4))>>0]|0))&255;B=(P>>>8^(s[(B&15)+(34880+(B>>>4<<4))>>0]|0))&255;N=(P^(s[(N&15)+(34880+(N>>>4<<4))>>0]|0))&255;j=o[n+8>>2]|0;F=(j>>>16^(s[(F&15)+(34880+(F>>>4<<4))>>0]|0))&255;q=(j>>>8^(s[(q&15)+(34880+(q>>>4<<4))>>0]|0))&255;K=(j^(s[(K&15)+(34880+(K>>>4<<4))>>0]|0))&255;n=o[n+12>>2]|0;z=(n>>>24^(s[(z&15)+(34880+(z>>>4<<4))>>0]|0))&255;G=(n>>>16^(s[(G&15)+(34880+(G>>>4<<4))>>0]|0))&255;H=(n>>>8^(s[(H&15)+(34880+(H>>>4<<4))>>0]|0))&255;V=(n^(s[(V&15)+(34880+(V>>>4<<4))>>0]|0))&255;r[t>>0]=T>>>24^R&255;r[t+1>>0]=O;r[t+2>>0]=x;r[t+3>>0]=C;r[t+4>>0]=P>>>24^M&255;r[t+5>>0]=D;r[t+6>>0]=B;r[t+7>>0]=N;r[t+8>>0]=j>>>24^U&255;r[t+9>>0]=F;r[t+10>>0]=q;r[t+11>>0]=K;r[t+12>>0]=z;r[t+13>>0]=G;r[t+14>>0]=H;r[t+15>>0]=V;h=L;return}function Po(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0,ce=0,fe=0,ue=0,le=0,de=0,he=0,pe=0,me=0,ge=0,ye=0,be=0,_e=0,ve=0,Ae=0,we=0,Ee=0,ke=0,Se=0,Ie=0,Te=0,Re=0,Oe=0,xe=0,Ce=0,Pe=0,Me=0,De=0,Be=0,Ne=0,je=0,Ue=0,Le=0,Fe=0,qe=0,Ke=0,ze=0,Ge=0,He=0,Ve=0,Qe=0,We=0,Ye=0,Xe=0,Je=0,Ze=0,$e=0,et=0,tt=0,nt=0,rt=0,it=0,ot=0,st=0,at=0,ct=0,ft=0,ut=0,lt=0,dt=0,ht=0,pt=0,mt=0,gt=0,yt=0,bt=0,_t=0,vt=0,At=0,wt=0,Et=0,kt=0,St=0,It=0,Tt=0,Rt=0,Ot=0,xt=0,Ct=0,Pt=0,Mt=0,Dt=0,Bt=0,Nt=0,jt=0,Ut=0,Lt=0,Ft=0,qt=0;Pt=h;h=h+2768|0;bt=Pt+2608|0;_t=Pt+2448|0;xt=Pt+2288|0;vt=Pt+2128|0;At=Pt+1968|0;wt=Pt+1808|0;Ct=Pt+1648|0;Et=Pt+1488|0;kt=Pt+1328|0;St=Pt+1168|0;f=Pt+1008|0;c=Pt+848|0;a=Pt+688|0;i=Pt+528|0;It=Pt+368|0;at=Pt+288|0;Tt=Pt+208|0;Rt=Pt+112|0;Ot=Pt+32|0;ct=Pt;st=ct;ot=st+32|0;do{r[st>>0]=r[t>>0]|0;st=st+1|0;t=t+1|0}while((st|0)<(ot|0));r[ct>>0]=r[ct>>0]&-8;st=ct+31|0;r[st>>0]=r[st>>0]&63|64;st=s[n>>0]|0;pt=Cs(s[n+1>>0]|0|0,0,8)|0;ht=I;gt=Cs(s[n+2>>0]|0|0,0,16)|0;ht=ht|I;mt=s[n+3>>0]|0;ot=Cs(mt|0,0,24)|0;yt=at;o[yt>>2]=pt|st|gt|ot&50331648;o[yt+4>>2]=ht;yt=Cs(s[n+4>>0]|0|0,0,8)|0;ht=I;ot=Cs(s[n+5>>0]|0|0,0,16)|0;ht=ht|I;gt=s[n+6>>0]|0;st=Cs(gt|0,0,24)|0;ht=xs(yt|mt|ot|st|0,ht|I|0,2)|0;st=at+8|0;o[st>>2]=ht&33554431;o[st+4>>2]=0;st=Cs(s[n+7>>0]|0|0,0,8)|0;ht=I;ot=Cs(s[n+8>>0]|0|0,0,16)|0;ht=ht|I;mt=s[n+9>>0]|0;yt=Cs(mt|0,0,24)|0;ht=xs(st|gt|ot|yt|0,ht|I|0,3)|0;yt=at+16|0;o[yt>>2]=ht&67108863;o[yt+4>>2]=0;yt=Cs(s[n+10>>0]|0|0,0,8)|0;ht=I;ot=Cs(s[n+11>>0]|0|0,0,16)|0;ht=ht|I;gt=s[n+12>>0]|0;st=Cs(gt|0,0,24)|0;ht=xs(yt|mt|ot|st|0,ht|I|0,5)|0;st=at+24|0;o[st>>2]=ht&33554431;o[st+4>>2]=0;st=Cs(s[n+13>>0]|0|0,0,8)|0;ht=I;ot=Cs(s[n+14>>0]|0|0,0,16)|0;ht=ht|I;mt=Cs(s[n+15>>0]|0|0,0,24)|0;ht=xs(st|gt|ot|mt|0,ht|I|0,6)|0;mt=at+32|0;o[mt>>2]=ht&67108863;o[mt+4>>2]=0;mt=s[n+16>>0]|0;ht=Cs(s[n+17>>0]|0|0,0,8)|0;ot=I;gt=Cs(s[n+18>>0]|0|0,0,16)|0;ot=ot|I;st=s[n+19>>0]|0;yt=Cs(st|0,0,24)|0;pt=at+40|0;o[pt>>2]=ht|mt|gt|yt&16777216;o[pt+4>>2]=ot;pt=Cs(s[n+20>>0]|0|0,0,8)|0;ot=I;yt=Cs(s[n+21>>0]|0|0,0,16)|0;ot=ot|I;gt=s[n+22>>0]|0;mt=Cs(gt|0,0,24)|0;ot=xs(pt|st|yt|mt|0,ot|I|0,1)|0;mt=at+48|0;o[mt>>2]=ot&67108863;o[mt+4>>2]=0;mt=Cs(s[n+23>>0]|0|0,0,8)|0;ot=I;yt=Cs(s[n+24>>0]|0|0,0,16)|0;ot=ot|I;st=s[n+25>>0]|0;pt=Cs(st|0,0,24)|0;ot=xs(mt|gt|yt|pt|0,ot|I|0,3)|0;pt=at+56|0;o[pt>>2]=ot&33554431;o[pt+4>>2]=0;pt=Cs(s[n+26>>0]|0|0,0,8)|0;ot=I;yt=Cs(s[n+27>>0]|0|0,0,16)|0;ot=ot|I;gt=s[n+28>>0]|0;mt=Cs(gt|0,0,24)|0;ot=xs(pt|st|yt|mt|0,ot|I|0,4)|0;mt=at+64|0;o[mt>>2]=ot&67108863;o[mt+4>>2]=0;mt=Cs(s[n+29>>0]|0|0,0,8)|0;ot=I;yt=Cs(s[n+30>>0]|0|0,0,16)|0;ot=ot|I;st=Cs(s[n+31>>0]|0|0,0,24)|0;ot=xs(mt|gt|yt|st|0,ot|I|0,6)|0;st=at+72|0;o[st>>2]=ot&33554431;o[st+4>>2]=0;Ds(Et|0,0,152)|0;st=Et;o[st>>2]=1;o[st+4>>2]=0;Ds(kt|0,0,152)|0;st=kt;o[st>>2]=1;o[st+4>>2]=0;Ds(St|0,0,152)|0;Ds(f|0,0,152)|0;Ds(c|0,0,152)|0;st=c;o[st>>2]=1;o[st+4>>2]=0;Ds(a|0,0,152)|0;Ds(i|0,0,152)|0;st=i;o[st>>2]=1;o[st+4>>2]=0;st=Ct+80|0;ot=st+72|0;do{o[st>>2]=0;st=st+4|0}while((st|0)<(ot|0));st=Ct;t=at;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));oe=xt+144|0;se=xt+64|0;ae=xt+136|0;ce=xt+56|0;fe=xt+128|0;ue=xt+48|0;le=xt+120|0;de=xt+40|0;he=xt+112|0;pe=xt+32|0;me=xt+104|0;ge=xt+24|0;ye=xt+96|0;be=xt+16|0;_e=xt+88|0;ve=xt+8|0;Ae=xt+80|0;we=vt+144|0;Ee=vt+64|0;ke=vt+136|0;Se=vt+56|0;Ie=vt+128|0;Te=vt+48|0;Re=vt+120|0;Oe=vt+40|0;xe=vt+112|0;Ce=vt+32|0;Pe=vt+104|0;Me=vt+24|0;De=vt+96|0;Be=vt+16|0;Ne=vt+88|0;je=vt+8|0;Ue=vt+80|0;ie=xt+72|0;Le=vt+72|0;Fe=bt+8|0;qe=_t+8|0;Ke=bt+16|0;ze=_t+16|0;Ge=bt+24|0;He=_t+24|0;Ve=bt+32|0;Qe=_t+32|0;We=bt+40|0;Ye=_t+40|0;Xe=bt+48|0;Je=_t+48|0;Ze=bt+56|0;$e=_t+56|0;et=bt+64|0;tt=_t+64|0;nt=bt+72|0;rt=_t+72|0;ft=It+80|0;ut=It+8|0;lt=It+16|0;dt=It+24|0;ht=It+32|0;pt=It+40|0;mt=It+48|0;gt=It+56|0;yt=It+64|0;it=It+72|0;d=Ct;re=0;t=f;n=Et;f=St;u=kt;while(1){l=r[ct+(31-re)>>0]|0;$=0;ee=i;te=a;ne=c;J=t;c=n;i=f;a=u;Z=d;while(1){Y=l&255;X=Y>>>7;Mo(a,Z,X,0);Mo(i,c,X,0);E=a;u=o[E>>2]|0;E=o[E+4>>2]|0;V=a+8|0;G=V;P=o[G>>2]|0;G=o[G+4>>2]|0;Nt=a+16|0;T=Nt;S=o[T>>2]|0;T=o[T+4>>2]|0;R=a+24|0;Mt=R;Q=o[Mt>>2]|0;Mt=o[Mt+4>>2]|0;_=a+32|0;v=_;jt=o[v>>2]|0;v=o[v+4>>2]|0;y=a+40|0;l=y;O=o[l>>2]|0;l=o[l+4>>2]|0;z=a+48|0;ot=z;W=o[ot>>2]|0;ot=o[ot+4>>2]|0;B=a+56|0;x=B;F=o[x>>2]|0;x=o[x+4>>2]|0;Ut=a+64|0;A=Ut;U=o[A>>2]|0;A=o[A+4>>2]|0;g=a+72|0;Dt=g;Bt=o[Dt>>2]|0;Dt=o[Dt+4>>2]|0;k=i;j=o[k>>2]|0;k=o[k+4>>2]|0;b=ks(j|0,k|0,u|0,E|0)|0;p=a;o[p>>2]=b;o[p+4>>2]=I;p=i+8|0;b=p;H=o[b>>2]|0;b=o[b+4>>2]|0;D=ks(H|0,b|0,P|0,G|0)|0;o[V>>2]=D;o[V+4>>2]=I;V=i+16|0;D=V;L=o[D>>2]|0;D=o[D+4>>2]|0;f=ks(L|0,D|0,S|0,T|0)|0;o[Nt>>2]=f;o[Nt+4>>2]=I;Nt=i+24|0;f=Nt;n=o[f>>2]|0;f=o[f+4>>2]|0;Ft=ks(n|0,f|0,Q|0,Mt|0)|0;o[R>>2]=Ft;o[R+4>>2]=I;R=i+32|0;Ft=R;m=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;N=ks(m|0,Ft|0,jt|0,v|0)|0;o[_>>2]=N;o[_+4>>2]=I;_=i+40|0;N=_;q=o[N>>2]|0;N=o[N+4>>2]|0;w=ks(q|0,N|0,O|0,l|0)|0;o[y>>2]=w;o[y+4>>2]=I;y=i+48|0;w=y;M=o[w>>2]|0;w=o[w+4>>2]|0;d=ks(M|0,w|0,W|0,ot|0)|0;o[z>>2]=d;o[z+4>>2]=I;z=i+56|0;d=z;C=o[d>>2]|0;d=o[d+4>>2]|0;st=ks(C|0,d|0,F|0,x|0)|0;o[B>>2]=st;o[B+4>>2]=I;B=i+64|0;st=B;t=o[st>>2]|0;st=o[st+4>>2]|0;Lt=ks(t|0,st|0,U|0,A|0)|0;o[Ut>>2]=Lt;o[Ut+4>>2]=I;Ut=i+72|0;Lt=Ut;K=o[Lt>>2]|0;Lt=o[Lt+4>>2]|0;qt=ks(K|0,Lt|0,Bt|0,Dt|0)|0;o[g>>2]=qt;o[g+4>>2]=I;k=Ss(u|0,E|0,j|0,k|0)|0;j=i;o[j>>2]=k;o[j+4>>2]=I;b=Ss(P|0,G|0,H|0,b|0)|0;o[p>>2]=b;o[p+4>>2]=I;D=Ss(S|0,T|0,L|0,D|0)|0;o[V>>2]=D;o[V+4>>2]=I;f=Ss(Q|0,Mt|0,n|0,f|0)|0;o[Nt>>2]=f;o[Nt+4>>2]=I;Ft=Ss(jt|0,v|0,m|0,Ft|0)|0;o[R>>2]=Ft;o[R+4>>2]=I;N=Ss(O|0,l|0,q|0,N|0)|0;o[_>>2]=N;o[_+4>>2]=I;w=Ss(W|0,ot|0,M|0,w|0)|0;o[y>>2]=w;o[y+4>>2]=I;d=Ss(F|0,x|0,C|0,d|0)|0;o[z>>2]=d;o[z+4>>2]=I;st=Ss(U|0,A|0,t|0,st|0)|0;o[B>>2]=st;o[B+4>>2]=I;Lt=Ss(Bt|0,Dt|0,K|0,Lt|0)|0;o[Ut>>2]=Lt;o[Ut+4>>2]=I;Ut=Z;Lt=o[Ut>>2]|0;Ut=o[Ut+4>>2]|0;K=Z+8|0;Dt=K;Bt=o[Dt>>2]|0;Dt=o[Dt+4>>2]|0;B=Z+16|0;st=B;t=o[st>>2]|0;st=o[st+4>>2]|0;A=Z+24|0;U=A;z=o[U>>2]|0;U=o[U+4>>2]|0;d=Z+32|0;C=d;x=o[C>>2]|0;C=o[C+4>>2]|0;F=Z+40|0;y=F;w=o[y>>2]|0;y=o[y+4>>2]|0;M=Z+48|0;ot=M;W=o[ot>>2]|0;ot=o[ot+4>>2]|0;_=Z+56|0;N=_;q=o[N>>2]|0;N=o[N+4>>2]|0;l=Z+64|0;O=l;R=o[O>>2]|0;O=o[O+4>>2]|0;Ft=Z+72|0;m=Ft;v=o[m>>2]|0;m=o[m+4>>2]|0;jt=c;Nt=o[jt>>2]|0;jt=o[jt+4>>2]|0;f=ks(Nt|0,jt|0,Lt|0,Ut|0)|0;n=Z;o[n>>2]=f;o[n+4>>2]=I;n=c+8|0;f=n;Mt=o[f>>2]|0;f=o[f+4>>2]|0;Q=ks(Mt|0,f|0,Bt|0,Dt|0)|0;o[K>>2]=Q;o[K+4>>2]=I;K=c+16|0;Q=K;V=o[Q>>2]|0;Q=o[Q+4>>2]|0;D=ks(V|0,Q|0,t|0,st|0)|0;o[B>>2]=D;o[B+4>>2]=I;B=c+24|0;D=B;L=o[D>>2]|0;D=o[D+4>>2]|0;T=ks(L|0,D|0,z|0,U|0)|0;o[A>>2]=T;o[A+4>>2]=I;A=c+32|0;T=A;S=o[T>>2]|0;T=o[T+4>>2]|0;p=ks(S|0,T|0,x|0,C|0)|0;o[d>>2]=p;o[d+4>>2]=I;d=c+40|0;p=d;b=o[p>>2]|0;p=o[p+4>>2]|0;H=ks(b|0,p|0,w|0,y|0)|0;o[F>>2]=H;o[F+4>>2]=I;F=c+48|0;H=F;G=o[H>>2]|0;H=o[H+4>>2]|0;P=ks(G|0,H|0,W|0,ot|0)|0;o[M>>2]=P;o[M+4>>2]=I;M=c+56|0;P=M;j=o[P>>2]|0;P=o[P+4>>2]|0;k=ks(j|0,P|0,q|0,N|0)|0;o[_>>2]=k;o[_+4>>2]=I;_=c+64|0;k=_;E=o[k>>2]|0;k=o[k+4>>2]|0;u=ks(E|0,k|0,R|0,O|0)|0;o[l>>2]=u;o[l+4>>2]=I;l=c+72|0;u=l;g=o[u>>2]|0;u=o[u+4>>2]|0;qt=ks(g|0,u|0,v|0,m|0)|0;o[Ft>>2]=qt;o[Ft+4>>2]=I;jt=Ss(Lt|0,Ut|0,Nt|0,jt|0)|0;Nt=c;o[Nt>>2]=jt;o[Nt+4>>2]=I;f=Ss(Bt|0,Dt|0,Mt|0,f|0)|0;o[n>>2]=f;o[n+4>>2]=I;Q=Ss(t|0,st|0,V|0,Q|0)|0;o[K>>2]=Q;o[K+4>>2]=I;D=Ss(z|0,U|0,L|0,D|0)|0;o[B>>2]=D;o[B+4>>2]=I;T=Ss(x|0,C|0,S|0,T|0)|0;o[A>>2]=T;o[A+4>>2]=I;p=Ss(w|0,y|0,b|0,p|0)|0;o[d>>2]=p;o[d+4>>2]=I;H=Ss(W|0,ot|0,G|0,H|0)|0;o[F>>2]=H;o[F+4>>2]=I;P=Ss(q|0,N|0,j|0,P|0)|0;o[M>>2]=P;o[M+4>>2]=I;k=Ss(R|0,O|0,E|0,k|0)|0;o[_>>2]=k;o[_+4>>2]=I;u=Ss(v|0,m|0,g|0,u|0)|0;o[l>>2]=u;o[l+4>>2]=I;Do(xt,Z,i);Do(vt,a,c);l=oe;u=o[l>>2]|0;l=o[l+4>>2]|0;g=se;m=o[g>>2]|0;g=o[g+4>>2]|0;v=Es(u|0,l|0,18,0)|0;_=I;l=ks(m|0,g|0,u|0,l|0)|0;_=ks(l|0,I|0,v|0,_|0)|0;v=se;o[v>>2]=_;o[v+4>>2]=I;v=ae;_=o[v>>2]|0;v=o[v+4>>2]|0;l=ce;u=o[l>>2]|0;l=o[l+4>>2]|0;g=Es(_|0,v|0,18,0)|0;m=I;v=ks(u|0,l|0,_|0,v|0)|0;m=ks(v|0,I|0,g|0,m|0)|0;g=ce;o[g>>2]=m;o[g+4>>2]=I;g=fe;m=o[g>>2]|0;g=o[g+4>>2]|0;v=ue;_=o[v>>2]|0;v=o[v+4>>2]|0;l=Es(m|0,g|0,18,0)|0;u=I;g=ks(_|0,v|0,m|0,g|0)|0;u=ks(g|0,I|0,l|0,u|0)|0;l=ue;o[l>>2]=u;o[l+4>>2]=I;l=le;u=o[l>>2]|0;l=o[l+4>>2]|0;g=de;m=o[g>>2]|0;g=o[g+4>>2]|0;v=Es(u|0,l|0,18,0)|0;_=I;l=ks(m|0,g|0,u|0,l|0)|0;_=ks(l|0,I|0,v|0,_|0)|0;v=de;o[v>>2]=_;o[v+4>>2]=I;v=he;_=o[v>>2]|0;v=o[v+4>>2]|0;l=pe;u=o[l>>2]|0;l=o[l+4>>2]|0;g=Es(_|0,v|0,18,0)|0;m=I;v=ks(u|0,l|0,_|0,v|0)|0;m=ks(v|0,I|0,g|0,m|0)|0;g=pe;o[g>>2]=m;o[g+4>>2]=I;g=me;m=o[g>>2]|0;g=o[g+4>>2]|0;v=ge;_=o[v>>2]|0;v=o[v+4>>2]|0;l=Es(m|0,g|0,18,0)|0;u=I;g=ks(_|0,v|0,m|0,g|0)|0;u=ks(g|0,I|0,l|0,u|0)|0;l=ge;o[l>>2]=u;o[l+4>>2]=I;l=ye;u=o[l>>2]|0;l=o[l+4>>2]|0;g=be;m=o[g>>2]|0;g=o[g+4>>2]|0;v=Es(u|0,l|0,18,0)|0;_=I;l=ks(m|0,g|0,u|0,l|0)|0;_=ks(l|0,I|0,v|0,_|0)|0;v=be;o[v>>2]=_;o[v+4>>2]=I;v=_e;_=o[v>>2]|0;v=o[v+4>>2]|0;l=ve;u=o[l>>2]|0;l=o[l+4>>2]|0;g=Es(_|0,v|0,18,0)|0;m=I;v=ks(u|0,l|0,_|0,v|0)|0;m=ks(v|0,I|0,g|0,m|0)|0;g=ve;o[g>>2]=m;o[g+4>>2]=I;g=Ae;m=o[g>>2]|0;g=o[g+4>>2]|0;v=xt;_=o[v>>2]|0;v=o[v+4>>2]|0;l=Es(m|0,g|0,18,0)|0;u=I;g=ks(_|0,v|0,m|0,g|0)|0;u=ks(g|0,I|0,l|0,u|0)|0;l=xt;o[l>>2]=u;o[l+4>>2]=I;Bo(xt);l=we;u=o[l>>2]|0;l=o[l+4>>2]|0;g=Ee;m=o[g>>2]|0;g=o[g+4>>2]|0;v=Es(u|0,l|0,18,0)|0;_=I;l=ks(m|0,g|0,u|0,l|0)|0;_=ks(l|0,I|0,v|0,_|0)|0;v=Ee;o[v>>2]=_;o[v+4>>2]=I;v=ke;_=o[v>>2]|0;v=o[v+4>>2]|0;l=Se;u=o[l>>2]|0;l=o[l+4>>2]|0;g=Es(_|0,v|0,18,0)|0;m=I;v=ks(u|0,l|0,_|0,v|0)|0;m=ks(v|0,I|0,g|0,m|0)|0;g=Se;o[g>>2]=m;o[g+4>>2]=I;g=Ie;m=o[g>>2]|0;g=o[g+4>>2]|0;v=Te;_=o[v>>2]|0;v=o[v+4>>2]|0;l=Es(m|0,g|0,18,0)|0;u=I;g=ks(_|0,v|0,m|0,g|0)|0;u=ks(g|0,I|0,l|0,u|0)|0;l=Te;o[l>>2]=u;o[l+4>>2]=I;l=Re;u=o[l>>2]|0;l=o[l+4>>2]|0;g=Oe;m=o[g>>2]|0;g=o[g+4>>2]|0;v=Es(u|0,l|0,18,0)|0;_=I;l=ks(m|0,g|0,u|0,l|0)|0;_=ks(l|0,I|0,v|0,_|0)|0;v=Oe;o[v>>2]=_;o[v+4>>2]=I;v=xe;_=o[v>>2]|0;v=o[v+4>>2]|0;l=Ce;u=o[l>>2]|0;l=o[l+4>>2]|0;g=Es(_|0,v|0,18,0)|0;m=I;v=ks(u|0,l|0,_|0,v|0)|0;m=ks(v|0,I|0,g|0,m|0)|0;g=Ce;o[g>>2]=m;o[g+4>>2]=I;g=Pe;m=o[g>>2]|0;g=o[g+4>>2]|0;v=Me;_=o[v>>2]|0;v=o[v+4>>2]|0;l=Es(m|0,g|0,18,0)|0;u=I;g=ks(_|0,v|0,m|0,g|0)|0;u=ks(g|0,I|0,l|0,u|0)|0;l=Me;o[l>>2]=u;o[l+4>>2]=I;l=De;u=o[l>>2]|0;l=o[l+4>>2]|0;g=Be;m=o[g>>2]|0;g=o[g+4>>2]|0;v=Es(u|0,l|0,18,0)|0;_=I;l=ks(m|0,g|0,u|0,l|0)|0;_=ks(l|0,I|0,v|0,_|0)|0;v=Be;o[v>>2]=_;o[v+4>>2]=I;v=Ne;_=o[v>>2]|0;v=o[v+4>>2]|0;l=je;u=o[l>>2]|0;l=o[l+4>>2]|0;g=Es(_|0,v|0,18,0)|0;m=I;v=ks(u|0,l|0,_|0,v|0)|0;m=ks(v|0,I|0,g|0,m|0)|0;g=je;o[g>>2]=m;o[g+4>>2]=I;g=Ue;m=o[g>>2]|0;g=o[g+4>>2]|0;v=vt;_=o[v>>2]|0;v=o[v+4>>2]|0;l=Es(m|0,g|0,18,0)|0;u=I;g=ks(_|0,v|0,m|0,g|0)|0;u=ks(g|0,I|0,l|0,u|0)|0;l=vt;o[l>>2]=u;o[l+4>>2]=I;Bo(vt);l=xt;u=o[l>>2]|0;l=o[l+4>>2]|0;g=ve;m=o[g>>2]|0;g=o[g+4>>2]|0;v=be;_=o[v>>2]|0;v=o[v+4>>2]|0;k=ge;E=o[k>>2]|0;k=o[k+4>>2]|0;O=pe;R=o[O>>2]|0;O=o[O+4>>2]|0;M=de;P=o[M>>2]|0;M=o[M+4>>2]|0;j=ue;N=o[j>>2]|0;j=o[j+4>>2]|0;q=ce;F=o[q>>2]|0;q=o[q+4>>2]|0;H=se;G=o[H>>2]|0;H=o[H+4>>2]|0;ot=ie;W=o[ot>>2]|0;ot=o[ot+4>>2]|0;d=vt;p=o[d>>2]|0;d=o[d+4>>2]|0;b=ks(p|0,d|0,u|0,l|0)|0;y=xt;o[y>>2]=b;o[y+4>>2]=I;y=je;b=o[y>>2]|0;y=o[y+4>>2]|0;w=ks(b|0,y|0,m|0,g|0)|0;A=ve;o[A>>2]=w;o[A+4>>2]=I;A=Be;w=o[A>>2]|0;A=o[A+4>>2]|0;T=ks(w|0,A|0,_|0,v|0)|0;S=be;o[S>>2]=T;o[S+4>>2]=I;S=Me;T=o[S>>2]|0;S=o[S+4>>2]|0;C=ks(T|0,S|0,E|0,k|0)|0;x=ge;o[x>>2]=C;o[x+4>>2]=I;x=Ce;C=o[x>>2]|0;x=o[x+4>>2]|0;B=ks(C|0,x|0,R|0,O|0)|0;D=pe;o[D>>2]=B;o[D+4>>2]=I;D=Oe;B=o[D>>2]|0;D=o[D+4>>2]|0;L=ks(B|0,D|0,P|0,M|0)|0;U=de;o[U>>2]=L;o[U+4>>2]=I;U=Te;L=o[U>>2]|0;U=o[U+4>>2]|0;z=ks(L|0,U|0,N|0,j|0)|0;K=ue;o[K>>2]=z;o[K+4>>2]=I;K=Se;z=o[K>>2]|0;K=o[K+4>>2]|0;Q=ks(z|0,K|0,F|0,q|0)|0;V=ce;o[V>>2]=Q;o[V+4>>2]=I;V=Ee;Q=o[V>>2]|0;V=o[V+4>>2]|0;st=ks(Q|0,V|0,G|0,H|0)|0;t=se;o[t>>2]=st;o[t+4>>2]=I;t=Le;st=o[t>>2]|0;t=o[t+4>>2]|0;n=ks(st|0,t|0,W|0,ot|0)|0;f=ie;o[f>>2]=n;o[f+4>>2]=I;d=Ss(u|0,l|0,p|0,d|0)|0;p=vt;o[p>>2]=d;o[p+4>>2]=I;y=Ss(m|0,g|0,b|0,y|0)|0;b=je;o[b>>2]=y;o[b+4>>2]=I;A=Ss(_|0,v|0,w|0,A|0)|0;w=Be;o[w>>2]=A;o[w+4>>2]=I;S=Ss(E|0,k|0,T|0,S|0)|0;T=Me;o[T>>2]=S;o[T+4>>2]=I;x=Ss(R|0,O|0,C|0,x|0)|0;C=Ce;o[C>>2]=x;o[C+4>>2]=I;D=Ss(P|0,M|0,B|0,D|0)|0;B=Oe;o[B>>2]=D;o[B+4>>2]=I;U=Ss(N|0,j|0,L|0,U|0)|0;L=Te;o[L>>2]=U;o[L+4>>2]=I;K=Ss(F|0,q|0,z|0,K|0)|0;z=Se;o[z>>2]=K;o[z+4>>2]=I;V=Ss(G|0,H|0,Q|0,V|0)|0;Q=Ee;o[Q>>2]=V;o[Q+4>>2]=I;t=Ss(W|0,ot|0,st|0,t|0)|0;st=Le;o[st>>2]=t;o[st+4>>2]=I;No(wt,xt);No(At,vt);Do(vt,At,at);st=we;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Ee;W=o[ot>>2]|0;ot=o[ot+4>>2]|0;Q=Es(t|0,st|0,18,0)|0;V=I;st=ks(W|0,ot|0,t|0,st|0)|0;V=ks(st|0,I|0,Q|0,V|0)|0;Q=Ee;o[Q>>2]=V;o[Q+4>>2]=I;Q=ke;V=o[Q>>2]|0;Q=o[Q+4>>2]|0;st=Se;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(V|0,Q|0,18,0)|0;W=I;Q=ks(t|0,st|0,V|0,Q|0)|0;W=ks(Q|0,I|0,ot|0,W|0)|0;ot=Se;o[ot>>2]=W;o[ot+4>>2]=I;ot=Ie;W=o[ot>>2]|0;ot=o[ot+4>>2]|0;Q=Te;V=o[Q>>2]|0;Q=o[Q+4>>2]|0;st=Es(W|0,ot|0,18,0)|0;t=I;ot=ks(V|0,Q|0,W|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=Te;o[st>>2]=t;o[st+4>>2]=I;st=Re;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Oe;W=o[ot>>2]|0;ot=o[ot+4>>2]|0;Q=Es(t|0,st|0,18,0)|0;V=I;st=ks(W|0,ot|0,t|0,st|0)|0;V=ks(st|0,I|0,Q|0,V|0)|0;Q=Oe;o[Q>>2]=V;o[Q+4>>2]=I;Q=xe;V=o[Q>>2]|0;Q=o[Q+4>>2]|0;st=Ce;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(V|0,Q|0,18,0)|0;W=I;Q=ks(t|0,st|0,V|0,Q|0)|0;W=ks(Q|0,I|0,ot|0,W|0)|0;ot=Ce;o[ot>>2]=W;o[ot+4>>2]=I;ot=Pe;W=o[ot>>2]|0;ot=o[ot+4>>2]|0;Q=Me;V=o[Q>>2]|0;Q=o[Q+4>>2]|0;st=Es(W|0,ot|0,18,0)|0;t=I;ot=ks(V|0,Q|0,W|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=Me;o[st>>2]=t;o[st+4>>2]=I;st=De;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Be;W=o[ot>>2]|0;ot=o[ot+4>>2]|0;Q=Es(t|0,st|0,18,0)|0;V=I;st=ks(W|0,ot|0,t|0,st|0)|0;V=ks(st|0,I|0,Q|0,V|0)|0;Q=Be;o[Q>>2]=V;o[Q+4>>2]=I;Q=Ne;V=o[Q>>2]|0;Q=o[Q+4>>2]|0;st=je;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(V|0,Q|0,18,0)|0;W=I;Q=ks(t|0,st|0,V|0,Q|0)|0;W=ks(Q|0,I|0,ot|0,W|0)|0;ot=je;o[ot>>2]=W;o[ot+4>>2]=I;ot=Ue;W=o[ot>>2]|0;ot=o[ot+4>>2]|0;Q=vt;V=o[Q>>2]|0;Q=o[Q+4>>2]|0;st=Es(W|0,ot|0,18,0)|0;t=I;ot=ks(V|0,Q|0,W|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=vt;o[st>>2]=t;o[st+4>>2]=I;Bo(vt);st=J;t=wt;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));st=ne;t=vt;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(bt,a);No(_t,i);Do(te,bt,_t);f=te+144|0;p=o[f>>2]|0;f=o[f+4>>2]|0;d=te+64|0;l=d;u=o[l>>2]|0;l=o[l+4>>2]|0;t=Es(p|0,f|0,18,0)|0;n=I;f=ks(u|0,l|0,p|0,f|0)|0;n=ks(f|0,I|0,t|0,n|0)|0;o[d>>2]=n;o[d+4>>2]=I;d=te+136|0;n=o[d>>2]|0;d=o[d+4>>2]|0;t=te+56|0;f=t;p=o[f>>2]|0;f=o[f+4>>2]|0;l=Es(n|0,d|0,18,0)|0;u=I;d=ks(p|0,f|0,n|0,d|0)|0;u=ks(d|0,I|0,l|0,u|0)|0;o[t>>2]=u;o[t+4>>2]=I;t=te+128|0;u=o[t>>2]|0;t=o[t+4>>2]|0;l=te+48|0;d=l;n=o[d>>2]|0;d=o[d+4>>2]|0;f=Es(u|0,t|0,18,0)|0;p=I;t=ks(n|0,d|0,u|0,t|0)|0;p=ks(t|0,I|0,f|0,p|0)|0;o[l>>2]=p;o[l+4>>2]=I;l=te+120|0;p=o[l>>2]|0;l=o[l+4>>2]|0;f=te+40|0;t=f;u=o[t>>2]|0;t=o[t+4>>2]|0;d=Es(p|0,l|0,18,0)|0;n=I;l=ks(u|0,t|0,p|0,l|0)|0;n=ks(l|0,I|0,d|0,n|0)|0;o[f>>2]=n;o[f+4>>2]=I;f=te+112|0;n=o[f>>2]|0;f=o[f+4>>2]|0;d=te+32|0;l=d;p=o[l>>2]|0;l=o[l+4>>2]|0;t=Es(n|0,f|0,18,0)|0;u=I;f=ks(p|0,l|0,n|0,f|0)|0;u=ks(f|0,I|0,t|0,u|0)|0;o[d>>2]=u;o[d+4>>2]=I;d=te+104|0;u=o[d>>2]|0;d=o[d+4>>2]|0;t=te+24|0;f=t;n=o[f>>2]|0;f=o[f+4>>2]|0;l=Es(u|0,d|0,18,0)|0;p=I;d=ks(n|0,f|0,u|0,d|0)|0;p=ks(d|0,I|0,l|0,p|0)|0;o[t>>2]=p;o[t+4>>2]=I;t=te+96|0;p=o[t>>2]|0;t=o[t+4>>2]|0;l=te+16|0;d=l;u=o[d>>2]|0;d=o[d+4>>2]|0;f=Es(p|0,t|0,18,0)|0;n=I;t=ks(u|0,d|0,p|0,t|0)|0;n=ks(t|0,I|0,f|0,n|0)|0;o[l>>2]=n;o[l+4>>2]=I;l=te+88|0;n=o[l>>2]|0;l=o[l+4>>2]|0;f=te+8|0;t=f;p=o[t>>2]|0;t=o[t+4>>2]|0;d=Es(n|0,l|0,18,0)|0;u=I;l=ks(p|0,t|0,n|0,l|0)|0;u=ks(l|0,I|0,d|0,u|0)|0;o[f>>2]=u;o[f+4>>2]=I;f=te+80|0;u=o[f>>2]|0;f=o[f+4>>2]|0;d=te;l=o[d>>2]|0;d=o[d+4>>2]|0;n=Es(u|0,f|0,18,0)|0;t=I;f=ks(l|0,d|0,u|0,f|0)|0;t=ks(f|0,I|0,n|0,t|0)|0;n=te;o[n>>2]=t;o[n+4>>2]=I;Bo(te);n=bt;t=o[n>>2]|0;n=o[n+4>>2]|0;f=_t;f=Ss(t|0,n|0,o[f>>2]|0,o[f+4>>2]|0)|0;u=I;d=_t;o[d>>2]=f;o[d+4>>2]=u;d=Fe;l=o[d>>2]|0;d=o[d+4>>2]|0;p=qe;p=Ss(l|0,d|0,o[p>>2]|0,o[p+4>>2]|0)|0;m=I;y=qe;o[y>>2]=p;o[y+4>>2]=m;y=Ke;g=o[y>>2]|0;y=o[y+4>>2]|0;b=ze;b=Ss(g|0,y|0,o[b>>2]|0,o[b+4>>2]|0)|0;_=I;A=ze;o[A>>2]=b;o[A+4>>2]=_;A=Ge;v=o[A>>2]|0;A=o[A+4>>2]|0;w=He;w=Ss(v|0,A|0,o[w>>2]|0,o[w+4>>2]|0)|0;E=I;S=He;o[S>>2]=w;o[S+4>>2]=E;S=Ve;k=o[S>>2]|0;S=o[S+4>>2]|0;T=Qe;T=Ss(k|0,S|0,o[T>>2]|0,o[T+4>>2]|0)|0;R=I;x=Qe;o[x>>2]=T;o[x+4>>2]=R;x=We;O=o[x>>2]|0;x=o[x+4>>2]|0;C=Ye;C=Ss(O|0,x|0,o[C>>2]|0,o[C+4>>2]|0)|0;P=I;D=Ye;o[D>>2]=C;o[D+4>>2]=P;D=Xe;M=o[D>>2]|0;D=o[D+4>>2]|0;B=Je;B=Ss(M|0,D|0,o[B>>2]|0,o[B+4>>2]|0)|0;N=I;U=Je;o[U>>2]=B;o[U+4>>2]=N;U=Ze;j=o[U>>2]|0;U=o[U+4>>2]|0;L=$e;L=Ss(j|0,U|0,o[L>>2]|0,o[L+4>>2]|0)|0;F=I;K=$e;o[K>>2]=L;o[K+4>>2]=F;K=et;q=o[K>>2]|0;K=o[K+4>>2]|0;z=tt;z=Ss(q|0,K|0,o[z>>2]|0,o[z+4>>2]|0)|0;G=I;V=tt;o[V>>2]=z;o[V+4>>2]=G;V=nt;H=o[V>>2]|0;V=o[V+4>>2]|0;Q=rt;Q=Ss(H|0,V|0,o[Q>>2]|0,o[Q+4>>2]|0)|0;W=I;st=rt;o[st>>2]=Q;o[st+4>>2]=W;st=ft;ot=st+72|0;do{o[st>>2]=0;st=st+4|0}while((st|0)<(ot|0));Lt=Es(f|0,u|0,121665,0)|0;Bt=It;o[Bt>>2]=Lt;o[Bt+4>>2]=I;Bt=Es(p|0,m|0,121665,0)|0;Lt=ut;o[Lt>>2]=Bt;o[Lt+4>>2]=I;Lt=Es(b|0,_|0,121665,0)|0;Bt=lt;o[Bt>>2]=Lt;o[Bt+4>>2]=I;Bt=Es(w|0,E|0,121665,0)|0;Lt=dt;o[Lt>>2]=Bt;o[Lt+4>>2]=I;Lt=Es(T|0,R|0,121665,0)|0;Bt=ht;o[Bt>>2]=Lt;o[Bt+4>>2]=I;Bt=Es(C|0,P|0,121665,0)|0;Lt=pt;o[Lt>>2]=Bt;o[Lt+4>>2]=I;Lt=Es(B|0,N|0,121665,0)|0;Bt=mt;o[Bt>>2]=Lt;o[Bt+4>>2]=I;Bt=Es(L|0,F|0,121665,0)|0;Lt=gt;o[Lt>>2]=Bt;o[Lt+4>>2]=I;Lt=Es(z|0,G|0,121665,0)|0;Bt=yt;o[Bt>>2]=Lt;o[Bt+4>>2]=I;Bt=Es(Q|0,W|0,121665,0)|0;Lt=it;o[Lt>>2]=Bt;o[Lt+4>>2]=I;Bo(It);Lt=It;Lt=ks(o[Lt>>2]|0,o[Lt+4>>2]|0,t|0,n|0)|0;Bt=It;o[Bt>>2]=Lt;o[Bt+4>>2]=I;Bt=ut;Bt=ks(o[Bt>>2]|0,o[Bt+4>>2]|0,l|0,d|0)|0;Lt=ut;o[Lt>>2]=Bt;o[Lt+4>>2]=I;Lt=lt;Lt=ks(o[Lt>>2]|0,o[Lt+4>>2]|0,g|0,y|0)|0;Bt=lt;o[Bt>>2]=Lt;o[Bt+4>>2]=I;Bt=dt;Bt=ks(o[Bt>>2]|0,o[Bt+4>>2]|0,v|0,A|0)|0;Lt=dt;o[Lt>>2]=Bt;o[Lt+4>>2]=I;Lt=ht;Lt=ks(o[Lt>>2]|0,o[Lt+4>>2]|0,k|0,S|0)|0;Bt=ht;o[Bt>>2]=Lt;o[Bt+4>>2]=I;Bt=pt;Bt=ks(o[Bt>>2]|0,o[Bt+4>>2]|0,O|0,x|0)|0;Lt=pt;o[Lt>>2]=Bt;o[Lt+4>>2]=I;Lt=mt;Lt=ks(o[Lt>>2]|0,o[Lt+4>>2]|0,M|0,D|0)|0;Bt=mt;o[Bt>>2]=Lt;o[Bt+4>>2]=I;Bt=gt;Bt=ks(o[Bt>>2]|0,o[Bt+4>>2]|0,j|0,U|0)|0;Lt=gt;o[Lt>>2]=Bt;o[Lt+4>>2]=I;Lt=yt;Lt=ks(o[Lt>>2]|0,o[Lt+4>>2]|0,q|0,K|0)|0;Bt=yt;o[Bt>>2]=Lt;o[Bt+4>>2]=I;Bt=it;Bt=ks(o[Bt>>2]|0,o[Bt+4>>2]|0,H|0,V|0)|0;Lt=it;o[Lt>>2]=Bt;o[Lt+4>>2]=I;Do(ee,_t,It);Lt=ee+144|0;Bt=o[Lt>>2]|0;Lt=o[Lt+4>>2]|0;jt=ee+64|0;Nt=jt;Ut=o[Nt>>2]|0;Nt=o[Nt+4>>2]|0;Ft=Es(Bt|0,Lt|0,18,0)|0;qt=I;Lt=ks(Ut|0,Nt|0,Bt|0,Lt|0)|0;qt=ks(Lt|0,I|0,Ft|0,qt|0)|0;o[jt>>2]=qt;o[jt+4>>2]=I;jt=ee+136|0;qt=o[jt>>2]|0;jt=o[jt+4>>2]|0;Ft=ee+56|0;Lt=Ft;Bt=o[Lt>>2]|0;Lt=o[Lt+4>>2]|0;Nt=Es(qt|0,jt|0,18,0)|0;Ut=I;jt=ks(Bt|0,Lt|0,qt|0,jt|0)|0;Ut=ks(jt|0,I|0,Nt|0,Ut|0)|0;o[Ft>>2]=Ut;o[Ft+4>>2]=I;Ft=ee+128|0;Ut=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;Nt=ee+48|0;jt=Nt;qt=o[jt>>2]|0;jt=o[jt+4>>2]|0;Lt=Es(Ut|0,Ft|0,18,0)|0;Bt=I;Ft=ks(qt|0,jt|0,Ut|0,Ft|0)|0;Bt=ks(Ft|0,I|0,Lt|0,Bt|0)|0;o[Nt>>2]=Bt;o[Nt+4>>2]=I;Nt=ee+120|0;Bt=o[Nt>>2]|0;Nt=o[Nt+4>>2]|0;Lt=ee+40|0;Ft=Lt;Ut=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;jt=Es(Bt|0,Nt|0,18,0)|0;qt=I;Nt=ks(Ut|0,Ft|0,Bt|0,Nt|0)|0;qt=ks(Nt|0,I|0,jt|0,qt|0)|0;o[Lt>>2]=qt;o[Lt+4>>2]=I;Lt=ee+112|0;qt=o[Lt>>2]|0;Lt=o[Lt+4>>2]|0;jt=ee+32|0;Nt=jt;Bt=o[Nt>>2]|0;Nt=o[Nt+4>>2]|0;Ft=Es(qt|0,Lt|0,18,0)|0;Ut=I;Lt=ks(Bt|0,Nt|0,qt|0,Lt|0)|0;Ut=ks(Lt|0,I|0,Ft|0,Ut|0)|0;o[jt>>2]=Ut;o[jt+4>>2]=I;jt=ee+104|0;Ut=o[jt>>2]|0;jt=o[jt+4>>2]|0;Ft=ee+24|0;Lt=Ft;qt=o[Lt>>2]|0;Lt=o[Lt+4>>2]|0;Nt=Es(Ut|0,jt|0,18,0)|0;Bt=I;jt=ks(qt|0,Lt|0,Ut|0,jt|0)|0;Bt=ks(jt|0,I|0,Nt|0,Bt|0)|0;o[Ft>>2]=Bt;o[Ft+4>>2]=I;Ft=ee+96|0;Bt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;Nt=ee+16|0;jt=Nt;Ut=o[jt>>2]|0;jt=o[jt+4>>2]|0;Lt=Es(Bt|0,Ft|0,18,0)|0;qt=I;Ft=ks(Ut|0,jt|0,Bt|0,Ft|0)|0;qt=ks(Ft|0,I|0,Lt|0,qt|0)|0;o[Nt>>2]=qt;o[Nt+4>>2]=I;Nt=ee+88|0;qt=o[Nt>>2]|0;Nt=o[Nt+4>>2]|0;Lt=ee+8|0;Ft=Lt;Bt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;jt=Es(qt|0,Nt|0,18,0)|0;Ut=I;Nt=ks(Bt|0,Ft|0,qt|0,Nt|0)|0;Ut=ks(Nt|0,I|0,jt|0,Ut|0)|0;o[Lt>>2]=Ut;o[Lt+4>>2]=I;Lt=ee+80|0;Ut=o[Lt>>2]|0;Lt=o[Lt+4>>2]|0;jt=ee;Nt=o[jt>>2]|0;jt=o[jt+4>>2]|0;qt=Es(Ut|0,Lt|0,18,0)|0;Ft=I;Lt=ks(Nt|0,jt|0,Ut|0,Lt|0)|0;Ft=ks(Lt|0,I|0,qt|0,Ft|0)|0;qt=ee;o[qt>>2]=Ft;o[qt+4>>2]=I;Bo(ee);Mo(te,J,X,0);Mo(ee,ne,X,0);$=$+1|0;if(($|0)==8)break;else{Ut=Z;Lt=c;Ft=a;qt=i;l=Y<<1&255;Z=J;a=te;i=ee;c=ne;J=Ut;ne=Lt;te=Ft;ee=qt}}re=re+1|0;if((re|0)==32)break;else{d=J;t=Z;n=ne;f=ee;u=te}}st=Tt;t=te;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));st=Rt;t=ee;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(bt,Rt);No(St,bt);No(kt,St);Do(It,kt,Rt);n=It+144|0;u=n;f=o[u>>2]|0;u=o[u+4>>2]|0;c=yt;a=o[c>>2]|0;c=o[c+4>>2]|0;i=Es(f|0,u|0,18,0)|0;l=I;u=ks(a|0,c|0,f|0,u|0)|0;l=ks(u|0,I|0,i|0,l|0)|0;i=yt;o[i>>2]=l;o[i+4>>2]=I;i=It+136|0;l=i;u=o[l>>2]|0;l=o[l+4>>2]|0;f=gt;c=o[f>>2]|0;f=o[f+4>>2]|0;a=Es(u|0,l|0,18,0)|0;d=I;l=ks(c|0,f|0,u|0,l|0)|0;d=ks(l|0,I|0,a|0,d|0)|0;a=gt;o[a>>2]=d;o[a+4>>2]=I;a=It+128|0;d=a;l=o[d>>2]|0;d=o[d+4>>2]|0;u=mt;f=o[u>>2]|0;u=o[u+4>>2]|0;c=Es(l|0,d|0,18,0)|0;ot=I;d=ks(f|0,u|0,l|0,d|0)|0;ot=ks(d|0,I|0,c|0,ot|0)|0;c=mt;o[c>>2]=ot;o[c+4>>2]=I;c=It+120|0;ot=c;d=o[ot>>2]|0;ot=o[ot+4>>2]|0;l=pt;u=o[l>>2]|0;l=o[l+4>>2]|0;f=Es(d|0,ot|0,18,0)|0;t=I;ot=ks(u|0,l|0,d|0,ot|0)|0;t=ks(ot|0,I|0,f|0,t|0)|0;f=pt;o[f>>2]=t;o[f+4>>2]=I;f=It+112|0;t=f;ot=o[t>>2]|0;t=o[t+4>>2]|0;d=ht;l=o[d>>2]|0;d=o[d+4>>2]|0;u=Es(ot|0,t|0,18,0)|0;st=I;t=ks(l|0,d|0,ot|0,t|0)|0;st=ks(t|0,I|0,u|0,st|0)|0;u=ht;o[u>>2]=st;o[u+4>>2]=I;u=It+104|0;st=u;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=dt;d=o[ot>>2]|0;ot=o[ot+4>>2]|0;l=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(d|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,l|0,Lt|0)|0;l=dt;o[l>>2]=Lt;o[l+4>>2]=I;l=It+96|0;Lt=l;st=o[Lt>>2]|0;Lt=o[Lt+4>>2]|0;t=lt;ot=o[t>>2]|0;t=o[t+4>>2]|0;d=Es(st|0,Lt|0,18,0)|0;Ft=I;Lt=ks(ot|0,t|0,st|0,Lt|0)|0;Ft=ks(Lt|0,I|0,d|0,Ft|0)|0;d=lt;o[d>>2]=Ft;o[d+4>>2]=I;d=It+88|0;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=_t;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));Do(It,_t,bt);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=xt;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(kt,xt);Do(It,kt,_t);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=vt;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(kt,vt);No(St,kt);No(kt,St);No(St,kt);No(kt,St);Do(It,kt,vt);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=At;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(kt,At);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);Do(It,St,At);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=wt;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(kt,wt);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);Do(It,St,wt);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=kt;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);Do(It,kt,At);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=Ct;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(kt,Ct);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);Do(It,St,Ct);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=Et;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(St,Et);No(kt,St);t=2;do{No(St,kt);No(kt,St);t=t+2|0}while(t>>>0<100);Do(It,kt,Et);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=St;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);Do(It,St,Ct);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=kt;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));No(St,kt);No(kt,St);No(St,kt);No(kt,St);No(St,kt);Do(It,St,xt);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=Ot;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));Do(It,Tt,Ot);st=n;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=yt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=yt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=i;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=gt;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=gt;o[ot>>2]=qt;o[ot+4>>2]=I;ot=a;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=mt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=mt;o[st>>2]=t;o[st+4>>2]=I;st=c;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=pt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=pt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=f;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ht;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ht;o[ot>>2]=qt;o[ot+4>>2]=I;ot=u;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=dt;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=dt;o[st>>2]=t;o[st+4>>2]=I;st=l;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=lt;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=Es(t|0,st|0,18,0)|0;Lt=I;st=ks(qt|0,ot|0,t|0,st|0)|0;Lt=ks(st|0,I|0,Ft|0,Lt|0)|0;Ft=lt;o[Ft>>2]=Lt;o[Ft+4>>2]=I;Ft=d;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=ut;t=o[st>>2]|0;st=o[st+4>>2]|0;ot=Es(Lt|0,Ft|0,18,0)|0;qt=I;Ft=ks(t|0,st|0,Lt|0,Ft|0)|0;qt=ks(Ft|0,I|0,ot|0,qt|0)|0;ot=ut;o[ot>>2]=qt;o[ot+4>>2]=I;ot=ft;qt=o[ot>>2]|0;ot=o[ot+4>>2]|0;Ft=It;Lt=o[Ft>>2]|0;Ft=o[Ft+4>>2]|0;st=Es(qt|0,ot|0,18,0)|0;t=I;ot=ks(Lt|0,Ft|0,qt|0,ot|0)|0;t=ks(ot|0,I|0,st|0,t|0)|0;st=It;o[st>>2]=t;o[st+4>>2]=I;Bo(It);st=Rt;t=It;ot=st+80|0;do{o[st>>2]=o[t>>2];st=st+4|0;t=t+4|0}while((st|0)<(ot|0));Ct=o[Rt>>2]|0;At=Ct>>31&Ct;Mt=(At>>26)+(o[Rt+8>>2]|0)|0;qt=Mt>>31&Mt;Dt=(qt>>25)+(o[Rt+16>>2]|0)|0;Ft=Dt>>31&Dt;vt=(Ft>>26)+(o[Rt+24>>2]|0)|0;Bt=vt>>31&vt;Nt=(Bt>>25)+(o[Rt+32>>2]|0)|0;Tt=Nt>>31&Nt;jt=(Tt>>26)+(o[Rt+40>>2]|0)|0;It=jt>>31&jt;Ut=(It>>25)+(o[Rt+48>>2]|0)|0;St=Ut>>31&Ut;Lt=(St>>26)+(o[Rt+56>>2]|0)|0;kt=Lt>>31≪Ot=(kt>>25)+(o[Rt+64>>2]|0)|0;wt=Ot>>31&Ot;xt=(wt>>26)+(o[Rt+72>>2]|0)|0;Et=xt>>31&xt;At=((Et>>25)*19|0)+(Ct-(At&-67108864))|0;Ct=At>>31&At;qt=(Ct>>26)+(Mt-(qt&-33554432))|0;Mt=qt>>31&qt;Ft=(Mt>>25)+(Dt-(Ft&-67108864))|0;Dt=Ft>>31&Ft;Rt=(Dt>>26)+(vt-(Bt&-33554432))|0;Bt=Rt>>31&Rt;Tt=(Bt>>25)+(Nt-(Tt&-67108864))|0;Nt=Tt>>31&Tt;It=(Nt>>26)+(jt-(It&-33554432))|0;jt=It>>31&It;St=(jt>>25)+(Ut-(St&-67108864))|0;Ut=St>>31&St;kt=(Ut>>26)+(Lt-(kt&-33554432))|0;Lt=kt>>31&kt;wt=(Lt>>25)+(Ot-(wt&-67108864))|0;Ot=wt>>31&wt;Et=(Ot>>26)+(xt-(Et&-33554432))|0;xt=Et>>31&Et;Ct=((xt>>25)*19|0)+(At-(Ct&-67108864))|0;At=Ct>>31&Ct;Ct=Ct-(At&-67108864)|0;Mt=(Ct>>26)+((At>>26)+(qt-(Mt&-33554432)))|0;Dt=(Mt>>25)+(Ft-(Dt&-67108864))|0;Bt=(Dt>>26)+(Rt-(Bt&-33554432))|0;Nt=(Bt>>25)+(Tt-(Nt&-67108864))|0;jt=(Nt>>26)+(It-(jt&-33554432))|0;Ut=(jt>>25)+(St-(Ut&-67108864))|0;Lt=(Ut>>26)+(kt-(Lt&-33554432))|0;Ot=(Lt>>25)+(wt-(Ot&-67108864))|0;xt=(Ot>>26)+(Et-(xt&-33554432))|0;Ct=((xt>>25)*19|0)+(Ct&67108863)|0;Mt=(Ct>>26)+(Mt&33554431)|0;Dt=(Mt>>25)+(Dt&67108863)|0;Bt=(Dt>>26)+(Bt&33554431)|0;Nt=(Bt>>25)+(Nt&67108863)|0;jt=(Nt>>26)+(jt&33554431)|0;Ut=(jt>>25)+(Ut&67108863)|0;Lt=(Ut>>26)+(Lt&33554431)|0;Ot=(Lt>>25)+(Ot&67108863)|0;xt=(Ot>>26)+(xt&33554431)|0;Ct=((xt>>25)*19|0)+(Ct&67108863)|0;Et=Mt<<16&(Mt|-33554432);Et=Et<<8&Et;Et=Et<<4&Et;Et=Et<<2&Et;wt=Dt<<16&(Dt|-67108864);wt=wt<<8&wt;wt=wt<<4&wt;wt=wt<<2&wt;kt=Bt<<16&(Bt|-33554432);kt=kt<<8&kt;kt=kt<<4&kt;kt=kt<<2&kt;St=Nt<<16&(Nt|-67108864);St=St<<8&St;St=St<<4&St;St=St<<2&St;It=jt<<16&(jt|-33554432);It=It<<8&It;It=It<<4&It;It=It<<2&It;Tt=Ut<<16&(Ut|-67108864);Tt=Tt<<8&Tt;Tt=Tt<<4&Tt;Tt=Tt<<2&Tt;Rt=Lt<<16&(Lt|-33554432);Rt=Rt<<8&Rt;Rt=Rt<<4&Rt;Rt=Rt<<2&Rt;Ft=Ot<<16&(Ot|-67108864);Ft=Ft<<8&Ft;Ft=Ft<<4&Ft;Ft=Ft<<2&Ft;qt=xt<<16&(xt|-33554432);qt=qt<<8&qt;qt=qt<<4&qt;qt=qt<<2&qt;qt=(wt<<1&wt&(Et<<1&Et)&(kt<<1&kt)&(St<<1&St)&(It<<1&It))>>31&~(Ct+-67108845>>31)&(Tt<<1&Tt)>>31&(Rt<<1&Rt)>>31&(Ft<<1&Ft)>>31&(qt<<1&qt)>>31;Ct=Ct-(qt&67108845)|0;Ft=qt&67108863;qt=qt&33554431;Mt=(Mt&33554431)-qt|0;Dt=(Dt&67108863)-Ft|0;Bt=(Bt&33554431)-qt|0;Nt=(Nt&67108863)-Ft|0;jt=(jt&33554431)-qt|0;Ut=(Ut&67108863)-Ft|0;Lt=(Lt&33554431)-qt|0;Ft=(Ot&67108863)-Ft|0;qt=(xt&33554431)-qt|0;r[e>>0]=Ct;r[e+1>>0]=Ct>>>8;r[e+2>>0]=Ct>>>16;r[e+3>>0]=Ct>>>24|Mt<<2;r[e+4>>0]=Mt>>>6;r[e+5>>0]=Mt>>>14;r[e+6>>0]=Dt<<3|Mt>>>22;r[e+7>>0]=Dt>>>5;r[e+8>>0]=Dt>>>13;r[e+9>>0]=Bt<<5|Dt>>>21;r[e+10>>0]=Bt>>>3;r[e+11>>0]=Bt>>>11;r[e+12>>0]=Nt<<6|Bt>>>19;r[e+13>>0]=Nt>>>2;r[e+14>>0]=Nt>>>10;r[e+15>>0]=Nt>>>18;r[e+16>>0]=jt;r[e+17>>0]=jt>>>8;r[e+18>>0]=jt>>>16;r[e+19>>0]=jt>>>24|Ut<<1;r[e+20>>0]=Ut>>>7;r[e+21>>0]=Ut>>>15;r[e+22>>0]=Lt<<3|Ut>>>23;r[e+23>>0]=Lt>>>5;r[e+24>>0]=Lt>>>13;r[e+25>>0]=Ft<<4|Lt>>>21;r[e+26>>0]=Ft>>>4;r[e+27>>0]=Ft>>>12;r[e+28>>0]=qt<<6|Ft>>>20;r[e+29>>0]=qt>>>2;r[e+30>>0]=qt>>>10;r[e+31>>0]=qt>>>18;h=Pt;return 0}function Mo(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,s=0,a=0,c=0;n=0-n|0;a=e;i=o[a>>2]|0;s=t;s=(o[s>>2]^i)&n;i=s^i;a=e;o[a>>2]=i;o[a+4>>2]=((i|0)<0)<<31>>31;s=s^o[t>>2];a=t;o[a>>2]=s;o[a+4>>2]=((s|0)<0)<<31>>31;a=e+8|0;s=a;i=o[s>>2]|0;r=t+8|0;c=r;c=(o[c>>2]^i)&n;i=c^i;o[a>>2]=i;o[a+4>>2]=((i|0)<0)<<31>>31;c=c^o[r>>2];o[r>>2]=c;o[r+4>>2]=((c|0)<0)<<31>>31;r=e+16|0;c=r;a=o[c>>2]|0;i=t+16|0;s=i;s=(o[s>>2]^a)&n;a=s^a;o[r>>2]=a;o[r+4>>2]=((a|0)<0)<<31>>31;s=s^o[i>>2];o[i>>2]=s;o[i+4>>2]=((s|0)<0)<<31>>31;i=e+24|0;s=i;r=o[s>>2]|0;a=t+24|0;c=a;c=(o[c>>2]^r)&n;r=c^r;o[i>>2]=r;o[i+4>>2]=((r|0)<0)<<31>>31;c=c^o[a>>2];o[a>>2]=c;o[a+4>>2]=((c|0)<0)<<31>>31;a=e+32|0;c=a;i=o[c>>2]|0;r=t+32|0;s=r;s=(o[s>>2]^i)&n;i=s^i;o[a>>2]=i;o[a+4>>2]=((i|0)<0)<<31>>31;s=s^o[r>>2];o[r>>2]=s;o[r+4>>2]=((s|0)<0)<<31>>31;r=e+40|0;s=r;a=o[s>>2]|0;i=t+40|0;c=i;c=(o[c>>2]^a)&n;a=c^a;o[r>>2]=a;o[r+4>>2]=((a|0)<0)<<31>>31;c=c^o[i>>2];o[i>>2]=c;o[i+4>>2]=((c|0)<0)<<31>>31;i=e+48|0;c=i;r=o[c>>2]|0;a=t+48|0;s=a;s=(o[s>>2]^r)&n;r=s^r;o[i>>2]=r;o[i+4>>2]=((r|0)<0)<<31>>31;s=s^o[a>>2];o[a>>2]=s;o[a+4>>2]=((s|0)<0)<<31>>31;a=e+56|0;s=a;i=o[s>>2]|0;r=t+56|0;c=r;c=(o[c>>2]^i)&n;i=c^i;o[a>>2]=i;o[a+4>>2]=((i|0)<0)<<31>>31;c=c^o[r>>2];o[r>>2]=c;o[r+4>>2]=((c|0)<0)<<31>>31;r=e+64|0;c=r;a=o[c>>2]|0;i=t+64|0;s=i;s=(o[s>>2]^a)&n;a=s^a;o[r>>2]=a;o[r+4>>2]=((a|0)<0)<<31>>31;s=s^o[i>>2];o[i>>2]=s;o[i+4>>2]=((s|0)<0)<<31>>31;i=e+72|0;s=i;e=o[s>>2]|0;r=t+72|0;t=r;n=(o[t>>2]^e)&n;e=n^e;t=i;o[t>>2]=e;o[t+4>>2]=((e|0)<0)<<31>>31;n=n^o[r>>2];o[r>>2]=n;o[r+4>>2]=((n|0)<0)<<31>>31;return}function Do(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0;a=Os(0,o[t>>2]|0,32)|0;h=I;w=Os(0,o[n>>2]|0,32)|0;h=Es(w|0,I|0,a|0,h|0)|0;a=e;o[a>>2]=h;o[a+4>>2]=I;a=Os(0,o[t>>2]|0,32)|0;h=I;w=n+8|0;b=Os(0,o[w>>2]|0,32)|0;h=Es(b|0,I|0,a|0,h|0)|0;a=I;b=t+8|0;y=Os(0,o[b>>2]|0,32)|0;m=I;A=Os(0,o[n>>2]|0,32)|0;m=Es(A|0,I|0,y|0,m|0)|0;a=ks(m|0,I|0,h|0,a|0)|0;h=e+8|0;o[h>>2]=a;o[h+4>>2]=I;h=Os(0,o[b>>2]|0,31)|0;a=I;m=Os(0,o[w>>2]|0,32)|0;a=Es(m|0,I|0,h|0,a|0)|0;h=I;m=Os(0,o[t>>2]|0,32)|0;y=I;A=n+16|0;l=Os(0,o[A>>2]|0,32)|0;y=Es(l|0,I|0,m|0,y|0)|0;h=ks(y|0,I|0,a|0,h|0)|0;a=I;y=t+16|0;m=Os(0,o[y>>2]|0,32)|0;l=I;v=Os(0,o[n>>2]|0,32)|0;l=Es(v|0,I|0,m|0,l|0)|0;l=ks(h|0,a|0,l|0,I|0)|0;a=e+16|0;o[a>>2]=l;o[a+4>>2]=I;a=Os(0,o[b>>2]|0,32)|0;l=I;h=Os(0,o[A>>2]|0,32)|0;l=Es(h|0,I|0,a|0,l|0)|0;a=I;h=Os(0,o[y>>2]|0,32)|0;m=I;v=Os(0,o[w>>2]|0,32)|0;m=Es(v|0,I|0,h|0,m|0)|0;a=ks(m|0,I|0,l|0,a|0)|0;l=I;m=Os(0,o[t>>2]|0,32)|0;h=I;v=n+24|0;s=Os(0,o[v>>2]|0,32)|0;h=Es(s|0,I|0,m|0,h|0)|0;h=ks(a|0,l|0,h|0,I|0)|0;l=I;a=t+24|0;m=Os(0,o[a>>2]|0,32)|0;s=I;f=Os(0,o[n>>2]|0,32)|0;s=Es(f|0,I|0,m|0,s|0)|0;s=ks(h|0,l|0,s|0,I|0)|0;l=e+24|0;o[l>>2]=s;o[l+4>>2]=I;l=Os(0,o[y>>2]|0,32)|0;s=I;h=Os(0,o[A>>2]|0,32)|0;s=Es(h|0,I|0,l|0,s|0)|0;l=I;h=Os(0,o[b>>2]|0,32)|0;m=I;f=Os(0,o[v>>2]|0,32)|0;m=Es(f|0,I|0,h|0,m|0)|0;h=I;f=Os(0,o[a>>2]|0,32)|0;g=I;p=Os(0,o[w>>2]|0,32)|0;g=Es(p|0,I|0,f|0,g|0)|0;h=ks(g|0,I|0,m|0,h|0)|0;h=Cs(h|0,I|0,1)|0;l=ks(h|0,I|0,s|0,l|0)|0;s=I;h=Os(0,o[t>>2]|0,32)|0;m=I;g=n+32|0;f=Os(0,o[g>>2]|0,32)|0;m=Es(f|0,I|0,h|0,m|0)|0;m=ks(l|0,s|0,m|0,I|0)|0;s=I;l=t+32|0;h=Os(0,o[l>>2]|0,32)|0;f=I;p=Os(0,o[n>>2]|0,32)|0;f=Es(p|0,I|0,h|0,f|0)|0;f=ks(m|0,s|0,f|0,I|0)|0;s=e+32|0;o[s>>2]=f;o[s+4>>2]=I;s=Os(0,o[y>>2]|0,32)|0;f=I;m=Os(0,o[v>>2]|0,32)|0;f=Es(m|0,I|0,s|0,f|0)|0;s=I;m=Os(0,o[a>>2]|0,32)|0;h=I;p=Os(0,o[A>>2]|0,32)|0;h=Es(p|0,I|0,m|0,h|0)|0;s=ks(h|0,I|0,f|0,s|0)|0;f=I;h=Os(0,o[b>>2]|0,32)|0;m=I;p=Os(0,o[g>>2]|0,32)|0;m=Es(p|0,I|0,h|0,m|0)|0;m=ks(s|0,f|0,m|0,I|0)|0;f=I;s=Os(0,o[l>>2]|0,32)|0;h=I;p=Os(0,o[w>>2]|0,32)|0;h=Es(p|0,I|0,s|0,h|0)|0;h=ks(m|0,f|0,h|0,I|0)|0;f=I;m=Os(0,o[t>>2]|0,32)|0;s=I;p=n+40|0;_=Os(0,o[p>>2]|0,32)|0;s=Es(_|0,I|0,m|0,s|0)|0;s=ks(h|0,f|0,s|0,I|0)|0;f=I;h=t+40|0;m=Os(0,o[h>>2]|0,32)|0;_=I;u=Os(0,o[n>>2]|0,32)|0;_=Es(u|0,I|0,m|0,_|0)|0;_=ks(s|0,f|0,_|0,I|0)|0;f=e+40|0;o[f>>2]=_;o[f+4>>2]=I;f=Os(0,o[a>>2]|0,32)|0;_=I;s=Os(0,o[v>>2]|0,32)|0;_=Es(s|0,I|0,f|0,_|0)|0;f=I;s=Os(0,o[b>>2]|0,32)|0;m=I;u=Os(0,o[p>>2]|0,32)|0;m=Es(u|0,I|0,s|0,m|0)|0;f=ks(m|0,I|0,_|0,f|0)|0;_=I;m=Os(0,o[h>>2]|0,32)|0;s=I;u=Os(0,o[w>>2]|0,32)|0;s=Es(u|0,I|0,m|0,s|0)|0;s=ks(f|0,_|0,s|0,I|0)|0;s=Cs(s|0,I|0,1)|0;_=I;f=Os(0,o[y>>2]|0,32)|0;m=I;u=Os(0,o[g>>2]|0,32)|0;m=Es(u|0,I|0,f|0,m|0)|0;m=ks(s|0,_|0,m|0,I|0)|0;_=I;s=Os(0,o[l>>2]|0,32)|0;f=I;u=Os(0,o[A>>2]|0,32)|0;f=Es(u|0,I|0,s|0,f|0)|0;f=ks(m|0,_|0,f|0,I|0)|0;_=I;m=Os(0,o[t>>2]|0,32)|0;s=I;u=n+48|0;E=Os(0,o[u>>2]|0,32)|0;s=Es(E|0,I|0,m|0,s|0)|0;s=ks(f|0,_|0,s|0,I|0)|0;_=I;f=t+48|0;m=Os(0,o[f>>2]|0,32)|0;E=I;d=Os(0,o[n>>2]|0,32)|0;E=Es(d|0,I|0,m|0,E|0)|0;E=ks(s|0,_|0,E|0,I|0)|0;_=e+48|0;o[_>>2]=E;o[_+4>>2]=I;_=Os(0,o[a>>2]|0,32)|0;E=I;s=Os(0,o[g>>2]|0,32)|0;E=Es(s|0,I|0,_|0,E|0)|0;_=I;s=Os(0,o[l>>2]|0,32)|0;m=I;d=Os(0,o[v>>2]|0,32)|0;m=Es(d|0,I|0,s|0,m|0)|0;_=ks(m|0,I|0,E|0,_|0)|0;E=I;m=Os(0,o[y>>2]|0,32)|0;s=I;d=Os(0,o[p>>2]|0,32)|0;s=Es(d|0,I|0,m|0,s|0)|0;s=ks(_|0,E|0,s|0,I|0)|0;E=I;_=Os(0,o[h>>2]|0,32)|0;m=I;d=Os(0,o[A>>2]|0,32)|0;m=Es(d|0,I|0,_|0,m|0)|0;m=ks(s|0,E|0,m|0,I|0)|0;E=I;s=Os(0,o[b>>2]|0,32)|0;_=I;d=Os(0,o[u>>2]|0,32)|0;_=Es(d|0,I|0,s|0,_|0)|0;_=ks(m|0,E|0,_|0,I|0)|0;E=I;m=Os(0,o[f>>2]|0,32)|0;s=I;d=Os(0,o[w>>2]|0,32)|0;s=Es(d|0,I|0,m|0,s|0)|0;s=ks(_|0,E|0,s|0,I|0)|0;E=I;_=Os(0,o[t>>2]|0,32)|0;m=I;d=n+56|0;k=Os(0,o[d>>2]|0,32)|0;m=Es(k|0,I|0,_|0,m|0)|0;m=ks(s|0,E|0,m|0,I|0)|0;E=I;s=t+56|0;_=Os(0,o[s>>2]|0,32)|0;k=I;c=Os(0,o[n>>2]|0,32)|0;k=Es(c|0,I|0,_|0,k|0)|0;k=ks(m|0,E|0,k|0,I|0)|0;E=e+56|0;o[E>>2]=k;o[E+4>>2]=I;E=Os(0,o[l>>2]|0,32)|0;k=I;m=Os(0,o[g>>2]|0,32)|0;k=Es(m|0,I|0,E|0,k|0)|0;E=I;m=Os(0,o[a>>2]|0,32)|0;_=I;c=Os(0,o[p>>2]|0,32)|0;_=Es(c|0,I|0,m|0,_|0)|0;m=I;c=Os(0,o[h>>2]|0,32)|0;i=I;r=Os(0,o[v>>2]|0,32)|0;i=Es(r|0,I|0,c|0,i|0)|0;m=ks(i|0,I|0,_|0,m|0)|0;_=I;i=Os(0,o[b>>2]|0,32)|0;c=I;r=Os(0,o[d>>2]|0,32)|0;c=Es(r|0,I|0,i|0,c|0)|0;c=ks(m|0,_|0,c|0,I|0)|0;_=I;m=Os(0,o[s>>2]|0,32)|0;i=I;r=Os(0,o[w>>2]|0,32)|0;i=Es(r|0,I|0,m|0,i|0)|0;i=ks(c|0,_|0,i|0,I|0)|0;i=Cs(i|0,I|0,1)|0;E=ks(i|0,I|0,k|0,E|0)|0;k=I;i=Os(0,o[y>>2]|0,32)|0;_=I;c=Os(0,o[u>>2]|0,32)|0;_=Es(c|0,I|0,i|0,_|0)|0;_=ks(E|0,k|0,_|0,I|0)|0;k=I;E=Os(0,o[f>>2]|0,32)|0;i=I;c=Os(0,o[A>>2]|0,32)|0;i=Es(c|0,I|0,E|0,i|0)|0;i=ks(_|0,k|0,i|0,I|0)|0;k=I;_=Os(0,o[t>>2]|0,32)|0;E=I;c=n+64|0;m=Os(0,o[c>>2]|0,32)|0;E=Es(m|0,I|0,_|0,E|0)|0;E=ks(i|0,k|0,E|0,I|0)|0;k=I;i=t+64|0;_=Os(0,o[i>>2]|0,32)|0;m=I;r=Os(0,o[n>>2]|0,32)|0;m=Es(r|0,I|0,_|0,m|0)|0;m=ks(E|0,k|0,m|0,I|0)|0;k=e+64|0;o[k>>2]=m;o[k+4>>2]=I;k=Os(0,o[l>>2]|0,32)|0;m=I;E=Os(0,o[p>>2]|0,32)|0;m=Es(E|0,I|0,k|0,m|0)|0;k=I;E=Os(0,o[h>>2]|0,32)|0;_=I;r=Os(0,o[g>>2]|0,32)|0;_=Es(r|0,I|0,E|0,_|0)|0;k=ks(_|0,I|0,m|0,k|0)|0;m=I;_=Os(0,o[a>>2]|0,32)|0;E=I;r=Os(0,o[u>>2]|0,32)|0;E=Es(r|0,I|0,_|0,E|0)|0;E=ks(k|0,m|0,E|0,I|0)|0;m=I;k=Os(0,o[f>>2]|0,32)|0;_=I;r=Os(0,o[v>>2]|0,32)|0;_=Es(r|0,I|0,k|0,_|0)|0;_=ks(E|0,m|0,_|0,I|0)|0;m=I;E=Os(0,o[y>>2]|0,32)|0;k=I;r=Os(0,o[d>>2]|0,32)|0;k=Es(r|0,I|0,E|0,k|0)|0;k=ks(_|0,m|0,k|0,I|0)|0;m=I;_=Os(0,o[s>>2]|0,32)|0;E=I;r=Os(0,o[A>>2]|0,32)|0;E=Es(r|0,I|0,_|0,E|0)|0;E=ks(k|0,m|0,E|0,I|0)|0;m=I;k=Os(0,o[b>>2]|0,32)|0;_=I;r=Os(0,o[c>>2]|0,32)|0;_=Es(r|0,I|0,k|0,_|0)|0;_=ks(E|0,m|0,_|0,I|0)|0;m=I;E=Os(0,o[i>>2]|0,32)|0;k=I;r=Os(0,o[w>>2]|0,32)|0;k=Es(r|0,I|0,E|0,k|0)|0;k=ks(_|0,m|0,k|0,I|0)|0;m=I;_=Os(0,o[t>>2]|0,32)|0;E=I;r=n+72|0;S=Os(0,o[r>>2]|0,32)|0;E=Es(S|0,I|0,_|0,E|0)|0;E=ks(k|0,m|0,E|0,I|0)|0;m=I;t=t+72|0;k=Os(0,o[t>>2]|0,32)|0;_=I;n=Os(0,o[n>>2]|0,32)|0;_=Es(n|0,I|0,k|0,_|0)|0;_=ks(E|0,m|0,_|0,I|0)|0;n=e+72|0;o[n>>2]=_;o[n+4>>2]=I;n=Os(0,o[h>>2]|0,32)|0;_=I;m=Os(0,o[p>>2]|0,32)|0;_=Es(m|0,I|0,n|0,_|0)|0;n=I;m=Os(0,o[a>>2]|0,32)|0;E=I;k=Os(0,o[d>>2]|0,32)|0;E=Es(k|0,I|0,m|0,E|0)|0;n=ks(E|0,I|0,_|0,n|0)|0;_=I;E=Os(0,o[s>>2]|0,32)|0;m=I;k=Os(0,o[v>>2]|0,32)|0;m=Es(k|0,I|0,E|0,m|0)|0;m=ks(n|0,_|0,m|0,I|0)|0;_=I;n=Os(0,o[b>>2]|0,32)|0;b=I;E=Os(0,o[r>>2]|0,32)|0;b=Es(E|0,I|0,n|0,b|0)|0;b=ks(m|0,_|0,b|0,I|0)|0;_=I;m=Os(0,o[t>>2]|0,32)|0;n=I;w=Os(0,o[w>>2]|0,32)|0;n=Es(w|0,I|0,m|0,n|0)|0;n=ks(b|0,_|0,n|0,I|0)|0;n=Cs(n|0,I|0,1)|0;_=I;b=Os(0,o[l>>2]|0,32)|0;m=I;w=Os(0,o[u>>2]|0,32)|0;m=Es(w|0,I|0,b|0,m|0)|0;m=ks(n|0,_|0,m|0,I|0)|0;_=I;n=Os(0,o[f>>2]|0,32)|0;b=I;w=Os(0,o[g>>2]|0,32)|0;b=Es(w|0,I|0,n|0,b|0)|0;b=ks(m|0,_|0,b|0,I|0)|0;_=I;m=Os(0,o[y>>2]|0,32)|0;n=I;w=Os(0,o[c>>2]|0,32)|0;n=Es(w|0,I|0,m|0,n|0)|0;n=ks(b|0,_|0,n|0,I|0)|0;_=I;b=Os(0,o[i>>2]|0,32)|0;m=I;w=Os(0,o[A>>2]|0,32)|0;m=Es(w|0,I|0,b|0,m|0)|0;m=ks(n|0,_|0,m|0,I|0)|0;_=e+80|0;o[_>>2]=m;o[_+4>>2]=I;_=Os(0,o[h>>2]|0,32)|0;m=I;n=Os(0,o[u>>2]|0,32)|0;m=Es(n|0,I|0,_|0,m|0)|0;_=I;n=Os(0,o[f>>2]|0,32)|0;b=I;w=Os(0,o[p>>2]|0,32)|0;b=Es(w|0,I|0,n|0,b|0)|0;_=ks(b|0,I|0,m|0,_|0)|0;m=I;b=Os(0,o[l>>2]|0,32)|0;n=I;w=Os(0,o[d>>2]|0,32)|0;n=Es(w|0,I|0,b|0,n|0)|0;n=ks(_|0,m|0,n|0,I|0)|0;m=I;_=Os(0,o[s>>2]|0,32)|0;b=I;w=Os(0,o[g>>2]|0,32)|0;b=Es(w|0,I|0,_|0,b|0)|0;b=ks(n|0,m|0,b|0,I|0)|0;m=I;n=Os(0,o[a>>2]|0,32)|0;_=I;w=Os(0,o[c>>2]|0,32)|0;_=Es(w|0,I|0,n|0,_|0)|0;_=ks(b|0,m|0,_|0,I|0)|0;m=I;b=Os(0,o[i>>2]|0,32)|0;n=I;w=Os(0,o[v>>2]|0,32)|0;n=Es(w|0,I|0,b|0,n|0)|0;n=ks(_|0,m|0,n|0,I|0)|0;m=I;y=Os(0,o[y>>2]|0,32)|0;_=I;b=Os(0,o[r>>2]|0,32)|0;_=Es(b|0,I|0,y|0,_|0)|0;_=ks(n|0,m|0,_|0,I|0)|0;m=I;n=Os(0,o[t>>2]|0,32)|0;y=I;A=Os(0,o[A>>2]|0,32)|0;y=Es(A|0,I|0,n|0,y|0)|0;y=ks(_|0,m|0,y|0,I|0)|0;m=e+88|0;o[m>>2]=y;o[m+4>>2]=I;m=Os(0,o[f>>2]|0,32)|0;y=I;_=Os(0,o[u>>2]|0,32)|0;y=Es(_|0,I|0,m|0,y|0)|0;m=I;_=Os(0,o[h>>2]|0,32)|0;n=I;A=Os(0,o[d>>2]|0,32)|0;n=Es(A|0,I|0,_|0,n|0)|0;_=I;A=Os(0,o[s>>2]|0,32)|0;b=I;w=Os(0,o[p>>2]|0,32)|0;b=Es(w|0,I|0,A|0,b|0)|0;_=ks(b|0,I|0,n|0,_|0)|0;n=I;a=Os(0,o[a>>2]|0,32)|0;b=I;A=Os(0,o[r>>2]|0,32)|0;b=Es(A|0,I|0,a|0,b|0)|0;b=ks(_|0,n|0,b|0,I|0)|0;n=I;_=Os(0,o[t>>2]|0,32)|0;a=I;v=Os(0,o[v>>2]|0,32)|0;a=Es(v|0,I|0,_|0,a|0)|0;a=ks(b|0,n|0,a|0,I|0)|0;a=Cs(a|0,I|0,1)|0;m=ks(a|0,I|0,y|0,m|0)|0;y=I;a=Os(0,o[l>>2]|0,32)|0;n=I;b=Os(0,o[c>>2]|0,32)|0;n=Es(b|0,I|0,a|0,n|0)|0;n=ks(m|0,y|0,n|0,I|0)|0;y=I;m=Os(0,o[i>>2]|0,32)|0;a=I;b=Os(0,o[g>>2]|0,32)|0;a=Es(b|0,I|0,m|0,a|0)|0;a=ks(n|0,y|0,a|0,I|0)|0;y=e+96|0;o[y>>2]=a;o[y+4>>2]=I;y=Os(0,o[f>>2]|0,32)|0;a=I;n=Os(0,o[d>>2]|0,32)|0;a=Es(n|0,I|0,y|0,a|0)|0;y=I;n=Os(0,o[s>>2]|0,32)|0;m=I;b=Os(0,o[u>>2]|0,32)|0;m=Es(b|0,I|0,n|0,m|0)|0;y=ks(m|0,I|0,a|0,y|0)|0;a=I;m=Os(0,o[h>>2]|0,32)|0;n=I;b=Os(0,o[c>>2]|0,32)|0;n=Es(b|0,I|0,m|0,n|0)|0;n=ks(y|0,a|0,n|0,I|0)|0;a=I;y=Os(0,o[i>>2]|0,32)|0;m=I;b=Os(0,o[p>>2]|0,32)|0;m=Es(b|0,I|0,y|0,m|0)|0;m=ks(n|0,a|0,m|0,I|0)|0;a=I;l=Os(0,o[l>>2]|0,32)|0;n=I;y=Os(0,o[r>>2]|0,32)|0;n=Es(y|0,I|0,l|0,n|0)|0;n=ks(m|0,a|0,n|0,I|0)|0;a=I;m=Os(0,o[t>>2]|0,32)|0;l=I;g=Os(0,o[g>>2]|0,32)|0;l=Es(g|0,I|0,m|0,l|0)|0;l=ks(n|0,a|0,l|0,I|0)|0;a=e+104|0;o[a>>2]=l;o[a+4>>2]=I;a=Os(0,o[s>>2]|0,32)|0;l=I;n=Os(0,o[d>>2]|0,32)|0;l=Es(n|0,I|0,a|0,l|0)|0;a=I;n=Os(0,o[h>>2]|0,32)|0;h=I;m=Os(0,o[r>>2]|0,32)|0;h=Es(m|0,I|0,n|0,h|0)|0;a=ks(h|0,I|0,l|0,a|0)|0;l=I;h=Os(0,o[t>>2]|0,32)|0;n=I;p=Os(0,o[p>>2]|0,32)|0;n=Es(p|0,I|0,h|0,n|0)|0;n=ks(a|0,l|0,n|0,I|0)|0;n=Cs(n|0,I|0,1)|0;l=I;a=Os(0,o[f>>2]|0,32)|0;h=I;p=Os(0,o[c>>2]|0,32)|0;h=Es(p|0,I|0,a|0,h|0)|0;h=ks(n|0,l|0,h|0,I|0)|0;l=I;n=Os(0,o[i>>2]|0,32)|0;a=I;p=Os(0,o[u>>2]|0,32)|0;a=Es(p|0,I|0,n|0,a|0)|0;a=ks(h|0,l|0,a|0,I|0)|0;l=e+112|0;o[l>>2]=a;o[l+4>>2]=I;l=Os(0,o[s>>2]|0,32)|0;a=I;h=Os(0,o[c>>2]|0,32)|0;a=Es(h|0,I|0,l|0,a|0)|0;l=I;h=Os(0,o[i>>2]|0,32)|0;n=I;p=Os(0,o[d>>2]|0,32)|0;n=Es(p|0,I|0,h|0,n|0)|0;l=ks(n|0,I|0,a|0,l|0)|0;a=I;n=Os(0,o[f>>2]|0,32)|0;f=I;h=Os(0,o[r>>2]|0,32)|0;f=Es(h|0,I|0,n|0,f|0)|0;f=ks(l|0,a|0,f|0,I|0)|0;a=I;l=Os(0,o[t>>2]|0,32)|0;n=I;u=Os(0,o[u>>2]|0,32)|0;n=Es(u|0,I|0,l|0,n|0)|0;n=ks(f|0,a|0,n|0,I|0)|0;a=e+120|0;o[a>>2]=n;o[a+4>>2]=I;a=Os(0,o[i>>2]|0,32)|0;n=I;f=Os(0,o[c>>2]|0,32)|0;n=Es(f|0,I|0,a|0,n|0)|0;a=I;s=Os(0,o[s>>2]|0,32)|0;f=I;l=Os(0,o[r>>2]|0,32)|0;f=Es(l|0,I|0,s|0,f|0)|0;s=I;l=Os(0,o[t>>2]|0,32)|0;u=I;d=Os(0,o[d>>2]|0,32)|0;u=Es(d|0,I|0,l|0,u|0)|0;s=ks(u|0,I|0,f|0,s|0)|0;s=Cs(s|0,I|0,1)|0;a=ks(s|0,I|0,n|0,a|0)|0;n=e+128|0;o[n>>2]=a;o[n+4>>2]=I;i=Os(0,o[i>>2]|0,32)|0;n=I;a=Os(0,o[r>>2]|0,32)|0;n=Es(a|0,I|0,i|0,n|0)|0;i=I;a=Os(0,o[t>>2]|0,32)|0;s=I;c=Os(0,o[c>>2]|0,32)|0;s=Es(c|0,I|0,a|0,s|0)|0;i=ks(s|0,I|0,n|0,i|0)|0;n=e+136|0;o[n>>2]=i;o[n+4>>2]=I;n=Os(0,o[t>>2]|0,31)|0;t=I;r=Os(0,o[r>>2]|0,32)|0;t=Es(r|0,I|0,n|0,t|0)|0;n=e+144|0;o[n>>2]=t;o[n+4>>2]=I;return}function Bo(e){e=e|0;var t=0,n=0,r=0,i=0,s=0,a=0,c=0,f=0,u=0;t=e+80|0;s=t;o[s>>2]=0;o[s+4>>2]=0;s=e;f=o[s>>2]|0;s=o[s+4>>2]|0;n=ks(f|0,s|0,s>>31>>>6|0,0)|0;a=I;i=Os(n|0,a|0,26)|0;u=I;a=Ss(f|0,s|0,n&-67108864|0,a|0)|0;n=e;o[n>>2]=a;o[n+4>>2]=I;n=e+8|0;a=n;a=ks(i|0,u|0,o[a>>2]|0,o[a+4>>2]|0)|0;u=I;i=ks(a|0,u|0,u>>31>>>7|0,0)|0;s=I;f=Os(i|0,s|0,25)|0;r=I;s=Ss(a|0,u|0,i&-33554432|0,s|0)|0;i=n;o[i>>2]=s;o[i+4>>2]=I;i=e+16|0;s=i;s=ks(f|0,r|0,o[s>>2]|0,o[s+4>>2]|0)|0;r=I;f=ks(s|0,r|0,r>>31>>>6|0,0)|0;u=I;a=Os(f|0,u|0,26)|0;c=I;u=Ss(s|0,r|0,f&-67108864|0,u|0)|0;o[i>>2]=u;o[i+4>>2]=I;i=e+24|0;u=i;u=ks(a|0,c|0,o[u>>2]|0,o[u+4>>2]|0)|0;c=I;a=ks(u|0,c|0,c>>31>>>7|0,0)|0;f=I;r=Os(a|0,f|0,25)|0;s=I;f=Ss(u|0,c|0,a&-33554432|0,f|0)|0;o[i>>2]=f;o[i+4>>2]=I;i=e+32|0;f=i;f=ks(r|0,s|0,o[f>>2]|0,o[f+4>>2]|0)|0;s=I;r=ks(f|0,s|0,s>>31>>>6|0,0)|0;a=I;c=Os(r|0,a|0,26)|0;u=I;a=Ss(f|0,s|0,r&-67108864|0,a|0)|0;o[i>>2]=a;o[i+4>>2]=I;i=e+40|0;a=i;a=ks(c|0,u|0,o[a>>2]|0,o[a+4>>2]|0)|0;u=I;c=ks(a|0,u|0,u>>31>>>7|0,0)|0;r=I;s=Os(c|0,r|0,25)|0;f=I;r=Ss(a|0,u|0,c&-33554432|0,r|0)|0;o[i>>2]=r;o[i+4>>2]=I;i=e+48|0;r=i;r=ks(s|0,f|0,o[r>>2]|0,o[r+4>>2]|0)|0;f=I;s=ks(r|0,f|0,f>>31>>>6|0,0)|0;c=I;u=Os(s|0,c|0,26)|0;a=I;c=Ss(r|0,f|0,s&-67108864|0,c|0)|0;o[i>>2]=c;o[i+4>>2]=I;i=e+56|0;c=i;c=ks(u|0,a|0,o[c>>2]|0,o[c+4>>2]|0)|0;a=I;u=ks(c|0,a|0,a>>31>>>7|0,0)|0;s=I;f=Os(u|0,s|0,25)|0;r=I;s=Ss(c|0,a|0,u&-33554432|0,s|0)|0;o[i>>2]=s;o[i+4>>2]=I;i=e+64|0;s=i;s=ks(f|0,r|0,o[s>>2]|0,o[s+4>>2]|0)|0;r=I;f=ks(s|0,r|0,r>>31>>>6|0,0)|0;u=I;a=Os(f|0,u|0,26)|0;c=I;u=Ss(s|0,r|0,f&-67108864|0,u|0)|0;o[i>>2]=u;o[i+4>>2]=I;i=e+72|0;u=i;u=ks(a|0,c|0,o[u>>2]|0,o[u+4>>2]|0)|0;c=I;a=ks(u|0,c|0,c>>31>>>7|0,0)|0;f=I;r=Os(a|0,f|0,25)|0;s=I;f=Ss(u|0,c|0,a&-33554432|0,f|0)|0;o[i>>2]=f;o[i+4>>2]=I;i=t;i=ks(r|0,s|0,o[i>>2]|0,o[i+4>>2]|0)|0;s=I;r=e;f=o[r>>2]|0;r=o[r+4>>2]|0;a=Es(i|0,s|0,18,0)|0;c=I;s=ks(f|0,r|0,i|0,s|0)|0;c=ks(s|0,I|0,a|0,c|0)|0;a=I;o[t>>2]=0;o[t+4>>2]=0;t=ks(c|0,a|0,a>>31>>>6|0,0)|0;s=I;i=Os(t|0,s|0,26)|0;r=I;s=Ss(c|0,a|0,t&-67108864|0,s|0)|0;t=e;o[t>>2]=s;o[t+4>>2]=I;t=n;t=ks(i|0,r|0,o[t>>2]|0,o[t+4>>2]|0)|0;e=n;o[e>>2]=t;o[e+4>>2]=I;return}function No(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0,B=0,N=0,j=0,U=0,L=0,F=0,q=0,K=0,z=0,G=0,H=0,V=0,Q=0,W=0,Y=0,X=0,J=0,Z=0,$=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,se=0,ae=0,ce=0;r=h;h=h+160|0;n=r;q=o[t>>2]|0;y=Os(0,q|0,32)|0;c=I;a=Es(y|0,c|0,y|0,c|0)|0;s=I;B=n;o[B>>2]=a;o[B+4>>2]=s;q=Os(0,q|0,31)|0;B=I;H=o[t+8>>2]|0;E=Os(0,H|0,32)|0;d=I;m=Es(E|0,d|0,q|0,B|0)|0;p=I;u=n+8|0;A=u;o[A>>2]=m;o[A+4>>2]=p;A=Es(E|0,d|0,E|0,d|0)|0;w=I;g=Os(0,o[t+16>>2]|0,32)|0;l=I;b=Es(g|0,l|0,y|0,c|0)|0;w=ks(b|0,I|0,A|0,w|0)|0;w=Cs(w|0,I|0,1)|0;A=I;b=n+16|0;T=b;o[T>>2]=w;o[T+4>>2]=A;T=Es(g|0,l|0,E|0,d|0)|0;R=I;ce=Os(0,o[t+24>>2]|0,32)|0;ae=I;v=Es(ce|0,ae|0,y|0,c|0)|0;R=ks(v|0,I|0,T|0,R|0)|0;R=Cs(R|0,I|0,1)|0;T=I;v=n+24|0;D=v;o[D>>2]=R;o[D+4>>2]=T;D=Es(g|0,l|0,g|0,l|0)|0;C=I;O=Os(0,H|0,30)|0;O=Es(ce|0,ae|0,O|0,I|0)|0;C=ks(O|0,I|0,D|0,C|0)|0;D=I;O=Os(0,o[t+32>>2]|0,32)|0;_=I;B=Es(O|0,_|0,q|0,B|0)|0;B=ks(C|0,D|0,B|0,I|0)|0;D=I;C=n+32|0;q=C;o[q>>2]=B;o[q+4>>2]=D;q=Es(ce|0,ae|0,g|0,l|0)|0;U=I;P=Es(O|0,_|0,E|0,d|0)|0;U=ks(P|0,I|0,q|0,U|0)|0;q=I;P=o[t+40>>2]|0;j=Os(0,P|0,32)|0;M=I;K=Es(j|0,M|0,y|0,c|0)|0;K=ks(U|0,q|0,K|0,I|0)|0;K=Cs(K|0,I|0,1)|0;q=I;U=n+40|0;$=U;o[$>>2]=K;o[$+4>>2]=q;$=Es(ce|0,ae|0,ce|0,ae|0)|0;te=I;z=Es(O|0,_|0,g|0,l|0)|0;te=ks(z|0,I|0,$|0,te|0)|0;$=I;z=Os(0,o[t+48>>2]|0,32)|0;G=I;W=Es(z|0,G|0,y|0,c|0)|0;Y=I;H=Os(0,H|0,31)|0;H=Es(j|0,M|0,H|0,I|0)|0;H=ks(te|0,$|0,H|0,I|0)|0;Y=ks(H|0,I|0,W|0,Y|0)|0;Y=Cs(Y|0,I|0,1)|0;W=I;H=n+48|0;$=H;o[$>>2]=Y;o[$+4>>2]=W;$=Es(O|0,_|0,ce|0,ae|0)|0;te=I;Q=Es(j|0,M|0,g|0,l|0)|0;te=ks(Q|0,I|0,$|0,te|0)|0;$=I;Q=Es(z|0,G|0,E|0,d|0)|0;Q=ks(te|0,$|0,Q|0,I|0)|0;$=I;te=o[t+56>>2]|0;L=Os(0,te|0,32)|0;F=I;ee=Es(L|0,F|0,y|0,c|0)|0;ee=ks(Q|0,$|0,ee|0,I|0)|0;ee=Cs(ee|0,I|0,1)|0;$=I;Q=n+56|0;V=Q;o[V>>2]=ee;o[V+4>>2]=$;V=Es(O|0,_|0,O|0,_|0)|0;Z=I;i=Es(z|0,G|0,g|0,l|0)|0;oe=I;ne=o[t+64>>2]|0;J=Os(0,ne|0,32)|0;X=I;ie=Es(J|0,X|0,y|0,c|0)|0;oe=ks(ie|0,I|0,i|0,oe|0)|0;i=I;ie=Es(L|0,F|0,E|0,d|0)|0;re=I;f=Es(j|0,M|0,ce|0,ae|0)|0;f=ks(ie|0,re|0,f|0,I|0)|0;f=Cs(f|0,I|0,1)|0;f=ks(oe|0,i|0,f|0,I|0)|0;f=Cs(f|0,I|0,1)|0;Z=ks(f|0,I|0,V|0,Z|0)|0;V=I;f=Es(j|0,M|0,O|0,_|0)|0;i=I;oe=Es(z|0,G|0,ce|0,ae|0)|0;i=ks(oe|0,I|0,f|0,i|0)|0;f=I;oe=Es(L|0,F|0,g|0,l|0)|0;oe=ks(i|0,f|0,oe|0,I|0)|0;f=I;i=Es(J|0,X|0,E|0,d|0)|0;i=ks(oe|0,f|0,i|0,I|0)|0;f=I;oe=o[t+72>>2]|0;re=Os(0,oe|0,32)|0;ie=I;c=Es(re|0,ie|0,y|0,c|0)|0;c=ks(i|0,f|0,c|0,I|0)|0;c=Cs(c|0,I|0,1)|0;t=n+72|0;o[t>>2]=c;o[t+4>>2]=I;t=Es(j|0,M|0,j|0,M|0)|0;c=I;f=Es(z|0,G|0,O|0,_|0)|0;c=ks(f|0,I|0,t|0,c|0)|0;t=I;f=Es(J|0,X|0,g|0,l|0)|0;f=ks(c|0,t|0,f|0,I|0)|0;t=I;c=Es(L|0,F|0,ce|0,ae|0)|0;i=I;d=Es(re|0,ie|0,E|0,d|0)|0;i=ks(d|0,I|0,c|0,i|0)|0;i=Cs(i|0,I|0,1)|0;i=ks(f|0,t|0,i|0,I|0)|0;t=I;f=Cs(i|0,t|0,1)|0;c=I;d=n+80|0;o[d>>2]=f;o[d+4>>2]=c;d=Es(z|0,G|0,j|0,M|0)|0;E=I;y=Es(L|0,F|0,O|0,_|0)|0;E=ks(y|0,I|0,d|0,E|0)|0;d=I;y=Es(J|0,X|0,ce|0,ae|0)|0;y=ks(E|0,d|0,y|0,I|0)|0;d=I;l=Es(re|0,ie|0,g|0,l|0)|0;l=ks(y|0,d|0,l|0,I|0)|0;d=I;y=Cs(l|0,d|0,1)|0;g=I;E=n+88|0;o[E>>2]=y;o[E+4>>2]=g;E=Es(z|0,G|0,z|0,G|0)|0;k=I;x=Es(J|0,X|0,O|0,_|0)|0;S=I;se=Es(L|0,F|0,j|0,M|0)|0;N=I;ae=Es(re|0,ie|0,ce|0,ae|0)|0;N=ks(ae|0,I|0,se|0,N|0)|0;N=Cs(N|0,I|0,1)|0;S=ks(N|0,I|0,x|0,S|0)|0;S=Cs(S|0,I|0,1)|0;k=ks(S|0,I|0,E|0,k|0)|0;E=I;S=n+96|0;o[S>>2]=k;o[S+4>>2]=E;S=Es(L|0,F|0,z|0,G|0)|0;x=I;M=Es(J|0,X|0,j|0,M|0)|0;x=ks(M|0,I|0,S|0,x|0)|0;S=I;_=Es(re|0,ie|0,O|0,_|0)|0;_=ks(x|0,S|0,_|0,I|0)|0;S=I;x=Cs(_|0,S|0,1)|0;O=I;M=n+104|0;o[M>>2]=x;o[M+4>>2]=O;M=Es(L|0,F|0,L|0,F|0)|0;j=I;N=Es(J|0,X|0,z|0,G|0)|0;j=ks(N|0,I|0,M|0,j|0)|0;M=I;P=Os(0,P|0,31)|0;P=Es(re|0,ie|0,P|0,I|0)|0;P=ks(j|0,M|0,P|0,I|0)|0;M=I;j=Cs(P|0,M|0,1)|0;N=I;se=n+112|0;o[se>>2]=j;o[se+4>>2]=N;F=Es(J|0,X|0,L|0,F|0)|0;L=I;G=Es(re|0,ie|0,z|0,G|0)|0;L=ks(G|0,I|0,F|0,L|0)|0;F=I;G=Cs(L|0,F|0,1)|0;z=I;se=n+120|0;o[se>>2]=G;o[se+4>>2]=z;X=Es(J|0,X|0,J|0,X|0)|0;J=I;te=Os(0,te|0,30)|0;te=Es(re|0,ie|0,te|0,I|0)|0;J=ks(te|0,I|0,X|0,J|0)|0;X=I;te=n+128|0;o[te>>2]=J;o[te+4>>2]=X;ne=Os(0,ne|0,31)|0;ne=Es(re|0,ie|0,ne|0,I|0)|0;te=I;se=n+136|0;o[se>>2]=ne;o[se+4>>2]=te;oe=Os(0,oe|0,31)|0;ie=Es(oe|0,I|0,re|0,ie|0)|0;re=I;oe=n+144|0;o[oe>>2]=ie;o[oe+4>>2]=re;re=Es(ie|0,re|0,19,0)|0;V=ks(re|0,I|0,Z|0,V|0)|0;Z=n+64|0;o[Z>>2]=V;o[Z+4>>2]=I;Z=Es(ne|0,te|0,18,0)|0;V=I;$=ks(ne|0,te|0,ee|0,$|0)|0;V=ks($|0,I|0,Z|0,V|0)|0;o[Q>>2]=V;o[Q+4>>2]=I;Q=Es(J|0,X|0,18,0)|0;V=I;W=ks(J|0,X|0,Y|0,W|0)|0;V=ks(W|0,I|0,Q|0,V|0)|0;o[H>>2]=V;o[H+4>>2]=I;F=Es(L|0,F|0,36,0)|0;L=I;q=ks(G|0,z|0,K|0,q|0)|0;L=ks(q|0,I|0,F|0,L|0)|0;o[U>>2]=L;o[U+4>>2]=I;M=Es(P|0,M|0,36,0)|0;P=I;D=ks(j|0,N|0,B|0,D|0)|0;P=ks(D|0,I|0,M|0,P|0)|0;o[C>>2]=P;o[C+4>>2]=I;S=Es(_|0,S|0,36,0)|0;_=I;T=ks(x|0,O|0,R|0,T|0)|0;_=ks(T|0,I|0,S|0,_|0)|0;o[v>>2]=_;o[v+4>>2]=I;v=Es(k|0,E|0,18,0)|0;_=I;A=ks(k|0,E|0,w|0,A|0)|0;_=ks(A|0,I|0,v|0,_|0)|0;o[b>>2]=_;o[b+4>>2]=I;d=Es(l|0,d|0,36,0)|0;l=I;p=ks(y|0,g|0,m|0,p|0)|0;l=ks(p|0,I|0,d|0,l|0)|0;o[u>>2]=l;o[u+4>>2]=I;t=Es(i|0,t|0,36,0)|0;i=I;s=ks(f|0,c|0,a|0,s|0)|0;i=ks(s|0,I|0,t|0,i|0)|0;t=n;o[t>>2]=i;o[t+4>>2]=I;Bo(n);t=n;n=e+80|0;do{o[e>>2]=o[t>>2];e=e+4|0;t=t+4|0}while((e|0)<(n|0));h=r;return}function jo(e){e=e|0;var t=0,n=0,r=0,i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0;E=h;h=h+16|0;p=E;do{if(e>>>0<245){u=e>>>0<11?16:e+11&-8;e=u>>>3;d=o[9632]|0;n=d>>>e;if(n&3|0){t=(n&1^1)+e|0;e=38568+(t<<1<<2)|0;n=e+8|0;r=o[n>>2]|0;i=r+8|0;s=o[i>>2]|0;if((s|0)==(e|0))o[9632]=d&~(1<>2]=e;o[n>>2]=s}w=t<<3;o[r+4>>2]=w|3;w=r+w+4|0;o[w>>2]=o[w>>2]|1;w=i;h=E;return w|0}l=o[9634]|0;if(u>>>0>l>>>0){if(n|0){t=2<>>12&16;t=t>>>c;n=t>>>5&8;t=t>>>n;s=t>>>2&4;t=t>>>s;e=t>>>1&2;t=t>>>e;r=t>>>1&1;r=(n|c|s|e|r)+(t>>>r)|0;t=38568+(r<<1<<2)|0;e=t+8|0;s=o[e>>2]|0;c=s+8|0;n=o[c>>2]|0;if((n|0)==(t|0)){e=d&~(1<>2]=t;o[e>>2]=n;e=d}w=r<<3;a=w-u|0;o[s+4>>2]=u|3;i=s+u|0;o[i+4>>2]=a|1;o[s+w>>2]=a;if(l|0){r=o[9637]|0;t=l>>>3;n=38568+(t<<1<<2)|0;t=1<>2]|0}o[e>>2]=r;o[t+12>>2]=r;o[r+8>>2]=t;o[r+12>>2]=n}o[9634]=a;o[9637]=i;w=c;h=E;return w|0}s=o[9633]|0;if(s){n=(s&0-s)+-1|0;i=n>>>12&16;n=n>>>i;r=n>>>5&8;n=n>>>r;a=n>>>2&4;n=n>>>a;c=n>>>1&2;n=n>>>c;f=n>>>1&1;f=o[38832+((r|i|a|c|f)+(n>>>f)<<2)>>2]|0;n=f;c=f;f=(o[f+4>>2]&-8)-u|0;while(1){e=o[n+16>>2]|0;if(!e){e=o[n+20>>2]|0;if(!e)break}a=(o[e+4>>2]&-8)-u|0;i=a>>>0>>0;n=e;c=i?e:c;f=i?a:f}a=c+u|0;if(a>>>0>c>>>0){i=o[c+24>>2]|0;t=o[c+12>>2]|0;do{if((t|0)==(c|0)){e=c+20|0;t=o[e>>2]|0;if(!t){e=c+16|0;t=o[e>>2]|0;if(!t){n=0;break}}while(1){r=t+20|0;n=o[r>>2]|0;if(!n){r=t+16|0;n=o[r>>2]|0;if(!n)break;else{t=n;e=r}}else{t=n;e=r}}o[e>>2]=0;n=t}else{n=o[c+8>>2]|0;o[n+12>>2]=t;o[t+8>>2]=n;n=t}}while(0);do{if(i|0){t=o[c+28>>2]|0;e=38832+(t<<2)|0;if((c|0)==(o[e>>2]|0)){o[e>>2]=n;if(!n){o[9633]=s&~(1<>2]|0)==(c|0)?w:i+20|0)>>2]=n;if(!n)break}o[n+24>>2]=i;t=o[c+16>>2]|0;if(t|0){o[n+16>>2]=t;o[t+24>>2]=n}t=o[c+20>>2]|0;if(t|0){o[n+20>>2]=t;o[t+24>>2]=n}}}while(0);if(f>>>0<16){w=f+u|0;o[c+4>>2]=w|3;w=c+w+4|0;o[w>>2]=o[w>>2]|1}else{o[c+4>>2]=u|3;o[a+4>>2]=f|1;o[a+f>>2]=f;if(l|0){r=o[9637]|0;t=l>>>3;n=38568+(t<<1<<2)|0;t=1<>2]|0}o[e>>2]=r;o[t+12>>2]=r;o[r+8>>2]=t;o[r+12>>2]=n}o[9634]=f;o[9637]=a}w=c+8|0;h=E;return w|0}else d=u}else d=u}else d=u}else if(e>>>0<=4294967231){e=e+11|0;u=e&-8;r=o[9633]|0;if(r){i=0-u|0;e=e>>>8;if(e)if(u>>>0>16777215)f=31;else{d=(e+1048320|0)>>>16&8;y=e<>>16&4;y=y<>>16&2;f=14-(c|d|f)+(y<>>15)|0;f=u>>>(f+7|0)&1|f<<1}else f=0;n=o[38832+(f<<2)>>2]|0;e:do{if(!n){n=0;e=0;y=61}else{e=0;c=u<<((f|0)==31?0:25-(f>>>1)|0);s=0;while(1){a=(o[n+4>>2]&-8)-u|0;if(a>>>0>>0)if(!a){e=n;i=0;y=65;break e}else{e=n;i=a}y=o[n+20>>2]|0;n=o[n+16+(c>>>31<<2)>>2]|0;s=(y|0)==0|(y|0)==(n|0)?s:y;if(!n){n=s;y=61;break}else c=c<<1}}}while(0);if((y|0)==61){if((n|0)==0&(e|0)==0){e=2<>>12&16;d=d>>>a;s=d>>>5&8;d=d>>>s;c=d>>>2&4;d=d>>>c;f=d>>>1&2;d=d>>>f;n=d>>>1&1;e=0;n=o[38832+((s|a|c|f|n)+(d>>>n)<<2)>>2]|0}if(!n){c=e;a=i}else y=65}if((y|0)==65){s=n;while(1){d=(o[s+4>>2]&-8)-u|0;n=d>>>0>>0;i=n?d:i;e=n?s:e;n=o[s+16>>2]|0;if(!n)n=o[s+20>>2]|0;if(!n){c=e;a=i;break}else s=n}}if(((c|0)!=0?a>>>0<((o[9634]|0)-u|0)>>>0:0)?(l=c+u|0,l>>>0>c>>>0):0){s=o[c+24>>2]|0;t=o[c+12>>2]|0;do{if((t|0)==(c|0)){e=c+20|0;t=o[e>>2]|0;if(!t){e=c+16|0;t=o[e>>2]|0;if(!t){t=0;break}}while(1){i=t+20|0;n=o[i>>2]|0;if(!n){i=t+16|0;n=o[i>>2]|0;if(!n)break;else{t=n;e=i}}else{t=n;e=i}}o[e>>2]=0}else{w=o[c+8>>2]|0;o[w+12>>2]=t;o[t+8>>2]=w}}while(0);do{if(s){e=o[c+28>>2]|0;n=38832+(e<<2)|0;if((c|0)==(o[n>>2]|0)){o[n>>2]=t;if(!t){r=r&~(1<>2]|0)==(c|0)?w:s+20|0)>>2]=t;if(!t)break}o[t+24>>2]=s;e=o[c+16>>2]|0;if(e|0){o[t+16>>2]=e;o[e+24>>2]=t}e=o[c+20>>2]|0;if(e){o[t+20>>2]=e;o[e+24>>2]=t}}}while(0);e:do{if(a>>>0<16){w=a+u|0;o[c+4>>2]=w|3;w=c+w+4|0;o[w>>2]=o[w>>2]|1}else{o[c+4>>2]=u|3;o[l+4>>2]=a|1;o[l+a>>2]=a;t=a>>>3;if(a>>>0<256){n=38568+(t<<1<<2)|0;e=o[9632]|0;t=1<>2]|0}o[e>>2]=l;o[t+12>>2]=l;o[l+8>>2]=t;o[l+12>>2]=n;break}t=a>>>8;if(t)if(a>>>0>16777215)n=31;else{A=(t+1048320|0)>>>16&8;w=t<>>16&4;w=w<>>16&2;n=14-(v|A|n)+(w<>>15)|0;n=a>>>(n+7|0)&1|n<<1}else n=0;t=38832+(n<<2)|0;o[l+28>>2]=n;e=l+16|0;o[e+4>>2]=0;o[e>>2]=0;e=1<>2]=l;o[l+24>>2]=t;o[l+12>>2]=l;o[l+8>>2]=l;break}t=o[t>>2]|0;t:do{if((o[t+4>>2]&-8|0)!=(a|0)){r=a<<((n|0)==31?0:25-(n>>>1)|0);while(1){n=t+16+(r>>>31<<2)|0;e=o[n>>2]|0;if(!e)break;if((o[e+4>>2]&-8|0)==(a|0)){t=e;break t}else{r=r<<1;t=e}}o[n>>2]=l;o[l+24>>2]=t;o[l+12>>2]=l;o[l+8>>2]=l;break e}}while(0);A=t+8|0;w=o[A>>2]|0;o[w+12>>2]=l;o[A>>2]=l;o[l+8>>2]=w;o[l+12>>2]=t;o[l+24>>2]=0}}while(0);w=c+8|0;h=E;return w|0}else d=u}else d=u}else d=-1}while(0);n=o[9634]|0;if(n>>>0>=d>>>0){t=n-d|0;e=o[9637]|0;if(t>>>0>15){w=e+d|0;o[9637]=w;o[9634]=t;o[w+4>>2]=t|1;o[e+n>>2]=t;o[e+4>>2]=d|3}else{o[9634]=0;o[9637]=0;o[e+4>>2]=n|3;w=e+n+4|0;o[w>>2]=o[w>>2]|1}w=e+8|0;h=E;return w|0}a=o[9635]|0;if(a>>>0>d>>>0){v=a-d|0;o[9635]=v;w=o[9638]|0;A=w+d|0;o[9638]=A;o[A+4>>2]=v|1;o[w+4>>2]=d|3;w=w+8|0;h=E;return w|0}if(!(o[9750]|0)){o[9752]=4096;o[9751]=4096;o[9753]=-1;o[9754]=-1;o[9755]=0;o[9743]=0;o[9750]=p&-16^1431655768;e=4096}else e=o[9752]|0;c=d+48|0;f=d+47|0;s=e+f|0;i=0-e|0;u=s&i;if(u>>>0<=d>>>0){w=0;h=E;return w|0}e=o[9742]|0;if(e|0?(l=o[9740]|0,p=l+u|0,p>>>0<=l>>>0|p>>>0>e>>>0):0){w=0;h=E;return w|0}e:do{if(!(o[9743]&4)){n=o[9638]|0;t:do{if(n){r=38976;while(1){p=o[r>>2]|0;if(p>>>0<=n>>>0?(p+(o[r+4>>2]|0)|0)>>>0>n>>>0:0)break;e=o[r+8>>2]|0;if(!e){y=128;break t}else r=e}t=s-a&i;if(t>>>0<2147483647){e=Bs(t|0)|0;if((e|0)==((o[r>>2]|0)+(o[r+4>>2]|0)|0)){if((e|0)!=(-1|0)){a=t;s=e;y=145;break e}}else{r=e;y=136}}else t=0}else y=128}while(0);do{if((y|0)==128){n=Bs(0)|0;if((n|0)!=(-1|0)?(t=n,m=o[9751]|0,g=m+-1|0,t=((g&t|0)==0?0:(g+t&0-m)-t|0)+u|0,m=o[9740]|0,g=t+m|0,t>>>0>d>>>0&t>>>0<2147483647):0){p=o[9742]|0;if(p|0?g>>>0<=m>>>0|g>>>0>p>>>0:0){t=0;break}e=Bs(t|0)|0;if((e|0)==(n|0)){a=t;s=n;y=145;break e}else{r=e;y=136}}else t=0}}while(0);do{if((y|0)==136){n=0-t|0;if(!(c>>>0>t>>>0&(t>>>0<2147483647&(r|0)!=(-1|0))))if((r|0)==(-1|0)){t=0;break}else{a=t;s=r;y=145;break e}e=o[9752]|0;e=f-t+e&0-e;if(e>>>0>=2147483647){a=t;s=r;y=145;break e}if((Bs(e|0)|0)==(-1|0)){Bs(n|0)|0;t=0;break}else{a=e+t|0;s=r;y=145;break e}}}while(0);o[9743]=o[9743]|4;y=143}else{t=0;y=143}}while(0);if(((y|0)==143?u>>>0<2147483647:0)?(v=Bs(u|0)|0,g=Bs(0)|0,b=g-v|0,_=b>>>0>(d+40|0)>>>0,!((v|0)==(-1|0)|_^1|v>>>0>>0&((v|0)!=(-1|0)&(g|0)!=(-1|0))^1)):0){a=_?b:t;s=v;y=145}if((y|0)==145){t=(o[9740]|0)+a|0;o[9740]=t;if(t>>>0>(o[9741]|0)>>>0)o[9741]=t;f=o[9638]|0;e:do{if(f){t=38976;while(1){e=o[t>>2]|0;n=o[t+4>>2]|0;if((s|0)==(e+n|0)){y=154;break}r=o[t+8>>2]|0;if(!r)break;else t=r}if(((y|0)==154?(A=t+4|0,(o[t+12>>2]&8|0)==0):0)?s>>>0>f>>>0&e>>>0<=f>>>0:0){o[A>>2]=n+a;w=(o[9635]|0)+a|0;v=f+8|0;v=(v&7|0)==0?0:0-v&7;A=f+v|0;v=w-v|0;o[9638]=A;o[9635]=v;o[A+4>>2]=v|1;o[f+w+4>>2]=40;o[9639]=o[9754];break}if(s>>>0<(o[9636]|0)>>>0)o[9636]=s;n=s+a|0;t=38976;while(1){if((o[t>>2]|0)==(n|0)){y=162;break}e=o[t+8>>2]|0;if(!e)break;else t=e}if((y|0)==162?(o[t+12>>2]&8|0)==0:0){o[t>>2]=s;l=t+4|0;o[l>>2]=(o[l>>2]|0)+a;l=s+8|0;l=s+((l&7|0)==0?0:0-l&7)|0;t=n+8|0;t=n+((t&7|0)==0?0:0-t&7)|0;u=l+d|0;c=t-l-d|0;o[l+4>>2]=d|3;t:do{if((f|0)==(t|0)){w=(o[9635]|0)+c|0;o[9635]=w;o[9638]=u;o[u+4>>2]=w|1}else{if((o[9637]|0)==(t|0)){w=(o[9634]|0)+c|0;o[9634]=w;o[9637]=u;o[u+4>>2]=w|1;o[u+w>>2]=w;break}e=o[t+4>>2]|0;if((e&3|0)==1){a=e&-8;r=e>>>3;n:do{if(e>>>0<256){e=o[t+8>>2]|0;n=o[t+12>>2]|0;if((n|0)==(e|0)){o[9632]=o[9632]&~(1<>2]=n;o[n+8>>2]=e;break}}else{s=o[t+24>>2]|0;e=o[t+12>>2]|0;do{if((e|0)==(t|0)){n=t+16|0;r=n+4|0;e=o[r>>2]|0;if(!e){e=o[n>>2]|0;if(!e){e=0;break}}else n=r;while(1){i=e+20|0;r=o[i>>2]|0;if(!r){i=e+16|0;r=o[i>>2]|0;if(!r)break;else{e=r;n=i}}else{e=r;n=i}}o[n>>2]=0}else{w=o[t+8>>2]|0;o[w+12>>2]=e;o[e+8>>2]=w}}while(0);if(!s)break;n=o[t+28>>2]|0;r=38832+(n<<2)|0;do{if((o[r>>2]|0)!=(t|0)){w=s+16|0;o[((o[w>>2]|0)==(t|0)?w:s+20|0)>>2]=e;if(!e)break n}else{o[r>>2]=e;if(e|0)break;o[9633]=o[9633]&~(1<>2]=s;n=t+16|0;r=o[n>>2]|0;if(r|0){o[e+16>>2]=r;o[r+24>>2]=e}n=o[n+4>>2]|0;if(!n)break;o[e+20>>2]=n;o[n+24>>2]=e}}while(0);t=t+a|0;i=a+c|0}else i=c;t=t+4|0;o[t>>2]=o[t>>2]&-2;o[u+4>>2]=i|1;o[u+i>>2]=i;t=i>>>3;if(i>>>0<256){n=38568+(t<<1<<2)|0;e=o[9632]|0;t=1<>2]|0}o[e>>2]=u;o[t+12>>2]=u;o[u+8>>2]=t;o[u+12>>2]=n;break}t=i>>>8;do{if(!t)r=0;else{if(i>>>0>16777215){r=31;break}A=(t+1048320|0)>>>16&8;w=t<>>16&4;w=w<>>16&2;r=14-(v|A|r)+(w<>>15)|0;r=i>>>(r+7|0)&1|r<<1}}while(0);t=38832+(r<<2)|0;o[u+28>>2]=r;e=u+16|0;o[e+4>>2]=0;o[e>>2]=0;e=o[9633]|0;n=1<>2]=u;o[u+24>>2]=t;o[u+12>>2]=u;o[u+8>>2]=u;break}t=o[t>>2]|0;n:do{if((o[t+4>>2]&-8|0)!=(i|0)){r=i<<((r|0)==31?0:25-(r>>>1)|0);while(1){n=t+16+(r>>>31<<2)|0;e=o[n>>2]|0;if(!e)break;if((o[e+4>>2]&-8|0)==(i|0)){t=e;break n}else{r=r<<1;t=e}}o[n>>2]=u;o[u+24>>2]=t;o[u+12>>2]=u;o[u+8>>2]=u;break t}}while(0);A=t+8|0;w=o[A>>2]|0;o[w+12>>2]=u;o[A>>2]=u;o[u+8>>2]=w;o[u+12>>2]=t;o[u+24>>2]=0}}while(0);w=l+8|0;h=E;return w|0}t=38976;while(1){e=o[t>>2]|0;if(e>>>0<=f>>>0?(w=e+(o[t+4>>2]|0)|0,w>>>0>f>>>0):0)break;t=o[t+8>>2]|0}i=w+-47|0;e=i+8|0;e=i+((e&7|0)==0?0:0-e&7)|0;i=f+16|0;e=e>>>0>>0?f:e;t=e+8|0;n=a+-40|0;v=s+8|0;v=(v&7|0)==0?0:0-v&7;A=s+v|0;v=n-v|0;o[9638]=A;o[9635]=v;o[A+4>>2]=v|1;o[s+n+4>>2]=40;o[9639]=o[9754];n=e+4|0;o[n>>2]=27;o[t>>2]=o[9744];o[t+4>>2]=o[9745];o[t+8>>2]=o[9746];o[t+12>>2]=o[9747];o[9744]=s;o[9745]=a;o[9747]=0;o[9746]=t;t=e+24|0;do{A=t;t=t+4|0;o[t>>2]=7}while((A+8|0)>>>0>>0);if((e|0)!=(f|0)){s=e-f|0;o[n>>2]=o[n>>2]&-2;o[f+4>>2]=s|1;o[e>>2]=s;t=s>>>3;if(s>>>0<256){n=38568+(t<<1<<2)|0;e=o[9632]|0;t=1<>2]|0}o[e>>2]=f;o[t+12>>2]=f;o[f+8>>2]=t;o[f+12>>2]=n;break}t=s>>>8;if(t)if(s>>>0>16777215)r=31;else{A=(t+1048320|0)>>>16&8;w=t<>>16&4;w=w<>>16&2;r=14-(v|A|r)+(w<>>15)|0;r=s>>>(r+7|0)&1|r<<1}else r=0;n=38832+(r<<2)|0;o[f+28>>2]=r;o[f+20>>2]=0;o[i>>2]=0;t=o[9633]|0;e=1<>2]=f;o[f+24>>2]=n;o[f+12>>2]=f;o[f+8>>2]=f;break}t=o[n>>2]|0;t:do{if((o[t+4>>2]&-8|0)!=(s|0)){r=s<<((r|0)==31?0:25-(r>>>1)|0);while(1){n=t+16+(r>>>31<<2)|0;e=o[n>>2]|0;if(!e)break;if((o[e+4>>2]&-8|0)==(s|0)){t=e;break t}else{r=r<<1;t=e}}o[n>>2]=f;o[f+24>>2]=t;o[f+12>>2]=f;o[f+8>>2]=f;break e}}while(0);A=t+8|0;w=o[A>>2]|0;o[w+12>>2]=f;o[A>>2]=f;o[f+8>>2]=w;o[f+12>>2]=t;o[f+24>>2]=0}}else{w=o[9636]|0;if((w|0)==0|s>>>0>>0)o[9636]=s;o[9744]=s;o[9745]=a;o[9747]=0;o[9641]=o[9750];o[9640]=-1;o[9645]=38568;o[9644]=38568;o[9647]=38576;o[9646]=38576;o[9649]=38584;o[9648]=38584;o[9651]=38592;o[9650]=38592;o[9653]=38600;o[9652]=38600;o[9655]=38608;o[9654]=38608;o[9657]=38616;o[9656]=38616;o[9659]=38624;o[9658]=38624;o[9661]=38632;o[9660]=38632;o[9663]=38640;o[9662]=38640;o[9665]=38648;o[9664]=38648;o[9667]=38656;o[9666]=38656;o[9669]=38664;o[9668]=38664;o[9671]=38672;o[9670]=38672;o[9673]=38680;o[9672]=38680;o[9675]=38688;o[9674]=38688;o[9677]=38696;o[9676]=38696;o[9679]=38704;o[9678]=38704;o[9681]=38712;o[9680]=38712;o[9683]=38720;o[9682]=38720;o[9685]=38728;o[9684]=38728;o[9687]=38736;o[9686]=38736;o[9689]=38744;o[9688]=38744;o[9691]=38752;o[9690]=38752;o[9693]=38760;o[9692]=38760;o[9695]=38768;o[9694]=38768;o[9697]=38776;o[9696]=38776;o[9699]=38784;o[9698]=38784;o[9701]=38792;o[9700]=38792;o[9703]=38800;o[9702]=38800;o[9705]=38808;o[9704]=38808;o[9707]=38816;o[9706]=38816;w=a+-40|0;v=s+8|0;v=(v&7|0)==0?0:0-v&7;A=s+v|0;v=w-v|0;o[9638]=A;o[9635]=v;o[A+4>>2]=v|1;o[s+w+4>>2]=40;o[9639]=o[9754]}}while(0);t=o[9635]|0;if(t>>>0>d>>>0){v=t-d|0;o[9635]=v;w=o[9638]|0;A=w+d|0;o[9638]=A;o[A+4>>2]=v|1;o[w+4>>2]=d|3;w=w+8|0;h=E;return w|0}}o[(Lo()|0)>>2]=12;w=0;h=E;return w|0}function Uo(e){e=e|0;var t=0,n=0,r=0,i=0,s=0,a=0,c=0,f=0;if(!e)return;n=e+-8|0;i=o[9636]|0;e=o[e+-4>>2]|0;t=e&-8;f=n+t|0;do{if(!(e&1)){r=o[n>>2]|0;if(!(e&3))return;a=n+(0-r)|0;s=r+t|0;if(a>>>0>>0)return;if((o[9637]|0)==(a|0)){e=f+4|0;t=o[e>>2]|0;if((t&3|0)!=3){c=a;t=s;break}o[9634]=s;o[e>>2]=t&-2;o[a+4>>2]=s|1;o[a+s>>2]=s;return}n=r>>>3;if(r>>>0<256){e=o[a+8>>2]|0;t=o[a+12>>2]|0;if((t|0)==(e|0)){o[9632]=o[9632]&~(1<>2]=t;o[t+8>>2]=e;c=a;t=s;break}}i=o[a+24>>2]|0;e=o[a+12>>2]|0;do{if((e|0)==(a|0)){t=a+16|0;n=t+4|0;e=o[n>>2]|0;if(!e){e=o[t>>2]|0;if(!e){e=0;break}}else t=n;while(1){r=e+20|0;n=o[r>>2]|0;if(!n){r=e+16|0;n=o[r>>2]|0;if(!n)break;else{e=n;t=r}}else{e=n;t=r}}o[t>>2]=0}else{c=o[a+8>>2]|0;o[c+12>>2]=e;o[e+8>>2]=c}}while(0);if(i){t=o[a+28>>2]|0;n=38832+(t<<2)|0;if((o[n>>2]|0)==(a|0)){o[n>>2]=e;if(!e){o[9633]=o[9633]&~(1<>2]|0)==(a|0)?c:i+20|0)>>2]=e;if(!e){c=a;t=s;break}}o[e+24>>2]=i;t=a+16|0;n=o[t>>2]|0;if(n|0){o[e+16>>2]=n;o[n+24>>2]=e}t=o[t+4>>2]|0;if(t){o[e+20>>2]=t;o[t+24>>2]=e;c=a;t=s}else{c=a;t=s}}else{c=a;t=s}}else{c=n;a=n}}while(0);if(a>>>0>=f>>>0)return;e=f+4|0;r=o[e>>2]|0;if(!(r&1))return;if(!(r&2)){if((o[9638]|0)==(f|0)){f=(o[9635]|0)+t|0;o[9635]=f;o[9638]=c;o[c+4>>2]=f|1;if((c|0)!=(o[9637]|0))return;o[9637]=0;o[9634]=0;return}if((o[9637]|0)==(f|0)){f=(o[9634]|0)+t|0;o[9634]=f;o[9637]=a;o[c+4>>2]=f|1;o[a+f>>2]=f;return}i=(r&-8)+t|0;n=r>>>3;do{if(r>>>0<256){t=o[f+8>>2]|0;e=o[f+12>>2]|0;if((e|0)==(t|0)){o[9632]=o[9632]&~(1<>2]=e;o[e+8>>2]=t;break}}else{s=o[f+24>>2]|0;e=o[f+12>>2]|0;do{if((e|0)==(f|0)){t=f+16|0;n=t+4|0;e=o[n>>2]|0;if(!e){e=o[t>>2]|0;if(!e){n=0;break}}else t=n;while(1){r=e+20|0;n=o[r>>2]|0;if(!n){r=e+16|0;n=o[r>>2]|0;if(!n)break;else{e=n;t=r}}else{e=n;t=r}}o[t>>2]=0;n=e}else{n=o[f+8>>2]|0;o[n+12>>2]=e;o[e+8>>2]=n;n=e}}while(0);if(s|0){e=o[f+28>>2]|0;t=38832+(e<<2)|0;if((o[t>>2]|0)==(f|0)){o[t>>2]=n;if(!n){o[9633]=o[9633]&~(1<>2]|0)==(f|0)?r:s+20|0)>>2]=n;if(!n)break}o[n+24>>2]=s;e=f+16|0;t=o[e>>2]|0;if(t|0){o[n+16>>2]=t;o[t+24>>2]=n}e=o[e+4>>2]|0;if(e|0){o[n+20>>2]=e;o[e+24>>2]=n}}}}while(0);o[c+4>>2]=i|1;o[a+i>>2]=i;if((c|0)==(o[9637]|0)){o[9634]=i;return}}else{o[e>>2]=r&-2;o[c+4>>2]=t|1;o[a+t>>2]=t;i=t}e=i>>>3;if(i>>>0<256){n=38568+(e<<1<<2)|0;t=o[9632]|0;e=1<>2]|0}o[t>>2]=c;o[e+12>>2]=c;o[c+8>>2]=e;o[c+12>>2]=n;return}e=i>>>8;if(e)if(i>>>0>16777215)r=31;else{a=(e+1048320|0)>>>16&8;f=e<>>16&4;f=f<>>16&2;r=14-(s|a|r)+(f<>>15)|0;r=i>>>(r+7|0)&1|r<<1}else r=0;e=38832+(r<<2)|0;o[c+28>>2]=r;o[c+20>>2]=0;o[c+16>>2]=0;t=o[9633]|0;n=1<>2]=c;o[c+24>>2]=e;o[c+12>>2]=c;o[c+8>>2]=c}else{e=o[e>>2]|0;t:do{if((o[e+4>>2]&-8|0)!=(i|0)){r=i<<((r|0)==31?0:25-(r>>>1)|0);while(1){n=e+16+(r>>>31<<2)|0;t=o[n>>2]|0;if(!t)break;if((o[t+4>>2]&-8|0)==(i|0)){e=t;break t}else{r=r<<1;e=t}}o[n>>2]=c;o[c+24>>2]=e;o[c+12>>2]=c;o[c+8>>2]=c;break e}}while(0);a=e+8|0;f=o[a>>2]|0;o[f+12>>2]=c;o[a>>2]=c;o[c+8>>2]=f;o[c+12>>2]=e;o[c+24>>2]=0}}while(0);f=(o[9640]|0)+-1|0;o[9640]=f;if(f|0)return;e=38984;while(1){e=o[e>>2]|0;if(!e)break;else e=e+8|0}o[9640]=-1;return}function Lo(){return 39088}function Fo(e,t){e=e|0;t=t|0;var n=0,i=0;n=r[e>>0]|0;i=r[t>>0]|0;if(n<<24>>24==0?1:n<<24>>24!=i<<24>>24)e=i;else{do{e=e+1|0;t=t+1|0;n=r[e>>0]|0;i=r[t>>0]|0}while(!(n<<24>>24==0?1:n<<24>>24!=i<<24>>24));e=i}return(n&255)-(e&255)|0}function qo(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0;e:do{if(!n)e=0;else{while(1){i=r[e>>0]|0;o=r[t>>0]|0;if(i<<24>>24!=o<<24>>24)break;n=n+-1|0;if(!n){e=0;break e}else{e=e+1|0;t=t+1|0}}e=(i&255)-(o&255)|0}}while(0);return e|0}function Ko(e){e=e|0;return(e+-48|0)>>>0<10|0}function zo(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var s=0,a=0,c=0,f=0,u=0,l=0,d=0;d=h;h=h+128|0;s=d+124|0;l=d;a=l;c=37604;f=a+124|0;do{o[a>>2]=o[c>>2];a=a+4|0;c=c+4|0}while((a|0)<(f|0));if((t+-1|0)>>>0>2147483646)if(!t){e=s;t=1;u=4}else{o[(Lo()|0)>>2]=75;t=-1}else u=4;if((u|0)==4){u=-2-e|0;u=t>>>0>u>>>0?u:t;o[l+48>>2]=u;s=l+20|0;o[s>>2]=e;o[l+44>>2]=e;t=e+u|0;e=l+16|0;o[e>>2]=t;o[l+28>>2]=t;t=Go(l,n,i)|0;if(u){l=o[s>>2]|0;r[l+(((l|0)==(o[e>>2]|0))<<31>>31)>>0]=0}}h=d;return t|0}function Go(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0;b=h;h=h+224|0;d=b+208|0;m=b+160|0;g=b+80|0;y=b;i=m;s=i+40|0;do{o[i>>2]=0;i=i+4|0}while((i|0)<(s|0));o[d>>2]=o[n>>2];if((Ho(0,t,d,g,m)|0)<0)n=-1;else{if((o[e+76>>2]|0)>-1)p=Vo(e)|0;else p=0;n=o[e>>2]|0;l=n&32;if((r[e+74>>0]|0)<1)o[e>>2]=n&-33;i=e+48|0;if(!(o[i>>2]|0)){s=e+44|0;a=o[s>>2]|0;o[s>>2]=y;c=e+28|0;o[c>>2]=y;f=e+20|0;o[f>>2]=y;o[i>>2]=80;u=e+16|0;o[u>>2]=y+80;n=Ho(e,t,d,g,m)|0;if(a){Vs[o[e+36>>2]&1](e,0,0)|0;n=(o[f>>2]|0)==0?-1:n;o[s>>2]=a;o[i>>2]=0;o[u>>2]=0;o[c>>2]=0;o[f>>2]=0}}else n=Ho(e,t,d,g,m)|0;i=o[e>>2]|0;o[e>>2]=i|l;if(p|0)Qo(e);n=(i&32|0)==0?n:-1}h=b;return n|0}function Ho(e,t,n,s,a){e=e|0;t=t|0;n=n|0;s=s|0;a=a|0;var c=0,f=0,l=0,d=0,p=0,m=0,g=0,y=0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0,D=0;D=h;h=h+64|0;O=D+56|0;x=D+40|0;S=D;P=D+48|0;M=D+60|0;o[O>>2]=t;w=(e|0)!=0;E=S+40|0;k=E;S=S+39|0;T=P+4|0;c=0;t=0;l=0;e:while(1){do{do{if((t|0)>-1)if((c|0)>(2147483647-t|0)){o[(Lo()|0)>>2]=75;t=-1;break}else{t=c+t|0;break}}while(0);b=o[O>>2]|0;c=r[b>>0]|0;if(!(c<<24>>24)){A=94;break e}f=b;t:while(1){switch(c<<24>>24){case 37:{A=10;break t}case 0:{c=f;break t}default:{}}v=f+1|0;o[O>>2]=v;c=r[v>>0]|0;f=v}t:do{if((A|0)==10){A=0;c=f;do{if((r[f+1>>0]|0)!=37)break t;c=c+1|0;f=f+2|0;o[O>>2]=f}while((r[f>>0]|0)==37)}}while(0);c=c-b|0;if(w)Wo(e,b,c)}while((c|0)!=0);v=(Ko(r[(o[O>>2]|0)+1>>0]|0)|0)==0;f=o[O>>2]|0;if(!v?(r[f+2>>0]|0)==36:0){g=(r[f+1>>0]|0)+-48|0;p=1;c=3}else{g=-1;p=l;c=1}c=f+c|0;o[O>>2]=c;f=r[c>>0]|0;l=(f<<24>>24)+-32|0;if(l>>>0>31|(1<>2]=c;f=r[c>>0]|0;l=(f<<24>>24)+-32|0}while(!(l>>>0>31|(1<>24==42){if((Ko(r[c+1>>0]|0)|0)!=0?(C=o[O>>2]|0,(r[C+2>>0]|0)==36):0){c=C+1|0;o[a+((r[c>>0]|0)+-48<<2)>>2]=10;c=o[s+((r[c>>0]|0)+-48<<3)>>2]|0;l=1;f=C+3|0}else{if(p|0){t=-1;break}if(w){v=(o[n>>2]|0)+(4-1)&~(4-1);c=o[v>>2]|0;o[n>>2]=v+4}else c=0;l=0;f=(o[O>>2]|0)+1|0}o[O>>2]=f;v=(c|0)<0;_=v?0-c|0:c;d=v?d|8192:d;v=l}else{c=Yo(O)|0;if((c|0)<0){t=-1;break}_=c;v=p;f=o[O>>2]|0}do{if((r[f>>0]|0)==46){c=f+1|0;if((r[c>>0]|0)!=42){o[O>>2]=c;c=Yo(O)|0;f=o[O>>2]|0;break}if(Ko(r[f+2>>0]|0)|0?(R=o[O>>2]|0,(r[R+3>>0]|0)==36):0){c=R+2|0;o[a+((r[c>>0]|0)+-48<<2)>>2]=10;c=o[s+((r[c>>0]|0)+-48<<3)>>2]|0;f=R+4|0;o[O>>2]=f;break}if(v|0){t=-1;break e}if(w){y=(o[n>>2]|0)+(4-1)&~(4-1);c=o[y>>2]|0;o[n>>2]=y+4}else c=0;f=(o[O>>2]|0)+2|0;o[O>>2]=f}else c=-1}while(0);y=0;while(1){if(((r[f>>0]|0)+-65|0)>>>0>57){t=-1;break e}l=f;f=f+1|0;o[O>>2]=f;l=r[(r[l>>0]|0)+-65+(35136+(y*58|0))>>0]|0;p=l&255;if((p+-1|0)>>>0>=8)break;else y=p}if(!(l<<24>>24)){t=-1;break}m=(g|0)>-1;do{if(l<<24>>24==19)if(m){t=-1;break e}else A=54;else{if(m){o[a+(g<<2)>>2]=p;m=s+(g<<3)|0;g=o[m+4>>2]|0;A=x;o[A>>2]=o[m>>2];o[A+4>>2]=g;A=54;break}if(!w){t=0;break e}Xo(x,p,n);f=o[O>>2]|0;A=55}}while(0);if((A|0)==54){A=0;if(w)A=55;else c=0}t:do{if((A|0)==55){A=0;f=r[f+-1>>0]|0;f=(y|0)!=0&(f&15|0)==3?f&-33:f;l=d&-65537;g=(d&8192|0)==0?d:l;n:do{switch(f|0){case 110:switch((y&255)<<24>>24){case 0:{o[o[x>>2]>>2]=t;c=0;break t}case 1:{o[o[x>>2]>>2]=t;c=0;break t}case 2:{c=o[x>>2]|0;o[c>>2]=t;o[c+4>>2]=((t|0)<0)<<31>>31;c=0;break t}case 3:{i[o[x>>2]>>1]=t;c=0;break t}case 4:{r[o[x>>2]>>0]=t;c=0;break t}case 6:{o[o[x>>2]>>2]=t;c=0;break t}case 7:{c=o[x>>2]|0;o[c>>2]=t;o[c+4>>2]=((t|0)<0)<<31>>31;c=0;break t}default:{c=0;break t}}case 112:{f=120;c=c>>>0>8?c:8;l=g|8;A=67;break}case 88:case 120:{l=g;A=67;break}case 111:{l=x;f=o[l>>2]|0;l=o[l+4>>2]|0;m=Zo(f,l,E)|0;A=k-m|0;d=0;p=38441;c=(g&8|0)==0|(c|0)>(A|0)?c:A+1|0;A=73;break}case 105:case 100:{l=x;f=o[l>>2]|0;l=o[l+4>>2]|0;if((l|0)<0){f=Ss(0,0,f|0,l|0)|0;l=I;d=x;o[d>>2]=f;o[d+4>>2]=l;d=1;p=38441;A=72;break n}else{d=(g&2049|0)!=0&1;p=(g&2048|0)==0?(g&1|0)==0?38441:38443:38442;A=72;break n}}case 117:{l=x;d=0;p=38441;f=o[l>>2]|0;l=o[l+4>>2]|0;A=72;break}case 99:{r[S>>0]=o[x>>2];y=S;d=0;p=38441;m=1;c=k;break}case 109:{f=es(o[(Lo()|0)>>2]|0)|0;A=77;break}case 115:{f=o[x>>2]|0;f=(f|0)==0?38451:f;A=77;break}case 67:{o[P>>2]=o[x>>2];o[T>>2]=0;o[x>>2]=P;p=-1;A=81;break}case 83:{if(!c){ns(e,32,_,0,g);c=0;A=91}else{p=c;A=81}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{c=is(e,+u[x>>3],_,c,g,f)|0;break t}default:{y=b;d=0;p=38441;m=c;l=g;c=k}}}while(0);n:do{if((A|0)==67){b=x;y=o[b>>2]|0;b=o[b+4>>2]|0;m=Jo(y,b,E,f&32)|0;p=(l&8|0)==0|(y|0)==0&(b|0)==0;d=p?0:2;p=p?38441:38441+(f>>>4)|0;g=l;f=y;l=b;A=73}else if((A|0)==72){m=$o(f,l,E)|0;A=73}else if((A|0)==77){A=0;b=ts(f,0,c)|0;g=(b|0)==0;y=f;d=0;p=38441;m=g?c:b-f|0;c=g?f+c|0:b}else if((A|0)==81){A=0;d=o[x>>2]|0;c=0;while(1){f=o[d>>2]|0;if(!f)break;f=rs(M,f)|0;l=(f|0)<0;if(l|f>>>0>(p-c|0)>>>0){A=85;break}c=f+c|0;if(p>>>0>c>>>0)d=d+4|0;else break}if((A|0)==85){A=0;if(l){t=-1;break e}}ns(e,32,_,c,g);if(!c){c=0;A=91}else{l=o[x>>2]|0;d=0;while(1){f=o[l>>2]|0;if(!f){A=91;break n}f=rs(M,f)|0;d=f+d|0;if((d|0)>(c|0)){A=91;break n}Wo(e,M,f);if(d>>>0>=c>>>0){A=91;break}else l=l+4|0}}}}while(0);if((A|0)==73){A=0;l=(f|0)!=0|(l|0)!=0;b=(c|0)!=0|l;l=k-m+((l^1)&1)|0;y=b?m:E;m=b?(c|0)>(l|0)?c:l:0;l=(c|0)>-1?g&-65537:g;c=k}else if((A|0)==91){A=0;ns(e,32,_,c,g^8192);c=(_|0)>(c|0)?_:c;break}g=c-y|0;m=(m|0)<(g|0)?g:m;b=m+d|0;c=(_|0)<(b|0)?b:_;ns(e,32,c,b,l);Wo(e,p,d);ns(e,48,c,b,l^65536);ns(e,48,m,g,0);Wo(e,y,g);ns(e,32,c,b,l^8192)}}while(0);l=v}e:do{if((A|0)==94)if(!e)if(!l)t=0;else{t=1;while(1){c=o[a+(t<<2)>>2]|0;if(!c)break;Xo(s+(t<<3)|0,c,n);t=t+1|0;if(t>>>0>=10){t=1;break e}}while(1){if(o[a+(t<<2)>>2]|0){t=-1;break e}t=t+1|0;if(t>>>0>=10){t=1;break}}}}while(0);h=D;return t|0}function Vo(e){e=e|0;return 0}function Qo(e){e=e|0;return}function Wo(e,t,n){e=e|0;t=t|0;n=n|0;if(!(o[e>>2]&32))ys(t,n,e)|0;return}function Yo(e){e=e|0;var t=0,n=0;if(!(Ko(r[o[e>>2]>>0]|0)|0))t=0;else{t=0;do{n=o[e>>2]|0;t=(t*10|0)+-48+(r[n>>0]|0)|0;n=n+1|0;o[e>>2]=n}while((Ko(r[n>>0]|0)|0)!=0)}return t|0}function Xo(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,s=0.0;e:do{if(t>>>0<=20)do{switch(t|0){case 9:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;o[e>>2]=t;break e}case 10:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;r=e;o[r>>2]=t;o[r+4>>2]=((t|0)<0)<<31>>31;break e}case 11:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;r=e;o[r>>2]=t;o[r+4>>2]=0;break e}case 12:{r=(o[n>>2]|0)+(8-1)&~(8-1);t=r;i=o[t>>2]|0;t=o[t+4>>2]|0;o[n>>2]=r+8;r=e;o[r>>2]=i;o[r+4>>2]=t;break e}case 13:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;r=(r&65535)<<16>>16;i=e;o[i>>2]=r;o[i+4>>2]=((r|0)<0)<<31>>31;break e}case 14:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;i=e;o[i>>2]=r&65535;o[i+4>>2]=0;break e}case 15:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;r=(r&255)<<24>>24;i=e;o[i>>2]=r;o[i+4>>2]=((r|0)<0)<<31>>31;break e}case 16:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;i=e;o[i>>2]=r&255;o[i+4>>2]=0;break e}case 17:{i=(o[n>>2]|0)+(8-1)&~(8-1);s=+u[i>>3];o[n>>2]=i+8;u[e>>3]=s;break e}case 18:{i=(o[n>>2]|0)+(8-1)&~(8-1);s=+u[i>>3];o[n>>2]=i+8;u[e>>3]=s;break e}default:break e}}while(0)}while(0);return}function Jo(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;if(!((e|0)==0&(t|0)==0))do{n=n+-1|0;r[n>>0]=s[35600+(e&15)>>0]|0|i;e=xs(e|0,t|0,4)|0;t=I}while(!((e|0)==0&(t|0)==0));return n|0}function Zo(e,t,n){e=e|0;t=t|0;n=n|0;if(!((e|0)==0&(t|0)==0))do{n=n+-1|0;r[n>>0]=e&7|48;e=xs(e|0,t|0,3)|0;t=I}while(!((e|0)==0&(t|0)==0));return n|0}function $o(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0,s=0;if(t>>>0>0|(t|0)==0&e>>>0>4294967295){do{i=e;e=Rs(e|0,t|0,10,0)|0;o=t;t=I;s=Es(e|0,t|0,10,0)|0;s=Ss(i|0,o|0,s|0,I|0)|0;n=n+-1|0;r[n>>0]=s&255|48}while(o>>>0>9|(o|0)==9&i>>>0>4294967295);t=e}else t=e;if(t)do{s=t;t=(t>>>0)/10|0;n=n+-1|0;r[n>>0]=s-(t*10|0)|48}while(s>>>0>=10);return n|0}function es(e){e=e|0;return ds(e,o[(ls()|0)+188>>2]|0)|0}function ts(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0;a=t&255;i=(n|0)!=0;e:do{if(i&(e&3|0)!=0){s=t&255;while(1){if((r[e>>0]|0)==s<<24>>24){c=6;break e}e=e+1|0;n=n+-1|0;i=(n|0)!=0;if(!(i&(e&3|0)!=0)){c=5;break}}}else c=5}while(0);if((c|0)==5)if(i)c=6;else c=16;e:do{if((c|0)==6){s=t&255;if((r[e>>0]|0)==s<<24>>24)if(!n){c=16;break}else break;i=q(a,16843009)|0;t:do{if(n>>>0>3)while(1){a=o[e>>2]^i;if((a&-2139062144^-2139062144)&a+-16843009|0)break t;e=e+4|0;n=n+-4|0;if(n>>>0<=3){c=11;break}}else c=11}while(0);if((c|0)==11)if(!n){c=16;break}while(1){if((r[e>>0]|0)==s<<24>>24)break e;n=n+-1|0;if(!n){c=16;break}else e=e+1|0}}}while(0);if((c|0)==16)e=0;return e|0}function ns(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var o=0,s=0;s=h;h=h+256|0;o=s;if((n|0)>(r|0)&(i&73728|0)==0){i=n-r|0;Ds(o|0,t<<24>>24|0,(i>>>0<256?i:256)|0)|0;if(i>>>0>255){t=n-r|0;do{Wo(e,o,256);i=i+-256|0}while(i>>>0>255);i=t&255}Wo(e,o,i)}h=s;return}function rs(e,t){e=e|0;t=t|0;if(!e)e=0;else e=cs(e,t,0)|0;return e|0}function is(e,t,n,i,a,c){e=e|0;t=+t;n=n|0;i=i|0;a=a|0;c=c|0;var f=0,u=0,l=0,d=0,p=0,m=0,g=0,y=0.0,b=0,_=0,v=0,A=0,w=0,E=0,k=0,S=0,T=0,R=0,O=0,x=0,C=0,P=0,M=0;M=h;h=h+560|0;l=M+32|0;A=M+536|0;P=M;C=P;d=M+540|0;o[A>>2]=0;x=d+12|0;os(t)|0;f=I;if((f|0)<0){t=-t;os(t)|0;O=1;R=38458;f=I}else{O=(a&2049|0)!=0&1;R=(a&2048|0)==0?(a&1|0)==0?38459:38464:38461}do{if(0==0&(f&2146435072|0)==2146435072){P=(c&32|0)!=0;f=O+3|0;ns(e,32,n,f,a&-65537);Wo(e,R,O);Wo(e,t!=t|0.0!=0.0?P?38485:38489:P?38477:38481,3);ns(e,32,n,f,a^8192)}else{y=+ss(t,A)*2.0;f=y!=0.0;if(f)o[A>>2]=(o[A>>2]|0)+-1;v=c|32;if((v|0)==97){m=c&32;b=(m|0)==0?R:R+9|0;g=O|2;f=12-i|0;do{if(!(i>>>0>11|(f|0)==0)){t=8.0;do{f=f+-1|0;t=t*16.0}while((f|0)!=0);if((r[b>>0]|0)==45){t=-(t+(-y-t));break}else{t=y+t-t;break}}else t=y}while(0);u=o[A>>2]|0;f=(u|0)<0?0-u|0:u;f=$o(f,((f|0)<0)<<31>>31,x)|0;if((f|0)==(x|0)){f=d+11|0;r[f>>0]=48}r[f+-1>>0]=(u>>31&2)+43;p=f+-2|0;r[p>>0]=c+15;u=(i|0)<1;l=(a&8|0)==0;d=P;do{O=~~t;f=d+1|0;r[d>>0]=m|s[35600+O>>0];t=(t-+(O|0))*16.0;if((f-C|0)==1?!(l&(u&t==0.0)):0){r[f>>0]=46;d=d+2|0}else d=f}while(t!=0.0);if((i|0)!=0?(-2-C+d|0)<(i|0):0){u=x;l=p;f=i+2+u-l|0}else{u=x;l=p;f=u-C-l+d|0}x=f+g|0;ns(e,32,n,x,a);Wo(e,b,g);ns(e,48,n,x,a^65536);C=d-C|0;Wo(e,P,C);P=u-l|0;ns(e,48,f-(C+P)|0,0,0);Wo(e,p,P);ns(e,32,n,x,a^8192);f=x;break}u=(i|0)<0?6:i;if(f){f=(o[A>>2]|0)+-28|0;o[A>>2]=f;t=y*268435456.0}else{t=y;f=o[A>>2]|0}T=(f|0)<0?l:l+288|0;l=T;do{k=~~t>>>0;o[l>>2]=k;l=l+4|0;t=(t-+(k>>>0))*1.0e9}while(t!=0.0);k=T;if((f|0)>0){m=T;while(1){p=(f|0)<29?f:29;f=l+-4|0;if(f>>>0>=m>>>0){d=0;do{_=Cs(o[f>>2]|0,0,p|0)|0;_=ks(_|0,I|0,d|0,0)|0;w=I;d=Rs(_|0,w|0,1e9,0)|0;E=Es(d|0,I|0,1e9,0)|0;E=Ss(_|0,w|0,E|0,I|0)|0;o[f>>2]=E;f=f+-4|0}while(f>>>0>=m>>>0);if(d){E=m+-4|0;o[E>>2]=d;d=E}else d=m}else d=m;e:do{if(l>>>0>d>>>0){f=l;while(1){l=f+-4|0;if(o[l>>2]|0){l=f;break e}if(l>>>0>d>>>0)f=l;else break}}}while(0);f=(o[A>>2]|0)-p|0;o[A>>2]=f;if((f|0)>0)m=d;else break}}else d=T;if((f|0)<0){i=((u+25|0)/9|0)+1|0;_=(v|0)==102;do{b=0-f|0;b=(b|0)<9?b:9;if(d>>>0>>0){p=(1<>>b;g=0;f=d;do{E=o[f>>2]|0;o[f>>2]=(E>>>b)+g;g=q(E&p,m)|0;f=f+4|0}while(f>>>0>>0);d=(o[d>>2]|0)==0?d+4|0:d;if(g){o[l>>2]=g;l=l+4|0}}else d=(o[d>>2]|0)==0?d+4|0:d;f=_?T:d;l=(l-f>>2|0)>(i|0)?f+(i<<2)|0:l;f=(o[A>>2]|0)+b|0;o[A>>2]=f}while((f|0)<0);_=d}else _=d;if(_>>>0>>0){f=(k-_>>2)*9|0;p=o[_>>2]|0;if(p>>>0>=10){d=10;do{d=d*10|0;f=f+1|0}while(p>>>0>=d>>>0)}}else f=0;w=(v|0)==103;E=(u|0)!=0;d=u-((v|0)==102?0:f)+((E&w)<<31>>31)|0;if((d|0)<(((l-k>>2)*9|0)+-9|0)){A=d+9216|0;d=(A|0)/9|0;i=T+4+(d+-1024<<2)|0;d=A-(d*9|0)|0;if((d|0)<8){p=10;while(1){p=p*10|0;if((d|0)<7)d=d+1|0;else break}}else p=10;g=o[i>>2]|0;d=(g>>>0)/(p>>>0)|0;b=g-(q(d,p)|0)|0;m=(i+4|0)==(l|0);if(!(m&(b|0)==0)){y=(d&1|0)==0?9007199254740992.0:9007199254740994.0;A=p>>>1;t=b>>>0>>0?.5:m&(b|0)==(A|0)?1.0:1.5;if(O){A=(r[R>>0]|0)==45;t=A?-t:t;y=A?-y:y}d=g-b|0;o[i>>2]=d;if(y+t!=y){A=d+p|0;o[i>>2]=A;if(A>>>0>999999999){p=i;f=_;while(1){d=p+-4|0;o[p>>2]=0;if(d>>>0>>0){f=f+-4|0;o[f>>2]=0}A=(o[d>>2]|0)+1|0;o[d>>2]=A;if(A>>>0>999999999)p=d;else{p=f;break}}}else{d=i;p=_}f=(k-p>>2)*9|0;g=o[p>>2]|0;if(g>>>0>=10){m=10;do{m=m*10|0;f=f+1|0}while(g>>>0>=m>>>0)}}else{d=i;p=_}}else{d=i;p=_}A=d+4|0;l=l>>>0>A>>>0?A:l}else p=_;i=0-f|0;e:do{if(l>>>0>p>>>0)while(1){d=l+-4|0;if(o[d>>2]|0){A=l;v=1;break e}if(d>>>0>p>>>0)l=d;else{A=d;v=0;break}}else{A=l;v=0}}while(0);do{if(w){u=u+((E^1)&1)|0;if((u|0)>(f|0)&(f|0)>-5){m=c+-1|0;u=u+-1-f|0}else{m=c+-2|0;u=u+-1|0}if(!(a&8)){if(v?(S=o[A+-4>>2]|0,(S|0)!=0):0)if(!((S>>>0)%10|0)){d=0;l=10;do{l=l*10|0;d=d+1|0}while(!((S>>>0)%(l>>>0)|0|0))}else d=0;else d=9;l=((A-k>>2)*9|0)+-9|0;if((m|32|0)==102){c=l-d|0;c=(c|0)>0?c:0;u=(u|0)<(c|0)?u:c;break}else{c=l+f-d|0;c=(c|0)>0?c:0;u=(u|0)<(c|0)?u:c;break}}}else m=c}while(0);_=(u|0)!=0;g=_?1:a>>>3&1;b=(m|32|0)==102;if(b){w=0;f=(f|0)>0?f:0}else{l=(f|0)<0?i:f;l=$o(l,((l|0)<0)<<31>>31,x)|0;d=x;if((d-l|0)<2)do{l=l+-1|0;r[l>>0]=48}while((d-l|0)<2);r[l+-1>>0]=(f>>31&2)+43;f=l+-2|0;r[f>>0]=m;w=f;f=d-f|0}f=O+1+u+g+f|0;ns(e,32,n,f,a);Wo(e,R,O);ns(e,48,n,f,a^65536);if(b){g=p>>>0>T>>>0?T:p;b=P+9|0;p=b;m=P+8|0;d=g;do{l=$o(o[d>>2]|0,0,b)|0;if((d|0)==(g|0)){if((l|0)==(b|0)){r[m>>0]=48;l=m}}else if(l>>>0>P>>>0){Ds(P|0,48,l-C|0)|0;do{l=l+-1|0}while(l>>>0>P>>>0)}Wo(e,l,p-l|0);d=d+4|0}while(d>>>0<=T>>>0);if(!((a&8|0)==0&(_^1)))Wo(e,38493,1);if(d>>>0>>0&(u|0)>0)while(1){l=$o(o[d>>2]|0,0,b)|0;if(l>>>0>P>>>0){Ds(P|0,48,l-C|0)|0;do{l=l+-1|0}while(l>>>0>P>>>0)}Wo(e,l,(u|0)<9?u:9);d=d+4|0;l=u+-9|0;if(!(d>>>0>>0&(u|0)>9)){u=l;break}else u=l}ns(e,48,u+9|0,9,0)}else{A=v?A:p+4|0;if(p>>>0>>0&(u|0)>-1){i=P+9|0;_=(a&8|0)==0;v=i;g=0-C|0;b=P+8|0;m=p;do{l=$o(o[m>>2]|0,0,i)|0;if((l|0)==(i|0)){r[b>>0]=48;l=b}do{if((m|0)==(p|0)){d=l+1|0;Wo(e,l,1);if(_&(u|0)<1){l=d;break}Wo(e,38493,1);l=d}else{if(l>>>0<=P>>>0)break;Ds(P|0,48,l+g|0)|0;do{l=l+-1|0}while(l>>>0>P>>>0)}}while(0);C=v-l|0;Wo(e,l,(u|0)>(C|0)?C:u);u=u-C|0;m=m+4|0}while(m>>>0>>0&(u|0)>-1)}ns(e,48,u+18|0,18,0);Wo(e,w,x-w|0)}ns(e,32,n,f,a^8192)}}while(0);h=M;return((f|0)<(n|0)?n:f)|0}function os(e){e=+e;var t=0;u[d>>3]=e;t=o[d>>2]|0;I=o[d+4>>2]|0;return t|0}function ss(e,t){e=+e;t=t|0;return+ +as(e,t)}function as(e,t){e=+e;t=t|0;var n=0,r=0,i=0;u[d>>3]=e;n=o[d>>2]|0;r=o[d+4>>2]|0;i=xs(n|0,r|0,52)|0;switch(i&2047){case 0:{if(e!=0.0){e=+as(e*18446744073709551616.0,t);n=(o[t>>2]|0)+-64|0}else n=0;o[t>>2]=n;break}case 2047:break;default:{o[t>>2]=(i&2047)+-1022;o[d>>2]=n;o[d+4>>2]=r&-2146435073|1071644672;e=+u[d>>3]}}return+e}function cs(e,t,n){e=e|0;t=t|0;n=n|0;do{if(e){if(t>>>0<128){r[e>>0]=t;e=1;break}if(!(o[o[(fs()|0)+188>>2]>>2]|0))if((t&-128|0)==57216){r[e>>0]=t;e=1;break}else{o[(Lo()|0)>>2]=84;e=-1;break}if(t>>>0<2048){r[e>>0]=t>>>6|192;r[e+1>>0]=t&63|128;e=2;break}if(t>>>0<55296|(t&-8192|0)==57344){r[e>>0]=t>>>12|224;r[e+1>>0]=t>>>6&63|128;r[e+2>>0]=t&63|128;e=3;break}if((t+-65536|0)>>>0<1048576){r[e>>0]=t>>>18|240;r[e+1>>0]=t>>>12&63|128;r[e+2>>0]=t>>>6&63|128;r[e+3>>0]=t&63|128;e=4;break}else{o[(Lo()|0)>>2]=84;e=-1;break}}else e=1}while(0);return e|0}function fs(){return us()|0}function us(){return 37728}function ls(){return us()|0}function ds(e,t){e=e|0;t=t|0;var n=0,i=0;n=0;while(1){if((s[35616+n>>0]|0)==(e|0)){i=4;break}n=n+1|0;if((n|0)==87){e=87;i=5;break}}if((i|0)==4)if(!n)n=35712;else{e=n;i=5}if((i|0)==5){n=35712;do{do{i=n;n=n+1|0}while((r[i>>0]|0)!=0);e=e+-1|0}while((e|0)!=0)}return hs(n,o[t+20>>2]|0)|0}function hs(e,t){e=e|0;t=t|0;return ps(e,t)|0}function ps(e,t){e=e|0;t=t|0;if(!t)t=0;else t=ms(o[t>>2]|0,o[t+4>>2]|0,e)|0;return((t|0)==0?e:t)|0}function ms(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0;p=(o[e>>2]|0)+1794895138|0;a=gs(o[e+8>>2]|0,p)|0;i=gs(o[e+12>>2]|0,p)|0;s=gs(o[e+16>>2]|0,p)|0;e:do{if((a>>>0>>2>>>0?(h=t-(a<<2)|0,i>>>0>>0&s>>>0>>0):0)?((s|i)&3|0)==0:0){h=i>>>2;d=s>>>2;l=0;while(1){f=a>>>1;u=l+f|0;c=u<<1;s=c+h|0;i=gs(o[e+(s<<2)>>2]|0,p)|0;s=gs(o[e+(s+1<<2)>>2]|0,p)|0;if(!(s>>>0>>0&i>>>0<(t-s|0)>>>0)){i=0;break e}if(r[e+(s+i)>>0]|0){i=0;break e}i=Fo(n,e+s|0)|0;if(!i)break;i=(i|0)<0;if((a|0)==1){i=0;break e}l=i?l:u;a=i?f:a-f|0}i=c+d|0;s=gs(o[e+(i<<2)>>2]|0,p)|0;i=gs(o[e+(i+1<<2)>>2]|0,p)|0;if(i>>>0>>0&s>>>0<(t-i|0)>>>0)i=(r[e+(i+s)>>0]|0)==0?e+i|0:0;else i=0}else i=0}while(0);return i|0}function gs(e,t){e=e|0;t=t|0;var n=0;n=Ps(e|0)|0;return((t|0)==0?e:n)|0}function ys(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0,f=0;i=n+16|0;s=o[i>>2]|0;if(!s)if(!(bs(n)|0)){s=o[i>>2]|0;a=5}else i=0;else a=5;e:do{if((a|0)==5){f=n+20|0;c=o[f>>2]|0;i=c;if((s-c|0)>>>0>>0){i=Vs[o[n+36>>2]&1](n,e,t)|0;break}t:do{if((r[n+75>>0]|0)<0|(t|0)==0){a=0;s=e}else{c=t;while(1){s=c+-1|0;if((r[e+s>>0]|0)==10)break;if(!s){a=0;s=e;break t}else c=s}i=Vs[o[n+36>>2]&1](n,e,c)|0;if(i>>>0>>0)break e;a=c;s=e+c|0;t=t-c|0;i=o[f>>2]|0}}while(0);Ms(i|0,s|0,t|0)|0;o[f>>2]=(o[f>>2]|0)+t;i=a+t|0}}while(0);return i|0}function bs(e){e=e|0;var t=0,n=0;t=e+74|0;n=r[t>>0]|0;r[t>>0]=n+255|n;t=o[e>>2]|0;if(!(t&8)){o[e+8>>2]=0;o[e+4>>2]=0;n=o[e+44>>2]|0;o[e+28>>2]=n;o[e+20>>2]=n;o[e+16>>2]=n+(o[e+48>>2]|0);e=0}else{o[e>>2]=t|32;e=-1}return e|0}function _s(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=e+20|0;i=o[r>>2]|0;e=(o[e+16>>2]|0)-i|0;e=e>>>0>n>>>0?n:e;Ms(i|0,t|0,e|0)|0;o[r>>2]=(o[r>>2]|0)+e;return n|0}function vs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,s=0;i=h;h=h+16|0;s=i;o[s>>2]=r;r=zo(e,t,n,s)|0;h=i;return r|0}function As(){}function ws(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,o=0;o=e&65535;i=t&65535;n=q(i,o)|0;r=e>>>16;e=(n>>>16)+(q(i,r)|0)|0;i=t>>>16;t=q(i,o)|0;return(I=(e>>>16)+(q(i,r)|0)+(((e&65535)+t|0)>>>16)|0,e+t<<16|n&65535|0)|0}function Es(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,o=0;i=e;o=n;n=ws(i,o)|0;e=I;return(I=(q(t,o)|0)+(q(r,i)|0)+e|e&0,n|0|0)|0}function ks(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;n=e+n>>>0;return(I=t+r+(n>>>0>>0|0)>>>0,n|0)|0}function Ss(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=t-r-(n>>>0>e>>>0|0)>>>0;return(I=r,e-n>>>0|0)|0}function Is(e){e=e|0;return(e?31-(G(e^e-1)|0)|0:32)|0}function Ts(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var s=0,a=0,c=0,f=0,u=0,l=0,d=0,h=0,p=0,m=0;l=e;f=t;u=f;a=n;h=r;c=h;if(!u){s=(i|0)!=0;if(!c){if(s){o[i>>2]=(l>>>0)%(a>>>0);o[i+4>>2]=0}h=0;i=(l>>>0)/(a>>>0)>>>0;return(I=h,i)|0}else{if(!s){h=0;i=0;return(I=h,i)|0}o[i>>2]=e|0;o[i+4>>2]=t&0;h=0;i=0;return(I=h,i)|0}}s=(c|0)==0;do{if(a){if(!s){s=(G(c|0)|0)-(G(u|0)|0)|0;if(s>>>0<=31){d=s+1|0;c=31-s|0;t=s-31>>31;a=d;e=l>>>(d>>>0)&t|u<>>(d>>>0)&t;s=0;c=l<>2]=e|0;o[i+4>>2]=f|t&0;h=0;i=0;return(I=h,i)|0}s=a-1|0;if(s&a|0){c=(G(a|0)|0)+33-(G(u|0)|0)|0;m=64-c|0;d=32-c|0;f=d>>31;p=c-32|0;t=p>>31;a=c;e=d-1>>31&u>>>(p>>>0)|(u<>>(c>>>0))&t;t=t&u>>>(c>>>0);s=l<>>(p>>>0))&f|l<>31;break}if(i|0){o[i>>2]=s&l;o[i+4>>2]=0}if((a|0)==1){p=f|t&0;m=e|0|0;return(I=p,m)|0}else{m=Is(a|0)|0;p=u>>>(m>>>0)|0;m=u<<32-m|l>>>(m>>>0)|0;return(I=p,m)|0}}else{if(s){if(i|0){o[i>>2]=(u>>>0)%(a>>>0);o[i+4>>2]=0}p=0;m=(u>>>0)/(a>>>0)>>>0;return(I=p,m)|0}if(!l){if(i|0){o[i>>2]=0;o[i+4>>2]=(u>>>0)%(c>>>0)}p=0;m=(u>>>0)/(c>>>0)>>>0;return(I=p,m)|0}s=c-1|0;if(!(s&c)){if(i|0){o[i>>2]=e|0;o[i+4>>2]=s&u|t&0}p=0;m=u>>>((Is(c|0)|0)>>>0);return(I=p,m)|0}s=(G(c|0)|0)-(G(u|0)|0)|0;if(s>>>0<=30){t=s+1|0;c=31-s|0;a=t;e=u<>>(t>>>0);t=u>>>(t>>>0);s=0;c=l<>2]=e|0;o[i+4>>2]=f|t&0;p=0;m=0;return(I=p,m)|0}}while(0);if(!a){u=c;f=0;c=0}else{d=n|0|0;l=h|r&0;u=ks(d|0,l|0,-1,-1)|0;n=I;f=c;c=0;do{r=f;f=s>>>31|f<<1;s=c|s<<1;r=e<<1|r>>>31|0;h=e>>>31|t<<1|0;Ss(u|0,n|0,r|0,h|0)|0;m=I;p=m>>31|((m|0)<0?-1:0)<<1;c=p&1;e=Ss(r|0,h|0,p&d|0,(((m|0)<0?-1:0)>>31|((m|0)<0?-1:0)<<1)&l|0)|0;t=I;a=a-1|0}while((a|0)!=0);u=f;f=0}a=0;if(i|0){o[i>>2]=e;o[i+4>>2]=t}p=(s|0)>>>31|(u|a)<<1|(a<<1|s>>>31)&0|f;m=(s<<1|0>>>31)&-2|c;return(I=p,m)|0}function Rs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return Ts(e,t,n,r,0)|0}function Os(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){I=t>>n;return e>>>n|(t&(1<>n-32|0}function xs(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){I=t>>>n;return e>>>n|(t&(1<>>n-32|0}function Cs(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){I=t<>>32-n;return e<>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function Ms(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0;if((n|0)>=8192)return te(e|0,t|0,n|0)|0;a=e|0;s=e+n|0;if((e&3)==(t&3)){while(e&3){if(!n)return a|0;r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0;n=n-1|0}n=s&-4|0;i=n-64|0;while((e|0)<=(i|0)){o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=o[t+8>>2];o[e+12>>2]=o[t+12>>2];o[e+16>>2]=o[t+16>>2];o[e+20>>2]=o[t+20>>2];o[e+24>>2]=o[t+24>>2];o[e+28>>2]=o[t+28>>2];o[e+32>>2]=o[t+32>>2];o[e+36>>2]=o[t+36>>2];o[e+40>>2]=o[t+40>>2];o[e+44>>2]=o[t+44>>2];o[e+48>>2]=o[t+48>>2];o[e+52>>2]=o[t+52>>2];o[e+56>>2]=o[t+56>>2];o[e+60>>2]=o[t+60>>2];e=e+64|0;t=t+64|0}while((e|0)<(n|0)){o[e>>2]=o[t>>2];e=e+4|0;t=t+4|0}}else{n=s-4|0;while((e|0)<(n|0)){r[e>>0]=r[t>>0]|0;r[e+1>>0]=r[t+1>>0]|0;r[e+2>>0]=r[t+2>>0]|0;r[e+3>>0]=r[t+3>>0]|0;e=e+4|0;t=t+4|0}}while((e|0)<(s|0)){r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0}return a|0}function Ds(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,s=0,a=0,c=0;a=e+n|0;t=t&255;if((n|0)>=67){while(e&3){r[e>>0]=t;e=e+1|0}i=a&-4|0;s=i-64|0;c=t|t<<8|t<<16|t<<24;while((e|0)<=(s|0)){o[e>>2]=c;o[e+4>>2]=c;o[e+8>>2]=c;o[e+12>>2]=c;o[e+16>>2]=c;o[e+20>>2]=c;o[e+24>>2]=c;o[e+28>>2]=c;o[e+32>>2]=c;o[e+36>>2]=c;o[e+40>>2]=c;o[e+44>>2]=c;o[e+48>>2]=c;o[e+52>>2]=c;o[e+56>>2]=c;o[e+60>>2]=c;e=e+64|0}while((e|0)<(i|0)){o[e>>2]=c;e=e+4|0}}while((e|0)<(a|0)){r[e>>0]=t;e=e+1|0}return a-n|0}function Bs(e){e=e|0;var t=0,n=0;n=o[l>>2]|0;t=n+e|0;if((e|0)>0&(t|0)<(n|0)|(t|0)<0){Y()|0;ee(12);return-1}o[l>>2]=t;if((t|0)>(W()|0)?(Q()|0)==0:0){o[l>>2]=n;ee(12);return-1}return n|0}function Ns(e,t){e=e|0;t=t|0;return Gs[e&1](t|0)|0}function js(e,t,n){e=e|0;t=t|0;n=n|0;return Hs[e&3](t|0,n|0)|0}function Us(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return Vs[e&1](t|0,n|0,r|0)|0}function Ls(e,t,n,r,i,o,s,a,c,f){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;s=s|0;a=a|0;c=c|0;f=f|0;return Qs[e&3](t|0,n|0,r|0,i|0,o|0,s|0,a|0,c|0,f|0)|0}function Fs(e){e=e|0;H(0);return 0}function qs(e,t){e=e|0;t=t|0;H(1);return 0}function Ks(e,t,n){e=e|0;t=t|0;n=n|0;H(2);return 0}function zs(e,t,n,r,i,o,s,a,c){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;s=s|0;a=a|0;c=c|0;H(3);return 0}var Gs=[Fs,an];var Hs=[qs,cn,un,qs];var Vs=[Ks,_s];var Qs=[zs,fn,ln,zs];return{___muldi3:Es,___udivdi3:Rs,_bitshift64Ashr:Os,_bitshift64Lshr:xs,_bitshift64Shl:Cs,_free:Uo,_i64Add:ks,_i64Subtract:Ss,_llvm_bswap_i32:Ps,_malloc:jo,_memcpy:Ms,_memset:Ds,_olm_account:Nn,_olm_account_generate_one_time_keys:or,_olm_account_generate_one_time_keys_random_length:ir,_olm_account_identity_keys:Jn,_olm_account_identity_keys_length:Xn,_olm_account_last_error:xn,_olm_account_mark_keys_as_published:nr,_olm_account_max_number_of_one_time_keys:rr,_olm_account_one_time_keys:tr,_olm_account_one_time_keys_length:er,_olm_account_sign:$n,_olm_account_signature_length:Zn,_olm_account_size:Mn,_olm_clear_account:Ln,_olm_clear_inbound_group_session:Pi,_olm_clear_outbound_group_session:co,_olm_clear_pk_decryption:Ft,_olm_clear_pk_encryption:xt,_olm_clear_pk_signing:en,_olm_clear_sas:Xi,_olm_clear_session:Fn,_olm_clear_utility:qn,_olm_create_account:Yn,_olm_create_account_random_length:Wn,_olm_create_inbound_session:cr,_olm_create_inbound_session_from:fr,_olm_create_outbound_session:ar,_olm_create_outbound_session_random_length:sr,_olm_create_sas:Zi,_olm_create_sas_random_length:Ji,_olm_decrypt:wr,_olm_decrypt_max_plaintext_length:Ar,_olm_ed25519_verify:Sr,_olm_encrypt:vr,_olm_encrypt_message_length:_r,_olm_encrypt_message_type:yr,_olm_encrypt_random_length:br,_olm_error:On,_olm_export_inbound_group_session:Vi,_olm_export_inbound_group_session_length:Hi,_olm_get_library_version:Rn,_olm_group_decrypt:Fi,_olm_group_decrypt_max_plaintext_length:Li,_olm_group_encrypt:yo,_olm_group_encrypt_message_length:go,_olm_import_inbound_group_session:Bi,_olm_inbound_group_session:Ci,_olm_inbound_group_session_first_known_index:zi,_olm_inbound_group_session_id:Ki,_olm_inbound_group_session_id_length:qi,_olm_inbound_group_session_is_verified:Gi,_olm_inbound_group_session_last_error:Mi,_olm_inbound_group_session_size:xi,_olm_init_inbound_group_session:Di,_olm_init_outbound_group_session:mo,_olm_init_outbound_group_session_random_length:po,_olm_matches_inbound_session:pr,_olm_matches_inbound_session_from:mr,_olm_outbound_group_session:ao,_olm_outbound_group_session_id:_o,_olm_outbound_group_session_id_length:bo,_olm_outbound_group_session_key:wo,_olm_outbound_group_session_key_length:Ao,_olm_outbound_group_session_last_error:fo,_olm_outbound_group_session_message_index:vo,_olm_outbound_group_session_size:so,_olm_pickle_account:Gn,_olm_pickle_account_length:Kn,_olm_pickle_inbound_group_session:ji,_olm_pickle_inbound_group_session_length:Ni,_olm_pickle_outbound_group_session:lo,_olm_pickle_outbound_group_session_length:uo,_olm_pickle_pk_decryption:Vt,_olm_pickle_pk_decryption_length:Ht,_olm_pickle_session:Hn,_olm_pickle_session_length:zn,_olm_pk_ciphertext_length:Mt,_olm_pk_decrypt:Yt,_olm_pk_decryption:Lt,_olm_pk_decryption_last_error:jt,_olm_pk_decryption_size:Ut,_olm_pk_encrypt:Nt,_olm_pk_encrypt_random_length:Bt,_olm_pk_encryption:Ot,_olm_pk_encryption_last_error:Tt,_olm_pk_encryption_set_recipient_key:Ct,_olm_pk_encryption_size:Rt,_olm_pk_generate_key:Gt,_olm_pk_generate_key_random_length:Kt,_olm_pk_get_private_key:Xt,_olm_pk_key_from_private:zt,_olm_pk_key_length:Pt,_olm_pk_mac_length:Dt,_olm_pk_max_plaintext_length:Wt,_olm_pk_private_key_length:qt,_olm_pk_sign:sn,_olm_pk_signature_length:on,_olm_pk_signing:Zt,_olm_pk_signing_key_from_seed:rn,_olm_pk_signing_last_error:$t,_olm_pk_signing_public_key_length:nn,_olm_pk_signing_seed_length:tn,_olm_pk_signing_size:Jt,_olm_remove_one_time_keys:gr,_olm_sas:Yi,_olm_sas_calculate_mac:io,_olm_sas_calculate_mac_long_kdf:oo,_olm_sas_generate_bytes:no,_olm_sas_get_pubkey:eo,_olm_sas_last_error:Qi,_olm_sas_mac_length:ro,_olm_sas_pubkey_length:$i,_olm_sas_set_their_key:to,_olm_sas_size:Wi,_olm_session:jn,_olm_session_describe:hr,_olm_session_has_received_message:dr,_olm_session_id:lr,_olm_session_id_length:ur,_olm_session_last_error:Cn,_olm_session_size:Dn,_olm_sha256:kr,_olm_sha256_length:Er,_olm_unpickle_account:Vn,_olm_unpickle_inbound_group_session:Ui,_olm_unpickle_outbound_group_session:ho,_olm_unpickle_pk_decryption:Qt,_olm_unpickle_session:Qn,_olm_utility:Un,_olm_utility_last_error:Pn,_olm_utility_size:Bn,_sbrk:Bs,dynCall_ii:Ns,dynCall_iii:js,dynCall_iiii:Us,dynCall_iiiiiiiiii:Ls,establishStackSpace:se,getTempRet0:fe,runPostSets:As,setTempRet0:ce,setThrew:ae,stackAlloc:re,stackRestore:oe,stackSave:ie}}(l.f,l.g,D);l.___muldi3=Ee.___muldi3,l.___udivdi3=Ee.___udivdi3,l._bitshift64Ashr=Ee._bitshift64Ashr,l._bitshift64Lshr=Ee._bitshift64Lshr,l._bitshift64Shl=Ee._bitshift64Shl,l._free=Ee._free,l._i64Add=Ee._i64Add,l._i64Subtract=Ee._i64Subtract,l._llvm_bswap_i32=Ee._llvm_bswap_i32;var ke=l._malloc=Ee._malloc;l._memcpy=Ee._memcpy,l._memset=Ee._memset,l._olm_account=Ee._olm_account,l._olm_account_generate_one_time_keys=Ee._olm_account_generate_one_time_keys,l._olm_account_generate_one_time_keys_random_length=Ee._olm_account_generate_one_time_keys_random_length,l._olm_account_identity_keys=Ee._olm_account_identity_keys,l._olm_account_identity_keys_length=Ee._olm_account_identity_keys_length,l._olm_account_last_error=Ee._olm_account_last_error,l._olm_account_mark_keys_as_published=Ee._olm_account_mark_keys_as_published,l._olm_account_max_number_of_one_time_keys=Ee._olm_account_max_number_of_one_time_keys,l._olm_account_one_time_keys=Ee._olm_account_one_time_keys,l._olm_account_one_time_keys_length=Ee._olm_account_one_time_keys_length,l._olm_account_sign=Ee._olm_account_sign,l._olm_account_signature_length=Ee._olm_account_signature_length,l._olm_account_size=Ee._olm_account_size,l._olm_clear_account=Ee._olm_clear_account,l._olm_clear_inbound_group_session=Ee._olm_clear_inbound_group_session,l._olm_clear_outbound_group_session=Ee._olm_clear_outbound_group_session,l._olm_clear_pk_decryption=Ee._olm_clear_pk_decryption,l._olm_clear_pk_encryption=Ee._olm_clear_pk_encryption,l._olm_clear_pk_signing=Ee._olm_clear_pk_signing,l._olm_clear_sas=Ee._olm_clear_sas,l._olm_clear_session=Ee._olm_clear_session,l._olm_clear_utility=Ee._olm_clear_utility,l._olm_create_account=Ee._olm_create_account,l._olm_create_account_random_length=Ee._olm_create_account_random_length,l._olm_create_inbound_session=Ee._olm_create_inbound_session,l._olm_create_inbound_session_from=Ee._olm_create_inbound_session_from,l._olm_create_outbound_session=Ee._olm_create_outbound_session,l._olm_create_outbound_session_random_length=Ee._olm_create_outbound_session_random_length,l._olm_create_sas=Ee._olm_create_sas,l._olm_create_sas_random_length=Ee._olm_create_sas_random_length,l._olm_decrypt=Ee._olm_decrypt,l._olm_decrypt_max_plaintext_length=Ee._olm_decrypt_max_plaintext_length,l._olm_ed25519_verify=Ee._olm_ed25519_verify,l._olm_encrypt=Ee._olm_encrypt,l._olm_encrypt_message_length=Ee._olm_encrypt_message_length,l._olm_encrypt_message_type=Ee._olm_encrypt_message_type,l._olm_encrypt_random_length=Ee._olm_encrypt_random_length,l._olm_error=Ee._olm_error,l._olm_export_inbound_group_session=Ee._olm_export_inbound_group_session,l._olm_export_inbound_group_session_length=Ee._olm_export_inbound_group_session_length,l._olm_get_library_version=Ee._olm_get_library_version,l._olm_group_decrypt=Ee._olm_group_decrypt,l._olm_group_decrypt_max_plaintext_length=Ee._olm_group_decrypt_max_plaintext_length,l._olm_group_encrypt=Ee._olm_group_encrypt,l._olm_group_encrypt_message_length=Ee._olm_group_encrypt_message_length,l._olm_import_inbound_group_session=Ee._olm_import_inbound_group_session,l._olm_inbound_group_session=Ee._olm_inbound_group_session,l._olm_inbound_group_session_first_known_index=Ee._olm_inbound_group_session_first_known_index,l._olm_inbound_group_session_id=Ee._olm_inbound_group_session_id,l._olm_inbound_group_session_id_length=Ee._olm_inbound_group_session_id_length,l._olm_inbound_group_session_is_verified=Ee._olm_inbound_group_session_is_verified,l._olm_inbound_group_session_last_error=Ee._olm_inbound_group_session_last_error,l._olm_inbound_group_session_size=Ee._olm_inbound_group_session_size,l._olm_init_inbound_group_session=Ee._olm_init_inbound_group_session,l._olm_init_outbound_group_session=Ee._olm_init_outbound_group_session,l._olm_init_outbound_group_session_random_length=Ee._olm_init_outbound_group_session_random_length,l._olm_matches_inbound_session=Ee._olm_matches_inbound_session,l._olm_matches_inbound_session_from=Ee._olm_matches_inbound_session_from,l._olm_outbound_group_session=Ee._olm_outbound_group_session,l._olm_outbound_group_session_id=Ee._olm_outbound_group_session_id,l._olm_outbound_group_session_id_length=Ee._olm_outbound_group_session_id_length,l._olm_outbound_group_session_key=Ee._olm_outbound_group_session_key,l._olm_outbound_group_session_key_length=Ee._olm_outbound_group_session_key_length,l._olm_outbound_group_session_last_error=Ee._olm_outbound_group_session_last_error,l._olm_outbound_group_session_message_index=Ee._olm_outbound_group_session_message_index,l._olm_outbound_group_session_size=Ee._olm_outbound_group_session_size,l._olm_pickle_account=Ee._olm_pickle_account,l._olm_pickle_account_length=Ee._olm_pickle_account_length,l._olm_pickle_inbound_group_session=Ee._olm_pickle_inbound_group_session,l._olm_pickle_inbound_group_session_length=Ee._olm_pickle_inbound_group_session_length,l._olm_pickle_outbound_group_session=Ee._olm_pickle_outbound_group_session,l._olm_pickle_outbound_group_session_length=Ee._olm_pickle_outbound_group_session_length,l._olm_pickle_pk_decryption=Ee._olm_pickle_pk_decryption,l._olm_pickle_pk_decryption_length=Ee._olm_pickle_pk_decryption_length,l._olm_pickle_session=Ee._olm_pickle_session,l._olm_pickle_session_length=Ee._olm_pickle_session_length,l._olm_pk_ciphertext_length=Ee._olm_pk_ciphertext_length,l._olm_pk_decrypt=Ee._olm_pk_decrypt,l._olm_pk_decryption=Ee._olm_pk_decryption,l._olm_pk_decryption_last_error=Ee._olm_pk_decryption_last_error,l._olm_pk_decryption_size=Ee._olm_pk_decryption_size,l._olm_pk_encrypt=Ee._olm_pk_encrypt,l._olm_pk_encrypt_random_length=Ee._olm_pk_encrypt_random_length,l._olm_pk_encryption=Ee._olm_pk_encryption,l._olm_pk_encryption_last_error=Ee._olm_pk_encryption_last_error,l._olm_pk_encryption_set_recipient_key=Ee._olm_pk_encryption_set_recipient_key,l._olm_pk_encryption_size=Ee._olm_pk_encryption_size,l._olm_pk_generate_key=Ee._olm_pk_generate_key,l._olm_pk_generate_key_random_length=Ee._olm_pk_generate_key_random_length,l._olm_pk_get_private_key=Ee._olm_pk_get_private_key,l._olm_pk_key_from_private=Ee._olm_pk_key_from_private,l._olm_pk_key_length=Ee._olm_pk_key_length,l._olm_pk_mac_length=Ee._olm_pk_mac_length,l._olm_pk_max_plaintext_length=Ee._olm_pk_max_plaintext_length,l._olm_pk_private_key_length=Ee._olm_pk_private_key_length,l._olm_pk_sign=Ee._olm_pk_sign,l._olm_pk_signature_length=Ee._olm_pk_signature_length,l._olm_pk_signing=Ee._olm_pk_signing,l._olm_pk_signing_key_from_seed=Ee._olm_pk_signing_key_from_seed,l._olm_pk_signing_last_error=Ee._olm_pk_signing_last_error,l._olm_pk_signing_public_key_length=Ee._olm_pk_signing_public_key_length,l._olm_pk_signing_seed_length=Ee._olm_pk_signing_seed_length,l._olm_pk_signing_size=Ee._olm_pk_signing_size,l._olm_remove_one_time_keys=Ee._olm_remove_one_time_keys,l._olm_sas=Ee._olm_sas,l._olm_sas_calculate_mac=Ee._olm_sas_calculate_mac,l._olm_sas_calculate_mac_long_kdf=Ee._olm_sas_calculate_mac_long_kdf,l._olm_sas_generate_bytes=Ee._olm_sas_generate_bytes,l._olm_sas_get_pubkey=Ee._olm_sas_get_pubkey,l._olm_sas_last_error=Ee._olm_sas_last_error,l._olm_sas_mac_length=Ee._olm_sas_mac_length,l._olm_sas_pubkey_length=Ee._olm_sas_pubkey_length,l._olm_sas_set_their_key=Ee._olm_sas_set_their_key,l._olm_sas_size=Ee._olm_sas_size,l._olm_session=Ee._olm_session,l._olm_session_describe=Ee._olm_session_describe,l._olm_session_has_received_message=Ee._olm_session_has_received_message,l._olm_session_id=Ee._olm_session_id,l._olm_session_id_length=Ee._olm_session_id_length,l._olm_session_last_error=Ee._olm_session_last_error,l._olm_session_size=Ee._olm_session_size,l._olm_sha256=Ee._olm_sha256,l._olm_sha256_length=Ee._olm_sha256_length,l._olm_unpickle_account=Ee._olm_unpickle_account,l._olm_unpickle_inbound_group_session=Ee._olm_unpickle_inbound_group_session,l._olm_unpickle_outbound_group_session=Ee._olm_unpickle_outbound_group_session,l._olm_unpickle_pk_decryption=Ee._olm_unpickle_pk_decryption,l._olm_unpickle_session=Ee._olm_unpickle_session,l._olm_utility=Ee._olm_utility,l._olm_utility_last_error=Ee._olm_utility_last_error,l._olm_utility_size=Ee._olm_utility_size,l._sbrk=Ee._sbrk,l.establishStackSpace=Ee.establishStackSpace,l.getTempRet0=Ee.getTempRet0,l.runPostSets=Ee.runPostSets,l.setTempRet0=Ee.setTempRet0,l.setThrew=Ee.setThrew;var Se=l.stackAlloc=Ee.stackAlloc,Ie=l.stackRestore=Ee.stackRestore,Te=l.stackSave=Ee.stackSave;if(l.dynCall_ii=Ee.dynCall_ii,l.dynCall_iii=Ee.dynCall_iii,l.dynCall_iiii=Ee.dynCall_iiii,l.dynCall_iiiiiiiiii=Ee.dynCall_iiiiiiiiii,l.asm=Ee,l.ALLOC_STACK=1,me){if(String.prototype.startsWith?!me.startsWith(ge):0!==me.indexOf(ge)){var Re=me;me=l.locateFile?l.locateFile(Re,E):E+Re}if(_||v){var Oe=l.readBinary(me);N.set(Oe,8)}else{var xe=function(){l.readAsync(me,Ce,(function(){throw"could not load memory initializer "+me}))};de++,l.monitorRunDependencies&&l.monitorRunDependencies(de);var Ce=function(e){e.byteLength&&(e=new Uint8Array(e)),N.set(e,8),l.memoryInitializerRequest&&delete l.memoryInitializerRequest.response,de--,l.monitorRunDependencies&&l.monitorRunDependencies(de),0==de&&(null!==he&&(clearInterval(he),he=null),pe&&(e=pe,pe=null,e()))},Pe=we(me);if(Pe)Ce(Pe.buffer);else if(l.memoryInitializerRequest){var Me=function(){var e=l.memoryInitializerRequest,t=e.response;if(200!==e.status&&0!==e.status){if(!(t=we(l.memoryInitializerRequestURL)))return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+e.status+", retrying "+me),void xe();t=t.buffer}Ce(t)};l.memoryInitializerRequest.response?setTimeout(Me,0):l.memoryInitializerRequest.addEventListener("load",Me)}else xe()}}function De(){function e(){if(!l.calledRun&&(l.calledRun=!0,!O)){if(oe||(oe=!0,ee(ne)),ee(re),l.onRuntimeInitialized&&l.onRuntimeInitialized(),l.postRun)for("function"==typeof l.postRun&&(l.postRun=[l.postRun]);l.postRun.length;){var e=l.postRun.shift();ie.unshift(e)}ee(ie)}}if(!(0=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,n){"use strict";var r=n(18);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,s){if(s!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}},function(e,t){e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t3&&void 0!==arguments[3]?arguments[3]:{};return Object.assign({unified:e,emoji:e.split("-").map((function(e){return parseInt(e,16)})).map((function(e){return String.fromCodePoint(e)})).join(""),originalUnified:t[l.EMOJI_PROPERTY_UNIFIED],names:t[l.EMOJI_PROPERTY_NAME],activeSkinTone:n},r)},D=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Function.prototype;return function(t,n,r,i){var o=M(n,r,i);return P(o),e(t,o)}},B=n(8),N=(n(23),function(){var e=Object(a.useContext)(g),t=e.state,n=t.skinTonesSpread,r=t.activeSkinTone,i=e.dispatch,o=function(){i({type:_,spread:!n})},s=function(e){var t=e.target.value;i({type:v,skinTone:t})};return c.a.createElement("ul",{className:"skin-tones-list"},B.map((function(e,t){var i=e===r;return c.a.createElement("li",{key:e,className:"t".concat(e),style:{transform:"translateX(-".concat(n?20*t:0,"px) scale(").concat(i?"1.5":1,")"),zIndex:i?2:1}},c.a.createElement("input",{type:"radio",onChange:s,name:"skin-tone",value:e,id:"tone_".concat(e)}),c.a.createElement("label",{htmlFor:"tone_".concat(e),"data-name":"tones",onClick:o}))})))}),j=n(9),U=n.n(j),L=function(e){var t=Object(a.useContext)(g).state.emojiUrl;return e?"".concat(t,"/").concat(e,".png"):t},F=(n(25),function(e){var t=e.unified,n=e.dispatch,r=e.shouldLoad,i=void 0===r||r;return c.a.createElement("img",U()({className:"emoji-img",onError:function(){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Function.prototype;t({type:w,unified:e})}(t,n)}},i&&function(e){return{src:L(e)}}(t)))}),q=F;F.propTypes={unified:u.a.string,shouldLoad:u.a.bool,dispatch:u.a.func},n(27);var K=function(e){var t=e.closeVariations,n=Object(a.useContext)(g).state,r=n.variationMenu,i=n.activeSkinTone,o=n.onEmojiClick;return r?c.a.createElement("div",{className:"variations-wrapper"},c.a.createElement("ul",{className:"variation-list"},B.map((function(e){var n=r[l.EMOJI_PROPERTY_SKIN_VARIATIONS].find((function(t){return t.includes(e)}))||r[l.EMOJI_PROPERTY_UNIFIED];return c.a.createElement("li",{key:n},c.a.createElement("button",{onClick:function(e){return t(e),o(e,n,r,i)},onMouseDown:function(e){return e.stopPropagation()}},c.a.createElement(q,{unified:n})))})))):null},z=K;K.propTypes={closeVariations:u.a.func};var G=n(7),H=n.n(G),V=n(10),Q=(n(29),function(e){var t=e.emojiListRef,n=Object(a.useContext)(g),r=n.state,i=r.activeCategory,o=r.filter,s=n.dispatch,f=!1;return o&&o.length&&(f=!0),c.a.createElement("nav",{onClick:function(e){var n=e.target;if(!f){var r=n.getAttribute("data-name");if(t&&t.current&&r){s({type:y,activeCategory:r}),s({type:A,group:r});var i=t.current,o=i.querySelector("[".concat("data-name",'="').concat(r,'"]'));i.scrollTop=o.offsetTop}}},className:H()("emoji-categories",{inactive:f})},V.map((function(e){return c.a.createElement("button",{key:e,className:H()("icn-".concat(e.replace(" & ","_")),{active:i===e}),"data-name":e})})))}),W=Q;Q.propTypes={emojiListRef:u.a.shape({current:u.a.instanceOf(Element)})};var Y,X,J=n(11),Z=function(e){var t={groups:{},emojis:{}},n=function(n){e[n].reduce((function(e,t){var r=t[l.EMOJI_PROPERTY_UNIFIED];return t[l.EMOJI_PROPERTY_GROUP]=n,e.emojis[r]=t,e.groups[n]=e.groups[n]||[],e.groups[n].push(r),e}),t)};for(var r in e)n(r);return t}(J),$=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,n=".content-wrapper",r=t&&t.current?t.current.closest("".concat(n)):document.querySelector(".emoji-picker-react ".concat(n));r.setAttribute("data-name",e)},ee=u.a.shape((X={},i()(X,l.EMOJI_PROPERTY_NAME,u.a.arrayOf(u.a.string)),i()(X,l.EMOJI_PROPERTY_UNIFIED,u.a.string),i()(X,l.EMOJI_PROPERTY_SKIN_VARIATIONS,u.a.arrayOf(u.a.string)),i()(X,l.EMOJI_PROPERTY_GROUP,u.a.string),X));function te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}n(40);var ne=["#aeeff0","#ffe0e0","#d6f8b8","#c6cfff","#f1f0d1"],re=null,ie=function(){return clearTimeout(re)},oe=function(e){var t,n,r=e.emoji,o=e.shouldLoad,s=e.hidden,a=e.activeSkinTone,f=e.openVariationMenu,u=e.variationMenuOpen,d=e.handleMouseEnter,h=e.handleMouseLeave,p=e.onEmojiClick,m=e.index,g=e.dispatch,y=r[l.EMOJI_PROPERTY_SKIN_VARIATIONS],b=function(e){for(var t=1;t=0}))),t||(t=r[l.EMOJI_PROPERTY_UNIFIED]),c.a.createElement("li",{style:b,className:H()("emoji",{"has-skin-variation":y&&f})},c.a.createElement("button",{onMouseDown:function(){y&&f&&(re=setTimeout((function(){f(r)}),500))},onMouseEnter:d,onMouseLeave:h,onMouseUp:ie,onClick:function(e){u||p(e,t,r,a)}},c.a.createElement(q,{unified:t,shouldLoad:o,dispatch:g})))},se=oe;oe.propTypes={emoji:ee,shouldLoad:u.a.bool,hidden:u.a.bool,activeSkinTone:u.a.string,openVariationMenu:u.a.func,variationMenuOpen:u.a.bool,handleMouseEnter:u.a.func,handleMouseLeave:u.a.func,onEmojiClick:u.a.func,index:u.a.number,dispatch:u.a.func};var ae=function(e){var t=e.unsetEmojiName,n=e.emojiListRef,r=Object(a.useContext)(g),i=r.state,o=i.recentlyUsed,s=i.onEmojiClick,f=i.filterResult,u=i.failedToLoad,d=void 0===u?{}:u,h=r.dispatch;return!o.length||f?null:c.a.createElement("ul",{className:"emoji-group","data-name":l.GROUP_NAME_RECENTLY_USED},o.map((function(e,r){var i=e[l.EMOJI_PROPERTY_UNIFIED],o=Z.emojis[i];return d[i]||!o?null:c.a.createElement(se,U()({key:r,emoji:o},e[l.EMOJI_PROPERTY_SKIN_VARIATIONS]&&{activeSkinTone:e[l.EMOJI_PROPERTY_SKIN_VARIATIONS]},{index:r,handleMouseLeave:t,onEmojiClick:s,handleMouseEnter:function(){return $(o[l.EMOJI_PROPERTY_NAME][0],n)},dispatch:h,shouldLoad:!0}))})))},ce=ae;function fe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}ae.propTypes={unsetEmojiName:u.a.func,emojiListRef:u.a.shape({current:u.a.instanceOf(Element)})},n(42);var ue=function(e){var t=e.emojiListRef,n=Object(a.useContext)(g).state.filterResult;(function(e){var t=Object(a.useContext)(g),n=t.state,r=n.filterResult,i=n.activeCategory,o=t.dispatch;Object(a.useEffect)((function(){void 0!==T.IntersectionObserver&&!Y&&e.current&&(Y=new IntersectionObserver((function(e){e.forEach((function(e){var t=e.target,n=t.getAttribute("data-name");if(0===e.intersectionRatio){if(n===i)o({type:y,activeCategory:null});else if(n===l.GROUP_NAME_RECENTLY_USED){var r=t.nextSibling;if(r){var s=r.getAttribute("data-name");o({type:y,activeCategory:s})}}}else i||(o({type:A,group:n}),o({type:y,activeCategory:n}))}))}),{root:e.current.parentElement})),Y.disconnect(),e&&e.current&&I()(e.current.querySelectorAll(".emoji-group")).forEach((function(e){Y.observe(e)}))}),[e.current,r])})(t),function(e,t){var n=Object(a.useRef)();Object(a.useEffect)((function(){t&&t.current&&(t.current.scrollTop=0),n.current=e}),[e]),n.current}(n,t);var r=function(){return $("",t)};return c.a.createElement("section",{className:"emoji-scroll-wrapper",ref:t},c.a.createElement(ce,{unsetEmojiName:r,emojiListRef:t}),V.map((function(e){var n=function(e,t){var n=t.unsetEmojiName,r=t.emojiListRef,i=Object(a.useContext)(g),o=i.state,s=o.activeSkinTone,f=o.filterResult,u=o.seenGroups,d=void 0===u?{}:u,h=o.onEmojiClick,p=o.variationMenu,m=o.failedToLoad,y=void 0===m?null:m,_=o.preload,v=i.dispatch,A=_||!(!d[e]&&!f&&"function"==typeof T.IntersectionObserver),w=!!p,E=function(e){return v({type:b,emoji:e})};return Object(a.useMemo)((function(){var t=f?Object.keys(f[e]||{}):Z.groups[e];return t.reduce((function(e,i,o){if(y&&y[i])return e;var a=Z.emojis[i],f=!t.length;return e.shown||f||(e.shown=!0),e.list.push(c.a.createElement(se,{emoji:a,dispatch:v,openVariationMenu:E,activeSkinTone:s,handleMouseLeave:n,variationMenuOpen:w,handleMouseEnter:function(){return $(a[l.EMOJI_PROPERTY_NAME][0],r)},hidden:f,shouldLoad:A,onEmojiClick:h,index:o,key:a[l.EMOJI_PROPERTY_UNIFIED]})),e}),{list:[],shown:!1})}),[s,f,e,A,w,y])}(e,{unsetEmojiName:r,emojiListRef:t}),o=n.list,s=function(e){for(var t=1;t3&&void 0!==arguments[3]?arguments[3]:100,i=n;return new Promise((function(n){var o=0;!function s(){for(var a=o;ao.value.length&&i.includes(o.value))t=[].concat(I()(n),[{value:i,terms:o.terms.filter((function(e){return e.includes(i)}))}]);else if(o&&i.length0;a--)if(i.includes(n[a-1].value)){s=a;break}n.length=s,t=I()(n)}else 0!==n.length&&i.includes(o.value)||(t=[{value:i,terms:he[i[0]].filter((function(e){return e.includes(i)}))}]);var c=t[t.length-1];c&&c.value?pe(c&&c.terms||[],(function(e,t){return de[t]?(de[t]||[]).reduce((function(e,t){var n=Z.emojis[t][l.EMOJI_PROPERTY_GROUP];return e[n]=e[n]||{},e[n][t]=!0,e}),e):e}),{}).then((function(e){r({type:E,filter:t,filterResult:e})})):r({type:E,filter:t,filterResult:null})}},ye=(n(44),function(){return c.a.createElement("input",{className:"emoji-search",onChange:ge(),autoFocus:!0})});n(46),n.d(t,"SKIN_TONE_NEUTRAL",(function(){return"neutral"})),n.d(t,"SKIN_TONE_LIGHT",(function(){return"1f3fb"})),n.d(t,"SKIN_TONE_MEDIUM_LIGHT",(function(){return"1f3fc"})),n.d(t,"SKIN_TONE_MEDIUM",(function(){return"1f3fe"})),n.d(t,"SKIN_TONE_MEDIUM_DARK",(function(){return"1f3ff"})),n.d(t,"SKIN_TONE_DARK",(function(){return"1f3fd"}));var be=function(e){var t=e.emojiUrl,n=void 0===t?"https://cdn.jsdelivr.net/gh/iamcal/emoji-data@master/img-apple-160":t,r=e.onEmojiClick,o=e.preload,f=void 0!==o&&o,u=e.skinTone,d=void 0===u?"neutral":u,h=Object(a.useRef)(null),p=Object(a.useReducer)(k,{activeSkinTone:d,emojiUrl:n,onEmojiClick:D(r),seenGroups:i()({},l.GROUP_NAME_PEOPLE,!0),recentlyUsed:C(),preload:f}),m=s()(p,2),y=m[0],v=m[1],A=function(e){var t=e.target;y.variationMenu&&v({type:b}),y.skinTonesSpread&&"tones"!==t.getAttribute("data-name")&&v({type:_})};return c.a.createElement(g.Provider,{value:{state:y,dispatch:v}},c.a.createElement("aside",{className:"emoji-picker-react",onScroll:A,onMouseDown:A},c.a.createElement(W,{emojiListRef:h}),c.a.createElement("div",{style:{position:"relative"}},c.a.createElement(ye,null),c.a.createElement(N,null)),c.a.createElement("div",{className:"content-wrapper","data-name":y.emojiName},c.a.createElement(z,{closeVariations:A}),c.a.createElement(le,{emojiListRef:h}))))};t.default=be,be.propTypes={emojiUrl:u.a.string,onEmojiClick:u.a.func,preload:u.a.bool,skinTone:u.a.string}}]))}).call(this,n(6))},function(e,t,n){"use strict";var r=n(26),i=n.n(r),o=n(27),s=n.n(o),a=n(53),c=n.n(a),f=n(54),u=n.n(f),l=n(4),d=n.n(l),h=n(55),p=n.n(h),m=n(1),g=n.n(m),y=n(0),b=n.n(y),_=(n(9),n(331)),v=n(158),A=n.n(v),w=n(22);function E(e,t,n){return e===t||(e.correspondingElement?e.correspondingElement.classList.contains(n):e.classList.contains(n))}var k,S,I=(void 0===k&&(k=0),function(){return++k}),T={},R={},O=["touchstart","touchmove"];function x(e,t){var n=null;return-1!==O.indexOf(t)&&S&&(n={passive:!e.props.preventDefault}),n}var C=function(e,t){var n,r,i=e.displayName||e.name||"Component";return r=n=function(n){var r,o;function s(e){var r;return(r=n.call(this,e)||this).__outsideClickHandler=function(e){if("function"!=typeof r.__clickOutsideHandlerProp){var t=r.getInstance();if("function"!=typeof t.props.handleClickOutside){if("function"!=typeof t.handleClickOutside)throw new Error("WrappedComponent: "+i+" lacks a handleClickOutside(event) function for processing outside click events.");t.handleClickOutside(e)}else t.props.handleClickOutside(e)}else r.__clickOutsideHandlerProp(e)},r.__getComponentNode=function(){var e=r.getInstance();return t&&"function"==typeof t.setClickOutsideRef?t.setClickOutsideRef()(e):"function"==typeof e.setClickOutsideRef?e.setClickOutsideRef():Object(w.findDOMNode)(e)},r.enableOnClickOutside=function(){if("undefined"!=typeof document&&!R[r._uid]){void 0===S&&(S=function(){if("undefined"!=typeof window&&"function"==typeof window.addEventListener){var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}}),n=function(){};return window.addEventListener("testPassiveEventSupport",n,t),window.removeEventListener("testPassiveEventSupport",n,t),e}}()),R[r._uid]=!0;var e=r.props.eventTypes;e.forEach||(e=[e]),T[r._uid]=function(e){var t;null!==r.componentNode&&(r.props.preventDefault&&e.preventDefault(),r.props.stopPropagation&&e.stopPropagation(),r.props.excludeScrollbar&&(t=e,document.documentElement.clientWidth<=t.clientX||document.documentElement.clientHeight<=t.clientY)||function(e,t,n){if(e===t)return!0;for(;e.parentNode;){if(E(e,t,n))return!0;e=e.parentNode}return e}(e.target,r.componentNode,r.props.outsideClickIgnoreClass)===document&&r.__outsideClickHandler(e))},e.forEach((function(e){document.addEventListener(e,T[r._uid],x(r,e))}))}},r.disableOnClickOutside=function(){delete R[r._uid];var e=T[r._uid];if(e&&"undefined"!=typeof document){var t=r.props.eventTypes;t.forEach||(t=[t]),t.forEach((function(t){return document.removeEventListener(t,e,x(r,t))})),delete T[r._uid]}},r.getRef=function(e){return r.instanceRef=e},r._uid=I(),r}o=n,(r=s).prototype=Object.create(o.prototype),r.prototype.constructor=r,r.__proto__=o;var a=s.prototype;return a.getInstance=function(){if(!e.prototype.isReactComponent)return this;var t=this.instanceRef;return t.getInstance?t.getInstance():t},a.componentDidMount=function(){if("undefined"!=typeof document&&document.createElement){var e=this.getInstance();if(t&&"function"==typeof t.handleClickOutside&&(this.__clickOutsideHandlerProp=t.handleClickOutside(e),"function"!=typeof this.__clickOutsideHandlerProp))throw new Error("WrappedComponent: "+i+" lacks a function for processing outside click events specified by the handleClickOutside config option.");this.componentNode=this.__getComponentNode(),this.props.disableOnClickOutside||this.enableOnClickOutside()}},a.componentDidUpdate=function(){this.componentNode=this.__getComponentNode()},a.componentWillUnmount=function(){this.disableOnClickOutside()},a.render=function(){var t=this.props,n=(t.excludeScrollbar,function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}(t,["excludeScrollbar"]));return e.prototype.isReactComponent?n.ref=this.getRef:n.wrappedRef=this.getRef,n.disableOnClickOutside=this.disableOnClickOutside,n.enableOnClickOutside=this.enableOnClickOutside,Object(y.createElement)(e,n)},s}(y.Component),n.displayName="OnClickOutside("+i+")",n.defaultProps={eventTypes:["mousedown","touchstart"],excludeScrollbar:t&&t.excludeScrollbar||!1,outsideClickIgnoreClass:"ignore-react-onclickoutside",preventDefault:!1,stopPropagation:!1},n.getClass=function(){return e.getClass?e.getClass():e},r},P=function(){return b.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24",viewBox:"0 0 24 24",width:"24"},b.a.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),b.a.createElement("path",{id:"icon",fill:"#828282",d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"}))},M=function(e){function t(e){var n;return i()(this,t),n=c()(this,u()(t).call(this,e)),g()(d()(n),"handleClickOutside",(function(e){n.props.closeEmojiSelector()})),n}return p()(t,e),s()(t,[{key:"render",value:function(){var e=this.props,t=e.onEmojiClick,n=e.emojiSelectorOpen,r=e.toggleEmojiSelector;return(b.a.createElement("div",{className:"emoji-button-container"},b.a.createElement("div",{className:"pos-relative"},b.a.createElement(_.a,{in:n,timeout:250},(function(e){return b.a.createElement("div",{className:"emoji-picker emoji-picker-".concat(e),"aria-hidden":!n},b.a.createElement(A.a,{onEmojiClick:t,emojiUrl:"https://cdn.jsdelivr.net/gh/iamcal/emoji-data@master/img-apple-64"}))})),b.a.createElement("button",{type:"button",id:"emoji-button",onClick:r,"aria-label":"Emoji picker"},b.a.createElement(P,null)))))}}]),t}(b.a.Component);t.a=C(M)},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return g}));var r=n(150),i=n.n(r),o=n(26),s=n.n(o),a=n(27),c=n.n(a),f=n(1),u=n.n(f),l=n(0),d=n.n(l),h=n(22),p=n.n(h),m=n(151),g=(n(329),function(){function e(){s()(this,e)}return c()(e,null,[{key:"mount",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.parentElement,r=void 0===n?null:n,o=i()(t,["parentElement"]),s=d.a.createElement(m.a,o);function a(){if(e.el)throw new Error("EmbeddableChatbox is already mounted, unmount first");var t=document.createElement("div");t.setAttribute("class","cleanslate"),r?document.querySelector(r).appendChild(t):document.body.appendChild(t),p.a.render(s,t),e.el=t}"complete"===document.readyState?a():window.addEventListener("load",(function(){a()}))}},{key:"unmount",value:function(){if(!e.el)throw new Error("EmbeddableChatbox is not mounted, mount first");p.a.unmountComponentAtNode(e.el),e.el.parentNode.removeChild(e.el),e.el=null}}]),e}());u()(g,"el",void 0)},,function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}},function(e,t,n){"use strict"; /** @license React v16.12.0 * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r=n(56),i="function"==typeof Symbol&&Symbol.for,o=i?Symbol.for("react.element"):60103,s=i?Symbol.for("react.portal"):60106,a=i?Symbol.for("react.fragment"):60107,c=i?Symbol.for("react.strict_mode"):60108,f=i?Symbol.for("react.profiler"):60114,u=i?Symbol.for("react.provider"):60109,l=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.forward_ref"):60112,h=i?Symbol.for("react.suspense"):60113;i&&Symbol.for("react.suspense_list");var p=i?Symbol.for("react.memo"):60115,m=i?Symbol.for("react.lazy"):60116;i&&Symbol.for("react.fundamental"),i&&Symbol.for("react.responder"),i&&Symbol.for("react.scope");var g="function"==typeof Symbol&&Symbol.iterator;function y(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nC.length&&C.push(e)}function D(e,t,n){return null==e?0:function e(t,n,r,i){var a=typeof t;"undefined"!==a&&"boolean"!==a||(t=null);var c=!1;if(null===t)c=!0;else switch(a){case"string":case"number":c=!0;break;case"object":switch(t.$$typeof){case o:case s:c=!0}}if(c)return r(i,t,""===n?"."+B(t,0):n),1;if(c=0,n=""===n?".":n+":",Array.isArray(t))for(var f=0;fJens Taylor * @see http://github.com/homebrewing/brauhaus-diff * @author Gary Court * @see http://github.com/garycourt/murmurhash-js * @author Austin Appleby * @see http://sites.google.com/site/murmurhash/ */ !function(){var t;function n(e,r){var i=this instanceof n?this:t;if(i.reset(r),"string"==typeof e&&e.length>0&&i.hash(e),i!==this)return i}n.prototype.hash=function(e){var t,n,r,i,o;switch(o=e.length,this.len+=o,n=this.k1,r=0,this.rem){case 0:n^=o>r?65535&e.charCodeAt(r++):0;case 1:n^=o>r?(65535&e.charCodeAt(r++))<<8:0;case 2:n^=o>r?(65535&e.charCodeAt(r++))<<16:0;case 3:n^=o>r?(255&e.charCodeAt(r))<<24:0,n^=o>r?(65280&e.charCodeAt(r++))>>8:0}if(this.rem=o+this.rem&3,(o-=this.rem)>0){for(t=this.h1;t=5*(t=(t^=n=13715*(n=(n=11601*n+3432906752*(65535&n)&4294967295)<<15|n>>>17)+461832192*(65535&n)&4294967295)<<13|t>>>19)+3864292196&4294967295,!(r>=o);)n=65535&e.charCodeAt(r++)^(65535&e.charCodeAt(r++))<<8^(65535&e.charCodeAt(r++))<<16,n^=(255&(i=e.charCodeAt(r++)))<<24^(65280&i)>>8;switch(n=0,this.rem){case 3:n^=(65535&e.charCodeAt(r+2))<<16;case 2:n^=(65535&e.charCodeAt(r+1))<<8;case 1:n^=65535&e.charCodeAt(r)}this.h1=t}return this.k1=n,this},n.prototype.result=function(){var e,t;return e=this.k1,t=this.h1,e>0&&(t^=e=13715*(e=(e=11601*e+3432906752*(65535&e)&4294967295)<<15|e>>>17)+461832192*(65535&e)&4294967295),t^=this.len,t=51819*(t^=t>>>16)+2246770688*(65535&t)&4294967295,t=44597*(t^=t>>>13)+3266445312*(65535&t)&4294967295,(t^=t>>>16)>>>0},n.prototype.reset=function(e){return this.h1="number"==typeof e?e:0,this.rem=this.k1=this.len=0,this},t=new n,e.exports=n}()},function(e,t,n){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=n(23),t.createHash=t.Hash=n(30),t.createHmac=t.Hmac=n(97);var r=n(208),i=Object.keys(r),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return o};var s=n(100);t.pbkdf2=s.pbkdf2,t.pbkdf2Sync=s.pbkdf2Sync;var a=n(210);t.Cipher=a.Cipher,t.createCipher=a.createCipher,t.Cipheriv=a.Cipheriv,t.createCipheriv=a.createCipheriv,t.Decipher=a.Decipher,t.createDecipher=a.createDecipher,t.Decipheriv=a.Decipheriv,t.createDecipheriv=a.createDecipheriv,t.getCiphers=a.getCiphers,t.listCiphers=a.listCiphers;var c=n(225);t.DiffieHellmanGroup=c.DiffieHellmanGroup,t.createDiffieHellmanGroup=c.createDiffieHellmanGroup,t.getDiffieHellman=c.getDiffieHellman,t.createDiffieHellman=c.createDiffieHellman,t.DiffieHellman=c.DiffieHellman;var f=n(230);t.createSign=f.createSign,t.Sign=f.Sign,t.createVerify=f.createVerify,t.Verify=f.Verify,t.createECDH=n(264);var u=n(265);t.publicEncrypt=u.publicEncrypt,t.privateEncrypt=u.privateEncrypt,t.publicDecrypt=u.publicDecrypt,t.privateDecrypt=u.privateDecrypt;var l=n(268);t.randomFill=l.randomFill,t.randomFillSync=l.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},function(e,t,n){var r=n(2),i=n(24),o=n(3).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function f(e){return e<<30|e>>>2}function u(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,l=0;l<16;++l)n[l]=e.readInt32BE(4*l);for(;l<80;++l)n[l]=n[l-3]^n[l-8]^n[l-14]^n[l-16];for(var d=0;d<80;++d){var h=~~(d/20),p=0|((t=r)<<5|t>>>27)+u(h,i,o,a)+c+n[d]+s[h];c=a,a=o,o=f(i),i=r,r=p}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},function(e,t,n){var r=n(2),i=n(24),o=n(3).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function f(e){return e<<5|e>>>27}function u(e){return e<<30|e>>>2}function l(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,d=0;d<16;++d)n[d]=e.readInt32BE(4*d);for(;d<80;++d)n[d]=(t=n[d-3]^n[d-8]^n[d-14]^n[d-16])<<1|t>>>31;for(var h=0;h<80;++h){var p=~~(h/20),m=f(r)+l(p,i,o,a)+c+n[h]+s[p]|0;c=a,a=o,o=u(i),i=r,r=m}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},function(e,t,n){var r=n(2),i=n(95),o=n(24),s=n(3).Buffer,a=new Array(64);function c(){this.init(),this._w=a,o.call(this,64,56)}r(c,i),c.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=c},function(e,t,n){var r=n(2),i=n(96),o=n(24),s=n(3).Buffer,a=new Array(160);function c(){this.init(),this._w=a,o.call(this,128,112)}r(c,i),c.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(48);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=c},function(e,t,n){"use strict";var r=n(2),i=n(3).Buffer,o=n(18),s=i.alloc(128);function a(e,t){o.call(this,"digest"),"string"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>64?t=e(t):t.length<64&&(t=i.concat([t,s],64));for(var n=this._ipad=i.allocUnsafe(64),r=this._opad=i.allocUnsafe(64),a=0;a<64;a++)n[a]=54^t[a],r[a]=92^t[a];this._hash=[n]}r(a,o),a.prototype._update=function(e){this._hash.push(e)},a.prototype._final=function(){var e=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,e]))},e.exports=a},function(e,t,n){e.exports=n(99)},function(e,t,n){(function(t,r){var i,o=n(101),s=n(102),a=n(103),c=n(3).Buffer,f=t.crypto&&t.crypto.subtle,u={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},l=[];function d(e,t,n,r,i){return f.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return f.deriveBits({name:"PBKDF2",salt:t,iterations:n,hash:{name:i}},e,r<<3)})).then((function(e){return c.from(e)}))}e.exports=function(e,n,h,p,m,g){"function"==typeof m&&(g=m,m=void 0);var y=u[(m=m||"sha1").toLowerCase()];if(!y||"function"!=typeof t.Promise)return r.nextTick((function(){var t;try{t=a(e,n,h,p,m)}catch(e){return g(e)}g(null,t)}));if(o(e,n,h,p),"function"!=typeof g)throw new Error("No callback provided to pbkdf2");c.isBuffer(e)||(e=c.from(e,s)),c.isBuffer(n)||(n=c.from(n,s)),function(e,t){e.then((function(e){r.nextTick((function(){t(null,e)}))}),(function(e){r.nextTick((function(){t(e)}))}))}(function(e){if(t.process&&!t.process.browser)return Promise.resolve(!1);if(!f||!f.importKey||!f.deriveBits)return Promise.resolve(!1);if(void 0!==l[e])return l[e];var n=d(i=i||c.alloc(8),i,10,128,e).then((function(){return!0})).catch((function(){return!1}));return l[e]=n,n}(y).then((function(t){return t?d(e,n,h,p,y):a(e,n,h,p,m)})),g)}}).call(this,n(6),n(13))},function(e,t,n){var r=n(211),i=n(65),o=n(66),s=n(224),a=n(44);function c(e,t,n){if(e=e.toLowerCase(),o[e])return i.createCipheriv(e,t,n);if(s[e])return new r({key:t,iv:n,mode:e});throw new TypeError("invalid suite type")}function f(e,t,n){if(e=e.toLowerCase(),o[e])return i.createDecipheriv(e,t,n);if(s[e])return new r({key:t,iv:n,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var n,r;if(e=e.toLowerCase(),o[e])n=o[e].key,r=o[e].iv;else{if(!s[e])throw new TypeError("invalid suite type");n=8*s[e].key,r=s[e].iv}var i=a(t,!1,n,r);return c(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=c,t.createDecipher=t.Decipher=function(e,t){var n,r;if(e=e.toLowerCase(),o[e])n=o[e].key,r=o[e].iv;else{if(!s[e])throw new TypeError("invalid suite type");n=8*s[e].key,r=s[e].iv}var i=a(t,!1,n,r);return f(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=f,t.listCiphers=t.getCiphers=function(){return Object.keys(s).concat(i.getCiphers())}},function(e,t,n){var r=n(18),i=n(212),o=n(2),s=n(3).Buffer,a={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function c(e){r.call(this);var t,n=e.mode.toLowerCase(),i=a[n];t=e.decrypt?"decrypt":"encrypt";var o=e.key;s.isBuffer(o)||(o=s.from(o)),"des-ede"!==n&&"des-ede-cbc"!==n||(o=s.concat([o,o.slice(0,8)]));var c=e.iv;s.isBuffer(c)||(c=s.from(c)),this._des=i.create({key:o,iv:c,type:t})}a.des=a["des-cbc"],a.des3=a["des-ede3-cbc"],e.exports=c,o(c,r),c.prototype._update=function(e){return s.from(this._des.update(e))},c.prototype._final=function(){return s.from(this._des.final())}},function(e,t,n){"use strict";t.utils=n(104),t.Cipher=n(64),t.DES=n(105),t.CBC=n(213),t.EDE=n(214)},function(e,t,n){"use strict";var r=n(14),i=n(2),o={};function s(e){r.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},d.prototype.flush=function(){for(var e=16-this.cache.length,t=o.allocUnsafe(e),n=-1;++n>s%8,e._prev=o(e._prev,n?r:i);return a}function o(e,t){var n=e.length,i=-1,o=r.allocUnsafe(e.length);for(e=r.concat([e,r.from([t])]);++i>7;return o}t.encrypt=function(e,t,n){for(var o=t.length,s=r.allocUnsafe(o),a=-1;++a>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function s(e){this.h=e,this.state=r.alloc(16,0),this.cache=r.allocUnsafe(0)}s.prototype.ghash=function(e){for(var t=-1;++t0;t--)r[t]=r[t]>>>1|(1&r[t-1])<<31;r[0]=r[0]>>>1,n&&(r[0]=r[0]^225<<24)}this.state=o(i)},s.prototype.update=function(e){var t;for(this.cache=r.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},s.prototype.final=function(e,t){return this.cache.length&&this.ghash(r.concat([this.cache,i],16)),this.ghash(o([0,e,0,t])),this.state},e.exports=s},function(e,t,n){var r=n(109),i=n(3).Buffer,o=n(66),s=n(110),a=n(18),c=n(43),f=n(44);function u(e,t,n){a.call(this),this._cache=new l,this._last=void 0,this._cipher=new c.AES(t),this._prev=i.from(n),this._mode=e,this._autopadding=!0}function l(){this.cache=i.allocUnsafe(0)}function d(e,t,n){var a=o[e.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=i.from(n)),"GCM"!==a.mode&&n.length!==a.iv)throw new TypeError("invalid iv length "+n.length);if("string"==typeof t&&(t=i.from(t)),t.length!==a.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===a.type?new s(a.module,t,n,!0):"auth"===a.type?new r(a.module,t,n,!0):new u(a.module,t,n)}n(2)(u,a),u.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get(this._autopadding);)n=this._mode.decrypt(this,t),r.push(n);return i.concat(r)},u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");var n=-1;for(;++n16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},l.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var n=o[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var r=f(t,!1,n.key,n.iv);return d(e,r.key,r.iv)},t.createDecipheriv=d},function(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},function(e,t,n){(function(e){var r=n(111),i=n(228),o=n(229);var s={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(t){var n=new e(i[t].prime,"hex"),r=new e(i[t].gen,"hex");return new o(n,r)},t.createDiffieHellman=t.DiffieHellman=function t(n,i,a,c){return e.isBuffer(i)||void 0===s[i]?t(n,"binary",i,a):(i=i||"binary",c=c||"binary",a=a||new e([2]),e.isBuffer(a)||(a=new e(a,c)),"number"==typeof n?new o(r(n,a),a,!0):(e.isBuffer(n)||(n=new e(n,i)),new o(n,a,!0)))}}).call(this,n(11).Buffer)},function(e,t){},function(e,t){},function(e){e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},function(e,t,n){(function(t){var r=n(12),i=new(n(113)),o=new r(24),s=new r(11),a=new r(10),c=new r(3),f=new r(7),u=n(111),l=n(23);function d(e,n){return n=n||"utf8",t.isBuffer(e)||(e=new t(e,n)),this._pub=new r(e),this}function h(e,n){return n=n||"utf8",t.isBuffer(e)||(e=new t(e,n)),this._priv=new r(e),this}e.exports=m;var p={};function m(e,t,n){this.setGenerator(t),this.__prime=new r(e),this._prime=r.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,n?(this.setPublicKey=d,this.setPrivateKey=h):this._primeCode=8}function g(e,n){var r=new t(e.toArray());return n?r.toString(n):r}Object.defineProperty(m.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var n=t.toString("hex"),r=[n,e.toString(16)].join("_");if(r in p)return p[r];var l,d=0;if(e.isEven()||!u.simpleSieve||!u.fermatTest(e)||!i.test(e))return d+=1,d+="02"===n||"05"===n?8:4,p[r]=d,d;switch(i.test(e.shrn(1))||(d+=2),n){case"02":e.mod(o).cmp(s)&&(d+=8);break;case"05":(l=e.mod(a)).cmp(c)&&l.cmp(f)&&(d+=8);break;default:d+=4}return p[r]=d,d}(this.__prime,this.__gen)),this._primeCode}}),m.prototype.generateKeys=function(){return this._priv||(this._priv=new r(l(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},m.prototype.computeSecret=function(e){var n=(e=(e=new r(e)).toRed(this._prime)).redPow(this._priv).fromRed(),i=new t(n.toArray()),o=this.getPrime();if(i.length0&&n.ishrn(r),n}function l(e,n,i){var o,s;do{for(o=new t(0);8*o.length","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},function(e,t,n){"use strict";var r=n(15),i=n(12),o=n(2),s=n(45),a=r.assert;function c(e){s.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function f(e,t,n,r){s.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,n,r){s.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(c,s),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new i(e.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(t))?n=o[0]:(n=o[1],a(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(n)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),n=new i(2).toRed(t).redInvm(),r=n.redNeg(),o=new i(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(o).fromRed(),r.redSub(o).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,n,r,o,s,a,c,f,u,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new i(1),m=new i(0),g=new i(0),y=new i(1),b=0;0!==d.cmpn(0);){var _=h.div(d);f=h.sub(_.mul(d)),u=g.sub(_.mul(p));var v=y.sub(_.mul(m));if(!r&&f.cmp(l)<0)t=c.neg(),n=p,r=f.neg(),o=u;else if(r&&2==++b)break;c=f,h=d,d=f,g=p,p=u,y=m,m=v}s=f.neg(),a=u;var A=r.sqr().add(o.sqr());return s.sqr().add(a.sqr()).cmp(A)>=0&&(s=t,a=n),r.negative&&(r=r.neg(),o=o.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:r,b:o},{a:s,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),o=n.b.neg().mul(e).divRound(this.n),s=i.mul(n.a),a=o.mul(r.a),c=i.mul(n.b),f=o.mul(r.b);return{k1:e.sub(s).sub(a),k2:c.add(f).neg()}},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var o=r.fromRed().isOdd();return(t&&!o||!t&&o)&&(r=r.redNeg()),this.point(e,r)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},f.prototype.isInfinity=function(){return this.inf},f.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},f.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},f.prototype.getX=function(){return this.x.fromRed()},f.prototype.getY=function(){return this.y.fromRed()},f.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},f.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},f.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},f.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},f.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},f.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(u,s.BasePoint),c.prototype.jpoint=function(e,t,n){return new u(this,e,t,n)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(n.redMul(this.z)),a=r.redSub(i),c=o.redSub(s);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var f=a.redSqr(),u=f.redMul(a),l=r.redMul(f),d=c.redSqr().redIAdd(u).redISub(l).redISub(l),h=c.redMul(l.redISub(d)).redISub(o.redMul(u)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(d,h,p)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),s=n.redSub(r),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),f=c.redMul(s),u=n.redMul(c),l=a.redSqr().redIAdd(f).redISub(u).redISub(u),d=a.redMul(u.redISub(l)).redISub(i.redMul(f)),h=this.z.redMul(s);return this.curve.jpoint(l,d,h)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,n=0;n=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,n){"use strict";var r=n(12),i=n(2),o=n(45),s=n(15);function a(e){o.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,n){o.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,o),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},i(c,o.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(s.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),i=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=e.x.redAdd(e.z),o=e.x.redSub(e.z).redMul(n),s=i.redMul(r),a=t.z.redMul(o.redAdd(s).redSqr()),c=t.x.redMul(o.redISub(s).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,n){"use strict";var r=n(15),i=n(12),o=n(2),s=n(45),a=r.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,s.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function f(e,t,n,r,o){s.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(c,s),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),o=this.one.redSub(this.c2.redMul(this.d).redMul(n)),s=r.redMul(o.redInvm()),a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),o=n.redMul(this.d).redMul(this.c2).redSub(this.a),s=r.redMul(o.redInvm());if(0===s.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(i)},o(f,s.BasePoint),c.prototype.pointFromJSON=function(e){return f.fromJSON(this,e)},c.prototype.point=function(e,t,n,r){return new f(this,e,t,n,r)},f.fromJSON=function(e,t){return new f(e,t[0],t[1],t[2])},f.prototype.inspect=function(){return this.isInfinity()?"":""},f.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},f.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),o=r.redAdd(t),s=o.redSub(n),a=r.redSub(t),c=i.redMul(s),f=o.redMul(a),u=i.redMul(a),l=s.redMul(o);return this.curve.point(c,f,l,u)},f.prototype._projDbl=function(){var e,t,n,r=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var s=(f=this.curve._mulA(i)).redAdd(o);if(this.zOne)e=r.redSub(i).redSub(o).redMul(s.redSub(this.curve.two)),t=s.redMul(f.redSub(o)),n=s.redSqr().redSub(s).redSub(s);else{var a=this.z.redSqr(),c=s.redSub(a).redISub(a);e=r.redSub(i).redISub(o).redMul(c),t=s.redMul(f.redSub(o)),n=s.redMul(c)}}else{var f=i.redAdd(o);a=this.curve._mulC(this.z).redSqr(),c=f.redSub(a).redSub(a);e=this.curve._mulC(r.redISub(f)).redMul(c),t=this.curve._mulC(f).redMul(i.redISub(o)),n=f.redMul(c)}return this.curve.point(e,t,n)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},f.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),o=n.redSub(t),s=i.redSub(r),a=i.redAdd(r),c=n.redAdd(t),f=o.redMul(s),u=a.redMul(c),l=o.redMul(c),d=s.redMul(a);return this.curve.point(f,u,d,l)},f.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),i=r.redSqr(),o=this.x.redMul(e.x),s=this.y.redMul(e.y),a=this.curve.d.redMul(o).redMul(s),c=i.redSub(a),f=i.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(s),l=r.redMul(c).redMul(u);return this.curve.twisted?(t=r.redMul(f).redMul(s.redSub(this.curve._mulA(o))),n=c.redMul(f)):(t=r.redMul(f).redMul(s.redSub(o)),n=this.curve._mulC(c).redMul(f)),this.curve.point(l,t,n)},f.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},f.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},f.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},f.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},f.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},f.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},f.prototype.getX=function(){return this.normalize(),this.x.fromRed()},f.prototype.getY=function(){return this.normalize(),this.y.fromRed()},f.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},f.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},f.prototype.toP=f.prototype.normalize,f.prototype.mixedAdd=f.prototype.add},function(e,t,n){"use strict";t.sha1=n(237),t.sha224=n(238),t.sha256=n(117),t.sha384=n(239),t.sha512=n(118)},function(e,t,n){"use strict";var r=n(17),i=n(32),o=n(116),s=r.rotl32,a=r.sum32,c=r.sum32_5,f=o.ft_1,u=i.BlockHash,l=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;rthis.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t0))return s.iaddn(1),this.keyFromPrivate(s)}},l.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},l.prototype.sign=function(e,t,n,o){"object"==typeof n&&(o=n,n=null),o||(o={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new r(e,16));for(var s=this.n.byteLength(),a=t.getPrivate().toArray("be",s),c=e.toArray("be",s),f=new i({hash:this.hash,entropy:a,nonce:c,pers:o.pers,persEnc:o.persEnc||"utf8"}),l=this.n.sub(new r(1)),d=0;;d++){var h=o.k?o.k(d):new r(f.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(l)>=0)){var p=this.g.mul(h);if(!p.isInfinity()){var m=p.getX(),g=m.umod(this.n);if(0!==g.cmpn(0)){var y=h.invm(this.n).mul(g.mul(t.getPrivate()).iadd(e));if(0!==(y=y.umod(this.n)).cmpn(0)){var b=(p.getY().isOdd()?1:0)|(0!==m.cmp(g)?2:0);return o.canonical&&y.cmp(this.nh)>0&&(y=this.n.sub(y),b^=1),new u({r:g,s:y,recoveryParam:b})}}}}}},l.prototype.verify=function(e,t,n,i){e=this._truncateToN(new r(e,16)),n=this.keyFromPublic(n,i);var o=(t=new u(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,c=s.invm(this.n),f=c.mul(e).umod(this.n),l=c.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(f,n.getPublic(),l)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(f,n.getPublic(),l)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},l.prototype.recoverPubKey=function(e,t,n,i){c((3&n)===n,"The recovery param is more than two bits"),t=new u(t,i);var o=this.n,s=new r(e),a=t.r,f=t.s,l=1&n,d=n>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");a=d?this.curve.pointFromX(a.add(this.curve.n),l):this.curve.pointFromX(a,l);var h=t.r.invm(o),p=o.sub(s).mul(h).umod(o),m=f.mul(h).umod(o);return this.g.mulAdd(p,a,m)},l.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new u(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,n){"use strict";var r=n(71),i=n(114),o=n(14);function s(e){if(!(this instanceof s))return new s(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),n=i.toArray(e.nonce,e.nonceEnc||"hex"),r=i.toArray(e.pers,e.persEnc||"hex");o(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=s,s.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},s.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var o=[];o.length"}},function(e,t,n){"use strict";var r=n(12),i=n(15),o=i.assert;function s(e,t){if(e instanceof s)return e;this._importDER(e,t)||(o(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var n=e[t.place++];if(!(128&n))return n;for(var r=15&n,i=0,o=0,s=t.place;o>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=s,s.prototype._importDER=function(e,t){e=i.toArray(e,t);var n=new a;if(48!==e[n.place++])return!1;if(c(e,n)+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var o=c(e,n),s=e.slice(n.place,o+n.place);if(n.place+=o,2!==e[n.place++])return!1;var f=c(e,n);if(e.length!==f+n.place)return!1;var u=e.slice(n.place,f+n.place);return 0===s[0]&&128&s[1]&&(s=s.slice(1)),0===u[0]&&128&u[1]&&(u=u.slice(1)),this.r=new r(s),this.s=new r(u),this.recoveryParam=null,!0},s.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=f(t),n=f(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];u(r,t.length),(r=r.concat(t)).push(2),u(r,n.length);var o=r.concat(n),s=[48];return u(s,o.length),s=s.concat(o),i.encode(s,e)}},function(e,t,n){"use strict";var r=n(71),i=n(70),o=n(15),s=o.assert,a=o.parseBytes,c=n(248),f=n(249);function u(e){if(s("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=r.sha512}e.exports=u,u.prototype.sign=function(e,t){e=a(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),i=this.g.mul(r),o=this.encodePoint(i),s=this.hashInt(o,n.pubBytes(),e).mul(n.priv()),c=r.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:o})},u.prototype.verify=function(e,t,n){e=a(e),t=this.makeSignature(t);var r=this.keyFromPublic(n),i=this.hashInt(t.Rencoded(),r.pubBytes(),e),o=this.g.mul(t.S());return t.R().add(r.pub().mul(i)).eq(o)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=t)throw new Error("invalid sig")}e.exports=function(e,n,c,f,u){var l=o(c);if("ec"===l.type){if("ecdsa"!==f&&"ecdsa/rsa"!==f)throw new Error("wrong public key type");return function(e,t,n){var r=s[n.data.algorithm.curve.join(".")];if(!r)throw new Error("unknown curve "+n.data.algorithm.curve.join("."));var o=new i(r),a=n.data.subjectPrivateKey.data;return o.verify(t,e,a)}(e,n,l)}if("dsa"===l.type){if("dsa"!==f)throw new Error("wrong public key type");return function(e,t,n){var i=n.data.p,s=n.data.q,c=n.data.g,f=n.data.pub_key,u=o.signature.decode(e,"der"),l=u.s,d=u.r;a(l,s),a(d,s);var h=r.mont(i),p=l.invm(s);return 0===c.toRed(h).redPow(new r(t).mul(p).mod(s)).fromRed().mul(f.toRed(h).redPow(d.mul(p).mod(s)).fromRed()).mod(i).mod(s).cmp(d)}(e,n,l)}if("rsa"!==f&&"ecdsa/rsa"!==f)throw new Error("wrong public key type");n=t.concat([u,n]);for(var d=l.modulus.byteLength(),h=[1],p=0;n.length+h.length+2n-d-2)throw new Error("message too long");var h=l.alloc(n-r-d-2),p=n-u-1,m=i(u),g=a(l.concat([f,h,l.alloc(1,1),t],p),s(m,p)),y=a(m,s(g,u));return new c(l.concat([l.alloc(1),y,g],n))}(p,t);else if(1===d)h=function(e,t,n){var r,o=t.length,s=e.modulus.byteLength();if(o>s-11)throw new Error("message too long");r=n?l.alloc(s-o-3,255):function(e){var t,n=l.allocUnsafe(e),r=0,o=i(2*e),s=0;for(;r=0)throw new Error("data too long for modulus")}return n?u(h,p):f(h,p)}},function(e,t,n){var r=n(46),i=n(124),o=n(125),s=n(12),a=n(68),c=n(30),f=n(126),u=n(3).Buffer;e.exports=function(e,t,n){var l;l=e.padding?e.padding:n?1:4;var d,h=r(e),p=h.modulus.byteLength();if(t.length>p||new s(t).cmp(h.modulus)>=0)throw new Error("decryption error");d=n?f(new s(t),h):a(t,h);var m=u.alloc(p-d.length);if(d=u.concat([m,d],p),4===l)return function(e,t){var n=e.modulus.byteLength(),r=c("sha1").update(u.alloc(0)).digest(),s=r.length;if(0!==t[0])throw new Error("decryption error");var a=t.slice(1,s+1),f=t.slice(s+1),l=o(a,i(f,s)),d=o(f,i(l,n-s-1));if(function(e,t){e=u.from(e),t=u.from(t);var n=0,r=e.length;e.length!==t.length&&(n++,r=Math.min(e.length,t.length));var i=-1;for(;++i=t.length){o++;break}var s=t.slice(2,i-1);("0002"!==r.toString("hex")&&!n||"0001"!==r.toString("hex")&&n)&&o++;s.length<8&&o++;if(o)throw new Error("decryption error");return t.slice(i)}(0,d,n);if(3===l)return d;throw new Error("unknown padding")}},function(e,t,n){"use strict";(function(e,r){function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=n(3),s=n(23),a=o.Buffer,c=o.kMaxLength,f=e.crypto||e.msCrypto,u=Math.pow(2,32)-1;function l(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>u||e<0)throw new TypeError("offset must be a uint32");if(e>c||e>t)throw new RangeError("offset out of range")}function d(e,t,n){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>u||e<0)throw new TypeError("size must be a uint32");if(e+t>n||e>c)throw new RangeError("buffer too small")}function h(e,t,n,i){if(r.browser){var o=e.buffer,a=new Uint8Array(o,t,n);return f.getRandomValues(a),i?void r.nextTick((function(){i(null,e)})):e}if(!i)return s(n).copy(e,t),e;s(n,(function(n,r){if(n)return i(n);r.copy(e,t),i(null,e)}))}f&&f.getRandomValues||!r.browser?(t.randomFill=function(t,n,r,i){if(!(a.isBuffer(t)||t instanceof e.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof n)i=n,n=0,r=t.length;else if("function"==typeof r)i=r,r=t.length-n;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return l(n,t.length),d(r,n,t.length),h(t,n,r,i)},t.randomFillSync=function(t,n,r){void 0===n&&(n=0);if(!(a.isBuffer(t)||t instanceof e.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');l(n,t.length),void 0===r&&(r=t.length-n);return d(r,n,t.length),h(t,n,r)}):(t.randomFill=i,t.randomFillSync=i)}).call(this,n(6),n(13))},function(e,t,n){var r,i;!function(o,s){"use strict";void 0===(i="function"==typeof(r=function(){var e=function(){},t="undefined"!=typeof window&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"];function r(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function i(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function o(n){return"debug"===n&&(n="log"),"undefined"!=typeof console&&("trace"===n&&t?i:void 0!==console[n]?r(console,n):void 0!==console.log?r(console,"log"):e)}function s(t,r){for(var i=0;i=0&&t<=o.levels.SILENT))throw"log.setLevel() called with invalid level: "+t;if(i=t,!1!==r&&function(e){var t=(n[e]||"silent").toUpperCase();if("undefined"!=typeof window){try{return void(window.localStorage[a]=t)}catch(e){}try{window.document.cookie=encodeURIComponent(a)+"="+t+";"}catch(e){}}}(t),s.call(o,t,e),"undefined"==typeof console&&t","ᐷ":"·>","ᑀ":"·>","ᔯ":"·4","ᑾ":"·b","ᒀ":"·ḃ","ᑺ":"·d","ᒘ":"·J","ᒶ":"·L","ᑶ":"·P","ᑗ":"·U","ᐺ":"·V","ᐼ":"·Ʌ","ᒮ":"·Γ","ᐎ":"·Δ","ᑙ":"·Ո","ᐌ":"·ᐁ","ᐐ":"·ᐄ","ᐒ":"·ᐅ","ᐔ":"·ᐆ","ᐗ":"·ᐊ","ᐙ":"·ᐋ","ᐾ":"·ᐲ","ᑂ":"·ᐴ","ᑆ":"·ᐹ","ᑛ":"·ᑏ","ᑔ":"·ᑐ","ᑝ":"·ᑐ","ᑟ":"·ᑑ","ᑡ":"·ᑕ","ᑣ":"·ᑖ","ᑴ":"·ᑫ","ᑸ":"·ᑮ","ᑼ":"·ᑰ","ᒒ":"·ᒉ","ᒔ":"·ᒋ","ᒖ":"·ᒌ","ᒚ":"·ᒎ","ᒜ":"·ᒐ","ᒞ":"·ᒑ","ᒬ":"·ᒣ","ᒰ":"·ᒦ","ᒲ":"·ᒧ","ᒴ":"·ᒨ","ᒸ":"·ᒫ","ᓉ":"·ᓀ","ᣆ":"·ᓂ","ᣈ":"·ᓃ","ᣊ":"·ᓄ","ᣌ":"·ᓅ","ᓋ":"·ᓇ","ᓍ":"·ᓈ","ᓜ":"·ᓓ","ᓞ":"·ᓕ","ᓠ":"·ᓖ","ᓢ":"·ᓗ","ᓤ":"·ᓘ","ᓦ":"·ᓚ","ᓨ":"·ᓛ","ᓶ":"·ᓭ","ᓸ":"·ᓯ","ᓺ":"·ᓰ","ᓼ":"·ᓱ","ᓾ":"·ᓲ","ᔀ":"·ᓴ","ᔂ":"·ᓵ","ᔗ":"·ᔐ","ᔙ":"·ᔑ","ᔛ":"·ᔒ","ᔝ":"·ᔓ","ᔟ":"·ᔔ","ᔡ":"·ᔕ","ᔣ":"·ᔖ","ᔱ":"·ᔨ","ᔳ":"·ᔩ","ᔵ":"·ᔪ","ᔷ":"·ᔫ","ᔹ":"·ᔭ","ᔻ":"·ᔮ","ᣎ":"·ᕃ","ᣏ":"·ᕆ","ᣐ":"·ᕇ","ᣑ":"·ᕈ","ᣒ":"·ᕉ","ᣓ":"·ᕋ","ᕎ":"·ᕌ","ᕛ":"·ᕚ","ᕨ":"·ᕧ","ᢳ":"·ᢱ","ᢶ":"·ᢴ","ᢹ":"·ᢸ","ᣂ":"·ᣀ","꠰":"।","॥":"।।","᰼":"᰻᰻","။":"၊၊","᪩":"᪨᪨","᪫":"᪪᪨","᭟":"᭞᭞","𐩗":"𐩖𐩖","𑑌":"𑑋𑑋","𑙂":"𑙁𑙁","𑱂":"𑱁𑱁","᱿":"᱾᱾","՝":"\'","'":"\'","‘":"\'","’":"\'","‛":"\'","′":"\'","‵":"\'","՚":"\'","׳":"\'","`":"\'","`":"\'","`":"\'","´":"\'","΄":"\'","´":"\'","᾽":"\'","᾿":"\'","῾":"\'","ʹ":"\'","ʹ":"\'","ˈ":"\'","ˊ":"\'","ˋ":"\'","˴":"\'","ʻ":"\'","ʽ":"\'","ʼ":"\'","ʾ":"\'","ꞌ":"\'","י":"\'","ߴ":"\'","ߵ":"\'","ᑊ":"\'","ᛌ":"\'","𖽑":"\'","𖽒":"\'","᳓":"\'\'","\\"":"\'\'",""":"\'\'","“":"\'\'","”":"\'\'","‟":"\'\'","″":"\'\'","‶":"\'\'","〃":"\'\'","״":"\'\'","˝":"\'\'","ʺ":"\'\'","˶":"\'\'","ˮ":"\'\'","ײ":"\'\'","‴":"\'\'\'","‷":"\'\'\'","⁗":"\'\'\'\'","Ɓ":"\'B","Ɗ":"\'D","ʼn":"\'n","Ƥ":"\'P","Ƭ":"\'T","Ƴ":"\'Y","[":"(","❨":"(","❲":"(","〔":"(","﴾":"(","⸨":"((","㈠":"(ー)","⑵":"(2)","⒇":"(2O)","⑶":"(3)","⑷":"(4)","⑸":"(5)","⑹":"(6)","⑺":"(7)","⑻":"(8)","⑼":"(9)","⒜":"(a)","🄐":"(A)","⒝":"(b)","🄑":"(B)","⒞":"(c)","🄒":"(C)","⒟":"(d)","🄓":"(D)","⒠":"(e)","🄔":"(E)","⒡":"(f)","🄕":"(F)","⒢":"(g)","🄖":"(G)","⒣":"(h)","🄗":"(H)","⒤":"(i)","⒥":"(j)","🄙":"(J)","⒦":"(k)","🄚":"(K)","⑴":"(l)","🄘":"(l)","⒧":"(l)","🄛":"(L)","⑿":"(l2)","⒀":"(l3)","⒁":"(l4)","⒂":"(l5)","⒃":"(l6)","⒄":"(l7)","⒅":"(l8)","⒆":"(l9)","⑾":"(ll)","⑽":"(lO)","🄜":"(M)","⒩":"(n)","🄝":"(N)","⒪":"(o)","🄞":"(O)","⒫":"(p)","🄟":"(P)","⒬":"(q)","🄠":"(Q)","⒭":"(r)","🄡":"(R)","⒨":"(rn)","⒮":"(s)","🄢":"(S)","🄪":"(S)","⒯":"(t)","🄣":"(T)","⒰":"(u)","🄤":"(U)","⒱":"(v)","🄥":"(V)","⒲":"(w)","🄦":"(W)","⒳":"(x)","🄧":"(X)","⒴":"(y)","🄨":"(Y)","⒵":"(z)","🄩":"(Z)","㈀":"(ᄀ)","㈎":"(가)","㈁":"(ᄂ)","㈏":"(나)","㈂":"(ᄃ)","㈐":"(다)","㈃":"(ᄅ)","㈑":"(라)","㈄":"(ᄆ)","㈒":"(마)","㈅":"(ᄇ)","㈓":"(바)","㈆":"(ᄉ)","㈔":"(사)","㈇":"(ᄋ)","㈕":"(아)","㈝":"(오전)","㈞":"(오후)","㈈":"(ᄌ)","㈖":"(자)","㈜":"(주)","㈉":"(ᄎ)","㈗":"(차)","㈊":"(ᄏ)","㈘":"(카)","㈋":"(ᄐ)","㈙":"(타)","㈌":"(ᄑ)","㈚":"(파)","㈍":"(ᄒ)","㈛":"(하)","㈦":"(七)","㈢":"(三)","🉁":"(三)","㈨":"(九)","㈡":"(二)","🉂":"(二)","㈤":"(五)","㈹":"(代)","㈽":"(企)","㉁":"(休)","㈧":"(八)","㈥":"(六)","㈸":"(労)","🉇":"(勝)","㈩":"(十)","㈿":"(協)","㈴":"(名)","㈺":"(呼)","㈣":"(四)","㈯":"(土)","㈻":"(学)","🉃":"(安)","🉅":"(打)","🉈":"(敗)","㈰":"(日)","㈪":"(月)","㈲":"(有)","㈭":"(木)","🉀":"(本)","㈱":"(株)","㈬":"(水)","㈫":"(火)","🉄":"(点)","㈵":"(特)","🉆":"(盗)","㈼":"(監)","㈳":"(社)","㈷":"(祝)","㉀":"(祭)","㉂":"(自)","㉃":"(至)","㈶":"(財)","㈾":"(資)","㈮":"(金)","]":")","❩":")","❳":")","〕":")","﴿":")","⸩":"))","❴":"{","𝄔":"{","❵":"}","〚":"⟦","〛":"⟧","⟨":"❬","〈":"❬","〈":"❬","㇛":"❬","く":"❬","𡿨":"❬","⟩":"❭","〉":"❭","〉":"❭","^":"︿","⸿":"¶","⁎":"*","٭":"*","∗":"*","𐌟":"*","᜵":"/","⁁":"/","∕":"/","⁄":"/","╱":"/","⟋":"/","⧸":"/","𝈺":"/","㇓":"/","〳":"/","Ⳇ":"/","ノ":"/","丿":"/","⼃":"/","⧶":"/̄","⫽":"//","⫻":"///","\":"\\\\","﹨":"\\\\","∖":"\\\\","⟍":"\\\\","⧵":"\\\\","⧹":"\\\\","𝈏":"\\\\","𝈻":"\\\\","㇔":"\\\\","丶":"\\\\","⼂":"\\\\","⳹":"\\\\\\\\","⑊":"\\\\\\\\","⟈":"\\\\ᑕ","ꝸ":"&","૰":"॰","𑂻":"॰","𑇇":"॰","⚬":"॰","𑇛":"꣼","៙":"๏","៕":"๚","៚":"๛","༌":"་","༎":"།།","˄":"^","ˆ":"^","꙾":"ˇ","˘":"ˇ","‾":"ˉ","﹉":"ˉ","﹊":"ˉ","﹋":"ˉ","﹌":"ˉ","¯":"ˉ"," ̄":"ˉ","▔":"ˉ","ъ":"ˉb","ꙑ":"ˉbi","͵":"ˏ","˻":"˪","꜖":"˪","꜔":"˫","。":"˳","⸰":"°","˚":"°","∘":"°","○":"°","◦":"°","⍜":"°̲","⍤":"°̈","℃":"°C","℉":"°F","௵":"௳","༛":"༚༚","༟":"༚༝","࿎":"༝༚","༞":"༝༝","Ⓒ":"©","Ⓡ":"®","Ⓟ":"℗","𝈛":"⅄","⯬":"↞","⯭":"↟","⯮":"↠","⯯":"↡","↵":"↲","⥥":"⇃⇂","⥯":"⇃ᛚ","𝛛":"∂","𝜕":"∂","𝝏":"∂","𝞉":"∂","𝟃":"∂","𞣌":"∂","𞣍":"∂̵","ð":"∂̵","⌀":"∅","𝛁":"∇","𝛻":"∇","𝜵":"∇","𝝯":"∇","𝞩":"∇","𑢨":"∇","⍢":"∇̈","⍫":"∇̴","█":"∎","■":"∎","⨿":"∐","᛭":"+","➕":"+","𐊛":"+","⨣":"+̂","⨢":"+̊","⨤":"+̃","∔":"+̇","⨥":"+̣","⨦":"+̰","⨧":"+₂","➗":"÷","‹":"<","❮":"<","˂":"<","𝈶":"<","ᐸ":"<","ᚲ":"<","⋖":"<·","Ⲵ":"<·","ᑅ":"<·","≪":"<<","⋘":"<<<","᐀":"=","⹀":"=","゠":"=","꓿":"=","≚":"=̆","≙":"=̂","≗":"=̊","≐":"=̇","≑":"=̣̇","⩮":"=⃰","⩵":"==","⩶":"===","≞":"=ͫ","›":">","❯":">","˃":">","𝈷":">","ᐳ":">","𖼿":">","ᑁ":">·","⪥":"><","≫":">>","⨠":">>","⋙":">>>","⁓":"~","˜":"~","῀":"~","∼":"~","⍨":"~̈","⸞":"~̇","⩪":"~̇","⸟":"~̣","𞣈":"∠","⋀":"∧","∯":"∮∮","∰":"∮∮∮","⸫":"∴","⸪":"∵","⸬":"∷","𑇞":"≈","♎":"≏","🝞":"≏","≣":"≡","⨃":"⊍","⨄":"⊎","𝈸":"⊏","𝈹":"⊐","⨅":"⊓","⨆":"⊔","⨂":"⊗","⍟":"⊛","🝱":"⊠","🝕":"⊡","◁":"⊲","▷":"⊳","⍣":"⋆̈","︴":"⌇","◠":"⌒","⨽":"⌙","⌥":"⌤","⧇":"⌻","◎":"⌾","⦾":"⌾","⧅":"⍂","⦰":"⍉","⏃":"⍋","⏂":"⍎","⏁":"⍕","⏆":"⍭","☸":"⎈","︵":"⏜","︶":"⏝","︷":"⏞","︸":"⏟","︹":"⏠","︺":"⏡","▱":"⏥","⏼":"⏻","︱":"│","|":"│","┃":"│","┏":"┌","┣":"├","▐":"▌","▗":"▖","▝":"▘","☐":"□","■":"▪","▸":"▶","►":"▶","⳩":"☧","🜊":"☩","🌒":"☽","🌙":"☽","⏾":"☾","🌘":"☾","⧙":"⦚","🜺":"⧟","⨾":"⨟","𐆠":"⳨","♩":"𝅘𝅥","♪":"𝅘𝅥𝅮","˙":"ॱ","ൎ":"ॱ","-":"ー","—":"ー","―":"ー","─":"ー","━":"ー","㇐":"ー","ꟷ":"ー","ᅳ":"ー","ㅡ":"ー","一":"ー","⼀":"ー","ᆖ":"ーー","ힹ":"ーᅡ","ힺ":"ーᅥ","ힻ":"ーᅥ丨","ힼ":"ーᅩ","ᆕ":"ーᅮ","ᅴ":"ー丨","ㅢ":"ー丨","ᆗ":"ー丨ᅮ","₤":"£","〒":"₸","〶":"₸","᭜":"᭐","꧆":"꧐","𑓑":"১","೧":"౧","ၥ":"၁","①":"➀","⑩":"➉","⏨":"₁₀","𝟐":"2","𝟚":"2","𝟤":"2","𝟮":"2","𝟸":"2","Ꝛ":"2","Ƨ":"2","Ϩ":"2","Ꙅ":"2","ᒿ":"2","ꛯ":"2","ꧏ":"٢","۲":"٢","૨":"२","𑓒":"২","೨":"౨","②":"➁","ƻ":"2̵","🄃":"2,","⒉":"2.","㏵":"22日","㍮":"22点","㏶":"23日","㍯":"23点","㏷":"24日","㍰":"24点","㏸":"25日","㏹":"26日","㏺":"27日","㏻":"28日","㏼":"29日","㏴":"2l日","㍭":"2l点","⒛":"2O.","㏳":"2O日","㍬":"2O点","෩":"෨ා","෯":"෨ී","㏡":"2日","㋁":"2月","㍚":"2点","𝈆":"3","𝟑":"3","𝟛":"3","𝟥":"3","𝟯":"3","𝟹":"3","Ɜ":"3","Ȝ":"3","Ʒ":"3","Ꝫ":"3","Ⳍ":"3","З":"3","Ӡ":"3","𖼻":"3","𑣊":"3","۳":"٣","𞣉":"٣","૩":"३","③":"➂","Ҙ":"3̦","🄄":"3,","⒊":"3.","㏾":"3l日","㏽":"3O日","㏢":"3日","㋂":"3月","㍛":"3点","𝟒":"4","𝟜":"4","𝟦":"4","𝟰":"4","𝟺":"4","Ꮞ":"4","𑢯":"4","۴":"٤","૪":"४","④":"➃","🄅":"4,","⒋":"4.","ᔰ":"4·","㏣":"4日","㋃":"4月","㍜":"4点","𝟓":"5","𝟝":"5","𝟧":"5","𝟱":"5","𝟻":"5","Ƽ":"5","𑢻":"5","⑤":"➄","🄆":"5,","⒌":"5.","㏤":"5日","㋄":"5月","㍝":"5点","𝟔":"6","𝟞":"6","𝟨":"6","𝟲":"6","𝟼":"6","Ⳓ":"6","б":"6","Ꮾ":"6","𑣕":"6","۶":"٦","𑓖":"৬","⑥":"➅","🄇":"6,","⒍":"6.","㏥":"6日","㋅":"6月","㍞":"6点","𝈒":"7","𝟕":"7","𝟟":"7","𝟩":"7","𝟳":"7","𝟽":"7","𐓒":"7","𑣆":"7","⑦":"➆","🄈":"7,","⒎":"7.","㏦":"7日","㋆":"7月","㍟":"7点","ଃ":"8","৪":"8","੪":"8","𞣋":"8","𝟖":"8","𝟠":"8","𝟪":"8","𝟴":"8","𝟾":"8","ȣ":"8","Ȣ":"8","𐌚":"8","૮":"८","⑧":"➇","🄉":"8,","⒏":"8.","㏧":"8日","㋇":"8月","㍠":"8点","੧":"9","୨":"9","৭":"9","൭":"9","𝟗":"9","𝟡":"9","𝟫":"9","𝟵":"9","𝟿":"9","Ꝯ":"9","Ⳋ":"9","𑣌":"9","𑢬":"9","𑣖":"9","१":"٩","𑣤":"٩","۹":"٩","೯":"౯","⑨":"➈","🄊":"9,","⒐":"9.","㏨":"9日","㋈":"9月","㍡":"9点","⍺":"a","a":"a","𝐚":"a","𝑎":"a","𝒂":"a","𝒶":"a","𝓪":"a","𝔞":"a","𝕒":"a","𝖆":"a","𝖺":"a","𝗮":"a","𝘢":"a","𝙖":"a","𝚊":"a","ɑ":"a","α":"a","𝛂":"a","𝛼":"a","𝜶":"a","𝝰":"a","𝞪":"a","а":"a","ⷶ":"ͣ","A":"A","𝐀":"A","𝐴":"A","𝑨":"A","𝒜":"A","𝓐":"A","𝔄":"A","𝔸":"A","𝕬":"A","𝖠":"A","𝗔":"A","𝘈":"A","𝘼":"A","𝙰":"A","Α":"A","𝚨":"A","𝛢":"A","𝜜":"A","𝝖":"A","𝞐":"A","А":"A","Ꭺ":"A","ᗅ":"A","ꓮ":"A","𖽀":"A","𐊠":"A","⍶":"a̲","ǎ":"ă","Ǎ":"Ă","ȧ":"å","Ȧ":"Å","ẚ":"ả","℀":"a/c","℁":"a/s","ꜳ":"aa","Ꜳ":"AA","æ":"ae","ӕ":"ae","Æ":"AE","Ӕ":"AE","ꜵ":"ao","Ꜵ":"AO","🜇":"AR","ꜷ":"au","Ꜷ":"AU","ꜹ":"av","ꜻ":"av","Ꜹ":"AV","Ꜻ":"AV","ꜽ":"ay","Ꜽ":"AY","ꭺ":"ᴀ","∀":"Ɐ","𝈗":"Ɐ","ᗄ":"Ɐ","ꓯ":"Ɐ","𐐟":"Ɒ","𝐛":"b","𝑏":"b","𝒃":"b","𝒷":"b","𝓫":"b","𝔟":"b","𝕓":"b","𝖇":"b","𝖻":"b","𝗯":"b","𝘣":"b","𝙗":"b","𝚋":"b","Ƅ":"b","Ь":"b","Ꮟ":"b","ᑲ":"b","ᖯ":"b","B":"B","ℬ":"B","𝐁":"B","𝐵":"B","𝑩":"B","𝓑":"B","𝔅":"B","𝔹":"B","𝕭":"B","𝖡":"B","𝗕":"B","𝘉":"B","𝘽":"B","𝙱":"B","Ꞵ":"B","Β":"B","𝚩":"B","𝛣":"B","𝜝":"B","𝝗":"B","𝞑":"B","В":"B","Ᏼ":"B","ᗷ":"B","ꓐ":"B","𐊂":"B","𐊡":"B","𐌁":"B","ɓ":"b̔","ᑳ":"ḃ","ƃ":"b̄","Ƃ":"b̄","Б":"b̄","ƀ":"b̵","ҍ":"b̵","Ҍ":"b̵","ѣ":"b̵","Ѣ":"b̵","ᑿ":"b·","ᒁ":"ḃ·","ᒈ":"b\'","Ы":"bl","в":"ʙ","ᏼ":"ʙ","c":"c","ⅽ":"c","𝐜":"c","𝑐":"c","𝒄":"c","𝒸":"c","𝓬":"c","𝔠":"c","𝕔":"c","𝖈":"c","𝖼":"c","𝗰":"c","𝘤":"c","𝙘":"c","𝚌":"c","ᴄ":"c","ϲ":"c","ⲥ":"c","с":"c","ꮯ":"c","𐐽":"c","ⷭ":"ͨ","🝌":"C","𑣲":"C","𑣩":"C","C":"C","Ⅽ":"C","ℂ":"C","ℭ":"C","𝐂":"C","𝐶":"C","𝑪":"C","𝒞":"C","𝓒":"C","𝕮":"C","𝖢":"C","𝗖":"C","𝘊":"C","𝘾":"C","𝙲":"C","Ϲ":"C","Ⲥ":"C","С":"C","Ꮯ":"C","ꓚ":"C","𐊢":"C","𐌂":"C","𐐕":"C","𐔜":"C","¢":"c̸","ȼ":"c̸","₡":"C⃫","ç":"c̦","ҫ":"c̦","Ç":"C̦","Ҫ":"C̦","Ƈ":"C\'","℅":"c/o","℆":"c/u","⋴":"ꞓ","ɛ":"ꞓ","ε":"ꞓ","ϵ":"ꞓ","𝛆":"ꞓ","𝛜":"ꞓ","𝜀":"ꞓ","𝜖":"ꞓ","𝜺":"ꞓ","𝝐":"ꞓ","𝝴":"ꞓ","𝞊":"ꞓ","𝞮":"ꞓ","𝟄":"ꞓ","ⲉ":"ꞓ","є":"ꞓ","ԑ":"ꞓ","ꮛ":"ꞓ","𑣎":"ꞓ","𐐩":"ꞓ","€":"Ꞓ","Ⲉ":"Ꞓ","Є":"Ꞓ","⍷":"ꞓ̲","ͽ":"ꜿ","Ͽ":"Ꜿ","ⅾ":"d","ⅆ":"d","𝐝":"d","𝑑":"d","𝒅":"d","𝒹":"d","𝓭":"d","𝔡":"d","𝕕":"d","𝖉":"d","𝖽":"d","𝗱":"d","𝘥":"d","𝙙":"d","𝚍":"d","ԁ":"d","Ꮷ":"d","ᑯ":"d","ꓒ":"d","Ⅾ":"D","ⅅ":"D","𝐃":"D","𝐷":"D","𝑫":"D","𝒟":"D","𝓓":"D","𝔇":"D","𝔻":"D","𝕯":"D","𝖣":"D","𝗗":"D","𝘋":"D","𝘿":"D","𝙳":"D","Ꭰ":"D","ᗞ":"D","ᗪ":"D","ꓓ":"D","ɗ":"d̔","ɖ":"d̨","ƌ":"d̄","đ":"d̵","Đ":"D̵","Ð":"D̵","Ɖ":"D̵","₫":"ḏ̵","ꝺ":"Ꝺ","ᑻ":"d·","ᒇ":"d\'","ʤ":"dȝ","dz":"dz","ʣ":"dz","Dz":"Dz","DZ":"DZ","dž":"dž","Dž":"Dž","DŽ":"DŽ","ʥ":"dʑ","ꭰ":"ᴅ","⸹":"ẟ","δ":"ẟ","𝛅":"ẟ","𝛿":"ẟ","𝜹":"ẟ","𝝳":"ẟ","𝞭":"ẟ","ծ":"ẟ","ᕷ":"ẟ","℮":"e","e":"e","ℯ":"e","ⅇ":"e","𝐞":"e","𝑒":"e","𝒆":"e","𝓮":"e","𝔢":"e","𝕖":"e","𝖊":"e","𝖾":"e","𝗲":"e","𝘦":"e","𝙚":"e","𝚎":"e","ꬲ":"e","е":"e","ҽ":"e","ⷷ":"ͤ","⋿":"E","E":"E","ℰ":"E","𝐄":"E","𝐸":"E","𝑬":"E","𝓔":"E","𝔈":"E","𝔼":"E","𝕰":"E","𝖤":"E","𝗘":"E","𝘌":"E","𝙀":"E","𝙴":"E","Ε":"E","𝚬":"E","𝛦":"E","𝜠":"E","𝝚":"E","𝞔":"E","Е":"E","ⴹ":"E","Ꭼ":"E","ꓰ":"E","𑢦":"E","𑢮":"E","𐊆":"E","ě":"ĕ","Ě":"Ĕ","ɇ":"e̸","Ɇ":"E̸","ҿ":"ę","ꭼ":"ᴇ","ə":"ǝ","ә":"ǝ","∃":"Ǝ","ⴺ":"Ǝ","ꓱ":"Ǝ","ɚ":"ǝ˞","ᴔ":"ǝo","ꭁ":"ǝo̸","ꭂ":"ǝo̵","Ә":"Ə","𝈡":"Ɛ","ℇ":"Ɛ","Ԑ":"Ɛ","Ꮛ":"Ɛ","𖼭":"Ɛ","𐐁":"Ɛ","ᶟ":"ᵋ","ᴈ":"ɜ","з":"ɜ","ҙ":"ɜ̦","𐑂":"ɞ","ꞝ":"ʚ","𐐪":"ʚ","𝐟":"f","𝑓":"f","𝒇":"f","𝒻":"f","𝓯":"f","𝔣":"f","𝕗":"f","𝖋":"f","𝖿":"f","𝗳":"f","𝘧":"f","𝙛":"f","𝚏":"f","ꬵ":"f","ꞙ":"f","ſ":"f","ẝ":"f","ք":"f","𝈓":"F","ℱ":"F","𝐅":"F","𝐹":"F","𝑭":"F","𝓕":"F","𝔉":"F","𝔽":"F","𝕱":"F","𝖥":"F","𝗙":"F","𝘍":"F","𝙁":"F","𝙵":"F","Ꞙ":"F","Ϝ":"F","𝟊":"F","ᖴ":"F","ꓝ":"F","𑣂":"F","𑢢":"F","𐊇":"F","𐊥":"F","𐔥":"F","ƒ":"f̦","Ƒ":"F̦","ᵮ":"f̴","℻":"FAX","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ʩ":"fŋ","ᖵ":"Ⅎ","ꓞ":"Ⅎ","𝈰":"ꟻ","ᖷ":"ꟻ","g":"g","ℊ":"g","𝐠":"g","𝑔":"g","𝒈":"g","𝓰":"g","𝔤":"g","𝕘":"g","𝖌":"g","𝗀":"g","𝗴":"g","𝘨":"g","𝙜":"g","𝚐":"g","ɡ":"g","ᶃ":"g","ƍ":"g","ց":"g","𝐆":"G","𝐺":"G","𝑮":"G","𝒢":"G","𝓖":"G","𝔊":"G","𝔾":"G","𝕲":"G","𝖦":"G","𝗚":"G","𝘎":"G","𝙂":"G","𝙶":"G","Ԍ":"G","Ꮐ":"G","Ᏻ":"G","ꓖ":"G","ᶢ":"ᵍ","ɠ":"g̔","ǧ":"ğ","Ǧ":"Ğ","ǵ":"ģ","ǥ":"g̵","Ǥ":"G̵","Ɠ":"G\'","ԍ":"ɢ","ꮐ":"ɢ","ᏻ":"ɢ","h":"h","ℎ":"h","𝐡":"h","𝒉":"h","𝒽":"h","𝓱":"h","𝔥":"h","𝕙":"h","𝖍":"h","𝗁":"h","𝗵":"h","𝘩":"h","𝙝":"h","𝚑":"h","һ":"h","հ":"h","Ꮒ":"h","H":"H","ℋ":"H","ℌ":"H","ℍ":"H","𝐇":"H","𝐻":"H","𝑯":"H","𝓗":"H","𝕳":"H","𝖧":"H","𝗛":"H","𝘏":"H","𝙃":"H","𝙷":"H","Η":"H","𝚮":"H","𝛨":"H","𝜢":"H","𝝜":"H","𝞖":"H","Ⲏ":"H","Н":"H","Ꮋ":"H","ᕼ":"H","ꓧ":"H","𐋏":"H","ᵸ":"ᴴ","ɦ":"h̔","ꚕ":"h̔","Ᏺ":"h̔","Ⱨ":"H̩","Ң":"H̩","ħ":"h̵","ℏ":"h̵","ћ":"h̵","Ħ":"H̵","Ӊ":"H̦","Ӈ":"H̦","н":"ʜ","ꮋ":"ʜ","ң":"ʜ̩","ӊ":"ʜ̦","ӈ":"ʜ̦","Ԋ":"Ƕ","ꮀ":"ⱶ","Ͱ":"Ⱶ","Ꭸ":"Ⱶ","Ꮀ":"Ⱶ","ꚱ":"Ⱶ","ꞕ":"ꜧ","˛":"i","⍳":"i","i":"i","ⅰ":"i","ℹ":"i","ⅈ":"i","𝐢":"i","𝑖":"i","𝒊":"i","𝒾":"i","𝓲":"i","𝔦":"i","𝕚":"i","𝖎":"i","𝗂":"i","𝗶":"i","𝘪":"i","𝙞":"i","𝚒":"i","ı":"i","𝚤":"i","ɪ":"i","ɩ":"i","ι":"i","ι":"i","ͺ":"i","𝛊":"i","𝜄":"i","𝜾":"i","𝝸":"i","𝞲":"i","і":"i","ꙇ":"i","ӏ":"i","ꭵ":"i","Ꭵ":"i","𑣃":"i","ⓛ":"Ⓘ","⍸":"i̲","ǐ":"ĭ","Ǐ":"Ĭ","ɨ":"i̵","ᵻ":"i̵","ᵼ":"i̵","ⅱ":"ii","ⅲ":"iii","ij":"ij","ⅳ":"iv","ⅸ":"ix","j":"j","ⅉ":"j","𝐣":"j","𝑗":"j","𝒋":"j","𝒿":"j","𝓳":"j","𝔧":"j","𝕛":"j","𝖏":"j","𝗃":"j","𝗷":"j","𝘫":"j","𝙟":"j","𝚓":"j","ϳ":"j","ј":"j","J":"J","𝐉":"J","𝐽":"J","𝑱":"J","𝒥":"J","𝓙":"J","𝔍":"J","𝕁":"J","𝕵":"J","𝖩":"J","𝗝":"J","𝘑":"J","𝙅":"J","𝙹":"J","Ʝ":"J","Ϳ":"J","Ј":"J","Ꭻ":"J","ᒍ":"J","ꓙ":"J","ɉ":"j̵","Ɉ":"J̵","ᒙ":"J·","𝚥":"ȷ","յ":"ȷ","ꭻ":"ᴊ","𝐤":"k","𝑘":"k","𝒌":"k","𝓀":"k","𝓴":"k","𝔨":"k","𝕜":"k","𝖐":"k","𝗄":"k","𝗸":"k","𝘬":"k","𝙠":"k","𝚔":"k","K":"K","K":"K","𝐊":"K","𝐾":"K","𝑲":"K","𝒦":"K","𝓚":"K","𝔎":"K","𝕂":"K","𝕶":"K","𝖪":"K","𝗞":"K","𝘒":"K","𝙆":"K","𝙺":"K","Κ":"K","𝚱":"K","𝛫":"K","𝜥":"K","𝝟":"K","𝞙":"K","Ⲕ":"K","К":"K","Ꮶ":"K","ᛕ":"K","ꓗ":"K","𐔘":"K","ƙ":"k̔","Ⱪ":"K̩","Қ":"K̩","₭":"K̵","Ꝁ":"K̵","Ҟ":"K̵","Ƙ":"K\'","׀":"l","|":"l","∣":"l","⏽":"l","│":"l","١":"l","۱":"l","𐌠":"l","𞣇":"l","𝟏":"l","𝟙":"l","𝟣":"l","𝟭":"l","𝟷":"l","I":"l","I":"l","Ⅰ":"l","ℐ":"l","ℑ":"l","𝐈":"l","𝐼":"l","𝑰":"l","𝓘":"l","𝕀":"l","𝕴":"l","𝖨":"l","𝗜":"l","𝘐":"l","𝙄":"l","𝙸":"l","Ɩ":"l","l":"l","ⅼ":"l","ℓ":"l","𝐥":"l","𝑙":"l","𝒍":"l","𝓁":"l","𝓵":"l","𝔩":"l","𝕝":"l","𝖑":"l","𝗅":"l","𝗹":"l","𝘭":"l","𝙡":"l","𝚕":"l","ǀ":"l","Ι":"l","𝚰":"l","𝛪":"l","𝜤":"l","𝝞":"l","𝞘":"l","Ⲓ":"l","І":"l","Ӏ":"l","ו":"l","ן":"l","ا":"l","𞸀":"l","𞺀":"l","ﺎ":"l","ﺍ":"l","ߊ":"l","ⵏ":"l","ᛁ":"l","ꓲ":"l","𖼨":"l","𐊊":"l","𐌉":"l","𝈪":"L","Ⅼ":"L","ℒ":"L","𝐋":"L","𝐿":"L","𝑳":"L","𝓛":"L","𝔏":"L","𝕃":"L","𝕷":"L","𝖫":"L","𝗟":"L","𝘓":"L","𝙇":"L","𝙻":"L","Ⳑ":"L","Ꮮ":"L","ᒪ":"L","ꓡ":"L","𖼖":"L","𑢣":"L","𑢲":"L","𐐛":"L","𐔦":"L","ﴼ":"l̋","ﴽ":"l̋","ł":"l̸","Ł":"L̸","ɭ":"l̨","Ɨ":"l̵","ƚ":"l̵","ɫ":"l̴","إ":"lٕ","ﺈ":"lٕ","ﺇ":"lٕ","ٳ":"lٕ","ŀ":"l·","Ŀ":"l·","ᒷ":"l·","🄂":"l,","⒈":"l.","ױ":"l\'","⒓":"l2.","㏫":"l2日","㋋":"l2月","㍤":"l2点","⒔":"l3.","㏬":"l3日","㍥":"l3点","⒕":"l4.","㏭":"l4日","㍦":"l4点","⒖":"l5.","㏮":"l5日","㍧":"l5点","⒗":"l6.","㏯":"l6日","㍨":"l6点","⒘":"l7.","㏰":"l7日","㍩":"l7点","⒙":"l8.","㏱":"l8日","㍪":"l8点","⒚":"l9.","㏲":"l9日","㍫":"l9点","lj":"lj","IJ":"lJ","Lj":"Lj","LJ":"LJ","‖":"ll","∥":"ll","Ⅱ":"ll","ǁ":"ll","װ":"ll","𐆙":"l̵l̵","⒒":"ll.","Ⅲ":"lll","𐆘":"l̵l̵S̵","㏪":"ll日","㋊":"ll月","㍣":"ll点","Ю":"lO","⒑":"lO.","㏩":"lO日","㋉":"lO月","㍢":"lO点","ʪ":"ls","₶":"lt","Ⅳ":"lV","Ⅸ":"lX","ɮ":"lȝ","ʫ":"lz","أ":"lٴ","ﺄ":"lٴ","ﺃ":"lٴ","ٲ":"lٴ","ٵ":"lٴ","ﷳ":"lكبر","ﷲ":"lللّٰo","㏠":"l日","㋀":"l月","㍙":"l点","ⳑ":"ʟ","ꮮ":"ʟ","𐑃":"ʟ","M":"M","Ⅿ":"M","ℳ":"M","𝐌":"M","𝑀":"M","𝑴":"M","𝓜":"M","𝔐":"M","𝕄":"M","𝕸":"M","𝖬":"M","𝗠":"M","𝘔":"M","𝙈":"M","𝙼":"M","Μ":"M","𝚳":"M","𝛭":"M","𝜧":"M","𝝡":"M","𝞛":"M","Ϻ":"M","Ⲙ":"M","М":"M","Ꮇ":"M","ᗰ":"M","ᛖ":"M","ꓟ":"M","𐊰":"M","𐌑":"M","Ӎ":"M̦","🝫":"MB","ⷨ":"ᷟ","𝐧":"n","𝑛":"n","𝒏":"n","𝓃":"n","𝓷":"n","𝔫":"n","𝕟":"n","𝖓":"n","𝗇":"n","𝗻":"n","𝘯":"n","𝙣":"n","𝚗":"n","ո":"n","ռ":"n","N":"N","ℕ":"N","𝐍":"N","𝑁":"N","𝑵":"N","𝒩":"N","𝓝":"N","𝔑":"N","𝕹":"N","𝖭":"N","𝗡":"N","𝘕":"N","𝙉":"N","𝙽":"N","Ν":"N","𝚴":"N","𝛮":"N","𝜨":"N","𝝢":"N","𝞜":"N","Ⲛ":"N","ꓠ":"N","𐔓":"N","𐆎":"N̊","ɳ":"n̨","ƞ":"n̩","η":"n̩","𝛈":"n̩","𝜂":"n̩","𝜼":"n̩","𝝶":"n̩","𝞰":"n̩","Ɲ":"N̦","ᵰ":"n̴","nj":"nj","Nj":"Nj","NJ":"NJ","№":"No","ͷ":"ᴎ","и":"ᴎ","𐑍":"ᴎ","ņ":"ɲ","ం":"o","ಂ":"o","ം":"o","ං":"o","०":"o","੦":"o","૦":"o","௦":"o","౦":"o","೦":"o","൦":"o","๐":"o","໐":"o","၀":"o","٥":"o","۵":"o","o":"o","ℴ":"o","𝐨":"o","𝑜":"o","𝒐":"o","𝓸":"o","𝔬":"o","𝕠":"o","𝖔":"o","𝗈":"o","𝗼":"o","𝘰":"o","𝙤":"o","𝚘":"o","ᴏ":"o","ᴑ":"o","ꬽ":"o","ο":"o","𝛐":"o","𝜊":"o","𝝄":"o","𝝾":"o","𝞸":"o","σ":"o","𝛔":"o","𝜎":"o","𝝈":"o","𝞂":"o","𝞼":"o","ⲟ":"o","о":"o","ჿ":"o","օ":"o","ס":"o","ه":"o","𞸤":"o","𞹤":"o","𞺄":"o","ﻫ":"o","ﻬ":"o","ﻪ":"o","ﻩ":"o","ھ":"o","ﮬ":"o","ﮭ":"o","ﮫ":"o","ﮪ":"o","ہ":"o","ﮨ":"o","ﮩ":"o","ﮧ":"o","ﮦ":"o","ە":"o","ഠ":"o","ဝ":"o","𐓪":"o","𑣈":"o","𑣗":"o","𐐬":"o","߀":"O","০":"O","୦":"O","〇":"O","𑓐":"O","𑣠":"O","𝟎":"O","𝟘":"O","𝟢":"O","𝟬":"O","𝟶":"O","O":"O","𝐎":"O","𝑂":"O","𝑶":"O","𝒪":"O","𝓞":"O","𝔒":"O","𝕆":"O","𝕺":"O","𝖮":"O","𝗢":"O","𝘖":"O","𝙊":"O","𝙾":"O","Ο":"O","𝚶":"O","𝛰":"O","𝜪":"O","𝝤":"O","𝞞":"O","Ⲟ":"O","О":"O","Օ":"O","ⵔ":"O","ዐ":"O","ଠ":"O","𐓂":"O","ꓳ":"O","𑢵":"O","𐊒":"O","𐊫":"O","𐐄":"O","𐔖":"O","⁰":"º","ᵒ":"º","ǒ":"ŏ","Ǒ":"Ŏ","ۿ":"ô","Ő":"Ö","ø":"o̸","ꬾ":"o̸","Ø":"O̸","ⵁ":"O̸","Ǿ":"Ó̸","ɵ":"o̵","ꝋ":"o̵","ө":"o̵","ѳ":"o̵","ꮎ":"o̵","ꮻ":"o̵","⊖":"O̵","⊝":"O̵","⍬":"O̵","𝈚":"O̵","🜔":"O̵","Ɵ":"O̵","Ꝋ":"O̵","θ":"O̵","ϑ":"O̵","𝛉":"O̵","𝛝":"O̵","𝜃":"O̵","𝜗":"O̵","𝜽":"O̵","𝝑":"O̵","𝝷":"O̵","𝞋":"O̵","𝞱":"O̵","𝟅":"O̵","Θ":"O̵","ϴ":"O̵","𝚯":"O̵","𝚹":"O̵","𝛩":"O̵","𝛳":"O̵","𝜣":"O̵","𝜭":"O̵","𝝝":"O̵","𝝧":"O̵","𝞗":"O̵","𝞡":"O̵","Ө":"O̵","Ѳ":"O̵","ⴱ":"O̵","Ꮎ":"O̵","Ꮻ":"O̵","ꭴ":"ơ","ﳙ":"oٰ","🄁":"O,","🄀":"O.","ơ":"o\'","Ơ":"O\'","Ꭴ":"O\'","%":"º/₀","٪":"º/₀","⁒":"º/₀","‰":"º/₀₀","؉":"º/₀₀","‱":"º/₀₀₀","؊":"º/₀₀₀","œ":"oe","Œ":"OE","ɶ":"oᴇ","∞":"oo","ꝏ":"oo","ꚙ":"oo","Ꝏ":"OO","Ꚙ":"OO","ﳗ":"oج","ﱑ":"oج","ﳘ":"oم","ﱒ":"oم","ﶓ":"oمج","ﶔ":"oمم","ﱓ":"oى","ﱔ":"oى","ൟ":"oരo","တ":"oာ","㍘":"O点","ↄ":"ɔ","ᴐ":"ɔ","ͻ":"ɔ","𐑋":"ɔ","Ↄ":"Ɔ","Ͻ":"Ɔ","ꓛ":"Ɔ","𐐣":"Ɔ","ꬿ":"ɔ̸","ꭢ":"ɔe","𐐿":"ɷ","⍴":"p","p":"p","𝐩":"p","𝑝":"p","𝒑":"p","𝓅":"p","𝓹":"p","𝔭":"p","𝕡":"p","𝖕":"p","𝗉":"p","𝗽":"p","𝘱":"p","𝙥":"p","𝚙":"p","ρ":"p","ϱ":"p","𝛒":"p","𝛠":"p","𝜌":"p","𝜚":"p","𝝆":"p","𝝔":"p","𝞀":"p","𝞎":"p","𝞺":"p","𝟈":"p","ⲣ":"p","р":"p","P":"P","ℙ":"P","𝐏":"P","𝑃":"P","𝑷":"P","𝒫":"P","𝓟":"P","𝔓":"P","𝕻":"P","𝖯":"P","𝗣":"P","𝘗":"P","𝙋":"P","𝙿":"P","Ρ":"P","𝚸":"P","𝛲":"P","𝜬":"P","𝝦":"P","𝞠":"P","Ⲣ":"P","Р":"P","Ꮲ":"P","ᑭ":"P","ꓑ":"P","𐊕":"P","ƥ":"p̔","ᵽ":"p̵","ᑷ":"p·","ᒆ":"P\'","ᴩ":"ᴘ","ꮲ":"ᴘ","φ":"ɸ","ϕ":"ɸ","𝛗":"ɸ","𝛟":"ɸ","𝜑":"ɸ","𝜙":"ɸ","𝝋":"ɸ","𝝓":"ɸ","𝞅":"ɸ","𝞍":"ɸ","𝞿":"ɸ","𝟇":"ɸ","ⲫ":"ɸ","ф":"ɸ","𝐪":"q","𝑞":"q","𝒒":"q","𝓆":"q","𝓺":"q","𝔮":"q","𝕢":"q","𝖖":"q","𝗊":"q","𝗾":"q","𝘲":"q","𝙦":"q","𝚚":"q","ԛ":"q","գ":"q","զ":"q","ℚ":"Q","𝐐":"Q","𝑄":"Q","𝑸":"Q","𝒬":"Q","𝓠":"Q","𝔔":"Q","𝕼":"Q","𝖰":"Q","𝗤":"Q","𝘘":"Q","𝙌":"Q","𝚀":"Q","ⵕ":"Q","ʠ":"q̔","🜀":"QE","ᶐ":"ɋ","ᴋ":"ĸ","κ":"ĸ","ϰ":"ĸ","𝛋":"ĸ","𝛞":"ĸ","𝜅":"ĸ","𝜘":"ĸ","𝜿":"ĸ","𝝒":"ĸ","𝝹":"ĸ","𝞌":"ĸ","𝞳":"ĸ","𝟆":"ĸ","ⲕ":"ĸ","к":"ĸ","ꮶ":"ĸ","қ":"ĸ̩","ҟ":"ĸ̵","𝐫":"r","𝑟":"r","𝒓":"r","𝓇":"r","𝓻":"r","𝔯":"r","𝕣":"r","𝖗":"r","𝗋":"r","𝗿":"r","𝘳":"r","𝙧":"r","𝚛":"r","ꭇ":"r","ꭈ":"r","ᴦ":"r","ⲅ":"r","г":"r","ꮁ":"r","𝈖":"R","ℛ":"R","ℜ":"R","ℝ":"R","𝐑":"R","𝑅":"R","𝑹":"R","𝓡":"R","𝕽":"R","𝖱":"R","𝗥":"R","𝘙":"R","𝙍":"R","𝚁":"R","Ʀ":"R","Ꭱ":"R","Ꮢ":"R","𐒴":"R","ᖇ":"R","ꓣ":"R","𖼵":"R","ɽ":"r̨","ɼ":"r̩","ɍ":"r̵","ғ":"r̵","ᵲ":"r̴","ґ":"r\'","𑣣":"rn","m":"rn","ⅿ":"rn","𝐦":"rn","𝑚":"rn","𝒎":"rn","𝓂":"rn","𝓶":"rn","𝔪":"rn","𝕞":"rn","𝖒":"rn","𝗆":"rn","𝗺":"rn","𝘮":"rn","𝙢":"rn","𝚖":"rn","𑜀":"rn","₥":"rn̸","ɱ":"rn̦","ᵯ":"rn̴","₨":"Rs","ꭱ":"ʀ","ꮢ":"ʀ","я":"ᴙ","ᵳ":"ɾ̴","℩":"ɿ","s":"s","𝐬":"s","𝑠":"s","𝒔":"s","𝓈":"s","𝓼":"s","𝔰":"s","𝕤":"s","𝖘":"s","𝗌":"s","𝘀":"s","𝘴":"s","𝙨":"s","𝚜":"s","ꜱ":"s","ƽ":"s","ѕ":"s","ꮪ":"s","𑣁":"s","𐑈":"s","S":"S","𝐒":"S","𝑆":"S","𝑺":"S","𝒮":"S","𝓢":"S","𝔖":"S","𝕊":"S","𝕾":"S","𝖲":"S","𝗦":"S","𝘚":"S","𝙎":"S","𝚂":"S","Ѕ":"S","Տ":"S","Ꮥ":"S","Ꮪ":"S","ꓢ":"S","𖼺":"S","𐊖":"S","𐐠":"S","ʂ":"s̨","ᵴ":"s̴","ꞵ":"ß","β":"ß","ϐ":"ß","𝛃":"ß","𝛽":"ß","𝜷":"ß","𝝱":"ß","𝞫":"ß","Ᏸ":"ß","🝜":"sss","st":"st","∫":"ʃ","ꭍ":"ʃ","∑":"Ʃ","⅀":"Ʃ","Σ":"Ʃ","𝚺":"Ʃ","𝛴":"Ʃ","𝜮":"Ʃ","𝝨":"Ʃ","𝞢":"Ʃ","ⵉ":"Ʃ","∬":"ʃʃ","∭":"ʃʃʃ","⨌":"ʃʃʃʃ","𝐭":"t","𝑡":"t","𝒕":"t","𝓉":"t","𝓽":"t","𝔱":"t","𝕥":"t","𝖙":"t","𝗍":"t","𝘁":"t","𝘵":"t","𝙩":"t","𝚝":"t","⊤":"T","⟙":"T","🝨":"T","T":"T","𝐓":"T","𝑇":"T","𝑻":"T","𝒯":"T","𝓣":"T","𝔗":"T","𝕋":"T","𝕿":"T","𝖳":"T","𝗧":"T","𝘛":"T","𝙏":"T","𝚃":"T","Τ":"T","𝚻":"T","𝛵":"T","𝜯":"T","𝝩":"T","𝞣":"T","Ⲧ":"T","Т":"T","Ꭲ":"T","ꓔ":"T","𖼊":"T","𑢼":"T","𐊗":"T","𐊱":"T","𐌕":"T","ƭ":"t̔","⍡":"T̈","Ⱦ":"T̸","Ț":"Ţ","Ʈ":"T̨","Ҭ":"T̩","₮":"T⃫","ŧ":"t̵","Ŧ":"T̵","ᵵ":"t̴","Ⴀ":"Ꞇ","Ꜩ":"T3","ʨ":"tɕ","℡":"TEL","ꝷ":"tf","ʦ":"ts","ʧ":"tʃ","ꜩ":"tȝ","τ":"ᴛ","𝛕":"ᴛ","𝜏":"ᴛ","𝝉":"ᴛ","𝞃":"ᴛ","𝞽":"ᴛ","т":"ᴛ","ꭲ":"ᴛ","ҭ":"ᴛ̩","ţ":"ƫ","ț":"ƫ","Ꮏ":"ƫ","𝐮":"u","𝑢":"u","𝒖":"u","𝓊":"u","𝓾":"u","𝔲":"u","𝕦":"u","𝖚":"u","𝗎":"u","𝘂":"u","𝘶":"u","𝙪":"u","𝚞":"u","ꞟ":"u","ᴜ":"u","ꭎ":"u","ꭒ":"u","ʋ":"u","υ":"u","𝛖":"u","𝜐":"u","𝝊":"u","𝞄":"u","𝞾":"u","ս":"u","𐓶":"u","𑣘":"u","∪":"U","⋃":"U","𝐔":"U","𝑈":"U","𝑼":"U","𝒰":"U","𝓤":"U","𝔘":"U","𝕌":"U","𝖀":"U","𝖴":"U","𝗨":"U","𝘜":"U","𝙐":"U","𝚄":"U","Ս":"U","ሀ":"U","𐓎":"U","ᑌ":"U","ꓴ":"U","𖽂":"U","𑢸":"U","ǔ":"ŭ","Ǔ":"Ŭ","ᵾ":"u̵","ꮜ":"u̵","Ʉ":"U̵","Ꮜ":"U̵","ᑘ":"U·","ᑧ":"U\'","ᵫ":"ue","ꭣ":"uo","ṃ":"ꭑ","պ":"ɰ","ሣ":"ɰ","℧":"Ʊ","ᘮ":"Ʊ","ᘴ":"Ʊ","ᵿ":"ʊ̵","∨":"v","⋁":"v","v":"v","ⅴ":"v","𝐯":"v","𝑣":"v","𝒗":"v","𝓋":"v","𝓿":"v","𝔳":"v","𝕧":"v","𝖛":"v","𝗏":"v","𝘃":"v","𝘷":"v","𝙫":"v","𝚟":"v","ᴠ":"v","ν":"v","𝛎":"v","𝜈":"v","𝝂":"v","𝝼":"v","𝞶":"v","ѵ":"v","ט":"v","𑜆":"v","ꮩ":"v","𑣀":"v","𝈍":"V","٧":"V","۷":"V","Ⅴ":"V","𝐕":"V","𝑉":"V","𝑽":"V","𝒱":"V","𝓥":"V","𝔙":"V","𝕍":"V","𝖁":"V","𝖵":"V","𝗩":"V","𝘝":"V","𝙑":"V","𝚅":"V","Ѵ":"V","ⴸ":"V","Ꮩ":"V","ᐯ":"V","ꛟ":"V","ꓦ":"V","𖼈":"V","𑢠":"V","𐔝":"V","𐆗":"V̵","ᐻ":"V·","🝬":"VB","ⅵ":"vi","ⅶ":"vii","ⅷ":"viii","Ⅵ":"Vl","Ⅶ":"Vll","Ⅷ":"Vlll","🜈":"Vᷤ","ᴧ":"ʌ","𐓘":"ʌ","٨":"Ʌ","۸":"Ʌ","Λ":"Ʌ","𝚲":"Ʌ","𝛬":"Ʌ","𝜦":"Ʌ","𝝠":"Ʌ","𝞚":"Ʌ","Л":"Ʌ","ⴷ":"Ʌ","𐒰":"Ʌ","ᐱ":"Ʌ","ꛎ":"Ʌ","ꓥ":"Ʌ","𖼽":"Ʌ","𐊍":"Ʌ","Ӆ":"Ʌ̦","ᐽ":"Ʌ·","ɯ":"w","𝐰":"w","𝑤":"w","𝒘":"w","𝓌":"w","𝔀":"w","𝔴":"w","𝕨":"w","𝖜":"w","𝗐":"w","𝘄":"w","𝘸":"w","𝙬":"w","𝚠":"w","ᴡ":"w","ѡ":"w","ԝ":"w","ա":"w","𑜊":"w","𑜎":"w","𑜏":"w","ꮃ":"w","𑣯":"W","𑣦":"W","𝐖":"W","𝑊":"W","𝑾":"W","𝒲":"W","𝓦":"W","𝔚":"W","𝕎":"W","𝖂":"W","𝖶":"W","𝗪":"W","𝘞":"W","𝙒":"W","𝚆":"W","Ԝ":"W","Ꮃ":"W","Ꮤ":"W","ꓪ":"W","ѽ":"w҆҇","𑓅":"ẇ","₩":"W̵","ꝡ":"w̦","ᴍ":"ʍ","м":"ʍ","ꮇ":"ʍ","ӎ":"ʍ̦","᙮":"x","×":"x","⤫":"x","⤬":"x","⨯":"x","x":"x","ⅹ":"x","𝐱":"x","𝑥":"x","𝒙":"x","𝓍":"x","𝔁":"x","𝔵":"x","𝕩":"x","𝖝":"x","𝗑":"x","𝘅":"x","𝘹":"x","𝙭":"x","𝚡":"x","х":"x","ᕁ":"x","ᕽ":"x","ⷯ":"ͯ","᙭":"X","╳":"X","𐌢":"X","𑣬":"X","X":"X","Ⅹ":"X","𝐗":"X","𝑋":"X","𝑿":"X","𝒳":"X","𝓧":"X","𝔛":"X","𝕏":"X","𝖃":"X","𝖷":"X","𝗫":"X","𝘟":"X","𝙓":"X","𝚇":"X","Ꭓ":"X","Χ":"X","𝚾":"X","𝛸":"X","𝜲":"X","𝝬":"X","𝞦":"X","Ⲭ":"X","Х":"X","ⵝ":"X","ᚷ":"X","ꓫ":"X","𐊐":"X","𐊴":"X","𐌗":"X","𐔧":"X","⨰":"ẋ","Ҳ":"X̩","𐆖":"X̵","ⅺ":"xi","ⅻ":"xii","Ⅺ":"Xl","Ⅻ":"Xll","ɣ":"y","ᶌ":"y","y":"y","𝐲":"y","𝑦":"y","𝒚":"y","𝓎":"y","𝔂":"y","𝔶":"y","𝕪":"y","𝖞":"y","𝗒":"y","𝘆":"y","𝘺":"y","𝙮":"y","𝚢":"y","ʏ":"y","ỿ":"y","ꭚ":"y","γ":"y","ℽ":"y","𝛄":"y","𝛾":"y","𝜸":"y","𝝲":"y","𝞬":"y","у":"y","ү":"y","ყ":"y","𑣜":"y","Y":"Y","𝐘":"Y","𝑌":"Y","𝒀":"Y","𝒴":"Y","𝓨":"Y","𝔜":"Y","𝕐":"Y","𝖄":"Y","𝖸":"Y","𝗬":"Y","𝘠":"Y","𝙔":"Y","𝚈":"Y","Υ":"Y","ϒ":"Y","𝚼":"Y","𝛶":"Y","𝜰":"Y","𝝪":"Y","𝞤":"Y","Ⲩ":"Y","У":"Y","Ү":"Y","Ꭹ":"Y","Ꮍ":"Y","ꓬ":"Y","𖽃":"Y","𑢤":"Y","𐊲":"Y","ƴ":"y̔","ɏ":"y̵","ұ":"y̵","¥":"Y̵","Ɏ":"Y̵","Ұ":"Y̵","ʒ":"ȝ","ꝫ":"ȝ","ⳍ":"ȝ","ӡ":"ȝ","ჳ":"ȝ","𝐳":"z","𝑧":"z","𝒛":"z","𝓏":"z","𝔃":"z","𝔷":"z","𝕫":"z","𝖟":"z","𝗓":"z","𝘇":"z","𝘻":"z","𝙯":"z","𝚣":"z","ᴢ":"z","ꮓ":"z","𑣄":"z","𐋵":"Z","𑣥":"Z","Z":"Z","ℤ":"Z","ℨ":"Z","𝐙":"Z","𝑍":"Z","𝒁":"Z","𝒵":"Z","𝓩":"Z","𝖅":"Z","𝖹":"Z","𝗭":"Z","𝘡":"Z","𝙕":"Z","𝚉":"Z","Ζ":"Z","𝚭":"Z","𝛧":"Z","𝜡":"Z","𝝛":"Z","𝞕":"Z","Ꮓ":"Z","ꓜ":"Z","𑢩":"Z","ʐ":"z̨","ƶ":"z̵","Ƶ":"Z̵","ȥ":"z̦","Ȥ":"Z̦","ᵶ":"z̴","ƿ":"þ","ϸ":"þ","Ϸ":"Þ","𐓄":"Þ","⁹":"ꝰ","ᴤ":"ƨ","ϩ":"ƨ","ꙅ":"ƨ","ь":"ƅ","ꮟ":"ƅ","ы":"ƅi","ꭾ":"ɂ","ˤ":"ˁ","ꛍ":"ʡ","⊙":"ʘ","☉":"ʘ","⨀":"ʘ","Ꙩ":"ʘ","ⵙ":"ʘ","𐓃":"ʘ","ℾ":"Γ","𝚪":"Γ","𝛤":"Γ","𝜞":"Γ","𝝘":"Γ","𝞒":"Γ","Ⲅ":"Γ","Г":"Γ","Ꮁ":"Γ","ᒥ":"Γ","𖼇":"Γ","Ғ":"Γ̵","ᒯ":"Γ·","Ґ":"Γ\'","∆":"Δ","△":"Δ","🜂":"Δ","𝚫":"Δ","𝛥":"Δ","𝜟":"Δ","𝝙":"Δ","𝞓":"Δ","Ⲇ":"Δ","ⵠ":"Δ","ᐃ":"Δ","𖼚":"Δ","𐊅":"Δ","𐊣":"Δ","⍙":"Δ̲","ᐏ":"Δ·","ᐬ":"Δᐠ","𝟋":"ϝ","𝛇":"ζ","𝜁":"ζ","𝜻":"ζ","𝝵":"ζ","𝞯":"ζ","ⳤ":"ϗ","𝛌":"λ","𝜆":"λ","𝝀":"λ","𝝺":"λ","𝞴":"λ","Ⲗ":"λ","𐓛":"λ","µ":"μ","𝛍":"μ","𝜇":"μ","𝝁":"μ","𝝻":"μ","𝞵":"μ","𝛏":"ξ","𝜉":"ξ","𝝃":"ξ","𝝽":"ξ","𝞷":"ξ","𝚵":"Ξ","𝛯":"Ξ","𝜩":"Ξ","𝝣":"Ξ","𝞝":"Ξ","ϖ":"π","ℼ":"π","𝛑":"π","𝛡":"π","𝜋":"π","𝜛":"π","𝝅":"π","𝝕":"π","𝝿":"π","𝞏":"π","𝞹":"π","𝟉":"π","ᴨ":"π","п":"π","∏":"Π","ℿ":"Π","𝚷":"Π","𝛱":"Π","𝜫":"Π","𝝥":"Π","𝞟":"Π","Ⲡ":"Π","П":"Π","ꛛ":"Π","𐊭":"Ϙ","𐌒":"Ϙ","ϛ":"ς","𝛓":"ς","𝜍":"ς","𝝇":"ς","𝞁":"ς","𝞻":"ς","𝚽":"Φ","𝛷":"Φ","𝜱":"Φ","𝝫":"Φ","𝞥":"Φ","Ⲫ":"Φ","Ф":"Φ","Փ":"Φ","ቀ":"Φ","ᛰ":"Φ","𐊳":"Φ","ꭓ":"χ","ꭕ":"χ","𝛘":"χ","𝜒":"χ","𝝌":"χ","𝞆":"χ","𝟀":"χ","ⲭ":"χ","𝛙":"ψ","𝜓":"ψ","𝝍":"ψ","𝞇":"ψ","𝟁":"ψ","ѱ":"ψ","𐓹":"ψ","𝚿":"Ψ","𝛹":"Ψ","𝜳":"Ψ","𝝭":"Ψ","𝞧":"Ψ","Ⲯ":"Ψ","Ѱ":"Ψ","𐓑":"Ψ","ᛘ":"Ψ","𐊵":"Ψ","⍵":"ω","ꞷ":"ω","𝛚":"ω","𝜔":"ω","𝝎":"ω","𝞈":"ω","𝟂":"ω","ⲱ":"ω","ꙍ":"ω","Ω":"Ω","𝛀":"Ω","𝛺":"Ω","𝜴":"Ω","𝝮":"Ω","𝞨":"Ω","ᘯ":"Ω","ᘵ":"Ω","𐊶":"Ω","⍹":"ω̲","ώ":"ῴ","☰":"Ⲷ","Ⳝ":"Ϭ","җ":"ж̩","Җ":"Ж̩","𝈋":"И","Ͷ":"И","ꚡ":"И","𐐥":"И","Й":"Ѝ","Ҋ":"Ѝ̦","ѝ":"й","ҋ":"й̦","𐒼":"Ӄ","ᴫ":"л","ӆ":"л̦","ꭠ":"љ","𐓫":"ꙩ","ᷮ":"ⷬ","𐓍":"Ћ","𝈂":"Ӿ","𝈢":"Ѡ","Ꮗ":"Ѡ","ᗯ":"Ѡ","Ѽ":"Ѡ҆҇","ᣭ":"Ѡ·","Ꞷ":"Ꙍ","ӌ":"ҷ","Ӌ":"Ҷ","Ҿ":"Ҽ̨","ⲽ":"ш","Ⲽ":"Ш","Ꙑ":"Ъl","℈":"Э","🜁":"Ꙙ","𖼜":"Ꙙ","ꦒ":"ⰿ","և":"եւ","ኔ":"ձ","ﬔ":"մե","ﬕ":"մի","ﬗ":"մխ","ﬓ":"մն","∩":"Ո","⋂":"Ո","𝉅":"Ո","በ":"Ո","ᑎ":"Ո","ꓵ":"Ո","ᑚ":"Ո·","ᑨ":"Ո\'","ﬖ":"վն","₽":"Ք","˓":"ՙ","ʿ":"ՙ","ℵ":"א","ﬡ":"א","אָ":"אַ","אּ":"אַ","ﭏ":"אל","ℶ":"ב","ℷ":"ג","ℸ":"ד","ﬢ":"ד","ﬣ":"ה","יּ":"יִ","ﬤ":"כ","ﬥ":"ל","ﬦ":"ם","ﬠ":"ע","ﬧ":"ר","שׂ":"שׁ","שּ":"שׁ","שּׂ":"שּׁ","ﬨ":"ת","ﺀ":"ء","۽":"ء͈","ﺂ":"آ","ﺁ":"آ","ﭑ":"ٱ","ﭐ":"ٱ","𞸁":"ب","𞸡":"ب","𞹡":"ب","𞺁":"ب","𞺡":"ب","ﺑ":"ب","ﺒ":"ب","ﺐ":"ب","ﺏ":"ب","ݑ":"بۛ","ࢶ":"بۢ","ࢡ":"بٔ","ﲠ":"بo","ﳢ":"بo","ﲜ":"بج","ﰅ":"بج","ﲝ":"بح","ﰆ":"بح","ﷂ":"بحى","ﲞ":"بخ","ﰇ":"بخ","ﳒ":"بخ","ﱋ":"بخ","ﶞ":"بخى","ﱪ":"بر","ﱫ":"بز","ﲟ":"بم","ﳡ":"بم","ﱬ":"بم","ﰈ":"بم","ﱭ":"بن","ﱮ":"بى","ﰉ":"بى","ﱯ":"بى","ﰊ":"بى","ﭔ":"ٻ","ﭕ":"ٻ","ﭓ":"ٻ","ﭒ":"ٻ","ې":"ٻ","ﯦ":"ٻ","ﯧ":"ٻ","ﯥ":"ٻ","ﯤ":"ٻ","ﭜ":"ڀ","ﭝ":"ڀ","ﭛ":"ڀ","ﭚ":"ڀ","ࢩ":"ݔ","ݧ":"ݔ","⍥":"ة","ö":"ة","ﺔ":"ة","ﺓ":"ة","ۃ":"ة","𞸕":"ت","𞸵":"ت","𞹵":"ت","𞺕":"ت","𞺵":"ت","ﺗ":"ت","ﺘ":"ت","ﺖ":"ت","ﺕ":"ت","ﲥ":"تo","ﳤ":"تo","ﲡ":"تج","ﰋ":"تج","ﵐ":"تجم","ﶠ":"تجى","ﶟ":"تجى","ﲢ":"تح","ﰌ":"تح","ﵒ":"تحج","ﵑ":"تحج","ﵓ":"تحم","ﲣ":"تخ","ﰍ":"تخ","ﵔ":"تخم","ﶢ":"تخى","ﶡ":"تخى","ﱰ":"تر","ﱱ":"تز","ﲤ":"تم","ﳣ":"تم","ﱲ":"تم","ﰎ":"تم","ﵕ":"تمج","ﵖ":"تمح","ﵗ":"تمخ","ﶤ":"تمى","ﶣ":"تمى","ﱳ":"تن","ﱴ":"تى","ﰏ":"تى","ﱵ":"تى","ﰐ":"تى","ﭠ":"ٺ","ﭡ":"ٺ","ﭟ":"ٺ","ﭞ":"ٺ","ﭤ":"ٿ","ﭥ":"ٿ","ﭣ":"ٿ","ﭢ":"ٿ","𞸂":"ج","𞸢":"ج","𞹂":"ج","𞹢":"ج","𞺂":"ج","𞺢":"ج","ﺟ":"ج","ﺠ":"ج","ﺞ":"ج","ﺝ":"ج","ﲧ":"جح","ﰕ":"جح","ﶦ":"جحى","ﶾ":"جحى","ﷻ":"جل جلlلo","ﲨ":"جم","ﰖ":"جم","ﵙ":"جمح","ﵘ":"جمح","ﶧ":"جمى","ﶥ":"جمى","ﴝ":"جى","ﴁ":"جى","ﴞ":"جى","ﴂ":"جى","ﭸ":"ڃ","ﭹ":"ڃ","ﭷ":"ڃ","ﭶ":"ڃ","ﭴ":"ڄ","ﭵ":"ڄ","ﭳ":"ڄ","ﭲ":"ڄ","ﭼ":"چ","ﭽ":"چ","ﭻ":"چ","ﭺ":"چ","ﮀ":"ڇ","ﮁ":"ڇ","ﭿ":"ڇ","ﭾ":"ڇ","𞸇":"ح","𞸧":"ح","𞹇":"ح","𞹧":"ح","𞺇":"ح","𞺧":"ح","ﺣ":"ح","ﺤ":"ح","ﺢ":"ح","ﺡ":"ح","څ":"حۛ","ځ":"حٔ","ݲ":"حٔ","ﲩ":"حج","ﰗ":"حج","ﶿ":"حجى","ﲪ":"حم","ﰘ":"حم","ﵛ":"حمى","ﵚ":"حمى","ﴛ":"حى","ﳿ":"حى","ﴜ":"حى","ﴀ":"حى","𞸗":"خ","𞸷":"خ","𞹗":"خ","𞹷":"خ","𞺗":"خ","𞺷":"خ","ﺧ":"خ","ﺨ":"خ","ﺦ":"خ","ﺥ":"خ","ﲫ":"خج","ﰙ":"خج","ﰚ":"خح","ﲬ":"خم","ﰛ":"خم","ﴟ":"خى","ﴃ":"خى","ﴠ":"خى","ﴄ":"خى","𐋡":"د","𞸃":"د","𞺃":"د","𞺣":"د","ﺪ":"د","ﺩ":"د","ڈ":"دؕ","ﮉ":"دؕ","ﮈ":"دؕ","ڎ":"دۛ","ﮇ":"دۛ","ﮆ":"دۛ","ۮ":"د̂","ࢮ":"د̤̣","𞸘":"ذ","𞺘":"ذ","𞺸":"ذ","ﺬ":"ذ","ﺫ":"ذ","ﱛ":"ذٰ","ڋ":"ڊؕ","ﮅ":"ڌ","ﮄ":"ڌ","ﮃ":"ڍ","ﮂ":"ڍ","𞸓":"ر","𞺓":"ر","𞺳":"ر","ﺮ":"ر","ﺭ":"ر","ڑ":"رؕ","ﮍ":"رؕ","ﮌ":"رؕ","ژ":"رۛ","ﮋ":"رۛ","ﮊ":"رۛ","ڒ":"ر̆","ࢹ":"ر̆̇","ۯ":"ر̂","ݬ":"رٔ","ﱜ":"رٰ","ﷶ":"رسول","﷼":"رىlل","𞸆":"ز","𞺆":"ز","𞺦":"ز","ﺰ":"ز","ﺯ":"ز","ࢲ":"ز̂","ݱ":"ڗؕ","𞸎":"س","𞸮":"س","𞹎":"س","𞹮":"س","𞺎":"س","𞺮":"س","ﺳ":"س","ﺴ":"س","ﺲ":"س","ﺱ":"س","ش":"سۛ","𞸔":"سۛ","𞸴":"سۛ","𞹔":"سۛ","𞹴":"سۛ","𞺔":"سۛ","𞺴":"سۛ","ﺷ":"سۛ","ﺸ":"سۛ","ﺶ":"سۛ","ﺵ":"سۛ","ݾ":"س̂","ﴱ":"سo","ﳨ":"سo","ﴲ":"سۛo","ﳪ":"سۛo","ﲭ":"سج","ﴴ":"سج","ﰜ":"سج","ﴭ":"سۛج","ﴷ":"سۛج","ﴥ":"سۛج","ﴉ":"سۛج","ﵝ":"سجح","ﵞ":"سجى","ﵩ":"سۛجى","ﲮ":"سح","ﴵ":"سح","ﰝ":"سح","ﴮ":"سۛح","ﴸ":"سۛح","ﴦ":"سۛح","ﴊ":"سۛح","ﵜ":"سحج","ﵨ":"سۛحم","ﵧ":"سۛحم","ﶪ":"سۛحى","ﲯ":"سخ","ﴶ":"سخ","ﰞ":"سخ","ﴯ":"سۛخ","ﴹ":"سۛخ","ﴧ":"سۛخ","ﴋ":"سۛخ","ﶨ":"سخى","ﷆ":"سخى","ﴪ":"سر","ﴎ":"سر","ﴩ":"سۛر","ﴍ":"سۛر","ﲰ":"سم","ﳧ":"سم","ﰟ":"سم","ﴰ":"سۛم","ﳩ":"سۛم","ﴨ":"سۛم","ﴌ":"سۛم","ﵡ":"سمج","ﵠ":"سمح","ﵟ":"سمح","ﵫ":"سۛمخ","ﵪ":"سۛمخ","ﵣ":"سمم","ﵢ":"سمم","ﵭ":"سۛمم","ﵬ":"سۛمم","ﴗ":"سى","ﳻ":"سى","ﴘ":"سى","ﳼ":"سى","ﴙ":"سۛى","ﳽ":"سۛى","ﴚ":"سۛى","ﳾ":"سۛى","𐋲":"ص","𞸑":"ص","𞸱":"ص","𞹑":"ص","𞹱":"ص","𞺑":"ص","𞺱":"ص","ﺻ":"ص","ﺼ":"ص","ﺺ":"ص","ﺹ":"ص","ڞ":"صۛ","ࢯ":"ص̤̣","ﲱ":"صح","ﰠ":"صح","ﵥ":"صحح","ﵤ":"صحح","ﶩ":"صحى","ﲲ":"صخ","ﴫ":"صر","ﴏ":"صر","ﷵ":"صلعم","ﷹ":"صلى","ﷰ":"صلى","ﷺ":"صلى lللo علىo وسلم","ﲳ":"صم","ﰡ":"صم","ﷅ":"صمم","ﵦ":"صمم","ﴡ":"صى","ﴅ":"صى","ﴢ":"صى","ﴆ":"صى","𞸙":"ض","𞸹":"ض","𞹙":"ض","𞹹":"ض","𞺙":"ض","𞺹":"ض","ﺿ":"ض","ﻀ":"ض","ﺾ":"ض","ﺽ":"ض","ﲴ":"ضج","ﰢ":"ضج","ﲵ":"ضح","ﰣ":"ضح","ﵮ":"ضحى","ﶫ":"ضحى","ﲶ":"ضخ","ﰤ":"ضخ","ﵰ":"ضخم","ﵯ":"ضخم","ﴬ":"ضر","ﴐ":"ضر","ﲷ":"ضم","ﰥ":"ضم","ﴣ":"ضى","ﴇ":"ضى","ﴤ":"ضى","ﴈ":"ضى","𐋨":"ط","𞸈":"ط","𞹨":"ط","𞺈":"ط","𞺨":"ط","ﻃ":"ط","ﻄ":"ط","ﻂ":"ط","ﻁ":"ط","ڟ":"طۛ","ﲸ":"طح","ﰦ":"طح","ﴳ":"طم","ﴺ":"طم","ﰧ":"طم","ﵲ":"طمح","ﵱ":"طمح","ﵳ":"طمم","ﵴ":"طمى","ﴑ":"طى","ﳵ":"طى","ﴒ":"طى","ﳶ":"طى","𞸚":"ظ","𞹺":"ظ","𞺚":"ظ","𞺺":"ظ","ﻇ":"ظ","ﻈ":"ظ","ﻆ":"ظ","ﻅ":"ظ","ﲹ":"ظم","ﴻ":"ظم","ﰨ":"ظم","؏":"ع","𞸏":"ع","𞸯":"ع","𞹏":"ع","𞹯":"ع","𞺏":"ع","𞺯":"ع","ﻋ":"ع","ﻌ":"ع","ﻊ":"ع","ﻉ":"ع","ﲺ":"عج","ﰩ":"عج","ﷄ":"عجم","ﵵ":"عجم","ﷷ":"علىo","ﲻ":"عم","ﰪ":"عم","ﵷ":"عمم","ﵶ":"عمم","ﵸ":"عمى","ﶶ":"عمى","ﴓ":"عى","ﳷ":"عى","ﴔ":"عى","ﳸ":"عى","𞸛":"غ","𞸻":"غ","𞹛":"غ","𞹻":"غ","𞺛":"غ","𞺻":"غ","ﻏ":"غ","ﻐ":"غ","ﻎ":"غ","ﻍ":"غ","ﲼ":"غج","ﰫ":"غج","ﲽ":"غم","ﰬ":"غم","ﵹ":"غمم","ﵻ":"غمى","ﵺ":"غمى","ﴕ":"غى","ﳹ":"غى","ﴖ":"غى","ﳺ":"غى","𞸐":"ف","𞸰":"ف","𞹰":"ف","𞺐":"ف","𞺰":"ف","ﻓ":"ف","ﻔ":"ف","ﻒ":"ف","ﻑ":"ف","ڧ":"ف","ﲾ":"فج","ﰭ":"فج","ﲿ":"فح","ﰮ":"فح","ﳀ":"فخ","ﰯ":"فخ","ﵽ":"فخم","ﵼ":"فخم","ﳁ":"فم","ﰰ":"فم","ﷁ":"فمى","ﱼ":"فى","ﰱ":"فى","ﱽ":"فى","ﰲ":"فى","𞸞":"ڡ","𞹾":"ڡ","ࢻ":"ڡ","ٯ":"ڡ","𞸟":"ڡ","𞹟":"ڡ","ࢼ":"ڡ","ڤ":"ڡۛ","ﭬ":"ڡۛ","ﭭ":"ڡۛ","ﭫ":"ڡۛ","ﭪ":"ڡۛ","ڨ":"ڡۛ","ࢤ":"ڢۛ","ﭰ":"ڦ","ﭱ":"ڦ","ﭯ":"ڦ","ﭮ":"ڦ","𞸒":"ق","𞸲":"ق","𞹒":"ق","𞹲":"ق","𞺒":"ق","𞺲":"ق","ﻗ":"ق","ﻘ":"ق","ﻖ":"ق","ﻕ":"ق","ﳂ":"قح","ﰳ":"قح","ﷱ":"قلى","ﳃ":"قم","ﰴ":"قم","ﶴ":"قمح","ﵾ":"قمح","ﵿ":"قمم","ﶲ":"قمى","ﱾ":"قى","ﰵ":"قى","ﱿ":"قى","ﰶ":"قى","𞸊":"ك","𞸪":"ك","𞹪":"ك","ﻛ":"ك","ﻜ":"ك","ﻚ":"ك","ﻙ":"ك","ک":"ك","ﮐ":"ك","ﮑ":"ك","ﮏ":"ك","ﮎ":"ك","ڪ":"ك","ڭ":"كۛ","ﯕ":"كۛ","ﯖ":"كۛ","ﯔ":"كۛ","ﯓ":"كۛ","ݣ":"كۛ","ﲀ":"كl","ﰷ":"كl","ﳄ":"كج","ﰸ":"كج","ﳅ":"كح","ﰹ":"كح","ﳆ":"كخ","ﰺ":"كخ","ﳇ":"كل","ﳫ":"كل","ﲁ":"كل","ﰻ":"كل","ﳈ":"كم","ﳬ":"كم","ﲂ":"كم","ﰼ":"كم","ﷃ":"كمم","ﶻ":"كمم","ﶷ":"كمى","ﲃ":"كى","ﰽ":"كى","ﲄ":"كى","ﰾ":"كى","ݢ":"ڬ","ﮔ":"گ","ﮕ":"گ","ﮓ":"گ","ﮒ":"گ","ࢰ":"گ","ڴ":"گۛ","ﮜ":"ڱ","ﮝ":"ڱ","ﮛ":"ڱ","ﮚ":"ڱ","ﮘ":"ڳ","ﮙ":"ڳ","ﮗ":"ڳ","ﮖ":"ڳ","𞸋":"ل","𞸫":"ل","𞹋":"ل","𞺋":"ل","𞺫":"ل","ﻟ":"ل","ﻠ":"ل","ﻞ":"ل","ﻝ":"ل","ڷ":"لۛ","ڵ":"ل̆","ﻼ":"لl","ﻻ":"لl","ﻺ":"لlٕ","ﻹ":"لlٕ","ﻸ":"لlٴ","ﻷ":"لlٴ","ﳍ":"لo","ﻶ":"لآ","ﻵ":"لآ","ﳉ":"لج","ﰿ":"لج","ﶃ":"لجج","ﶄ":"لجج","ﶺ":"لجم","ﶼ":"لجم","ﶬ":"لجى","ﳊ":"لح","ﱀ":"لح","ﶵ":"لحم","ﶀ":"لحم","ﶂ":"لحى","ﶁ":"لحى","ﳋ":"لخ","ﱁ":"لخ","ﶆ":"لخم","ﶅ":"لخم","ﳌ":"لم","ﳭ":"لم","ﲅ":"لم","ﱂ":"لم","ﶈ":"لمح","ﶇ":"لمح","ﶭ":"لمى","ﲆ":"لى","ﱃ":"لى","ﲇ":"لى","ﱄ":"لى","𞸌":"م","𞸬":"م","𞹬":"م","𞺌":"م","𞺬":"م","ﻣ":"م","ﻤ":"م","ﻢ":"م","ﻡ":"م","ࢧ":"مۛ","۾":"م͈","ﲈ":"مl","ﳎ":"مج","ﱅ":"مج","ﶌ":"مجح","ﶒ":"مجخ","ﶍ":"مجم","ﷀ":"مجى","ﳏ":"مح","ﱆ":"مح","ﶉ":"محج","ﶊ":"محم","ﷴ":"محمد","ﶋ":"محى","ﳐ":"مخ","ﱇ":"مخ","ﶎ":"مخج","ﶏ":"مخم","ﶹ":"مخى","ﳑ":"مم","ﲉ":"مم","ﱈ":"مم","ﶱ":"ممى","ﱉ":"مى","ﱊ":"مى","𞸍":"ن","𞸭":"ن","𞹍":"ن","𞹭":"ن","𞺍":"ن","𞺭":"ن","ﻧ":"ن","ﻨ":"ن","ﻦ":"ن","ﻥ":"ن","ݨ":"نؕ","ݩ":"ن̆","ﳖ":"نo","ﳯ":"نo","ﶸ":"نجح","ﶽ":"نجح","ﶘ":"نجم","ﶗ":"نجم","ﶙ":"نجى","ﷇ":"نجى","ﳓ":"نح","ﱌ":"نح","ﶕ":"نحم","ﶖ":"نحى","ﶳ":"نحى","ﳔ":"نخ","ﱍ":"نخ","ﲊ":"نر","ﲋ":"نز","ﳕ":"نم","ﳮ":"نم","ﲌ":"نم","ﱎ":"نم","ﶛ":"نمى","ﶚ":"نمى","ﲍ":"نن","ﲎ":"نى","ﱏ":"نى","ﲏ":"نى","ﱐ":"نى","ۂ":"ۀ","ﮥ":"ۀ","ﮤ":"ۀ","𐋤":"و","𞸅":"و","𞺅":"و","𞺥":"و","ﻮ":"و","ﻭ":"و","ࢱ":"و","ۋ":"وۛ","ﯟ":"وۛ","ﯞ":"وۛ","ۇ":"و̓","ﯘ":"و̓","ﯗ":"و̓","ۆ":"و̆","ﯚ":"و̆","ﯙ":"و̆","ۉ":"و̂","ﯣ":"و̂","ﯢ":"و̂","ۈ":"وٰ","ﯜ":"وٰ","ﯛ":"وٰ","ؤ":"وٴ","ﺆ":"وٴ","ﺅ":"وٴ","ٶ":"وٴ","ٷ":"و̓ٴ","ﯝ":"و̓ٴ","ﷸ":"وسلم","ﯡ":"ۅ","ﯠ":"ۅ","ٮ":"ى","𞸜":"ى","𞹼":"ى","ں":"ى","𞸝":"ى","𞹝":"ى","ﮟ":"ى","ﮞ":"ى","ࢽ":"ى","ﯨ":"ى","ﯩ":"ى","ﻰ":"ى","ﻯ":"ى","ي":"ى","𞸉":"ى","𞸩":"ى","𞹉":"ى","𞹩":"ى","𞺉":"ى","𞺩":"ى","ﻳ":"ى","ﻴ":"ى","ﻲ":"ى","ﻱ":"ى","ی":"ى","ﯾ":"ى","ﯿ":"ى","ﯽ":"ى","ﯼ":"ى","ے":"ى","ﮯ":"ى","ﮮ":"ى","ٹ":"ىؕ","ﭨ":"ىؕ","ﭩ":"ىؕ","ﭧ":"ىؕ","ﭦ":"ىؕ","ڻ":"ىؕ","ﮢ":"ىؕ","ﮣ":"ىؕ","ﮡ":"ىؕ","ﮠ":"ىؕ","پ":"ىۛ","ﭘ":"ىۛ","ﭙ":"ىۛ","ﭗ":"ىۛ","ﭖ":"ىۛ","ث":"ىۛ","𞸖":"ىۛ","𞸶":"ىۛ","𞹶":"ىۛ","𞺖":"ىۛ","𞺶":"ىۛ","ﺛ":"ىۛ","ﺜ":"ىۛ","ﺚ":"ىۛ","ﺙ":"ىۛ","ڽ":"ىۛ","ۑ":"ىۛ","ؿ":"ىۛ","ࢷ":"ىۛۢ","ݖ":"ى̆","ێ":"ى̆","ࢺ":"ى̆̇","ؽ":"ى̂","ࢨ":"ىٔ","ﲐ":"ىٰ","ﱝ":"ىٰ","ﳞ":"ىo","ﳱ":"ىo","ﳦ":"ىۛo","ئ":"ىٴ","ﺋ":"ىٴ","ﺌ":"ىٴ","ﺊ":"ىٴ","ﺉ":"ىٴ","ٸ":"ىٴ","ﯫ":"ىٴl","ﯪ":"ىٴl","ﲛ":"ىٴo","ﳠ":"ىٴo","ﯭ":"ىٴo","ﯬ":"ىٴo","ﯸ":"ىٴٻ","ﯷ":"ىٴٻ","ﯶ":"ىٴٻ","ﲗ":"ىٴج","ﰀ":"ىٴج","ﲘ":"ىٴح","ﰁ":"ىٴح","ﲙ":"ىٴخ","ﱤ":"ىٴر","ﱥ":"ىٴز","ﲚ":"ىٴم","ﳟ":"ىٴم","ﱦ":"ىٴم","ﰂ":"ىٴم","ﱧ":"ىٴن","ﯯ":"ىٴو","ﯮ":"ىٴو","ﯱ":"ىٴو̓","ﯰ":"ىٴو̓","ﯳ":"ىٴو̆","ﯲ":"ىٴو̆","ﯵ":"ىٴوٰ","ﯴ":"ىٴوٰ","ﯻ":"ىٴى","ﯺ":"ىٴى","ﱨ":"ىٴى","ﯹ":"ىٴى","ﰃ":"ىٴى","ﱩ":"ىٴى","ﰄ":"ىٴى","ﳚ":"ىج","ﱕ":"ىج","ﰑ":"ىۛج","ﶯ":"ىجى","ﳛ":"ىح","ﱖ":"ىح","ﶮ":"ىحى","ﳜ":"ىخ","ﱗ":"ىخ","ﲑ":"ىر","ﱶ":"ىۛر","ﲒ":"ىز","ﱷ":"ىۛز","ﳝ":"ىم","ﳰ":"ىم","ﲓ":"ىم","ﱘ":"ىم","ﲦ":"ىۛم","ﳥ":"ىۛم","ﱸ":"ىۛم","ﰒ":"ىۛم","ﶝ":"ىمم","ﶜ":"ىمم","ﶰ":"ىمى","ﲔ":"ىن","ﱹ":"ىۛن","ﲕ":"ىى","ﱙ":"ىى","ﲖ":"ىى","ﱚ":"ىى","ﱺ":"ىۛى","ﰓ":"ىۛى","ﱻ":"ىۛى","ﰔ":"ىۛى","ﮱ":"ۓ","ﮰ":"ۓ","𐊸":"ⵀ","⁞":"ⵂ","⸽":"ⵂ","⦙":"ⵂ","︙":"ⵗ","⁝":"ⵗ","⋮":"ⵗ","Մ":"ሆ","Ռ":"ቡ","Ի":"ኮ","Պ":"ጣ","आ":"अा","ऒ":"अाॆ","ओ":"अाे","औ":"अाै","ऄ":"अॆ","ऑ":"अॉ","ऍ":"एॅ","ऎ":"एॆ","ऐ":"एे","ई":"र्इ","ઽ":"ऽ","𑇜":"ꣻ","𑇋":"ऺ","ુ":"ु","ૂ":"ू","ੋ":"ॆ","੍":"्","્":"्","আ":"অা","ৠ":"ঋৃ","ৡ":"ঋৃ","𑒒":"ঘ","𑒔":"চ","𑒖":"জ","𑒘":"ঞ","𑒙":"ট","𑒛":"ড","𑒪":"ণ","𑒞":"ত","𑒟":"থ","𑒠":"দ","𑒡":"ধ","𑒢":"ন","𑒣":"প","𑒩":"ব","𑒧":"ম","𑒨":"য","𑒫":"র","𑒝":"ল","𑒭":"ষ","𑒮":"স","𑓄":"ঽ","𑒰":"া","𑒱":"ি","𑒹":"ে","𑒼":"ো","𑒾":"ৌ","𑓂":"্","𑒽":"ৗ","ਉ":"ੳੁ","ਊ":"ੳੂ","ਆ":"ਅਾ","ਐ":"ਅੈ","ਔ":"ਅੌ","ਇ":"ੲਿ","ਈ":"ੲੀ","ਏ":"ੲੇ","આ":"અા","ઑ":"અાૅ","ઓ":"અાે","ઔ":"અાૈ","ઍ":"અૅ","એ":"અે","ઐ":"અૈ","ଆ":"ଅା","௮":"அ","ர":"ஈ","ா":"ஈ","௫":"ஈு","௨":"உ","ഉ":"உ","ஊ":"உள","ഊ":"உൗ","௭":"எ","௷":"எவ","ஜ":"ஐ","ജ":"ஐ","௧":"க","௪":"ச","௬":"சு","௲":"சூ","ഺ":"டி","ണ":"ண","௺":"நீ","௴":"மீ","௰":"ய","ഴ":"ழ","ௗ":"ள","ை":"ன","ശ":"ஶ","௸":"ஷ","ി":"ி","ീ":"ி","ொ":"ெஈ","ௌ":"ெள","ோ":"ேஈ","ಅ":"అ","ಆ":"ఆ","ಇ":"ఇ","ౠ":"ఋా","ౡ":"ఌా","ಒ":"ఒ","ఔ":"ఒౌ","ಔ":"ఒౌ","ఓ":"ఒౕ","ಓ":"ఒౕ","ಜ":"జ","ಞ":"ఞ","ఢ":"డ̣","ಣ":"ణ","థ":"ధּ","భ":"బ̣","ಯ":"య","ఠ":"రּ","ಱ":"ఱ","ಲ":"ల","ష":"వ̣","హ":"వా","మ":"వు","ూ":"ుా","ౄ":"ృా","ೡ":"ಌಾ","ഈ":"ഇൗ","ഐ":"എെ","ഓ":"ഒാ","ഔ":"ഒൗ","ൡ":"ഞ","൫":"ദ്ര","൹":"നു","ഌ":"നു","ങ":"നു","൯":"ന്","ൻ":"ന്","൬":"ന്ന","൚":"ന്മ","റ":"ര","൪":"ര്","ർ":"ര്","൮":"വ്ര","൶":"ഹ്മ","ൂ":"ു","ൃ":"ു","ൈ":"െെ","෪":"ජ","෫":"ද","𑐓":"𑐴𑑂𑐒","𑐙":"𑐴𑑂𑐘","𑐤":"𑐴𑑂𑐣","𑐪":"𑐴𑑂𑐩","𑐭":"𑐴𑑂𑐬","𑐯":"𑐴𑑂𑐮","𑗘":"𑖂","𑗙":"𑖂","𑗚":"𑖃","𑗛":"𑖄","𑗜":"𑖲","𑗝":"𑖳","ฃ":"ข","ด":"ค","ต":"ค","ม":"ฆ","ຈ":"จ","ซ":"ช","ฏ":"ฎ","ท":"ฑ","ບ":"บ","ປ":"ป","ຝ":"ฝ","ພ":"พ","ຟ":"ฟ","ฦ":"ภ","ຍ":"ย","។":"ฯ","ๅ":"า","ำ":"̊า","ិ":"ิ","ី":"ี","ឹ":"ึ","ឺ":"ื","ຸ":"ุ","ູ":"ู","แ":"เเ","ໜ":"ຫນ","ໝ":"ຫມ","ຳ":"̊າ","༂":"འུྂཿ","༃":"འུྂ༔","ཪ":"ར","ༀ":"ཨོཾ","ཷ":"ྲཱྀ","ཹ":"ླཱྀ","𑲲":"𑲪","ႁ":"ဂှ","က":"ဂာ","ၰ":"ဃှ","ၦ":"ပှ","ဟ":"ပာ","ၯ":"ပာှ","ၾ":"ၽှ","ဩ":"သြ","ဪ":"သြော်","႞":"ႃ̊","ឣ":"អ","᧐":"ᦞ","᧑":"ᦱ","᪀":"ᩅ","᪐":"ᩅ","꩓":"ꨁ","꩖":"ꨣ","᭒":"ᬍ","᭓":"ᬑ","᭘":"ᬨ","ꦣ":"ꦝ","ᢖ":"ᡜ","ᡕ":"ᠵ","ῶ":"Ꮿ","ᐍ":"ᐁ·","ᐫ":"ᐁᐠ","ᐑ":"ᐄ·","ᐓ":"ᐅ·","ᐭ":"ᐅᐠ","ᐕ":"ᐆ·","ᐘ":"ᐊ·","ᐮ":"ᐊᐠ","ᐚ":"ᐋ·","ᣝ":"ᐞᣟ","ᓑ":"ᐡ","ᕀ":"ᐩ","ᐿ":"ᐲ·","ᑃ":"ᐴ·","⍩":"ᐵ","ᑇ":"ᐹ·","ᑜ":"ᑏ·","⸧":"ᑐ","⊃":"ᑐ","ᑞ":"ᑐ·","ᑩ":"ᑐ\'","⟉":"ᑐ/","⫗":"ᑐᑕ","ᑠ":"ᑑ·","⸦":"ᑕ","⊂":"ᑕ","ᑢ":"ᑕ·","ᑪ":"ᑕ\'","ᑤ":"ᑖ·","ᑵ":"ᑫ·","ᒅ":"ᑫ\'","ᑹ":"ᑮ·","ᑽ":"ᑰ·","ᘃ":"ᒉ","ᒓ":"ᒉ·","ᒕ":"ᒋ·","ᒗ":"ᒌ·","ᒛ":"ᒎ·","ᘂ":"ᒐ","ᒝ":"ᒐ·","ᒟ":"ᒑ·","ᒭ":"ᒣ·","ᒱ":"ᒦ·","ᒳ":"ᒧ·","ᒵ":"ᒨ·","ᒹ":"ᒫ·","ᓊ":"ᓀ·","ᣇ":"ᓂ·","ᣉ":"ᓃ·","ᣋ":"ᓄ·","ᣍ":"ᓅ·","ᓌ":"ᓇ·","ᓎ":"ᓈ·","ᘄ":"ᓓ","ᓝ":"ᓓ·","ᓟ":"ᓕ·","ᓡ":"ᓖ·","ᓣ":"ᓗ·","ᓥ":"ᓘ·","ᘇ":"ᓚ","ᓧ":"ᓚ·","ᓩ":"ᓛ·","ᓷ":"ᓭ·","ᓹ":"ᓯ·","ᓻ":"ᓰ·","ᓽ":"ᓱ·","ᓿ":"ᓲ·","ᔁ":"ᓴ·","ᔃ":"ᓵ·","ᔌ":"ᔋ<","ᔎ":"ᔋb","ᔍ":"ᔋᑕ","ᔏ":"ᔋᒐ","ᔘ":"ᔐ·","ᔚ":"ᔑ·","ᔜ":"ᔒ·","ᔞ":"ᔓ·","ᔠ":"ᔔ·","ᔢ":"ᔕ·","ᔤ":"ᔖ·","ᔲ":"ᔨ·","ᔴ":"ᔩ·","ᔶ":"ᔪ·","ᔸ":"ᔫ·","ᔺ":"ᔭ·","ᔼ":"ᔮ·","ᘢ":"ᕃ","ᣠ":"ᕃ·","ᘣ":"ᕆ","ᘤ":"ᕊ","ᕏ":"ᕌ·","ᖃ":"ᕐb","ᖄ":"ᕐḃ","ᖁ":"ᕐd","ᕿ":"ᕐP","ᙯ":"ᕐᑫ","ᕾ":"ᕐᑬ","ᖀ":"ᕐᑮ","ᖂ":"ᕐᑰ","ᖅ":"ᕐᒃ","ᕜ":"ᕚ·","ᣣ":"ᕞ·","ᣤ":"ᕦ·","ᕩ":"ᕧ·","ᣥ":"ᕫ·","ᣨ":"ᖆ·","ᖑ":"ᖕJ","ᙰ":"ᖕᒉ","ᖎ":"ᖕᒊ","ᖏ":"ᖕᒋ","ᖐ":"ᖕᒌ","ᖒ":"ᖕᒎ","ᖓ":"ᖕᒐ","ᖔ":"ᖕᒑ","ᙳ":"ᖖJ","ᙱ":"ᖖᒋ","ᙲ":"ᖖᒌ","ᙴ":"ᖖᒎ","ᙵ":"ᖖᒐ","ᙶ":"ᖖᒑ","ᣪ":"ᖗ·","ᙷ":"ᖧ·","ᙸ":"ᖨ·","ᙹ":"ᖩ·","ᙺ":"ᖪ·","ᙻ":"ᖫ·","ᙼ":"ᖬ·","ᙽ":"ᖭ·","⪫":"ᗒ","⪪":"ᗕ","ꓷ":"ᗡ","ᣰ":"ᗴ·","ᣲ":"ᘛ·","ᶻ":"ᙆ","ꓭ":"ᙠ","ᶺ":"ᣔ","ᴾ":"ᣖ","ᣜ":"ᣟᐞ","ˡ":"ᣳ","ʳ":"ᣴ","ˢ":"ᣵ","ᣛ":"ᣵ","ꚰ":"ᚹ","ᛡ":"ᚼ","⍿":"ᚽ","ᛂ":"ᚽ","𝈿":"ᛋ","↑":"ᛏ","↿":"ᛐ","⥮":"ᛐ⇂","⥣":"ᛐᛚ","ⵣ":"ᛯ","↾":"ᛚ","⨡":"ᛚ","⋄":"ᛜ","◇":"ᛜ","◊":"ᛜ","♢":"ᛜ","🝔":"ᛜ","𑢷":"ᛜ","𐊔":"ᛜ","⍚":"ᛜ̲","⋈":"ᛞ","⨝":"ᛞ","𐓐":"ᛦ","↕":"ᛨ","𐳼":"𐲂","𐳺":"𐲥","ㄱ":"ᄀ","ᆨ":"ᄀ","ᄁ":"ᄀᄀ","ㄲ":"ᄀᄀ","ᆩ":"ᄀᄀ","ᇺ":"ᄀᄂ","ᅚ":"ᄀᄃ","ᇃ":"ᄀᄅ","ᇻ":"ᄀᄇ","ᆪ":"ᄀᄉ","ㄳ":"ᄀᄉ","ᇄ":"ᄀᄉᄀ","ᇼ":"ᄀᄎ","ᇽ":"ᄀᄏ","ᇾ":"ᄀᄒ","ㄴ":"ᄂ","ᆫ":"ᄂ","ᄓ":"ᄂᄀ","ᇅ":"ᄂᄀ","ᄔ":"ᄂᄂ","ㅥ":"ᄂᄂ","ᇿ":"ᄂᄂ","ᄕ":"ᄂᄃ","ㅦ":"ᄂᄃ","ᇆ":"ᄂᄃ","ퟋ":"ᄂᄅ","ᄖ":"ᄂᄇ","ᅛ":"ᄂᄉ","ᇇ":"ᄂᄉ","ㅧ":"ᄂᄉ","ᅜ":"ᄂᄌ","ᆬ":"ᄂᄌ","ㄵ":"ᄂᄌ","ퟌ":"ᄂᄎ","ᇉ":"ᄂᄐ","ᅝ":"ᄂᄒ","ᆭ":"ᄂᄒ","ㄶ":"ᄂᄒ","ᇈ":"ᄂᅀ","ㅨ":"ᄂᅀ","ㄷ":"ᄃ","ᆮ":"ᄃ","ᄗ":"ᄃᄀ","ᇊ":"ᄃᄀ","ᄄ":"ᄃᄃ","ㄸ":"ᄃᄃ","ퟍ":"ᄃᄃ","ퟎ":"ᄃᄃᄇ","ᅞ":"ᄃᄅ","ᇋ":"ᄃᄅ","ꥠ":"ᄃᄆ","ꥡ":"ᄃᄇ","ퟏ":"ᄃᄇ","ꥢ":"ᄃᄉ","ퟐ":"ᄃᄉ","ퟑ":"ᄃᄉᄀ","ꥣ":"ᄃᄌ","ퟒ":"ᄃᄌ","ퟓ":"ᄃᄎ","ퟔ":"ᄃᄐ","ㄹ":"ᄅ","ᆯ":"ᄅ","ꥤ":"ᄅᄀ","ᆰ":"ᄅᄀ","ㄺ":"ᄅᄀ","ꥥ":"ᄅᄀᄀ","ퟕ":"ᄅᄀᄀ","ᇌ":"ᄅᄀᄉ","ㅩ":"ᄅᄀᄉ","ퟖ":"ᄅᄀᄒ","ᄘ":"ᄅᄂ","ᇍ":"ᄅᄂ","ꥦ":"ᄅᄃ","ᇎ":"ᄅᄃ","ㅪ":"ᄅᄃ","ꥧ":"ᄅᄃᄃ","ᇏ":"ᄅᄃᄒ","ᄙ":"ᄅᄅ","ᇐ":"ᄅᄅ","ퟗ":"ᄅᄅᄏ","ꥨ":"ᄅᄆ","ᆱ":"ᄅᄆ","ㄻ":"ᄅᄆ","ᇑ":"ᄅᄆᄀ","ᇒ":"ᄅᄆᄉ","ퟘ":"ᄅᄆᄒ","ꥩ":"ᄅᄇ","ᆲ":"ᄅᄇ","ㄼ":"ᄅᄇ","ퟙ":"ᄅᄇᄃ","ꥪ":"ᄅᄇᄇ","ᇓ":"ᄅᄇᄉ","ㅫ":"ᄅᄇᄉ","ꥫ":"ᄅᄇᄋ","ᇕ":"ᄅᄇᄋ","ퟚ":"ᄅᄇᄑ","ᇔ":"ᄅᄇᄒ","ꥬ":"ᄅᄉ","ᆳ":"ᄅᄉ","ㄽ":"ᄅᄉ","ᇖ":"ᄅᄉᄉ","ᄛ":"ᄅᄋ","ퟝ":"ᄅᄋ","ꥭ":"ᄅᄌ","ꥮ":"ᄅᄏ","ᇘ":"ᄅᄏ","ᆴ":"ᄅᄐ","ㄾ":"ᄅᄐ","ᆵ":"ᄅᄑ","ㄿ":"ᄅᄑ","ᄚ":"ᄅᄒ","ㅀ":"ᄅᄒ","ᄻ":"ᄅᄒ","ᆶ":"ᄅᄒ","ퟲ":"ᄅᄒ","ᇗ":"ᄅᅀ","ㅬ":"ᄅᅀ","ퟛ":"ᄅᅌ","ᇙ":"ᄅᅙ","ㅭ":"ᄅᅙ","ퟜ":"ᄅᅙᄒ","ㅁ":"ᄆ","ᆷ":"ᄆ","ꥯ":"ᄆᄀ","ᇚ":"ᄆᄀ","ퟞ":"ᄆᄂ","ퟟ":"ᄆᄂᄂ","ꥰ":"ᄆᄃ","ᇛ":"ᄆᄅ","ퟠ":"ᄆᄆ","ᄜ":"ᄆᄇ","ㅮ":"ᄆᄇ","ᇜ":"ᄆᄇ","ퟡ":"ᄆᄇᄉ","ꥱ":"ᄆᄉ","ᇝ":"ᄆᄉ","ㅯ":"ᄆᄉ","ᇞ":"ᄆᄉᄉ","ᄝ":"ᄆᄋ","ㅱ":"ᄆᄋ","ᇢ":"ᄆᄋ","ퟢ":"ᄆᄌ","ᇠ":"ᄆᄎ","ᇡ":"ᄆᄒ","ᇟ":"ᄆᅀ","ㅰ":"ᄆᅀ","ㅂ":"ᄇ","ᆸ":"ᄇ","ᄞ":"ᄇᄀ","ㅲ":"ᄇᄀ","ᄟ":"ᄇᄂ","ᄠ":"ᄇᄃ","ㅳ":"ᄇᄃ","ퟣ":"ᄇᄃ","ᇣ":"ᄇᄅ","ퟤ":"ᄇᄅᄑ","ퟥ":"ᄇᄆ","ᄈ":"ᄇᄇ","ㅃ":"ᄇᄇ","ퟦ":"ᄇᄇ","ᄬ":"ᄇᄇᄋ","ㅹ":"ᄇᄇᄋ","ᄡ":"ᄇᄉ","ㅄ":"ᄇᄉ","ᆹ":"ᄇᄉ","ᄢ":"ᄇᄉᄀ","ㅴ":"ᄇᄉᄀ","ᄣ":"ᄇᄉᄃ","ㅵ":"ᄇᄉᄃ","ퟧ":"ᄇᄉᄃ","ᄤ":"ᄇᄉᄇ","ᄥ":"ᄇᄉᄉ","ᄦ":"ᄇᄉᄌ","ꥲ":"ᄇᄉᄐ","ᄫ":"ᄇᄋ","ㅸ":"ᄇᄋ","ᇦ":"ᄇᄋ","ᄧ":"ᄇᄌ","ㅶ":"ᄇᄌ","ퟨ":"ᄇᄌ","ᄨ":"ᄇᄎ","ퟩ":"ᄇᄎ","ꥳ":"ᄇᄏ","ᄩ":"ᄇᄐ","ㅷ":"ᄇᄐ","ᄪ":"ᄇᄑ","ᇤ":"ᄇᄑ","ꥴ":"ᄇᄒ","ᇥ":"ᄇᄒ","ㅅ":"ᄉ","ᆺ":"ᄉ","ᄭ":"ᄉᄀ","ㅺ":"ᄉᄀ","ᇧ":"ᄉᄀ","ᄮ":"ᄉᄂ","ㅻ":"ᄉᄂ","ᄯ":"ᄉᄃ","ㅼ":"ᄉᄃ","ᇨ":"ᄉᄃ","ᄰ":"ᄉᄅ","ᇩ":"ᄉᄅ","ᄱ":"ᄉᄆ","ퟪ":"ᄉᄆ","ᄲ":"ᄉᄇ","ㅽ":"ᄉᄇ","ᇪ":"ᄉᄇ","ᄳ":"ᄉᄇᄀ","ퟫ":"ᄉᄇᄋ","ᄊ":"ᄉᄉ","ㅆ":"ᄉᄉ","ᆻ":"ᄉᄉ","ퟬ":"ᄉᄉᄀ","ퟭ":"ᄉᄉᄃ","ꥵ":"ᄉᄉᄇ","ᄴ":"ᄉᄉᄉ","ᄵ":"ᄉᄋ","ᄶ":"ᄉᄌ","ㅾ":"ᄉᄌ","ퟯ":"ᄉᄌ","ᄷ":"ᄉᄎ","ퟰ":"ᄉᄎ","ᄸ":"ᄉᄏ","ᄹ":"ᄉᄐ","ퟱ":"ᄉᄐ","ᄺ":"ᄉᄑ","ퟮ":"ᄉᅀ","ㅇ":"ᄋ","ᆼ":"ᄋ","ᅁ":"ᄋᄀ","ᇬ":"ᄋᄀ","ᇭ":"ᄋᄀᄀ","ᅂ":"ᄋᄃ","ꥶ":"ᄋᄅ","ᅃ":"ᄋᄆ","ᅄ":"ᄋᄇ","ᅅ":"ᄋᄉ","ᇱ":"ᄋᄉ","ㆂ":"ᄋᄉ","ᅇ":"ᄋᄋ","ㆀ":"ᄋᄋ","ᇮ":"ᄋᄋ","ᅈ":"ᄋᄌ","ᅉ":"ᄋᄎ","ᇯ":"ᄋᄏ","ᅊ":"ᄋᄐ","ᅋ":"ᄋᄑ","ꥷ":"ᄋᄒ","ᅆ":"ᄋᅀ","ᇲ":"ᄋᅀ","ㆃ":"ᄋᅀ","ㅈ":"ᄌ","ᆽ":"ᄌ","ퟷ":"ᄌᄇ","ퟸ":"ᄌᄇᄇ","ᅍ":"ᄌᄋ","ᄍ":"ᄌᄌ","ㅉ":"ᄌᄌ","ퟹ":"ᄌᄌ","ꥸ":"ᄌᄌᄒ","ㅊ":"ᄎ","ᆾ":"ᄎ","ᅒ":"ᄎᄏ","ᅓ":"ᄎᄒ","ㅋ":"ᄏ","ᆿ":"ᄏ","ㅌ":"ᄐ","ᇀ":"ᄐ","ꥹ":"ᄐᄐ","ㅍ":"ᄑ","ᇁ":"ᄑ","ᅖ":"ᄑᄇ","ᇳ":"ᄑᄇ","ퟺ":"ᄑᄉ","ᅗ":"ᄑᄋ","ㆄ":"ᄑᄋ","ᇴ":"ᄑᄋ","ퟻ":"ᄑᄐ","ꥺ":"ᄑᄒ","ㅎ":"ᄒ","ᇂ":"ᄒ","ᇵ":"ᄒᄂ","ᇶ":"ᄒᄅ","ᇷ":"ᄒᄆ","ᇸ":"ᄒᄇ","ꥻ":"ᄒᄉ","ᅘ":"ᄒᄒ","ㆅ":"ᄒᄒ","ᄽ":"ᄼᄼ","ᄿ":"ᄾᄾ","ㅿ":"ᅀ","ᇫ":"ᅀ","ퟳ":"ᅀᄇ","ퟴ":"ᅀᄇᄋ","ㆁ":"ᅌ","ᇰ":"ᅌ","ퟵ":"ᅌᄆ","ퟶ":"ᅌᄒ","ᅏ":"ᅎᅎ","ᅑ":"ᅐᅐ","ㆆ":"ᅙ","ᇹ":"ᅙ","ꥼ":"ᅙᅙ","ㅤ":"ᅠ","ㅏ":"ᅡ","ᆣ":"ᅡー","ᅶ":"ᅡᅩ","ᅷ":"ᅡᅮ","ᅢ":"ᅡ丨","ㅐ":"ᅡ丨","ㅑ":"ᅣ","ᅸ":"ᅣᅩ","ᅹ":"ᅣᅭ","ᆤ":"ᅣᅮ","ᅤ":"ᅣ丨","ㅒ":"ᅣ丨","ㅓ":"ᅥ","ᅼ":"ᅥー","ᅺ":"ᅥᅩ","ᅻ":"ᅥᅮ","ᅦ":"ᅥ丨","ㅔ":"ᅥ丨","ㅕ":"ᅧ","ᆥ":"ᅧᅣ","ᅽ":"ᅧᅩ","ᅾ":"ᅧᅮ","ᅨ":"ᅧ丨","ㅖ":"ᅧ丨","ㅗ":"ᅩ","ᅪ":"ᅩᅡ","ㅘ":"ᅩᅡ","ᅫ":"ᅩᅡ丨","ㅙ":"ᅩᅡ丨","ᆦ":"ᅩᅣ","ᆧ":"ᅩᅣ丨","ᅿ":"ᅩᅥ","ᆀ":"ᅩᅥ丨","ힰ":"ᅩᅧ","ᆁ":"ᅩᅧ丨","ᆂ":"ᅩᅩ","ힱ":"ᅩᅩ丨","ᆃ":"ᅩᅮ","ᅬ":"ᅩ丨","ㅚ":"ᅩ丨","ㅛ":"ᅭ","ힲ":"ᅭᅡ","ힳ":"ᅭᅡ丨","ᆄ":"ᅭᅣ","ㆇ":"ᅭᅣ","ᆆ":"ᅭᅣ","ᆅ":"ᅭᅣ丨","ㆈ":"ᅭᅣ丨","ힴ":"ᅭᅥ","ᆇ":"ᅭᅩ","ᆈ":"ᅭ丨","ㆉ":"ᅭ丨","ㅜ":"ᅮ","ᆉ":"ᅮᅡ","ᆊ":"ᅮᅡ丨","ᅯ":"ᅮᅥ","ㅝ":"ᅮᅥ","ᆋ":"ᅮᅥー","ᅰ":"ᅮᅥ丨","ㅞ":"ᅮᅥ丨","ힵ":"ᅮᅧ","ᆌ":"ᅮᅧ丨","ᆍ":"ᅮᅮ","ᅱ":"ᅮ丨","ㅟ":"ᅮ丨","ힶ":"ᅮ丨丨","ㅠ":"ᅲ","ᆎ":"ᅲᅡ","ힷ":"ᅲᅡ丨","ᆏ":"ᅲᅥ","ᆐ":"ᅲᅥ丨","ᆑ":"ᅲᅧ","ㆊ":"ᅲᅧ","ᆒ":"ᅲᅧ丨","ㆋ":"ᅲᅧ丨","ힸ":"ᅲᅩ","ᆓ":"ᅲᅮ","ᆔ":"ᅲ丨","ㆌ":"ᅲ丨","ㆍ":"ᆞ","ퟅ":"ᆞᅡ","ᆟ":"ᆞᅥ","ퟆ":"ᆞᅥ丨","ᆠ":"ᆞᅮ","ᆢ":"ᆞᆞ","ᆡ":"ᆞ丨","ㆎ":"ᆞ丨","ヘ":"へ","⍁":"〼","⧄":"〼","꒞":"ꁊ","꒬":"ꁐ","꒜":"ꃀ","꒨":"ꄲ","꒿":"ꉙ","꒾":"ꊱ","꒔":"ꋍ","꓀":"ꎫ","꓂":"ꎵ","꒺":"ꎿ","꒰":"ꏂ","꒧":"ꑘ","⊥":"ꓕ","⟂":"ꓕ","𝈜":"ꓕ","Ʇ":"ꓕ","Ꞟ":"ꓤ","⅁":"ꓨ","⅂":"ꓶ","𝈕":"ꓶ","𝈫":"ꓶ","𖼦":"ꓶ","𐐑":"ꓶ","⅃":"𖼀","𑫦":"𑫥𑫯","𑫨":"𑫥𑫥","𑫩":"𑫥𑫥𑫯","𑫪":"𑫥𑫥𑫰","𑫧":"𑫥𑫰","𑫴":"𑫳𑫯","𑫶":"𑫳𑫳","𑫷":"𑫳𑫳𑫯","𑫸":"𑫳𑫳𑫰","𑫵":"𑫳𑫰","𑫬":"𑫫𑫯","𑫭":"𑫫𑫫","𑫮":"𑫫𑫫𑫯","⊕":"𐊨","⨁":"𐊨","🜨":"𐊨","Ꚛ":"𐊨","▽":"𐊼","𝈔":"𐊼","🜄":"𐊼","⧖":"𐋀","ꞛ":"𐐺","Ꞛ":"𐐒","𐒠":"𐒆","𐏑":"𐎂","𐏓":"𐎓","𒀸":"𐎚","☥":"𐦞","𓋹":"𐦞","〹":"卄","不":"不","丽":"丽","並":"並","⎜":"丨","⎟":"丨","⎢":"丨","⎥":"丨","⎪":"丨","⎮":"丨","㇑":"丨","ᅵ":"丨","ㅣ":"丨","⼁":"丨","ᆜ":"丨ー","ᆘ":"丨ᅡ","ᆙ":"丨ᅣ","ힽ":"丨ᅣᅩ","ힾ":"丨ᅣ丨","ힿ":"丨ᅧ","ퟀ":"丨ᅧ丨","ᆚ":"丨ᅩ","ퟁ":"丨ᅩ丨","ퟂ":"丨ᅭ","ᆛ":"丨ᅮ","ퟃ":"丨ᅲ","ᆝ":"丨ᆞ","ퟄ":"丨丨","串":"串","丸":"丸","丹":"丹","乁":"乁","㇠":"乙","⼄":"乙","㇟":"乚","⺃":"乚","㇖":"乛","⺂":"乛","⻲":"亀","亂":"亂","㇚":"亅","⼅":"亅","了":"了","ニ":"二","⼆":"二","𠄢":"𠄢","⼇":"亠","亮":"亮","⼈":"人","イ":"亻","⺅":"亻","什":"什","仌":"仌","令":"令","你":"你","倂":"併","倂":"併","侀":"侀","來":"來","例":"例","侮":"侮","侮":"侮","侻":"侻","便":"便","值":"値","倫":"倫","偺":"偺","備":"備","像":"像","僚":"僚","僧":"僧","僧":"僧","㒞":"㒞","⼉":"儿","兀":"兀","⺎":"兀","充":"充","免":"免","免":"免","兔":"兔","兤":"兤","⼊":"入","內":"內","全":"全","兩":"兩","ハ":"八","⼋":"八","六":"六","具":"具","𠔜":"𠔜","𠔥":"𠔥","冀":"冀","㒹":"㒹","⼌":"冂","再":"再","𠕋":"𠕋","冒":"冒","冕":"冕","㒻":"㒻","最":"最","⼍":"冖","冗":"冗","冤":"冤","⼎":"冫","冬":"冬","况":"况","况":"况","冷":"冷","凉":"凉","凌":"凌","凜":"凜","凞":"凞","⼏":"几","𠘺":"𠘺","凵":"凵","⼐":"凵","⼑":"刀","⺉":"刂","刃":"刃","切":"切","切":"切","列":"列","利":"利","㓟":"㓟","刺":"刺","刻":"刻","剆":"剆","割":"割","剷":"剷","劉":"劉","𠠄":"𠠄","カ":"力","力":"力","⼒":"力","劣":"劣","㔕":"㔕","劳":"劳","勇":"勇","勇":"勇","勉":"勉","勉":"勉","勒":"勒","勞":"勞","勤":"勤","勤":"勤","勵":"勵","⼓":"勹","勺":"勺","勺":"勺","包":"包","匆":"匆","𠣞":"𠣞","⼔":"匕","北":"北","北":"北","⼕":"匚","⼖":"匸","匿":"匿","⼗":"十","〸":"十","〺":"卅","卉":"卉","࿖":"卍","࿕":"卐","卑":"卑","卑":"卑","博":"博","ト":"卜","⼘":"卜","⼙":"卩","⺋":"㔾","即":"即","卵":"卵","卽":"卽","卿":"卿","卿":"卿","卿":"卿","⼚":"厂","𠨬":"𠨬","⼛":"厶","參":"參","⼜":"又","及":"及","叟":"叟","𠭣":"𠭣","ロ":"口","⼝":"口","囗":"口","⼞":"口","句":"句","叫":"叫","叱":"叱","吆":"吆","吏":"吏","吝":"吝","吸":"吸","呂":"呂","呈":"呈","周":"周","咞":"咞","咢":"咢","咽":"咽","䎛":"㖈","哶":"哶","唐":"唐","啓":"啓","啟":"啓","啕":"啕","啣":"啣","善":"善","善":"善","喇":"喇","喙":"喙","喙":"喙","喝":"喝","喝":"喝","喫":"喫","喳":"喳","嗀":"嗀","嗂":"嗂","嗢":"嗢","嘆":"嘆","嘆":"嘆","噑":"噑","噴":"噴","器":"器","囹":"囹","圖":"圖","圗":"圗","⼟":"土","士":"土","⼠":"土","型":"型","城":"城","㦳":"㘽","埴":"埴","堍":"堍","報":"報","堲":"堲","塀":"塀","塚":"塚","塚":"塚","塞":"塞","填":"塡","壿":"墫","墬":"墬","墳":"墳","壘":"壘","壟":"壟","𡓤":"𡓤","壮":"壮","売":"売","壷":"壷","⼡":"夂","夆":"夆","⼢":"夊","タ":"夕","⼣":"夕","多":"多","夢":"夢","⼤":"大","奄":"奄","奈":"奈","契":"契","奔":"奔","奢":"奢","女":"女","⼥":"女","𡚨":"𡚨","𡛪":"𡛪","姘":"姘","姬":"姬","娛":"娛","娧":"娧","婢":"婢","婦":"婦","嬀":"媯","㛮":"㛮","㛼":"㛼","媵":"媵","嬈":"嬈","嬨":"嬨","嬾":"嬾","嬾":"嬾","⼦":"子","⼧":"宀","宅":"宅","𡧈":"𡧈","寃":"寃","寘":"寘","寧":"寧","寧":"寧","寧":"寧","寮":"寮","寳":"寳","𡬘":"𡬘","⼨":"寸","寿":"寿","将":"将","⼩":"小","尢":"尢","⺐":"尢","⼪":"尢","⺏":"尣","㞁":"㞁","⼫":"尸","尿":"尿","屠":"屠","屢":"屢","層":"層","履":"履","屮":"屮","屮":"屮","⼬":"屮","𡴋":"𡴋","⼭":"山","峀":"峀","岍":"岍","𡷤":"𡷤","𡷦":"𡷦","崙":"崙","嵃":"嵃","嵐":"嵐","嵫":"嵫","嵮":"嵮","嵼":"嵼","嶲":"嶲","嶺":"嶺","⼮":"巛","巢":"巢","エ":"工","⼯":"工","⼰":"己","⺒":"巳","㠯":"㠯","巽":"巽","⼱":"巾","帲":"帡","帨":"帨","帽":"帽","幩":"幩","㡢":"㡢","𢆃":"𢆃","⼲":"干","年":"年","𢆟":"𢆟","⺓":"幺","⼳":"幺","⼴":"广","度":"度","㡼":"㡼","庰":"庰","庳":"庳","庶":"庶","廊":"廊","廊":"廊","廉":"廉","廒":"廒","廓":"廓","廙":"廙","廬":"廬","⼵":"廴","廾":"廾","⼶":"廾","𢌱":"𢌱","𢌱":"𢌱","弄":"弄","⼷":"弋","⼸":"弓","弢":"弢","弢":"弢","⼹":"彐","⺔":"彑","当":"当","㣇":"㣇","⼺":"彡","形":"形","彩":"彩","彫":"彫","⼻":"彳","律":"律","㣣":"㣣","徚":"徚","復":"復","徭":"徭","⼼":"心","⺖":"忄","⺗":"㣺","忍":"忍","志":"志","念":"念","忹":"忹","怒":"怒","怜":"怜","恵":"恵","㤜":"㤜","㤺":"㤺","悁":"悁","悔":"悔","悔":"悔","惇":"惇","惘":"惘","惡":"惡","𢛔":"𢛔","愈":"愈","慨":"慨","慄":"慄","慈":"慈","慌":"慌","慌":"慌","慎":"慎","慎":"慎","慠":"慠","慺":"慺","憎":"憎","憎":"憎","憎":"憎","憐":"憐","憤":"憤","憯":"憯","憲":"憲","𢡄":"𢡄","𢡊":"𢡊","懞":"懞","懲":"懲","懲":"懲","懲":"懲","懶":"懶","懶":"懶","戀":"戀","⼽":"戈","成":"成","戛":"戛","戮":"戮","戴":"戴","⼾":"戶","戸":"戶","⼿":"手","⺘":"扌","扝":"扝","抱":"抱","拉":"拉","拏":"拏","拓":"拓","拔":"拔","拼":"拼","拾":"拾","𢬌":"𢬌","挽":"挽","捐":"捐","捨":"捨","捻":"捻","掃":"掃","掠":"掠","掩":"掩","揄":"揄","揤":"揤","摒":"摒","𢯱":"𢯱","搜":"搜","搢":"搢","揅":"揅","摩":"摩","摷":"摷","摾":"摾","㨮":"㨮","搉":"㩁","撚":"撚","撝":"撝","擄":"擄","㩬":"㩬","⽀":"支","⽁":"攴","⺙":"攵","敏":"敏","敏":"敏","敖":"敖","敬":"敬","數":"數","𣀊":"𣀊","⽂":"文","⻫":"斉","⽃":"斗","料":"料","⽄":"斤","⽅":"方","旅":"旅","⽆":"无","⺛":"旡","既":"既","旣":"旣","⽇":"日","易":"易","曶":"㫚","㫤":"㫤","晉":"晉","晩":"晚","晴":"晴","晴":"晴","暑":"暑","暑":"暑","暈":"暈","㬈":"㬈","暜":"暜","暴":"暴","曆":"曆","㬙":"㬙","𣊸":"𣊸","⽈":"曰","更":"更","書":"書","⽉":"月","𣍟":"𣍟","肦":"朌","胐":"朏","胊":"朐","脁":"朓","胶":"㬵","朗":"朗","朗":"朗","朗":"朗","脧":"朘","望":"望","望":"望","朡":"朡","幐":"㬺","䐠":"㬻","𣎓":"𣎓","膧":"朣","𣎜":"𣎜","⽊":"木","李":"李","杓":"杓","杖":"杖","杞":"杞","𣏃":"𣏃","柿":"杮","杻":"杻","枅":"枅","林":"林","㭉":"㭉","𣏕":"𣏕","柳":"柳","柺":"柺","栗":"栗","栟":"栟","桒":"桒","𣑭":"𣑭","梁":"梁","梅":"梅","梅":"梅","梎":"梎","梨":"梨","椔":"椔","楂":"楂","㮝":"㮝","㮝":"㮝","槩":"㮣","樧":"榝","榣":"榣","槪":"槪","樂":"樂","樂":"樂","樂":"樂","樓":"樓","𣚣":"𣚣","檨":"檨","櫓":"櫓","櫛":"櫛","欄":"欄","㰘":"㰘","⽋":"欠","次":"次","𣢧":"𣢧","歔":"歔","㱎":"㱎","⽌":"止","⻭":"歯","歲":"歲","歷":"歷","歹":"歹","⽍":"歹","⺞":"歺","殟":"殟","殮":"殮","⽎":"殳","殺":"殺","殺":"殺","殺":"殺","殻":"殻","𣪍":"𣪍","⽏":"毋","⺟":"母","𣫺":"𣫺","⽐":"比","⽑":"毛","⽒":"氏","⺠":"民","⽓":"气","⽔":"水","⺡":"氵","⺢":"氺","汎":"汎","汧":"汧","沈":"沈","沿":"沿","泌":"泌","泍":"泍","泥":"泥","𣲼":"𣲼","洛":"洛","洞":"洞","洴":"洴","派":"派","流":"流","流":"流","流":"流","洖":"洖","浩":"浩","浪":"浪","海":"海","海":"海","浸":"浸","涅":"涅","𣴞":"𣴞","淋":"淋","淚":"淚","淪":"淪","淹":"淹","渚":"渚","港":"港","湮":"湮","潙":"溈","滋":"滋","滋":"滋","溜":"溜","溺":"溺","滇":"滇","滑":"滑","滛":"滛","㴳":"㴳","漏":"漏","漢":"漢","漢":"漢","漣":"漣","𣻑":"𣻑","潮":"潮","𣽞":"𣽞","𣾎":"𣾎","濆":"濆","濫":"濫","濾":"濾","瀛":"瀛","瀞":"瀞","瀞":"瀞","瀹":"瀹","灊":"灊","㶖":"㶖","⽕":"火","⺣":"灬","灰":"灰","灷":"灷","災":"災","炙":"炙","炭":"炭","烈":"烈","烙":"烙","煮":"煮","煮":"煮","𤉣":"𤉣","煅":"煅","煉":"煉","𤋮":"𤋮","熜":"熜","燎":"燎","燐":"燐","𤎫":"𤎫","爐":"爐","爛":"爛","爨":"爨","⽖":"爪","爫":"爫","⺤":"爫","爵":"爵","爵":"爵","⽗":"父","⽘":"爻","⺦":"丬","⽙":"爿","⽚":"片","牐":"牐","⽛":"牙","𤘈":"𤘈","⽜":"牛","牢":"牢","犀":"犀","犕":"犕","⽝":"犬","⺨":"犭","犯":"犯","狀":"狀","𤜵":"𤜵","狼":"狼","猪":"猪","猪":"猪","𤠔":"𤠔","獵":"獵","獺":"獺","⽞":"玄","率":"率","率":"率","⽟":"玉","王":"王","㺬":"㺬","玥":"玥","玲":"玲","㺸":"㺸","㺸":"㺸","珞":"珞","琉":"琉","理":"理","琢":"琢","瑇":"瑇","瑜":"瑜","瑩":"瑩","瑱":"瑱","瑱":"瑱","璅":"璅","璉":"璉","璘":"璘","瓊":"瓊","⽠":"瓜","⽡":"瓦","㼛":"㼛","甆":"甆","⽢":"甘","⽣":"生","甤":"甤","⽤":"用","⽥":"田","画":"画","甾":"甾","𤰶":"𤰶","留":"留","略":"略","異":"異","異":"異","𤲒":"𤲒","⽦":"疋","⽧":"疒","痢":"痢","瘐":"瘐","瘟":"瘟","瘝":"瘝","療":"療","癩":"癩","⽨":"癶","⽩":"白","𤾡":"𤾡","𤾸":"𤾸","⽪":"皮","⽫":"皿","𥁄":"𥁄","㿼":"㿼","益":"益","益":"益","盛":"盛","盧":"盧","䀈":"䀈","⽬":"目","直":"直","直":"直","𥃲":"𥃲","𥃳":"𥃳","省":"省","䀘":"䀘","𥄙":"𥄙","眞":"眞","真":"真","真":"真","𥄳":"𥄳","着":"着","睊":"睊","睊":"睊","鿃":"䀹","䀹":"䀹","䀹":"䀹","晣":"䀿","䁆":"䁆","瞋":"瞋","𥉉":"𥉉","瞧":"瞧","⽭":"矛","⽮":"矢","⽯":"石","䂖":"䂖","𥐝":"𥐝","硏":"研","硎":"硎","硫":"硫","碌":"碌","碌":"碌","碑":"碑","磊":"磊","磌":"磌","磌":"磌","磻":"磻","䃣":"䃣","礪":"礪","⽰":"示","⺭":"礻","礼":"礼","社":"社","祈":"祈","祉":"祉","𥘦":"𥘦","祐":"祐","祖":"祖","祖":"祖","祝":"祝","神":"神","祥":"祥","視":"視","視":"視","祿":"祿","𥚚":"𥚚","禍":"禍","禎":"禎","福":"福","福":"福","𥛅":"𥛅","禮":"禮","⽱":"禸","⽲":"禾","秊":"秊","䄯":"䄯","秫":"秫","稜":"稜","穊":"穊","穀":"穀","穀":"穀","穏":"穏","⽳":"穴","突":"突","𥥼":"𥥼","窱":"窱","立":"立","⽴":"立","⻯":"竜","𥪧":"𥪧","𥪧":"𥪧","竮":"竮","⽵":"竹","笠":"笠","節":"節","節":"節","䈂":"䈂","𥮫":"𥮫","篆":"篆","䈧":"䈧","築":"築","𥲀":"𥲀","𥳐":"𥳐","簾":"簾","籠":"籠","⽶":"米","类":"类","粒":"粒","精":"精","糒":"糒","糖":"糖","糨":"糨","䊠":"䊠","糣":"糣","糧":"糧","⽷":"糸","⺯":"糹","𥾆":"𥾆","紀":"紀","紐":"紐","索":"索","累":"累","絶":"絕","絣":"絣","絛":"絛","綠":"綠","綾":"綾","緇":"緇","練":"練","練":"練","練":"練","縂":"縂","䌁":"䌁","縉":"縉","縷":"縷","繁":"繁","繅":"繅","𦇚":"𦇚","䌴":"䌴","⽸":"缶","𦈨":"𦈨","缾":"缾","𦉇":"𦉇","⽹":"网","⺫":"罒","⺲":"罒","⺱":"罓","䍙":"䍙","署":"署","𦋙":"𦋙","罹":"罹","罺":"罺","羅":"羅","𦌾":"𦌾","⽺":"羊","羕":"羕","羚":"羚","羽":"羽","⽻":"羽","翺":"翺","老":"老","⽼":"老","⺹":"耂","者":"者","者":"者","者":"者","⽽":"而","𦓚":"𦓚","⽾":"耒","𦔣":"𦔣","⽿":"耳","聆":"聆","聠":"聠","𦖨":"𦖨","聯":"聯","聰":"聰","聾":"聾","⾀":"聿","⺺":"肀","⾁":"肉","肋":"肋","肭":"肭","育":"育","䏕":"䏕","䏙":"䏙","腁":"胼","脃":"脃","脾":"脾","䐋":"䐋","𦞧":"𦞧","𦞵":"𦞵","朦":"䑃","臘":"臘","⾂":"臣","臨":"臨","⾃":"自","臭":"臭","⾄":"至","⾅":"臼","舁":"舁","舁":"舁","舄":"舄","⾆":"舌","舘":"舘","⾇":"舛","⾈":"舟","䑫":"䑫","⾉":"艮","良":"良","⾊":"色","⾋":"艸","艹":"艹","艹":"艹","⺾":"艹","⺿":"艹","⻀":"艹","芋":"芋","芑":"芑","芝":"芝","花":"花","芳":"芳","芽":"芽","若":"若","若":"若","苦":"苦","𦬼":"𦬼","茶":"茶","荒":"荒","荣":"荣","茝":"茝","茣":"茣","莽":"莽","荓":"荓","菉":"菉","菊":"菊","菌":"菌","菜":"菜","菧":"菧","華":"華","菱":"菱","著":"著","著":"著","𦰶":"𦰶","莭":"莭","落":"落","葉":"葉","蔿":"蒍","𦳕":"𦳕","𦵫":"𦵫","蓮":"蓮","蓱":"蓱","蓳":"蓳","蓼":"蓼","蔖":"蔖","䔫":"䔫","蕤":"蕤","𦼬":"𦼬","藍":"藍","䕝":"䕝","𦾱":"𦾱","䕡":"䕡","藺":"藺","蘆":"蘆","䕫":"䕫","蘒":"蘒","蘭":"蘭","𧃒":"𧃒","虁":"蘷","蘿":"蘿","⾌":"虍","⻁":"虎","虐":"虐","虜":"虜","虜":"虜","虧":"虧","虩":"虩","⾍":"虫","蚩":"蚩","蚈":"蚈","蛢":"蛢","蜎":"蜎","蜨":"蜨","蝫":"蝫","蟡":"蟡","蝹":"蝹","蝹":"蝹","螆":"螆","䗗":"䗗","𧏊":"𧏊","螺":"螺","蠁":"蠁","䗹":"䗹","蠟":"蠟","⾎":"血","行":"行","⾏":"行","衠":"衠","衣":"衣","⾐":"衣","⻂":"衤","裂":"裂","𧙧":"𧙧","裏":"裏","裗":"裗","裞":"裞","裡":"裡","裸":"裸","裺":"裺","䘵":"䘵","褐":"褐","襁":"襁","襤":"襤","⾑":"襾","⻄":"西","⻃":"覀","覆":"覆","見":"見","⾒":"見","𧢮":"𧢮","⻅":"见","⾓":"角","⾔":"言","𧥦":"𧥦","詽":"訮","訞":"䚶","䚾":"䚾","䛇":"䛇","誠":"誠","說":"說","說":"說","調":"調","請":"請","諒":"諒","論":"論","諭":"諭","諭":"諭","諸":"諸","諸":"諸","諾":"諾","諾":"諾","謁":"謁","謁":"謁","謹":"謹","謹":"謹","識":"識","讀":"讀","讏":"讆","變":"變","變":"變","⻈":"讠","⾕":"谷","⾖":"豆","豈":"豈","豕":"豕","⾗":"豕","豣":"豜","⾘":"豸","𧲨":"𧲨","⾙":"貝","貫":"貫","賁":"賁","賂":"賂","賈":"賈","賓":"賓","贈":"贈","贈":"贈","贛":"贛","⻉":"贝","⾚":"赤","⾛":"走","起":"起","趆":"赿","𧻓":"𧻓","𧼯":"𧼯","⾜":"足","跋":"跋","趼":"趼","跺":"跥","路":"路","跰":"跰","躛":"躗","⾝":"身","車":"車","⾞":"車","軔":"軔","輧":"軿","輦":"輦","輪":"輪","輸":"輸","輸":"輸","輻":"輻","轢":"轢","⻋":"车","⾟":"辛","辞":"辞","辰":"辰","⾠":"辰","⾡":"辵","辶":"辶","⻌":"辶","⻍":"辶","巡":"巡","連":"連","逸":"逸","逸":"逸","遲":"遲","遼":"遼","𨗒":"𨗒","𨗭":"𨗭","邏":"邏","⾢":"邑","邔":"邔","郎":"郎","郞":"郎","郞":"郎","郱":"郱","都":"都","𨜮":"𨜮","鄑":"鄑","鄛":"鄛","⾣":"酉","酪":"酪","醙":"醙","醴":"醴","⾤":"釆","里":"里","⾥":"里","量":"量","金":"金","⾦":"金","鈴":"鈴","鈸":"鈸","鉶":"鉶","鋗":"鋗","鋘":"鋘","鉼":"鉼","錄":"錄","鍊":"鍊","鎮":"鎭","鏹":"鏹","鐕":"鐕","𨯺":"𨯺","⻐":"钅","⻑":"長","⾧":"長","⻒":"镸","⻓":"长","⾨":"門","開":"開","䦕":"䦕","閭":"閭","閷":"閷","𨵷":"𨵷","⻔":"门","⾩":"阜","⻏":"阝","⻖":"阝","阮":"阮","陋":"陋","降":"降","陵":"陵","陸":"陸","陼":"陼","隆":"隆","隣":"隣","䧦":"䧦","⾪":"隶","隷":"隷","隸":"隷","隸":"隷","⾫":"隹","雃":"雃","離":"離","難":"難","難":"難","⾬":"雨","零":"零","雷":"雷","霣":"霣","𩅅":"𩅅","露":"露","靈":"靈","⾭":"靑","⻘":"青","靖":"靖","靖":"靖","𩇟":"𩇟","⾮":"非","⾯":"面","𩈚":"𩈚","⾰":"革","䩮":"䩮","䩶":"䩶","⾱":"韋","韛":"韛","韠":"韠","⻙":"韦","⾲":"韭","𩐊":"𩐊","⾳":"音","響":"響","響":"響","⾴":"頁","䪲":"䪲","頋":"頋","頋":"頋","頋":"頋","領":"領","頩":"頩","𩒖":"𩒖","頻":"頻","頻":"頻","類":"類","⻚":"页","⾵":"風","𩖶":"𩖶","⻛":"风","⾶":"飛","⻜":"飞","⻝":"食","⾷":"食","⻟":"飠","飢":"飢","飯":"飯","飼":"飼","䬳":"䬳","館":"館","餩":"餩","⻠":"饣","⾸":"首","⾹":"香","馧":"馧","⾺":"馬","駂":"駂","駱":"駱","駾":"駾","驪":"驪","⻢":"马","⾻":"骨","䯎":"䯎","⾼":"高","⾽":"髟","𩬰":"𩬰","鬒":"鬒","鬒":"鬒","⾾":"鬥","⾿":"鬯","⿀":"鬲","⿁":"鬼","⻤":"鬼","⿂":"魚","魯":"魯","鱀":"鱀","鱗":"鱗","⻥":"鱼","⿃":"鳥","鳽":"鳽","䳎":"䳎","鵧":"鵧","䳭":"䳭","𪃎":"𪃎","鶴":"鶴","𪄅":"𪄅","䳸":"䳸","鷺":"鷺","𪈎":"𪈎","鸞":"鸞","鹃":"鹂","⿄":"鹵","鹿":"鹿","⿅":"鹿","𪊑":"𪊑","麗":"麗","麟":"麟","⿆":"麥","⻨":"麦","麻":"麻","⿇":"麻","𪎒":"𪎒","⿈":"黃","⻩":"黄","⿉":"黍","黎":"黎","䵖":"䵖","⿊":"黑","黒":"黑","墨":"墨","黹":"黹","⿋":"黹","⿌":"黽","鼅":"鼅","黾":"黾","⿍":"鼎","鼏":"鼏","⿎":"鼓","鼖":"鼖","⿏":"鼠","鼻":"鼻","⿐":"鼻","齃":"齃","⿑":"齊","⻬":"齐","⿒":"齒","𪘀":"𪘀","⻮":"齿","龍":"龍","⿓":"龍","龎":"龎","⻰":"龙","龜":"龜","龜":"龜","龜":"龜","⿔":"龜","⻳":"龟","⿕":"龠"}')},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.MatrixScheduler=o;var i=r(n(8));n(5);function o(e,t){this.retryAlgorithm=e||o.RETRY_BACKOFF_RATELIMIT,this.queueAlgorithm=t||o.QUEUE_MESSAGES,this._queues={},this._activeQueues=[],this._procFn=null}function s(e){e._procFn&&i.forEach(i.filter(i.keys(e._queues),(function(t){return-1===e._activeQueues.indexOf(t)&&e._queues[t].length>0})),(function(t){e._activeQueues.push(t),c("Spinning up queue: '%s'",t),function e(t,n){const r=function(e,t){const n=e._queues[t];if(!i.isArray(n))return null;return n[0]}(t,n);if(!r){const e=t._activeQueues.indexOf(n);return e>=0&&t._activeQueues.splice(e,1),void c("Stopping queue '%s' as it is now empty",n)}c("Queue '%s' has %s pending events",n,t._queues[n].length),Promise.resolve().then(()=>t._procFn(r.event)).then((function(i){a(t,n),c("Queue '%s' sent event %s",n,r.event.getId()),r.defer.resolve(i),e(t,n)}),(function(i){r.attempts+=1;const o=t.retryAlgorithm(r.event,r.attempts,i);c("retry(%s) err=%s event_id=%s waitTime=%s",r.attempts,i,r.event.getId(),o),-1===o?(c("Queue '%s' giving up on event %s",n,r.event.getId()),a(t,n),r.defer.reject(i),e(t,n)):setTimeout((function(){e(t,n)}),o)}))}(e,t)}))}function a(e,t){const n=e._queues[t];return i.isArray(n)?n.shift():null}function c(){0}o.prototype.getQueueForEvent=function(e){const t=this.queueAlgorithm(e);return t&&this._queues[t]?i.map(this._queues[t],(function(e){return e.event})):null},o.prototype.removeEventFromQueue=function(e){const t=this.queueAlgorithm(e);if(!t||!this._queues[t])return!1;let n=!1;return i.removeElement(this._queues[t],(function(t){if(t.event.getId()===e.getId())return n=!0,!0})),n},o.prototype.setProcessFunction=function(e){this._procFn=e,s(this)},o.prototype.queueEvent=function(e){const t=this.queueAlgorithm(e);if(!t)return null;this._queues[t]||(this._queues[t]=[]);const n=i.defer();return this._queues[t].push({event:e,defer:n,attempts:0}),c("Queue algorithm dumped event %s into queue '%s'",e.getId(),t),s(this),n.promise},o.RETRY_BACKOFF_RATELIMIT=function(e,t,n){if(400===n.httpStatus||403===n.httpStatus||401===n.httpStatus)return-1;if("rejected"===n.cors)return-1;if("M_TOO_LARGE"===n.name)return-1;if("M_LIMIT_EXCEEDED"===n.name){const e=n.data.retry_after_ms;if(e)return e}return t>4?-1:1e3*Math.pow(2,t)},o.QUEUE_MESSAGES=function(e){return"m.room.message"===e.getType()||e.hasAssocation()?"message":null}},function(e,t,n){"use strict";(function(e){var r=n(7),i=n(16);Object.defineProperty(t,"__esModule",{value:!0}),t.MatrixClient=C,t.CRYPTO_ENABLED=void 0;var o=i(n(73)),s=n(10),a=n(279),c=n(75),f=n(283),u=n(19),l=n(25),d=n(286),h=n(288),p=n(134),m=r(n(8)),g=n(48),y=n(49),b=r(n(135)),_=r(n(21)),v=n(77),A=n(289),w=n(5),E=n(292),k=n(142),S=n(141),I=n(51),T=n(74);const R=(0,E.isCryptoAvailable)();t.CRYPTO_ENABLED=R;function O(e,t,n){const r=[];for(const[i,o]of Object.entries(e))try{const e=x(o,t);e.session_id=i,e.room_id=n,r.push(e)}catch(e){w.logger.log("Failed to decrypt megolm session from backup",e)}return r}function x(e,t){return JSON.parse(t.decrypt(e.session_data.ephemeral,e.session_data.mac,e.session_data.ciphertext))}function C(e){e.baseUrl=m.ensureNoTrailingSlash(e.baseUrl),e.idBaseUrl=m.ensureNoTrailingSlash(e.idBaseUrl),a.MatrixBaseApis.call(this,e),this.olmVersion=null,this.reEmitter=new v.ReEmitter(this),this.store=e.store||new h.StubStore,this.deviceId=e.deviceId||null;const t=e.userId||null;if(this.credentials={userId:t},this.scheduler=e.scheduler,this.scheduler){const e=this;this.scheduler.setProcessFunction((function(t){const n=e.getRoom(t.getRoomId());return t.status!==u.EventStatus.SENDING&&B(n,t,u.EventStatus.SENDING),N(e,t)}))}this.clientRunning=!1,this.callList={};const n=(0,p.createNewMatrixCall)(this);this._supportsVoip=!1,n&&(!function(e){const t={};let n=[];function r(){if("SYNCING"===e.getSyncState()){if(n.some(e=>e.isBeingDecrypted()))return;const e={};for(let t=n.length-1;t>=0;t--){const r=n[t];"m.call.answer"!==r.getType()&&"m.call.hangup"!==r.getType()||(e[r.getContent().call_id]="yep")}n.forEach((function(t){"m.call.invite"===t.getType()&&e[t.getContent().call_id]||i(t)})),n=[]}}function i(n){const r=n.getContent();let i,o=r.call_id?e.callList[r.call_id]:void 0;if("m.call.invite"===n.getType()){if(n.getSender()===e.credentials.userId)return;if(n.getAge()>r.lifetime)return;if(o&&"ended"===o.state)return;if(o&&w.logger.log("WARN: Already have a MatrixCall with id %s but got an invite. Clobbering.",r.call_id),o=(0,p.createNewMatrixCall)(e,n.getRoomId(),{forceTURN:e._forceTURN}),!o)return void w.logger.log("Incoming call ID "+r.call_id+" but this client doesn't support WebRTC");if(o.callId=r.call_id,o._initWithInvite(n),e.callList[o.callId]=o,t[o.callId])for(i=0;io.callId?(w.logger.log("Glare detected: answering incoming call "+o.callId+" and canceling outgoing call "+s.callId),s._replacedBy(o),o.answer()):(w.logger.log("Glare detected: rejecting incoming call "+o.callId+" and keeping outgoing call "+s.callId),o.hangup()):e.emit("Call.incoming",o)}else if("m.call.answer"===n.getType()){if(!o)return;n.getSender()===e.credentials.userId?"ringing"===o.state&&o._onAnsweredElsewhere(r):o._receivedAnswer(r)}else if("m.call.candidates"===n.getType()){if(n.getSender()===e.credentials.userId)return;if(o)for(i=0;i{-1!==e.getType().indexOf("m.call.")&&(n.includes(e)?r():i(e))})}))}(this),this._supportsVoip=!0),this._syncingRetry=null,this._syncApi=null,this._peekSync=null,this._isGuest=!1,this._ongoingScrollbacks={},this.timelineSupport=Boolean(e.timelineSupport),this.urlPreviewCache={},this._notifTimelineSet=null,this.unstableClientRelationAggregation=!!e.unstableClientRelationAggregation,this._crypto=null,this._cryptoStore=e.cryptoStore,this._sessionStore=e.sessionStore,this._verificationMethods=e.verificationMethods,this._cryptoCallbacks=e.cryptoCallbacks||{},this._forceTURN=e.forceTURN||!1,this._fallbackICEServerAllowed=e.fallbackICEServerAllowed||!1,this._roomList=new A.RoomList(this._cryptoStore),this._pushProcessor=new T.PushProcessor(this),this._serverVersionsCache=null,this._cachedCapabilities=null,this.on("Event.decrypted",e=>{const t=e.getPushActions(),n=this._pushProcessor.actionsForEvent(e);e.setPushActions(n);const r=this.getRoom(e.getRoomId());if(!r)return;const i=r.getUnreadNotificationCount("highlight"),o=!(!t||!t.tweaks)&&!!t.tweaks.highlight,s=!(!n||!n.tweaks)&&!!n.tweaks.highlight;if((o!==s||i>0)&&!r.hasUserReadEvent(this.getUserId(),e.getId())){let e=i;s&&!o&&e++,!s&&o&&e--,r.setUnreadNotificationCount("highlight",e),r.getUnreadNotificationCount("total"){if(t&&this.isRoomEncrypted(t.roomId)){const n=e.getContent();if(!(Object.keys(n).filter(e=>Object.keys(n[e]["m.read"]).includes(this.getUserId())).length>0))return;const r=20,i=t.getLiveTimeline().getEvents();let o=0;for(let e=i.length-1;e>=0;e--){if(e===i.length-r)return;const n=i[e];if(t.hasUserReadEvent(this.getUserId(),n.getId()))break;o+=this.getPushActionsForEvent(n).tweaks.highlight?1:0}t.setUnreadNotificationCount("highlight",o)}})}async function P(e,t,n,r,i,o){if(!e._crypto)throw new Error("End-to-End encryption disabled");await e._crypto.setDeviceVerification(t,n,r,i,o)}function M(e,t){for(const n of t)e.prototype[n]=function(...e){if(!this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto[n](...e)}}function D(e,t,n,r){return Promise.resolve().then((function(){const r=function(e,t,n){if(t.isEncrypted())return null;if(!e.isRoomEncrypted(t.getRoomId()))return null;if("m.reaction"===t.getType())return null;if(!e._crypto)throw new Error("This room is configured to use encryption, but your client does not support encryption.");return e._crypto.encryptEvent(t,n)}(e,n,t);return r?(B(t,n,u.EventStatus.ENCRYPTING),r.then(()=>{B(t,n,u.EventStatus.SENDING)})):null})).then((function(){let r;return e.scheduler&&(r=e.scheduler.queueEvent(n),r&&e.scheduler.getQueueForEvent(n).length>1&&B(t,n,u.EventStatus.QUEUED)),r||(r=N(e,n)),r})).then((function(e){return t&&t.updatePendingEvent(n,u.EventStatus.SENT,e.event_id),r&&r(null,e),e}),(function(e){w.logger.error("Error sending event",e.stack||e);try{n.error=e,B(t,n,u.EventStatus.NOT_SENT),e.event=n,r&&r(e)}catch(t){w.logger.error("Exception in error handler!",t.stack||e)}throw e}))}function B(e,t,n){e?e.updatePendingEvent(t,n):t.setStatus(n)}function N(e,t){const n=t._txnId?t._txnId:e.makeTxnId(),r={$roomId:t.getRoomId(),$eventType:t.getWireType(),$stateKey:t.getStateKey(),$txnId:n};let i;if(t.isState()){let e="/rooms/$roomId/state/$eventType";t.getStateKey()&&t.getStateKey().length>0&&(e="/rooms/$roomId/state/$eventType/$stateKey"),i=m.encodeUri(e,r)}else if(t.isRedaction()){const e="/rooms/$roomId/redact/$redactsEventId/$txnId";i=m.encodeUri(e,Object.assign({$redactsEventId:t.event.redacts},r))}else i=m.encodeUri("/rooms/$roomId/send/$eventType/$txnId",r);return e._http.authedRequest(void 0,"PUT",i,void 0,t.getWireContent()).then(e=>(w.logger.log(`Event sent to ${t.getRoomId()} with event id ${e.event_id}`),e))}function j(e,t,n,r,i,o){m.isFunction(i)&&(o=i,i=void 0);const s=m.encodeUri("/rooms/$room_id/$membership",{$room_id:t,$membership:r});return e._http.authedRequest(o,"POST",s,void 0,{user_id:n,reason:i})}function U(e,t,n,r){const i=m.encodeUri("/presence/list/$userId",{$userId:t.credentials.userId});return t._http.authedRequest(e,r,i,void 0,n)}function L(e,t,n){e&&e(n),t(n)}function F(e,t,n){e&&e(null,n),t(n)}function q(e){return function(t){const n=new u.MatrixEvent(t);n.isEncrypted()&&(e.reEmitter.reEmit(n,["Event.decrypted"]),n.attemptDecryption(e._crypto));const r=e.getRoom(n.getRoomId());return r&&r.reEmitter.reEmit(n,["Event.replaced"]),n}}m.inherits(C,s.EventEmitter),m.extend(C.prototype,a.MatrixBaseApis.prototype),C.prototype.clearStores=function(){if(this._clientRunning)throw new Error("Cannot clear stores while client is running");const e=[];return e.push(this.store.deleteAllData()),this._cryptoStore&&e.push(this._cryptoStore.deleteAllData()),Promise.all(e)},C.prototype.getUserId=function(){return this.credentials&&this.credentials.userId?this.credentials.userId:null},C.prototype.getDomain=function(){return this.credentials&&this.credentials.userId?this.credentials.userId.replace(/^.*?:/,""):null},C.prototype.getUserIdLocalpart=function(){return this.credentials&&this.credentials.userId?this.credentials.userId.split(":")[0].substring(1):null},C.prototype.getDeviceId=function(){return this.deviceId},C.prototype.supportsVoip=function(){return this._supportsVoip},C.prototype.setForceTURN=function(e){this._forceTURN=e},C.prototype.getSyncState=function(){return this._syncApi?this._syncApi.getSyncState():null},C.prototype.getSyncStateData=function(){return this._syncApi?this._syncApi.getSyncStateData():null},C.prototype.isInitialSyncComplete=function(){const e=this.getSyncState();return!!e&&("PREPAED"===e||"SYNCING"===e)},C.prototype.isGuest=function(){return this._isGuest},C.prototype.getScheduler=function(){return this.scheduler},C.prototype.setGuest=function(e){this._isGuest=e},C.prototype.retryImmediately=function(){return this._syncApi.retryImmediately()},C.prototype.getNotifTimelineSet=function(){return this._notifTimelineSet},C.prototype.setNotifTimelineSet=function(e){this._notifTimelineSet=e},C.prototype.getCapabilities=function(e=!1){const t=(new Date).getTime();return this._cachedCapabilities&&!e&&t(w.logger.error(e),null)).then(e=>{e||(e={});const n=e.capabilities||{},r=Object.keys(n).length?216e5:6e4+5e3*Math.random();return this._cachedCapabilities={capabilities:n,expiration:t+r},w.logger.log("Caching capabilities: ",n),n})},C.prototype.initCrypto=async function(){if(!(0,E.isCryptoAvailable)())throw new Error("End-to-end encryption not supported in this js-sdk build: did you remember to load the olm library?");if(this._crypto)return void w.logger.warn("Attempt to re-initialise e2e encryption on MatrixClient");if(!this._sessionStore)throw new Error("Cannot enable encryption: no sessionStore provided");if(!this._cryptoStore)throw new Error("Cannot enable encryption: no cryptoStore provided");w.logger.log("Crypto: initialising roomlist..."),await this._roomList.init();const e=this.getUserId();if(null===e)throw new Error("Cannot enable encryption on MatrixClient with unknown userId: ensure userId is passed in createClient().");if(null===this.deviceId)throw new Error("Cannot enable encryption on MatrixClient with unknown deviceId: ensure deviceId is passed in createClient().");const t=new E.Crypto(this,this._sessionStore,e,this.deviceId,this.store,this._cryptoStore,this._roomList,this._verificationMethods);this.reEmitter.reEmit(t,["crypto.keyBackupFailed","crypto.keyBackupSessionsRemaining","crypto.roomKeyRequest","crypto.roomKeyRequestCancellation","crypto.warning","crypto.devicesUpdated","deviceVerificationChanged","userTrustStatusChanged","crossSigning.keysChanged"]),w.logger.log("Crypto: initialising crypto object..."),await t.init(),this.olmVersion=E.Crypto.getOlmVersion(),t.registerEventHandlers(this),this._crypto=t},C.prototype.isCryptoEnabled=function(){return null!==this._crypto},C.prototype.getDeviceEd25519Key=function(){return this._crypto?this._crypto.getDeviceEd25519Key():null},C.prototype.uploadKeys=function(){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.uploadDeviceKeys()},C.prototype.downloadKeys=function(e,t){return null===this._crypto?Promise.reject(new Error("End-to-end encryption disabled")):this._crypto.downloadKeys(e,t)},C.prototype.getStoredDevicesForUser=async function(e){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.getStoredDevicesForUser(e)||[]},C.prototype.getStoredDevice=async function(e,t){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.getStoredDevice(e,t)||null},C.prototype.setDeviceVerified=function(e,t,n){void 0===n&&(n=!0);const r=P(this,e,t,n,null);return e==this.credentials.userId&&this._crypto.checkKeyBackup(),r},C.prototype.setDeviceBlocked=function(e,t,n){return void 0===n&&(n=!0),P(this,e,t,null,n)},C.prototype.setDeviceKnown=function(e,t,n){return void 0===n&&(n=!0),P(this,e,t,null,null,n)},C.prototype.requestVerificationDM=function(e,t,n){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.requestVerificationDM(e,t,n)},C.prototype.acceptVerificationDM=function(e,t){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.acceptVerificationDM(e,t)},C.prototype.requestVerification=function(e,t,n){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.requestVerification(e,t,n)},C.prototype.beginKeyVerification=function(e,t,n){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.beginKeyVerification(e,t,n)},C.prototype.setGlobalBlacklistUnverifiedDevices=function(e){if(null===this._crypto)throw new Error("End-to-end encryption disabled");this._crypto.setGlobalBlacklistUnverifiedDevices(e)},C.prototype.getGlobalBlacklistUnverifiedDevices=function(){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.getGlobalBlacklistUnverifiedDevices()},C.prototype.setGlobalErrorOnUnknownDevices=function(e){if(null===this._crypto)throw new Error("End-to-end encryption disabled");this._crypto.setGlobalErrorOnUnknownDevices(e)},C.prototype.getGlobalErrorOnUnknownDevices=function(){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.getGlobalErrorOnUnknownDevices()},M(C,["resetCrossSigningKeys","getCrossSigningId","getStoredCrossSigningForUser","checkUserTrust","checkDeviceTrust","checkOwnCrossSigningTrust","checkCrossSigningPrivateKey"]),C.prototype.checkEventSenderTrust=async function(e){const t=await this.getEventSenderDeviceInfo(e);return t?await this._crypto.checkDeviceTrust(e.getSender(),t.deviceId):0},M(C,["createRecoveryKeyFromPassphrase","bootstrapSecretStorage","addSecretStorageKey","hasSecretStorageKey","storeSecret","getSecret","isSecretStored","requestSecret","getDefaultSecretStorageKeyId","setDefaultSecretStorageKeyId","checkSecretStoragePrivateKey"]),C.prototype.getEventSenderDeviceInfo=async function(e){return this._crypto?this._crypto.getEventSenderDeviceInfo(e):null},C.prototype.isEventSenderVerified=async function(e){const t=await this.getEventSenderDeviceInfo(e);return!!t&&t.isVerified()},C.prototype.cancelAndResendEventRoomKeyRequest=function(e){return e.cancelAndResendKeyRequest(this._crypto,this.getUserId())},C.prototype.setRoomEncryption=function(e,t){if(!this._crypto)throw new Error("End-to-End encryption disabled");return this._crypto.setRoomEncryption(e,t)},C.prototype.isRoomEncrypted=function(e){const t=this.getRoom(e);return!!t&&(!!t.currentState.getStateEvents("m.room.encryption","")||this._roomList.isRoomEncrypted(e))},C.prototype.forceDiscardSession=function(e){if(!this._crypto)throw new Error("End-to-End encryption disabled");this._crypto.forceDiscardSession(e)},C.prototype.exportRoomKeys=function(){return this._crypto?this._crypto.exportRoomKeys():Promise.reject(new Error("End-to-end encryption disabled"))},C.prototype.importRoomKeys=function(e){if(!this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.importRoomKeys(e)},C.prototype.checkKeyBackup=function(){return this._crypto.checkKeyBackup()},C.prototype.getKeyBackupVersion=function(){return this._http.authedRequest(void 0,"GET","/room_keys/version",void 0,void 0,{prefix:g.PREFIX_UNSTABLE}).then(e=>{if(e.algorithm!==_.MEGOLM_BACKUP_ALGORITHM){const t="Unknown backup algorithm: "+e.algorithm;return Promise.reject(t)}if("object"==typeof e.auth_data&&e.auth_data.public_key)return e;{const e="Invalid backup data returned";return Promise.reject(e)}}).catch(e=>{if("M_NOT_FOUND"===e.errcode)return null;throw e})},C.prototype.isKeyBackupTrusted=function(e){return this._crypto.isKeyBackupTrusted(e)},C.prototype.getKeyBackupEnabled=function(){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return Boolean(this._crypto.backupKey)},C.prototype.enableKeyBackup=function(t){if(null===this._crypto)throw new Error("End-to-end encryption disabled");this._crypto.backupInfo=t,this._crypto.backupKey&&this._crypto.backupKey.free(),this._crypto.backupKey=new e.Olm.PkEncryption,this._crypto.backupKey.set_recipient_key(t.auth_data.public_key),this.emit("crypto.keyBackupStatus",!0),this._crypto.scheduleKeyBackupSend()},C.prototype.disableKeyBackup=function(){if(null===this._crypto)throw new Error("End-to-end encryption disabled");this._crypto.backupInfo=null,this._crypto.backupKey&&this._crypto.backupKey.free(),this._crypto.backupKey=null,this.emit("crypto.keyBackupStatus",!1)},C.prototype.prepareKeyBackupVersion=async function(e,{secureSecretStorage:t=!1}={}){if(null===this._crypto)throw new Error("End-to-end encryption disabled");const[n,r,i]=await this.createRecoveryKeyFromPassphrase(e);t&&(await this.storeSecret("m.megolm_backup.v1",(0,_.encodeBase64)(i)),w.logger.info("Key backup private key stored in secret storage"));const o={public_key:n.pubkey};return n.passphrase&&(o.private_key_salt=n.passphrase.salt,o.private_key_iterations=n.passphrase.iterations),{algorithm:_.MEGOLM_BACKUP_ALGORITHM,auth_data:o,recovery_key:r}},C.prototype.isKeyBackupKeyStored=async function(){return this.isSecretStored("m.megolm_backup.v1",!1)},C.prototype.createKeyBackupVersion=async function(e){if(null===this._crypto)throw new Error("End-to-end encryption disabled");const t={algorithm:e.algorithm,auth_data:e.auth_data};await this._crypto._signObject(t.auth_data),this._cryptoCallbacks.getCrossSigningKey&&this._crypto._crossSigningInfo.getId()&&await this._crypto._crossSigningInfo.signObject(t.auth_data,"master");const n=await this._http.authedRequest(void 0,"POST","/room_keys/version",void 0,t,{prefix:g.PREFIX_UNSTABLE});return await this.checkKeyBackup(),this.getKeyBackupEnabled()||w.logger.error("Key backup not usable even though we just created it"),n},C.prototype.deleteKeyBackupVersion=function(e){if(null===this._crypto)throw new Error("End-to-end encryption disabled");this._crypto.backupInfo&&this._crypto.backupInfo.version===e&&this.disableKeyBackup();const t=m.encodeUri("/room_keys/version/$version",{$version:e});return this._http.authedRequest(void 0,"DELETE",t,void 0,void 0,{prefix:g.PREFIX_UNSTABLE})},C.prototype._makeKeyBackupPath=function(e,t,n){let r;return r=void 0!==t?m.encodeUri("/room_keys/keys/$roomId/$sessionId",{$roomId:e,$sessionId:t}):void 0!==e?m.encodeUri("/room_keys/keys/$roomId",{$roomId:e}):"/room_keys/keys",{path:r,queryData:void 0===n?void 0:{version:n}}},C.prototype.sendKeyBackup=function(e,t,n,r){if(null===this._crypto)throw new Error("End-to-end encryption disabled");const i=this._makeKeyBackupPath(e,t,n);return this._http.authedRequest(void 0,"PUT",i.path,i.queryData,r,{prefix:g.PREFIX_UNSTABLE})},C.prototype.scheduleAllGroupSessionsForBackup=async function(){if(null===this._crypto)throw new Error("End-to-end encryption disabled");await this._crypto.scheduleAllGroupSessionsForBackup()},C.prototype.flagAllGroupSessionsForBackup=function(){if(null===this._crypto)throw new Error("End-to-end encryption disabled");return this._crypto.flagAllGroupSessionsForBackup()},C.prototype.isValidRecoveryKey=function(e){try{return(0,k.decodeRecoveryKey)(e),!0}catch(e){return!1}},C.RESTORE_BACKUP_ERROR_BAD_KEY="RESTORE_BACKUP_ERROR_BAD_KEY",C.prototype.restoreKeyBackupWithPassword=async function(e,t,n,r){const i=await(0,S.keyFromAuthData)(r.auth_data,e);return this._restoreKeyBackup(i,t,n,r)},C.prototype.restoreKeyBackupWithSecretStorage=async function(e,t,n){const r=(0,_.decodeBase64)(await this.getSecret("m.megolm_backup.v1"));return this._restoreKeyBackup(r,t,n,e)},C.prototype.restoreKeyBackupWithRecoveryKey=function(e,t,n,r){const i=(0,k.decodeRecoveryKey)(e);return this._restoreKeyBackup(i,t,n,r)},C.prototype._restoreKeyBackup=function(t,n,r,i){if(null===this._crypto)throw new Error("End-to-end encryption disabled");let o=0,s=[];const a=this._makeKeyBackupPath(n,r,i.version),c=new e.Olm.PkDecryption;let f;try{f=c.init_with_private_key(t)}catch(e){throw c.free(),e}return f!==i.auth_data.public_key?Promise.reject({errcode:C.RESTORE_BACKUP_ERROR_BAD_KEY}):this._http.authedRequest(void 0,"GET",a.path,a.queryData,void 0,{prefix:g.PREFIX_UNSTABLE}).then(e=>{if(e.rooms)for(const[t,n]of Object.entries(e.rooms)){if(!n.sessions)continue;o+=Object.keys(n.sessions).length;const e=O(n.sessions,c,t);for(const n of e)n.room_id=t,s.push(n)}else if(e.sessions)o=Object.keys(e.sessions).length,s=O(e.sessions,c,n);else{o=1;try{const t=x(e,c);t.room_id=n,t.session_id=r,s.push(t)}catch(e){w.logger.log("Failed to decrypt megolm session from backup",e)}}return this.importRoomKeys(s)}).then(()=>this._crypto.setTrustedBackupPubKey(f)).then(()=>({total:o,imported:s.length})).finally(()=>{c.free()})},C.prototype.deleteKeysFromBackup=function(e,t,n){if(null===this._crypto)throw new Error("End-to-end encryption disabled");const r=this._makeKeyBackupPath(e,t,n);return this._http.authedRequest(void 0,"DELETE",r.path,r.queryData,void 0,{prefix:g.PREFIX_UNSTABLE})},C.prototype.getGroup=function(e){return this.store.getGroup(e)},C.prototype.getGroups=function(){return this.store.getGroups()},C.prototype.getMediaConfig=function(e){return this._http.authedRequest(e,"GET","/config",void 0,void 0,{prefix:g.PREFIX_MEDIA_R0})},C.prototype.getRoom=function(e){return this.store.getRoom(e)},C.prototype.getRooms=function(){return this.store.getRooms()},C.prototype.getVisibleRooms=function(){const e=this.store.getRooms(),t=new Set;for(const n of e){const e=n.currentState.getStateEvents("m.room.create","");if(e){const n=e.getContent().predecessor;n&&n.room_id&&t.add(n.room_id)}}return e.filter(e=>!e.currentState.getStateEvents("m.room.tombstone","")||!t.has(e.roomId))},C.prototype.getUser=function(e){return this.store.getUser(e)},C.prototype.getUsers=function(){return this.store.getUsers()},C.prototype.setAccountData=function(e,t,n){const r=m.encodeUri("/user/$userId/account_data/$type",{$userId:this.credentials.userId,$type:e});return this._http.authedRequest(n,"PUT",r,void 0,t)},C.prototype.getAccountData=function(e){return this.store.getAccountData(e)},C.prototype.getAccountDataFromServer=async function(e){if(this.isInitialSyncComplete()){const t=this.store.getAccountData(e);return t?t.getContent():null}const t=m.encodeUri("/user/$userId/account_data/$type",{$userId:this.credentials.userId,$type:e});return this._http.authedRequest(void 0,"GET",t,void 0)},C.prototype.getIgnoredUsers=function(){const e=this.getAccountData("m.ignored_user_list");return e&&e.getContent()&&e.getContent().ignored_users?Object.keys(e.getContent().ignored_users):[]},C.prototype.setIgnoredUsers=function(e,t){const n={ignored_users:{}};return e.map(e=>n.ignored_users[e]={}),this.setAccountData("m.ignored_user_list",n,t)},C.prototype.isUserIgnored=function(e){return-1!==this.getIgnoredUsers().indexOf(e)},C.prototype.joinRoom=function(e,t,n){if(m.isFunction(t))throw new Error("Expected 'opts' object, got function.");void 0===(t=t||{}).syncRoom&&(t.syncRoom=!0);const r=this.getRoom(e);if(r&&r.hasMembershipState(this.credentials.userId,"join"))return Promise.resolve(r);let i=Promise.resolve();t.inviteSignUrl&&(i=this._http.requestOtherUrl(void 0,"POST",t.inviteSignUrl,{mxid:this.credentials.userId}));const o={};t.viaServers&&(o.server_name=t.viaServers);const s={qsStringifyOptions:{arrayFormat:"repeat"}},a=this;return new Promise((r,c)=>{i.then((function(t){const n={};t&&(n.third_party_signed=t);const r=m.encodeUri("/join/$roomid",{$roomid:e});return a._http.authedRequest(void 0,"POST",r,o,n,s)})).then((function(e){const n=e.room_id,r=new f.SyncApi(a,a._clientOpts).createRoom(n);return t.syncRoom,Promise.resolve(r)})).then((function(e){F(n,r,e)}),(function(e){L(n,c,e)}))})},C.prototype.resendEvent=function(e,t){return B(t,e,u.EventStatus.SENDING),D(this,t,e)},C.prototype.cancelPendingEvent=function(e){if([u.EventStatus.QUEUED,u.EventStatus.NOT_SENT].indexOf(e.status)<0)throw new Error("cannot cancel an event with status "+e.status);this.scheduler&&this.scheduler.removeEventFromQueue(e),B(this.getRoom(e.getRoomId()),e,u.EventStatus.CANCELLED)},C.prototype.setRoomName=function(e,t,n){return this.sendStateEvent(e,"m.room.name",{name:t},void 0,n)},C.prototype.setRoomTopic=function(e,t,n){return this.sendStateEvent(e,"m.room.topic",{topic:t},void 0,n)},C.prototype.getRoomTags=function(e,t){const n=m.encodeUri("/user/$userId/rooms/$roomId/tags/",{$userId:this.credentials.userId,$roomId:e});return this._http.authedRequest(t,"GET",n,void 0)},C.prototype.setRoomTag=function(e,t,n,r){const i=m.encodeUri("/user/$userId/rooms/$roomId/tags/$tag",{$userId:this.credentials.userId,$roomId:e,$tag:t});return this._http.authedRequest(r,"PUT",i,void 0,n)},C.prototype.deleteRoomTag=function(e,t,n){const r=m.encodeUri("/user/$userId/rooms/$roomId/tags/$tag",{$userId:this.credentials.userId,$roomId:e,$tag:t});return this._http.authedRequest(n,"DELETE",r,void 0,void 0)},C.prototype.setRoomAccountData=function(e,t,n,r){const i=m.encodeUri("/user/$userId/rooms/$roomId/account_data/$type",{$userId:this.credentials.userId,$roomId:e,$type:t});return this._http.authedRequest(r,"PUT",i,void 0,n)},C.prototype.setPowerLevel=function(e,t,n,r,i){let o={users:{}};r&&"m.room.power_levels"===r.getType()&&(o=m.deepCopy(r.getContent())),o.users[t]=n;const s=m.encodeUri("/rooms/$roomId/state/m.room.power_levels",{$roomId:e});return this._http.authedRequest(i,"PUT",s,void 0,o)},C.prototype.sendEvent=function(e,t,n,r,i){return this._sendCompleteEvent(e,{type:t,content:n},r,i)},C.prototype._sendCompleteEvent=function(e,t,n,r){m.isFunction(n)&&(r=n,n=void 0),n||(n=this.makeTxnId());const i=new u.MatrixEvent(Object.assign(t,{event_id:"~"+e+":"+n,user_id:this.credentials.userId,room_id:e,origin_server_ts:(new Date).getTime()})),o=this.getRoom(e),s=i.getAssociatedId();if(s&&s.startsWith("~")){const e=o.getPendingEvents().find(e=>e.getId()===s);e.once("Event.localEventIdReplaced",()=>{i.updateAssociatedId(e.getId())})}const a=i.getType();return w.logger.log(`sendEvent of type ${a} in ${e} with txnId ${n}`),i._txnId=n,i.setStatus(u.EventStatus.SENDING),o&&o.addPendingEvent(i,n),i.status===u.EventStatus.NOT_SENT?Promise.reject(new Error("Event blocked by other events not yet sent")):D(this,o,i,r)},C.prototype.redactEvent=function(e,t,n,r){return this._sendCompleteEvent(e,{type:"m.room.redaction",content:{},redacts:t},n,r)},C.prototype.sendMessage=function(e,t,n,r){return m.isFunction(n)&&(r=n,n=void 0),this.sendEvent(e,"m.room.message",t,n,r)},C.prototype.sendTextMessage=function(e,t,n,r){const i=b.makeTextMessage(t);return this.sendMessage(e,i,n,r)},C.prototype.sendNotice=function(e,t,n,r){const i=b.makeNotice(t);return this.sendMessage(e,i,n,r)},C.prototype.sendEmoteMessage=function(e,t,n,r){const i=b.makeEmoteMessage(t);return this.sendMessage(e,i,n,r)},C.prototype.sendImageMessage=function(e,t,n,r,i){m.isFunction(r)&&(i=r,r=void 0),r||(r="Image");const o={msgtype:"m.image",url:t,info:n,body:r};return this.sendMessage(e,o,i)},C.prototype.sendStickerMessage=function(e,t,n,r,i){m.isFunction(r)&&(i=r,r=void 0),r||(r="Sticker");const o={url:t,info:n,body:r};return this.sendEvent(e,"m.sticker",o,i,void 0)},C.prototype.sendHtmlMessage=function(e,t,n,r){const i=b.makeHtmlMessage(t,n);return this.sendMessage(e,i,r)},C.prototype.sendHtmlNotice=function(e,t,n,r){const i=b.makeHtmlNotice(t,n);return this.sendMessage(e,i,r)},C.prototype.sendHtmlEmote=function(e,t,n,r){const i=b.makeHtmlEmote(t,n);return this.sendMessage(e,i,r)},C.prototype.sendReceipt=function(e,t,n,r){if("function"==typeof n&&(r=n,n={}),this.isGuest())return Promise.resolve({});const i=m.encodeUri("/rooms/$roomId/receipt/$receiptType/$eventId",{$roomId:e.getRoomId(),$receiptType:t,$eventId:e.getId()}),o=this._http.authedRequest(r,"POST",i,void 0,n||{}),s=this.getRoom(e.getRoomId());return s&&s._addLocalEchoReceipt(this.credentials.userId,e,t),o},C.prototype.sendReadReceipt=async function(e,t,n){"function"==typeof t&&(n=t,t={}),t||(t={});const r=e.getId(),i=this.getRoom(e.getRoomId());if(i&&i.hasPendingEvent(r))throw new Error(`Cannot set read receipt to a pending event (${r})`);const o={"m.hidden":Boolean(t.hidden)};return this.sendReceipt(e,"m.read",o,n)},C.prototype.setRoomReadMarkers=async function(e,t,n,r){const i=this.getRoom(e);if(i&&i.hasPendingEvent(t))throw new Error(`Cannot set read marker to a pending event (${t})`);let o;if(n){if(o=n.getId(),i&&i.hasPendingEvent(o))throw new Error(`Cannot set read receipt to a pending event (${o})`);i&&i._addLocalEchoReceipt(this.credentials.userId,n,"m.read")}return this.setRoomReadMarkersHttpRequest(e,t,o,r)},C.prototype.getUrlPreview=function(e,t,n){const r=t+"_"+e,i=this.urlPreviewCache[r];if(i)return Promise.resolve(i);const o=this;return this._http.authedRequest(n,"GET","/preview_url",{url:e,ts:t},void 0,{prefix:g.PREFIX_MEDIA_R0}).then((function(e){return o.urlPreviewCache[r]=e,e}))},C.prototype.sendTyping=function(e,t,n,r){if(this.isGuest())return Promise.resolve({});const i=m.encodeUri("/rooms/$roomId/typing/$userId",{$roomId:e,$userId:this.credentials.userId}),o={typing:t};return t&&(o.timeout=n||2e4),this._http.authedRequest(r,"PUT",i,void 0,o)},C.prototype.getRoomUpgradeHistory=function(e,t=!1){let n=this.getRoom(e);if(!n)return[];const r=[n];let i=n.currentState.getStateEvents("m.room.create","");for(;i;){w.logger.log(`Looking at ${i.getId()}`);const e=i.getContent().predecessor;if(!e||!e.room_id)break;{w.logger.log(`Looking at predecessor ${e.room_id}`);const n=this.getRoom(e.room_id);if(!n)break;if(t){const e=n.currentState.getStateEvents("m.room.tombstone","");if(!e||e.getContent().replacement_room!==n.roomId)break}r.splice(0,0,n),i=n.currentState.getStateEvents("m.room.create","")}}let o=n.currentState.getStateEvents("m.room.tombstone","");for(;o;){const e=this.getRoom(o.getContent().replacement_room);if(!e)break;if(e.roomId===n.roomId)break;if(t){if(i=e.currentState.getStateEvents("m.room.create",""),!i||!i.getContent().predecessor)break;if(i.getContent().predecessor.room_id!==n.roomId)break}if(r.push(e),new Set(r.map(e=>e.roomId)).sizethis.leave(e).then(()=>{i[e]=null}).catch(t=>(i[e]=t,null));for(const e of r)o.push(s(e.roomId));return Promise.all(o).then(()=>i)},C.prototype.ban=function(e,t,n,r){return j(this,e,t,"ban",n,r)},C.prototype.forget=function(e,t,n){void 0===t&&(t=!0);const r=j(this,e,void 0,"forget",void 0,n);if(!t)return r;const i=this;return r.then((function(t){return i.store.removeRoom(e),i.emit("deleteRoom",e),t}))},C.prototype.unban=function(e,t,n){const r=m.encodeUri("/rooms/$roomId/unban",{$roomId:e}),i={user_id:t};return this._http.authedRequest(n,"POST",r,void 0,i)},C.prototype.kick=function(e,t,n,r){return function(e,t,n,r,i,o){m.isFunction(i)&&(o=i,i=void 0);const s=m.encodeUri("/rooms/$roomId/state/m.room.member/$userId",{$roomId:t,$userId:n});return e._http.authedRequest(o,"PUT",s,void 0,{membership:r,reason:i})}(this,e,t,"leave",n,r)},C.prototype.getPushActionsForEvent=function(e){return e.getPushActions()||e.setPushActions(this._pushProcessor.actionsForEvent(e)),e.getPushActions()},C.prototype.setProfileInfo=function(e,t,n){const r=m.encodeUri("/profile/$userId/$info",{$userId:this.credentials.userId,$info:e});return this._http.authedRequest(n,"PUT",r,void 0,t)},C.prototype.setDisplayName=function(e,t){return this.setProfileInfo("displayname",{displayname:e},t)},C.prototype.setAvatarUrl=function(e,t){return this.setProfileInfo("avatar_url",{avatar_url:e},t)},C.prototype.mxcUrlToHttp=function(e,t,n,r,i){return(0,y.getHttpUriForMxc)(this.baseUrl,e,t,n,r,i)},C.prototype._unstable_setStatusMessage=function(e){const t="im.vector.user_status";return Promise.all(this.getRooms().map(n=>{const r="join"===n.getMyMembership(),i=2===n.getInvitedAndJoinedMemberCount();return r&&i&&n.currentState.mayClientSendStateEvent(t,this)?this.sendStateEvent(n.roomId,t,{status:e},this.getUserId()):Promise.resolve()}))},C.prototype.setPresence=function(e,t){const n=m.encodeUri("/presence/$userId/status",{$userId:this.credentials.userId});"string"==typeof e&&(e={presence:e});if(-1==["offline","online","unavailable"].indexOf(e.presence))throw new Error("Bad presence value: "+e.presence);return this._http.authedRequest(t,"PUT",n,void 0,e)},C.prototype.getPresenceList=function(e){return U(e,this,void 0,"GET")},C.prototype.inviteToPresenceList=function(e,t){return U(e,this,{invite:t},"POST")},C.prototype.dropFromPresenceList=function(e,t){return U(e,this,{drop:t},"POST")},C.prototype.scrollback=function(e,t,n){m.isFunction(t)&&(n=t,t=void 0),t=t||30;let r=0,i=this._ongoingScrollbacks[e.roomId]||{};if(i.promise)return i.promise;if(i.errorTs){const e=Date.now()-i.errorTs;r=Math.max(3e3-e,0)}if(null===e.oldState.paginationToken)return Promise.resolve(e);const o=this.store.scrollback(e,t).length;if(o===t)return Promise.resolve(e);t-=o;const s=this,a=new Promise((i,o)=>{(0,m.sleep)(r).then((function(){return s._createMessagesRequest(e.roomId,e.oldState.paginationToken,t,"b")})).then((function(t){const r=m.map(t.chunk,q(s));if(t.state){const n=m.map(t.state,q(s));e.currentState.setUnknownStateEvents(n)}e.addEventsToTimeline(r,!0,e.getLiveTimeline()),e.oldState.paginationToken=t.end,0===t.chunk.length&&(e.oldState.paginationToken=null),s.store.storeEvents(e,r,t.end,!0),s._ongoingScrollbacks[e.roomId]=null,F(n,i,e)}),(function(t){s._ongoingScrollbacks[e.roomId]={errorTs:Date.now()},L(n,o,t)}))});return i={promise:a,errorTs:null},this._ongoingScrollbacks[e.roomId]=i,a},C.prototype.getEventTimeline=function(e,t){if(!this.timelineSupport)throw new Error("timeline support is disabled. Set the 'timelineSupport' parameter to true when creating MatrixClient to enable it.");if(e.getTimelineForEvent(t))return Promise.resolve(e.getTimelineForEvent(t));const n=m.encodeUri("/rooms/$roomId/context/$eventId",{$roomId:e.room.roomId,$eventId:t});let r=void 0;this._clientOpts.lazyLoadMembers&&(r={filter:JSON.stringify(c.Filter.LAZY_LOADING_MESSAGES_FILTER)});const i=this;return i._http.authedRequest(void 0,"GET",n,r).then((function(n){if(!n.event)throw new Error("'event' not in '/context' result - homeserver too old?");if(e.getTimelineForEvent(t))return e.getTimelineForEvent(t);n.events_after.reverse();const r=n.events_after.concat([n.event]).concat(n.events_before),o=m.map(r,i.getEventMapper());let s=e.getTimelineForEvent(o[0].getId());if(s){const e=m.map(n.state,i.getEventMapper());s.getState(l.EventTimeline.BACKWARDS).setUnknownStateEvents(e)}else s=e.addTimeline(),s.initialiseState(m.map(n.state,i.getEventMapper())),s.getState(l.EventTimeline.FORWARDS).paginationToken=n.end;return e.addEventsToTimeline(o,!0,s,n.start),e.getTimelineForEvent(t)||s}))},C.prototype._createMessagesRequest=function(e,t,n,r,i){const o=m.encodeUri("/rooms/$roomId/messages",{$roomId:e});void 0===n&&(n=30);const s={from:t,limit:n,dir:r};let a=null;return this._clientOpts.lazyLoadMembers&&(a=Object.assign({},c.Filter.LAZY_LOADING_MESSAGES_FILTER)),i&&(a=a||{},Object.assign(a,i.getRoomTimelineFilterComponent())),a&&(s.filter=JSON.stringify(a)),this._http.authedRequest(void 0,"GET",o,s)},C.prototype.paginateEventTimeline=function(e,t){const n=e.getTimelineSet()===this._notifTimelineSet,r=(t=t||{}).backwards||!1;if(n&&!r)throw new Error("paginateNotifTimeline can only paginate backwards");const i=r?l.EventTimeline.BACKWARDS:l.EventTimeline.FORWARDS,o=e.getPaginationToken(i);if(!o)return Promise.resolve(!1);const s=e._paginationRequests[i];if(s)return s;let a,c,f;const u=this;if(n)a="/notifications",c={limit:"limit"in t?t.limit:30,only:"highlight"},o&&"end"!==o&&(c.from=o),f=this._http.authedRequest(void 0,"GET","/notifications",c,void 0).then((function(t){const n=t.next_token,o=[];for(let e=0;e{i.then((function(){r.getPushRules().then((function(t){r.pushRules=t,e()}),(function(e){t(e)}))}),(function(e){r.getPushRules().then((function(n){r.pushRules=n,t(e)}),(function(n){t(e)}))}))})},C.prototype.searchMessageText=function(e,t){const n={search_term:e.query};return"keys"in e&&(n.keys=e.keys),this.search({body:{search_categories:{room_events:n}}},t)},C.prototype.searchRoomEvents=function(e){const t={search_categories:{room_events:{search_term:e.term,filter:e.filter,order_by:"recent",event_context:{before_limit:1,after_limit:1,include_profile:!0}}}},n={_query:t,results:[],highlights:[]};return this.search({body:t}).then(this._processRoomEventsSearch.bind(this,n))},C.prototype.backPaginateRoomEventsSearch=function(e){if(!e.next_batch)return Promise.reject(new Error("Cannot backpaginate event search any further"));if(e.pendingRequest)return e.pendingRequest;const t={body:e._query,next_batch:e.next_batch},n=this.search(t).then(this._processRoomEventsSearch.bind(this,e)).finally((function(){e.pendingRequest=null}));return e.pendingRequest=n,n},C.prototype._processRoomEventsSearch=function(e,t){const n=t.search_categories.room_events;e.count=n.count,e.next_batch=n.next_batch;const r={};n.highlights.forEach((function(e){r[e]=1})),e.highlights.forEach((function(e){r[e]=1})),e.highlights=Object.keys(r);for(let t=0;te.admin)},C.prototype.whoisSynapseUser=function(e){const t=m.encodeUri("/_synapse/admin/v1/whois/$userId",{$userId:e});return this._http.authedRequest(void 0,"GET",t,void 0,void 0,{prefix:""})},C.prototype.deactivateSynapseUser=function(e){const t=m.encodeUri("/_synapse/admin/v1/deactivate/$userId",{$userId:e});return this._http.authedRequest(void 0,"POST",t,void 0,void 0,{prefix:""})},C.prototype.startClient=async function(e){this.clientRunning||(this.clientRunning=!0,"number"==typeof e&&(e={initialSyncLimit:e}),this._crypto&&(this._crypto.uploadDeviceKeys(),this._crypto.start()),function e(t){if(!t._supportsVoip)return;if(t.isGuest())return;t.turnServer().then((function(n){if(n.uris){w.logger.log("Got TURN URIs: "+n.uris+" refresh in "+n.ttl+" secs");const r={urls:n.uris,username:n.username,credential:n.password};t._turnServers=[r],t._checkTurnServersTimeoutID=setTimeout(()=>{e(t)},1e3*(n.ttl||3600)*.9)}}),(function(n){w.logger.error("Failed to get TURN URIs"),t._checkTurnServersTimeoutID=setTimeout((function(){e(t)}),6e4)}))}(this),this._syncApi&&(w.logger.error("Still have sync object whilst not running: stopping old one"),this._syncApi.stop()),(e=Object.assign({},e)).crypto=this._crypto,e.canResetEntireTimeline=e=>!!this._canResetTimelineCallback&&this._canResetTimelineCallback(e),this._clientOpts=e,this._syncApi=new f.SyncApi(this,e),this._syncApi.sync())},C.prototype._storeClientOptions=function(){const e=["boolean","string","number"],t=Object.entries(this._clientOpts).filter(([t,n])=>e.includes(typeof n)).reduce((e,[t,n])=>(e[t]=n,e),{});return this.store.storeClientOptions(t)},C.prototype.stopClient=function(){w.logger.log("stopping MatrixClient"),this.clientRunning=!1,this._syncApi&&(this._syncApi.stop(),this._syncApi=null),this._crypto&&this._crypto.stop(),this._peekSync&&this._peekSync.stopPeeking(),e.clearTimeout(this._checkTurnServersTimeoutID)},C.prototype.getVersions=async function(){return null===this._serverVersionsCache&&(this._serverVersionsCache=await this._http.request(void 0,"GET","/_matrix/client/versions",void 0,void 0,{prefix:""})),this._serverVersionsCache},C.prototype.isVersionSupported=async function(e){const{versions:t}=await this.getVersions();return t&&t.includes(e)},C.prototype.doesServerSupportLazyLoading=async function(){const e=await this.getVersions(),t=e.versions,n=e.unstable_features;return t&&t.includes("r0.5.0")||n&&n["m.lazy_load_members"]},C.prototype.doesServerRequireIdServerParam=async function(){const e=await this.getVersions(),t=e.versions;if(t&&t.includes("r0.6.0"))return!1;const n=e.unstable_features;return void 0===n["m.require_identity_server"]||n["m.require_identity_server"]},C.prototype.doesServerAcceptIdentityAccessToken=async function(){const e=await this.getVersions(),t=e.versions,n=e.unstable_features;return t&&t.includes("r0.6.0")||n&&n["m.id_access_token"]},C.prototype.doesServerSupportSeparateAddAndBind=async function(){const e=await this.getVersions(),t=e.versions,n=e.unstable_features;return t&&t.includes("r0.6.0")||n&&n["m.separate_add_and_bind"]},C.prototype.hasLazyLoadMembersEnabled=function(){return!!this._clientOpts.lazyLoadMembers},C.prototype.setCanResetTimelineCallback=function(e){this._canResetTimelineCallback=e},C.prototype.getCanResetTimelineCallback=function(){return this._canResetTimelineCallback},C.prototype.relations=async function(e,t,n,r,i={}){const o=function(e,t,n){return"m.reaction"===n?n:e.isRoomEncrypted(t)?"m.room.encrypted":n}(this,e,r),s=await this.fetchRelations(e,t,n,o,i),a=this.getEventMapper();let c;s.original_event&&(c=a(s.original_event));let f=s.chunk.map(a);if("m.room.encrypted"===o){const e=c?f.concat(c):f;await Promise.all(e.map(e=>new Promise(t=>e.once("Event.decrypted",t)))),f=f.filter(e=>e.getType()===r)}return{originalEvent:c,events:f,nextBatch:s.next_batch}},C.prototype.getEventMapper=function(){return q(this)},C.prototype.generateClientSecret=function(){return(0,I.randomString)(32)}}).call(this,n(6))},function(e,t,n){(function(e,r){var i;/*! https://mths.be/punycode v1.4.1 by @mathias */!function(o){t&&t.nodeType,e&&e.nodeType;var s="object"==typeof r&&r;s.global!==s&&s.window!==s&&s.self;var a,c=2147483647,f=/^xn--/,u=/[^\x20-\x7E]/,l=/[\x2E\u3002\uFF0E\uFF61]/g,d={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},h=Math.floor,p=String.fromCharCode;function m(e){throw new RangeError(d[e])}function g(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function y(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+g((e=e.replace(l,".")).split("."),t).join(".")}function b(e){for(var t,n,r=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(t+=p((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=p(e)})).join("")}function v(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function A(e,t,n){var r=0;for(e=n?h(e/700):e>>1,e+=h(e/t);e>455;r+=36)e=h(e/35);return h(r+36*e/(e+38))}function w(e){var t,n,r,i,o,s,a,f,u,l,d,p=[],g=e.length,y=0,b=128,v=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r=128&&m("not-basic"),p.push(e.charCodeAt(r));for(i=n>0?n+1:0;i=g&&m("invalid-input"),((f=(d=e.charCodeAt(i++))-48<10?d-22:d-65<26?d-65:d-97<26?d-97:36)>=36||f>h((c-y)/s))&&m("overflow"),y+=f*s,!(f<(u=a<=v?1:a>=v+26?26:a-v));a+=36)s>h(c/(l=36-u))&&m("overflow"),s*=l;v=A(y-o,t=p.length+1,0==o),h(y/t)>c-b&&m("overflow"),b+=h(y/t),y%=t,p.splice(y++,0,b)}return _(p)}function E(e){var t,n,r,i,o,s,a,f,u,l,d,g,y,_,w,E=[];for(g=(e=b(e)).length,t=128,n=0,o=72,s=0;s=t&&dh((c-n)/(y=r+1))&&m("overflow"),n+=(a-t)*y,t=a,s=0;sc&&m("overflow"),d==t){for(f=n,u=36;!(f<(l=u<=o?1:u>=o+26?26:u-o));u+=36)w=f-l,_=36-l,E.push(p(v(l+w%_,0))),f=h(w/_);E.push(p(v(f,0))),o=A(n,y,r==i),n=0,++r}++n,++t}return E.join("")}a={version:"1.4.1",ucs2:{decode:b,encode:_},decode:w,encode:E,toASCII:function(e){return y(e,(function(e){return u.test(e)?"xn--"+E(e):e}))},toUnicode:function(e){return y(e,(function(e){return f.test(e)?w(e.slice(4).toLowerCase()):e}))}},void 0===(i=function(){return a}.call(t,n,t,e))||(e.exports=i)}()}).call(this,n(112)(e),n(6))},function(e,t,n){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(277),t.encode=t.stringify=n(278)},function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,o){t=t||"&",n=n||"=";var s={};if("string"!=typeof e||0===e.length)return s;var a=/\+/g;e=e.split(t);var c=1e3;o&&"number"==typeof o.maxKeys&&(c=o.maxKeys);var f=e.length;c>0&&f>c&&(f=c);for(var u=0;u=0?(l=m.substr(0,g),d=m.substr(g+1)):(l=m,d=""),h=decodeURIComponent(l),p=decodeURIComponent(d),r(s,h)?i(s[h])?s[h].push(p):s[h]=[s[h],p]:s[h]=p}return s};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,a){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?o(s(e),(function(s){var a=encodeURIComponent(r(s))+n;return i(e[s])?o(e[s],(function(e){return a+encodeURIComponent(r(e))})).join(t):a+encodeURIComponent(r(e[s]))})).join(t):a?encodeURIComponent(r(a))+n+encodeURIComponent(r(e)):""};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function o(e,t){if(e.map)return e.map(t);for(var n=[],r=0;re.available)},u.prototype.register=function(e,t,n,r,i,o,s,a){!0===i?i={email:!0}:null==i&&(i={}),"function"==typeof s&&(a=s,s=void 0),null==r&&(r={}),n&&(r.session=n);const c={auth:r};return null!=e&&(c.username=e),null!=t&&(c.password=t),i.email&&(c.bind_email=!0),i.msisdn&&(c.bind_msisdn=!0),null!=o&&(c.guest_access_token=o),null!=s&&(c.inhibit_login=s),null!=t&&(c.x_show_msisdn=!0),this.registerRequest(c,void 0,a)},u.prototype.registerGuest=function(e,t){return(e=e||{}).body=e.body||{},this.registerRequest(e.body,"guest",t)},u.prototype.registerRequest=function(e,t,n){const r={};return t&&(r.kind=t),this._http.request(n,"POST","/register",r,e)},u.prototype.loginFlows=function(e){return this._http.request(e,"GET","/login")},u.prototype.login=function(e,t,n){const r={type:e};return a.extend(r,t),this._http.authedRequest((e,t)=>{t&&t.access_token&&t.user_id&&(this._http.opts.accessToken=t.access_token,this.credentials={userId:t.user_id}),n&&n(e,t)},"POST","/login",void 0,r)},u.prototype.loginWithPassword=function(e,t,n){return this.login("m.login.password",{user:e,password:t},n)},u.prototype.loginWithSAML2=function(e,t){return this.login("m.login.saml2",{relay_state:e},t)},u.prototype.getCasLoginUrl=function(e){return this.getSsoLoginUrl(e,"cas")},u.prototype.getSsoLoginUrl=function(e,t){return void 0===t&&(t="sso"),this._http.getUrl("/login/"+t+"/redirect",{redirectUrl:e},c.PREFIX_R0)},u.prototype.loginWithToken=function(e,t){return this.login("m.login.token",{token:e},t)},u.prototype.logout=function(e){return this._http.authedRequest(e,"POST","/logout")},u.prototype.deactivateAccount=function(e,t){if("function"==typeof t)throw new Error("deactivateAccount no longer accepts a callback parameter");const n={};return e&&(n.auth=e),void 0!==t&&(n.erase=t),this._http.authedRequest(void 0,"POST","/account/deactivate",void 0,n)},u.prototype.getFallbackAuthUrl=function(e,t){const n=a.encodeUri("/auth/$loginType/fallback/web",{$loginType:e});return this._http.getUrl(n,{session:t},c.PREFIX_R0)},u.prototype.createRoom=function(e,t){return this._http.authedRequest(t,"POST","/createRoom",void 0,e)},u.prototype.fetchRelations=async function(e,t,n,r,i){const o={};i.from&&(o.from=i.from);const s=a.encodeParams(o),f=a.encodeUri("/rooms/$roomId/relations/$eventId/$relationType/$eventType?"+s,{$roomId:e,$eventId:t,$relationType:n,$eventType:r});return await this._http.authedRequest(void 0,"GET",f,null,null,{prefix:c.PREFIX_UNSTABLE})},u.prototype.roomState=function(e,t){const n=a.encodeUri("/rooms/$roomId/state",{$roomId:e});return this._http.authedRequest(t,"GET",n)},u.prototype.fetchRoomEvent=function(e,t,n){const r=a.encodeUri("/rooms/$roomId/event/$eventId",{$roomId:e,$eventId:t});return this._http.authedRequest(n,"GET",r)},u.prototype.members=function(e,t,n,r,i){const o={};t&&(o.membership=t),n&&(o.not_membership=n),r&&(o.at=r);const s=a.encodeParams(o),c=a.encodeUri("/rooms/$roomId/members?"+s,{$roomId:e});return this._http.authedRequest(i,"GET",c)},u.prototype.upgradeRoom=function(e,t){const n=a.encodeUri("/rooms/$roomId/upgrade",{$roomId:e});return this._http.authedRequest(void 0,"POST",n,void 0,{new_version:t})},u.prototype.getGroupSummary=function(e){const t=a.encodeUri("/groups/$groupId/summary",{$groupId:e});return this._http.authedRequest(void 0,"GET",t)},u.prototype.getGroupProfile=function(e){const t=a.encodeUri("/groups/$groupId/profile",{$groupId:e});return this._http.authedRequest(void 0,"GET",t)},u.prototype.setGroupProfile=function(e,t){const n=a.encodeUri("/groups/$groupId/profile",{$groupId:e});return this._http.authedRequest(void 0,"POST",n,void 0,t)},u.prototype.setGroupJoinPolicy=function(e,t){const n=a.encodeUri("/groups/$groupId/settings/m.join_policy",{$groupId:e});return this._http.authedRequest(void 0,"PUT",n,void 0,{"m.join_policy":t})},u.prototype.getGroupUsers=function(e){const t=a.encodeUri("/groups/$groupId/users",{$groupId:e});return this._http.authedRequest(void 0,"GET",t)},u.prototype.getGroupInvitedUsers=function(e){const t=a.encodeUri("/groups/$groupId/invited_users",{$groupId:e});return this._http.authedRequest(void 0,"GET",t)},u.prototype.getGroupRooms=function(e){const t=a.encodeUri("/groups/$groupId/rooms",{$groupId:e});return this._http.authedRequest(void 0,"GET",t)},u.prototype.inviteUserToGroup=function(e,t){const n=a.encodeUri("/groups/$groupId/admin/users/invite/$userId",{$groupId:e,$userId:t});return this._http.authedRequest(void 0,"PUT",n,void 0,{})},u.prototype.removeUserFromGroup=function(e,t){const n=a.encodeUri("/groups/$groupId/admin/users/remove/$userId",{$groupId:e,$userId:t});return this._http.authedRequest(void 0,"PUT",n,void 0,{})},u.prototype.addUserToGroupSummary=function(e,t,n){const r=a.encodeUri(n?"/groups/$groupId/summary/$roleId/users/$userId":"/groups/$groupId/summary/users/$userId",{$groupId:e,$roleId:n,$userId:t});return this._http.authedRequest(void 0,"PUT",r,void 0,{})},u.prototype.removeUserFromGroupSummary=function(e,t){const n=a.encodeUri("/groups/$groupId/summary/users/$userId",{$groupId:e,$userId:t});return this._http.authedRequest(void 0,"DELETE",n,void 0,{})},u.prototype.addRoomToGroupSummary=function(e,t,n){const r=a.encodeUri(n?"/groups/$groupId/summary/$categoryId/rooms/$roomId":"/groups/$groupId/summary/rooms/$roomId",{$groupId:e,$categoryId:n,$roomId:t});return this._http.authedRequest(void 0,"PUT",r,void 0,{})},u.prototype.removeRoomFromGroupSummary=function(e,t){const n=a.encodeUri("/groups/$groupId/summary/rooms/$roomId",{$groupId:e,$roomId:t});return this._http.authedRequest(void 0,"DELETE",n,void 0,{})},u.prototype.addRoomToGroup=function(e,t,n){void 0===n&&(n=!0);const r=a.encodeUri("/groups/$groupId/admin/rooms/$roomId",{$groupId:e,$roomId:t});return this._http.authedRequest(void 0,"PUT",r,void 0,{"m.visibility":{type:n?"public":"private"}})},u.prototype.updateGroupRoomVisibility=function(e,t,n){const r=a.encodeUri("/groups/$groupId/admin/rooms/$roomId/config/m.visibility",{$groupId:e,$roomId:t});return this._http.authedRequest(void 0,"PUT",r,void 0,{type:n?"public":"private"})},u.prototype.removeRoomFromGroup=function(e,t){const n=a.encodeUri("/groups/$groupId/admin/rooms/$roomId",{$groupId:e,$roomId:t});return this._http.authedRequest(void 0,"DELETE",n,void 0,{})},u.prototype.acceptGroupInvite=function(e,t=null){const n=a.encodeUri("/groups/$groupId/self/accept_invite",{$groupId:e});return this._http.authedRequest(void 0,"PUT",n,void 0,t||{})},u.prototype.joinGroup=function(e){const t=a.encodeUri("/groups/$groupId/self/join",{$groupId:e});return this._http.authedRequest(void 0,"PUT",t,void 0,{})},u.prototype.leaveGroup=function(e){const t=a.encodeUri("/groups/$groupId/self/leave",{$groupId:e});return this._http.authedRequest(void 0,"PUT",t,void 0,{})},u.prototype.getJoinedGroups=function(){const e=a.encodeUri("/joined_groups");return this._http.authedRequest(void 0,"GET",e)},u.prototype.createGroup=function(e){const t=a.encodeUri("/create_group");return this._http.authedRequest(void 0,"POST",t,void 0,e)},u.prototype.getPublicisedGroups=function(e){const t=a.encodeUri("/publicised_groups");return this._http.authedRequest(void 0,"POST",t,void 0,{user_ids:e})},u.prototype.setGroupPublicity=function(e,t){const n=a.encodeUri("/groups/$groupId/self/update_publicity",{$groupId:e});return this._http.authedRequest(void 0,"PUT",n,void 0,{publicise:t})},u.prototype.getStateEvent=function(e,t,n,r){const i={$roomId:e,$eventType:t,$stateKey:n};let o=a.encodeUri("/rooms/$roomId/state/$eventType",i);return void 0!==n&&(o=a.encodeUri(o+"/$stateKey",i)),this._http.authedRequest(r,"GET",o)},u.prototype.sendStateEvent=function(e,t,n,r,i){const o={$roomId:e,$eventType:t,$stateKey:r};let s=a.encodeUri("/rooms/$roomId/state/$eventType",o);return void 0!==r&&(s=a.encodeUri(s+"/$stateKey",o)),this._http.authedRequest(i,"PUT",s,void 0,n)},u.prototype.roomInitialSync=function(e,t,n){a.isFunction(t)&&(n=t,t=void 0);const r=a.encodeUri("/rooms/$roomId/initialSync",{$roomId:e});return t||(t=30),this._http.authedRequest(n,"GET",r,{limit:t})},u.prototype.setRoomReadMarkersHttpRequest=function(e,t,n,r){const i=a.encodeUri("/rooms/$roomId/read_markers",{$roomId:e}),o={"m.fully_read":t,"m.read":n,"m.hidden":Boolean(!!r&&r.hidden)};return this._http.authedRequest(void 0,"POST",i,void 0,o)},u.prototype.getJoinedRooms=function(){const e=a.encodeUri("/joined_rooms");return this._http.authedRequest(void 0,"GET",e)},u.prototype.getJoinedRoomMembers=function(e){const t=a.encodeUri("/rooms/$roomId/joined_members",{$roomId:e});return this._http.authedRequest(void 0,"GET",t)},u.prototype.publicRooms=function(e,t){"function"==typeof e&&(t=e,e={}),void 0===e&&(e={});const n={};return e.server&&(n.server=e.server,delete e.server),0===Object.keys(e).length&&0===Object.keys(n).length?this._http.authedRequest(t,"GET","/publicRooms"):this._http.authedRequest(t,"POST","/publicRooms",n,e)},u.prototype.createAlias=function(e,t,n){const r=a.encodeUri("/directory/room/$alias",{$alias:e}),i={room_id:t};return this._http.authedRequest(n,"PUT",r,void 0,i)},u.prototype.deleteAlias=function(e,t){const n=a.encodeUri("/directory/room/$alias",{$alias:e});return this._http.authedRequest(t,"DELETE",n,void 0,void 0)},u.prototype.getRoomIdForAlias=function(e,t){const n=a.encodeUri("/directory/room/$alias",{$alias:e});return this._http.authedRequest(t,"GET",n)},u.prototype.resolveRoomAlias=function(e,t){const n=a.encodeUri("/directory/room/$alias",{$alias:e});return this._http.request(t,"GET",n)},u.prototype.getRoomDirectoryVisibility=function(e,t){const n=a.encodeUri("/directory/list/room/$roomId",{$roomId:e});return this._http.authedRequest(t,"GET",n)},u.prototype.setRoomDirectoryVisibility=function(e,t,n){const r=a.encodeUri("/directory/list/room/$roomId",{$roomId:e});return this._http.authedRequest(n,"PUT",r,void 0,{visibility:t})},u.prototype.setRoomDirectoryVisibilityAppService=function(e,t,n,r){const i=a.encodeUri("/directory/list/appservice/$networkId/$roomId",{$networkId:e,$roomId:t});return this._http.authedRequest(r,"PUT",i,void 0,{visibility:n})},u.prototype.searchUserDirectory=function(e){const t={search_term:e.term};return void 0!==e.limit&&(t.limit=e.limit),this._http.authedRequest(void 0,"POST","/user_directory/search",void 0,t)},u.prototype.uploadContent=function(e,t){return this._http.uploadContent(e,t)},u.prototype.cancelUpload=function(e){return this._http.cancelUpload(e)},u.prototype.getCurrentUploads=function(){return this._http.getCurrentUploads()},u.prototype.getProfileInfo=function(e,t,n){a.isFunction(t)&&(n=t,t=void 0);const r=t?a.encodeUri("/profile/$userId/$info",{$userId:e,$info:t}):a.encodeUri("/profile/$userId",{$userId:e});return this._http.authedRequest(n,"GET",r)},u.prototype.getThreePids=function(e){return this._http.authedRequest(e,"GET","/account/3pid",void 0,void 0)},u.prototype.addThreePid=function(e,t,n){const r={threePidCreds:e,bind:t};return this._http.authedRequest(n,"POST","/account/3pid",null,r)},u.prototype.addThreePidOnly=async function(e){const t=await this.isVersionSupported("r0.6.0")?c.PREFIX_R0:c.PREFIX_UNSTABLE;return this._http.authedRequest(void 0,"POST","/account/3pid/add",null,e,{prefix:t})},u.prototype.bindThreePid=async function(e){const t=await this.isVersionSupported("r0.6.0")?c.PREFIX_R0:c.PREFIX_UNSTABLE;return this._http.authedRequest(void 0,"POST","/account/3pid/bind",null,e,{prefix:t})},u.prototype.unbindThreePid=async function(e,t){const n={medium:e,address:t,id_server:this.getIdentityServerUrl(!0)},r=await this.isVersionSupported("r0.6.0")?c.PREFIX_R0:c.PREFIX_UNSTABLE;return this._http.authedRequest(void 0,"POST","/account/3pid/unbind",null,n,{prefix:r})},u.prototype.deleteThreePid=function(e,t){const n={medium:e,address:t};return this._http.authedRequest(void 0,"POST","/account/3pid/delete",null,n)},u.prototype.setPassword=function(e,t,n){const r={auth:e,new_password:t};return this._http.authedRequest(n,"POST","/account/password",null,r)},u.prototype.getDevices=function(){return this._http.authedRequest(void 0,"GET","/devices",void 0,void 0)},u.prototype.setDeviceDetails=function(e,t){const n=a.encodeUri("/devices/$device_id",{$device_id:e});return this._http.authedRequest(void 0,"PUT",n,void 0,t)},u.prototype.deleteDevice=function(e,t){const n=a.encodeUri("/devices/$device_id",{$device_id:e}),r={};return t&&(r.auth=t),this._http.authedRequest(void 0,"DELETE",n,void 0,r)},u.prototype.deleteMultipleDevices=function(e,t){const n={devices:e};t&&(n.auth=t);return this._http.authedRequest(void 0,"POST","/delete_devices",void 0,n)},u.prototype.getPushers=function(e){return this._http.authedRequest(e,"GET","/pushers",void 0,void 0)},u.prototype.setPusher=function(e,t){return this._http.authedRequest(t,"POST","/pushers/set",null,e)},u.prototype.getPushRules=function(e){return this._http.authedRequest(e,"GET","/pushrules/").then(e=>s.PushProcessor.rewriteDefaultRules(e))},u.prototype.addPushRule=function(e,t,n,r,i){const o=a.encodeUri("/pushrules/"+e+"/$kind/$ruleId",{$kind:t,$ruleId:n});return this._http.authedRequest(i,"PUT",o,void 0,r)},u.prototype.deletePushRule=function(e,t,n,r){const i=a.encodeUri("/pushrules/"+e+"/$kind/$ruleId",{$kind:t,$ruleId:n});return this._http.authedRequest(r,"DELETE",i)},u.prototype.setPushRuleEnabled=function(e,t,n,r,i){const o=a.encodeUri("/pushrules/"+e+"/$kind/$ruleId/enabled",{$kind:t,$ruleId:n});return this._http.authedRequest(i,"PUT",o,void 0,{enabled:r})},u.prototype.setPushRuleActions=function(e,t,n,r,i){const o=a.encodeUri("/pushrules/"+e+"/$kind/$ruleId/actions",{$kind:t,$ruleId:n});return this._http.authedRequest(i,"PUT",o,void 0,{actions:r})},u.prototype.search=function(e,t){const n={};return e.next_batch&&(n.next_batch=e.next_batch),this._http.authedRequest(t,"POST","/search",n,e.body)},u.prototype.uploadKeysRequest=function(e,t,n){const r=(t=t||{}).device_id;let i;return i=r?a.encodeUri("/keys/upload/$deviceId",{$deviceId:r}):"/keys/upload",this._http.authedRequest(n,"POST",i,void 0,e)},u.prototype.uploadKeySignatures=function(e){return this._http.authedRequest(void 0,"POST","/keys/signatures/upload",void 0,e,{prefix:c.PREFIX_UNSTABLE})},u.prototype.downloadKeysForUsers=function(e,t){if(a.isFunction(t))throw new Error("downloadKeysForUsers no longer accepts a callback parameter");const n={device_keys:{}};return"token"in(t=t||{})&&(n.token=t.token),e.forEach(e=>{n.device_keys[e]={}}),this._http.authedRequest(void 0,"POST","/keys/query",void 0,n)},u.prototype.claimOneTimeKeys=function(e,t){const n={};void 0===t&&(t="signed_curve25519");for(let r=0;r{const t=e[0].toLowerCase(),i=e[1].toLowerCase(),s=n.sha256(`${t} ${i} ${r.pepper}`).replace(/\+/g,"-").replace(/\//g,"_");return o[s]=e[0],s}),r.algorithm="sha256"}else{if(!i.algorithms.includes("none"))throw new Error("Unsupported identity server: unknown hash algorithm");r.addresses=t.map(e=>{const t=`${e[0].toLowerCase()} ${e[1].toLowerCase()}`;return o[t]=e[0],t}),r.algorithm="none"}const s=await this._http.idServerRequest(void 0,"POST","/lookup",r,c.PREFIX_IDENTITY_V2,n);if(!s||!s.mappings)return[];const a=[];for(const e of Object.keys(s.mappings)){const t=s.mappings[e],n=o[e];if(!n)throw new Error("Identity server returned more results than expected");a.push({address:n,mxid:t})}return a},u.prototype.lookupThreePid=async function(e,t,n,r){try{const i=(await this.identityHashedLookup([[t,e]],r)).find(e=>e.address===t);if(!i)return n&&n(null,{}),{};const o={address:t,medium:e,mxid:i.mxid};return n&&n(null,o),o}catch(r){if("rejected"===r.cors||404===r.httpStatus){const r={medium:e,address:t};return o.logger.warn("IS doesn't support v2, falling back to deprecated v1"),await this._http.idServerRequest(n,"GET","/lookup",r,c.PREFIX_IDENTITY_V1)}throw n&&n(r,void 0),r}},u.prototype.bulkLookupThreePids=async function(e,t){try{const n=await this.identityHashedLookup(e.map(e=>[e[1],e[0]]),t),r=[];for(const t of n){const n=e.find(e=>e[1]===t.address);if(!n)throw new Error("Identity sever returned unexpected results");r.push([n[0],t.address,t.mxid])}return{threepids:r}}catch(n){if("rejected"===n.cors||404===n.httpStatus){const n={threepids:e};return o.logger.warn("IS doesn't support v2, falling back to deprecated v1"),await this._http.idServerRequest(void 0,"POST","/bulk_lookup",n,c.PREFIX_IDENTITY_V1,t)}throw n}},u.prototype.getIdentityAccount=function(e){return this._http.idServerRequest(void 0,"GET","/account",void 0,c.PREFIX_IDENTITY_V2,e)},u.prototype.sendToDevice=function(e,t,n){const r=a.encodeUri("/sendToDevice/$eventType/$txnId",{$eventType:e,$txnId:n||this.makeTxnId()}),i={messages:t},s=Object.keys(t).reduce((e,n)=>(e[n]=Object.keys(t[n]),e),{});return o.logger.log(`PUT ${r}`,s),this._http.authedRequest(void 0,"PUT",r,void 0,i)},u.prototype.getThirdpartyProtocols=function(){return this._http.authedRequest(void 0,"GET","/thirdparty/protocols",void 0,void 0).then(e=>{if(!e||"object"!=typeof e)throw new Error(`/thirdparty/protocols did not return an object: ${e}`);return e})},u.prototype.getThirdpartyLocation=function(e,t){const n=a.encodeUri("/thirdparty/location/$protocol",{$protocol:e});return this._http.authedRequest(void 0,"GET",n,t,void 0)},u.prototype.getThirdpartyUser=function(e,t){const n=a.encodeUri("/thirdparty/user/$protocol",{$protocol:e});return this._http.authedRequest(void 0,"GET",n,t,void 0)},u.prototype.getTerms=function(e,t){const n=f(e,t);return this._http.requestOtherUrl(void 0,"GET",n)},u.prototype.agreeToTerms=function(e,t,n,r){const i=f(e,t),o={Authorization:"Bearer "+n};return this._http.requestOtherUrl(void 0,"POST",i,null,{user_accepts:r},{headers:o})},u.prototype.reportEvent=function(e,t,n,r){const i=a.encodeUri("/rooms/$roomId/report/$eventId",{$roomId:e,$eventId:t});return this._http.authedRequest(void 0,"POST",i,null,{score:n,reason:r})}}).call(this,n(6))},function(e,t,n){"use strict"; /*! * content-type * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed */var r=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,i=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,o=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,s=/\\([\u000b\u0020-\u00ff])/g,a=/([\\"])/g,c=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function f(e){var t=String(e);if(o.test(t))return t;if(t.length>0&&!i.test(t))throw new TypeError("invalid parameter value");return'"'+t.replace(a,"\\$1")+'"'}function u(e){this.parameters=Object.create(null),this.type=e}t.format=function(e){if(!e||"object"!=typeof e)throw new TypeError("argument obj is required");var t=e.parameters,n=e.type;if(!n||!c.test(n))throw new TypeError("invalid type");var r=n;if(t&&"object"==typeof t)for(var i,s=Object.keys(t).sort(),a=0;an)break;t=s.shift(),t.key,i.push(t)}c();for(let n=0;n>1;t(e[i])>0?r=i:n=i+1}return n}}).call(this,n(6))},function(e,t,n){"use strict";function r(e){this.filter_json=e,this.types=e.types||null,this.not_types=e.not_types||[],this.rooms=e.rooms||null,this.not_rooms=e.not_rooms||[],this.senders=e.senders||null,this.not_senders=e.not_senders||[],this.contains_url=e.contains_url||null}Object.defineProperty(t,"__esModule",{value:!0}),t.FilterComponent=r,r.prototype.check=function(e){return this._checkFields(e.getRoomId(),e.getSender(),e.getType(),!!e.getContent()&&void 0!==e.getContent().url)},r.prototype._checkFields=function(e,t,n,r){const i={rooms:function(t){return e===t},senders:function(e){return t===e},types:function(e){return function(e,t){if(t.endsWith("*")){const n=t.slice(0,-1);return e.substr(0,n.length)===n}return e===t}(n,e)}},o=this;for(let e=0;e0)return!1;const r=o[t];if(r&&!r.map(n))return!1}const s=this.filter_json.contains_url;return void 0===s||s===r},r.prototype.filter=function(e){return e.filter(this.check,this)},r.prototype.limit=function(){return void 0!==this.filter_json.limit?this.filter_json.limit:10}},function(e,t,n){"use strict";(function(e){var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.SyncApi=m;var i=n(47),o=n(130),s=n(133),a=r(n(8)),c=n(75),f=n(25),u=n(74),l=n(5),d=n(78);function h(e,t){return"FILTER_SYNC_"+e+(t?"_"+t:"")}function p(...e){l.logger.log(...e)}function m(e,t){this.client=e,(t=t||{}).initialSyncLimit=void 0===t.initialSyncLimit?8:t.initialSyncLimit,t.resolveInvitesToProfiles=t.resolveInvitesToProfiles||!1,t.pollTimeout=t.pollTimeout||3e4,t.pendingEventOrdering=t.pendingEventOrdering||"chronological",t.canResetEntireTimeline||(t.canResetEntireTimeline=function(e){return!1}),this.opts=t,this._peekRoomId=null,this._currentSyncRequest=null,this._syncState=null,this._syncStateData=null,this._catchingUp=!1,this._running=!1,this._keepAliveTimer=null,this._connectionReturnedDefer=null,this._notifEvents=[],this._failedSyncCount=0,this._storeIsInvalid=!1,e.getNotifTimelineSet()&&e.reEmitter.reEmit(e.getNotifTimelineSet(),["Room.timeline","Room.timelineReset"])}function g(e,t){const n=new i.User(t);return e.reEmitter.reEmit(n,["User.avatarUrl","User.displayName","User.presence","User.currentlyActive","User.lastPresenceTs"]),n}m.prototype.createRoom=function(e){const t=this.client,{timelineSupport:n,unstableClientRelationAggregation:r}=t,i=new o.Room(e,t,t.getUserId(),{lazyLoadMembers:this.opts.lazyLoadMembers,pendingEventOrdering:this.opts.pendingEventOrdering,timelineSupport:n,unstableClientRelationAggregation:r});return t.reEmitter.reEmit(i,["Room.name","Room.timeline","Room.redaction","Room.redactionCancelled","Room.receipt","Room.tags","Room.timelineReset","Room.localEchoUpdated","Room.accountData","Room.myMembership","Room.replaceEvent"]),this._registerStateListeners(i),i},m.prototype.createGroup=function(e){const t=this.client,n=new s.Group(e);return t.reEmitter.reEmit(n,["Group.profile","Group.myMembership"]),t.store.storeGroup(n),n},m.prototype._registerStateListeners=function(e){const t=this.client;t.reEmitter.reEmit(e.currentState,["RoomState.events","RoomState.members","RoomState.newMember"]),e.currentState.on("RoomState.newMember",(function(e,n,r){r.user=t.getUser(r.userId),t.reEmitter.reEmit(r,["RoomMember.name","RoomMember.typing","RoomMember.powerLevel","RoomMember.membership"])}))},m.prototype._deregisterStateListeners=function(e){e.currentState.removeAllListeners("RoomState.events"),e.currentState.removeAllListeners("RoomState.members"),e.currentState.removeAllListeners("RoomState.newMember")},m.prototype.syncLeftRooms=function(){const e=this.client,t=this,n=new c.Filter(this.client.credentials.userId);n.setTimelineLimit(1),n.setIncludeLeaveRooms(!0);const r=this.opts.pollTimeout+8e4,i={timeout:0};return e.getOrCreateFilter(h(e.credentials.userId,"LEFT_ROOMS"),n).then((function(t){return i.filter=t,e._http.authedRequest(void 0,"GET","/sync",i,void 0,r)})).then((function(n){let r=[];n.rooms&&n.rooms.leave&&(r=t._mapSyncResponseToRoomArray(n.rooms.leave));const i=[];return r.forEach((function(n){const r=n.room;if(i.push(r),!n.isBrandNewRoom)return;n.timeline=n.timeline||{};const o=t._mapSyncEventsFormat(n.timeline,r),s=t._mapSyncEventsFormat(n.state,r);r.getLiveTimeline().setPaginationToken(n.timeline.prev_batch,f.EventTimeline.BACKWARDS),t._processRoomEvents(r,s,o),r.recalculate(),e.store.storeRoom(r),e.emit("Room",r),t._processEventsForNotifs(r,o)})),i}))},m.prototype.peek=function(e){const t=this,n=this.client;return this._peekRoomId=e,this.client.roomInitialSync(e,20).then((function(r){r.messages=r.messages||{},r.messages.chunk=r.messages.chunk||[],r.state=r.state||[];const i=t.createRoom(e),o=a.map(a.deepCopy(r.state),n.getEventMapper()),s=a.map(r.state,n.getEventMapper()),c=a.map(r.messages.chunk,n.getEventMapper());return r.presence&&a.isArray(r.presence)&&r.presence.map(n.getEventMapper()).forEach((function(e){let t=n.store.getUser(e.getContent().user_id);t?t.setPresenceEvent(e):(t=g(n,e.getContent().user_id),t.setPresenceEvent(e),n.store.storeUser(t)),n.emit("event",e)})),r.messages.start&&(i.oldState.paginationToken=r.messages.start),i.oldState.setStateEvents(o),i.currentState.setStateEvents(s),t._resolveInvites(i),i.recalculate(),i.addEventsToTimeline(c.reverse(),!0,i.getLiveTimeline(),r.messages.start),n.store.storeRoom(i),n.emit("Room",i),t._peekPoll(i),i}))},m.prototype.stopPeeking=function(){this._peekRoomId=null},m.prototype._peekPoll=function(e,t){if(this._peekRoomId!==e.roomId)return void p("Stopped peeking in room %s",e.roomId);const n=this;this.client._http.authedRequest(void 0,"GET","/events",{room_id:e.roomId,timeout:3e4,from:t},void 0,5e4).then((function(t){if(n._peekRoomId!==e.roomId)return void p("Stopped peeking in room %s",e.roomId);t.chunk.filter((function(e){return"m.presence"===e.type})).map(n.client.getEventMapper()).forEach((function(e){let t=n.client.store.getUser(e.getContent().user_id);t?t.setPresenceEvent(e):(t=g(n.client,e.getContent().user_id),t.setPresenceEvent(e),n.client.store.storeUser(t)),n.client.emit("event",e)}));const r=t.chunk.filter((function(t){return t.room_id===e.roomId})).map(n.client.getEventMapper());e.addLiveEvents(r),n._peekPoll(e,t.end)}),(function(r){l.logger.error("[%s] Peek poll failed: %s",e.roomId,r),setTimeout((function(){n._peekPoll(e,t)}),3e4)}))},m.prototype.getSyncState=function(){return this._syncState},m.prototype.getSyncStateData=function(){return this._syncStateData},m.prototype.recoverFromSyncStartupError=async function(e,t){await e;const n=this._startKeepAlives();this._updateSyncState("ERROR",{error:t}),await n},m.prototype._wasLazyLoadingToggled=async function(e){e=!!e;let t=!1;if(!await this.client.store.isNewlyCreated()){const n=await this.client.store.getClientOptions();return n&&(t=!!n.lazyLoadMembers),t!==e}return!1},m.prototype._shouldAbortSync=function(e){return"M_UNKNOWN_TOKEN"===e.errcode&&(l.logger.warn("Token no longer valid - assuming logout"),this.stop(),!0)},m.prototype.sync=function(){const t=this.client,n=this;this._running=!0,e.document&&(this._onOnlineBound=this._onOnline.bind(this),e.document.addEventListener("online",this._onOnlineBound,!1));let r=Promise.resolve(),i=null;const o=async()=>{if(p("Checking lazy load status..."),this.opts.lazyLoadMembers&&t.isGuest()&&(this.opts.lazyLoadMembers=!1),this.opts.lazyLoadMembers){if(p("Checking server lazy load support..."),await t.doesServerSupportLazyLoading())try{p("Creating and storing lazy load sync filter..."),this.opts.filter=await t.createFilter(c.Filter.LAZY_LOADING_SYNC_FILTER),p("Created and stored lazy load sync filter")}catch(e){throw l.logger.error("Creating and storing lazy load sync filter failed",e),e}else p("LL: lazy loading requested but not supported by server, so disabling"),this.opts.lazyLoadMembers=!1}if(p("Checking whether lazy loading has changed in store..."),await this._wasLazyLoadingToggled(this.opts.lazyLoadMembers)){this._storeIsInvalid=!0;const e=d.InvalidStoreError.TOGGLED_LAZY_LOADING,t=new d.InvalidStoreError(e,!!this.opts.lazyLoadMembers);return this._updateSyncState("ERROR",{error:t}),void l.logger.warn("InvalidStoreError: store is not usable: stopping sync.")}this.opts.lazyLoadMembers&&this.opts.crypto&&this.opts.crypto.enableLazyLoading();try{p("Storing client options..."),await this.client._storeClientOptions(),p("Stored client options")}catch(e){throw l.logger.error("Storing client options failed",e),e}!async function e(){let o,s;p("Getting filter..."),n.opts.filter?o=n.opts.filter:(o=new c.Filter(t.credentials.userId),o.setTimelineLimit(n.opts.initialSyncLimit));try{s=await t.getOrCreateFilter(h(t.credentials.userId),o)}catch(t){if(l.logger.error("Getting filter failed",t),n._shouldAbortSync(t))return;return p("Waiting for saved sync before retrying filter..."),await n.recoverFromSyncStartupError(r,t),void e()}t.resetNotifTimelineSet(),null===n._currentSyncRequest&&(p("Sending first sync request..."),n._currentSyncRequest=n._doSyncRequest({filterId:s},i));p("Waiting for saved sync before starting sync processing..."),await r,n._sync({filterId:s})}()};t.isGuest()?n._sync({}):(p("Getting saved sync token..."),r=t.store.getSavedSyncToken().then(e=>(p("Got saved sync token"),i=e,p("Getting saved sync..."),t.store.getSavedSync())).then(e=>{if(p(`Got reply from saved sync, exists? ${!!e}`),e)return n._syncFromCache(e)}).catch(e=>{l.logger.error("Getting saved sync failed",e)}),async function e(){try{p("Getting push rules...");const e=await t.getPushRules();p("Got push rules"),t.pushRules=e}catch(t){if(l.logger.error("Getting push rules failed",t),n._shouldAbortSync(t))return;return p("Waiting for saved sync before retrying push rules..."),await n.recoverFromSyncStartupError(r,t),void e()}o()}())},m.prototype.stop=function(){p("SyncApi.stop"),e.document&&(e.document.removeEventListener("online",this._onOnlineBound,!1),this._onOnlineBound=void 0),this._running=!1,this._currentSyncRequest&&this._currentSyncRequest.abort(),this._keepAliveTimer&&(clearTimeout(this._keepAliveTimer),this._keepAliveTimer=null)},m.prototype.retryImmediately=function(){return!!this._connectionReturnedDefer&&(this._startKeepAlives(0),!0)},m.prototype._syncFromCache=async function(e){p("sync(): not doing HTTP hit, instead returning stored /sync data");const t=e.nextBatch;this.client.store.setSyncToken(t);const n={oldSyncToken:null,nextSyncToken:t,catchingUp:!1},r={next_batch:t,rooms:e.roomsData,groups:e.groupsData,account_data:{events:e.accountData}};try{await this._processSyncResponse(n,r)}catch(e){l.logger.error("Error processing cached sync",e.stack||e)}this._storeIsInvalid||this._updateSyncState("PREPARED",n)},m.prototype._sync=async function(e){const t=this.client;if(!this._running)return p("Sync no longer running: exiting."),this._connectionReturnedDefer&&(this._connectionReturnedDefer.reject(),this._connectionReturnedDefer=null),void this._updateSyncState("STOPPED");const n=t.store.getSyncToken();let r;try{null===this._currentSyncRequest&&(this._currentSyncRequest=this._doSyncRequest(e,n)),r=await this._currentSyncRequest}catch(t){return void this._onSyncError(t,e)}finally{this._currentSyncRequest=null}t.store.setSyncToken(r.next_batch),this._failedSyncCount=0,await t.store.setSyncData(r);const i={oldSyncToken:n,nextSyncToken:r.next_batch,catchingUp:this._catchingUp};this.opts.crypto&&await this.opts.crypto.onSyncWillProcess(i);try{await this._processSyncResponse(i,r)}catch(e){l.logger.error("Caught /sync error",e.stack||e),this.client.emit("sync.unexpectedError",e)}i.catchingUp=this._catchingUp,e.hasSyncedBefore||(this._updateSyncState("PREPARED",i),e.hasSyncedBefore=!0),this.opts.crypto&&await this.opts.crypto.onSyncCompleted(i),this._updateSyncState("SYNCING",i),t.store.wantsSave()&&(this.opts.crypto&&await this.opts.crypto.saveDeviceList(0),t.store.save()),this._sync(e)},m.prototype._doSyncRequest=function(e,t){const n=this._getSyncParams(e,t);return this.client._http.authedRequest(void 0,"GET","/sync",n,void 0,n.timeout+8e4)},m.prototype._getSyncParams=function(e,t){let n=this.opts.pollTimeout;("SYNCING"!==this.getSyncState()||this._catchingUp)&&(this._catchingUp=!0,n=0);let r=e.filterId;this.client.isGuest()&&!r&&(r=this._getGuestFilter());const i={filter:r,timeout:n};return this.opts.disablePresence&&(i.set_presence="offline"),t?i.since=t:i._cacheBuster=Date.now(),"ERROR"!=this.getSyncState()&&"RECONNECTING"!=this.getSyncState()||(i.timeout=0),i},m.prototype._onSyncError=function(e,t){if(!this._running)return p("Sync no longer running: exiting"),this._connectionReturnedDefer&&(this._connectionReturnedDefer.reject(),this._connectionReturnedDefer=null),void this._updateSyncState("STOPPED");l.logger.error("/sync error %s",e),l.logger.error(e),this._shouldAbortSync(e)||(this._failedSyncCount++,l.logger.log("Number of consecutive failed sync requests:",this._failedSyncCount),p("Starting keep-alive"),this._startKeepAlives().then(e=>{e&&"ERROR"===this.getSyncState()&&this._updateSyncState("CATCHUP",{oldSyncToken:null,nextSyncToken:null,catchingUp:!0}),this._sync(t)}),this._currentSyncRequest=null,this._updateSyncState(this._failedSyncCount>=3?"ERROR":"RECONNECTING",{error:e}))},m.prototype._processSyncResponse=async function(e,t){const n=this.client,r=this;if(t.presence&&a.isArray(t.presence.events)&&t.presence.events.map(n.getEventMapper()).forEach((function(e){let t=n.store.getUser(e.getSender());t?t.setPresenceEvent(e):(t=g(n,e.getSender()),t.setPresenceEvent(e),n.store.storeUser(t)),n.emit("event",e)})),t.account_data&&a.isArray(t.account_data.events)){const e=t.account_data.events.map(n.getEventMapper());n.store.storeAccountDataEvents(e),e.forEach((function(e){if("m.push_rules"===e.getType()){const t=e.getContent();n.pushRules=u.PushProcessor.rewriteDefaultRules(t)}return n.emit("accountData",e),e}))}if(t.to_device&&a.isArray(t.to_device.events)&&t.to_device.events.length>0){const e=[];t.to_device.events.map(n.getEventMapper()).map(t=>{if("m.key.verification.cancel"===t.getType()){const n=t.getContent().transaction_id;n&&e.push(n)}return t}).forEach((function(t){const r=t.getContent();if("m.room.message"!=t.getType()||"m.bad.encrypted"!=r.msgtype){if("m.key.verification.start"===t.getType()||"m.key.verification.request"===t.getType()){const n=r.transaction_id;e.includes(n)&&t.flagCancelled()}n.emit("toDeviceEvent",t)}else l.logger.log("Ignoring undecryptable to-device event from "+t.getSender())}))}else this._catchingUp=!1;t.groups&&(t.groups.invite&&this._processGroupSyncEntry(t.groups.invite,"invite"),t.groups.join&&this._processGroupSyncEntry(t.groups.join,"join"),t.groups.leave&&this._processGroupSyncEntry(t.groups.leave,"leave"));let i=[],o=[],s=[];if(t.rooms&&(t.rooms.invite&&(i=this._mapSyncResponseToRoomArray(t.rooms.invite)),t.rooms.join&&(o=this._mapSyncResponseToRoomArray(t.rooms.join)),t.rooms.leave&&(s=this._mapSyncResponseToRoomArray(t.rooms.leave))),this._notifEvents=[],i.forEach((function(e){const t=e.room,i=r._mapSyncEventsFormat(e.invite_state,t);r._processRoomEvents(t,i),e.isBrandNewRoom&&(t.recalculate(),n.store.storeRoom(t),n.emit("Room",t)),i.forEach((function(e){n.emit("event",e)})),t.updateMyMembership("invite")})),await a.promiseMapSeries(o,(async function(t){const i=t.room,o=r._mapSyncEventsFormat(t.state,i),s=r._mapSyncEventsFormat(t.timeline,i),c=r._mapSyncEventsFormat(t.ephemeral),u=r._mapSyncEventsFormat(t.account_data);if(t.unread_notifications){i.setUnreadNotificationCount("total",t.unread_notifications.notification_count);const e=n.isRoomEncrypted(i.roomId);(!e||e&&i.getUnreadNotificationCount("highlight")<=0)&&i.setUnreadNotificationCount("highlight",t.unread_notifications.highlight_count)}if(t.timeline=t.timeline||{},t.isBrandNewRoom)i.getLiveTimeline().setPaginationToken(t.timeline.prev_batch,f.EventTimeline.BACKWARDS);else if(t.timeline.limited){let o=!0;for(let e=s.length-1;e>=0;e--){const t=s[e].getId();if(i.getTimelineForEvent(t)){p("Already have event "+t+" in limited sync - not resetting"),o=!1,s.splice(0,e);break}}o&&(r._deregisterStateListeners(i),i.resetLiveTimeline(t.timeline.prev_batch,r.opts.canResetEntireTimeline(i.roomId)?null:e.oldSyncToken),n.resetNotifTimelineSet(),r._registerStateListeners(i))}async function l(e){if(n.emit("event",e),e.isState()&&"m.room.encryption"==e.getType()&&r.opts.crypto&&await r.opts.crypto.onCryptoEvent(e),e.isState()&&"im.vector.user_status"===e.getType()){let t=n.store.getUser(e.getStateKey());t?t._unstable_updateStatusMessage(e):(t=g(n,e.getStateKey()),t._unstable_updateStatusMessage(e),n.store.storeUser(t))}}r._processRoomEvents(i,o,s),t.summary&&i.setSummary(t.summary),i.addEphemeralEvents(c),i.addAccountData(u),i.recalculate(),t.isBrandNewRoom&&(n.store.storeRoom(i),n.emit("Room",i)),r._processEventsForNotifs(i,s),await a.promiseMapSeries(o,l),await a.promiseMapSeries(s,l),c.forEach((function(e){n.emit("event",e)})),u.forEach((function(e){n.emit("event",e)})),i.updateMyMembership("join")})),s.forEach((function(e){const t=e.room,i=r._mapSyncEventsFormat(e.state,t),o=r._mapSyncEventsFormat(e.timeline,t),s=r._mapSyncEventsFormat(e.account_data);r._processRoomEvents(t,i,o),t.addAccountData(s),t.recalculate(),e.isBrandNewRoom&&(n.store.storeRoom(t),n.emit("Room",t)),r._processEventsForNotifs(t,o),i.forEach((function(e){n.emit("event",e)})),o.forEach((function(e){n.emit("event",e)})),s.forEach((function(e){n.emit("event",e)})),t.updateMyMembership("leave")})),e.oldSyncToken&&this._notifEvents.length&&(this._notifEvents.sort((function(e,t){return e.getTs()-t.getTs()})),this._notifEvents.forEach((function(e){n.getNotifTimelineSet().addLiveEvent(e)}))),t.device_lists&&this.opts.crypto&&await this.opts.crypto.handleDeviceListChanges(e,t.device_lists),this.opts.crypto&&t.device_one_time_keys_count){const e=t.device_one_time_keys_count.signed_curve25519||0;this.opts.crypto.updateOneTimeKeyCount(e)}},m.prototype._startKeepAlives=function(e){void 0===e&&(e=2e3+Math.floor(5e3*Math.random())),null!==this._keepAliveTimer&&clearTimeout(this._keepAliveTimer);const t=this;return e>0?t._keepAliveTimer=setTimeout(t._pokeKeepAlive.bind(t),e):t._pokeKeepAlive(),this._connectionReturnedDefer||(this._connectionReturnedDefer=a.defer()),this._connectionReturnedDefer.promise},m.prototype._pokeKeepAlive=function(e){void 0===e&&(e=!1);const t=this;function n(){clearTimeout(t._keepAliveTimer),t._connectionReturnedDefer&&(t._connectionReturnedDefer.resolve(e),t._connectionReturnedDefer=null)}this.client._http.request(void 0,"GET","/_matrix/client/versions",void 0,void 0,{prefix:"",localTimeoutMs:15e3}).then((function(){n()}),(function(r){400==r.httpStatus||404==r.httpStatus?t._keepAliveTimer=setTimeout(n,2e3):(e=!0,t._keepAliveTimer=setTimeout(t._pokeKeepAlive.bind(t,e),5e3+Math.floor(5e3*Math.random())),t._updateSyncState("ERROR",{error:r}))}))},m.prototype._processGroupSyncEntry=function(e,t){for(const n of Object.keys(e)){const r=e[n];let i=this.client.store.getGroup(n);const o=null===i;null===i&&(i=this.createGroup(n)),r.profile&&i.setProfile(r.profile.name,r.profile.avatar_url),r.inviter&&i.setInviter({userId:r.inviter}),i.setMyMembership(t),o&&this.client.emit("Group",i)}},m.prototype._mapSyncResponseToRoomArray=function(e){const t=this.client,n=this;return a.keys(e).map((function(r){const i=e[r];let o=t.store.getRoom(r),s=!1;return o||(o=n.createRoom(r),s=!0),i.room=o,i.isBrandNewRoom=s,i}))},m.prototype._mapSyncEventsFormat=function(e,t){if(!e||!a.isArray(e.events))return[];const n=this.client.getEventMapper();return e.events.map((function(e){return t&&(e.room_id=t.roomId),n(e)}))},m.prototype._resolveInvites=function(e){if(!e||!this.opts.resolveInvitesToProfiles)return;const t=this.client;e.getMembersWithMembership("invite").forEach((function(n){if(n._requestedProfileInfo)return;n._requestedProfileInfo=!0;const r=t.getUser(n.userId);let i;i=r?Promise.resolve({avatar_url:r.avatarUrl,displayname:r.displayName}):t.getProfileInfo(n.userId),i.then((function(t){const r=n.events.member;"invite"===r.getContent().membership&&(r.getContent().avatar_url=t.avatar_url,r.getContent().displayname=t.displayname,n.setMembershipEvent(r,e.currentState))}),(function(e){}))}))},m.prototype._processRoomEvents=function(e,t,n){const r=e.getLiveTimeline(),i=0==r.getEvents().length;if(i){for(const e of t)this.client.getPushActionsForEvent(e);r.initialiseState(t)}this._resolveInvites(e),e.recalculate(),i||(e.oldState.setStateEvents(t||[]),e.currentState.setStateEvents(t||[])),e.addLiveEvents(n||[])},m.prototype._processEventsForNotifs=function(e,t){if(this.client.getNotifTimelineSet())for(let e=0;e{e.isSending()?t===s.EventStatus.CANCELLED&&(e.removeListener("Event.status",this._onEventStatus),this._removeEvent(e)):e.removeListener("Event.status",this._onEventStatus)}),(0,i.default)(this,"_onBeforeRedaction",e=>{this._relations.has(e)&&(this._relations.delete(e),"m.annotation"===this.relationType?this._removeAnnotationFromAggregation(e):"m.replace"===this.relationType&&this._targetEvent&&this._targetEvent.makeReplaced(this.getLastReplacement()),e.removeListener("Event.beforeRedaction",this._onBeforeRedaction),this.emit("Relations.redaction",e))}),this.relationType=e,this.eventType=t,this._relations=new Set,this._annotationsByKey={},this._annotationsBySender={},this._sortedAnnotationsByKey=[],this._targetEvent=null}addEvent(e){if(this._relations.has(e))return;const t=e.getRelation();if(!t)return void console.error("Event must have relation info");const n=t.rel_type,r=e.getType();this.relationType===n&&this.eventType===r?(e.isSending()&&e.on("Event.status",this._onEventStatus),this._relations.add(e),"m.annotation"===this.relationType?this._addAnnotationToAggregation(e):"m.replace"===this.relationType&&this._targetEvent&&this._targetEvent.makeReplaced(this.getLastReplacement()),e.on("Event.beforeRedaction",this._onBeforeRedaction),this.emit("Relations.add",e)):console.error("Event relation info doesn't match this container")}_removeEvent(e){if(!this._relations.has(e))return;const t=e.getRelation();if(!t)return void console.error("Event must have relation info");const n=t.rel_type,r=e.getType();this.relationType===n&&this.eventType===r?(this._relations.delete(e),"m.annotation"===this.relationType?this._removeAnnotationFromAggregation(e):"m.replace"===this.relationType&&this._targetEvent&&this._targetEvent.makeReplaced(this.getLastReplacement()),this.emit("Relations.remove",e)):console.error("Event relation info doesn't match this container")}getRelations(){return[...this._relations]}_addAnnotationToAggregation(e){const{key:t}=e.getRelation();if(!t)return;let n=this._annotationsByKey[t];n||(n=this._annotationsByKey[t]=new Set,this._sortedAnnotationsByKey.push([t,n])),n.add(e),this._sortedAnnotationsByKey.sort((e,t)=>{const n=e[1];return t[1].size-n.size});const r=e.getSender();let i=this._annotationsBySender[r];i||(i=this._annotationsBySender[r]=new Set),i.add(e)}_removeAnnotationFromAggregation(e){const{key:t}=e.getRelation();if(!t)return;const n=this._annotationsByKey[t];n&&(n.delete(e),this._sortedAnnotationsByKey.sort((e,t)=>{const n=e[1];return t[1].size-n.size}));const r=e.getSender(),i=this._annotationsBySender[r];i&&i.delete(e)}getSortedAnnotationsByKey(){return"m.annotation"!==this.relationType?null:this._sortedAnnotationsByKey}getAnnotationsBySender(){return"m.annotation"!==this.relationType?null:this._annotationsBySender}getLastReplacement(){if("m.replace"!==this.relationType)return null;if(!this._targetEvent)return null;const e=this._targetEvent.getServerAggregatedRelation("m.replace"),t=e&&e.origin_server_ts;return this.getRelations().reduce((e,n)=>n.getSender()!==this._targetEvent.getSender()?e:t&&t>n.getTs()?e:e&&e.getTs()>n.getTs()?e:n,null)}setTargetEvent(e){if(!this._targetEvent&&(this._targetEvent=e,"m.replace"===this.relationType)){const e=this.getLastReplacement();e&&this._targetEvent.makeReplaced(e)}}}t.Relations=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RoomSummary=function(e,t){this.roomId=e,this.info=t}},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResult=s;var i=r(n(8)),o=n(287);function s(e,t){this.rank=e,this.context=t}s.fromJson=function(e,t){const n=e.context||{},r=n.events_before||[],a=n.events_after||[],c=new o.EventContext(t(e.result));return c.setPaginateToken(n.start,!0),c.addEvents(i.map(r,t),!0),c.addEvents(i.map(a,t),!1),c.setPaginateToken(n.end,!1),new s(e.rank,c)}},function(e,t,n){"use strict";function r(e){this._timeline=[e],this._ourEventIndex=0,this._paginateTokens={b:null,f:null},this._paginateRequests={b:null,f:null}}Object.defineProperty(t,"__esModule",{value:!0}),t.EventContext=r,r.prototype.getEvent=function(){return this._timeline[this._ourEventIndex]},r.prototype.getTimeline=function(){return this._timeline},r.prototype.getOurEventIndex=function(){return this._ourEventIndex},r.prototype.getPaginateToken=function(e){return this._paginateTokens[e?"b":"f"]},r.prototype.setPaginateToken=function(e,t){this._paginateTokens[t?"b":"f"]=e},r.prototype.addEvents=function(e,t){t?(this._timeline=e.concat(this._timeline),this._ourEventIndex+=e.length):this._timeline=this._timeline.concat(e)}},function(e,t,n){"use strict";function r(){this.fromToken=null}Object.defineProperty(t,"__esModule",{value:!0}),t.StubStore=r,r.prototype={isNewlyCreated:function(){return Promise.resolve(!0)},getSyncToken:function(){return this.fromToken},setSyncToken:function(e){this.fromToken=e},storeGroup:function(e){},getGroup:function(e){return null},getGroups:function(){return[]},storeRoom:function(e){},getRoom:function(e){return null},getRooms:function(){return[]},removeRoom:function(e){},getRoomSummaries:function(){return[]},storeUser:function(e){},getUser:function(e){return null},getUsers:function(){return[]},scrollback:function(e,t){return[]},storeEvents:function(e,t,n,r){},storeFilter:function(e){},getFilter:function(e,t){return null},getFilterIdByName:function(e){return null},setFilterIdByName:function(e,t){},storeAccountDataEvents:function(e){},getAccountData:function(e){},setSyncData:function(e){return Promise.resolve()},wantsSave:function(){return!1},save:function(){},startup:function(){return Promise.resolve()},getSavedSync:function(){return Promise.resolve(null)},getSavedSyncToken:function(){return Promise.resolve(null)},deleteAllData:function(){return Promise.resolve()},getOutOfBandMembers:function(){return Promise.resolve(null)},setOutOfBandMembers:function(){return Promise.resolve()},clearOutOfBandMembers:function(){return Promise.resolve()},getClientOptions:function(){return Promise.resolve()},storeClientOptions:function(){return Promise.resolve()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RoomList=void 0;var r=n(35);t.RoomList=class{constructor(e){this._cryptoStore=e,this._roomEncryption={}}async init(){await this._cryptoStore.doTxn("readwrite",[r.IndexedDBCryptoStore.STORE_ROOMS],e=>{this._cryptoStore.getEndToEndRooms(e,e=>{this._roomEncryption=e})})}getRoomEncryption(e){return this._roomEncryption[e]||null}isRoomEncrypted(e){return Boolean(this.getRoomEncryption(e))}async setRoomEncryption(e,t){this._roomEncryption[e]=t,await this._cryptoStore.doTxn("readwrite",[r.IndexedDBCryptoStore.STORE_ROOMS],n=>{this._cryptoStore.storeEndToEndRoom(e,t,n)})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalStorageCryptoStore=void 0;var r=n(5),i=n(72);function o(e){return"crypto.sessions/"+e}function s(e){return"crypto.session.problems/"+e}function a(e,t){return"crypto.inboundgroupsessions/"+e+"/"+t}function c(e,t){return"crypto.inboundgroupsessions.withheld/"+e+"/"+t}function f(e){return"crypto.rooms/"+e}class u extends i.MemoryCryptoStore{constructor(e){super(),this.store=e}static exists(e){const t=e.length;for(let n=0;ne.time-t.time),d(this.store,r,i)}async getEndToEndSessionProblem(e,t){const n=s(e),r=l(this.store,n)||[];if(!r.length)return null;const i=r[r.length-1];for(const e of r)if(e.time>t)return Object.assign({},e,{fixed:i.fixed});return i.fixed?null:i}async filterOutNotifiedErrorDevices(e){const t=l(this.store,"crypto.notified_error_devices")||{},n=[];for(const r of e){const{userId:e,deviceInfo:i}=r;e in t?i.deviceId in t[e]||(n.push(r),t[e][i.deviceId]=!0):(n.push(r),t[e]={[i.deviceId]:!0})}return d(this.store,"crypto.notified_error_devices",t),n}getEndToEndInboundGroupSession(e,t,n,r){r(l(this.store,a(e,t)),l(this.store,c(e,t)))}getAllEndToEndInboundGroupSessions(e,t){for(let e=0;e{n.push({senderKey:t,sessionId:i,sessionData:e})}),e&&r.length>=e)break}return Promise.resolve(n)}countSessionsNeedingBackup(){const e=l(this.store,"crypto.sessionsneedingbackup")||{};return Promise.resolve(Object.keys(e).length)}unmarkSessionsNeedingBackup(e){const t=l(this.store,"crypto.sessionsneedingbackup")||{};for(const n of e)delete t[n.senderKey+"/"+n.sessionId];return d(this.store,"crypto.sessionsneedingbackup",t),Promise.resolve()}markSessionsNeedingBackup(e){const t=l(this.store,"crypto.sessionsneedingbackup")||{};for(const n of e)t[n.senderKey+"/"+n.sessionId]=!0;return d(this.store,"crypto.sessionsneedingbackup",t),Promise.resolve()}deleteAllData(){return this.store.removeItem("crypto.account"),Promise.resolve()}getAccount(e,t){t(l(this.store,"crypto.account"))}storeAccount(e,t){d(this.store,"crypto.account",t)}getCrossSigningKeys(e,t){t(l(this.store,"crypto.cross_signing_keys"))}storeCrossSigningKeys(e,t){d(this.store,"crypto.cross_signing_keys",t)}doTxn(e,t,n){return Promise.resolve(n(null))}}function l(e,t){try{return JSON.parse(e.getItem(t))}catch(e){r.logger.log("Error: Failed to get key %s: %s",t,e.stack||e),r.logger.log(e.stack)}return null}function d(e,t,n){e.setItem(t,JSON.stringify(n))}t.LocalStorageCryptoStore=u},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.upgradeDatabase=function(e,t){i.logger.log(`Upgrading IndexedDBCryptoStore from version ${t}`+" to 9"),t<1&&function(e){const t=e.createObjectStore("outgoingRoomKeyRequests",{keyPath:"requestId"});t.createIndex("session",["requestBody.room_id","requestBody.session_id"]),t.createIndex("state","state")}(e);t<2&&e.createObjectStore("account");if(t<3){e.createObjectStore("sessions",{keyPath:["deviceKey","sessionId"]}).createIndex("deviceKey","deviceKey")}t<4&&e.createObjectStore("inbound_group_sessions",{keyPath:["senderCurve25519Key","sessionId"]});t<5&&e.createObjectStore("device_data");t<6&&e.createObjectStore("rooms");t<7&&e.createObjectStore("sessions_needing_backup",{keyPath:["senderCurve25519Key","sessionId"]});t<8&&e.createObjectStore("inbound_group_sessions_withheld",{keyPath:["senderCurve25519Key","sessionId"]});if(t<9){e.createObjectStore("session_problems",{keyPath:["deviceKey","time"]}).createIndex("deviceKey","deviceKey"),e.createObjectStore("notified_error_devices",{keyPath:["userId","deviceId"]})}},t.Backend=t.VERSION=void 0;var i=n(5),o=r(n(8));t.VERSION=9;function s(e,t){e._mx_abortexception=t;try{e.abort()}catch(t){}}function a(e){return new Promise((t,n)=>{e.oncomplete=()=>{void 0!==e._mx_abortexception&&n(e._mx_abortexception),t()},e.onerror=t=>{void 0!==e._mx_abortexception?n(e._mx_abortexception):(i.logger.log("Error performing indexeddb txn",t),n(t.target.error))},e.onabort=t=>{void 0!==e._mx_abortexception?n(e._mx_abortexception):(i.logger.log("Error performing indexeddb txn",t),n(t.target.error))}})}t.Backend=class{constructor(e){this._db=e,e.onversionchange=t=>{i.logger.log(`versionchange for indexeddb ${this._dbName}: closing`),e.close()}}getOrAddOutgoingRoomKeyRequest(e){const t=e.requestBody;return new Promise((n,r)=>{const o=this._db.transaction("outgoingRoomKeyRequests","readwrite");o.onerror=r,this._getOutgoingRoomKeyRequest(o,t,r=>{if(r)return i.logger.log("already have key request outstanding for "+`${t.room_id} / ${t.session_id}: `+"not sending another"),void n(r);i.logger.log(`enqueueing key request for ${t.room_id} / `+t.session_id),o.oncomplete=()=>{n(e)},o.objectStore("outgoingRoomKeyRequests").add(e)})})}getOutgoingRoomKeyRequest(e){return new Promise((t,n)=>{const r=this._db.transaction("outgoingRoomKeyRequests","readonly");r.onerror=n,this._getOutgoingRoomKeyRequest(r,e,e=>{t(e)})})}_getOutgoingRoomKeyRequest(e,t,n){e.objectStore("outgoingRoomKeyRequests").index("session").openCursor([t.room_id,t.session_id]).onsuccess=e=>{const r=e.target.result;if(!r)return void n(null);const i=r.value;o.deepCompare(i.requestBody,t)?n(i):r.continue()}}getOutgoingRoomKeyRequestByState(e){if(0===e.length)return Promise.resolve(null);let t,n=0;const r=this._db.transaction("outgoingRoomKeyRequests","readonly"),i=r.objectStore("outgoingRoomKeyRequests"),o=e[n];return i.index("state").openCursor(o).onsuccess=function r(i){const o=i.target.result;if(o)return void(t=o.value);if(n++,n>=e.length)return;const s=e[n];i.target.source.openCursor(s).onsuccess=r},a(r).then(()=>t)}getOutgoingRoomKeyRequestsByTarget(e,t,n){let r=0;const i=[];const o=this._db.transaction("outgoingRoomKeyRequests","readonly"),s=o.objectStore("outgoingRoomKeyRequests"),c=n[r];return s.index("state").openCursor(c).onsuccess=function o(s){const a=s.target.result;if(a){const n=a.value;n.recipients.includes({userId:e,deviceId:t})&&i.push(n),a.continue()}else{if(r++,r>=n.length)return;const e=n[r];s.target.source.openCursor(e).onsuccess=o}},a(o).then(()=>i)}updateOutgoingRoomKeyRequest(e,t,n){let r=null;const o=this._db.transaction("outgoingRoomKeyRequests","readwrite");return o.objectStore("outgoingRoomKeyRequests").openCursor(e).onsuccess=function(e){const o=e.target.result;if(!o)return;const s=o.value;s.state==t?(Object.assign(s,n),o.update(s),r=s):i.logger.warn(`Cannot update room key request from ${t} `+`as it was already updated to ${s.state}`)},a(o).then(()=>r)}deleteOutgoingRoomKeyRequest(e,t){const n=this._db.transaction("outgoingRoomKeyRequests","readwrite");return n.objectStore("outgoingRoomKeyRequests").openCursor(e).onsuccess=e=>{const n=e.target.result;if(!n)return;const r=n.value;r.state==t?n.delete():i.logger.warn(`Cannot delete room key request in state ${r.state} `+`(expected ${t})`)},a(n)}getAccount(e,t){const n=e.objectStore("account").get("-");n.onsuccess=function(){try{t(n.result||null)}catch(t){s(e,t)}}}storeAccount(e,t){e.objectStore("account").put(t,"-")}getCrossSigningKeys(e,t){const n=e.objectStore("account").get("crossSigningKeys");n.onsuccess=function(){try{t(n.result||null)}catch(t){s(e,t)}}}storeCrossSigningKeys(e,t){e.objectStore("account").put(t,"crossSigningKeys")}countEndToEndSessions(e,t){const n=e.objectStore("sessions").count();n.onsuccess=function(){t(n.result)}}getEndToEndSessions(e,t,n){const r=t.objectStore("sessions").index("deviceKey").openCursor(e),i={};r.onsuccess=function(){const e=r.result;if(e)i[e.value.sessionId]={session:e.value.session,lastReceivedMessageTs:e.value.lastReceivedMessageTs},e.continue();else try{n(i)}catch(e){s(t,e)}}}getEndToEndSession(e,t,n,r){const i=n.objectStore("sessions").get([e,t]);i.onsuccess=function(){try{i.result?r({session:i.result.session,lastReceivedMessageTs:i.result.lastReceivedMessageTs}):r(null)}catch(e){s(n,e)}}}getAllEndToEndSessions(e,t){const n=e.objectStore("sessions").openCursor();n.onsuccess=function(){const r=n.result;if(r)t(r.value),r.continue();else try{t(null)}catch(t){s(e,t)}}}storeEndToEndSession(e,t,n,r){r.objectStore("sessions").put({deviceKey:e,sessionId:t,session:n.session,lastReceivedMessageTs:n.lastReceivedMessageTs})}async storeEndToEndSessionProblem(e,t,n){const r=this._db.transaction("session_problems","readwrite");return r.objectStore("session_problems").put({deviceKey:e,type:t,fixed:n,time:Date.now()}),a(r)}async getEndToEndSessionProblem(e,t){let n;const r=this._db.transaction("session_problems","readwrite"),i=r.objectStore("session_problems").index("deviceKey").getAll(e);return i.onsuccess=e=>{const r=i.result;if(!r.length)return void(n=null);r.sort((e,t)=>e.time-t.time);const o=r[r.length-1];for(const e of r)if(e.time>t)return void(n=Object.assign({},e,{fixed:o.fixed}));n=o.fixed?null:o},await a(r),n}async filterOutNotifiedErrorDevices(e){const t=this._db.transaction("notified_error_devices","readwrite").objectStore("notified_error_devices"),n=[];return await Promise.all(e.map(e=>new Promise(r=>{const{userId:i,deviceInfo:o}=e,s=t.get([i,o.deviceId]);s.onsuccess=function(){s.result||(t.put({userId:i,deviceId:o.deviceId}),n.push(e)),r()}}))),n}getEndToEndInboundGroupSession(e,t,n,r){let i=!1,o=!1;const a=n.objectStore("inbound_group_sessions").get([e,t]);a.onsuccess=function(){try{i=a.result?a.result.session:null,!1!==o&&r(i,o)}catch(e){s(n,e)}};const c=n.objectStore("inbound_group_sessions_withheld").get([e,t]);c.onsuccess=function(){try{o=c.result?c.result.session:null,!1!==i&&r(i,o)}catch(e){s(n,e)}}}getAllEndToEndInboundGroupSessions(e,t){const n=e.objectStore("inbound_group_sessions").openCursor();n.onsuccess=function(){const r=n.result;if(r){try{t({senderKey:r.value.senderCurve25519Key,sessionId:r.value.sessionId,sessionData:r.value.session})}catch(t){s(e,t)}r.continue()}else try{t(null)}catch(t){s(e,t)}}}addEndToEndInboundGroupSession(e,t,n,r){const o=r.objectStore("inbound_group_sessions").add({senderCurve25519Key:e,sessionId:t,session:n});o.onerror=n=>{"ConstraintError"===o.error.name?(n.stopPropagation(),n.preventDefault(),i.logger.log("Ignoring duplicate inbound group session: "+e+" / "+t)):s(r,new Error("Failed to add inbound group session: "+o.error))}}storeEndToEndInboundGroupSession(e,t,n,r){r.objectStore("inbound_group_sessions").put({senderCurve25519Key:e,sessionId:t,session:n})}storeEndToEndInboundGroupSessionWithheld(e,t,n,r){r.objectStore("inbound_group_sessions_withheld").put({senderCurve25519Key:e,sessionId:t,session:n})}getEndToEndDeviceData(e,t){const n=e.objectStore("device_data").get("-");n.onsuccess=function(){try{t(n.result||null)}catch(t){s(e,t)}}}storeEndToEndDeviceData(e,t){t.objectStore("device_data").put(e,"-")}storeEndToEndRoom(e,t,n){n.objectStore("rooms").put(t,e)}getEndToEndRooms(e,t){const n={},r=e.objectStore("rooms").openCursor();r.onsuccess=function(){const i=r.result;if(i)n[i.key]=i.value,i.continue();else try{t(n)}catch(t){s(e,t)}}}getSessionsNeedingBackup(e){return new Promise((t,n)=>{const r=[],i=this._db.transaction(["sessions_needing_backup","inbound_group_sessions"],"readonly");i.onerror=n,i.oncomplete=function(){t(r)};const o=i.objectStore("sessions_needing_backup"),s=i.objectStore("inbound_group_sessions"),a=o.openCursor();a.onsuccess=function(){const t=a.result;if(t){const n=s.get(t.key);n.onsuccess=function(){r.push({senderKey:n.result.senderCurve25519Key,sessionId:n.result.sessionId,sessionData:n.result.session})},(!e||r.length{const r=t.count();r.onerror=n,r.onsuccess=()=>e(r.result)})}unmarkSessionsNeedingBackup(e,t){t||(t=this._db.transaction("sessions_needing_backup","readwrite"));const n=t.objectStore("sessions_needing_backup");return Promise.all(e.map(e=>new Promise((t,r)=>{const i=n.delete([e.senderKey,e.sessionId]);i.onsuccess=t,i.onerror=r})))}markSessionsNeedingBackup(e,t){t||(t=this._db.transaction("sessions_needing_backup","readwrite"));const n=t.objectStore("sessions_needing_backup");return Promise.all(e.map(e=>new Promise((t,r)=>{const i=n.put({senderCurve25519Key:e.senderKey,sessionId:e.sessionId});i.onsuccess=t,i.onerror=r})))}doTxn(e,t,n){const r=this._db.transaction(t,e),i=a(r),o=n(r);return i.then(()=>o)}}},function(e,t,n){"use strict";(function(e){var r=n(7),i=n(16);Object.defineProperty(t,"__esModule",{value:!0}),t.isCryptoAvailable=function(){return Boolean(e.Olm)},t.Crypto=x,t.verificationMethods=void 0;var o=i(n(79)),s=n(10),a=n(77),c=n(5),f=r(n(8)),u=n(137),l=r(n(21)),d=n(295),h=n(50),p=r(n(138)),m=n(139),g=n(296),y=n(297),b=n(35),_=n(298),v=n(299),A=n(141),w=n(142),E=n(81),k=n(303),S=n(304),I=r(n(48));const T=h.DeviceInfo.DeviceVerification,R={[_.ScanQRCode.NAME]:_.ScanQRCode,[_.ShowQRCode.NAME]:_.ShowQRCode,[v.SAS.NAME]:v.SAS},O={QR_CODE_SCAN:_.ScanQRCode.NAME,QR_CODE_SHOW:_.ShowQRCode.NAME,SAS:v.SAS.NAME};t.verificationMethods=O;function x(e,t,n,r,i,o,s,c){if(this._onDeviceListUserCrossSigningUpdated=this._onDeviceListUserCrossSigningUpdated.bind(this),this._reEmitter=new a.ReEmitter(this),this._baseApis=e,this._sessionStore=t,this._userId=n,this._deviceId=r,this._clientStore=i,this._cryptoStore=o,this._roomList=s,this._verificationMethods=new Map,c)for(const e of c)"string"==typeof e?R[e]&&this._verificationMethods.set(e,R[e]):e.NAME&&this._verificationMethods.set(e.NAME,e);this.backupInfo=null,this.backupKey=null,this._checkedForBackup=!1,this._sendingBackups=!1,this._olmDevice=new u.OlmDevice(o),this._deviceList=new d.DeviceList(e,o,this._olmDevice),this._deviceList.on("userCrossSigningUpdated",this._onDeviceListUserCrossSigningUpdated),this._reEmitter.reEmit(this._deviceList,["crypto.devicesUpdated"]),this._lastOneTimeKeyCheck=null,this._oneTimeKeyCheckInProgress=!1,this._roomEncryptors={},this._roomDecryptors={},this._supportedAlgorithms=f.keys(p.DECRYPTION_CLASSES),this._deviceKeys={},this._globalBlacklistUnverifiedDevices=!1,this._globalErrorOnUnknownDevices=!0,this._outgoingRoomKeyRequestManager=new y.OutgoingRoomKeyRequestManager(e,this._deviceId,this._cryptoStore),this._receivedRoomKeyRequests=[],this._receivedRoomKeyRequestCancellations=[],this._processingRoomKeyRequests=!1,this._lazyLoadMembers=!1,this._roomDeviceTrackingState={},this._lastNewSessionForced={},this._toDeviceVerificationRequests=new Map,this._inRoomVerificationRequests=new Map;const l=this._baseApis._cryptoCallbacks||{};this._crossSigningInfo=new m.CrossSigningInfo(n,l),this._secretStorage=new g.SecretStorage(e,l,this._crossSigningInfo),!l.getCrossSigningKey&&l.getSecretStorageKey&&(l.getCrossSigningKey=async e=>m.CrossSigningInfo.getFromSecretStorage(e,this._secretStorage))}function C(e){if(e._oneTimeKeyCheckInProgress)return;const t=Date.now();if(null!==e._lastOneTimeKeyCheck&&t-e._lastOneTimeKeyCheck<6e4)return;e._lastOneTimeKeyCheck=t;const n=e._olmDevice.maxNumberOfOneTimeKeys(),r=Math.floor(n/2);function i(t){if(r<=t)return Promise.resolve();const n=Math.min(r-t,5);return e._olmDevice.generateOneTimeKeys(n).then(()=>async function(e){const t=await e._olmDevice.getOneTimeKeys(),n={},r=[];for(const i in t.curve25519)if(t.curve25519.hasOwnProperty(i)){const o={key:t.curve25519[i]};n["signed_curve25519:"+i]=o,r.push(e._signObject(o))}await Promise.all(r);const i=await e._baseApis.uploadKeysRequest({one_time_keys:n},{device_id:e._deviceId});return await e._olmDevice.markKeysAsPublished(),i}(e)).then(e=>{if(e.one_time_key_counts&&e.one_time_key_counts.signed_curve25519)return i(e.one_time_key_counts.signed_curve25519);throw new Error("response for uploading keys does not contain one_time_key_counts.signed_curve25519")})}e._oneTimeKeyCheckInProgress=!0,Promise.resolve().then(()=>void 0!==e._oneTimeKeyCount?Promise.resolve(e._oneTimeKeyCount):e._baseApis.uploadKeysRequest({},{device_id:e._deviceId}).then(e=>e.one_time_key_counts.signed_curve25519||0)).then(e=>i(e)).catch(e=>{c.logger.error("Error uploading one-time keys",e.stack||e)}).finally(()=>{e._oneTimeKeyCount=void 0,e._oneTimeKeyCheckInProgress=!1})}f.inherits(x,s.EventEmitter),x.prototype.init=async function(){c.logger.log("Crypto: initialising Olm..."),await e.Olm.init(),c.logger.log("Crypto: initialising Olm device..."),await this._olmDevice.init(),c.logger.log("Crypto: loading device list..."),await this._deviceList.load(),this._deviceKeys["ed25519:"+this._deviceId]=this._olmDevice.deviceEd25519Key,this._deviceKeys["curve25519:"+this._deviceId]=this._olmDevice.deviceCurve25519Key,c.logger.log("Crypto: fetching own devices...");let t=this._deviceList.getRawStoredDevicesForUser(this._userId);if(t||(t={}),!t[this._deviceId]){c.logger.log("Crypto: adding this device to the store...");const e={keys:this._deviceKeys,algorithms:this._supportedAlgorithms,verified:T.VERIFIED,known:!0};t[this._deviceId]=e,this._deviceList.storeDevicesForUser(this._userId,t),this._deviceList.saveIfDirty()}await this._cryptoStore.doTxn("readonly",[b.IndexedDBCryptoStore.STORE_ACCOUNT],e=>{this._cryptoStore.getCrossSigningKeys(e,e=>{e&&(c.logger.log("Loaded cross-signing public keys from crypto store"),this._crossSigningInfo.setKeys(e))})}),this._deviceList.startTrackingDeviceList(this._userId),c.logger.log("Crypto: checking for key backup..."),this._checkAndStartKeyBackup()},x.prototype.createRecoveryKeyFromPassphrase=async function(t){const n=new e.Olm.PkDecryption;try{const e={};if(t){const r=await(0,A.keyFromPassphrase)(t);e.passphrase={algorithm:"m.pbkdf2",iterations:r.iterations,salt:r.salt},e.pubkey=n.init_with_private_key(r.key)}else e.pubkey=n.generate_key();const r=n.get_private_key();return[e,(0,w.encodeRecoveryKey)(r),r]}finally{n&&n.free()}},x.prototype.bootstrapSecretStorage=async function({authUploadDeviceSigningKeys:e,createSecretStorageKey:t=(async()=>{}),keyBackupInfo:n}={}){c.logger.log("Bootstrapping Secure Secret Storage");let r={};const i=Object.assign({},this._baseApis._cryptoCallbacks);try{const o=await this._crossSigningInfo.isStoredInSecretStorage(this._secretStorage);if(this._crossSigningInfo.getId()&&o?c.logger.log("Cross signing keys are present in secret storage"):(c.logger.log("Cross-signing public and/or private keys not found, checking secret storage for private keys"),o?(c.logger.log("Cross-signing private keys found in secret storage"),await this.checkOwnCrossSigningTrust()):(c.logger.log("Cross-signing private keys not found in secret storage, creating new keys"),this._baseApis._cryptoCallbacks.saveCrossSigningKeys=e=>r=e,this._baseApis._cryptoCallbacks.getCrossSigningKey=e=>r[e],await this.resetCrossSigningKeys(m.CrossSigningLevel.MASTER,{authUploadDeviceSigningKeys:e}))),await this.hasSecretStorageKey())c.logger.log("Have secret storage key");else{let e;if(n){c.logger.log("Secret storage default key not found, using key backup key");const t={pubkey:n.auth_data.public_key};n.auth_data.private_key_salt&&n.auth_data.private_key_iterations&&(t.passphrase={algorithm:"m.pbkdf2",iterations:n.auth_data.private_key_iterations,salt:n.auth_data.private_key_salt}),e=await this.addSecretStorageKey(g.SECRET_STORAGE_ALGORITHM_V1,t),this._secretStorage.storePassthrough("m.megolm_backup.v1",e),(await this.checkKeyBackup(n)).trustInfo.usable?(console.log("Adding cross signing signature to key backup"),await this._crossSigningInfo.signObject(n.auth_data,"master"),await this._baseApis._http.authedRequest(void 0,"PUT","/room_keys/version/"+n.version,void 0,n,{prefix:I.PREFIX_UNSTABLE})):console.log("Key backup is NOT TRUSTED: NOT adding cross signing signature")}else{c.logger.log("Secret storage default key not found, creating new key");const n=await t();e=await this.addSecretStorageKey(g.SECRET_STORAGE_ALGORITHM_V1,n)}await this.setDefaultSecretStorageKeyId(e)}Object.keys(r).length&&(c.logger.log("Storing cross-signing private keys in secret storage"),await this._secretStorage.signKey(),i.saveCrossSigningKeys||await m.CrossSigningInfo.storeInSecretStorage(r,this._secretStorage))}finally{this._baseApis._cryptoCallbacks=i}c.logger.log("Secure Secret Storage ready")},x.prototype.addSecretStorageKey=function(e,t,n){return this._secretStorage.addKey(e,t,n)},x.prototype.hasSecretStorageKey=function(e){return this._secretStorage.hasKey(e)},x.prototype.storeSecret=function(e,t,n){return this._secretStorage.store(e,t,n)},x.prototype.getSecret=function(e){return this._secretStorage.get(e)},x.prototype.isSecretStored=function(e,t){return this._secretStorage.isStored(e,t)},x.prototype.requestSecret=function(e,t){return t||(t=Object.keys(this._deviceList.getRawStoredDevicesForUser(this._userId))),this._secretStorage.request(e,t)},x.prototype.getDefaultSecretStorageKeyId=function(){return this._secretStorage.getDefaultKeyId()},x.prototype.setDefaultSecretStorageKeyId=function(e){return this._secretStorage.setDefaultKeyId(e)},x.prototype.checkSecretStoragePrivateKey=function(t,n){let r=null;try{return r=new e.Olm.PkDecryption,r.init_with_private_key(t)===n}finally{r&&r.free()}},x.prototype.checkCrossSigningPrivateKey=function(t,n){let r=null;try{return r=new e.Olm.PkSigning,r.init_with_seed(t)===n}finally{r&&r.free()}},x.prototype.resetCrossSigningKeys=async function(e,{authUploadDeviceSigningKeys:t=(async e=>await e())}={}){c.logger.info(`Resetting cross-signing keys at level ${e}`);const n=Object.assign({},this._crossSigningInfo.keys);try{await this._crossSigningInfo.resetKeys(e),await this._signObject(this._crossSigningInfo.keys.master);const n={};for(const[e,t]of Object.entries(this._crossSigningInfo.keys))n[e+"_key"]=t;await t(async e=>{await this._baseApis.uploadDeviceSigningKeys(e,n)}),await this._cryptoStore.doTxn("readwrite",[b.IndexedDBCryptoStore.STORE_ACCOUNT],e=>{this._cryptoStore.storeCrossSigningKeys(e,this._crossSigningInfo.keys)})}catch(e){throw c.logger.error("Resetting cross-signing keys failed, revert to previous keys",e),this._crossSigningInfo.keys=n,e}this._baseApis.emit("crossSigning.keysChanged",{}),await this._afterCrossSigningLocalKeyChange(),c.logger.info("Cross-signing key reset complete")},x.prototype._afterCrossSigningLocalKeyChange=async function(){const e=this._deviceList.getStoredDevice(this._userId,this._deviceId),t=await this._crossSigningInfo.signDevice(this._userId,e);await this._baseApis.uploadKeySignatures({[this._userId]:{[this._deviceId]:t}});const n={};for(const[e,t]of Object.entries(this._deviceList._crossSigningInfo)){const r=await this._checkForDeviceVerificationUpgrade(e,m.CrossSigningInfo.fromStorage(t,e));r&&(n[e]=r)}const r=this._baseApis._cryptoCallbacks.shouldUpgradeDeviceVerifications;if(Object.keys(n).length>0&&r)try{const e=await r({users:n});if(e)for(const t of e)t in n&&await this._baseApis.setDeviceVerified(t,n[t].crossSigningInfo.getId())}catch(e){c.logger.log("shouldUpgradeDeviceVerifications threw an error: not upgrading",e)}},x.prototype._checkForDeviceVerificationUpgrade=async function(e,t){const n=this._crossSigningInfo.checkUserTrust(t);if(t.firstUse&&!n.verified){const n=this._deviceList.getRawStoredDevicesForUser(e),r=await this._checkForValidDeviceSignature(e,t.keys.master,n);if(r.length)return{devices:r.map(e=>h.DeviceInfo.fromStorage(n[e],e)),crossSigningInfo:t}}},x.prototype._checkForValidDeviceSignature=async function(e,t,n){const r=[];if(n&&t.signatures&&t.signatures[e])for(const i of Object.keys(t.signatures[e])){const[,o]=i.split(":",2);if(o in n&&n[o].verified===T.VERIFIED)try{await l.verifySignature(this._olmDevice,t,e,o,n[o].keys[i]),r.push(o)}catch(e){}}return r},x.prototype.getCrossSigningId=function(e){return this._crossSigningInfo.getId(e)},x.prototype.getStoredCrossSigningForUser=function(e){return this._deviceList.getStoredCrossSigningForUser(e)},x.prototype.checkUserTrust=function(e){const t=this._deviceList.getStoredCrossSigningForUser(e);return t?this._crossSigningInfo.checkUserTrust(t):new m.UserTrustLevel(!1,!1)},x.prototype.checkDeviceTrust=function(e,t){const n=this._deviceList.getStoredDevice(e,t),r=n&&n.isVerified(),i=this._deviceList.getStoredCrossSigningForUser(e);return n&&i?this._crossSigningInfo.checkDeviceTrust(i,n,r):new m.DeviceTrustLevel(!1,!1,r)},x.prototype._onDeviceListUserCrossSigningUpdated=async function(e){if(e===this._userId){const t=this._deviceList.getStoredCrossSigningForUser(e),n=t?t.getId():null,r=this._crossSigningInfo.getId(),i=r!==n;r&&n&&!i?await this.checkOwnCrossSigningTrust():this.emit("crossSigning.keysChanged",{})}else await this._checkDeviceVerifications(e),this.emit("userTrustStatusChanged",e,this.checkUserTrust(e))},x.prototype.checkOwnCrossSigningTrust=async function(){const e=this._userId,t=this._deviceList.getStoredCrossSigningForUser(e);if(!t)return void c.logger.error("Got cross-signing update event for user "+e+" but no new cross-signing information found!");const n=t.getId(),r=this._crossSigningInfo.getId()!==n;if(r){c.logger.info("Got new master public key",n);let e=null;try{if(e=(await this._crossSigningInfo.getCrossSigningKey("master",n))[1],!e)throw new Error("Cross-signing master private key not available")}finally{e&&e.free()}c.logger.info("Got matching private key from callback for new public master key")}const i=this._crossSigningInfo.getId("self_signing"),o=this._crossSigningInfo.getId("user_signing");this._crossSigningInfo.setKeys(t.keys),await this._cryptoStore.doTxn("readwrite",[b.IndexedDBCryptoStore.STORE_ACCOUNT],e=>{this._cryptoStore.storeCrossSigningKeys(e,this._crossSigningInfo.keys)});const s={};if(i!==t.getId("self_signing")){c.logger.info("Got new self-signing key",t.getId("self_signing"));const e=this._deviceList.getStoredDevice(this._userId,this._deviceId),n=await this._crossSigningInfo.signDevice(this._userId,e);s[this._deviceId]=n}o!==t.getId("user_signing")&&c.logger.info("Got new user-signing key",t.getId("user_signing")),r&&(await this._signObject(this._crossSigningInfo.keys.master),s[this._crossSigningInfo.getId()]=this._crossSigningInfo.keys.master),Object.keys(s).length&&await this._baseApis.uploadKeySignatures({[this._userId]:s}),this.emit("userTrustStatusChanged",e,this.checkUserTrust(e)),r&&(this._baseApis.emit("crossSigning.keysChanged",{}),await this._afterCrossSigningLocalKeyChange()),await this.checkKeyBackup()},x.prototype._checkDeviceVerifications=async function(e){if(this._crossSigningInfo.keys.user_signing){const t=this._deviceList.getStoredCrossSigningForUser(e);if(t){const n=await this._checkForDeviceVerificationUpgrade(e,t),r=this._baseApis._cryptoCallbacks.shouldUpgradeDeviceVerifications;if(n&&r){(await r({users:{[e]:n}})).includes(e)&&await this._baseApis.setDeviceVerified(e,t.getId())}}}},x.prototype._checkAndStartKeyBackup=async function(){if(c.logger.log("Checking key backup status..."),this._baseApis.isGuest())return c.logger.log("Skipping key backup check since user is guest"),this._checkedForBackup=!0,null;let e;try{e=await this._baseApis.getKeyBackupVersion()}catch(e){return c.logger.log("Error checking for active key backup",e),e.httpStatus/100==4&&(this._checkedForBackup=!0),null}this._checkedForBackup=!0;const t=await this.isKeyBackupTrusted(e);return t.usable&&!this.backupInfo?(c.logger.log("Found usable key backup v"+e.version+": enabling key backups"),this._baseApis.enableKeyBackup(e)):!t.usable&&this.backupInfo?(c.logger.log("No usable key backup: disabling key backup"),this._baseApis.disableKeyBackup()):t.usable||this.backupInfo?t.usable&&this.backupInfo&&(e.version!==this.backupInfo.version?(c.logger.log("On backup version "+this.backupInfo.version+" but found version "+e.version+": switching."),this._baseApis.disableKeyBackup(),this._baseApis.enableKeyBackup(e)):c.logger.log("Backup version "+e.version+" still current")):c.logger.log("No usable key backup: not enabling key backup"),{backupInfo:e,trustInfo:t}},x.prototype.setTrustedBackupPubKey=async function(e){this._sessionStore.setLocalTrustedBackupPubKey(e),await this.checkKeyBackup()},x.prototype.checkKeyBackup=async function(){return this._checkedForBackup=!1,this._checkAndStartKeyBackup()},x.prototype.isKeyBackupTrusted=async function(e){const t={usable:!1,trusted_locally:!1,sigs:[]};if(!(e&&e.algorithm&&e.auth_data&&e.auth_data.public_key&&e.auth_data.signatures))return c.logger.info("Key backup is absent or missing required data"),t;const n=this._sessionStore.getLocalTrustedBackupPubKey();e.auth_data.public_key===n&&(c.logger.info("Backup public key "+n+" is trusted locally"),t.trusted_locally=!0);const r=e.auth_data.signatures[this._userId]||[];for(const n of Object.keys(r)){const r=n.split(":");if("ed25519"!==r[0]){c.logger.log("Ignoring unknown signature type: "+r[0]);continue}const i={deviceId:r[1]},o=this._crossSigningInfo.getId();if(o===i.deviceId){i.crossSigningId=!0;try{await l.verifySignature(this._olmDevice,e.auth_data,this._userId,i.deviceId,o),i.valid=!0}catch(e){c.logger.warning("Bad signature from cross signing key "+o,e),i.valid=!1}t.sigs.push(i);continue}const s=this._deviceList.getStoredDevice(this._userId,i.deviceId);if(s){i.device=s,i.deviceTrust=await this.checkDeviceTrust(this._userId,i.deviceId);try{await l.verifySignature(this._olmDevice,e.auth_data,this._userId,s.deviceId,s.getFingerprint()),i.valid=!0}catch(t){c.logger.info("Bad signature from key ID "+n+" userID "+this._userId+" device ID "+s.deviceId+" fingerprint: "+s.getFingerprint(),e.auth_data,t),i.valid=!1}}else i.valid=null,c.logger.info("Ignoring signature from unknown key "+n);t.sigs.push(i)}return t.usable=t.sigs.some(e=>e.valid&&(e.device&&e.deviceTrust.isVerified()||e.crossSigningId)),t.usable|=t.trusted_locally,t},x.prototype.enableLazyLoading=function(){this._lazyLoadMembers=!0},x.prototype.registerEventHandlers=function(e){const t=this;e.on("RoomMember.membership",(function(e,n,r){try{t._onRoomMembership(e,n,r)}catch(e){c.logger.error("Error handling membership change:",e)}})),e.on("toDeviceEvent",(function(e){t._onToDeviceEvent(e)})),e.on("Room.timeline",(function(e){t._onTimelineEvent(e)})),e.on("Event.decrypted",(function(e){t._onTimelineEvent(e)}))},x.prototype.start=function(){this._outgoingRoomKeyRequestManager.start()},x.prototype.stop=function(){this._outgoingRoomKeyRequestManager.stop(),this._deviceList.stop()},x.getOlmVersion=function(){return u.OlmDevice.getOlmVersion()},x.prototype.getDeviceEd25519Key=function(){return this._olmDevice.deviceEd25519Key},x.prototype.setGlobalBlacklistUnverifiedDevices=function(e){this._globalBlacklistUnverifiedDevices=e},x.prototype.getGlobalBlacklistUnverifiedDevices=function(){return this._globalBlacklistUnverifiedDevices},x.prototype.setGlobalErrorOnUnknownDevices=function(e){this._globalErrorOnUnknownDevices=e},x.prototype.getGlobalErrorOnUnknownDevices=function(){return this._globalErrorOnUnknownDevices},x.prototype.uploadDeviceKeys=function(){const e=this,t=e._userId,n=e._deviceId,r={algorithms:e._supportedAlgorithms,device_id:n,keys:e._deviceKeys,user_id:t};return e._signObject(r).then(()=>e._baseApis.uploadKeysRequest({device_keys:r},{device_id:n}))},x.prototype.updateOneTimeKeyCount=function(e){if(!isFinite(e))throw new TypeError("Parameter for updateOneTimeKeyCount has to be a number");this._oneTimeKeyCount=e},x.prototype.downloadKeys=function(e,t){return this._deviceList.downloadKeys(e,t)},x.prototype.getStoredDevicesForUser=function(e){return this._deviceList.getStoredDevicesForUser(e)},x.prototype.getStoredDevice=function(e,t){return this._deviceList.getStoredDevice(e,t)},x.prototype.saveDeviceList=function(e){return this._deviceList.saveIfDirty(e)},x.prototype.setDeviceVerification=async function(e,t,n,r,i){void 0===n&&(n=null),void 0===r&&(r=null),void 0===i&&(i=null);const o=this._deviceList.getStoredCrossSigningForUser(e);if(o&&o.getId()===t){if(null!==r||null!==i)throw new Error("Cannot set blocked or known for a cross-signing key");if(!n)throw new Error("Cannot set a cross-signing key as unverified");const s=await this._crossSigningInfo.signUser(o);return s&&await this._baseApis.uploadKeySignatures({[e]:{[t]:s}}),s}const s=this._deviceList.getRawStoredDevicesForUser(e);if(!s||!s[t])throw new Error("Unknown device "+e+":"+t);const a=s[t];let c=a.verified;n?c=T.VERIFIED:null!==n&&c==T.VERIFIED&&(c=T.UNVERIFIED),r?c=T.BLOCKED:null!==r&&c==T.BLOCKED&&(c=T.UNVERIFIED);let f=a.known;if(null!==i&&(f=i),a.verified===c&&a.known===f||(a.verified=c,a.known=f,this._deviceList.storeDevicesForUser(e,s),this._deviceList.saveIfDirty()),n&&e===this._userId){const n=await this._crossSigningInfo.signDevice(e,h.DeviceInfo.fromStorage(a,t));n&&await this._baseApis.uploadKeySignatures({[e]:{[t]:n}})}const u=h.DeviceInfo.fromStorage(a,t);return this.emit("deviceVerificationChanged",e,t,u),u},x.prototype.requestVerificationDM=async function(e,t,n){const r=new k.InRoomChannel(this._baseApis,t,e),i=await this._requestVerificationWithChannel(e,n,r,this._inRoomVerificationRequests);return await i.waitForVerifier()},x.prototype.acceptVerificationDM=function(e,t){if(!k.InRoomChannel.validateEvent(e,this._baseApis))return;const n=e.getSender(),r=this._inRoomVerificationRequests.get(n);if(!r)return;const i=k.InRoomChannel.getTransactionId(e),o=r.get(i);return o?o.beginKeyVerification(t):void 0},x.prototype.requestVerification=async function(e,t,n){n||(n=Object.keys(this._deviceList.getRawStoredDevicesForUser(e)));const r=new S.ToDeviceChannel(this._baseApis,e,n),i=await this._requestVerificationWithChannel(e,t,r,this._toDeviceVerificationRequests);return await i.waitForVerifier()},x.prototype._requestVerificationWithChannel=async function(e,t,n,r){t||(t=[...this._verificationMethods.keys()]);const i=new E.VerificationRequest(n,this._verificationMethods,e,this._baseApis);await i.sendRequest();let o=r.get(e);return o||(o=new Map,r.set(e,o)),o.set(n.transactionId,i),i},x.prototype.beginKeyVerification=function(e,t,n,r=null){let i,o=this._toDeviceVerificationRequests.get(t);if(o||(o=new Map,this._toDeviceVerificationRequests.set(t,o)),r)i=o.get(r);else{r=S.ToDeviceChannel.makeTransactionId();const e=new S.ToDeviceChannel(this._baseApis,t,[n],r,n);i=new E.VerificationRequest(e,this._verificationMethods,t,this._baseApis),o.set(r,i)}if(!i)throw new Error(`No request found for user ${t} with transactionId ${r}`);return i.beginKeyVerification(e,{userId:t,deviceId:n})},x.prototype.getOlmSessionsForUser=async function(e){const t=this.getStoredDevicesForUser(e)||[],n={};for(let e=0;e0)return null;const r=this._deviceList.getDeviceByIdentityKey(n,t);if(null===r)return null;const i=e.getClaimedEd25519Key();return i?i!==r.getFingerprint()?(c.logger.warn("Event "+e.getId()+" claims ed25519 key "+i+"but sender device has key "+r.getFingerprint()),null):r:(c.logger.warn("Event "+e.getId()+" claims no ed25519 key: cannot verify sending device"),null)},x.prototype.forceDiscardSession=function(e){const t=this._roomEncryptors[e];if(void 0===t)throw new Error("Room not encrypted");if(void 0===t.forceDiscardSession)throw new Error("Room encryption algorithm doesn't support session discarding");t.forceDiscardSession()},x.prototype.setRoomEncryption=async function(e,t,n){if(!t.algorithm)return void c.logger.log("Ignoring setRoomEncryption with no algorithm");const r=this._roomList.getRoomEncryption(e);if(r&&JSON.stringify(r)!=JSON.stringify(t))return void c.logger.error("Ignoring m.room.encryption event which requests a change of config in "+e);if(this._roomEncryptors[e])return;let i=null;r||(i=this._roomList.setRoomEncryption(e,t));const o=p.ENCRYPTION_CLASSES[t.algorithm];if(!o)throw new Error("Unable to encrypt with "+t.algorithm);const s=new o({userId:this._userId,deviceId:this._deviceId,crypto:this,olmDevice:this._olmDevice,baseApis:this._baseApis,roomId:e,config:t});this._roomEncryptors[e]=s,i&&await i,this._lazyLoadMembers?c.logger.log("Enabling encryption in "+e):(c.logger.log("Enabling encryption in "+e+"; starting to track device lists for all users therein"),await this.trackRoomDevices(e),this.inhibitDeviceQuery||this._deviceList.refreshOutdatedDeviceLists())},x.prototype.trackRoomDevices=function(e){const t=async()=>{if(!this._roomEncryptors[e])return;const t=this._clientStore.getRoom(e);if(!t)throw new Error(`Unable to start tracking devices in unknown room ${e}`);c.logger.log(`Starting to track devices for room ${e} ...`),(await t.getEncryptionTargetMembers()).forEach(e=>{this._deviceList.startTrackingDeviceList(e.userId)})};let n=this._roomDeviceTrackingState[e];return n||(n=t(),this._roomDeviceTrackingState[e]=n),n},x.prototype.ensureOlmSessionsForUsers=function(e){const t={};for(let n=0;n{this._cryptoStore.getAllEndToEndInboundGroupSessions(t,t=>{if(null===t)return;const n=this._olmDevice.exportInboundGroupSession(t.senderKey,t.sessionId,t.sessionData);delete n.first_known_index,n.algorithm=l.MEGOLM_ALGORITHM,e.push(n)})}),e},x.prototype.importRoomKeys=function(e){return Promise.all(e.map(e=>{if(!e.room_id||!e.algorithm)return c.logger.warn("ignoring room key entry with missing fields",e),null;return this._getRoomDecryptor(e.room_id,e.algorithm).importRoomKey(e)}))},x.prototype.scheduleKeyBackupSend=async function(e=1e4){if(!this._sendingBackups){this._sendingBackups=!0;try{const t=Math.random()*e;await(0,f.sleep)(t);let n=0;for(;;){if(!this.backupKey)return;try{if(0===await this._backupPendingKeys(200))return;n=0}catch(e){if(n++,c.logger.log("Key backup request failed",e),e.data&&("M_NOT_FOUND"==e.data.errcode||"M_WRONG_ROOM_KEYS_VERSION"==e.data.errcode))throw await this.checkKeyBackup(),this.emit("crypto.keyBackupFailed",e.data.errcode),e}n&&await(0,f.sleep)(1e3*Math.pow(2,Math.min(n-1,4)))}}finally{this._sendingBackups=!1}}},x.prototype._backupPendingKeys=async function(e){const t=await this._cryptoStore.getSessionsNeedingBackup(e);if(!t.length)return 0;let n=await this._cryptoStore.countSessionsNeedingBackup();this.emit("crypto.keyBackupSessionsRemaining",n);const r={};for(const e of t){const t=e.sessionData.room_id;void 0===r[t]&&(r[t]={sessions:{}});const n=await this._olmDevice.exportInboundGroupSession(e.senderKey,e.sessionId,e.sessionData);n.algorithm=l.MEGOLM_ALGORITHM,delete n.session_id,delete n.room_id;const i=n.first_known_index;delete n.first_known_index;const o=this.backupKey.encrypt(JSON.stringify(n)),s=(n.forwarding_curve25519_key_chain||[]).length,a=this._deviceList.getDeviceByIdentityKey(l.MEGOLM_ALGORITHM,e.senderKey);r[t].sessions[e.sessionId]={first_message_index:i,forwarded_count:s,is_verified:!(!a||!a.isVerified()),session_data:o}}return await this._baseApis.sendKeyBackup(void 0,void 0,this.backupInfo.version,{rooms:r}),await this._cryptoStore.unmarkSessionsNeedingBackup(t),n=await this._cryptoStore.countSessionsNeedingBackup(),this.emit("crypto.keyBackupSessionsRemaining",n),t.length},x.prototype.backupGroupSession=async function(e,t,n,r,i,o,s){if(!this.backupInfo)throw new Error("Key backups are not enabled");await this._cryptoStore.markSessionsNeedingBackup([{senderKey:t,sessionId:r}]),this.scheduleKeyBackupSend()},x.prototype.scheduleAllGroupSessionsForBackup=async function(){await this.flagAllGroupSessionsForBackup(),this.scheduleKeyBackupSend(0)},x.prototype.flagAllGroupSessionsForBackup=async function(){await this._cryptoStore.doTxn("readwrite",[b.IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,b.IndexedDBCryptoStore.STORE_BACKUP],e=>{this._cryptoStore.getAllEndToEndInboundGroupSessions(e,t=>{null!==t&&this._cryptoStore.markSessionsNeedingBackup([t],e)})});const e=await this._cryptoStore.countSessionsNeedingBackup();return this.emit("crypto.keyBackupSessionsRemaining",e),e},x.prototype.encryptEvent=async function(e,t){if(!t)throw new Error("Cannot send encrypted messages in unknown rooms");const n=e.getRoomId(),r=this._roomEncryptors[n];if(!r)throw new Error("Room was previously configured to use encryption, but is no longer. Perhaps the homeserver is hiding the configuration event.");this._roomDeviceTrackingState[n]||this.trackRoomDevices(n),await this._roomDeviceTrackingState[n];let i=e.getContent();const o=i["m.relates_to"];o&&(i=Object.assign({},i),delete i["m.relates_to"]);const s=await r.encryptMessage(t,e.getType(),i);o&&(s["m.relates_to"]=o),e.makeEncrypted("m.room.encrypted",s,this._olmDevice.deviceCurve25519Key,this._olmDevice.deviceEd25519Key)},x.prototype.decryptEvent=function(e){if(e.isRedacted())return Promise.resolve({clearEvent:{room_id:e.getRoomId(),type:"m.room.message",content:{}}});const t=e.getWireContent();return this._getRoomDecryptor(e.getRoomId(),t.algorithm).decryptEvent(e)},x.prototype.handleDeviceListChanges=async function(e,t){e.oldSyncToken&&await this._evalDeviceListChanges(t)},x.prototype.requestRoomKey=function(e,t,n=!1){return this._outgoingRoomKeyRequestManager.sendRoomKeyRequest(e,t,n).catch(e=>{c.logger.error("Error requesting key for event",e)})},x.prototype.cancelRoomKeyRequest=function(e){this._outgoingRoomKeyRequestManager.cancelRoomKeyRequest(e).catch(e=>{c.logger.warn("Error clearing pending room key requests",e)})},x.prototype.onCryptoEvent=async function(e){const t=e.getRoomId(),n=e.getContent();try{await this.setRoomEncryption(t,n,!0)}catch(e){c.logger.error("Error configuring encryption in room "+t+":",e)}},x.prototype.onSyncWillProcess=async function(e){e.oldSyncToken||(c.logger.log("Initial sync performed - resetting device tracking state"),this._deviceList.stopTrackingAllDeviceLists(),this._deviceList.startTrackingDeviceList(this._userId),this._roomDeviceTrackingState={})},x.prototype.onSyncCompleted=async function(e){const t=e.nextSyncToken;this._deviceList.setSyncToken(e.nextSyncToken),this._deviceList.saveIfDirty(),this._deviceList.lastKnownSyncToken=t,this._deviceList.startTrackingDeviceList(this._userId),this._deviceList.refreshOutdatedDeviceLists(),e.catchingUp||(C(this),this._processReceivedRoomKeyRequests())},x.prototype._evalDeviceListChanges=async function(e){if(e.changed&&Array.isArray(e.changed)&&e.changed.forEach(e=>{this._deviceList.invalidateUserDeviceList(e)}),e.left&&Array.isArray(e.left)&&e.left.length){const t=new Set(await this._getTrackedE2eUsers());e.left.forEach(e=>{t.has(e)||this._deviceList.stopTrackingDeviceList(e)})}},x.prototype._getTrackedE2eUsers=async function(){const e=[];for(const t of this._getTrackedE2eRooms()){const n=await t.getEncryptionTargetMembers();for(const t of n)e.push(t.userId)}return e},x.prototype._getTrackedE2eRooms=function(){return this._clientStore.getRooms().filter(e=>{if(!this._roomEncryptors[e.roomId])return!1;if(!this._roomDeviceTrackingState[e.roomId])return!1;const t=e.getMyMembership();return"join"===t||"invite"===t})},x.prototype._onToDeviceEvent=function(e){try{c.logger.log(`received to_device ${e.getType()} from: `+`${e.getSender()} id: ${e.getId()}`),"m.room_key"==e.getType()||"m.forwarded_room_key"==e.getType()?this._onRoomKeyEvent(e):"m.room_key_request"==e.getType()?this._onRoomKeyRequestEvent(e):"m.secret.request"===e.getType()?this._secretStorage._onRequestReceived(e):"m.secret.send"===e.getType()?this._secretStorage._onSecretReceived(e):"org.matrix.room_key.withheld"===e.getType()?this._onRoomKeyWithheldEvent(e):e.getContent().transaction_id?this._onKeyVerificationMessage(e):"m.bad.encrypted"===e.getContent().msgtype?this._onToDeviceBadEncrypted(e):e.isBeingDecrypted()&&e.once("Event.decrypted",e=>{this._onToDeviceEvent(e)})}catch(e){c.logger.error("Error handling toDeviceEvent:",e)}},x.prototype._onRoomKeyEvent=function(e){const t=e.getContent();t.room_id&&t.algorithm?(this._checkedForBackup||this._checkAndStartKeyBackup(),this._getRoomDecryptor(t.room_id,t.algorithm).onRoomKeyEvent(e)):c.logger.error("key event is missing fields")},x.prototype._onRoomKeyWithheldEvent=function(e){const t=e.getContent();if(!(("m.no_olm"===t.code||t.room_id&&t.session_id)&&t.algorithm&&t.sender_key))return void c.logger.error("key withheld event is missing fields");c.logger.info(`Got room key withheld event from ${e.getSender()} (${t.sender_key}) `+`for ${t.algorithm}/${t.room_id}/${t.session_id} `+`with reason ${t.code} (${t.reason})`);const n=this._getRoomDecryptor(t.room_id,t.algorithm);if(n.onRoomKeyWithheldEvent&&n.onRoomKeyWithheldEvent(e),!t.room_id){const e=this._getRoomDecryptors(t.algorithm);for(const n of e)n.retryDecryptionFromSender(t.sender_key)}},x.prototype._onKeyVerificationMessage=function(e){if(!S.ToDeviceChannel.validateEvent(e,this._baseApis))return;const t=S.ToDeviceChannel.getTransactionId(e);this._handleVerificationEvent(e,t,this._toDeviceVerificationRequests,e=>{if(!S.ToDeviceChannel.canCreateRequest(S.ToDeviceChannel.getEventType(e)))return;const t=e.getContent(),n=t&&t.from_device;if(!n)return;const r=e.getSender(),i=new S.ToDeviceChannel(this._baseApis,r,[n]);return new E.VerificationRequest(i,this._verificationMethods,r,this._baseApis)})},x.prototype._onTimelineEvent=function(e){if(!k.InRoomChannel.validateEvent(e,this._baseApis))return;const t=k.InRoomChannel.getTransactionId(e);this._handleVerificationEvent(e,t,this._inRoomVerificationRequests,e=>{if(!k.InRoomChannel.canCreateRequest(k.InRoomChannel.getEventType(e)))return;const t=e.getSender(),n=new k.InRoomChannel(this._baseApis,e.getRoomId(),t);return new E.VerificationRequest(n,this._verificationMethods,t,this._baseApis)})},x.prototype._handleVerificationEvent=async function(e,t,n,r){const i=e.getSender();let o=n.get(i),s=!1,a=o&&o.get(t);if(!a){if(a=r(e),!a)return;s=!0,o||(o=new Map,n.set(i,o)),o.set(t,a)}try{const t=!!a.verifier;await a.channel.handleEvent(e,a),!t&&a.verifier&&this._baseApis.emit("crypto.verification.start",a.verifier)}catch(t){console.error("error while handling verification event",e,t)}a.pending?s&&!a.initiatedByMe&&this._baseApis.emit("crypto.verification.request",a):(o.delete(t),0===o.size&&n.delete(i))},x.prototype._onToDeviceBadEncrypted=async function(e){const t=e.getWireContent(),n=e.getSender(),r=t.algorithm,i=t.sender_key,o=()=>{const e=this._getRoomDecryptors(l.MEGOLM_ALGORITHM);for(const t of e)t.retryDecryptionFromSender(i)};if(void 0===n||void 0===i||void 0===i)return;this._lastNewSessionForced[n]=this._lastNewSessionForced[n]||{};const s=this._lastNewSessionForced[n][i]||0;if(s+36e5>Date.now())return c.logger.debug("New session already forced with device "+n+":"+i+" at "+s+": not forcing another"),await this._olmDevice.recordSessionProblem(i,"wedged",!0),void o();const a=this._deviceList.getDeviceByIdentityKey(r,i);if(!a)return c.logger.info("Couldn't find device for identity key "+i+": not re-establishing session"),await this._olmDevice.recordSessionProblem(i,"wedged",!1),void o();const f={};f[n]=[a],await l.ensureOlmSessionsForDevices(this._olmDevice,this._baseApis,f,!0),this._lastNewSessionForced[n][i]=Date.now();const u={algorithm:l.OLM_ALGORITHM,sender_key:this._olmDevice.deviceCurve25519Key,ciphertext:{}};await l.encryptMessageForDevice(u.ciphertext,this._userId,this._deviceId,this._olmDevice,n,a,{type:"m.dummy"}),await this._olmDevice.recordSessionProblem(i,"wedged",!0),o(),await this._baseApis.sendToDevice("m.room.encrypted",{[n]:{[a.deviceId]:u}});const d=await this._outgoingRoomKeyRequestManager.getOutgoingSentRoomKeyRequest(n,a.deviceId);for(const e of d)this.requestRoomKey(e.requestBody,e.recipients,!0)},x.prototype._onRoomMembership=function(e,t,n){const r=t.roomId,i=this._roomEncryptors[r];i&&(this._roomDeviceTrackingState[r]&&("join"==t.membership?(c.logger.log("Join event for "+t.userId+" in "+r),this._deviceList.startTrackingDeviceList(t.userId)):"invite"==t.membership&&this._clientStore.getRoom(r).shouldEncryptForInvitedMembers()&&(c.logger.log("Invite event for "+t.userId+" in "+r),this._deviceList.startTrackingDeviceList(t.userId))),i.onRoomMembership(e,t,n))},x.prototype._onRoomKeyRequestEvent=function(e){const t=e.getContent();if("request"===t.action){const t=new P(e);this._receivedRoomKeyRequests.push(t)}else if("request_cancellation"===t.action){const t=new M(e);this._receivedRoomKeyRequestCancellations.push(t)}},x.prototype._processReceivedRoomKeyRequests=async function(){if(!this._processingRoomKeyRequests){this._processingRoomKeyRequests=!0;try{const e=this._receivedRoomKeyRequests;this._receivedRoomKeyRequests=[];const t=this._receivedRoomKeyRequestCancellations;this._receivedRoomKeyRequestCancellations=[],await Promise.all(e.map(e=>this._processReceivedRoomKeyRequest(e))),await Promise.all(t.map(e=>this._processReceivedRoomKeyRequestCancellation(e)))}catch(e){c.logger.error(`Error processing room key requsts: ${e}`)}finally{this._processingRoomKeyRequests=!1}}},x.prototype._processReceivedRoomKeyRequest=async function(e){const t=e.userId,n=e.deviceId,r=e.requestBody,i=r.room_id,o=r.algorithm;if(c.logger.log(`m.room_key_request from ${t}:${n}`+` for ${i} / ${r.session_id} (id ${e.requestId})`),t!==this._userId){if(!this._roomEncryptors[i])return void c.logger.debug(`room key request for unencrypted room ${i}`);const e=this._roomEncryptors[i],o=this._deviceList.getStoredDevice(t,n);if(!o)return void c.logger.debug(`Ignoring keyshare for unknown device ${t}:${n}`);try{await e.reshareKeyWithDevice(r.sender_key,r.session_id,t,o)}catch(e){c.logger.warn("Failed to re-share keys for session "+r.session_id+" with device "+t+":"+o.deviceId,e)}return}if(!this._roomDecryptors[i])return void c.logger.log(`room key request for unencrypted room ${i}`);const s=this._roomDecryptors[i][o];if(!s)return void c.logger.log(`room key request for unknown alg ${o} in room ${i}`);if(!await s.hasKeysForKeyRequest(e))return void c.logger.log(`room key request for unknown session ${i} / `+r.session_id);e.share=()=>{s.shareKeysWithDevice(e)};const a=this._deviceList.getStoredDevice(t,n);if(a&&a.isVerified())return c.logger.log("device is already verified: sharing keys"),void e.share();this.emit("crypto.roomKeyRequest",e)},x.prototype._processReceivedRoomKeyRequestCancellation=async function(e){c.logger.log(`m.room_key_request cancellation for ${e.userId}:`+`${e.deviceId} (id ${e.requestId})`),this.emit("crypto.roomKeyRequestCancellation",e)},x.prototype._getRoomDecryptor=function(e,t){let n,r;if((e=e||null)&&(n=this._roomDecryptors[e],n||(this._roomDecryptors[e]=n={}),r=n[t],r))return r;const i=p.DECRYPTION_CLASSES[t];if(!i)throw new p.DecryptionError("UNKNOWN_ENCRYPTION_ALGORITHM",'Unknown encryption algorithm "'+t+'".');return r=new i({userId:this._userId,crypto:this,olmDevice:this._olmDevice,baseApis:this._baseApis,roomId:e}),n&&(n[t]=r),r},x.prototype._getRoomDecryptors=function(e){const t=[];for(const n of Object.values(this._roomDecryptors))e in n&&t.push(n[e]);return t},x.prototype._signObject=async function(e){const t=e.signatures||{},n=e.unsigned;delete e.signatures,delete e.unsigned,t[this._userId]=t[this._userId]||{},t[this._userId]["ed25519:"+this._deviceId]=await this._olmDevice.sign(o.default.stringify(e)),e.signatures=t,void 0!==n&&(e.unsigned=n)};class P{constructor(e){const t=e.getContent();this.userId=e.getSender(),this.deviceId=t.requesting_device_id,this.requestId=t.request_id,this.requestBody=t.body||{},this.share=()=>{throw new Error("don't know how to share keys for this request yet")}}}class M{constructor(e){const t=e.getContent();this.userId=e.getSender(),this.deviceId=t.requesting_device_id,this.requestId=t.request_id}}}).call(this,n(6))},function(e,t,n){"use strict";var r=n(7),i=n(5),o=r(n(8)),s=r(n(21)),a=n(50),c=n(80);const f=a.DeviceInfo.DeviceVerification;function u(e){(0,o.polyfillSuper)(this,c.EncryptionAlgorithm,e),this._sessionPrepared=!1,this._prepPromise=null}function l(e){(0,o.polyfillSuper)(this,c.DecryptionAlgorithm,e)}o.inherits(u,c.EncryptionAlgorithm),u.prototype._ensureSession=function(e){if(this._prepPromise)return this._prepPromise;if(this._sessionPrepared)return Promise.resolve();const t=this;return this._prepPromise=t._crypto.downloadKeys(e).then((function(n){return t._crypto.ensureOlmSessionsForUsers(e)})).then((function(){t._sessionPrepared=!0})).finally((function(){t._prepPromise=null})),this._prepPromise},u.prototype.encryptMessage=async function(e,t,n){const r=await e.getEncryptionTargetMembers(),i=o.map(r,(function(e){return e.userId})),a=this;await this._ensureSession(i);const c={room_id:e.roomId,type:t,content:n},u={algorithm:s.OLM_ALGORITHM,sender_key:a._olmDevice.deviceCurve25519Key,ciphertext:{}},l=[];for(let e=0;eu)},o.inherits(l,c.DecryptionAlgorithm),l.prototype.decryptEvent=async function(e){const t=e.getWireContent(),n=t.sender_key,r=t.ciphertext;if(!r)throw new c.DecryptionError("OLM_MISSING_CIPHERTEXT","Missing ciphertext");if(!(this._olmDevice.deviceCurve25519Key in r))throw new c.DecryptionError("OLM_NOT_INCLUDED_IN_RECIPIENTS","Not included in recipients");const i=r[this._olmDevice.deviceCurve25519Key];let o;try{o=await this._decryptMessage(n,i)}catch(e){throw new c.DecryptionError("OLM_BAD_ENCRYPTED_MESSAGE","Bad Encrypted Message",{sender:n,err:e})}const s=JSON.parse(o);if(s.recipient!=this._userId)throw new c.DecryptionError("OLM_BAD_RECIPIENT","Message was intented for "+s.recipient);if(s.recipient_keys.ed25519!=this._olmDevice.deviceEd25519Key)throw new c.DecryptionError("OLM_BAD_RECIPIENT_KEY","Message not intended for this device",{intended:s.recipient_keys.ed25519,our_key:this._olmDevice.deviceEd25519Key});if(s.sender!=e.getSender())throw new c.DecryptionError("OLM_FORWARDED_MESSAGE","Message forwarded from "+s.sender,{reported_sender:e.getSender()});if(s.room_id!==e.getRoomId())throw new c.DecryptionError("OLM_BAD_ROOM","Message intended for room "+s.room_id,{reported_room:e.room_id});return{clearEvent:s,senderCurve25519Key:n,claimedEd25519Key:(s.keys||{}).ed25519||null}},l.prototype._decryptMessage=async function(e,t){const n=await this._olmDevice.getSessionIdsForDevice(e),r={};for(let o=0;o=e||n>=t)&&(i.logger.log("Rotating megolm session after "+this.useCount+" messages, "+n+"ms"),!0)},f.prototype.markSharedWithDevice=function(e,t,n){this.sharedWithDevices[e]||(this.sharedWithDevices[e]={}),this.sharedWithDevices[e][t]=n},f.prototype.markNotifiedBlockedDevice=function(e,t){this.blockedDevicesNotified[e]||(this.blockedDevicesNotified[e]={}),this.blockedDevicesNotified[e][t]=!0},f.prototype.sharedWithTooManyDevices=function(e){for(const t in this.sharedWithDevices)if(this.sharedWithDevices.hasOwnProperty(t)){if(!e.hasOwnProperty(t))return i.logger.log("Starting new megolm session because we shared with "+t),!0;for(const n in this.sharedWithDevices[t])if(this.sharedWithDevices[t].hasOwnProperty(n)&&!e[t].hasOwnProperty(n))return i.logger.log("Starting new megolm session because we shared with "+t+":"+n),!0}},o.inherits(u,a.EncryptionAlgorithm),u.prototype._ensureOutboundSession=async function(e,t){const n=this;let r;function o(){return r}const s=this._setupPromise.then((async function(o){r=o,r&&r.needsRotation(n._sessionRotationPeriodMsgs,n._sessionRotationPeriodMs)&&(i.logger.log("Starting new megolm session because we need to rotate."),r=null),r&&r.sharedWithTooManyDevices(e)&&(r=null),r||(i.logger.log(`Starting new megolm session for room ${n._roomId}`),r=await n._prepareNewSession(),i.logger.log(`Started new megolm session ${r.sessionId} `+`for room ${n._roomId}`),n._outboundSessions[r.sessionId]=r);const s={};for(const t in e){if(!e.hasOwnProperty(t))continue;const i=e[t];for(const e in i){if(!i.hasOwnProperty(e))continue;const o=i[e];o.getIdentityKey()!=n._olmDevice.deviceCurve25519Key&&(r.sharedWithDevices[t]&&void 0!==r.sharedWithDevices[t][e]||(s[t]=s[t]||[],s[t].push(o)))}}const a=[];await n._shareKeyWithDevices(r,s,a);const f={};for(const e in t){if(!t.hasOwnProperty(e))continue;const n=t[e];for(const t in n)n.hasOwnProperty(t)&&(r.blockedDevicesNotified[e]&&void 0!==r.blockedDevicesNotified[e][t]||(f[e]=f[e]||[],f[e].push(n[t])))}const u=await n._olmDevice.filterOutNotifiedErrorDevices(a);for(const{userId:e,deviceInfo:t}of u)f[e]=f[e]||[],f[e].push({code:"m.no_olm",reason:c.WITHHELD_MESSAGES["m.no_olm"],deviceInfo:t});await n._notifyBlockedDevices(r,f)}));return this._setupPromise=s.then(o,o),s.then(o)},u.prototype._prepareNewSession=async function(){const e=this._olmDevice.createOutboundGroupSession(),t=this._olmDevice.getOutboundGroupSessionKey(e);return await this._olmDevice.addInboundGroupSession(this._roomId,this._olmDevice.deviceCurve25519Key,[],e,t.key,{ed25519:this._olmDevice.deviceEd25519Key}),this._crypto.backupInfo&&this._crypto.backupGroupSession(this._roomId,this._olmDevice.deviceCurve25519Key,[],e,t.key).catch(e=>{i.logger.log("Failed to back up megolm session",e)}),new f(e)},u.prototype._splitUserDeviceMap=function(e,t,n,r,o){const s=[];let a=0,c=0;for(const f of Object.keys(r)){const u=r[f],l=n[f];for(let n=0;n20&&(c=0,a++)}return s},u.prototype._splitBlockedDevices=function(e){let t=[];const n=[t];for(const r of Object.keys(e)){const i=e[r];for(const e of i)t.push({userId:r,blockedInfo:e});t.length>20&&(t=[],n.push(t))}return 0===t.length&&n.pop(),n},u.prototype._encryptAndSendKeysToDevices=function(e,t,n,r){const i={},o=[];for(let e=0;ethis._baseApis.sendToDevice("m.room.encrypted",i).then(()=>{for(const n of Object.keys(i))for(const r of Object.keys(i[n]))e.markSharedWithDevice(n,r,t)}))},u.prototype._sendBlockedNotificationsToDevices=async function(e,t,n){const r={};for(const e of t){const t=e.userId,i=e.blockedInfo,o=i.deviceInfo.deviceId,s=Object.assign({},n);s.code=i.code,s.reason=i.reason,"m.no_olm"===s.code&&(delete s.room_id,delete s.session_id),r[t]||(r[t]={}),r[t][o]=s}await this._baseApis.sendToDevice("org.matrix.room_key.withheld",r);for(const t of Object.keys(r))for(const n of Object.keys(r[t]))e.markNotifiedBlockedDevice(t,n)},u.prototype.reshareKeyWithDevice=async function(e,t,n,r){const o=this._outboundSessions[t];if(!o)return void i.logger.debug(`megolm session ${t} not found: not re-sharing keys`);if(void 0===o.sharedWithDevices[n])return void i.logger.debug(`megolm session ${t} never shared with user ${n}`);const a=o.sharedWithDevices[n][r.deviceId];if(void 0===a)return void i.logger.debug("megolm session ID "+t+" never shared with device "+n+":"+r.deviceId);const c=await this._olmDevice.getInboundGroupSessionKey(this._roomId,e,t,a);if(!c)return void i.logger.warn(`No inbound session key found for megolm ${t}: not re-sharing keys`);await s.ensureOlmSessionsForDevices(this._olmDevice,this._baseApis,{[n]:{[r.deviceId]:r}});const f={type:"m.forwarded_room_key",content:{algorithm:s.MEGOLM_ALGORITHM,room_id:this._roomId,session_id:t,session_key:c.key,chain_index:c.chain_index,sender_key:e,sender_claimed_ed25519_key:c.sender_claimed_ed25519_key,forwarding_curve25519_key_chain:c.forwarding_curve25519_key_chain}},u={algorithm:s.OLM_ALGORITHM,sender_key:this._olmDevice.deviceCurve25519Key,ciphertext:{}};await s.encryptMessageForDevice(u.ciphertext,this._userId,this._deviceId,this._olmDevice,n,r,f),await this._baseApis.sendToDevice("m.room.encrypted",{[n]:{[r.deviceId]:u}}),i.logger.debug(`Re-shared key for megolm session ${t} `+`with ${n}:${r.deviceId}`)},u.prototype._shareKeyWithDevices=async function(e,t,n){const r=this._olmDevice.getOutboundGroupSessionKey(e.sessionId),o={type:"m.room_key",content:{algorithm:s.MEGOLM_ALGORITHM,room_id:this._roomId,session_id:e.sessionId,session_key:r.key,chain_index:r.chain_index}},a=await s.ensureOlmSessionsForDevices(this._olmDevice,this._baseApis,t),c=this._splitUserDeviceMap(e,r.chain_index,a,t,n);for(let t=0;tnull)},u.prototype._checkForUnknownDevices=function(e){const t={};if(Object.keys(e).forEach(n=>{Object.keys(e[n]).forEach(r=>{const i=e[n][r];i.isUnverified()&&!i.isKnown()&&(t[n]||(t[n]={}),t[n][r]=i)})}),Object.keys(t).length)throw new a.UnknownDeviceError("This room contains unknown devices which have not been verified. We strongly recommend you verify them before continuing.",t)},u.prototype._getDevicesInRoom=async function(e){const t=await e.getEncryptionTargetMembers(),n=o.map(t,(function(e){return e.userId}));let r=this._crypto.getGlobalBlacklistUnverifiedDevices();"boolean"==typeof e.getBlacklistUnverifiedDevices()&&(r=e.getBlacklistUnverifiedDevices());const i=await this._crypto.downloadKeys(n,!1),s={};for(const e in i){if(!i.hasOwnProperty(e))continue;const t=i[e];for(const n in t)if(t.hasOwnProperty(n)&&(t[n].isBlocked()||t[n].isUnverified()&&r)){s[e]||(s[e]={});const r=t[n].isBlocked()?{code:"m.blacklisted",reason:c.WITHHELD_MESSAGES["m.blacklisted"]}:{code:"m.unverified",reason:c.WITHHELD_MESSAGES["m.unverified"]};r.deviceInfo=t[n],s[e][n]=r,delete t[n]}}return[i,s]},o.inherits(l,a.DecryptionAlgorithm);const d={no_olm:"The sender was unable to establish a secure channel.",unknown:"The secure channel with the sender was corrupted."};l.prototype.decryptEvent=async function(e){const t=e.getWireContent();if(!t.sender_key||!t.session_id||!t.ciphertext)throw new a.DecryptionError("MEGOLM_MISSING_FIELDS","Missing fields in input");let n;this._addEventToPendingList(e);try{n=await this._olmDevice.decryptGroupMessage(e.getRoomId(),t.sender_key,t.session_id,t.ciphertext,e.getId(),e.getTs())}catch(n){if("DecryptionError"===n.name)throw n;let r="OLM_DECRYPT_GROUP_MESSAGE_ERROR";throw n&&"OLM.UNKNOWN_MESSAGE_INDEX"===n.message&&(this._requestKeysForEvent(e),r="OLM_UNKNOWN_MESSAGE_INDEX"),new a.DecryptionError(r,n?n.toString():"Unknown Error: Error is undefined",{session:t.sender_key+"|"+t.session_id})}if(null===n){this._requestKeysForEvent(e);const n=await this._olmDevice.sessionMayHaveProblems(t.sender_key,e.getTs()-12e4);if(n){let e=d[n.type]||d.unknown;throw n.fixed&&(e+=" Trying to create a new secure channel and re-requesting the keys."),new a.DecryptionError("MEGOLM_UNKNOWN_INBOUND_SESSION_ID",e,{session:t.sender_key+"|"+t.session_id})}throw new a.DecryptionError("MEGOLM_UNKNOWN_INBOUND_SESSION_ID","The sender's device has not sent us the keys for this message.",{session:t.sender_key+"|"+t.session_id})}this._removeEventFromPendingList(e);const r=JSON.parse(n.result);if(r.room_id!==e.getRoomId())throw new a.DecryptionError("MEGOLM_BAD_ROOM","Message intended for room "+r.room_id);return{clearEvent:r,senderCurve25519Key:n.senderKey,claimedEd25519Key:n.keysClaimed.ed25519,forwardingCurve25519KeyChain:n.forwardingCurve25519KeyChain}},l.prototype._requestKeysForEvent=function(e){const t=e.getWireContent(),n=e.getKeyRequestRecipients(this._userId);this._crypto.requestRoomKey({room_id:e.getRoomId(),algorithm:t.algorithm,sender_key:t.sender_key,session_id:t.session_id},n)},l.prototype._addEventToPendingList=function(e){const t=e.getWireContent(),n=t.sender_key,r=t.session_id;this._pendingEvents[n]||(this._pendingEvents[n]=new Map);const i=this._pendingEvents[n];i.has(r)||i.set(r,new Set),i.get(r).add(e)},l.prototype._removeEventFromPendingList=function(e){const t=e.getWireContent(),n=t.sender_key,r=t.session_id,i=this._pendingEvents[n],o=i&&i.get(r);o&&(o.delete(e),0===o.size&&i.delete(n),0===i.size&&delete this._pendingEvents[n])},l.prototype.onRoomKeyEvent=function(e){const t=e.getContent(),n=t.session_id;let r,s=e.getSenderKey(),a=[],c=!1;if(t.room_id&&n&&t.session_key){if(s){if("m.forwarded_room_key"==e.getType()){if(c=!0,a=t.forwarding_curve25519_key_chain,o.isArray(a)||(a=[]),a=a.slice(),a.push(s),s=t.sender_key,!s)return void i.logger.error("forwarded_room_key event is missing sender_key field");const e=t.sender_claimed_ed25519_key;if(!e)return void i.logger.error("forwarded_room_key_event is missing sender_claimed_ed25519_key field");r={ed25519:e}}else r=e.getKeysClaimed();return i.logger.log(`Received and adding key for megolm session ${s}|${n}`),this._olmDevice.addInboundGroupSession(t.room_id,s,a,n,t.session_key,r,c).then(()=>{this._retryDecryption(s,n).then(e=>{e&&this._crypto.cancelRoomKeyRequest({algorithm:t.algorithm,room_id:t.room_id,session_id:t.session_id,sender_key:s})})}).then(()=>{this._crypto.backupInfo&&this._crypto.backupGroupSession(t.room_id,s,a,t.session_id,t.session_key,r,c).catch(e=>{i.logger.log("Failed to back up megolm session",e)})}).catch(e=>{i.logger.error(`Error handling m.room_key_event: ${e}`)})}i.logger.error("key event has no sender key (not encrypted?)")}else i.logger.error("key event is missing fields")},l.prototype.onRoomKeyWithheldEvent=async function(e){const t=e.getContent(),n=t.sender_key;if("m.no_olm"===t.code){const r=e.getSender();if(await this._olmDevice.getSessionIdForDevice(n))return await this._olmDevice.recordSessionProblem(n,"no_olm",!0),void this.retryDecryptionFromSender(n);const o=this._crypto._deviceList.getDeviceByIdentityKey(t.algorithm,n);if(!o)return i.logger.info("Couldn't find device for identity key "+n+": not establishing session"),await this._olmDevice.recordSessionProblem(n,"no_olm",!1),void this.retryDecryptionFromSender(n);await s.ensureOlmSessionsForDevices(this._olmDevice,this._baseApis,{[r]:[o]},!1);const a={algorithm:s.OLM_ALGORITHM,sender_key:this._olmDevice.deviceCurve25519Key,ciphertext:{}};await s.encryptMessageForDevice(a.ciphertext,this._userId,this._deviceId,this._olmDevice,r,o,{type:"m.dummy"}),await this._olmDevice.recordSessionProblem(n,"no_olm",!0),this.retryDecryptionFromSender(n),await this._baseApis.sendToDevice("m.room.encrypted",{[r]:{[o.deviceId]:a}})}else await this._olmDevice.addInboundGroupSessionWithheld(t.room_id,n,t.session_id,t.code,t.reason)},l.prototype.hasKeysForKeyRequest=function(e){const t=e.requestBody;return this._olmDevice.hasInboundSessionKeys(t.room_id,t.sender_key,t.session_id)},l.prototype.shareKeysWithDevice=function(e){const t=e.userId,n=e.deviceId,r=this._crypto.getStoredDevice(t,n),o=e.requestBody;this.olmlib.ensureOlmSessionsForDevices(this._olmDevice,this._baseApis,{[t]:[r]}).then(e=>e[t][n].sessionId?(i.logger.log("sharing keys for session "+o.sender_key+"|"+o.session_id+" with device "+t+":"+n),this._buildKeyForwardingMessage(o.room_id,o.sender_key,o.session_id)):null).then(e=>{const i={algorithm:s.OLM_ALGORITHM,sender_key:this._olmDevice.deviceCurve25519Key,ciphertext:{}};return this.olmlib.encryptMessageForDevice(i.ciphertext,this._userId,this._deviceId,this._olmDevice,t,r,e).then(()=>{const e={[t]:{[n]:i}};return this._baseApis.sendToDevice("m.room.encrypted",e)})})},l.prototype._buildKeyForwardingMessage=async function(e,t,n){const r=await this._olmDevice.getInboundGroupSessionKey(e,t,n);return{type:"m.forwarded_room_key",content:{algorithm:s.MEGOLM_ALGORITHM,room_id:e,sender_key:t,sender_claimed_ed25519_key:r.sender_claimed_ed25519_key,session_id:n,session_key:r.key,chain_index:r.chain_index,forwarding_curve25519_key_chain:r.forwarding_curve25519_key_chain}}},l.prototype.importRoomKey=function(e){return this._olmDevice.addInboundGroupSession(e.room_id,e.sender_key,e.forwarding_curve25519_key_chain,e.session_id,e.session_key,e.sender_claimed_keys,!0).then(()=>{this._crypto.backupInfo&&this._crypto.backupGroupSession(e.room_id,e.sender_key,e.forwarding_curve25519_key_chain,e.session_id,e.session_key,e.sender_claimed_keys,!0).catch(e=>{i.logger.log("Failed to back up megolm session",e)}),this._retryDecryption(e.sender_key,e.session_id)})},l.prototype._retryDecryption=async function(e,t){const n=this._pendingEvents[e];if(!n)return!0;const r=n.get(t);return!r||(r.delete(t),0===r.size&&this._pendingEvents[e],await Promise.all([...r].map(async e=>{try{await e.attemptDecryption(this._crypto)}catch(e){}})),!(this._pendingEvents[e]||{})[t])},l.prototype.retryDecryptionFromSender=async function(e){const t=this._pendingEvents[e];return i.logger.warn(t),!t||(delete this._pendingEvents[e],await Promise.all([...t].map(async([e,t])=>{await Promise.all([...t].map(async e=>{try{i.logger.warn(e.getId()),await e.attemptDecryption(this._crypto)}catch(e){}}))})),!this._pendingEvents[e])},(0,a.registerAlgorithm)(s.MEGOLM_ALGORITHM,u,l)},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.DeviceList=void 0;var i=n(10),o=n(5),s=n(50),a=n(139),c=r(n(21)),f=n(35),u=n(8);class l extends i.EventEmitter{constructor(e,t,n){super(),this._cryptoStore=t,this._devices={},this._crossSigningInfo={},this._userByIdentityKey={},this._deviceTrackingStatus={},this._syncToken=null,this._serialiser=new d(e,n,this),this._keyDownloadsInProgressByUser={},this._dirty=!1,this._savePromise=null,this._resolveSavePromise=null,this._savePromiseTime=null,this._saveTimer=null}async load(){await this._cryptoStore.doTxn("readonly",[f.IndexedDBCryptoStore.STORE_DEVICE_DATA],e=>{this._cryptoStore.getEndToEndDeviceData(e,e=>{this._devices=e?e.devices:{},this._crossSigningInfo=e&&e.crossSigningInfo||{},this._deviceTrackingStatus=e?e.trackingStatus:{},this._syncToken=e?e.syncToken:null,this._userByIdentityKey={};for(const e of Object.keys(this._devices)){const t=this._devices[e];for(const n of Object.keys(t)){const r=t[n].keys["curve25519:"+n];void 0!==r&&(this._userByIdentityKey[r]=e)}}})});for(const e of Object.keys(this._deviceTrackingStatus))2==this._deviceTrackingStatus[e]&&(this._deviceTrackingStatus[e]=1)}stop(){null!==this._saveTimer&&clearTimeout(this._saveTimer)}async saveIfDirty(e){if(!this._dirty)return Promise.resolve(!1);void 0===e&&(e=500);const t=Date.now+e;this._savePromiseTime&&t{this._resolveSavePromise=e}),this._savePromise=n),null===this._saveTimer){const n=this._resolveSavePromise;this._savePromiseTime=t,this._saveTimer=setTimeout(()=>{o.logger.log("Saving device tracking data at token "+this._syncToken),this._savePromiseTime=null,this._saveTimer=null,this._savePromise=null,this._resolveSavePromise=null,this._dirty=!1,this._cryptoStore.doTxn("readwrite",[f.IndexedDBCryptoStore.STORE_DEVICE_DATA],e=>{this._cryptoStore.storeEndToEndDeviceData({devices:this._devices,crossSigningInfo:this._crossSigningInfo,trackingStatus:this._deviceTrackingStatus,syncToken:this._syncToken},e)}).then(()=>{n()})},e)}return n}getSyncToken(){return this._syncToken}setSyncToken(e){this._syncToken=e}downloadKeys(e,t){const n=[],r=[];if(e.forEach(e=>{const i=this._deviceTrackingStatus[e];this._keyDownloadsInProgressByUser[e]?(o.logger.log("downloadKeys: already have a download in progress for "+`${e}: awaiting its result`),r.push(this._keyDownloadsInProgressByUser[e])):(t||3!=i)&&n.push(e)}),0!=n.length){o.logger.log("downloadKeys: downloading for",n);const e=this._doKeyDownload(n);r.push(e)}return 0===r.length&&o.logger.log("downloadKeys: already have all necessary keys"),Promise.all(r).then(()=>this._getDevicesFromStore(e))}_getDevicesFromStore(e){const t={},n=this;return e.map((function(e){t[e]={},(n.getStoredDevicesForUser(e)||[]).map((function(n){t[e][n.deviceId]=n}))})),t}getStoredDevicesForUser(e){const t=this._devices[e];if(!t)return null;const n=[];for(const e in t)t.hasOwnProperty(e)&&n.push(s.DeviceInfo.fromStorage(t[e],e));return n}getRawStoredDevicesForUser(e){return this._devices[e]}getStoredCrossSigningForUser(e){return this._crossSigningInfo[e]?a.CrossSigningInfo.fromStorage(this._crossSigningInfo[e],e):null}storeCrossSigningForUser(e,t){this._crossSigningInfo[e]=t,this._dirty=!0}getStoredDevice(e,t){const n=this._devices[e];if(n&&n[t])return s.DeviceInfo.fromStorage(n[t],t)}getDeviceByIdentityKey(e,t){const n=this._userByIdentityKey[t];if(!n)return null;if(e!==c.OLM_ALGORITHM&&e!==c.MEGOLM_ALGORITHM)return null;const r=this._devices[n];if(!r)return null;for(const e in r){if(!r.hasOwnProperty(e))continue;const n=r[e];for(const r in n.keys){if(!n.keys.hasOwnProperty(r))continue;if(0!==r.indexOf("curve25519:"))continue;if(n.keys[r]==t)return s.DeviceInfo.fromStorage(n,e)}}return null}storeDevicesForUser(e,t){if(void 0!==this._devices[e])for(const[t,n]of Object.entries(this._devices[e])){const e=n.keys["curve25519:"+t];delete this._userByIdentityKey[e]}this._devices[e]=t;for(const[n,r]of Object.entries(t)){const t=r.keys["curve25519:"+n];this._userByIdentityKey[t]=e}this._dirty=!0}startTrackingDeviceList(e){if("string"!=typeof e)throw new Error("userId must be a string; was "+e);this._deviceTrackingStatus[e]||(o.logger.log("Now tracking device list for "+e),this._deviceTrackingStatus[e]=1,this._dirty=!0)}stopTrackingDeviceList(e){this._deviceTrackingStatus[e]&&(o.logger.log("No longer tracking device list for "+e),this._deviceTrackingStatus[e]=0,this._dirty=!0)}stopTrackingAllDeviceLists(){for(const e of Object.keys(this._deviceTrackingStatus))this._deviceTrackingStatus[e]=0;this._dirty=!0}invalidateUserDeviceList(e){this._deviceTrackingStatus[e]&&(o.logger.log("Marking device list outdated for",e),this._deviceTrackingStatus[e]=1,this._dirty=!0)}refreshOutdatedDeviceLists(){this.saveIfDirty();const e=[];for(const t of Object.keys(this._deviceTrackingStatus)){1==this._deviceTrackingStatus[t]&&e.push(t)}return this._doKeyDownload(e)}_setRawStoredDevicesForUser(e,t){if(void 0!==this._devices[e])for(const[t,n]of Object.entries(this._devices[e])){const e=n.keys["curve25519:"+t];delete this._userByIdentityKey[e]}this._devices[e]=t;for(const[n,r]of Object.entries(t)){const t=r.keys["curve25519:"+n];this._userByIdentityKey[t]=e}}setRawStoredCrossSigningForUser(e,t){this._crossSigningInfo[e]=t}_doKeyDownload(e){if(0===e.length)return Promise.resolve();const t=this._serialiser.updateDevicesForUsers(e,this._syncToken).then(()=>{n(!0)},t=>{throw o.logger.error("Error downloading keys for "+e+":",t),n(!1),t});e.forEach(e=>{this._keyDownloadsInProgressByUser[e]=t,1==this._deviceTrackingStatus[e]&&(this._deviceTrackingStatus[e]=2)});const n=n=>{e.forEach(e=>{if(this._dirty=!0,this._keyDownloadsInProgressByUser[e]!==t)return void o.logger.log("Another update in the queue for",e,"- not marking up-to-date");delete this._keyDownloadsInProgressByUser[e],2==this._deviceTrackingStatus[e]&&(n?(this._deviceTrackingStatus[e]=3,o.logger.log("Device list for",e,"now up to date")):this._deviceTrackingStatus[e]=1)}),this.saveIfDirty(),this.emit("crypto.devicesUpdated",e)};return t}}t.DeviceList=l;class d{constructor(e,t,n){this._baseApis=e,this._olmDevice=t,this._deviceList=n,this._downloadInProgress=!1,this._keyDownloadsQueuedByUser={},this._queuedQueryDeferred=null,this._syncToken=null}updateDevicesForUsers(e,t){return e.forEach(e=>{this._keyDownloadsQueuedByUser[e]=!0}),this._queuedQueryDeferred||(this._queuedQueryDeferred=(0,u.defer)()),this._syncToken=t,this._downloadInProgress?(o.logger.log("Queued key download for",e),this._queuedQueryDeferred.promise):this._doQueuedQueries()}_doQueuedQueries(){if(this._downloadInProgress)throw new Error("DeviceListUpdateSerialiser._doQueuedQueries called with request active");const e=Object.keys(this._keyDownloadsQueuedByUser);this._keyDownloadsQueuedByUser={};const t=this._queuedQueryDeferred;this._queuedQueryDeferred=null,o.logger.log("Starting key download for",e),this._downloadInProgress=!0;const n={};return this._syncToken&&(n.token=this._syncToken),this._baseApis.downloadKeysForUsers(e,n).then(t=>{const n=t.device_keys||{},r=t.master_keys||{},i=t.self_signing_keys||{},o=t.user_signing_keys||{};let s=Promise.resolve();for(const t of e)s=s.then((0,u.sleep)(5)).then(()=>this._processQueryResponseForUser(t,n[t],{master:r[t],self_signing:i[t],user_signing:o[t]}));return s}).then(()=>{o.logger.log("Completed key download for "+e),this._downloadInProgress=!1,t.resolve(),this._queuedQueryDeferred&&this._doQueuedQueries()},n=>{o.logger.warn("Error downloading keys for "+e+":",n),this._downloadInProgress=!1,t.reject(n)}),t.promise}async _processQueryResponseForUser(e,t,n,r){o.logger.log("got device keys for "+e+":",t),o.logger.log("got cross-signing keys for "+e+":",n);{const n={},r=this._deviceList.getRawStoredDevicesForUser(e);r&&Object.keys(r).forEach(e=>{const t=s.DeviceInfo.fromStorage(r[e],e);n[e]=t}),await async function(e,t,n,r){let i=!1;for(const e in n)n.hasOwnProperty(e)&&(e in r||(o.logger.log("Device "+t+":"+e+" has been removed"),delete n[e],i=!0));for(const s in r){if(!r.hasOwnProperty(s))continue;const a=r[s];a.user_id===t?a.device_id===s?await h(e,n,a)&&(i=!0):o.logger.warn("Mismatched device_id "+a.device_id+" in keys from "+t+":"+s):o.logger.warn("Mismatched user_id "+a.user_id+" in keys from "+t+":"+s)}return i}(this._olmDevice,e,n,t||{});const i={};Object.keys(n).forEach(e=>{i[e]=n[e].toStorage()}),this._deviceList._setRawStoredDevicesForUser(e,i)}if(n&&(n.master||n.self_signing||n.user_signing)){const t=this._deviceList.getStoredCrossSigningForUser(e)||new a.CrossSigningInfo(e);t.setKeys(n),this._deviceList.setRawStoredCrossSigningForUser(e,t.toStorage()),this._deviceList.emit("userCrossSigningUpdated",e)}}}async function h(e,t,n){if(!n.keys)return!1;const r=n.device_id,i=n.user_id,a="ed25519:"+r,f=n.keys[a];if(!f)return o.logger.warn("Device "+i+":"+r+" has no ed25519 key"),!1;const u=n.unsigned||{},l=n.signatures||{};try{await c.verifySignature(e,n,i,r,f)}catch(e){return o.logger.warn("Unable to verify signature on device "+i+":"+r+":"+e),!1}let d;if(r in t){if(d=t[r],d.getFingerprint()!=f)return o.logger.warn("Ed25519 key for device "+i+":"+r+" has changed"),!1}else t[r]=d=new s.DeviceInfo(r);return d.keys=n.keys||{},d.algorithms=n.algorithms||[],d.unsigned=u,d.signatures=l,!0}},function(e,t,n){"use strict";(function(e){var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.SecretStorage=t.SECRET_STORAGE_ALGORITHM_V1=void 0;var i=n(10),o=n(5),s=r(n(21)),a=n(51);const c="m.secret_storage.v1.curve25519-aes-sha2";t.SECRET_STORAGE_ALGORITHM_V1=c;class f extends i.EventEmitter{constructor(e,t,n){super(),this._baseApis=e,this._cryptoCallbacks=t,this._crossSigningInfo=n,this._requests={},this._incomingRequests={}}async getDefaultKeyId(){const e=await this._baseApis.getAccountDataFromServer("m.secret_storage.default_key");return e?e.key:null}setDefaultKeyId(e){return new Promise(t=>{const n=r=>{"m.secret_storage.default_key"===r.getType()&&r.getContent().key===e&&(this._baseApis.removeListener("accountData",n),t())};this._baseApis.on("accountData",n),this._baseApis.setAccountData("m.secret_storage.default_key",{key:e})})}async addKey(t,n,r){const i={algorithm:t};switch(n||(n={}),n.name&&(i.name=n.name),t){case c:{const t=new e.Olm.PkDecryption;try{const{passphrase:e,pubkey:r}=n;e&&r?(i.passphrase=e,i.pubkey=r):i.pubkey=r||t.generate_key()}finally{t.free()}break}default:throw new Error(`Unknown key algorithm ${n.algorithm}`)}if(!r)do{r=(0,a.randomString)(32)}while(await this._baseApis.getAccountDataFromServer(`m.secret_storage.key.${r}`));return await this._crossSigningInfo.signObject(i,"master"),await this._baseApis.setAccountData(`m.secret_storage.key.${r}`,i),r}async signKey(e){if(e||(e=await this.getDefaultKeyId()),!e)throw new Error("signKey requires a key ID");const t=await this._baseApis.getAccountDataFromServer(`m.secret_storage.key.${e}`);if(!t)throw new Error(`Key ${e} does not exist in account data`);await this._crossSigningInfo.signObject(t,"master"),await this._baseApis.setAccountData(`m.secret_storage.key.${e}`,t)}async hasKey(e){return e||(e=await this.getDefaultKeyId()),!!e&&!!this._baseApis.getAccountDataFromServer("m.secret_storage.key."+e)}async store(t,n,r){const i={};if(!r){const e=await this.getDefaultKeyId();if(!e)throw new Error("No keys specified and no default key present");r=[e]}if(0===r.length)throw new Error("Zero keys given to encrypt with!");for(const t of r){const r=await this._baseApis.getAccountDataFromServer("m.secret_storage.key."+t);if(!r)throw new Error("Unknown key: "+t);switch((0,s.pkVerify)(r,this._crossSigningInfo.getId("master"),this._crossSigningInfo.userId),r.algorithm){case c:{const o=new e.Olm.PkEncryption;try{o.set_recipient_key(r.pubkey),i[t]=o.encrypt(n)}finally{o.free()}break}default:o.logger.warn("unknown algorithm for secret storage key "+t+": "+r.algorithm)}}await this._baseApis.setAccountData(t,{encrypted:i})}storePassthrough(e,t){return this._baseApis.setAccountData(e,{[t]:{passthrough:!0}})}async get(e){const t=await this._baseApis.getAccountDataFromServer(e);if(!t)return;if(!t.encrypted)throw new Error("Content is not encrypted!");const n={};for(const e of Object.keys(t.encrypted)){const r=await this._baseApis.getAccountDataFromServer("m.secret_storage.key."+e),i=t.encrypted[e];switch(r.algorithm){case c:r.pubkey&&i.ciphertext&&i.mac&&i.ephemeral&&(n[e]=r)}}let r,i;try{[r,i]=await this._getSecretStorageKey(n);const e=t.encrypted[r];if(e.passthrough)return i.get_private_key();switch(n[r].algorithm){case c:return i.decrypt(e.ephemeral,e.mac,e.ciphertext)}}finally{i&&i.free()}}async isStored(e,t){const n=await this._baseApis.getAccountDataFromServer(e);if(!n||!n.encrypted)return!1;void 0===t&&(t=!0);for(const e of Object.keys(n.encrypted)){const r=await this._baseApis.getAccountDataFromServer("m.secret_storage.key."+e);if(!r)return!1;const i=n.encrypted[e];switch(t&&(0,s.pkVerify)(r,this._crossSigningInfo.getId("master"),this._crossSigningInfo.userId),r.algorithm){case c:if(r.pubkey&&i.ciphertext&&i.mac&&i.ephemeral)return!0}}return!1}request(e,t){const n=this._baseApis.makeTxnId(),r=this._requests[n]={devices:t},i=new Promise((e,t)=>{r.resolve=e,r.reject=t}),o={name:e,action:"request",requesting_device_id:this._baseApis.deviceId,request_id:n},s={};for(const e of t)s[e]=o;return this._baseApis.sendToDevice("m.secret.request",{[this._baseApis.getUserId()]:s}),{request_id:n,promise:i,cancel:e=>{const i={action:"request_cancellation",requesting_device_id:this._baseApis.deviceId,request_id:n},o={};for(const e of t)o[e]=i;this._baseApis.sendToDevice("m.secret.request",{[this._baseApis.getUserId()]:o}),r.reject(new Error(e||"Cancelled"))}}}async _onRequestReceived(e){const t=e.getSender(),n=e.getContent();if(t!==this._baseApis.getUserId()||!(n.name&&n.action&&n.requesting_device_id&&n.request_id))return;const r=n.requesting_device_id;if("request_cancellation"===n.action)this._incomingRequests[r]&&this._incomingRequests[r][n.request_id]&&(o.logger.info("received request cancellation for secret ("+t+", "+r+", "+n.request_id+")"),this.baseApis.emit("crypto.secrets.requestCancelled",{user_id:t,device_id:r,request_id:n.request_id}));else if("request"===n.action){if(r===this._baseApis.deviceId)return;if(o.logger.info("received request for secret ("+t+", "+r+", "+n.request_id+")"),!this._cryptoCallbacks.onSecretRequested)return;const e=await this._cryptoCallbacks.onSecretRequested({user_id:t,device_id:r,request_id:n.request_id,name:n.name,device_trust:this._baseApis.checkDeviceTrust(t,r)});if(e){const i={type:"m.secret.send",content:{request_id:n.request_id,secret:e}},o={algorithm:s.OLM_ALGORITHM,sender_key:this._baseApis._crypto._olmDevice.deviceCurve25519Key,ciphertext:{}};await s.ensureOlmSessionsForDevices(this._baseApis._crypto._olmDevice,this._baseApis,{[t]:[await this._baseApis.getStoredDevice(t,r)]}),await s.encryptMessageForDevice(o.ciphertext,this._baseApis.getUserId(),this._baseApis.deviceId,this._baseApis._crypto._olmDevice,t,this._baseApis._crypto.getStoredDevice(t,r),i);const a={[t]:{[r]:o}};this._baseApis.sendToDevice("m.room.encrypted",a)}}}_onSecretReceived(e){if(e.getSender()!==this._baseApis.getUserId())return;const t=e.getContent();o.logger.log("got secret share for request ",t.request_id);const n=this._requests[t.request_id];if(n){const r=this._baseApis._crypto._deviceList.getDeviceByIdentityKey(s.OLM_ALGORITHM,e.getSenderKey());if(!r)return void o.logger.log("secret share from unknown device with key",e.getSenderKey());if(!n.devices.includes(r.deviceId))return void o.logger.log("unsolicited secret share from device",r.deviceId);n.resolve(t.secret)}}async _getSecretStorageKey(t){if(!this._cryptoCallbacks.getSecretStorageKey)throw new Error("No getSecretStorageKey callback supplied");const n=await this._cryptoCallbacks.getSecretStorageKey({keys:t});if(!n)throw new Error("getSecretStorageKey callback returned falsey");if(n.length<2)throw new Error("getSecretStorageKey callback returned invalid data");const[r,i]=n;if(!t[r])throw new Error("App returned unknown key from getSecretStorageKey!");switch(t[r].algorithm){case c:{const n=new e.Olm.PkDecryption;let o;try{o=n.init_with_private_key(i)}catch(e){throw n.free(),new Error("getSecretStorageKey callback returned invalid key")}if(o!==t[r].pubkey)throw n.free(),new Error("getSecretStorageKey callback returned incorrect key");return[r,n]}default:throw new Error("Unknown key type: "+t[r].algorithm)}}}t.SecretStorage=f}).call(this,n(6))},function(e,t,n){"use strict";(function(e){var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.OutgoingRoomKeyRequestManager=void 0;var i=n(5),o=r(n(8));const s=0,a=1,c=2,f=3;function u(e){return e.room_id+" / "+e.session_id}function l(e){return"["+o.map(e,e=>`${e.userId}:${e.deviceId}`).join(",")+"]"}t.OutgoingRoomKeyRequestManager=class{constructor(e,t,n){this._baseApis=e,this._deviceId=t,this._cryptoStore=n,this._sendOutgoingRoomKeyRequestsTimer=null,this._sendOutgoingRoomKeyRequestsRunning=!1,this._clientRunning=!1}start(){this._clientRunning=!0,this._startTimer()}stop(){i.logger.log("stopping OutgoingRoomKeyRequestManager"),this._clientRunning=!1}async sendRoomKeyRequest(e,t,n=!1){const r=await this._cryptoStore.getOutgoingRoomKeyRequest(e);if(r)switch(r.state){case f:case s:return;case c:{const e=n?f:a;await this._cryptoStore.updateOutgoingRoomKeyRequest(r.requestId,c,{state:e,cancellationTxnId:this._baseApis.makeTxnId()});break}case a:if(n){const o=f,s=await this._cryptoStore.updateOutgoingRoomKeyRequest(r.requestId,a,{state:o,cancellationTxnId:this._baseApis.makeTxnId(),requestTxnId:this._baseApis.makeTxnId()});if(!s)return await this.sendRoomKeyRequest(e,t,n);try{await this._sendOutgoingRoomKeyRequestCancellation(s,!0)}catch(e){i.logger.error("Error sending room key request cancellation; will retry later.",e)}}break;default:throw new Error("unhandled state: "+r.state)}else await this._cryptoStore.getOrAddOutgoingRoomKeyRequest({requestBody:e,recipients:t,requestId:this._baseApis.makeTxnId(),state:s});this._startTimer()}cancelRoomKeyRequest(e){return this._cryptoStore.getOutgoingRoomKeyRequest(e).then(t=>{if(t)switch(t.state){case c:case f:return;case s:return i.logger.log("deleting unnecessary room key request for "+u(e)),this._cryptoStore.deleteOutgoingRoomKeyRequest(t.requestId,s);case a:return this._cryptoStore.updateOutgoingRoomKeyRequest(t.requestId,a,{state:c,cancellationTxnId:this._baseApis.makeTxnId()}).then(t=>{t?this._sendOutgoingRoomKeyRequestCancellation(t).catch(e=>{i.logger.error("Error sending room key request cancellation; will retry later.",e),this._startTimer()}):i.logger.log("Tried to cancel room key request for "+u(e)+" but it was already cancelled in another tab")});default:throw new Error("unhandled state: "+t.state)}})}getOutgoingSentRoomKeyRequest(e,t){return this._cryptoStore.getOutgoingRoomKeyRequestsByTarget(e,t,[a])}_startTimer(){if(this._sendOutgoingRoomKeyRequestsTimer)return;this._sendOutgoingRoomKeyRequestsTimer=e.setTimeout(()=>{if(this._sendOutgoingRoomKeyRequestsRunning)throw new Error("RoomKeyRequestSend already in progress!");this._sendOutgoingRoomKeyRequestsRunning=!0,this._sendOutgoingRoomKeyRequests().finally(()=>{this._sendOutgoingRoomKeyRequestsRunning=!1}).catch(e=>{i.logger.warn(`error in OutgoingRoomKeyRequestManager: ${e}`)})},500)}_sendOutgoingRoomKeyRequests(){return this._clientRunning?(i.logger.log("Looking for queued outgoing room key requests"),this._cryptoStore.getOutgoingRoomKeyRequestByState([c,f,s]).then(e=>{if(!e)return i.logger.log("No more outgoing room key requests"),void(this._sendOutgoingRoomKeyRequestsTimer=null);let t;switch(e.state){case s:t=this._sendOutgoingRoomKeyRequest(e);break;case c:t=this._sendOutgoingRoomKeyRequestCancellation(e);break;case f:t=this._sendOutgoingRoomKeyRequestCancellation(e,!0)}return t.then(()=>this._sendOutgoingRoomKeyRequests()).catch(e=>{i.logger.error("Error sending room key request; will retry later.",e),this._sendOutgoingRoomKeyRequestsTimer=null,this._startTimer()})})):(this._sendOutgoingRoomKeyRequestsTimer=null,Promise.resolve())}_sendOutgoingRoomKeyRequest(e){i.logger.log(`Requesting keys for ${u(e.requestBody)}`+` from ${l(e.recipients)}`+`(id ${e.requestId})`);const t={action:"request",requesting_device_id:this._deviceId,request_id:e.requestId,body:e.requestBody};return this._sendMessageToDevices(t,e.recipients,e.requestTxnId||e.requestId).then(()=>this._cryptoStore.updateOutgoingRoomKeyRequest(e.requestId,s,{state:a}))}_sendOutgoingRoomKeyRequestCancellation(e,t){i.logger.log("Sending cancellation for key request for "+`${u(e.requestBody)} to `+`${l(e.recipients)} `+`(cancellation id ${e.cancellationTxnId})`);const n={action:"request_cancellation",requesting_device_id:this._deviceId,request_id:e.requestId};return this._sendMessageToDevices(n,e.recipients,e.cancellationTxnId).then(()=>t?this._cryptoStore.updateOutgoingRoomKeyRequest(e.requestId,f,{state:s}):this._cryptoStore.deleteOutgoingRoomKeyRequest(e.requestId,c))}_sendMessageToDevices(e,t,n){const r={};for(const n of t)r[n.userId]||(r[n.userId]={}),r[n.userId][n.deviceId]=e;return this._baseApis.sendToDevice("m.room_key_request",r,n)}}}).call(this,n(6))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScanQRCode=t.ShowQRCode=void 0;var r=n(140),i=n(36);const o=/^(?:https?:\/\/)?(?:www\.)?matrix\.to\/#\/([#@!+][^?]+)\?(.+)$/,s=/^key_([^:]+:.+)$/,a=(0,i.errorFactory)("m.qr_code.invalid","Invalid QR code");class c extends r.VerificationBase{_doVerification(){if(!this._done){const e="https://matrix.to/#/"+this._baseApis.getUserId()+"?device="+encodeURIComponent(this._baseApis.deviceId)+"&action=verify&key_ed25519%3A"+encodeURIComponent(this._baseApis.deviceId)+"="+encodeURIComponent(this._baseApis.getDeviceEd25519Key());this.emit("show_qr_code",{url:e})}}}t.ShowQRCode=c,c.NAME="m.qr_code.show.v1";class f extends r.VerificationBase{static factory(...e){return new f(...e)}async _doVerification(){const e=(await new Promise((e,t)=>{this.emit("scan",{done:e,cancel:()=>t((0,i.newUserCancelledError)())})})).match(o);let t;const n={};if(!e)throw a();const r=e[1],c=e[2].split("&").map(e=>e.split("=",2).map(decodeURIComponent));let f;for(const[e,r]of c)if("device"===e)t=r;else if("action"===e)f=r;else{const t=e.match(s);t&&(n[t[1]]=r)}if(!t||"verify"!==f||0===Object.keys(n).length)throw a();if(this.userId){if(this.userId!==r)throw(0,i.newUserMismatchError)({expected:this.userId,actual:r})}else await new Promise((e,t)=>{this.emit("confirm_user_id",{userId:r,confirm:e,cancel:()=>t((0,i.newUserMismatchError)())})});await this._verifyKeys(r,n,(e,t,n)=>{if(t.keys[e]!==n)throw(0,i.newKeyMismatchError)()})}}t.ScanQRCode=f,f.NAME="m.qr_code.scan.v1"},function(e,t,n){"use strict";(function(e){var r=n(16);Object.defineProperty(t,"__esModule",{value:!0}),t.SAS=void 0;var i=n(140),o=r(n(79)),s=n(36);const a=["m.key.verification.accept","m.key.verification.key","m.key.verification.mac"];let c;const f=(0,s.errorFactory)("m.mismatched_sas","Mismatched short authentication string"),u=(0,s.errorFactory)("m.mismatched_commitment","Mismatched commitment");const l=[["🐶","dog"],["🐱","cat"],["🦁","lion"],["🐎","horse"],["🦄","unicorn"],["🐷","pig"],["🐘","elephant"],["🐰","rabbit"],["🐼","panda"],["🐓","rooster"],["🐧","penguin"],["🐢","turtle"],["🐟","fish"],["🐙","octopus"],["🦋","butterfly"],["🌷","flower"],["🌳","tree"],["🌵","cactus"],["🍄","mushroom"],["🌏","globe"],["🌙","moon"],["☁️","cloud"],["🔥","fire"],["🍌","banana"],["🍎","apple"],["🍓","strawberry"],["🌽","corn"],["🍕","pizza"],["🎂","cake"],["❤️","heart"],["🙂","smiley"],["🤖","robot"],["🎩","hat"],["👓","glasses"],["🔧","spanner"],["🎅","santa"],["👍","thumbs up"],["☂️","umbrella"],["⌛","hourglass"],["⏰","clock"],["🎁","gift"],["💡","light bulb"],["📕","book"],["✏️","pencil"],["📎","paperclip"],["✂️","scissors"],["🔒","lock"],["🔑","key"],["🔨","hammer"],["☎️","telephone"],["🏁","flag"],["🚂","train"],["🚲","bicycle"],["✈️","aeroplane"],["🚀","rocket"],["🏆","trophy"],["⚽","ball"],["🎸","guitar"],["🎺","trumpet"],["🔔","bell"],["⚓️","anchor"],["🎧","headphones"],["📁","folder"],["📌","pin"]];const d={decimal:function(e){return[1e3+(e[0]<<5|e[1]>>3),1e3+((7&e[1])<<10|e[2]<<2|e[3]>>6),1e3+((63&e[3])<<7|e[4]>>1)]},emoji:function(e){return[e[0]>>2,(3&e[0])<<4|e[1]>>4,(15&e[1])<<2|e[2]>>6,63&e[2],e[3]>>2,(3&e[3])<<4|e[4]>>4,(15&e[4])<<2|e[5]>>6].map(e=>l[e])}};function h(e,t){const n={};for(const r of t)r in d&&(n[r]=d[r](e));return n}const p={"hkdf-hmac-sha256":"calculate_mac","hmac-sha256":"calculate_mac_long_kdf"},m=["curve25519"],g=["sha256"],y=["hkdf-hmac-sha256","hmac-sha256"],b=Object.keys(d),_=new Set(m),v=new Set(g),A=new Set(y),w=new Set(b);function E(e,t){return e instanceof Array?e.filter(e=>t.has(e)):[]}class k extends i.VerificationBase{static get NAME(){return"m.sas.v1"}get events(){return a}async _doVerification(){return await e.Olm.init(),c=c||new e.Olm.Utility,await this._baseApis.downloadKeys([this.userId]),this.startEvent?await this._doRespondVerification():await this._doSendVerification()}async _doSendVerification(){const t="m.key.verification.start",n=this._channel.completeContent(t,{method:k.NAME,from_device:this._baseApis.deviceId,key_agreement_protocols:m,hashes:g,message_authentication_codes:y,short_authentication_string:b});this._channel.sendCompleted(t,n);let r=await this._waitForEvent("m.key.verification.accept"),i=r.getContent();const a=E(i.short_authentication_string,w);if(!(_.has(i.key_agreement_protocol)&&v.has(i.hash)&&A.has(i.message_authentication_code)&&a.length))throw(0,s.newUnknownMethodError)();if("string"!=typeof i.commitment)throw(0,s.newInvalidMessageError)();const l=i.message_authentication_code,d=i.commitment,p=new e.Olm.SAS;try{this._send("m.key.verification.key",{key:p.get_pubkey()}),r=await this._waitForEvent("m.key.verification.key"),i=r.getContent();const e=i.key+o.default.stringify(n);if(c.sha256(e)!==d)throw u();p.set_their_key(i.key);const t="MATRIX_KEY_VERIFICATION_SAS"+this._baseApis.getUserId()+this._baseApis.deviceId+this.userId+this.deviceId+this._channel.transactionId,m=p.generate_bytes(t,6),g=new Promise((e,t)=>{this.emit("show_sas",{sas:h(m,a),confirm:()=>{this._sendMAC(p,l),e()},cancel:()=>t((0,s.newUserCancelledError)()),mismatch:()=>t(f())})});[r]=await Promise.all([this._waitForEvent("m.key.verification.mac").then(e=>(this._expectedEvent="m.key.verification.done",e)),g]),i=r.getContent(),await this._checkMAC(p,i,l)}finally{p.free()}}async _doRespondVerification(){let t=this._channel.completedContentFromEvent(this.startEvent);const n=E(m,new Set(t.key_agreement_protocols))[0],r=E(g,new Set(t.hashes))[0],i=E(y,new Set(t.message_authentication_codes))[0],a=E(t.short_authentication_string,w);if(void 0===n||void 0===r||void 0===i||!a.length)throw(0,s.newUnknownMethodError)();const u=new e.Olm.SAS;try{const e=u.get_pubkey()+o.default.stringify(t);this._send("m.key.verification.accept",{key_agreement_protocol:n,hash:r,message_authentication_code:i,short_authentication_string:a,commitment:c.sha256(e)});let l=await this._waitForEvent("m.key.verification.key");t=l.getContent(),u.set_their_key(t.key),this._send("m.key.verification.key",{key:u.get_pubkey()});const d="MATRIX_KEY_VERIFICATION_SAS"+this.userId+this.deviceId+this._baseApis.getUserId()+this._baseApis.deviceId+this._channel.transactionId,p=u.generate_bytes(d,6),m=new Promise((e,t)=>{this.emit("show_sas",{sas:h(p,a),confirm:()=>{this._sendMAC(u,i),e()},cancel:()=>t((0,s.newUserCancelledError)()),mismatch:()=>t(f())})});[l]=await Promise.all([this._waitForEvent("m.key.verification.mac").then(e=>(this._expectedEvent="m.key.verification.done",e)),m]),t=l.getContent(),await this._checkMAC(u,t,i)}finally{u.free()}}_sendMAC(e,t){const n={},r=[],i="MATRIX_KEY_VERIFICATION_MAC"+this._baseApis.getUserId()+this._baseApis.deviceId+this.userId+this.deviceId+this._channel.transactionId,o=`ed25519:${this._baseApis.deviceId}`;n[o]=e[p[t]](this._baseApis.getDeviceEd25519Key(),i+o),r.push(o);const s=this._baseApis.getCrossSigningId();if(s){const o=`ed25519:${s}`;n[o]=e[p[t]](s,i+o),r.push(o)}const a=e[p[t]](r.sort().join(","),i+"KEY_IDS");this._send("m.key.verification.mac",{mac:n,keys:a})}async _checkMAC(e,t,n){const r="MATRIX_KEY_VERIFICATION_MAC"+this.userId+this.deviceId+this._baseApis.getUserId()+this._baseApis.deviceId+this._channel.transactionId;if(t.keys!==e[p[n]](Object.keys(t.mac).sort().join(","),r+"KEY_IDS"))throw(0,s.newKeyMismatchError)();await this._verifyKeys(this.userId,t.mac,(t,i,o)=>{if(o!==e[p[n]](i.keys[t],r+t))throw(0,s.newKeyMismatchError)()})}}t.SAS=k}).call(this,n(6))},function(e,t,n){var r=n(301);e.exports=r("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},function(e,t,n){"use strict";var r=n(3).Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");var t=new Uint8Array(256);t.fill(255);for(var n=0;n>>0,u=new Uint8Array(f);e[n];){var l=t[e.charCodeAt(n)];if(255===l)return;for(var d=0,h=f-1;(0!==l||d>>0,u[h]=l%256>>>0,l=l/256>>>0;if(0!==l)throw new Error("Non-zero carry");o=d,n++}if(" "!==e[n]){for(var p=f-o;p!==f&&0===u[p];)p++;var m=r.allocUnsafe(i+(f-p));m.fill(0,0,i);for(var g=i;p!==f;)m[g++]=u[p++];return m}}}return{encode:function(t){if(!r.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var n=0,i=0,o=0,c=t.length;o!==c&&0===t[o];)o++,n++;for(var u=(c-o)*f+1>>>0,l=new Uint8Array(u);o!==c;){for(var d=t[o],h=0,p=u-1;(0!==d||h>>0,l[p]=d%s>>>0,d=d/s>>>0;if(0!==d)throw new Error("Non-zero carry");i=h,o++}for(var m=u-i;m!==u&&0===l[m];)m++;for(var g=a.repeat(n);me!==this._deviceId);if(e.length){const t=this.completeContent({code:"m.accepted",reason:"Verification request accepted by another device"});await this._sendToDevices(o.CANCEL_TYPE,t,e)}}}completedContentFromEvent(e){return e.getContent()}completeContent(e,t){return t=Object.assign({},t),this.transactionId&&(t.transaction_id=this.transactionId),e!==o.REQUEST_TYPE&&e!==o.START_TYPE||(t.from_device=this._client.getDeviceId()),e===o.REQUEST_TYPE&&(t.timestamp=Date.now()),t}send(e,t={}){e!==o.REQUEST_TYPE&&e!==o.START_TYPE||this.transactionId||(this.transactionId=a.makeTransactionId());const n=this.completeContent(e,t);return this.sendCompleted(e,n)}sendCompleted(e,t){return e===o.REQUEST_TYPE?this._sendToDevices(e,t,this._devices):this._sendToDevices(e,t,[this._deviceId])}_sendToDevices(e,t,n){if(n.length){const r={};for(const e of n)r[e]=t;return this._client.sendToDevice(e,{[this._userId]:r})}return Promise.resolve()}static makeTransactionId(){return(0,r.randomString)(32)}}t.ToDeviceChannel=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AutoDiscovery=void 0;var r=n(5),i=n(73);class o{static get ERROR_INVALID(){return"Invalid homeserver discovery response"}static get ERROR_GENERIC_FAILURE(){return"Failed to get autodiscovery configuration from server"}static get ERROR_INVALID_HS_BASE_URL(){return"Invalid base_url for m.homeserver"}static get ERROR_INVALID_HOMESERVER(){return"Homeserver URL does not appear to be a valid Matrix homeserver"}static get ERROR_INVALID_IS_BASE_URL(){return"Invalid base_url for m.identity_server"}static get ERROR_INVALID_IDENTITY_SERVER(){return"Identity server URL does not appear to be a valid identity server"}static get ERROR_INVALID_IS(){return"Invalid identity server discovery response"}static get ERROR_MISSING_WELLKNOWN(){return"No .well-known JSON file found"}static get ERROR_INVALID_JSON(){return"Invalid JSON"}static get ALL_ERRORS(){return[o.ERROR_INVALID,o.ERROR_GENERIC_FAILURE,o.ERROR_INVALID_HS_BASE_URL,o.ERROR_INVALID_HOMESERVER,o.ERROR_INVALID_IS_BASE_URL,o.ERROR_INVALID_IDENTITY_SERVER,o.ERROR_INVALID_IS,o.ERROR_MISSING_WELLKNOWN,o.ERROR_INVALID_JSON]}static get FAIL_ERROR(){return"FAIL_ERROR"}static get FAIL_PROMPT(){return"FAIL_PROMPT"}static get PROMPT(){return"PROMPT"}static get SUCCESS(){return"SUCCESS"}static async fromDiscoveryConfig(e){const t={"m.homeserver":{state:o.FAIL_ERROR,error:o.ERROR_INVALID,base_url:null},"m.identity_server":{state:o.PROMPT,error:null,base_url:null}};if(!e||!e["m.homeserver"])return r.logger.error("No m.homeserver key in config"),t["m.homeserver"].state=o.FAIL_PROMPT,t["m.homeserver"].error=o.ERROR_INVALID,Promise.resolve(t);if(!e["m.homeserver"].base_url)return r.logger.error("No m.homeserver base_url in config"),t["m.homeserver"].state=o.FAIL_PROMPT,t["m.homeserver"].error=o.ERROR_INVALID_HS_BASE_URL,Promise.resolve(t);const n=this._sanitizeWellKnownUrl(e["m.homeserver"].base_url);if(!n)return r.logger.error("Invalid base_url for m.homeserver"),t["m.homeserver"].error=o.ERROR_INVALID_HS_BASE_URL,Promise.resolve(t);const i=await this._fetchWellKnownObject(`${n}/_matrix/client/versions`);if(!i||!i.raw.versions)return r.logger.error("Invalid /versions response"),t["m.homeserver"].error=o.ERROR_INVALID_HOMESERVER,t["m.homeserver"].base_url=n,Promise.resolve(t);t["m.homeserver"]={state:o.SUCCESS,error:null,base_url:n};let s="";if(e["m.identity_server"]){const n={"m.homeserver":t["m.homeserver"],"m.identity_server":{state:o.FAIL_PROMPT,error:o.ERROR_INVALID_IS,base_url:null}};if(s=this._sanitizeWellKnownUrl(e["m.identity_server"].base_url),!s)return r.logger.error("Invalid base_url for m.identity_server"),n["m.identity_server"].error=o.ERROR_INVALID_IS_BASE_URL,Promise.resolve(n);const i=await this._fetchWellKnownObject(`${s}/_matrix/identity/api/v1`);if(!i||!i.raw||"SUCCESS"!==i.action)return r.logger.error("Invalid /api/v1 response"),n["m.identity_server"].error=o.ERROR_INVALID_IDENTITY_SERVER,n["m.identity_server"].base_url=s,Promise.resolve(n)}return s&&s.length>0&&(t["m.identity_server"]={state:o.SUCCESS,error:null,base_url:s}),Object.keys(e).map(n=>{if("m.homeserver"===n||"m.identity_server"===n){const r=["error","state","base_url"];for(const i of Object.keys(e[n]))r.includes(i)||(t[n][i]=e[n][i])}else t[n]=e[n]}),Promise.resolve(t)}static async findClientConfig(e){if(!e||"string"!=typeof e||0===e.length)throw new Error("'domain' must be a string of non-zero length");const t={"m.homeserver":{state:o.FAIL_ERROR,error:o.ERROR_INVALID,base_url:null},"m.identity_server":{state:o.PROMPT,error:null,base_url:null}},n=await this._fetchWellKnownObject(`https://${e}/.well-known/matrix/client`);return n&&"SUCCESS"===n.action?o.fromDiscoveryConfig(n.raw):(r.logger.error("No response or error when parsing .well-known"),n.reason&&r.logger.error(n.reason),"IGNORE"===n.action?t["m.homeserver"]={state:o.PROMPT,error:null,base_url:null}:(t["m.homeserver"].state=o.FAIL_PROMPT,t["m.homeserver"].error=o.ERROR_INVALID),Promise.resolve(t))}static async getRawClientConfig(e){if(!e||"string"!=typeof e||0===e.length)throw new Error("'domain' must be a string of non-zero length");const t=await this._fetchWellKnownObject(`https://${e}/.well-known/matrix/client`);return t&&t.raw||{}}static _sanitizeWellKnownUrl(e){if(!e)return!1;try{let t=null;try{t=i.URL?new i.URL(e):new URL(e)}catch(n){t=new URL(e)}if(!t||!t.hostname)return!1;if("http:"!==t.protocol&&"https:"!==t.protocol)return!1;const n=t.port?`:${t.port}`:"",r=t.pathname?t.pathname:"";let o=`${t.protocol}//${t.hostname}${n}${r}`;return o.endsWith("/")&&(o=o.substring(0,o.length-1)),o}catch(e){return r.logger.error(e),!1}}static async _fetchWellKnownObject(e){return new Promise((function(t,r){const i=n(127).getRequest();if(!i)throw new Error("No request library available");i({method:"GET",uri:e,timeout:5e3},(e,n,r)=>{if(e||n.statusCode<200||n.statusCode>=300){let r="FAIL_PROMPT",i=(e?e.message:null)||"General failure";return 404===n.statusCode&&(r="IGNORE",i=o.ERROR_MISSING_WELLKNOWN),void t({raw:{},action:r,reason:i,error:e})}try{t({raw:JSON.parse(r),action:"SUCCESS"})}catch(e){let n=o.ERROR_INVALID;"SyntaxError"===e.name&&(n=o.ERROR_INVALID_JSON),t({raw:{},action:"FAIL_PROMPT",reason:n,error:e})}})}))}}t.AutoDiscovery=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TimelineWindow=o,t.TimelineIndex=s;var r=n(25);n(5);const i=function(){};function o(e,t,n){n=n||{},this._client=e,this._timelineSet=t,this._start=null,this._end=null,this._eventCount=0,this._windowLimit=n.windowLimit||1e3}function s(e,t){this.timeline=e,this.index=t}o.prototype.load=function(e,t){const n=this;t=t||20;const r=function(r){let i;const o=r.getEvents();if(e){for(let t=0;tt.minIndex())return!0}else if(t.index0&&this.unpaginate(t,e!=r.EventTimeline.BACKWARDS),Promise.resolve(!0)}if(!n||0===o)return Promise.resolve(!1);if(!s.timeline.getPaginationToken(e))return i("TimelineWindow: no token"),Promise.resolve(!1);i("TimelineWindow: starting request");const c=this,f=this._client.paginateEventTimeline(s.timeline,{backwards:e==r.EventTimeline.BACKWARDS,limit:t}).finally((function(){s.pendingPaginate=null})).then((function(n){return i("TimelineWindow: request completed with result "+n),!!n&&c.paginate(e,t,!0,o-1)}));return s.pendingPaginate=f,f},o.prototype.unpaginate=function(e,t){const n=t?this._start:this._end;if(e>this._eventCount||e<0)throw new Error("Attemting to unpaginate "+e+" events, but only have "+this._eventCount+" in the timeline");for(;e>0;){const r=t?n.advance(e):n.retreat(e);if(r<=0)throw new Error("Unable to unpaginate any further, but still have "+this._eventCount+" events");e-=r,this._eventCount-=r,i("TimelineWindow.unpaginate: dropped "+r+" (now "+this._eventCount+")")}},o.prototype.getEvents=function(){if(!this._start)return[];const e=[];let t=this._start.timeline;for(;;){const n=t.getEvents();let i=0,o=n.length;t===this._start.timeline&&(i=this._start.index+t.getBaseIndex()),t===this._end.timeline&&(o=this._end.index+t.getBaseIndex());for(let t=i;t0)return this.index+=t,t;const n=this.timeline.getNeighbouringTimeline(e<0?r.EventTimeline.BACKWARDS:r.EventTimeline.FORWARDS);return n?(this.timeline=n,this.index=e<0?this.maxIndex():this.minIndex(),i("paginate: switched to new neighbour"),this.advance(e)):0},s.prototype.retreat=function(e){return-1*this.advance(-1*e)}},function(e,t,n){"use strict";var r=n(7),i=n(16);Object.defineProperty(t,"__esModule",{value:!0}),t.InteractiveAuth=c;var o=i(n(73)),s=r(n(8)),a=n(5);function c(e){this._matrixClient=e.matrixClient,this._data=e.authData||{},this._requestCallback=e.doRequest,this._busyChangedCallback=e.busyChanged,this._stateUpdatedCallback=e.stateUpdated||e.startAuthStage,this._resolveFunc=null,this._rejectFunc=null,this._inputs=e.inputs||{},this._requestEmailTokenCallback=e.requestEmailToken,e.sessionId&&(this._data.session=e.sessionId),this._clientSecret=e.clientSecret||this._matrixClient.generateClientSecret(),this._emailSid=e.emailSid,void 0===this._emailSid&&(this._emailSid=null),this._requestingEmailToken=!1,this._chosenFlow=null,this._currentStage=null,this._submitPromise=null}c.prototype={attemptAuth:function(){return new Promise((e,t)=>{this._resolveFunc=e,this._rejectFunc=t,this._data.flows?this._startNextAuthStage():(this._busyChangedCallback&&this._busyChangedCallback(!0),this._doRequest(this._data).finally(()=>{this._busyChangedCallback&&this._busyChangedCallback(!1)}))})},poll:async function(){if(!this._data.session)return;if(this._submitPromise)return;let e={};if("m.login.email.identity"==this._currentStage&&this._emailSid){const t={sid:this._emailSid,client_secret:this._clientSecret};if(await this._matrixClient.doesServerRequireIdServerParam()){const e=o.default.parse(this._matrixClient.getIdentityServerUrl());t.id_server=e.host}e={type:"m.login.email.identity",threepid_creds:t}}this.submitAuthDict(e,!0)},getSessionId:function(){return this._data?this._data.session:void 0},getClientSecret:function(){return this._clientSecret},getStageParams:function(e){let t={};return this._data&&this._data.params&&(t=this._data.params),t[e]},getChosenFlow(){return this._chosenFlow},submitAuthDict:async function(e,t){if(!this._resolveFunc)throw new Error("submitAuthDict() called before attemptAuth()");for(!t&&this._busyChangedCallback&&this._busyChangedCallback(!0);this._submitPromise;)try{await this._submitPromise}catch(e){}const n={session:this._data.session};s.extend(n,e);try{this._submitPromise=this._doRequest(n,t),await this._submitPromise}finally{this._submitPromise=null,!t&&this._busyChangedCallback&&this._busyChangedCallback(!1)}},getEmailSid:function(){return this._emailSid},setEmailSid:function(e){this._emailSid=e},_doRequest:async function(e,t){try{const n=await this._requestCallback(e,t);this._resolveFunc(n)}catch(e){const n=e.data?e.data.flows:null,r=Boolean(this._data.flows)||Boolean(n);if(401===e.httpStatus&&e.data&&r||(t?a.logger.log("Background poll request failed doing UI auth: ignoring",e):this._rejectFunc(e)),e.data.flows||e.data.completed||e.data.session||(e.data.flows=this._data.flows,e.data.completed=this._data.completed,e.data.session=this._data.session),this._data=e.data,this._startNextAuthStage(),!this._emailSid&&!this._requestingEmailToken&&this._chosenFlow.stages.includes("m.login.email.identity")){this._requestingEmailToken=!0;try{const e=await this._requestEmailTokenCallback(this._inputs.emailAddress,this._clientSecret,1,this._data.session);this._emailSid=e.sid}catch(e){this._rejectFunc(e)}finally{this._requestingEmailToken=!1}}}},_startNextAuthStage:function(){const e=this._chooseStage();if(!e)throw new Error("No incomplete flows from the server");if(this._currentStage=e,"m.login.dummy"===e)return void this.submitAuthDict({type:"m.login.dummy"});if(this._data.errcode||this._data.error)return void this._stateUpdatedCallback(e,{errcode:this._data.errcode||"",error:this._data.error||""});const t={};"m.login.email.identity"==e&&(t.emailSid=this._emailSid),this._stateUpdatedCallback(e,t)},_chooseStage:function(){null===this._chosenFlow&&(this._chosenFlow=this._chooseFlow()),a.logger.log("Active flow => %s",JSON.stringify(this._chosenFlow));const e=this._firstUncompletedStage(this._chosenFlow);return a.logger.log("Next stage: %s",e),e},_chooseFlow:function(){const e=this._data.flows||[],t=Boolean(this._inputs.emailAddress)||Boolean(this._emailSid),n=Boolean(this._inputs.phoneCountry)&&Boolean(this._inputs.phoneNumber);for(const r of e){let e=!1,i=!1;for(const t of r.stages)"m.login.email.identity"===t?e=!0:"m.login.msisdn"==t&&(i=!0);if(e==t&&i==n)return r}const r=new Error("No appropriate authentication flow found");throw r.name="NoAuthFlowFoundError",r.required_stages=[],t&&r.required_stages.push("m.login.email.identity"),n&&r.required_stages.push("m.login.msisdn"),r.available_flows=e,r},_firstUncompletedStage:function(e){const t=(this._data||{}).completed||[];for(let n=0;n(l.logger.log("IndexedDBStore.startup: loading presence events"),this.backend.getUserPresenceEvents())).then(e=>{l.logger.log("IndexedDBStore.startup: processing presence events"),e.forEach(([e,t])=>{const n=new f.User(e);t&&n.setPresenceEvent(new u.MatrixEvent(t)),this._userModifiedMap[n.userId]=n.getLastModifiedTime(),this.storeUser(n)})}))},d.prototype.getSavedSync=h((function(){return this.backend.getSavedSync()}),"getSavedSync"),d.prototype.isNewlyCreated=h((function(){return this.backend.isNewlyCreated()}),"isNewlyCreated"),d.prototype.getSavedSyncToken=h((function(){return this.backend.getNextBatchToken()}),"getSavedSyncToken"),d.prototype.deleteAllData=h((function(){return i.MemoryStore.prototype.deleteAllData.call(this),this.backend.clearDatabase().then(()=>{l.logger.log("Deleted indexeddb data.")},e=>{throw l.logger.error(`Failed to delete indexeddb data: ${e}`),e})})),d.prototype.wantsSave=function(){return Date.now()-this._syncTs>3e5},d.prototype.save=function(e){return e||this.wantsSave()?this._reallySave():Promise.resolve()},d.prototype._reallySave=h((function(){this._syncTs=Date.now();const e=[];for(const t of this.getUsers())this._userModifiedMap[t.userId]!==t.getLastModifiedTime()&&t.events.presence&&(e.push([t.userId,t.events.presence.event]),this._userModifiedMap[t.userId]=t.getLastModifiedTime());return this.backend.syncToDatabase(e)})),d.prototype.setSyncData=h((function(e){return this.backend.setSyncData(e)}),"setSyncData"),d.prototype.getOutOfBandMembers=h((function(e){return this.backend.getOutOfBandMembers(e)}),"getOutOfBandMembers"),d.prototype.setOutOfBandMembers=h((function(e,t){return i.MemoryStore.prototype.setOutOfBandMembers.call(this,e,t),this.backend.setOutOfBandMembers(e,t)}),"setOutOfBandMembers"),d.prototype.clearOutOfBandMembers=h((function(e){return i.MemoryStore.prototype.clearOutOfBandMembers.call(this),this.backend.clearOutOfBandMembers(e)}),"clearOutOfBandMembers"),d.prototype.getClientOptions=h((function(){return this.backend.getClientOptions()}),"getClientOptions"),d.prototype.storeClientOptions=h((function(e){return i.MemoryStore.prototype.storeClientOptions.call(this,e),this.backend.storeClientOptions(e)}),"storeClientOptions")}).call(this,n(6))},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.LocalIndexedDBStoreBackend=d;var i=n(143),o=r(n(8)),s=r(n(136)),a=n(5);function c(e,t,n){const r=e.openCursor(t);return new Promise((e,t)=>{const i=[];r.onerror=e=>{t(new Error("Query failed: "+e.target.errorCode))},r.onsuccess=t=>{const r=t.target.result;r?(i.push(n(r)),r.continue()):e(i)}})}function f(e){return new Promise((t,n)=>{e.oncomplete=function(e){t(e)},e.onerror=function(e){n(e.target.error)}})}function u(e){return new Promise((t,n)=>{e.onsuccess=function(e){t(e)},e.onerror=function(e){n(e.target.error)}})}function l(e){return u(e).then(e=>e.target.result)}function d(e,t){this.indexedDB=e,this._dbName="matrix-js-sdk:"+(t||"default"),this.db=null,this._disconnected=!0,this._syncAccumulator=new i.SyncAccumulator,this._isNewlyCreated=!1}d.exists=function(e,t){return t="matrix-js-sdk:"+(t||"default"),s.exists(e,t)},d.prototype={connect:function(){if(!this._disconnected)return a.logger.log("LocalIndexedDBStoreBackend.connect: already connected or connecting"),Promise.resolve();this._disconnected=!1,a.logger.log("LocalIndexedDBStoreBackend.connect: connecting...");const e=this.indexedDB.open(this._dbName,3);return e.onupgradeneeded=e=>{const t=e.target.result,n=e.oldVersion;a.logger.log(`LocalIndexedDBStoreBackend.connect: upgrading from ${n}`),n<1&&(this._isNewlyCreated=!0,function(e){e.createObjectStore("users",{keyPath:["userId"]}),e.createObjectStore("accountData",{keyPath:["type"]}),e.createObjectStore("sync",{keyPath:["clobber"]})}(t)),n<2&&function(e){e.createObjectStore("oob_membership_events",{keyPath:["room_id","state_key"]}).createIndex("room","room_id")}(t),n<3&&function(e){e.createObjectStore("client_options",{keyPath:["clobber"]})}(t)},e.onblocked=()=>{a.logger.log("can't yet open LocalIndexedDBStoreBackend because it is open elsewhere")},a.logger.log("LocalIndexedDBStoreBackend.connect: awaiting connection..."),u(e).then(e=>(a.logger.log("LocalIndexedDBStoreBackend.connect: connected"),this.db=e.target.result,this.db.onversionchange=()=>{this.db.close()},this._init()))},isNewlyCreated:function(){return Promise.resolve(this._isNewlyCreated)},_init:function(){return Promise.all([this._loadAccountData(),this._loadSyncData()]).then(([e,t])=>{a.logger.log("LocalIndexedDBStoreBackend: loaded initial data"),this._syncAccumulator.accumulate({next_batch:t.nextBatch,rooms:t.roomsData,groups:t.groupsData,account_data:{events:e}})})},getOutOfBandMembers:function(e){return new Promise((t,n)=>{const r=this.db.transaction(["oob_membership_events"],"readonly").objectStore("oob_membership_events").index("room"),i=IDBKeyRange.only(e),o=r.openCursor(i),s=[];let a=!1;o.onsuccess=e=>{const n=e.target.result;if(!n)return s.length||a?t(s):t(null);const r=n.value;r.oob_written?a=!0:s.push(r),n.continue()},o.onerror=e=>{n(e)}}).then(t=>(a.logger.log(`LL: got ${t&&t.length}`+` membershipEvents from storage for room ${e} ...`),t))},setOutOfBandMembers:async function(e,t){a.logger.log(`LL: backend about to store ${t.length}`+` members for ${e}`);const n=this.db.transaction(["oob_membership_events"],"readwrite"),r=n.objectStore("oob_membership_events");t.forEach(e=>{r.put(e)});const i={room_id:e,oob_written:!0,state_key:0};r.put(i),await f(n),a.logger.log(`LL: backend done storing for ${e}!`)},clearOutOfBandMembers:async function(e){const t=this.db.transaction(["oob_membership_events"],"readonly").objectStore("oob_membership_events").index("room"),n=IDBKeyRange.only(e),r=l(t.openKeyCursor(n,"next")).then(e=>e&&e.primaryKey[1]),i=l(t.openKeyCursor(n,"prev")).then(e=>e&&e.primaryKey[1]),[o,s]=await Promise.all([r,i]),c=this.db.transaction(["oob_membership_events"],"readwrite").objectStore("oob_membership_events"),f=IDBKeyRange.bound([e,o],[e,s]);var u;a.logger.log("LL: Deleting all users + marker in storage for "+`room ${e}, with key range:`,[e,o],[e,s]),await(u=c.delete(f),new Promise((e,t)=>{u.onsuccess=()=>e(u),u.onerror=e=>t(e)}))},clearDatabase:function(){return new Promise((e,t)=>{a.logger.log(`Removing indexeddb instance: ${this._dbName}`);const n=this.indexedDB.deleteDatabase(this._dbName);n.onblocked=()=>{a.logger.log(`can't yet delete indexeddb ${this._dbName}`+" because it is open elsewhere")},n.onerror=t=>{a.logger.warn(`unable to delete js-sdk store indexeddb: ${t.target.error}`),e()},n.onsuccess=()=>{a.logger.log(`Removed indexeddb instance: ${this._dbName}`),e()}})},getSavedSync:function(e){void 0===e&&(e=!0);const t=this._syncAccumulator.getJSON();return t.nextBatch?e?Promise.resolve(o.deepCopy(t)):Promise.resolve(t):Promise.resolve(null)},getNextBatchToken:function(){return Promise.resolve(this._syncAccumulator.getNextBatchToken())},setSyncData:function(e){return Promise.resolve().then(()=>{this._syncAccumulator.accumulate(e)})},syncToDatabase:function(e){const t=this._syncAccumulator.getJSON();return Promise.all([this._persistUserPresenceEvents(e),this._persistAccountData(t.accountData),this._persistSyncData(t.nextBatch,t.roomsData,t.groupsData)])},_persistSyncData:function(e,t,n){return a.logger.log("Persisting sync data up to ",e),o.promiseTry(()=>{const r=this.db.transaction(["sync"],"readwrite");return r.objectStore("sync").put({clobber:"-",nextBatch:e,roomsData:t,groupsData:n}),f(r)})},_persistAccountData:function(e){return o.promiseTry(()=>{const t=this.db.transaction(["accountData"],"readwrite"),n=t.objectStore("accountData");for(let t=0;t{const t=this.db.transaction(["users"],"readwrite"),n=t.objectStore("users");for(const t of e)n.put({userId:t[0],event:t[1]});return f(t)})},getUserPresenceEvents:function(){return o.promiseTry(()=>c(this.db.transaction(["users"],"readonly").objectStore("users"),void 0,e=>[e.value.userId,e.value.event]))},_loadAccountData:function(){return a.logger.log("LocalIndexedDBStoreBackend: loading account data..."),o.promiseTry(()=>c(this.db.transaction(["accountData"],"readonly").objectStore("accountData"),void 0,e=>e.value).then(e=>(a.logger.log("LocalIndexedDBStoreBackend: loaded account data"),e)))},_loadSyncData:function(){return a.logger.log("LocalIndexedDBStoreBackend: loading sync data..."),o.promiseTry(()=>c(this.db.transaction(["sync"],"readonly").objectStore("sync"),void 0,e=>e.value).then(e=>(a.logger.log("LocalIndexedDBStoreBackend: loaded sync data"),e.length>1&&a.logger.warn("loadSyncData: More than 1 sync row found."),e.length>0?e[0]:{})))},getClientOptions:function(){return Promise.resolve().then(()=>c(this.db.transaction(["client_options"],"readonly").objectStore("client_options"),void 0,e=>{if(e.value&&e.value&&e.value.options)return e.value.options}).then(e=>e[0]))},storeClientOptions:async function(e){const t=this.db.transaction(["client_options"],"readwrite");t.objectStore("client_options").put({clobber:"-",options:e}),await f(t)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RemoteIndexedDBStoreBackend=o;var r=n(5),i=n(8);function o(e,t,n){this._workerScript=e,this._dbName=t,this._workerApi=n,this._worker=null,this._nextSeq=0,this._inFlight={},this._startPromise=null}o.prototype={connect:function(){return this._ensureStarted().then(()=>this._doCmd("connect"))},clearDatabase:function(){return this._ensureStarted().then(()=>this._doCmd("clearDatabase"))},isNewlyCreated:function(){return this._doCmd("isNewlyCreated")},getSavedSync:function(){return this._doCmd("getSavedSync")},getNextBatchToken:function(){return this._doCmd("getNextBatchToken")},setSyncData:function(e){return this._doCmd("setSyncData",[e])},syncToDatabase:function(e){return this._doCmd("syncToDatabase",[e])},getOutOfBandMembers:function(e){return this._doCmd("getOutOfBandMembers",[e])},setOutOfBandMembers:function(e,t){return this._doCmd("setOutOfBandMembers",[e,t])},clearOutOfBandMembers:function(e){return this._doCmd("clearOutOfBandMembers",[e])},getClientOptions:function(){return this._doCmd("getClientOptions")},storeClientOptions:function(e){return this._doCmd("storeClientOptions",[e])},getUserPresenceEvents:function(){return this._doCmd("getUserPresenceEvents")},_ensureStarted:function(){return null===this._startPromise&&(this._worker=new this._workerApi(this._workerScript),this._worker.onmessage=this._onWorkerMessage.bind(this),this._startPromise=this._doCmd("_setupWorker",[this._dbName]).then(()=>{r.logger.log("IndexedDB worker is ready")})),this._startPromise},_doCmd:function(e,t){return Promise.resolve().then(()=>{const n=this._nextSeq++,r=(0,i.defer)();return this._inFlight[n]=r,this._worker.postMessage({command:e,seq:n,args:t}),r.promise})},_onWorkerMessage:function(e){const t=e.data;if("cmd_success"==t.command||"cmd_fail"==t.command){if(void 0===t.seq)return void r.logger.error("Got reply from worker with no seq");const e=this._inFlight[t.seq];if(void 0===e)return void r.logger.error("Got reply for unknown seq "+t.seq);if(delete this._inFlight[t.seq],"cmd_success"==t.command)e.resolve(t.result);else{const n=new Error(t.error.message);n.name=t.error.name,e.reject(n)}}else r.logger.warn("Unrecognised message from worker: "+t)}}},function(e,t,n){"use strict";var r=n(7);Object.defineProperty(t,"__esModule",{value:!0}),t.WebStorageSessionStore=s;var i=r(n(8));n(5);const o="session.e2e.";function s(e){if(this.store=e,!(i.isFunction(e.getItem)&&i.isFunction(e.setItem)&&i.isFunction(e.removeItem)&&i.isFunction(e.key)&&"number"==typeof e.length))throw new Error("Supplied webStore does not meet the WebStorage API interface")}s.prototype={removeEndToEndAccount:function(){this.store.removeItem(a)},getEndToEndAccount:function(){return this.store.getItem(a)},getAllEndToEndDevices:function(){const e=l(""),t={};for(let n=0;n>18&63,o=c>>12&63,s=c>>6&63,a=63&c,h[l++]=f.charAt(i)+f.charAt(o)+f.charAt(s)+f.charAt(a)}while(u299)&&r.error){for(var i in e=new Error("CouchDB error: "+(r.error.reason||r.error.error)),r)e[i]=r[i];return n(e,t,r)}return n(e,t,r)}))},t})?r.apply(t,i):r)||(e.exports=o)},function(e,t,n){"use strict";var r=n(314),i=n(315),o=n(144);e.exports={formats:o,parse:i,stringify:r}},function(e,t,n){"use strict";var r=n(82),i=n(144),o=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},a=Array.isArray,c=Array.prototype.push,f=function(e,t){c.apply(e,a(t)?t:[t])},u=Date.prototype.toISOString,l=i.default,d={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,format:l,formatter:i.formatters[l],indices:!1,serializeDate:function(e){return u.call(e)},skipNulls:!1,strictNullHandling:!1},h=function e(t,n,i,o,s,c,u,l,h,p,m,g,y){var b,_=t;if("function"==typeof u?_=u(n,_):_ instanceof Date?_=p(_):"comma"===i&&a(_)&&(_=_.join(",")),null===_){if(o)return c&&!g?c(n,d.encoder,y,"key"):n;_=""}if("string"==typeof(b=_)||"number"==typeof b||"boolean"==typeof b||"symbol"==typeof b||"bigint"==typeof b||r.isBuffer(_))return c?[m(g?n:c(n,d.encoder,y,"key"))+"="+m(c(_,d.encoder,y,"value"))]:[m(n)+"="+m(String(_))];var v,A=[];if(void 0===_)return A;if(a(u))v=u;else{var w=Object.keys(_);v=l?w.sort(l):w}for(var E=0;E0?b+y:""}},function(e,t,n){"use strict";var r=n(82),i=Object.prototype.hasOwnProperty,o=Array.isArray,s={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:r.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},a=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},c=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/g,s=n.depth>0&&/(\[[^[\]]*])/.exec(r),a=s?r.slice(0,s.index):r,c=[];if(a){if(!n.plainObjects&&i.call(Object.prototype,a)&&!n.allowPrototypes)return;c.push(a)}for(var f=0;n.depth>0&&null!==(s=o.exec(r))&&f=0;--i){var o,s=e[i];if("[]"===s&&n.parseArrays)o=[].concat(r);else{o=n.plainObjects?Object.create(null):{};var a="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,c=parseInt(a,10);n.parseArrays||""!==a?!isNaN(c)&&s!==a&&String(c)===a&&c>=0&&n.parseArrays&&c<=n.arrayLimit?(o=[])[c]=r:o[a]=r:o={0:r}}r=o}return r}(c,t,n)}};e.exports=function(e,t){var n=function(e){if(!e)return s;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new Error("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?s.charset:e.charset;return{allowDots:void 0===e.allowDots?s.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:s.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:s.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:s.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:s.comma,decoder:"function"==typeof e.decoder?e.decoder:s.decoder,delimiter:"string"==typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:s.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:s.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:s.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:s.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:s.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:s.strictNullHandling}}(t);if(""===e||null==e)return n.plainObjects?Object.create(null):{};for(var f="string"==typeof e?function(e,t){var n,c={},f=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,u=t.parameterLimit===1/0?void 0:t.parameterLimit,l=f.split(t.delimiter,u),d=-1,h=t.charset;if(t.charsetSentinel)for(n=0;n-1&&(m=m.split(",")),g.indexOf("[]=")>-1&&(m=o(m)?[m]:m),i.call(c,p)?c[p]=r.combine(c[p],m):c[p]=m}return c}(e,n):e,u=n.plainObjects?Object.create(null):{},l=Object.keys(f),d=0;d>>((3&t)<<3)&255;return i}}},function(e,t,n){var r=n(319),i=n(320);e.exports=r("v5",80,i)},function(e,t,n){var r=n(145);e.exports=function(e,t,n){var i=function(e,i,o,s){var a=o&&s||0;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var t=new Array(e.length),n=0;n>>32-t}e.exports=function(e){var t=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var o=unescape(encodeURIComponent(e));e=new Array(o.length);for(var s=0;s>>0;y=g,g=m,m=i(p,30)>>>0,p=h,h=_}n[0]=n[0]+h>>>0,n[1]=n[1]+p>>>0,n[2]=n[2]+m>>>0,n[3]=n[3]+g>>>0,n[4]=n[4]+y>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]}},function(e,t,n){"use strict";t.__esModule=!0;var r,i=n(0),o=(r=i)&&r.__esModule?r:{default:r},s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(322));function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var f=s.options,u=f.Options;function l(e,t){for(var n=s.tokenize(e),r=[],i=0,a=0;a2&&void 0!==arguments[2]?arguments[2]:0;if(0===o.default.Children.count(t.props.children))return t;var i=[];o.default.Children.forEach(t.props.children,(function(t){"string"==typeof t?(r+=1,i.push.apply(i,l(t,n))):o.default.isValidElement(t)?"string"==typeof t.type&&f.contains(n.ignoreTags,t.type.toUpperCase())?i.push(t):i.push(e(t,n,++r)):i.push(t)}));var s={key:"linkified-element-"+r};for(var a in t.props)s[a]=t.props[a];return o.default.cloneElement(t,s,i)}(o.default.createElement(r,e),n,0)},t}(o.default.Component);t.default=d},function(e,t,n){"use strict";t.__esModule=!0,t.tokenize=t.test=t.scanner=t.parser=t.options=t.inherits=t.find=void 0;var r=n(52),i=a(n(323)),o=a(n(324)),s=a(n(325));function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var c=function(e){return s.run(o.run(e))};t.find=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=c(e),r=[],i=0;i1&&void 0!==arguments[1]?arguments[1]:null,n=c(e);return 1===n.length&&n[0].isLink&&(!t||n[0].type===t)},t.tokenize=c},function(e,t,n){"use strict";t.__esModule=!0;var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i={defaultProtocol:"http",events:null,format:s,formatHref:s,nl2br:!1,tagName:"a",target:function(e,t){return"url"===t?"_blank":null},validate:!0,ignoreTags:[],attributes:null,className:"linkified"};function o(e){e=e||{},this.defaultProtocol=e.hasOwnProperty("defaultProtocol")?e.defaultProtocol:i.defaultProtocol,this.events=e.hasOwnProperty("events")?e.events:i.events,this.format=e.hasOwnProperty("format")?e.format:i.format,this.formatHref=e.hasOwnProperty("formatHref")?e.formatHref:i.formatHref,this.nl2br=e.hasOwnProperty("nl2br")?e.nl2br:i.nl2br,this.tagName=e.hasOwnProperty("tagName")?e.tagName:i.tagName,this.target=e.hasOwnProperty("target")?e.target:i.target,this.validate=e.hasOwnProperty("validate")?e.validate:i.validate,this.ignoreTags=[],this.attributes=e.attributes||e.linkAttributes||i.attributes,this.className=e.hasOwnProperty("className")?e.className:e.linkClass||i.className;for(var t=e.hasOwnProperty("ignoreTags")?e.ignoreTags:i.ignoreTags,n=0;n",l(i.CLOSEANGLEBRACKET)).on(")",l(i.CLOSEPAREN)).on("&",l(i.AMPERSAND)).on([",",";","!",'"',"'"],l(i.PUNCTUATION)),d.on("\n",l(i.NL)).on(f,g),g.on(f,g);for(var y=0;y=0&&f++,a++,i++;if(!(f<0)){i-=f,a-=f;var u=c.emit();r.push(new u(e.substr(i-a,a)))}}return r},t.start=P},function(e,t,n){"use strict";t.__esModule=!0,t.start=t.run=t.TOKENS=t.State=void 0;var r=n(146),i=n(326),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(i),s=n(83);var a=function(e){return new r.TokenState(e)},c=a(),f=a(),u=a(),l=a(),d=a(),h=a(),p=a(),m=a(i.URL),g=a(),y=a(i.URL),b=a(i.URL),_=a(),v=a(),A=a(),w=a(),E=a(),k=a(i.URL),S=a(i.URL),I=a(i.URL),T=a(i.URL),R=a(),O=a(),x=a(),C=a(),P=a(),M=a(),D=a(i.EMAIL),B=a(),N=a(i.EMAIL),j=a(i.MAILTOEMAIL),U=a(),L=a(),F=a(),q=a(),K=a(i.NL);c.on(s.NL,K).on(s.PROTOCOL,f).on(s.MAILTO,u).on(s.SLASH,l),f.on(s.SLASH,l),l.on(s.SLASH,d),c.on(s.TLD,h).on(s.DOMAIN,h).on(s.LOCALHOST,m).on(s.NUM,h),d.on(s.TLD,b).on(s.DOMAIN,b).on(s.NUM,b).on(s.LOCALHOST,b),h.on(s.DOT,p),P.on(s.DOT,M),p.on(s.TLD,m).on(s.DOMAIN,h).on(s.NUM,h).on(s.LOCALHOST,h),M.on(s.TLD,D).on(s.DOMAIN,P).on(s.NUM,P).on(s.LOCALHOST,P),m.on(s.DOT,p),D.on(s.DOT,M),m.on(s.COLON,g).on(s.SLASH,b),g.on(s.NUM,y),y.on(s.SLASH,b),D.on(s.COLON,B),B.on(s.NUM,N);var z=[s.DOMAIN,s.AT,s.LOCALHOST,s.NUM,s.PLUS,s.POUND,s.PROTOCOL,s.SLASH,s.TLD,s.UNDERSCORE,s.SYM,s.AMPERSAND],G=[s.COLON,s.DOT,s.QUERY,s.PUNCTUATION,s.CLOSEBRACE,s.CLOSEBRACKET,s.CLOSEANGLEBRACKET,s.CLOSEPAREN,s.OPENBRACE,s.OPENBRACKET,s.OPENANGLEBRACKET,s.OPENPAREN];b.on(s.OPENBRACE,v).on(s.OPENBRACKET,A).on(s.OPENANGLEBRACKET,w).on(s.OPENPAREN,E),_.on(s.OPENBRACE,v).on(s.OPENBRACKET,A).on(s.OPENANGLEBRACKET,w).on(s.OPENPAREN,E),v.on(s.CLOSEBRACE,b),A.on(s.CLOSEBRACKET,b),w.on(s.CLOSEANGLEBRACKET,b),E.on(s.CLOSEPAREN,b),k.on(s.CLOSEBRACE,b),S.on(s.CLOSEBRACKET,b),I.on(s.CLOSEANGLEBRACKET,b),T.on(s.CLOSEPAREN,b),R.on(s.CLOSEBRACE,b),O.on(s.CLOSEBRACKET,b),x.on(s.CLOSEANGLEBRACKET,b),C.on(s.CLOSEPAREN,b),v.on(z,k),A.on(z,S),w.on(z,I),E.on(z,T),v.on(G,R),A.on(G,O),w.on(G,x),E.on(G,C),k.on(z,k),S.on(z,S),I.on(z,I),T.on(z,T),k.on(G,k),S.on(G,S),I.on(G,I),T.on(G,T),R.on(z,k),O.on(z,S),x.on(z,I),C.on(z,T),R.on(G,R),O.on(G,O),x.on(G,x),C.on(G,C),b.on(z,b),_.on(z,b),b.on(G,_),_.on(G,_),u.on(s.TLD,j).on(s.DOMAIN,j).on(s.NUM,j).on(s.LOCALHOST,j),j.on(z,j).on(G,U),U.on(z,j).on(G,U);var H=[s.DOMAIN,s.NUM,s.PLUS,s.POUND,s.QUERY,s.UNDERSCORE,s.SYM,s.AMPERSAND,s.TLD];h.on(H,L).on(s.AT,F),m.on(H,L).on(s.AT,F),p.on(H,L),L.on(H,L).on(s.AT,F).on(s.DOT,q),q.on(H,L),F.on(s.TLD,P).on(s.DOMAIN,P).on(s.LOCALHOST,D);t.State=r.TokenState,t.TOKENS=o,t.run=function(e){for(var t=e.length,n=0,r=[],o=[];n=0&&d++,n++,u++;if(d<0)for(var h=n-u;h0&&(r.push(new i.TEXT(o)),o=[]),n-=d,u-=d;var p=l.emit();r.push(new p(e.slice(n-u,n)))}}return o.length>0&&r.push(new i.TEXT(o)),r},t.start=c},function(e,t,n){"use strict";t.__esModule=!0,t.URL=t.TEXT=t.NL=t.EMAIL=t.MAILTOEMAIL=t.Base=void 0;var r=n(147),i=n(52),o=n(83);function s(e){return e instanceof o.DOMAIN||e instanceof o.TLD}var a=(0,r.createTokenClass)();a.prototype={type:"token",isLink:!1,toString:function(){for(var e=[],t=0;t0&&void 0!==arguments[0]?arguments[0]:"http";return{type:this.type,value:this.toString(),href:this.toHref(e)}}};var c=(0,i.inherits)(a,(0,r.createTokenClass)(),{type:"email",isLink:!0}),f=(0,i.inherits)(a,(0,r.createTokenClass)(),{type:"email",isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),u=(0,i.inherits)(a,(0,r.createTokenClass)(),{type:"text"}),l=(0,i.inherits)(a,(0,r.createTokenClass)(),{type:"nl"}),d=(0,i.inherits)(a,(0,r.createTokenClass)(),{type:"url",isLink:!0,toHref:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"http",t=!1,n=!1,r=this.v,i=[],a=0;r[a]instanceof o.PROTOCOL;)t=!0,i.push(r[a].toString().toLowerCase()),a++;for(;r[a]instanceof o.SLASH;)n=!0,i.push(r[a].toString()),a++;for(;s(r[a]);)i.push(r[a].toString().toLowerCase()),a++;for(;a