diff --git a/build/cli.cjs b/build/cli.cjs index 35b2fe5..232af0c 100755 --- a/build/cli.cjs +++ b/build/cli.cjs @@ -3653,8 +3653,8 @@ async function newZKey(r1csName, ptauName, zkeyName, logger) { const cirPower = log2(r1cs.nConstraints + r1cs.nPubInputs + r1cs.nOutputs +1 -1) +1; - if (cirPower > power) { - if (logger) logger.error(`circuit too big for this power of tau ceremony. ${r1cs.nConstraints} > 2**${power}`); + if (cirPower > power+1) { + if (logger) logger.error(`circuit too big for this power of tau ceremony. ${r1cs.nConstraints}*2 > 2**${power}`); return -1; } @@ -4667,6 +4667,7 @@ async function phase2importMPCParams(zkeyNameOld, mpcparamsName, zkeyNameNew, na const buffTauLEM = await curve.G1.batchUtoLEM(buffTauU); buffH = new Uint8Array(zkeyHeader.domainSize*sG1); buffH.set(buffTauLEM); // Let the last one to zero. + curve.G1.toRprLEM(buffH, sG1*(zkeyHeader.domainSize-1), curve.G1.zeroAffine); const n2Inv = curve.Fr.neg(curve.Fr.inv(curve.Fr.e(2))); const wInv = curve.Fr.inv(curve.Fr.w[zkeyHeader.power+1]); buffH = await curve.G1.batchApplyKey(buffH, n2Inv, wInv, "affine", "jacobian", logger); @@ -5012,6 +5013,7 @@ async function phase2verify(r1csFileName, pTauFileName, zkeyFileName, logger) { const e = curve.Fr.fromRng(rng); curve.Fr.toRprLE(buff_r, i*zkey.n8r, e); } + curve.Fr.toRprLE(buff_r, (zkey.domainSize-1)*zkey.n8r, curve.Fr.zero); let R1 = G.zero; for (let i=0; i power) { - if (logger) logger.error(`circuit too big for this power of tau ceremony. ${r1cs.nConstraints} > 2**${power}`); + if (cirPower > power+1) { + if (logger) logger.error(`circuit too big for this power of tau ceremony. ${r1cs.nConstraints}*2 > 2**${power}`); return -1; } @@ -4909,6 +4909,7 @@ async function phase2importMPCParams(zkeyNameOld, mpcparamsName, zkeyNameNew, na const buffTauLEM = await curve.G1.batchUtoLEM(buffTauU); buffH = new Uint8Array(zkeyHeader.domainSize*sG1); buffH.set(buffTauLEM); // Let the last one to zero. + curve.G1.toRprLEM(buffH, sG1*(zkeyHeader.domainSize-1), curve.G1.zeroAffine); const n2Inv = curve.Fr.neg(curve.Fr.inv(curve.Fr.e(2))); const wInv = curve.Fr.inv(curve.Fr.w[zkeyHeader.power+1]); buffH = await curve.G1.batchApplyKey(buffH, n2Inv, wInv, "affine", "jacobian", logger); @@ -5254,6 +5255,7 @@ async function phase2verify(r1csFileName, pTauFileName, zkeyFileName, logger) { const e = curve.Fr.fromRng(rng); curve.Fr.toRprLE(buff_r, i*zkey.n8r, e); } + curve.Fr.toRprLE(buff_r, (zkey.domainSize-1)*zkey.n8r, curve.Fr.zero); let R1 = G.zero; for (let i=0; i. */ - /* - This library does operations on polynomials with coefficients in a field F. - - A polynomial P(x) = p0 + p1 * x + p2 * x^2 + ... + pn * x^n is represented - by the array [ p0, p1, p2, ... , pn ]. - */ - - class PolField { - constructor (F) { - this.F = F; - - let rem = F.sqrt_t; - let s = F.sqrt_s; - - const five = this.F.add(this.F.add(this.F.two, this.F.two), this.F.one); - - this.w = new Array(s+1); - this.wi = new Array(s+1); - this.w[s] = this.F.pow(five, rem); - this.wi[s] = this.F.inv(this.w[s]); - - let n=s-1; - while (n>=0) { - this.w[n] = this.F.square(this.w[n+1]); - this.wi[n] = this.F.square(this.wi[n+1]); - n--; - } - - - this.roots = []; - /* for (let i=0; i<16; i++) { - let r = this.F.one; - n = 1 << i; - const rootsi = new Array(n); - for (let j=0; j=0) && (!this.roots[i]); i--) { - let r = this.F.one; - const nroots = 1 << i; - const rootsi = new Array(nroots); - for (let j=0; j a.length) { - [b, a] = [a, b]; - } - - if ((b.length <= 2) || (b.length < log2(a.length))) { - return this.mulNormal(a,b); - } else { - return this.mulFFT(a,b); - } - } - - mulNormal(a, b) { - let res = []; - for (let i=0; i0) { - const z = new Array(n).fill(this.F.zero); - return z.concat(p); - } else { - if (-n >= p.length) return []; - return p.slice(-n); - } - } - - eval2(p, x) { - let v = this.F.zero; - let ix = this.F.one; - for (let i=0; i> 1), - F.mul( - x, - _eval(p, newX, offset+step , step << 1, n >> 1))); - return res; - } - } - - lagrange(points) { - let roots = [this.F.one]; - for (let i=0; i> 1; - const p1 = this._fft(pall, bits-1, offset, step*2); - const p2 = this._fft(pall, bits-1, offset+step, step*2); - - const out = new Array(n); - - let m= this.F.one; - for (let i=0; i0 && this.F.eq(p[i], this.F.zero) ) i--; - return p.slice(0, i+1); - } - - eq(a, b) { - const pa = this.reduce(a); - const pb = this.reduce(b); - - if (pa.length != pb.length) return false; - for (let i=0; i=0; i--) { - res[i] = this.F.add(this.F.mul(res[i+1], r), p[i+1]); - } - return res; - } - - _next2Power(v) { - v--; - v |= v >> 1; - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - v++; - return v; - } - - toString(p) { - const ap = this.normalize(p); - let S = ""; - for (let i=ap.length-1; i>=0; i--) { - if (!this.F.eq(p[i], this.F.zero)) { - if (S!="") S += " + "; - S = S + p[i].toString(10); - if (i>0) { - S = S + "x"; - if (i>1) { - S = S + "^" +i; - } - } - } - } - return S; - } - - normalize(p) { - const res = new Array(p.length); - for (let i=0; i - // rec = x^(k-2-scaleV)/ v - // - // res = x^m/v = x^(m + (2*k-2 - scaleV) - (2*k-2 - scaleV)) /v => - // res = rec * x^(m - (2*k-2 - scaleV)) => - // res = rec * x^(m - 2*k + 2 + scaleV) - - const rec = this._reciprocal(this.scaleX(v, scaleV), kbits); - const res = this.scaleX(rec, m - 2*k + 2 + scaleV); - - return res; - } - - div(_u, _v) { - if (_u.length < _v.length) return []; - const kbits = log2(_v.length-1)+1; - const k = 1 << kbits; - - const u = this.scaleX(_u, k-_v.length); - const v = this.scaleX(_v, k-_v.length); - - const n = v.length-1; - let m = u.length-1; - - const s = this._reciprocal(v, kbits); - let t; - if (m>2*n) { - t = this.sub(this.scaleX([this.F.one], 2*n), this.mul(s, v)); - } - - let q = []; - let rem = u; - let us, ut; - let finish = false; - - while (!finish) { - us = this.mul(rem, s); - q = this.add(q, this.scaleX(us, -2*n)); - - if ( m > 2*n ) { - ut = this.mul(rem, t); - rem = this.scaleX(ut, -2*n); - m = rem.length-1; - } else { - finish = true; - } - } - - return q; - } - - - // returns the ith nth-root of one - oneRoot(n, i) { - let nbits = log2(n-1)+1; - let res = this.F.one; - let r = i; - - if(i>=n) { - throw new Error("Given 'i' should be lower than 'n'"); - } - else if (1<0) { - if (r & 1 == 1) { - res = this.F.mul(res, this.w[nbits]); - } - r = r >> 1; - nbits --; - } - return res; - } - - computeVanishingPolinomial(bits, t) { - const m = 1 << bits; - return this.F.sub(this.F.pow(t, m), this.F.one); - } - - evaluateLagrangePolynomials(bits, t) { - const m= 1 << bits; - const tm = this.F.pow(t, m); - const u= new Array(m).fill(this.F.zero); - this._setRoots(bits); - const omega = this.w[bits]; - - if (this.F.eq(tm, this.F.one)) { - for (let i = 0; i < m; i++) { - if (this.F.eq(this.roots[bits][0],t)) { // i.e., t equals omega^i - u[i] = this.F.one; - return u; - } - } - } - - const z = this.F.sub(tm, this.F.one); - // let l = this.F.mul(z, this.F.pow(this.F.twoinv, m)); - let l = this.F.mul(z, this.F.inv(this.F.e(m))); - for (let i = 0; i < m; i++) { - u[i] = this.F.mul(l, this.F.inv(this.F.sub(t,this.roots[bits][i]))); - l = this.F.mul(l, omega); - } - - return u; - } - - log2(V) { - return log2(V); - } - } - - function log2( V ) - { - return( ( ( V & 0xFFFF0000 ) !== 0 ? ( V &= 0xFFFF0000, 16 ) : 0 ) | ( ( V & 0xFF00FF00 ) !== 0 ? ( V &= 0xFF00FF00, 8 ) : 0 ) | ( ( V & 0xF0F0F0F0 ) !== 0 ? ( V &= 0xF0F0F0F0, 4 ) : 0 ) | ( ( V & 0xCCCCCCCC ) !== 0 ? ( V &= 0xCCCCCCCC, 2 ) : 0 ) | ( ( V & 0xAAAAAAAA ) !== 0 ) ); - } - - - function __fft(PF, pall, bits, offset, step) { - - const n = 1 << bits; - if (n==1) { - return [ pall[offset] ]; - } else if (n==2) { - return [ - PF.F.add(pall[offset], pall[offset + step]), - PF.F.sub(pall[offset], pall[offset + step])]; - } - - const ndiv2 = n >> 1; - const p1 = __fft(PF, pall, bits-1, offset, step*2); - const p2 = __fft(PF, pall, bits-1, offset+step, step*2); - - const out = new Array(n); - - for (let i=0; i> 1; - const p1 = __fft2(PF, pall.slice(0, ndiv2), bits-1); - const p2 = __fft2(PF, pall.slice(ndiv2), bits-1); - - const out = new Array(n); - - for (let i=0; i>> 24] | - (_revTable[(idx >>> 16) & 0xFF] << 8) | - (_revTable[(idx >>> 8) & 0xFF] << 16) | - (_revTable[idx & 0xFF] << 24) - ) >>> (32-bits); - } - - function __bitReverse(p, bits) { - for (let k=0; kk) { - const tmp= p[k]; - p[k] = p[r]; - p[r] = tmp; - } - } - - } - /* Copyright 2018 0kims association. @@ -2703,36 +2122,6 @@ var snarkjs = (function (exports) { */ - function mulScalar(F, base, e) { - let res; - - if (isZero$2(e)) return F.zero; - - const n = naf$2(e); - - if (n[n.length-1] == 1) { - res = base; - } else if (n[n.length-1] == -1) { - res = F.neg(base); - } else { - throw new Error("invlaud NAF"); - } - - for (let i=n.length-2; i>=0; i--) { - - res = F.double(res); - - if (n[i] == 1) { - res = F.add(res, base); - } else if (n[i] == -1) { - res = F.sub(res, base); - } - } - - return res; - } - - /* exports.mulScalar = (F, base, e) =>{ let res = F.zero; @@ -3706,950 +3095,6 @@ var snarkjs = (function (exports) { } - /* - Copyright 2018 0kims association. - - This file is part of snarkjs. - - snarkjs is a free software: you can redistribute it and/or - modify it under the terms of the GNU General Public License as published by the - Free Software Foundation, either version 3 of the License, or (at your option) - any later version. - - snarkjs is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - snarkjs. If not, see . - */ - - class F2Field { - constructor(F, nonResidue) { - this.type="F2"; - this.F = F; - this.zero = [this.F.zero, this.F.zero]; - this.one = [this.F.one, this.F.zero]; - this.negone = this.neg(this.one); - this.nonResidue = nonResidue; - this.m = F.m*2; - this.p = F.p; - this.n64 = F.n64*2; - this.n32 = this.n64*2; - this.n8 = this.n64*8; - - buildSqrt(this); - } - - _mulByNonResidue(a) { - return this.F.mul(this.nonResidue, a); - } - - copy(a) { - return [this.F.copy(a[0]), this.F.copy(a[1])]; - } - - add(a, b) { - return [ - this.F.add(a[0], b[0]), - this.F.add(a[1], b[1]) - ]; - } - - double(a) { - return this.add(a,a); - } - - sub(a, b) { - return [ - this.F.sub(a[0], b[0]), - this.F.sub(a[1], b[1]) - ]; - } - - neg(a) { - return this.sub(this.zero, a); - } - - conjugate(a) { - return [ - a[0], - this.F.neg(a[1]) - ]; - } - - mul(a, b) { - const aA = this.F.mul(a[0] , b[0]); - const bB = this.F.mul(a[1] , b[1]); - - return [ - this.F.add( aA , this._mulByNonResidue(bB)), - this.F.sub( - this.F.mul( - this.F.add(a[0], a[1]), - this.F.add(b[0], b[1])), - this.F.add(aA, bB))]; - } - - inv(a) { - const t0 = this.F.square(a[0]); - const t1 = this.F.square(a[1]); - const t2 = this.F.sub(t0, this._mulByNonResidue(t1)); - const t3 = this.F.inv(t2); - return [ - this.F.mul(a[0], t3), - this.F.neg(this.F.mul( a[1], t3)) ]; - } - - div(a, b) { - return this.mul(a, this.inv(b)); - } - - square(a) { - const ab = this.F.mul(a[0] , a[1]); - - /* - [ - (a + b) * (a + non_residue * b) - ab - non_residue * ab, - ab + ab - ]; - */ - - return [ - this.F.sub( - this.F.mul( - this.F.add(a[0], a[1]) , - this.F.add( - a[0] , - this._mulByNonResidue(a[1]))), - this.F.add( - ab, - this._mulByNonResidue(ab))), - this.F.add(ab, ab) - ]; - } - - isZero(a) { - return this.F.isZero(a[0]) && this.F.isZero(a[1]); - } - - eq(a, b) { - return this.F.eq(a[0], b[0]) && this.F.eq(a[1], b[1]); - } - - mulScalar(base, e) { - return mulScalar(this, base, e); - } - - pow(base, e) { - return exp$3(this, base, e); - } - - exp(base, e) { - return exp$3(this, base, e); - } - - toString(a) { - return `[ ${this.F.toString(a[0])} , ${this.F.toString(a[1])} ]`; - } - - fromRng(rng) { - const c0 = this.F.fromRng(rng); - const c1 = this.F.fromRng(rng); - return [c0, c1]; - } - - gt(a, b) { - if (this.F.gt(a[0], b[0])) return true; - if (this.F.gt(b[0], a[0])) return false; - if (this.F.gt(a[1], b[1])) return true; - return false; - } - - geq(a, b) { - return this.gt(a, b) || this.eq(a, b); - } - - lt(a, b) { - return !this.geq(a,b); - } - - leq(a, b) { - return !this.gt(a,b); - } - - neq(a, b) { - return !this.eq(a,b); - } - - random() { - return [this.F.random(), this.F.random()]; - } - - - toRprLE(buff, o, e) { - this.F.toRprLE(buff, o, e[0]); - this.F.toRprLE(buff, o+this.F.n8, e[1]); - } - - toRprBE(buff, o, e) { - this.F.toRprBE(buff, o, e[1]); - this.F.toRprBE(buff, o+this.F.n8, e[0]); - } - - toRprLEM(buff, o, e) { - this.F.toRprLEM(buff, o, e[0]); - this.F.toRprLEM(buff, o+this.F.n8, e[1]); - } - - - toRprBEM(buff, o, e) { - this.F.toRprBEM(buff, o, e[1]); - this.F.toRprBEM(buff, o+this.F.n8, e[0]); - } - - fromRprLE(buff, o) { - o = o || 0; - const c0 = this.F.fromRprLE(buff, o); - const c1 = this.F.fromRprLE(buff, o+this.F.n8); - return [c0, c1]; - } - - fromRprBE(buff, o) { - o = o || 0; - const c1 = this.F.fromRprBE(buff, o); - const c0 = this.F.fromRprBE(buff, o+this.F.n8); - return [c0, c1]; - } - - fromRprLEM(buff, o) { - o = o || 0; - const c0 = this.F.fromRprLEM(buff, o); - const c1 = this.F.fromRprLEM(buff, o+this.F.n8); - return [c0, c1]; - } - - fromRprBEM(buff, o) { - o = o || 0; - const c1 = this.F.fromRprBEM(buff, o); - const c0 = this.F.fromRprBEM(buff, o+this.F.n8); - return [c0, c1]; - } - - } - - /* - Copyright 2018 0kims association. - - This file is part of snarkjs. - - snarkjs is a free software: you can redistribute it and/or - modify it under the terms of the GNU General Public License as published by the - Free Software Foundation, either version 3 of the License, or (at your option) - any later version. - - snarkjs is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - snarkjs. If not, see . - */ - - class F3Field { - constructor(F, nonResidue) { - this.type="F3"; - this.F = F; - this.zero = [this.F.zero, this.F.zero, this.F.zero]; - this.one = [this.F.one, this.F.zero, this.F.zero]; - this.negone = this.neg(this.one); - this.nonResidue = nonResidue; - this.m = F.m*3; - this.p = F.p; - this.n64 = F.n64*3; - this.n32 = this.n64*2; - this.n8 = this.n64*8; - } - - _mulByNonResidue(a) { - return this.F.mul(this.nonResidue, a); - } - - copy(a) { - return [this.F.copy(a[0]), this.F.copy(a[1]), this.F.copy(a[2])]; - } - - add(a, b) { - return [ - this.F.add(a[0], b[0]), - this.F.add(a[1], b[1]), - this.F.add(a[2], b[2]) - ]; - } - - double(a) { - return this.add(a,a); - } - - sub(a, b) { - return [ - this.F.sub(a[0], b[0]), - this.F.sub(a[1], b[1]), - this.F.sub(a[2], b[2]) - ]; - } - - neg(a) { - return this.sub(this.zero, a); - } - - mul(a, b) { - - const aA = this.F.mul(a[0] , b[0]); - const bB = this.F.mul(a[1] , b[1]); - const cC = this.F.mul(a[2] , b[2]); - - return [ - this.F.add( - aA, - this._mulByNonResidue( - this.F.sub( - this.F.mul( - this.F.add(a[1], a[2]), - this.F.add(b[1], b[2])), - this.F.add(bB, cC)))), // aA + non_residue*((b+c)*(B+C)-bB-cC), - - this.F.add( - this.F.sub( - this.F.mul( - this.F.add(a[0], a[1]), - this.F.add(b[0], b[1])), - this.F.add(aA, bB)), - this._mulByNonResidue( cC)), // (a+b)*(A+B)-aA-bB+non_residue*cC - - this.F.add( - this.F.sub( - this.F.mul( - this.F.add(a[0], a[2]), - this.F.add(b[0], b[2])), - this.F.add(aA, cC)), - bB)]; // (a+c)*(A+C)-aA+bB-cC) - } - - inv(a) { - const t0 = this.F.square(a[0]); // t0 = a^2 ; - const t1 = this.F.square(a[1]); // t1 = b^2 ; - const t2 = this.F.square(a[2]); // t2 = c^2; - const t3 = this.F.mul(a[0],a[1]); // t3 = ab - const t4 = this.F.mul(a[0],a[2]); // t4 = ac - const t5 = this.F.mul(a[1],a[2]); // t5 = bc; - // c0 = t0 - non_residue * t5; - const c0 = this.F.sub(t0, this._mulByNonResidue(t5)); - // c1 = non_residue * t2 - t3; - const c1 = this.F.sub(this._mulByNonResidue(t2), t3); - const c2 = this.F.sub(t1, t4); // c2 = t1-t4 - - // t6 = (a * c0 + non_residue * (c * c1 + b * c2)).inv(); - const t6 = - this.F.inv( - this.F.add( - this.F.mul(a[0], c0), - this._mulByNonResidue( - this.F.add( - this.F.mul(a[2], c1), - this.F.mul(a[1], c2))))); - - return [ - this.F.mul(t6, c0), // t6*c0 - this.F.mul(t6, c1), // t6*c1 - this.F.mul(t6, c2)]; // t6*c2 - } - - div(a, b) { - return this.mul(a, this.inv(b)); - } - - square(a) { - const s0 = this.F.square(a[0]); // s0 = a^2 - const ab = this.F.mul(a[0], a[1]); // ab = a*b - const s1 = this.F.add(ab, ab); // s1 = 2ab; - const s2 = this.F.square( - this.F.add(this.F.sub(a[0],a[1]), a[2])); // s2 = (a - b + c)^2; - const bc = this.F.mul(a[1],a[2]); // bc = b*c - const s3 = this.F.add(bc, bc); // s3 = 2*bc - const s4 = this.F.square(a[2]); // s4 = c^2 - - - return [ - this.F.add( - s0, - this._mulByNonResidue(s3)), // s0 + non_residue * s3, - this.F.add( - s1, - this._mulByNonResidue(s4)), // s1 + non_residue * s4, - this.F.sub( - this.F.add( this.F.add(s1, s2) , s3 ), - this.F.add(s0, s4))]; // s1 + s2 + s3 - s0 - s4 - } - - isZero(a) { - return this.F.isZero(a[0]) && this.F.isZero(a[1]) && this.F.isZero(a[2]); - } - - eq(a, b) { - return this.F.eq(a[0], b[0]) && this.F.eq(a[1], b[1]) && this.F.eq(a[2], b[2]); - } - - affine(a) { - return [this.F.affine(a[0]), this.F.affine(a[1]), this.F.affine(a[2])]; - } - - mulScalar(base, e) { - return mulScalar(this, base, e); - } - - pow(base, e) { - return exp$3(this, base, e); - } - - exp(base, e) { - return exp$3(this, base, e); - } - - toString(a) { - return `[ ${this.F.toString(a[0])} , ${this.F.toString(a[1])}, ${this.F.toString(a[2])} ]`; - } - - fromRng(rng) { - const c0 = this.F.fromRng(rng); - const c1 = this.F.fromRng(rng); - const c2 = this.F.fromRng(rng); - return [c0, c1, c2]; - } - - gt(a, b) { - if (this.F.gt(a[0], b[0])) return true; - if (this.F.gt(b[0], a[0])) return false; - if (this.F.gt(a[1], b[1])) return true; - if (this.F.gt(b[1], a[1])) return false; - if (this.F.gt(a[2], b[2])) return true; - return false; - } - - - geq(a, b) { - return this.gt(a, b) || this.eq(a, b); - } - - lt(a, b) { - return !this.geq(a,b); - } - - leq(a, b) { - return !this.gt(a,b); - } - - neq(a, b) { - return !this.eq(a,b); - } - - random() { - return [this.F.random(), this.F.random(), this.F.random()]; - } - - - toRprLE(buff, o, e) { - this.F.toRprLE(buff, o, e[0]); - this.F.toRprLE(buff, o+this.F.n8, e[1]); - this.F.toRprLE(buff, o+this.F.n8*2, e[2]); - } - - toRprBE(buff, o, e) { - this.F.toRprBE(buff, o, e[2]); - this.F.toRprBE(buff, o+this.F.n8, e[1]); - this.F.toRprBE(buff, o+this.F.n8*2, e[0]); - } - - toRprLEM(buff, o, e) { - this.F.toRprLEM(buff, o, e[0]); - this.F.toRprLEM(buff, o+this.F.n8, e[1]); - this.F.toRprLEM(buff, o+this.F.n8*2, e[2]); - } - - - toRprBEM(buff, o, e) { - this.F.toRprBEM(buff, o, e[2]); - this.F.toRprBEM(buff, o+this.F.n8, e[1]); - this.F.toRprBEM(buff, o+this.F.n8*2, e[0]); - } - - fromRprLE(buff, o) { - o = o || 0; - const c0 = this.F.fromRprLE(buff, o); - const c1 = this.F.fromRprLE(buff, o+this.n8); - const c2 = this.F.fromRprLE(buff, o+this.n8*2); - return [c0, c1, c2]; - } - - fromRprBE(buff, o) { - o = o || 0; - const c2 = this.F.fromRprBE(buff, o); - const c1 = this.F.fromRprBE(buff, o+this.n8); - const c0 = this.F.fromRprBE(buff, o+this.n8*2); - return [c0, c1, c2]; - } - - fromRprLEM(buff, o) { - o = o || 0; - const c0 = this.F.fromRprLEM(buff, o); - const c1 = this.F.fromRprLEM(buff, o+this.n8); - const c2 = this.F.fromRprLEM(buff, o+this.n8*2); - return [c0, c1, c2]; - } - - fromRprBEM(buff, o) { - o = o || 0; - const c2 = this.F.fromRprBEM(buff, o); - const c1 = this.F.fromRprBEM(buff, o+this.n8); - const c0 = this.F.fromRprBEM(buff, o+this.n8*2); - return [c0, c1, c2]; - } - - } - - /* - Copyright 2018 0kims association. - - This file is part of snarkjs. - - snarkjs is a free software: you can redistribute it and/or - modify it under the terms of the GNU General Public License as published by the - Free Software Foundation, either version 3 of the License, or (at your option) - any later version. - - snarkjs is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - snarkjs. If not, see . - */ - - - function isGreatest(F, a) { - if (Array.isArray(a)) { - for (let i=a.length-1; i>=0; i--) { - if (!F.F.isZero(a[i])) { - return isGreatest(F.F, a[i]); - } - } - return 0; - } else { - const na = F.neg(a); - return gt$2(a, na); - } - } - - - class EC { - - constructor(F, g) { - this.F = F; - this.g = g; - if (this.g.length == 2) this.g[2] = this.F.one; - this.zero = [this.F.zero, this.F.one, this.F.zero]; - } - - add(p1, p2) { - - const F = this.F; - - if (this.eq(p1, this.zero)) return p2; - if (this.eq(p2, this.zero)) return p1; - - const res = new Array(3); - - const Z1Z1 = F.square( p1[2] ); - const Z2Z2 = F.square( p2[2] ); - - const U1 = F.mul( p1[0] , Z2Z2 ); // U1 = X1 * Z2Z2 - const U2 = F.mul( p2[0] , Z1Z1 ); // U2 = X2 * Z1Z1 - - const Z1_cubed = F.mul( p1[2] , Z1Z1); - const Z2_cubed = F.mul( p2[2] , Z2Z2); - - const S1 = F.mul( p1[1] , Z2_cubed); // S1 = Y1 * Z2 * Z2Z2 - const S2 = F.mul( p2[1] , Z1_cubed); // S2 = Y2 * Z1 * Z1Z1 - - if (F.eq(U1,U2) && F.eq(S1,S2)) { - return this.double(p1); - } - - const H = F.sub( U2 , U1 ); // H = U2-U1 - - const S2_minus_S1 = F.sub( S2 , S1 ); - - const I = F.square( F.add(H,H) ); // I = (2 * H)^2 - const J = F.mul( H , I ); // J = H * I - - const r = F.add( S2_minus_S1 , S2_minus_S1 ); // r = 2 * (S2-S1) - const V = F.mul( U1 , I ); // V = U1 * I - - res[0] = - F.sub( - F.sub( F.square(r) , J ), - F.add( V , V )); // X3 = r^2 - J - 2 * V - - const S1_J = F.mul( S1 , J ); - - res[1] = - F.sub( - F.mul( r , F.sub(V,res[0])), - F.add( S1_J,S1_J )); // Y3 = r * (V-X3)-2 S1 J - - res[2] = - F.mul( - H, - F.sub( - F.square( F.add(p1[2],p2[2]) ), - F.add( Z1Z1 , Z2Z2 ))); // Z3 = ((Z1+Z2)^2-Z1Z1-Z2Z2) * H - - return res; - } - - neg(p) { - return [p[0], this.F.neg(p[1]), p[2]]; - } - - sub(a, b) { - return this.add(a, this.neg(b)); - } - - double(p) { - const F = this.F; - - const res = new Array(3); - - if (this.eq(p, this.zero)) return p; - - const A = F.square( p[0] ); // A = X1^2 - const B = F.square( p[1] ); // B = Y1^2 - const C = F.square( B ); // C = B^2 - - let D = - F.sub( - F.square( F.add(p[0] , B )), - F.add( A , C)); - D = F.add(D,D); // D = 2 * ((X1 + B)^2 - A - C) - - const E = F.add( F.add(A,A), A); // E = 3 * A - const FF =F.square( E ); // F = E^2 - - res[0] = F.sub( FF , F.add(D,D) ); // X3 = F - 2 D - - let eightC = F.add( C , C ); - eightC = F.add( eightC , eightC ); - eightC = F.add( eightC , eightC ); - - res[1] = - F.sub( - F.mul( - E, - F.sub( D, res[0] )), - eightC); // Y3 = E * (D - X3) - 8 * C - - const Y1Z1 = F.mul( p[1] , p[2] ); - res[2] = F.add( Y1Z1 , Y1Z1 ); // Z3 = 2 * Y1 * Z1 - - return res; - } - - timesScalar(base, e) { - return mulScalar(this, base, e); - } - - mulScalar(base, e) { - return mulScalar(this, base, e); - } - - affine(p) { - const F = this.F; - if (this.isZero(p)) { - return this.zero; - } else if (F.eq(p[2], F.one)) { - return p; - } else { - const Z_inv = F.inv(p[2]); - const Z2_inv = F.square(Z_inv); - const Z3_inv = F.mul(Z2_inv, Z_inv); - - const res = new Array(3); - res[0] = F.mul(p[0],Z2_inv); - res[1] = F.mul(p[1],Z3_inv); - res[2] = F.one; - - return res; - } - } - - multiAffine(arr) { - const keys = Object.keys(arr); - const F = this.F; - const accMul = new Array(keys.length+1); - accMul[0] = F.one; - for (let i = 0; i< keys.length; i++) { - if (F.eq(arr[keys[i]][2], F.zero)) { - accMul[i+1] = accMul[i]; - } else { - accMul[i+1] = F.mul(accMul[i], arr[keys[i]][2]); - } - } - - accMul[keys.length] = F.inv(accMul[keys.length]); - - for (let i = keys.length-1; i>=0; i--) { - if (F.eq(arr[keys[i]][2], F.zero)) { - accMul[i] = accMul[i+1]; - arr[keys[i]] = this.zero; - } else { - const Z_inv = F.mul(accMul[i], accMul[i+1]); - accMul[i] = F.mul(arr[keys[i]][2], accMul[i+1]); - - const Z2_inv = F.square(Z_inv); - const Z3_inv = F.mul(Z2_inv, Z_inv); - - arr[keys[i]][0] = F.mul(arr[keys[i]][0],Z2_inv); - arr[keys[i]][1] = F.mul(arr[keys[i]][1],Z3_inv); - arr[keys[i]][2] = F.one; - } - } - - } - - eq(p1, p2) { - const F = this.F; - - if (this.F.eq(p1[2], this.F.zero)) return this.F.eq(p2[2], this.F.zero); - if (this.F.eq(p2[2], this.F.zero)) return false; - - const Z1Z1 = F.square( p1[2] ); - const Z2Z2 = F.square( p2[2] ); - - const U1 = F.mul( p1[0] , Z2Z2 ); - const U2 = F.mul( p2[0] , Z1Z1 ); - - const Z1_cubed = F.mul( p1[2] , Z1Z1); - const Z2_cubed = F.mul( p2[2] , Z2Z2); - - const S1 = F.mul( p1[1] , Z2_cubed); - const S2 = F.mul( p2[1] , Z1_cubed); - - return (F.eq(U1,U2) && F.eq(S1,S2)); - } - - isZero(p) { - return this.F.isZero(p[2]); - } - - toString(p) { - const cp = this.affine(p); - return `[ ${this.F.toString(cp[0])} , ${this.F.toString(cp[1])} ]`; - } - - fromRng(rng) { - const F = this.F; - let P = []; - let greatest; - do { - P[0] = F.fromRng(rng); - greatest = rng.nextBool(); - const x3b = F.add(F.mul(F.square(P[0]), P[0]), this.b); - P[1] = F.sqrt(x3b); - } while ((P[1] == null)||(F.isZero[P])); - - const s = isGreatest(F, P[1]); - if (greatest ^ s) P[1] = F.neg(P[1]); - P[2] = F.one; - - if (this.cofactor) { - P = this.mulScalar(P, this.cofactor); - } - - P = this.affine(P); - - return P; - - } - - toRprLE(buff, o, p) { - p = this.affine(p); - if (this.isZero(p)) { - const BuffV = new Uint8Array(buff, o, this.F.n8*2); - BuffV.fill(0); - return; - } - this.F.toRprLE(buff, o, p[0]); - this.F.toRprLE(buff, o+this.F.n8, p[1]); - } - - toRprBE(buff, o, p) { - p = this.affine(p); - if (this.isZero(p)) { - const BuffV = new Uint8Array(buff, o, this.F.n8*2); - BuffV.fill(0); - return; - } - this.F.toRprBE(buff, o, p[0]); - this.F.toRprBE(buff, o+this.F.n8, p[1]); - } - - toRprLEM(buff, o, p) { - p = this.affine(p); - if (this.isZero(p)) { - const BuffV = new Uint8Array(buff, o, this.F.n8*2); - BuffV.fill(0); - return; - } - this.F.toRprLEM(buff, o, p[0]); - this.F.toRprLEM(buff, o+this.F.n8, p[1]); - } - - toRprLEJM(buff, o, p) { - p = this.affine(p); - if (this.isZero(p)) { - const BuffV = new Uint8Array(buff, o, this.F.n8*2); - BuffV.fill(0); - return; - } - this.F.toRprLEM(buff, o, p[0]); - this.F.toRprLEM(buff, o+this.F.n8, p[1]); - this.F.toRprLEM(buff, o+2*this.F.n8, p[2]); - } - - - toRprBEM(buff, o, p) { - p = this.affine(p); - if (this.isZero(p)) { - const BuffV = new Uint8Array(buff, o, this.F.n8*2); - BuffV.fill(0); - return; - } - this.F.toRprBEM(buff, o, p[0]); - this.F.toRprBEM(buff, o+this.F.n8, p[1]); - } - - fromRprLE(buff, o) { - o = o || 0; - const x = this.F.fromRprLE(buff, o); - const y = this.F.fromRprLE(buff, o+this.F.n8); - if (this.F.isZero(x) && this.F.isZero(y)) { - return this.zero; - } - return [x, y, this.F.one]; - } - - fromRprBE(buff, o) { - o = o || 0; - const x = this.F.fromRprBE(buff, o); - const y = this.F.fromRprBE(buff, o+this.F.n8); - if (this.F.isZero(x) && this.F.isZero(y)) { - return this.zero; - } - return [x, y, this.F.one]; - } - - fromRprLEM(buff, o) { - o = o || 0; - const x = this.F.fromRprLEM(buff, o); - const y = this.F.fromRprLEM(buff, o+this.F.n8); - if (this.F.isZero(x) && this.F.isZero(y)) { - return this.zero; - } - return [x, y, this.F.one]; - } - - fromRprLEJM(buff, o) { - o = o || 0; - const x = this.F.fromRprLEM(buff, o); - const y = this.F.fromRprLEM(buff, o+this.F.n8); - const z = this.F.fromRprLEM(buff, o+this.F.n8*2); - if (this.F.isZero(x) && this.F.isZero(y)) { - return this.zero; - } - return [x, y, z]; - } - - fromRprBEM(buff, o) { - o = o || 0; - const x = this.F.fromRprBEM(buff, o); - const y = this.F.fromRprBEM(buff, o+this.F.n8); - if (this.F.isZero(x) && this.F.isZero(y)) { - return this.zero; - } - return [x, y, this.F.one]; - } - - fromRprCompressed(buff, o) { - const F = this.F; - const v = new Uint8Array(buff.buffer, o, F.n8); - if (v[0] & 0x40) return this.zero; - const P = new Array(3); - - const greatest = ((v[0] & 0x80) != 0); - v[0] = v[0] & 0x7F; - P[0] = F.fromRprBE(buff, o); - if (greatest) v[0] = v[0] | 0x80; // set back again the old value - - const x3b = F.add(F.mul(F.square(P[0]), P[0]), this.b); - P[1] = F.sqrt(x3b); - - if (P[1] === null) { - throw new Error("Invalid Point!"); - } - - const s = isGreatest(F, P[1]); - if (greatest ^ s) P[1] = F.neg(P[1]); - P[2] = F.one; - - return P; - } - - toRprCompressed(buff, o, p) { - p = this.affine(p); - const v = new Uint8Array(buff.buffer, o, this.F.n8); - if (this.isZero(p)) { - v.fill(0); - v[0] = 0x40; - return; - } - this.F.toRprBE(buff, o, p[0]); - - if (isGreatest(this.F, p[1])) { - v[0] = v[0] | 0x80; - } - } - - - fromRprUncompressed(buff, o) { - if (buff[0] & 0x40) return this.zero; - - return this.fromRprBE(buff, o); - } - - toRprUncompressed(buff, o, p) { - this.toRprBE(buff, o, p); - - if (this.isZero(p)) { - buff[o] = buff[o] | 0x40; - } - } - - - } - var code = "AGFzbQEAAAABiQERYAJ/fwBgAX8AYAF/AX9gAn9/AX9gA39/fwF/YAN/f38AYAN/fn8AYAJ/fgBgBH9/f38AYAV/f39/fwBgBH9/f38Bf2AHf39/f39/fwBgCH9/f39/f39/AGAFf39/f38Bf2AHf39/f39/fwF/YAl/f39/f39/f38Bf2ALf39/f39/f39/f38BfwIQAQNlbnYGbWVtb3J5AgDoBwOrAqkCAAECAQMDBAQFAAAGBwgFAgUFAAAFAAAAAAICAAEFCAkFBQgAAgIFBQAABQAAAAACAgABBQgJBQUIAAIFAAACAgIBAQAAAAMDAwAABQUFAAAFBQUAAAAAAAUABQAAAAAFBQUFBQoACwkKAAsJCAgDAAgIAgAACQUFAAgMCQICAQEABQUABQUAAAAAAwAIAgIJCAACAgIBAQAAAAMDAwAABQUFAAAFBQUAAAAAAAUABQAAAAAFBQUFBQoACwkKAAsJCAgFAwAICAIAAAkFBQUDAAgIAgAACQUFBQUJCQkJCQACAgEBAAUABQUAAgAAAwAIAgkIAAICAQEABQUABQUAAAAAAwAIAgIJCAACBQAAAAAICAUAAAAAAAAAAAAAAAAAAAAABA0ODxAFB70imgIIaW50X2NvcHkAAAhpbnRfemVybwABB2ludF9vbmUAAwppbnRfaXNaZXJvAAIGaW50X2VxAAQHaW50X2d0ZQAFB2ludF9hZGQABgdpbnRfc3ViAAcHaW50X211bAAICmludF9zcXVhcmUACQ1pbnRfc3F1YXJlT2xkAAoHaW50X2RpdgANDmludF9pbnZlcnNlTW9kAA4IZjFtX2NvcHkAAAhmMW1femVybwABCmYxbV9pc1plcm8AAgZmMW1fZXEABAdmMW1fYWRkABAHZjFtX3N1YgARB2YxbV9uZWcAEg5mMW1faXNOZWdhdGl2ZQAZCWYxbV9pc09uZQAPCGYxbV9zaWduABoLZjFtX21SZWR1Y3QAEwdmMW1fbXVsABQKZjFtX3NxdWFyZQAVDWYxbV9zcXVhcmVPbGQAFhJmMW1fZnJvbU1vbnRnb21lcnkAGBBmMW1fdG9Nb250Z29tZXJ5ABcLZjFtX2ludmVyc2UAGwdmMW1fb25lABwIZjFtX2xvYWQAHQ9mMW1fdGltZXNTY2FsYXIAHgdmMW1fZXhwACIQZjFtX2JhdGNoSW52ZXJzZQAfCGYxbV9zcXJ0ACMMZjFtX2lzU3F1YXJlACQVZjFtX2JhdGNoVG9Nb250Z29tZXJ5ACAXZjFtX2JhdGNoRnJvbU1vbnRnb21lcnkAIQhmcm1fY29weQAACGZybV96ZXJvAAEKZnJtX2lzWmVybwACBmZybV9lcQAEB2ZybV9hZGQAJgdmcm1fc3ViACcHZnJtX25lZwAoDmZybV9pc05lZ2F0aXZlAC8JZnJtX2lzT25lACUIZnJtX3NpZ24AMAtmcm1fbVJlZHVjdAApB2ZybV9tdWwAKgpmcm1fc3F1YXJlACsNZnJtX3NxdWFyZU9sZAAsEmZybV9mcm9tTW9udGdvbWVyeQAuEGZybV90b01vbnRnb21lcnkALQtmcm1faW52ZXJzZQAxB2ZybV9vbmUAMghmcm1fbG9hZAAzD2ZybV90aW1lc1NjYWxhcgA0B2ZybV9leHAAOBBmcm1fYmF0Y2hJbnZlcnNlADUIZnJtX3NxcnQAOQxmcm1faXNTcXVhcmUAOhVmcm1fYmF0Y2hUb01vbnRnb21lcnkANhdmcm1fYmF0Y2hGcm9tTW9udGdvbWVyeQA3BmZyX2FkZAAmBmZyX3N1YgAnBmZyX25lZwAoBmZyX211bAA7CWZyX3NxdWFyZQA8CmZyX2ludmVyc2UAPQ1mcl9pc05lZ2F0aXZlAD4HZnJfY29weQAAB2ZyX3plcm8AAQZmcl9vbmUAMglmcl9pc1plcm8AAgVmcl9lcQAEDGcxbV9tdWx0aWV4cABnEmcxbV9tdWx0aWV4cF9jaHVuawBmEmcxbV9tdWx0aWV4cEFmZmluZQBrGGcxbV9tdWx0aWV4cEFmZmluZV9jaHVuawBqCmcxbV9pc1plcm8AQBBnMW1faXNaZXJvQWZmaW5lAD8GZzFtX2VxAEgLZzFtX2VxTWl4ZWQARwxnMW1fZXFBZmZpbmUARghnMW1fY29weQBEDmcxbV9jb3B5QWZmaW5lAEMIZzFtX3plcm8AQg5nMW1femVyb0FmZmluZQBBCmcxbV9kb3VibGUAShBnMW1fZG91YmxlQWZmaW5lAEkHZzFtX2FkZABNDGcxbV9hZGRNaXhlZABMDWcxbV9hZGRBZmZpbmUASwdnMW1fbmVnAE8NZzFtX25lZ0FmZmluZQBOB2cxbV9zdWIAUgxnMW1fc3ViTWl4ZWQAUQ1nMW1fc3ViQWZmaW5lAFASZzFtX2Zyb21Nb250Z29tZXJ5AFQYZzFtX2Zyb21Nb250Z29tZXJ5QWZmaW5lAFMQZzFtX3RvTW9udGdvbWVyeQBWFmcxbV90b01vbnRnb21lcnlBZmZpbmUAVQ9nMW1fdGltZXNTY2FsYXIAbBVnMW1fdGltZXNTY2FsYXJBZmZpbmUAbQ1nMW1fbm9ybWFsaXplAFkKZzFtX0xFTXRvVQBbCmcxbV9MRU10b0MAXApnMW1fVXRvTEVNAF0KZzFtX0N0b0xFTQBeD2cxbV9iYXRjaExFTXRvVQBfD2cxbV9iYXRjaExFTXRvQwBgD2cxbV9iYXRjaFV0b0xFTQBhD2cxbV9iYXRjaEN0b0xFTQBiDGcxbV90b0FmZmluZQBXDmcxbV90b0phY29iaWFuAEURZzFtX2JhdGNoVG9BZmZpbmUAWBNnMW1fYmF0Y2hUb0phY29iaWFuAGMHZnJtX2ZmdABzCGZybV9pZmZ0AHQKZnJtX3Jhd2ZmdABxC2ZybV9mZnRKb2luAHUKZnJtX2ZmdE1peAB2DGZybV9mZnRGaW5hbAB3CHBvbF96ZXJvAHgPcG9sX2NvbnN0cnVjdExDAHkMcWFwX2J1aWxkQUJDAHoLcWFwX2pvaW5BQkMAewpmMm1faXNaZXJvAHwJZjJtX2lzT25lAH0IZjJtX3plcm8AfgdmMm1fb25lAH8IZjJtX2NvcHkAgAEHZjJtX211bACBAQhmMm1fbXVsMQCCAQpmMm1fc3F1YXJlAIMBB2YybV9hZGQAhAEHZjJtX3N1YgCFAQdmMm1fbmVnAIYBCGYybV9zaWduAI0BDWYybV9jb25qdWdhdGUAhwESZjJtX2Zyb21Nb250Z29tZXJ5AIkBEGYybV90b01vbnRnb21lcnkAiAEGZjJtX2VxAIoBC2YybV9pbnZlcnNlAIsBB2YybV9leHAAkAEPZjJtX3RpbWVzU2NhbGFyAIwBEGYybV9iYXRjaEludmVyc2UAjwEIZjJtX3NxcnQAkQEMZjJtX2lzU3F1YXJlAJIBDmYybV9pc05lZ2F0aXZlAI4BDGcybV9tdWx0aWV4cAC7ARJnMm1fbXVsdGlleHBfY2h1bmsAugESZzJtX211bHRpZXhwQWZmaW5lAL8BGGcybV9tdWx0aWV4cEFmZmluZV9jaHVuawC+AQpnMm1faXNaZXJvAJQBEGcybV9pc1plcm9BZmZpbmUAkwEGZzJtX2VxAJwBC2cybV9lcU1peGVkAJsBDGcybV9lcUFmZmluZQCaAQhnMm1fY29weQCYAQ5nMm1fY29weUFmZmluZQCXAQhnMm1femVybwCWAQ5nMm1femVyb0FmZmluZQCVAQpnMm1fZG91YmxlAJ4BEGcybV9kb3VibGVBZmZpbmUAnQEHZzJtX2FkZAChAQxnMm1fYWRkTWl4ZWQAoAENZzJtX2FkZEFmZmluZQCfAQdnMm1fbmVnAKMBDWcybV9uZWdBZmZpbmUAogEHZzJtX3N1YgCmAQxnMm1fc3ViTWl4ZWQApQENZzJtX3N1YkFmZmluZQCkARJnMm1fZnJvbU1vbnRnb21lcnkAqAEYZzJtX2Zyb21Nb250Z29tZXJ5QWZmaW5lAKcBEGcybV90b01vbnRnb21lcnkAqgEWZzJtX3RvTW9udGdvbWVyeUFmZmluZQCpAQ9nMm1fdGltZXNTY2FsYXIAwAEVZzJtX3RpbWVzU2NhbGFyQWZmaW5lAMEBDWcybV9ub3JtYWxpemUArQEKZzJtX0xFTXRvVQCvAQpnMm1fTEVNdG9DALABCmcybV9VdG9MRU0AsQEKZzJtX0N0b0xFTQCyAQ9nMm1fYmF0Y2hMRU10b1UAswEPZzJtX2JhdGNoTEVNdG9DALQBD2cybV9iYXRjaFV0b0xFTQC1AQ9nMm1fYmF0Y2hDdG9MRU0AtgEMZzJtX3RvQWZmaW5lAKsBDmcybV90b0phY29iaWFuAJkBEWcybV9iYXRjaFRvQWZmaW5lAKwBE2cybV9iYXRjaFRvSmFjb2JpYW4AtwELZzFtX3RpbWVzRnIAwgEHZzFtX2ZmdADIAQhnMW1faWZmdADJAQpnMW1fcmF3ZmZ0AMYBC2cxbV9mZnRKb2luAMoBCmcxbV9mZnRNaXgAywEMZzFtX2ZmdEZpbmFsAMwBC2cybV90aW1lc0ZyAM0BB2cybV9mZnQA0wEIZzJtX2lmZnQA1AEKZzJtX3Jhd2ZmdADRAQtnMm1fZmZ0Sm9pbgDVAQpnMm1fZmZ0TWl4ANYBDGcybV9mZnRGaW5hbADXARFnMW1fdGltZXNGckFmZmluZQDYARFnMm1fdGltZXNGckFmZmluZQDZARFmcm1fYmF0Y2hBcHBseUtleQDaARFnMW1fYmF0Y2hBcHBseUtleQDbARZnMW1fYmF0Y2hBcHBseUtleU1peGVkANwBEWcybV9iYXRjaEFwcGx5S2V5AN0BFmcybV9iYXRjaEFwcGx5S2V5TWl4ZWQA3gEKZjZtX2lzWmVybwDgAQlmNm1faXNPbmUA4QEIZjZtX3plcm8A4gEHZjZtX29uZQDjAQhmNm1fY29weQDkAQdmNm1fbXVsAOUBCmY2bV9zcXVhcmUA5gEHZjZtX2FkZADnAQdmNm1fc3ViAOgBB2Y2bV9uZWcA6QEIZjZtX3NpZ24A6gESZjZtX2Zyb21Nb250Z29tZXJ5AOwBEGY2bV90b01vbnRnb21lcnkA6wEGZjZtX2VxAO0BC2Y2bV9pbnZlcnNlAO4BB2Y2bV9leHAA8gEPZjZtX3RpbWVzU2NhbGFyAO8BEGY2bV9iYXRjaEludmVyc2UA8QEOZjZtX2lzTmVnYXRpdmUA8AEKZnRtX2lzWmVybwD0AQlmdG1faXNPbmUA9QEIZnRtX3plcm8A9gEHZnRtX29uZQD3AQhmdG1fY29weQD4AQdmdG1fbXVsAPkBCGZ0bV9tdWwxAPoBCmZ0bV9zcXVhcmUA+wEHZnRtX2FkZAD8AQdmdG1fc3ViAP0BB2Z0bV9uZWcA/gEIZnRtX3NpZ24AhQINZnRtX2Nvbmp1Z2F0ZQD/ARJmdG1fZnJvbU1vbnRnb21lcnkAgQIQZnRtX3RvTW9udGdvbWVyeQCAAgZmdG1fZXEAggILZnRtX2ludmVyc2UAgwIHZnRtX2V4cACIAg9mdG1fdGltZXNTY2FsYXIAhAIQZnRtX2JhdGNoSW52ZXJzZQCHAghmdG1fc3FydACJAgxmdG1faXNTcXVhcmUAigIOZnRtX2lzTmVnYXRpdmUAhgIUYm4xMjhfX2Zyb2Jlbml1c01hcDAAkwIUYm4xMjhfX2Zyb2Jlbml1c01hcDEAlAIUYm4xMjhfX2Zyb2Jlbml1c01hcDIAlQIUYm4xMjhfX2Zyb2Jlbml1c01hcDMAlgIUYm4xMjhfX2Zyb2Jlbml1c01hcDQAlwIUYm4xMjhfX2Zyb2Jlbml1c01hcDUAmAIUYm4xMjhfX2Zyb2Jlbml1c01hcDYAmQIUYm4xMjhfX2Zyb2Jlbml1c01hcDcAmgIUYm4xMjhfX2Zyb2Jlbml1c01hcDgAmwIUYm4xMjhfX2Zyb2Jlbml1c01hcDkAnAIQYm4xMjhfcGFpcmluZ0VxMQCjAhBibjEyOF9wYWlyaW5nRXEyAKQCEGJuMTI4X3BhaXJpbmdFcTMApQIQYm4xMjhfcGFpcmluZ0VxNACmAhBibjEyOF9wYWlyaW5nRXE1AKcCDWJuMTI4X3BhaXJpbmcAqAIPYm4xMjhfcHJlcGFyZUcxAI0CD2JuMTI4X3ByZXBhcmVHMgCPAhBibjEyOF9taWxsZXJMb29wAJICGWJuMTI4X2ZpbmFsRXhwb25lbnRpYXRpb24AogIcYm4xMjhfZmluYWxFeHBvbmVudGlhdGlvbk9sZACdAg9ibjEyOF9fbXVsQnkwMjQAkAISYm4xMjhfX211bEJ5MDI0T2xkAJECF2JuMTI4X19jeWNsb3RvbWljU3F1YXJlAJ8CF2JuMTI4X19jeWNsb3RvbWljRXhwX3cwAKACCoXOA6kCKgAgASAAKQMANwMAIAEgACkDCDcDCCABIAApAxA3AxAgASAAKQMYNwMYCx4AIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGAszACAAKQMYUARAIAApAxBQBEAgACkDCFAEQCAAKQMAUA8FQQAPCwVBAA8LBUEADwtBAA8LHgAgAEIBNwMAIABCADcDCCAAQgA3AxAgAEIANwMYC0cAIAApAxggASkDGFEEQCAAKQMQIAEpAxBRBEAgACkDCCABKQMIUQRAIAApAwAgASkDAFEPBUEADwsFQQAPCwVBAA8LQQAPC30AIAApAxggASkDGFQEQEEADwUgACkDGCABKQMYVgRAQQEPBSAAKQMQIAEpAxBUBEBBAA8FIAApAxAgASkDEFYEQEEBDwUgACkDCCABKQMIVARAQQAPBSAAKQMIIAEpAwhWBEBBAQ8FIAApAwAgASkDAFoPCwsLCwsLQQAPC9QBAQF+IAA1AgAgATUCAHwhAyACIAM+AgAgADUCBCABNQIEfCADQiCIfCEDIAIgAz4CBCAANQIIIAE1Agh8IANCIIh8IQMgAiADPgIIIAA1AgwgATUCDHwgA0IgiHwhAyACIAM+AgwgADUCECABNQIQfCADQiCIfCEDIAIgAz4CECAANQIUIAE1AhR8IANCIIh8IQMgAiADPgIUIAA1AhggATUCGHwgA0IgiHwhAyACIAM+AhggADUCHCABNQIcfCADQiCIfCEDIAIgAz4CHCADQiCIpwuMAgEBfiAANQIAIAE1AgB9IQMgAiADQv////8Pgz4CACAANQIEIAE1AgR9IANCIId8IQMgAiADQv////8Pgz4CBCAANQIIIAE1Agh9IANCIId8IQMgAiADQv////8Pgz4CCCAANQIMIAE1Agx9IANCIId8IQMgAiADQv////8Pgz4CDCAANQIQIAE1AhB9IANCIId8IQMgAiADQv////8Pgz4CECAANQIUIAE1AhR9IANCIId8IQMgAiADQv////8Pgz4CFCAANQIYIAE1Ahh9IANCIId8IQMgAiADQv////8Pgz4CGCAANQIcIAE1Ahx9IANCIId8IQMgAiADQv////8Pgz4CHCADQiCHpwuPEBIBfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4gA0L/////D4MgADUCACIFIAE1AgAiBn58IQMgBCADQiCIfCEEIAIgAz4CACAEQiCIIQMgBEL/////D4MgBSABNQIEIgh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIEIgcgBn58IQQgAyAEQiCIfCEDIAIgBD4CBCADQiCIIQQgA0L/////D4MgBSABNQIIIgp+fCEDIAQgA0IgiHwhBCADQv////8PgyAHIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIIIgkgBn58IQMgBCADQiCIfCEEIAIgAz4CCCAEQiCIIQMgBEL/////D4MgBSABNQIMIgx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAHIAp+fCEEIAMgBEIgiHwhAyAEQv////8PgyAJIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIMIgsgBn58IQQgAyAEQiCIfCEDIAIgBD4CDCADQiCIIQQgA0L/////D4MgBSABNQIQIg5+fCEDIAQgA0IgiHwhBCADQv////8PgyAHIAx+fCEDIAQgA0IgiHwhBCADQv////8PgyAJIAp+fCEDIAQgA0IgiHwhBCADQv////8PgyALIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIQIg0gBn58IQMgBCADQiCIfCEEIAIgAz4CECAEQiCIIQMgBEL/////D4MgBSABNQIUIhB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAHIA5+fCEEIAMgBEIgiHwhAyAEQv////8PgyAJIAx+fCEEIAMgBEIgiHwhAyAEQv////8PgyALIAp+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIUIg8gBn58IQQgAyAEQiCIfCEDIAIgBD4CFCADQiCIIQQgA0L/////D4MgBSABNQIYIhJ+fCEDIAQgA0IgiHwhBCADQv////8PgyAHIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAJIA5+fCEDIAQgA0IgiHwhBCADQv////8PgyALIAx+fCEDIAQgA0IgiHwhBCADQv////8PgyANIAp+fCEDIAQgA0IgiHwhBCADQv////8PgyAPIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIYIhEgBn58IQMgBCADQiCIfCEEIAIgAz4CGCAEQiCIIQMgBEL/////D4MgBSABNQIcIhR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAHIBJ+fCEEIAMgBEIgiHwhAyAEQv////8PgyAJIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyALIA5+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIAx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAPIAp+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIcIhMgBn58IQQgAyAEQiCIfCEDIAIgBD4CHCADQiCIIQQgA0L/////D4MgByAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSASfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAIfnwhAyAEIANCIIh8IQQgAiADPgIgIARCIIghAyAEQv////8PgyAJIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyALIBJ+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAPIA5+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIAx+fCEEIAMgBEIgiHwhAyAEQv////8PgyATIAp+fCEEIAMgBEIgiHwhAyACIAQ+AiQgA0IgiCEEIANC/////w+DIAsgFH58IQMgBCADQiCIfCEEIANC/////w+DIA0gEn58IQMgBCADQiCIfCEEIANC/////w+DIA8gEH58IQMgBCADQiCIfCEEIANC/////w+DIBEgDn58IQMgBCADQiCIfCEEIANC/////w+DIBMgDH58IQMgBCADQiCIfCEEIAIgAz4CKCAEQiCIIQMgBEL/////D4MgDSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgDyASfnwhBCADIARCIIh8IQMgBEL/////D4MgESAQfnwhBCADIARCIIh8IQMgBEL/////D4MgEyAOfnwhBCADIARCIIh8IQMgAiAEPgIsIANCIIghBCADQv////8PgyAPIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBJ+fCEDIAQgA0IgiHwhBCADQv////8PgyATIBB+fCEDIAQgA0IgiHwhBCACIAM+AjAgBEIgiCEDIARC/////w+DIBEgFH58IQQgAyAEQiCIfCEDIARC/////w+DIBMgEn58IQQgAyAEQiCIfCEDIAIgBD4CNCADQiCIIQQgA0L/////D4MgEyAUfnwhAyAEIANCIIh8IQQgAiADPgI4IARCIIghAyACIAQ+AjwLjBIMAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+QgAhAkIAIQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgADUCACIGIAZ+fCECIAMgAkIgiHwhAyABIAI+AgAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCBCIHfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CBCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIIIgh+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAHIAd+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIIIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AgwiCX58IQIgAyACQiCIfCEDIAJC/////w+DIAcgCH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AgwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCECIKfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAJfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCCAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CECADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIUIgt+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAp+fCECIAMgAkIgiHwhAyACQv////8PgyAIIAl+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIUIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AhgiDH58IQIgAyACQiCIfCEDIAJC/////w+DIAcgC358IQIgAyACQiCIfCEDIAJC/////w+DIAggCn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAkgCX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AhggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCHCINfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAMfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCALfnwhAiADIAJCIIh8IQMgAkL/////D4MgCSAKfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CHCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByANfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCAMfnwhAiADIAJCIIh8IQMgAkL/////D4MgCSALfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCiAKfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CICADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCCANfnwhAiADIAJCIIh8IQMgAkL/////D4MgCSAMfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiALfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CJCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCSANfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAMfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCyALfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CKCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCiANfnwhAiADIAJCIIh8IQMgAkL/////D4MgCyAMfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CLCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCyANfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgDCAMfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CMCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgDCANfnwh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IQQgAyAEQiCIfCEDIARC/////w+DIAA1AgQiCiAHfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCjAQiDSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DIQwgBEL/////D4MgCSAMfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAYgATUCCCIPfnwhAyAEIANCIIh8IQQgA0L/////D4MgCiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCCCIOIAd+fCEDIAQgA0IgiHwhBCADQv////8PgyANIAx+fCEDIAQgA0IgiHwhBCADQv////8Pg0EANQKQBCIRIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhECADQv////8PgyAJIBB+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIMIhN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAKIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAOIAt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIMIhIgB358IQQgAyAEQiCIfCEDIARC/////w+DIA0gEH58IQQgAyAEQiCIfCEDIARC/////w+DIBEgDH58IQQgAyAEQiCIfCEDIARC/////w+DQQA1ApQEIhUgCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEUIARC/////w+DIAkgFH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AhAiF358IQMgBCADQiCIfCEEIANC/////w+DIAogE358IQMgBCADQiCIfCEEIANC/////w+DIA4gD358IQMgBCADQiCIfCEEIANC/////w+DIBIgC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AhAiFiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUCmAQiGSAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DIRggA0L/////D4MgCSAYfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCFCIbfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgDiATfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgFiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCFCIaIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQKcBCIdIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhHCAEQv////8PgyAJIBx+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIYIh9+fCEDIAQgA0IgiHwhBCADQv////8PgyAKIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyASIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIYIh4gB358IQMgBCADQiCIfCEEIANC/////w+DIA0gHH58IQMgBCADQiCIfCEEIANC/////w+DIBEgGH58IQMgBCADQiCIfCEEIANC/////w+DIBUgFH58IQMgBCADQiCIfCEEIANC/////w+DIBkgEH58IQMgBCADQiCIfCEEIANC/////w+DIB0gDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AqAEIiEgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEgIANC/////w+DIAkgIH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AhwiI358IQQgAyAEQiCIfCEDIARC/////w+DIAogH358IQQgAyAEQiCIfCEDIARC/////w+DIA4gG358IQQgAyAEQiCIfCEDIARC/////w+DIBIgF358IQQgAyAEQiCIfCEDIARC/////w+DIBYgE358IQQgAyAEQiCIfCEDIARC/////w+DIBogD358IQQgAyAEQiCIfCEDIARC/////w+DIB4gC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AhwiIiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgESAcfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgISAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCpAQiJSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DISQgBEL/////D4MgCSAkfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAogI358IQMgBCADQiCIfCEEIANC/////w+DIA4gH358IQMgBCADQiCIfCEEIANC/////w+DIBIgG358IQMgBCADQiCIfCEEIANC/////w+DIBYgF358IQMgBCADQiCIfCEEIANC/////w+DIBogE358IQMgBCADQiCIfCEEIANC/////w+DIB4gD358IQMgBCADQiCIfCEEIANC/////w+DICIgC358IQMgBCADQiCIfCEEIANC/////w+DIA0gJH58IQMgBCADQiCIfCEEIANC/////w+DIBEgIH58IQMgBCADQiCIfCEEIANC/////w+DIBUgHH58IQMgBCADQiCIfCEEIANC/////w+DIBkgGH58IQMgBCADQiCIfCEEIANC/////w+DIB0gFH58IQMgBCADQiCIfCEEIANC/////w+DICEgEH58IQMgBCADQiCIfCEEIANC/////w+DICUgDH58IQMgBCADQiCIfCEEIAIgAz4CACAEQiCIIQMgBEL/////D4MgDiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAffnwhBCADIARCIIh8IQMgBEL/////D4MgFiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgHiATfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgESAkfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAcfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgISAUfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAQfnwhBCADIARCIIh8IQMgAiAEPgIEIANCIIghBCADQv////8PgyASICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAeIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyAiIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAVICR+fCEDIAQgA0IgiHwhBCADQv////8PgyAZICB+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyAhIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAlIBR+fCEDIAQgA0IgiHwhBCACIAM+AgggBEIgiCEDIARC/////w+DIBYgI358IQQgAyAEQiCIfCEDIARC/////w+DIBogH358IQQgAyAEQiCIfCEDIARC/////w+DIB4gG358IQQgAyAEQiCIfCEDIARC/////w+DICIgF358IQQgAyAEQiCIfCEDIARC/////w+DIBkgJH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gIH58IQQgAyAEQiCIfCEDIARC/////w+DICEgHH58IQQgAyAEQiCIfCEDIARC/////w+DICUgGH58IQQgAyAEQiCIfCEDIAIgBD4CDCADQiCIIQQgA0L/////D4MgGiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgHiAffnwhAyAEIANCIIh8IQQgA0L/////D4MgIiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgISAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAcfnwhAyAEIANCIIh8IQQgAiADPgIQIARCIIghAyAEQv////8PgyAeICN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAiIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlICB+fCEEIAMgBEIgiHwhAyACIAQ+AhQgA0IgiCEEIANC/////w+DICIgI358IQMgBCADQiCIfCEEIANC/////w+DICUgJH58IQMgBCADQiCIfCEEIAIgAz4CGCAEQiCIIQMgAiAEPgIcIAOnBEAgAkGIBCACEAcaBSACQYgEEAUEQCACQYgEIAIQBxoLCwu7IR0BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+QonHmaQOIQZCACECQgAhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAANQIAIgcgB358IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEIIAJC/////w+DQQA1AogEIgkgCH58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AgQiCn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8Pg0EANQKMBCIMIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhCyACQv////8PgyAJIAt+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIIIg1+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAKIAp+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCkAQiDyAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIQ4gAkL/////D4MgCSAOfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCDCIQfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiANfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgDn58IQIgAyACQiCIfCEDIAJC/////w+DIA8gC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1ApQEIhIgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyERIAJC/////w+DIAkgEX58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhAiE358IQIgAyACQiCIfCEDIAJC/////w+DIAogEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA0gDX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAPIA5+fCECIAMgAkIgiHwhAyACQv////8PgyASIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKYBCIVIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhFCACQv////8PgyAJIBR+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIUIhZ+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBN+fCECIAMgAkIgiHwhAyACQv////8PgyANIBB+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyARfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCnAQiGCAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIRcgAkL/////D4MgCSAXfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCGCIZfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSATfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgECAQfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgF358IQIgAyACQiCIfCEDIAJC/////w+DIA8gFH58IQIgAyACQiCIfCEDIAJC/////w+DIBIgEX58IQIgAyACQiCIfCEDIAJC/////w+DIBUgDn58IQIgAyACQiCIfCEDIAJC/////w+DIBggC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AqAEIhsgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEaIAJC/////w+DIAkgGn58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhwiHH58IQIgAyACQiCIfCEDIAJC/////w+DIAogGX58IQIgAyACQiCIfCEDIAJC/////w+DIA0gFn58IQIgAyACQiCIfCEDIAJC/////w+DIBAgE358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBd+fCECIAMgAkIgiHwhAyACQv////8PgyASIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAYIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAbIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKkBCIeIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhHSACQv////8PgyAJIB1+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCiAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgECAWfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgEyATfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgHX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gGn58IQIgAyACQiCIfCEDIAJC/////w+DIBIgF358IQIgAyACQiCIfCEDIAJC/////w+DIBUgFH58IQIgAyACQiCIfCEDIAJC/////w+DIBggEX58IQIgAyACQiCIfCEDIAJC/////w+DIBsgDn58IQIgAyACQiCIfCEDIAJC/////w+DIB4gC358IQIgAyACQiCIfCEDIAEgAj4CACADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgDSAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgECAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAWfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIA8gHX58IQIgAyACQiCIfCEDIAJC/////w+DIBIgGn58IQIgAyACQiCIfCEDIAJC/////w+DIBUgF358IQIgAyACQiCIfCEDIAJC/////w+DIBggFH58IQIgAyACQiCIfCEDIAJC/////w+DIBsgEX58IQIgAyACQiCIfCEDIAJC/////w+DIB4gDn58IQIgAyACQiCIfCEDIAEgAj4CBCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgECAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAZfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgFiAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBIgHX58IQIgAyACQiCIfCEDIAJC/////w+DIBUgGn58IQIgAyACQiCIfCEDIAJC/////w+DIBggF358IQIgAyACQiCIfCEDIAJC/////w+DIBsgFH58IQIgAyACQiCIfCEDIAJC/////w+DIB4gEX58IQIgAyACQiCIfCEDIAEgAj4CCCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgEyAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAZfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBUgHX58IQIgAyACQiCIfCEDIAJC/////w+DIBggGn58IQIgAyACQiCIfCEDIAJC/////w+DIBsgF358IQIgAyACQiCIfCEDIAJC/////w+DIB4gFH58IQIgAyACQiCIfCEDIAEgAj4CDCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgFiAcfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgGSAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBggHX58IQIgAyACQiCIfCEDIAJC/////w+DIBsgGn58IQIgAyACQiCIfCEDIAJC/////w+DIB4gF358IQIgAyACQiCIfCEDIAEgAj4CECADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgGSAcfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBsgHX58IQIgAyACQiCIfCEDIAJC/////w+DIB4gGn58IQIgAyACQiCIfCEDIAEgAj4CFCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgHCAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIB4gHX58IQIgAyACQiCIfCEDIAEgAj4CGCADIQQgBEIgiCEFIAEgBD4CHCAFpwRAIAFBiAQgARAHGgUgAUGI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QcgONQIIIAR+fCEDIAAgAz4CDCAANQIQIANCIIh8QcgONQIMIAR+fCEDIAAgAz4CECAANQIUIANCIIh8QcgONQIQIAR+fCEDIAAgAz4CFCAANQIYIANCIIh8QcgONQIUIAR+fCEDIAAgAz4CGCAANQIcIANCIIh8QcgONQIYIAR+fCEDIAAgAz4CHCAANQIgIANCIIh8QcgONQIcIAR+fCEDIAAgAz4CIEGoESADQiCIPgIEQgAhAyAANQIIIAJ+Qv////8PgyEEIAA1AgggA0IgiHxByA41AgAgBH58IQMgACADPgIIIAA1AgwgA0IgiHxByA41AgQgBH58IQMgACADPgIMIAA1AhAgA0IgiHxByA41AgggBH58IQMgACADPgIQIAA1AhQgA0IgiHxByA41AgwgBH58IQMgACADPgIUIAA1AhggA0IgiHxByA41AhAgBH58IQMgACADPgIYIAA1AhwgA0IgiHxByA41AhQgBH58IQMgACADPgIcIAA1AiAgA0IgiHxByA41AhggBH58IQMgACADPgIgIAA1AiQgA0IgiHxByA41AhwgBH58IQMgACADPgIkQagRIANCIIg+AghCACEDIAA1AgwgAn5C/////w+DIQQgADUCDCADQiCIfEHIDjUCACAEfnwhAyAAIAM+AgwgADUCECADQiCIfEHIDjUCBCAEfnwhAyAAIAM+AhAgADUCFCADQiCIfEHIDjUCCCAEfnwhAyAAIAM+AhQgADUCGCADQiCIfEHIDjUCDCAEfnwhAyAAIAM+AhggADUCHCADQiCIfEHIDjUCECAEfnwhAyAAIAM+AhwgADUCICADQiCIfEHIDjUCFCAEfnwhAyAAIAM+AiAgADUCJCADQiCIfEHIDjUCGCAEfnwhAyAAIAM+AiQgADUCKCADQiCIfEHIDjUCHCAEfnwhAyAAIAM+AihBqBEgA0IgiD4CDEIAIQMgADUCECACfkL/////D4MhBCAANQIQIANCIIh8QcgONQIAIAR+fCEDIAAgAz4CECAANQIUIANCIIh8QcgONQIEIAR+fCEDIAAgAz4CFCAANQIYIANCIIh8QcgONQIIIAR+fCEDIAAgAz4CGCAANQIcIANCIIh8QcgONQIMIAR+fCEDIAAgAz4CHCAANQIgIANCIIh8QcgONQIQIAR+fCEDIAAgAz4CICAANQIkIANCIIh8QcgONQIUIAR+fCEDIAAgAz4CJCAANQIoIANCIIh8QcgONQIYIAR+fCEDIAAgAz4CKCAANQIsIANCIIh8QcgONQIcIAR+fCEDIAAgAz4CLEGoESADQiCIPgIQQgAhAyAANQIUIAJ+Qv////8PgyEEIAA1AhQgA0IgiHxByA41AgAgBH58IQMgACADPgIUIAA1AhggA0IgiHxByA41AgQgBH58IQMgACADPgIYIAA1AhwgA0IgiHxByA41AgggBH58IQMgACADPgIcIAA1AiAgA0IgiHxByA41AgwgBH58IQMgACADPgIgIAA1AiQgA0IgiHxByA41AhAgBH58IQMgACADPgIkIAA1AiggA0IgiHxByA41AhQgBH58IQMgACADPgIoIAA1AiwgA0IgiHxByA41AhggBH58IQMgACADPgIsIAA1AjAgA0IgiHxByA41AhwgBH58IQMgACADPgIwQagRIANCIIg+AhRCACEDIAA1AhggAn5C/////w+DIQQgADUCGCADQiCIfEHIDjUCACAEfnwhAyAAIAM+AhggADUCHCADQiCIfEHIDjUCBCAEfnwhAyAAIAM+AhwgADUCICADQiCIfEHIDjUCCCAEfnwhAyAAIAM+AiAgADUCJCADQiCIfEHIDjUCDCAEfnwhAyAAIAM+AiQgADUCKCADQiCIfEHIDjUCECAEfnwhAyAAIAM+AiggADUCLCADQiCIfEHIDjUCFCAEfnwhAyAAIAM+AiwgADUCMCADQiCIfEHIDjUCGCAEfnwhAyAAIAM+AjAgADUCNCADQiCIfEHIDjUCHCAEfnwhAyAAIAM+AjRBqBEgA0IgiD4CGEIAIQMgADUCHCACfkL/////D4MhBCAANQIcIANCIIh8QcgONQIAIAR+fCEDIAAgAz4CHCAANQIgIANCIIh8QcgONQIEIAR+fCEDIAAgAz4CICAANQIkIANCIIh8QcgONQIIIAR+fCEDIAAgAz4CJCAANQIoIANCIIh8QcgONQIMIAR+fCEDIAAgAz4CKCAANQIsIANCIIh8QcgONQIQIAR+fCEDIAAgAz4CLCAANQIwIANCIIh8QcgONQIUIAR+fCEDIAAgAz4CMCAANQI0IANCIIh8QcgONQIYIAR+fCEDIAAgAz4CNCAANQI4IANCIIh8QcgONQIcIAR+fCEDIAAgAz4COEGoESADQiCIPgIcQagRIABBIGogARAmC74fIwF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX5C/////w4hBSADQv////8PgyAANQIAIgYgATUCACIHfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DIQggA0L/////D4NBADUCyA4iCSAIfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCBCILfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCBCIKIAd+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQLMDiINIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhDCAEQv////8PgyAJIAx+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIIIg9+fCEDIAQgA0IgiHwhBCADQv////8PgyAKIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIIIg4gB358IQMgBCADQiCIfCEEIANC/////w+DIA0gDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AtAOIhEgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEQIANC/////w+DIAkgEH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AgwiE358IQQgAyAEQiCIfCEDIARC/////w+DIAogD358IQQgAyAEQiCIfCEDIARC/////w+DIA4gC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AgwiEiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgESAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUC1A4iFSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DIRQgBEL/////D4MgCSAUfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAYgATUCECIXfnwhAyAEIANCIIh8IQQgA0L/////D4MgCiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgDiAPfnwhAyAEIANCIIh8IQQgA0L/////D4MgEiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCECIWIAd+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIAx+fCEDIAQgA0IgiHwhBCADQv////8Pg0EANQLYDiIZIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhGCADQv////8PgyAJIBh+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIUIht+fCEEIAMgBEIgiHwhAyAEQv////8PgyAKIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAOIBN+fCEEIAMgBEIgiHwhAyAEQv////8PgyASIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAWIAt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIUIhogB358IQQgAyAEQiCIfCEDIARC/////w+DIA0gGH58IQQgAyAEQiCIfCEDIARC/////w+DIBEgFH58IQQgAyAEQiCIfCEDIARC/////w+DIBUgEH58IQQgAyAEQiCIfCEDIARC/////w+DIBkgDH58IQQgAyAEQiCIfCEDIARC/////w+DQQA1AtwOIh0gCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEcIARC/////w+DIAkgHH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AhgiH358IQMgBCADQiCIfCEEIANC/////w+DIAogG358IQMgBCADQiCIfCEEIANC/////w+DIA4gF358IQMgBCADQiCIfCEEIANC/////w+DIBIgE358IQMgBCADQiCIfCEEIANC/////w+DIBYgD358IQMgBCADQiCIfCEEIANC/////w+DIBogC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AhgiHiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUC4A4iISAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DISAgA0L/////D4MgCSAgfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCHCIjfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAffnwhBCADIARCIIh8IQMgBEL/////D4MgDiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgFiATfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgHiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCHCIiIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANICB+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAdIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQLkDiIlIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhJCAEQv////8PgyAJICR+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgCiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgDiAffnwhAyAEIANCIIh8IQQgA0L/////D4MgEiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgFiAXfnwhAyAEIANCIIh8IQQgA0L/////D4MgGiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgHiAPfnwhAyAEIANCIIh8IQQgA0L/////D4MgIiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgISAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAMfnwhAyAEIANCIIh8IQQgAiADPgIAIARCIIghAyAEQv////8PgyAOICN+fCEEIAMgBEIgiHwhAyAEQv////8PgyASIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAWIBt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAaIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAeIBN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAiIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyARICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVICB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAdIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlIBB+fCEEIAMgBEIgiHwhAyACIAQ+AgQgA0IgiCEEIANC/////w+DIBIgI358IQMgBCADQiCIfCEEIANC/////w+DIBYgH358IQMgBCADQiCIfCEEIANC/////w+DIBogG358IQMgBCADQiCIfCEEIANC/////w+DIB4gF358IQMgBCADQiCIfCEEIANC/////w+DICIgE358IQMgBCADQiCIfCEEIANC/////w+DIBUgJH58IQMgBCADQiCIfCEEIANC/////w+DIBkgIH58IQMgBCADQiCIfCEEIANC/////w+DIB0gHH58IQMgBCADQiCIfCEEIANC/////w+DICEgGH58IQMgBCADQiCIfCEEIANC/////w+DICUgFH58IQMgBCADQiCIfCEEIAIgAz4CCCAEQiCIIQMgBEL/////D4MgFiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAffnwhBCADIARCIIh8IQMgBEL/////D4MgHiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAkfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgISAcfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAYfnwhBCADIARCIIh8IQMgAiAEPgIMIANCIIghBCADQv////8PgyAaICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAeIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyAiIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAdICR+fCEDIAQgA0IgiHwhBCADQv////8PgyAhICB+fCEDIAQgA0IgiHwhBCADQv////8PgyAlIBx+fCEDIAQgA0IgiHwhBCACIAM+AhAgBEIgiCEDIARC/////w+DIB4gI358IQQgAyAEQiCIfCEDIARC/////w+DICIgH358IQQgAyAEQiCIfCEDIARC/////w+DICEgJH58IQQgAyAEQiCIfCEDIARC/////w+DICUgIH58IQQgAyAEQiCIfCEDIAIgBD4CFCADQiCIIQQgA0L/////D4MgIiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAkfnwhAyAEIANCIIh8IQQgAiADPgIYIARCIIghAyACIAQ+AhwgA6cEQCACQcgOIAIQBxoFIAJByA4QBQRAIAJByA4gAhAHGgsLC7shHQF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX5C/////w4hBkIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAA1AgAiByAHfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIQggAkL/////D4NBADUCyA4iCSAIfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCBCIKfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DQQA1AswOIgwgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyELIAJC/////w+DIAkgC358IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AggiDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAogCn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQLQDiIPIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhDiACQv////8PgyAJIA5+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIMIhB+fCECIAMgAkIgiHwhAyACQv////8PgyAKIA1+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUC1A4iEiAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIREgAkL/////D4MgCSARfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCECITfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAQfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgDSANfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgEX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gDn58IQIgAyACQiCIfCEDIAJC/////w+DIBIgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AtgOIhUgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEUIAJC/////w+DIAkgFH58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhQiFn58IQIgAyACQiCIfCEDIAJC/////w+DIAogE358IQIgAyACQiCIfCEDIAJC/////w+DIA0gEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBF+fCECIAMgAkIgiHwhAyACQv////8PgyASIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAVIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQLcDiIYIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhFyACQv////8PgyAJIBd+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIYIhl+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBZ+fCECIAMgAkIgiHwhAyACQv////8PgyANIBN+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAQIBB+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiARfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUC4A4iGyAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIRogAkL/////D4MgCSAafnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCHCIcfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgECATfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgGn58IQIgAyACQiCIfCEDIAJC/////w+DIA8gF358IQIgAyACQiCIfCEDIAJC/////w+DIBIgFH58IQIgAyACQiCIfCEDIAJC/////w+DIBUgEX58IQIgAyACQiCIfCEDIAJC/////w+DIBggDn58IQIgAyACQiCIfCEDIAJC/////w+DIBsgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AuQOIh4gCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEdIAJC/////w+DIAkgHX58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAKIBx+fCECIAMgAkIgiHwhAyACQv////8PgyANIBl+fCECIAMgAkIgiHwhAyACQv////8PgyAQIBZ+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyATIBN+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAafnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCARfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgHiALfnwhAiADIAJCIIh8IQMgASACPgIAIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyANIBx+fCECIAMgAkIgiHwhAyACQv////8PgyAQIBl+fCECIAMgAkIgiHwhAyACQv////8PgyATIBZ+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDyAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAafnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyARfnwhAiADIAJCIIh8IQMgAkL/////D4MgHiAOfnwhAiADIAJCIIh8IQMgASACPgIEIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAQIBx+fCECIAMgAkIgiHwhAyACQv////8PgyATIBl+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAWIBZ+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgEiAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAafnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgHiARfnwhAiADIAJCIIh8IQMgASACPgIIIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyATIBx+fCECIAMgAkIgiHwhAyACQv////8PgyAWIBl+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgFSAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAafnwhAiADIAJCIIh8IQMgAkL/////D4MgGyAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgHiAUfnwhAiADIAJCIIh8IQMgASACPgIMIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAWIBx+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAZIBl+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgGCAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyAafnwhAiADIAJCIIh8IQMgAkL/////D4MgHiAXfnwhAiADIAJCIIh8IQMgASACPgIQIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAZIBx+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgGyAdfnwh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NwMgIAEgACkDKDcDKCABIAApAzA3AzAgASAAKQM4NwM4IAEgACkDQDcDQCABIAApA0g3A0ggASAAKQNQNwNQIAEgACkDWDcDWAscACABQcAAahAcIABBIGogAUEgahAAIAAgARAACxgBAX8gACABEAQgAEEgaiABQSBqEARxDwt1AQF/IABBwABqIQIgABBABEAgARA/DwsgARA/BEBBAA8LIAIQDwRAIAAgARBGDwsgAkHIGRAVIAFByBlB6BkQFCACQcgZQYgaEBQgAUEgakGIGkGoGhAUIABB6BkQBARAIABBIGpBqBoQBARAQQEPCwtBAA8LtAECAX8BfyAAQcAAaiECIAFBwABqIQMgABBABEAgARBADwsgARBABEBBAA8LIAIQDwRAIAEgABBHDwsgAxAPBEAgACABEEcPCyACQcgaEBUgA0HoGhAVIABB6BpBiBsQFCABQcgaQagbEBQgAkHIGkHIGxAUIANB6BpB6BsQFCAAQSBqQegbQYgcEBQgAUEgakHIG0GoHBAUQYgbQagbEAQEQEGIHEGoHBAEBEBBAQ8LC0EADwvoAQAgABA/BEAgACABEEUPCyAAQcgcEBUgAEEgakHoHBAVQegcQYgdEBUgAEHoHEGoHRAQQagdQagdEBVBqB1ByBxBqB0QEUGoHUGIHUGoHRARQagdQagdQagdEBBByBxByBxByB0QEEHIHUHIHEHIHRAQIABBIGogAEEgaiABQcAAahAQQcgdIAEQFSABQagdIAEQESABQagdIAEQEUGIHUGIHUHoHRAQQegdQegdQegdEBBB6B1B6B1B6B0QEEGoHSABIAFBIGoQESABQSBqQcgdIAFBIGoQFCABQSBqQegdIAFBIGoQEQuJAgAgABBABEAgACABEEQPCyAAQcAAahAPBEAgACABEEkPDwsgAEGIHhAVIABBIGpBqB4QFUGoHkHIHhAVIABBqB5B6B4QEEHoHkHoHhAVQegeQYgeQegeEBFB6B5ByB5B6B4QEUHoHkHoHkHoHhAQQYgeQYgeQYgfEBBBiB9BiB5BiB8QEEGIH0GoHxAVIABBIGogAEHAAGpByB8QFEHoHkHoHiABEBBBqB8gASABEBFByB5ByB5B6B8QEEHoH0HoH0HoHxAQQegfQegfQegfEBBB6B4gASABQSBqEBEgAUEgakGIHyABQSBqEBQg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BEAgABAZDwsgAEEgahAZDwuLAgQBfwF/AX8Bf0EAKAIAIQVBACAFIAJBAWpBwABsajYCACAFEH8gACEGIAVBwABqIQVBACEIAkADQCAIIAJGDQEgBhB8BEAgBUHAAGsgBRCAAQUgBiAFQcAAayAFEIEBCyAGIAFqIQYgBUHAAGohBSAIQQFqIQgMAAsLIAYgAWshBiAFQcAAayEFIAMgAkEBayAEbGohByAFIAUQiwECQANAIAhFDQEgBhB8BEAgBSAFQcAAaxCAASAHEH4FIAVBwABrQejKABCAASAFIAYgBUHAAGsQgQEgBUHoygAgBxCBAQsgBiABayEGIAcgBGshByAFQcAAayEFIAhBAWshCAwACwtBACAFNgIAC8wCAgF/AX8gAkUEQCADEH8PCyAAQajLABCAASADEH8gAiEEAkADQCAEQQFrIQQgASAEai0AACEFIAMgAxCDASAFQYABTwRAIAVBgAFrIQUgA0GoywAgAxCBAQsgAyADEIMBIAVBwABPBEAgBUHAAGshBSADQajLACADEIEBCyADIAMQgwEgBUEgTwRAIAVBIGshBSADQajLACADEIEBCyADIAMQgwEgBUEQTwRAIAVBEGshBSADQajLACADEIEBCyADIAMQgwEgBUEITwRAIAVBCGshBSADQajLACADEIEBCyADIAMQgwEgBUEETwRAIAVBBGshBSADQajLACADEIEBCyADIAMQgwEgBUECTwRAIAVBAmshBSADQajLACADEIEBCyADIAMQgwEgBUEBTwRAIAVBAWshBSADQajLACADEIEBCyAERQ0BDAALCwvLAQBB6M0AEH9B6M0AQejNABCGASAAQejLAEEgQajMABCQAUGozABB6MwAEIMBIABB6MwAQejMABCBAUHozABBqM0AEIcBQajNAEHozABBqM0AEIEBQajNAEHozQAQigEEQAALQajMACAAQajOABCBAUHozABB6M0AEIoBBEBB6M0AEAFBiM4AEBxB6M0AQajOACABEIEBBUHozgAQf0HozgBB6MwAQejOABCEAUHozgBBiMwAQSBB6M4AEJABQejOAEGozgAgARCBAQsLaABBiNEAEH9BiNEAQYjRABCGASAAQajPAEEgQcjPABCQAUHIzwBBiNAAEIMBIABBiNAAQYjQABCBAUGI0ABByNAAEIcBQcjQAEGI0ABByNAAEIEBQcjQAEGI0QAQigEEQEEADwtBAQ8LDwAgABB8IABBwABqEHxxCwoAIABBgAFqEHwLDgAgABB+IABBwABqEH4LFgAgABB+IABBwABqEH8gAEGAAWoQfguiAQAgASAAKQMANwMAIAEgACkDCDcDCCABIAApAxA3AxAgASAAKQMYNwMYIAEgACkDIDcDICABIAApAyg3AyggASAAKQMwNwMwIAEgACkDODcDOCABIAApA0A3A0AgASAAKQNINwNIIAEgACkDUDcDUCABIAApA1g3A1ggASAAKQNgNwNgIAEgACkDaDcDaCABIAApA3A3A3AgASAAKQN4NwN4C4ICACABIAApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggASAAKQMgNwMgIAEgACkDKDcDKCABIAApAzA3AzAgASAAKQM4NwM4IAEgACkDQDcDQCABIAApA0g3A0ggASAAKQNQNwNQIAEgACkDWDcDWCABIAApA2A3A2AgASAAKQNoNwNoIAEgACkDcDcDcCABIAApA3g3A3ggASAAKQOAATcDgAEgASAAKQOIATcDiAEgASAAKQOQATcDkAEgASAAKQOYATcDmAEgASAAKQOgATcDoAEgASAAKQOoATcDqAEgASAAKQOwATcDsAEgASAAKQO4ATcDuAELIAAgAUGAAWoQfyAAQcAAaiABQcAAahCAASAAIAEQgAELHAEBfyAAIAEQigEgAEHAAGogAUHAAGoQigFxDwuKAQEBfyAAQYABaiECIAAQlAEEQCABEJMBDwsgARCTAQRAQQAPCyACEH0EQCAAIAEQmgEPCyACQYjSABCDASABQYjSAEHI0gAQgQEgAkGI0gBBiNMAEIEBIAFBwABqQYjTAEHI0wAQgQEgAEHI0gAQigEEQCAAQcAAakHI0wAQigEEQEEBDwsLQQAPC9cBAgF/AX8gAEGAAWohAiABQYABaiEDIAAQlAEEQCABEJQBDwsgARCUAQRAQQAPCyACEH0EQCABIAAQmwEPCyADEH0EQCAAIAEQmwEPCyACQYjUABCDASADQcjUABCDASAAQcjUAEGI1QAQgQEgAUGI1ABByNUAEIEBIAJBiNQAQYjWABCBASADQcjUAEHI1gAQgQEgAEHAAGpByNYAQYjXABCBASABQcAAakGI1gBByNcA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DwsWACAAEH4gAEHAAGoQfiAAQYABahB+CxYAIAAQfyAAQcAAahB+IABBgAFqEH4LJwAgACABEIABIABBwABqIAFBwABqEIABIABBgAFqIAFBgAFqEIABC+UCACAAIAFByMcBEIEBIABBwABqIAFBwABqQYjIARCBASAAQYABaiABQYABakHIyAEQgQEgACAAQcAAakGIyQEQhAEgASABQcAAakHIyQEQhAEgACAAQYABakGIygEQhAEgASABQYABakHIygEQhAEgAEHAAGogAEGAAWpBiMsBEIQBIAFBwABqIAFBgAFqQcjLARCEAUHIxwFBiMgBQYjMARCEAUHIxwFByMgBQcjMARCEAUGIyAFByMgBQYjNARCEAUGIywFByMsBIAIQgQEgAkGIzQEgAhCFASACIAIQ3wFByMcBIAIgAhCEAUGIyQFByMkBIAJBwABqEIEBIAJBwABqQYjMASACQcAAahCFAUHIyAFByM0BEN8BIAJBwABqQcjNASACQcAAahCEAUGIygFByMoBIAJBgAFqEIEBIAJBgAFqQcjMASACQYABahCFASACQYABakGIyAEgAkGAAWoQhAELgQIAIABBiM4BEIMBIAAgAEHAAGpByM4BEIEBQcjOAUHIzgFBiM8BEIQBIAAgAEHAAGpByM8BEIUBQcjPASAAQYABakHIzwEQhAFByM8BQcjPARCDASAAQcAAaiAAQYABakGI0AEQgQFBiNABQYjQAUHI0AEQhAEgAEGAAWpBiNEBEIMBQcjQASABEN8BQYjOASABIAEQhAFBiNEBIAFBwABqEN8BQYjPASABQcAAaiABQcAAahCEAUGIzgFBiNEBIAFBgAFqEIQBQcjQASABQYABaiABQYABahCFAUHIzwEgAUGAAWogAUGAAWoQhAFBiM8BIAFBgAFqIAFBgAFqEIQBCzUAIAAgASACEIQBIABBwABqIAFBwABqIAJBwABqEIQBIABBgAFqIAFBgAFqIAJBgAFqEIQBCzUAIAAgASACEIUBIABBwABqIAFBwABqIAJBwABqEIUBIABBgAFqIAFBgAFqIAJBgAFqEIUBCycAIAAgARCGASAAQcAAaiABQcAAahCGASAAQYABaiABQYABahCGAQswAQF/IABBgAFqEI0BIQEgAQRAIAEPCyAAQcAAahCNASEBIAEEQCABDwsgABCN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ahCBASAAQYABakHQ0AMgAUGAAWoQgQEgAEHAAWpBkNEDIAFBwAFqEIEBIABBgAJqQdDRAyABQYACahCBASAAQcACakGQ0gMgAUHAAmoQgQELigIAIAAgARAAIABBIGogAUEgahASIAFB0NIDIAEQgQEgAEHAAGogAUHAAGoQACAAQeAAaiABQeAAahASIAFBwABqQZDTAyABQcAAahCBASAAQYABaiABQYABahAAIABBoAFqIAFBoAFqEBIgAUGAAWpB0NMDIAFBgAFqEIEBIABBwAFqIAFBwAFqEAAgAEHgAWogAUHgAWoQEiABQcABakGQ1AMgAUHAAWoQgQEgAEGAAmogAUGAAmoQACAAQaACaiABQaACahASIAFBgAJqQdDUAyABQYACahCBASAAQcACaiABQcACahAAIABB4AJqIAFB4AJqEBIgAUHAAmpBkNUDIAFBwAJqEIEBC2wAIABB0NUDIAEQgQEgAEHAAGpBkNYDIAFBwABqEIEBIABBgAFqQdDWAyABQYABahCBASAAQcABakGQ1wMgAUHAAWoQgQEgAEGAAmpB0NcDIAFBgAJqEIEBIABBwAJqQZDYAyABQcACahCBAQuKAgAgACABEAAgAEEgaiABQSBqEBIgAUHQ2AMgARCBASAAQcAAaiABQcAAahAAIABB4ABqIAFB4ABqEBIgAUHAAGpBkNkDIAFBwABqEIEBIABBgAFqIAFBgAFqEAAgAEGgAWogAUGgAWoQEiABQYABakHQ2QMgAUGAAWoQgQEgAEHAAWogAUHAAWoQACAAQeABaiABQeABahASIAFBwAFqQZDaAyABQcABahCBASAAQYACaiABQYACahAAIABBoAJqIAFBoAJqEBIgAUGAAmpB0NoDIAFBgAJqEIEBIABBwAJqIAFBwAJqEAAgAEHgAmogAUHgAmoQEiABQcACakGQ2wMgAUHAAmoQgQELbAAgAEHQ2wMgARCBASAAQcAAakGQ3AMgAUHAAGoQgQEgAEGAAWpB0NwDIAFBgAFqEIEBIABBwAFqQZDdAyABQcABahCBASAAQYACakHQ3QMgAUGAAmoQgQEgAEHAAmpBkN4DIAFBwAJqEIEBC4oCACAAIAEQACAAQSBqIAFBIGoQEiABQdDeAyABEIEBIABBwABqIAFBwABqEAAgAEHgAGogAUHgAGoQEiABQcAA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"; var pq = 520; var pr = 1864; @@ -5054,7 +3499,7 @@ var snarkjs = (function (exports) { let { bitReverse, - log2: log2$1, + log2, buffReverseBits, stringifyBigInts: stringifyBigInts$2, unstringifyBigInts: unstringifyBigInts$2, @@ -5067,7 +3512,7 @@ var snarkjs = (function (exports) { var _utils = /*#__PURE__*/Object.freeze({ __proto__: null, bitReverse: bitReverse, - log2: log2$1, + log2: log2, buffReverseBits: buffReverseBits, stringifyBigInts: stringifyBigInts$2, unstringifyBigInts: unstringifyBigInts$2, @@ -6718,7 +5163,7 @@ var snarkjs = (function (exports) { throw new Error("Scalar size does not match"); } - const bitChunkSize = pTSizes[log2$1(nPoints)]; + const bitChunkSize = pTSizes[log2(nPoints)]; const nChunks = Math.floor((sScalar*8 - 1) / bitChunkSize) +1; const opPromises = []; @@ -6843,7 +5288,7 @@ var snarkjs = (function (exports) { } const nPoints = buff.byteLength / sIn; - const bits = log2$1(nPoints); + const bits = log2(nPoints); if ((1 << bits) != nPoints) { throw new Error("fft must be multiple of 2" ); @@ -6878,7 +5323,6 @@ var snarkjs = (function (exports) { let chunks; const pointsInChunk = 1 << MAX_BITS_THREAD; - const chunkSize = pointsInChunk * sIn; const nChunks = nPoints / pointsInChunk; const promises = []; @@ -6973,17 +5417,16 @@ var snarkjs = (function (exports) { let p= sOut; for (let i=nChunks-1; i>0; i--) { buffOut.set(chunks[i], p); - p += chunkSize; + p += pointsInChunk*sOut; delete chunks[i]; // Liberate mem } buffOut.set(chunks[0].slice(0, (pointsInChunk-1)*sOut), p); - delete chunks[nChunks-1]; + delete chunks[0]; } else { for (let i=0; i> BigInt(n); + } + + const shl$3 = shiftLeft$3; + const shr$3 = shiftRight$3; + + function isOdd$3(a) { + return (BigInt(a) & 1n) == 1n; + } + + + function naf$3(n) { + let E = BigInt(n); + const res = []; + while (E) { + if (E & 1n) { + const z = 2 - Number(E % 4n); + res.push( z ); + E = E - BigInt(z); + } else { + res.push( 0 ); + } + E = E >> 1n; + } + return res; + } + + + function bits$3(n) { + let E = BigInt(n); + const res = []; + while (E) { + if (E & 1n) { + res.push(1); + } else { + res.push( 0 ); + } + E = E >> 1n; + } + return res; + } + + function toNumber$3(s) { + if (s>BigInt(Number.MAX_SAFE_INTEGER )) { + throw new Error("Number too big"); + } + return Number(s); + } + + function toArray$3(s, radix) { + const res = []; + let rem = BigInt(s); + radix = BigInt(radix); + while (rem) { + res.unshift( Number(rem % radix)); + rem = rem / radix; + } + return res; + } + + + function add$3(a, b) { + return BigInt(a) + BigInt(b); + } + + function sub$3(a, b) { + return BigInt(a) - BigInt(b); + } + + function neg$3(a) { + return -BigInt(a); + } + + function mul$3(a, b) { + return BigInt(a) * BigInt(b); + } + + function square$3(a) { + return BigInt(a) * BigInt(a); + } + + function pow$3(a, b) { + return BigInt(a) ** BigInt(b); + } + + function exp$4(a, b) { + return BigInt(a) ** BigInt(b); + } + + function abs$3(a) { + return BigInt(a) >= 0 ? BigInt(a) : -BigInt(a); + } + + function div$3(a, b) { + return BigInt(a) / BigInt(b); + } + + function mod$3(a, b) { + return BigInt(a) % BigInt(b); + } + + function eq$3(a, b) { + return BigInt(a) == BigInt(b); + } + + function neq$3(a, b) { + return BigInt(a) != BigInt(b); + } + + function lt$3(a, b) { + return BigInt(a) < BigInt(b); + } + + function gt$3(a, b) { + return BigInt(a) > BigInt(b); + } + + function leq$3(a, b) { + return BigInt(a) <= BigInt(b); + } + + function geq$3(a, b) { + return BigInt(a) >= BigInt(b); + } + + function band$3(a, b) { + return BigInt(a) & BigInt(b); + } + + function bor$3(a, b) { + return BigInt(a) | BigInt(b); + } + + function bxor$3(a, b) { + return BigInt(a) ^ BigInt(b); + } + + function land$3(a, b) { + return BigInt(a) && BigInt(b); + } + + function lor$3(a, b) { + return BigInt(a) || BigInt(b); + } + + function lnot$3(a) { + return !BigInt(a); + } + + var Scalar_native$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + fromString: fromString$3, + e: e$3, + fromArray: fromArray$3, + bitLength: bitLength$3, + isNegative: isNegative$3, + isZero: isZero$3, + shiftLeft: shiftLeft$3, + shiftRight: shiftRight$3, + shl: shl$3, + shr: shr$3, + isOdd: isOdd$3, + naf: naf$3, + bits: bits$3, + toNumber: toNumber$3, + toArray: toArray$3, + add: add$3, + sub: sub$3, + neg: neg$3, + mul: mul$3, + square: square$3, + pow: pow$3, + exp: exp$4, + abs: abs$3, + div: div$3, + mod: mod$3, + eq: eq$3, + neq: neq$3, + lt: lt$3, + gt: gt$3, + leq: leq$3, + geq: geq$3, + band: band$3, + bor: bor$3, + bxor: bxor$3, + land: land$3, + lor: lor$3, + lnot: lnot$3 + }); + + function fromString$4(s, radix) { + if (typeof s == "string") { + if (s.slice(0,2) == "0x") { + return BigInteger(s.slice(2), 16); + } else { + return BigInteger(s,radix); + } + } else { + return BigInteger(s, radix); + } + } + + const e$4 = fromString$4; + + function fromArray$4(a, radix) { + return BigInteger.fromArray(a, radix); + } + + function bitLength$4(a) { + return BigInteger(a).bitLength(); + } + + function isNegative$4(a) { + return BigInteger(a).isNegative(); + } + + function isZero$4(a) { + return BigInteger(a).isZero(); + } + + function shiftLeft$4(a, n) { + return BigInteger(a).shiftLeft(n); + } + + function shiftRight$4(a, n) { + return BigInteger(a).shiftRight(n); + } + + const shl$4 = shiftLeft$4; + const shr$4 = shiftRight$4; + + function isOdd$4(a) { + return BigInteger(a).isOdd(); + } + + + function naf$4(n) { + let E = BigInteger(n); + const res = []; + while (E.gt(BigInteger.zero)) { + if (E.isOdd()) { + const z = 2 - E.mod(4).toJSNumber(); + res.push( z ); + E = E.minus(z); + } else { + res.push( 0 ); + } + E = E.shiftRight(1); + } + return res; + } + + function bits$4(n) { + let E = BigInteger(n); + const res = []; + while (E.gt(BigInteger.zero)) { + if (E.isOdd()) { + res.push(1); + } else { + res.push( 0 ); + } + E = E.shiftRight(1); + } + return res; + } + + function toNumber$4(s) { + if (!s.lt(BigInteger("9007199254740992", 10))) { + throw new Error("Number too big"); + } + return s.toJSNumber(); + } + + function toArray$4(s, radix) { + return BigInteger(s).toArray(radix); + } + + function add$4(a, b) { + return BigInteger(a).add(BigInteger(b)); + } + + function sub$4(a, b) { + return BigInteger(a).minus(BigInteger(b)); + } + + function neg$4(a) { + return BigInteger.zero.minus(BigInteger(a)); + } + + function mul$4(a, b) { + return BigInteger(a).times(BigInteger(b)); + } + + function square$4(a) { + return BigInteger(a).square(); + } + + function pow$4(a, b) { + return BigInteger(a).pow(BigInteger(b)); + } + + function exp$5(a, b) { + return BigInteger(a).pow(BigInteger(b)); + } + + function abs$4(a) { + return BigInteger(a).abs(); + } + + function div$4(a, b) { + return BigInteger(a).divide(BigInteger(b)); + } + + function mod$4(a, b) { + return BigInteger(a).mod(BigInteger(b)); + } + + function eq$4(a, b) { + return BigInteger(a).eq(BigInteger(b)); + } + + function neq$4(a, b) { + return BigInteger(a).neq(BigInteger(b)); + } + + function lt$4(a, b) { + return BigInteger(a).lt(BigInteger(b)); + } + + function gt$4(a, b) { + return BigInteger(a).gt(BigInteger(b)); + } + + function leq$4(a, b) { + return BigInteger(a).leq(BigInteger(b)); + } + + function geq$4(a, b) { + return BigInteger(a).geq(BigInteger(b)); + } + + function band$4(a, b) { + return BigInteger(a).and(BigInteger(b)); + } + + function bor$4(a, b) { + return BigInteger(a).or(BigInteger(b)); + } + + function bxor$4(a, b) { + return BigInteger(a).xor(BigInteger(b)); + } + + function land$4(a, b) { + return (!BigInteger(a).isZero()) && (!BigInteger(b).isZero()); + } + + function lor$4(a, b) { + return (!BigInteger(a).isZero()) || (!BigInteger(b).isZero()); + } + + function lnot$4(a) { + return BigInteger(a).isZero(); + } + + var Scalar_bigint$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + fromString: fromString$4, + e: e$4, + fromArray: fromArray$4, + bitLength: bitLength$4, + isNegative: isNegative$4, + isZero: isZero$4, + shiftLeft: shiftLeft$4, + shiftRight: shiftRight$4, + shl: shl$4, + shr: shr$4, + isOdd: isOdd$4, + naf: naf$4, + bits: bits$4, + toNumber: toNumber$4, + toArray: toArray$4, + add: add$4, + sub: sub$4, + neg: neg$4, + mul: mul$4, + square: square$4, + pow: pow$4, + exp: exp$5, + abs: abs$4, + div: div$4, + mod: mod$4, + eq: eq$4, + neq: neq$4, + lt: lt$4, + gt: gt$4, + leq: leq$4, + geq: geq$4, + band: band$4, + bor: bor$4, + bxor: bxor$4, + land: land$4, + lor: lor$4, + lnot: lnot$4 + }); + + const supportsNativeBigInt$3 = typeof BigInt === "function"; + + let Scalar$2 = {}; + if (supportsNativeBigInt$3) { + Object.assign(Scalar$2, Scalar_native$1); + } else { + Object.assign(Scalar$2, Scalar_bigint$1); + } + + + // Returns a buffer with Little Endian Representation + Scalar$2.toRprLE = function rprBE(buff, o, e, n8) { + const s = "0000000" + e.toString(16); + const v = new Uint32Array(buff.buffer, o, n8/4); + const l = (((s.length-7)*4 - 1) >> 5)+1; // Number of 32bit words; + for (let i=0; i> 5)+1; // Number of 32bit words; + for (let i=0; i a[a.length-i-1] = ch.toString(16).padStart(8,"0") ); + return Scalar$2.fromString(a.join(""), 16); + }; + + // Pases a buffer with Big Endian Representation + Scalar$2.fromRprBE = function rprLEM(buff, o, n8) { + n8 = n8 || buff.byteLength; + const v = new DataView(buff.buffer, o, n8); + const a = new Array(n8/4); + for (let i=0; i. + */ + + /* + This library does operations on polynomials with coefficients in a field F. + + A polynomial P(x) = p0 + p1 * x + p2 * x^2 + ... + pn * x^n is represented + by the array [ p0, p1, p2, ... , pn ]. + */ + + class PolField { + constructor (F) { + this.F = F; + + let rem = F.sqrt_t; + let s = F.sqrt_s; + + const five = this.F.add(this.F.add(this.F.two, this.F.two), this.F.one); + + this.w = new Array(s+1); + this.wi = new Array(s+1); + this.w[s] = this.F.pow(five, rem); + this.wi[s] = this.F.inv(this.w[s]); + + let n=s-1; + while (n>=0) { + this.w[n] = this.F.square(this.w[n+1]); + this.wi[n] = this.F.square(this.wi[n+1]); + n--; + } + + + this.roots = []; + /* for (let i=0; i<16; i++) { + let r = this.F.one; + n = 1 << i; + const rootsi = new Array(n); + for (let j=0; j=0) && (!this.roots[i]); i--) { + let r = this.F.one; + const nroots = 1 << i; + const rootsi = new Array(nroots); + for (let j=0; j a.length) { + [b, a] = [a, b]; + } + + if ((b.length <= 2) || (b.length < log2$2(a.length))) { + return this.mulNormal(a,b); + } else { + return this.mulFFT(a,b); + } + } + + mulNormal(a, b) { + let res = []; + for (let i=0; i0) { + const z = new Array(n).fill(this.F.zero); + return z.concat(p); + } else { + if (-n >= p.length) return []; + return p.slice(-n); + } + } + + eval2(p, x) { + let v = this.F.zero; + let ix = this.F.one; + for (let i=0; i> 1), + F.mul( + x, + _eval(p, newX, offset+step , step << 1, n >> 1))); + return res; + } + } + + lagrange(points) { + let roots = [this.F.one]; + for (let i=0; i> 1; + const p1 = this._fft(pall, bits-1, offset, step*2); + const p2 = this._fft(pall, bits-1, offset+step, step*2); + + const out = new Array(n); + + let m= this.F.one; + for (let i=0; i0 && this.F.eq(p[i], this.F.zero) ) i--; + return p.slice(0, i+1); + } + + eq(a, b) { + const pa = this.reduce(a); + const pb = this.reduce(b); + + if (pa.length != pb.length) return false; + for (let i=0; i=0; i--) { + res[i] = this.F.add(this.F.mul(res[i+1], r), p[i+1]); + } + return res; + } + + _next2Power(v) { + v--; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + v++; + return v; + } + + toString(p) { + const ap = this.normalize(p); + let S = ""; + for (let i=ap.length-1; i>=0; i--) { + if (!this.F.eq(p[i], this.F.zero)) { + if (S!="") S += " + "; + S = S + p[i].toString(10); + if (i>0) { + S = S + "x"; + if (i>1) { + S = S + "^" +i; + } + } + } + } + return S; + } + + normalize(p) { + const res = new Array(p.length); + for (let i=0; i + // rec = x^(k-2-scaleV)/ v + // + // res = x^m/v = x^(m + (2*k-2 - scaleV) - (2*k-2 - scaleV)) /v => + // res = rec * x^(m - (2*k-2 - scaleV)) => + // res = rec * x^(m - 2*k + 2 + scaleV) + + const rec = this._reciprocal(this.scaleX(v, scaleV), kbits); + const res = this.scaleX(rec, m - 2*k + 2 + scaleV); + + return res; + } + + div(_u, _v) { + if (_u.length < _v.length) return []; + const kbits = log2$2(_v.length-1)+1; + const k = 1 << kbits; + + const u = this.scaleX(_u, k-_v.length); + const v = this.scaleX(_v, k-_v.length); + + const n = v.length-1; + let m = u.length-1; + + const s = this._reciprocal(v, kbits); + let t; + if (m>2*n) { + t = this.sub(this.scaleX([this.F.one], 2*n), this.mul(s, v)); + } + + let q = []; + let rem = u; + let us, ut; + let finish = false; + + while (!finish) { + us = this.mul(rem, s); + q = this.add(q, this.scaleX(us, -2*n)); + + if ( m > 2*n ) { + ut = this.mul(rem, t); + rem = this.scaleX(ut, -2*n); + m = rem.length-1; + } else { + finish = true; + } + } + + return q; + } + + + // returns the ith nth-root of one + oneRoot(n, i) { + let nbits = log2$2(n-1)+1; + let res = this.F.one; + let r = i; + + if(i>=n) { + throw new Error("Given 'i' should be lower than 'n'"); + } + else if (1<0) { + if (r & 1 == 1) { + res = this.F.mul(res, this.w[nbits]); + } + r = r >> 1; + nbits --; + } + return res; + } + + computeVanishingPolinomial(bits, t) { + const m = 1 << bits; + return this.F.sub(this.F.pow(t, m), this.F.one); + } + + evaluateLagrangePolynomials(bits, t) { + const m= 1 << bits; + const tm = this.F.pow(t, m); + const u= new Array(m).fill(this.F.zero); + this._setRoots(bits); + const omega = this.w[bits]; + + if (this.F.eq(tm, this.F.one)) { + for (let i = 0; i < m; i++) { + if (this.F.eq(this.roots[bits][0],t)) { // i.e., t equals omega^i + u[i] = this.F.one; + return u; + } + } + } + + const z = this.F.sub(tm, this.F.one); + // let l = this.F.mul(z, this.F.pow(this.F.twoinv, m)); + let l = this.F.mul(z, this.F.inv(this.F.e(m))); + for (let i = 0; i < m; i++) { + u[i] = this.F.mul(l, this.F.inv(this.F.sub(t,this.roots[bits][i]))); + l = this.F.mul(l, omega); + } + + return u; + } + + log2(V) { + return log2$2(V); + } + } + + function log2$2( V ) + { + return( ( ( V & 0xFFFF0000 ) !== 0 ? ( V &= 0xFFFF0000, 16 ) : 0 ) | ( ( V & 0xFF00FF00 ) !== 0 ? ( V &= 0xFF00FF00, 8 ) : 0 ) | ( ( V & 0xF0F0F0F0 ) !== 0 ? ( V &= 0xF0F0F0F0, 4 ) : 0 ) | ( ( V & 0xCCCCCCCC ) !== 0 ? ( V &= 0xCCCCCCCC, 2 ) : 0 ) | ( ( V & 0xAAAAAAAA ) !== 0 ) ); + } + + + function __fft(PF, pall, bits, offset, step) { + + const n = 1 << bits; + if (n==1) { + return [ pall[offset] ]; + } else if (n==2) { + return [ + PF.F.add(pall[offset], pall[offset + step]), + PF.F.sub(pall[offset], pall[offset + step])]; + } + + const ndiv2 = n >> 1; + const p1 = __fft(PF, pall, bits-1, offset, step*2); + const p2 = __fft(PF, pall, bits-1, offset+step, step*2); + + const out = new Array(n); + + for (let i=0; i> 1; + const p1 = __fft2(PF, pall.slice(0, ndiv2), bits-1); + const p2 = __fft2(PF, pall.slice(ndiv2), bits-1); + + const out = new Array(n); + + for (let i=0; i>=1; + } + return res; + } + + function rev(idx, bits) { + return ( + _revTable$3[idx >>> 24] | + (_revTable$3[(idx >>> 16) & 0xFF] << 8) | + (_revTable$3[(idx >>> 8) & 0xFF] << 16) | + (_revTable$3[idx & 0xFF] << 24) + ) >>> (32-bits); + } + + function __bitReverse(p, bits) { + for (let k=0; kk) { + const tmp= p[k]; + p[k] = p[r]; + p[r] = tmp; + } + } + + } + + /* + Copyright 2018 0kims association. + + This file is part of snarkjs. + + snarkjs is a free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your option) + any later version. + + snarkjs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + snarkjs. If not, see . + */ + + + function mulScalar(F, base, e) { + let res; + + if (isZero$5(e)) return F.zero; + + const n = naf$5(e); + + if (n[n.length-1] == 1) { + res = base; + } else if (n[n.length-1] == -1) { + res = F.neg(base); + } else { + throw new Error("invlaud NAF"); + } + + for (let i=n.length-2; i>=0; i--) { + + res = F.double(res); + + if (n[i] == 1) { + res = F.add(res, base); + } else if (n[i] == -1) { + res = F.sub(res, base); + } + } + + return res; + } + + + /* + exports.mulScalar = (F, base, e) =>{ + let res = F.zero; + let rem = bigInt(e); + let exp = base; + + while (! rem.eq(bigInt.zero)) { + if (rem.and(bigInt.one).eq(bigInt.one)) { + res = F.add(res, exp); + } + exp = F.double(exp); + rem = rem.shiftRight(1); + } + + return res; + }; + */ + + + function exp$7(F, base, e) { + + if (isZero$5(e)) return F.one; + + const n = bits$5(e); + + if (n.legth==0) return F.one; + + let res = base; + + for (let i=n.length-2; i>=0; i--) { + + res = F.square(res); + + if (n[i]) { + res = F.mul(res, base); + } + } + + return res; + } + + // Check here: https://eprint.iacr.org/2012/685.pdf + + function buildSqrt$1 (F) { + if ((F.m % 2) == 1) { + if (eq$5(mod$5(F.p, 4), 1 )) { + if (eq$5(mod$5(F.p, 8), 1 )) { + if (eq$5(mod$5(F.p, 16), 1 )) { + // alg7_muller(F); + alg5_tonelliShanks$1(F); + } else if (eq$5(mod$5(F.p, 16), 9 )) { + alg4_kong$1(F); + } else { + throw new Error("Field withot sqrt"); + } + } else if (eq$5(mod$5(F.p, 8), 5 )) { + alg3_atkin$1(F); + } else { + throw new Error("Field withot sqrt"); + } + } else if (eq$5(mod$5(F.p, 4), 3 )) { + alg2_shanks$1(F); + } + } else { + const pm2mod4 = mod$5(pow$5(F.p, F.m/2), 4); + if (pm2mod4 == 1) { + alg10_adj$1(F); + } else if (pm2mod4 == 3) { + alg9_adj$1(F); + } else { + alg8_complex$1(F); + } + + } + } + + + function alg5_tonelliShanks$1(F) { + F.sqrt_q = pow$5(F.p, F.m); + + F.sqrt_s = 0; + F.sqrt_t = sub$5(F.sqrt_q, 1); + + while (!isOdd$5(F.sqrt_t)) { + F.sqrt_s = F.sqrt_s + 1; + F.sqrt_t = div$5(F.sqrt_t, 2); + } + + let c0 = F.one; + + while (F.eq(c0, F.one)) { + const c = F.random(); + F.sqrt_z = F.pow(c, F.sqrt_t); + c0 = F.pow(F.sqrt_z, 1 << (F.sqrt_s-1) ); + } + + F.sqrt_tm1d2 = div$5(sub$5(F.sqrt_t, 1),2); + + F.sqrt = function(a) { + const F=this; + if (F.isZero(a)) return F.zero; + let w = F.pow(a, F.sqrt_tm1d2); + const a0 = F.pow( F.mul(F.square(w), a), 1 << (F.sqrt_s-1) ); + if (F.eq(a0, F.negone)) return null; + + let v = F.sqrt_s; + let x = F.mul(a, w); + let b = F.mul(x, w); + let z = F.sqrt_z; + while (!F.eq(b, F.one)) { + let b2k = F.square(b); + let k=1; + while (!F.eq(b2k, F.one)) { + b2k = F.square(b2k); + k++; + } + + w = z; + for (let i=0; i>> 0; + st[d] = (st[d] ^ st[a]) >>> 0; + st[d] = ((st[d] << 16) | ((st[d]>>>16) & 0xFFFF)) >>> 0; + + st[c] = (st[c] + st[d]) >>> 0; + st[b] = (st[b] ^ st[c]) >>> 0; + st[b] = ((st[b] << 12) | ((st[b]>>>20) & 0xFFF)) >>> 0; + + st[a] = (st[a] + st[b]) >>> 0; + st[d] = (st[d] ^ st[a]) >>> 0; + st[d] = ((st[d] << 8) | ((st[d]>>>24) & 0xFF)) >>> 0; + + st[c] = (st[c] + st[d]) >>> 0; + st[b] = (st[b] ^ st[c]) >>> 0; + st[b] = ((st[b] << 7) | ((st[b]>>>25) & 0x7F)) >>> 0; + } + + function doubleRound$1(st) { + quarterRound$1(st, 0, 4, 8,12); + quarterRound$1(st, 1, 5, 9,13); + quarterRound$1(st, 2, 6,10,14); + quarterRound$1(st, 3, 7,11,15); + + quarterRound$1(st, 0, 5,10,15); + quarterRound$1(st, 1, 6,11,12); + quarterRound$1(st, 2, 7, 8,13); + quarterRound$1(st, 3, 4, 9,14); + } + + class ChaCha$1 { + + constructor(seed) { + seed = seed || [0,0,0,0,0,0,0,0]; + this.state = [ + 0x61707865, + 0x3320646E, + 0x79622D32, + 0x6B206574, + seed[0], + seed[1], + seed[2], + seed[3], + seed[4], + seed[5], + seed[6], + seed[7], + 0, + 0, + 0, + 0 + ]; + this.idx = 16; + this.buff = new Array(16); + } + + nextU32() { + if (this.idx == 16) this.update(); + return this.buff[this.idx++]; + } + + nextU64() { + return add$5(mul$5(this.nextU32(), 0x100000000), this.nextU32()); + } + + nextBool() { + return (this.nextU32() & 1) == 1; + } + + update() { + // Copy the state + for (let i=0; i<16; i++) this.buff[i] = this.state[i]; + + // Apply the rounds + for (let i=0; i<10; i++) doubleRound$1(this.buff); + + // Add to the initial + for (let i=0; i<16; i++) this.buff[i] = (this.buff[i] + this.state[i]) >>> 0; + + this.idx = 0; + + this.state[12] = (this.state[12] + 1) >>> 0; + if (this.state[12] != 0) return; + this.state[13] = (this.state[13] + 1) >>> 0; + if (this.state[13] != 0) return; + this.state[14] = (this.state[14] + 1) >>> 0; + if (this.state[14] != 0) return; + this.state[15] = (this.state[15] + 1) >>> 0; + } + } + + /* global window */ + + function getRandomBytes$1(n) { + let array = new Uint8Array(n); + if (typeof window !== "undefined") { // Browser + if (typeof window.crypto !== "undefined") { // Supported + window.crypto.getRandomValues(array); + } else { // fallback + for (let i=0; i>>0; + } + } + } + else { // NodeJS + crypto.randomFillSync(array); + } + return array; + } + + function getRandomSeed$1() { + const arr = getRandomBytes$1(32); + const arrV = new Uint32Array(arr.buffer); + const seed = []; + for (let i=0; i<8; i++) { + seed.push(arrV[i]); + } + return seed; + } + + let threadRng$1 = null; + + function getThreadRng$1() { + if (threadRng$1) return threadRng$1; + threadRng$1 = new ChaCha$1(getRandomSeed$1()); + return threadRng$1; + } + + /* global BigInt */ + + class ZqField$2 { + constructor(p) { + this.type="F1"; + this.one = 1n; + this.zero = 0n; + this.p = BigInt(p); + this.m = 1; + this.negone = this.p-1n; + this.two = 2n; + this.half = this.p >> 1n; + this.bitLength = bitLength$5(this.p); + this.mask = (1n << BigInt(this.bitLength)) - 1n; + + this.n64 = Math.floor((this.bitLength - 1) / 64)+1; + this.n32 = this.n64*2; + this.n8 = this.n64*8; + this.R = this.e(1n << BigInt(this.n64*64)); + this.Ri = this.inv(this.R); + + const e = this.negone >> 1n; + this.nqr = this.two; + let r = this.pow(this.nqr, e); + while (!this.eq(r, this.negone)) { + this.nqr = this.nqr + 1n; + r = this.pow(this.nqr, e); + } + + + this.s = 0; + this.t = this.negone; + + while ((this.t & 1n) == 0n) { + this.s = this.s + 1; + this.t = this.t >> 1n; + } + + this.nqr_to_t = this.pow(this.nqr, this.t); + + buildSqrt$1(this); + } + + e(a,b) { + let res; + if (!b) { + res = BigInt(a); + } else if (b==16) { + res = BigInt("0x"+a); + } + if (res < 0) { + let nres = -res; + if (nres >= this.p) nres = nres % this.p; + return this.p - nres; + } else { + return (res>= this.p) ? res%this.p : res; + } + + } + + add(a, b) { + const res = a + b; + return res >= this.p ? res-this.p : res; + } + + sub(a, b) { + return (a >= b) ? a-b : this.p-b+a; + } + + neg(a) { + return a ? this.p-a : a; + } + + mul(a, b) { + return (a*b)%this.p; + } + + mulScalar(base, s) { + return (base * this.e(s)) % this.p; + } + + square(a) { + return (a*a) % this.p; + } + + eq(a, b) { + return a==b; + } + + neq(a, b) { + return a!=b; + } + + lt(a, b) { + const aa = (a > this.half) ? a - this.p : a; + const bb = (b > this.half) ? b - this.p : b; + return aa < bb; + } + + gt(a, b) { + const aa = (a > this.half) ? a - this.p : a; + const bb = (b > this.half) ? b - this.p : b; + return aa > bb; + } + + leq(a, b) { + const aa = (a > this.half) ? a - this.p : a; + const bb = (b > this.half) ? b - this.p : b; + return aa <= bb; + } + + geq(a, b) { + const aa = (a > this.half) ? a - this.p : a; + const bb = (b > this.half) ? b - this.p : b; + return aa >= bb; + } + + div(a, b) { + return this.mul(a, this.inv(b)); + } + + idiv(a, b) { + if (!b) throw new Error("Division by zero"); + return a / b; + } + + inv(a) { + if (!a) throw new Error("Division by zero"); + + let t = 0n; + let r = this.p; + let newt = 1n; + let newr = a % this.p; + while (newr) { + let q = r/newr; + [t, newt] = [newt, t-q*newt]; + [r, newr] = [newr, r-q*newr]; + } + if (t<0n) t += this.p; + return t; + } + + mod(a, b) { + return a % b; + } + + pow(b, e) { + return exp$7(this, b, e); + } + + exp(b, e) { + return exp$7(this, b, e); + } + + band(a, b) { + const res = ((a & b) & this.mask); + return res >= this.p ? res-this.p : res; + } + + bor(a, b) { + const res = ((a | b) & this.mask); + return res >= this.p ? res-this.p : res; + } + + bxor(a, b) { + const res = ((a ^ b) & this.mask); + return res >= this.p ? res-this.p : res; + } + + bnot(a) { + const res = a ^ this.mask; + return res >= this.p ? res-this.p : res; + } + + shl(a, b) { + if (Number(b) < this.bitLength) { + const res = (a << b) & this.mask; + return res >= this.p ? res-this.p : res; + } else { + const nb = this.p - b; + if (Number(nb) < this.bitLength) { + return a >> nb; + } else { + return 0n; + } + } + } + + shr(a, b) { + if (Number(b) < this.bitLength) { + return a >> b; + } else { + const nb = this.p - b; + if (Number(nb) < this.bitLength) { + const res = (a << nb) & this.mask; + return res >= this.p ? res-this.p : res; + } else { + return 0; + } + } + } + + land(a, b) { + return (a && b) ? 1n : 0n; + } + + lor(a, b) { + return (a || b) ? 1n : 0n; + } + + lnot(a) { + return (a) ? 0n : 1n; + } + + sqrt_old(n) { + + if (n == 0n) return this.zero; + + // Test that have solution + const res = this.pow(n, this.negone >> this.one); + if ( res != 1n ) return null; + + let m = this.s; + let c = this.nqr_to_t; + let t = this.pow(n, this.t); + let r = this.pow(n, this.add(this.t, this.one) >> 1n ); + + while ( t != 1n ) { + let sq = this.square(t); + let i = 1; + while (sq != 1n ) { + i++; + sq = this.square(sq); + } + + // b = c ^ m-i-1 + let b = c; + for (let j=0; j< m-i-1; j ++) b = this.square(b); + + m = i; + c = this.square(b); + t = this.mul(t, c); + r = this.mul(r, b); + } + + if (r > (this.p >> 1n)) { + r = this.neg(r); + } + + return r; + } + + normalize(a, b) { + a = BigInt(a,b); + if (a < 0) { + let na = -a; + if (na >= this.p) na = na % this.p; + return this.p - na; + } else { + return (a>= this.p) ? a%this.p : a; + } + } + + random() { + const nBytes = (this.bitLength*2 / 8); + let res =0n; + for (let i=0; i this.half) { + const v = this.p-a; + vs = "-"+v.toString(base); + } else { + vs = a.toString(base); + } + return vs; + } + + isZero(a) { + return a == 0n; + } + + fromRng(rng) { + let v; + do { + v=0n; + for (let i=0; i= this.p); + v = (v * this.Ri) % this.p; // Convert from montgomery + return v; + } + + } + + class ZqField$3 { + constructor(p) { + this.type="F1"; + this.one = BigInteger.one; + this.zero = BigInteger.zero; + this.p = BigInteger(p); + this.m = 1; + this.negone = this.p.minus(BigInteger.one); + this.two = BigInteger(2); + this.half = this.p.shiftRight(1); + this.bitLength = this.p.bitLength(); + this.mask = BigInteger.one.shiftLeft(this.bitLength).minus(BigInteger.one); + + this.n64 = Math.floor((this.bitLength - 1) / 64)+1; + this.n32 = this.n64*2; + this.n8 = this.n64*8; + this.R = BigInteger.one.shiftLeft(this.n64*64); + this.Ri = this.inv(this.R); + + const e = this.negone.shiftRight(this.one); + this.nqr = this.two; + let r = this.pow(this.nqr, e); + while (!r.equals(this.negone)) { + this.nqr = this.nqr.add(this.one); + r = this.pow(this.nqr, e); + } + + this.s = this.zero; + this.t = this.negone; + + while (!this.t.isOdd()) { + this.s = this.s.add(this.one); + this.t = this.t.shiftRight(this.one); + } + + this.nqr_to_t = this.pow(this.nqr, this.t); + + buildSqrt$1(this); + } + + e(a,b) { + + const res = BigInteger(a,b); + + return this.normalize(res); + + } + + add(a, b) { + let res = a.add(b); + if (res.geq(this.p)) { + res = res.minus(this.p); + } + return res; + } + + sub(a, b) { + if (a.geq(b)) { + return a.minus(b); + } else { + return this.p.minus(b.minus(a)); + } + } + + neg(a) { + if (a.isZero()) return a; + return this.p.minus(a); + } + + mul(a, b) { + return a.times(b).mod(this.p); + } + + mulScalar(base, s) { + return base.times(BigInteger(s)).mod(this.p); + } + + square(a) { + return a.square().mod(this.p); + } + + eq(a, b) { + return a.eq(b); + } + + neq(a, b) { + return a.neq(b); + } + + lt(a, b) { + const aa = a.gt(this.half) ? a.minus(this.p) : a; + const bb = b.gt(this.half) ? b.minus(this.p) : b; + return aa.lt(bb); + } + + gt(a, b) { + const aa = a.gt(this.half) ? a.minus(this.p) : a; + const bb = b.gt(this.half) ? b.minus(this.p) : b; + return aa.gt(bb); + } + + leq(a, b) { + const aa = a.gt(this.half) ? a.minus(this.p) : a; + const bb = b.gt(this.half) ? b.minus(this.p) : b; + return aa.leq(bb); + } + + geq(a, b) { + const aa = a.gt(this.half) ? a.minus(this.p) : a; + const bb = b.gt(this.half) ? b.minus(this.p) : b; + return aa.geq(bb); + } + + div(a, b) { + if (b.isZero()) throw new Error("Division by zero"); + return a.times(b.modInv(this.p)).mod(this.p); + } + + idiv(a, b) { + if (b.isZero()) throw new Error("Division by zero"); + return a.divide(b); + } + + inv(a) { + if (a.isZero()) throw new Error("Division by zero"); + return a.modInv(this.p); + } + + mod(a, b) { + return a.mod(b); + } + + pow(a, b) { + return a.modPow(b, this.p); + } + + exp(a, b) { + return a.modPow(b, this.p); + } + + band(a, b) { + return a.and(b).and(this.mask).mod(this.p); + } + + bor(a, b) { + return a.or(b).and(this.mask).mod(this.p); + } + + bxor(a, b) { + return a.xor(b).and(this.mask).mod(this.p); + } + + bnot(a) { + return a.xor(this.mask).mod(this.p); + } + + shl(a, b) { + if (b.lt(this.bitLength)) { + return a.shiftLeft(b).and(this.mask).mod(this.p); + } else { + const nb = this.p.minus(b); + if (nb.lt(this.bitLength)) { + return this.shr(a, nb); + } else { + return BigInteger.zero; + } + } + } + + shr(a, b) { + if (b.lt(this.bitLength)) { + return a.shiftRight(b); + } else { + const nb = this.p.minus(b); + if (nb.lt(this.bitLength)) { + return this.shl(a, nb); + } else { + return BigInteger.zero; + } + } + } + + land(a, b) { + return (a.isZero() || b.isZero()) ? BigInteger.zero : BigInteger.one; + } + + lor(a, b) { + return (a.isZero() && b.isZero()) ? BigInteger.zero : BigInteger.one; + } + + lnot(a) { + return a.isZero() ? BigInteger.one : BigInteger.zero; + } + + sqrt_old(n) { + + if (n.equals(this.zero)) return this.zero; + + // Test that have solution + const res = this.pow(n, this.negone.shiftRight(this.one)); + if (!res.equals(this.one)) return null; + + let m = parseInt(this.s); + let c = this.nqr_to_t; + let t = this.pow(n, this.t); + let r = this.pow(n, this.add(this.t, this.one).shiftRight(this.one) ); + + while (!t.equals(this.one)) { + let sq = this.square(t); + let i = 1; + while (!sq.equals(this.one)) { + i++; + sq = this.square(sq); + } + + // b = c ^ m-i-1 + let b = c; + for (let j=0; j< m-i-1; j ++) b = this.square(b); + + m = i; + c = this.square(b); + t = this.mul(t, c); + r = this.mul(r, b); + } + + if (r.greater(this.p.shiftRight(this.one))) { + r = this.neg(r); + } + + return r; + } + + normalize(a) { + a = BigInteger(a); + if (a.isNegative()) { + return this.p.minus(a.abs().mod(this.p)); + } else { + return a.mod(this.p); + } + } + + random() { + let res = BigInteger(0); + let n = BigInteger(this.p.square()); + while (!n.isZero()) { + res = res.shiftLeft(8).add(BigInteger(getRandomBytes$1(1)[0])); + n = n.shiftRight(8); + } + return res.mod(this.p); + } + + toString(a, base) { + let vs; + if (!a.lesserOrEquals(this.p.shiftRight(BigInteger(1)))) { + const v = this.p.minus(a); + vs = "-"+v.toString(base); + } else { + vs = a.toString(base); + } + + return vs; + } + + isZero(a) { + return a.isZero(); + } + + fromRng(rng) { + let v; + do { + v = BigInteger(0); + for (let i=0; i. + */ + + class F2Field { + constructor(F, nonResidue) { + this.type="F2"; + this.F = F; + this.zero = [this.F.zero, this.F.zero]; + this.one = [this.F.one, this.F.zero]; + this.negone = this.neg(this.one); + this.nonResidue = nonResidue; + this.m = F.m*2; + this.p = F.p; + this.n64 = F.n64*2; + this.n32 = this.n64*2; + this.n8 = this.n64*8; + + buildSqrt$1(this); + } + + _mulByNonResidue(a) { + return this.F.mul(this.nonResidue, a); + } + + copy(a) { + return [this.F.copy(a[0]), this.F.copy(a[1])]; + } + + add(a, b) { + return [ + this.F.add(a[0], b[0]), + this.F.add(a[1], b[1]) + ]; + } + + double(a) { + return this.add(a,a); + } + + sub(a, b) { + return [ + this.F.sub(a[0], b[0]), + this.F.sub(a[1], b[1]) + ]; + } + + neg(a) { + return this.sub(this.zero, a); + } + + conjugate(a) { + return [ + a[0], + this.F.neg(a[1]) + ]; + } + + mul(a, b) { + const aA = this.F.mul(a[0] , b[0]); + const bB = this.F.mul(a[1] , b[1]); + + return [ + this.F.add( aA , this._mulByNonResidue(bB)), + this.F.sub( + this.F.mul( + this.F.add(a[0], a[1]), + this.F.add(b[0], b[1])), + this.F.add(aA, bB))]; + } + + inv(a) { + const t0 = this.F.square(a[0]); + const t1 = this.F.square(a[1]); + const t2 = this.F.sub(t0, this._mulByNonResidue(t1)); + const t3 = this.F.inv(t2); + return [ + this.F.mul(a[0], t3), + this.F.neg(this.F.mul( a[1], t3)) ]; + } + + div(a, b) { + return this.mul(a, this.inv(b)); + } + + square(a) { + const ab = this.F.mul(a[0] , a[1]); + + /* + [ + (a + b) * (a + non_residue * b) - ab - non_residue * ab, + ab + ab + ]; + */ + + return [ + this.F.sub( + this.F.mul( + this.F.add(a[0], a[1]) , + this.F.add( + a[0] , + this._mulByNonResidue(a[1]))), + this.F.add( + ab, + this._mulByNonResidue(ab))), + this.F.add(ab, ab) + ]; + } + + isZero(a) { + return this.F.isZero(a[0]) && this.F.isZero(a[1]); + } + + eq(a, b) { + return this.F.eq(a[0], b[0]) && this.F.eq(a[1], b[1]); + } + + mulScalar(base, e) { + return mulScalar(this, base, e); + } + + pow(base, e) { + return exp$7(this, base, e); + } + + exp(base, e) { + return exp$7(this, base, e); + } + + toString(a) { + return `[ ${this.F.toString(a[0])} , ${this.F.toString(a[1])} ]`; + } + + fromRng(rng) { + const c0 = this.F.fromRng(rng); + const c1 = this.F.fromRng(rng); + return [c0, c1]; + } + + gt(a, b) { + if (this.F.gt(a[0], b[0])) return true; + if (this.F.gt(b[0], a[0])) return false; + if (this.F.gt(a[1], b[1])) return true; + return false; + } + + geq(a, b) { + return this.gt(a, b) || this.eq(a, b); + } + + lt(a, b) { + return !this.geq(a,b); + } + + leq(a, b) { + return !this.gt(a,b); + } + + neq(a, b) { + return !this.eq(a,b); + } + + random() { + return [this.F.random(), this.F.random()]; + } + + + toRprLE(buff, o, e) { + this.F.toRprLE(buff, o, e[0]); + this.F.toRprLE(buff, o+this.F.n8, e[1]); + } + + toRprBE(buff, o, e) { + this.F.toRprBE(buff, o, e[1]); + this.F.toRprBE(buff, o+this.F.n8, e[0]); + } + + toRprLEM(buff, o, e) { + this.F.toRprLEM(buff, o, e[0]); + this.F.toRprLEM(buff, o+this.F.n8, e[1]); + } + + + toRprBEM(buff, o, e) { + this.F.toRprBEM(buff, o, e[1]); + this.F.toRprBEM(buff, o+this.F.n8, e[0]); + } + + fromRprLE(buff, o) { + o = o || 0; + const c0 = this.F.fromRprLE(buff, o); + const c1 = this.F.fromRprLE(buff, o+this.F.n8); + return [c0, c1]; + } + + fromRprBE(buff, o) { + o = o || 0; + const c1 = this.F.fromRprBE(buff, o); + const c0 = this.F.fromRprBE(buff, o+this.F.n8); + return [c0, c1]; + } + + fromRprLEM(buff, o) { + o = o || 0; + const c0 = this.F.fromRprLEM(buff, o); + const c1 = this.F.fromRprLEM(buff, o+this.F.n8); + return [c0, c1]; + } + + fromRprBEM(buff, o) { + o = o || 0; + const c1 = this.F.fromRprBEM(buff, o); + const c0 = this.F.fromRprBEM(buff, o+this.F.n8); + return [c0, c1]; + } + + } + + /* + Copyright 2018 0kims association. + + This file is part of snarkjs. + + snarkjs is a free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your option) + any later version. + + snarkjs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + snarkjs. If not, see . + */ + + class F3Field { + constructor(F, nonResidue) { + this.type="F3"; + this.F = F; + this.zero = [this.F.zero, this.F.zero, this.F.zero]; + this.one = [this.F.one, this.F.zero, this.F.zero]; + this.negone = this.neg(this.one); + this.nonResidue = nonResidue; + this.m = F.m*3; + this.p = F.p; + this.n64 = F.n64*3; + this.n32 = this.n64*2; + this.n8 = this.n64*8; + } + + _mulByNonResidue(a) { + return this.F.mul(this.nonResidue, a); + } + + copy(a) { + return [this.F.copy(a[0]), this.F.copy(a[1]), this.F.copy(a[2])]; + } + + add(a, b) { + return [ + this.F.add(a[0], b[0]), + this.F.add(a[1], b[1]), + this.F.add(a[2], b[2]) + ]; + } + + double(a) { + return this.add(a,a); + } + + sub(a, b) { + return [ + this.F.sub(a[0], b[0]), + this.F.sub(a[1], b[1]), + this.F.sub(a[2], b[2]) + ]; + } + + neg(a) { + return this.sub(this.zero, a); + } + + mul(a, b) { + + const aA = this.F.mul(a[0] , b[0]); + const bB = this.F.mul(a[1] , b[1]); + const cC = this.F.mul(a[2] , b[2]); + + return [ + this.F.add( + aA, + this._mulByNonResidue( + this.F.sub( + this.F.mul( + this.F.add(a[1], a[2]), + this.F.add(b[1], b[2])), + this.F.add(bB, cC)))), // aA + non_residue*((b+c)*(B+C)-bB-cC), + + this.F.add( + this.F.sub( + this.F.mul( + this.F.add(a[0], a[1]), + this.F.add(b[0], b[1])), + this.F.add(aA, bB)), + this._mulByNonResidue( cC)), // (a+b)*(A+B)-aA-bB+non_residue*cC + + this.F.add( + this.F.sub( + this.F.mul( + this.F.add(a[0], a[2]), + this.F.add(b[0], b[2])), + this.F.add(aA, cC)), + bB)]; // (a+c)*(A+C)-aA+bB-cC) + } + + inv(a) { + const t0 = this.F.square(a[0]); // t0 = a^2 ; + const t1 = this.F.square(a[1]); // t1 = b^2 ; + const t2 = this.F.square(a[2]); // t2 = c^2; + const t3 = this.F.mul(a[0],a[1]); // t3 = ab + const t4 = this.F.mul(a[0],a[2]); // t4 = ac + const t5 = this.F.mul(a[1],a[2]); // t5 = bc; + // c0 = t0 - non_residue * t5; + const c0 = this.F.sub(t0, this._mulByNonResidue(t5)); + // c1 = non_residue * t2 - t3; + const c1 = this.F.sub(this._mulByNonResidue(t2), t3); + const c2 = this.F.sub(t1, t4); // c2 = t1-t4 + + // t6 = (a * c0 + non_residue * (c * c1 + b * c2)).inv(); + const t6 = + this.F.inv( + this.F.add( + this.F.mul(a[0], c0), + this._mulByNonResidue( + this.F.add( + this.F.mul(a[2], c1), + this.F.mul(a[1], c2))))); + + return [ + this.F.mul(t6, c0), // t6*c0 + this.F.mul(t6, c1), // t6*c1 + this.F.mul(t6, c2)]; // t6*c2 + } + + div(a, b) { + return this.mul(a, this.inv(b)); + } + + square(a) { + const s0 = this.F.square(a[0]); // s0 = a^2 + const ab = this.F.mul(a[0], a[1]); // ab = a*b + const s1 = this.F.add(ab, ab); // s1 = 2ab; + const s2 = this.F.square( + this.F.add(this.F.sub(a[0],a[1]), a[2])); // s2 = (a - b + c)^2; + const bc = this.F.mul(a[1],a[2]); // bc = b*c + const s3 = this.F.add(bc, bc); // s3 = 2*bc + const s4 = this.F.square(a[2]); // s4 = c^2 + + + return [ + this.F.add( + s0, + this._mulByNonResidue(s3)), // s0 + non_residue * s3, + this.F.add( + s1, + this._mulByNonResidue(s4)), // s1 + non_residue * s4, + this.F.sub( + this.F.add( this.F.add(s1, s2) , s3 ), + this.F.add(s0, s4))]; // s1 + s2 + s3 - s0 - s4 + } + + isZero(a) { + return this.F.isZero(a[0]) && this.F.isZero(a[1]) && this.F.isZero(a[2]); + } + + eq(a, b) { + return this.F.eq(a[0], b[0]) && this.F.eq(a[1], b[1]) && this.F.eq(a[2], b[2]); + } + + affine(a) { + return [this.F.affine(a[0]), this.F.affine(a[1]), this.F.affine(a[2])]; + } + + mulScalar(base, e) { + return mulScalar(this, base, e); + } + + pow(base, e) { + return exp$7(this, base, e); + } + + exp(base, e) { + return exp$7(this, base, e); + } + + toString(a) { + return `[ ${this.F.toString(a[0])} , ${this.F.toString(a[1])}, ${this.F.toString(a[2])} ]`; + } + + fromRng(rng) { + const c0 = this.F.fromRng(rng); + const c1 = this.F.fromRng(rng); + const c2 = this.F.fromRng(rng); + return [c0, c1, c2]; + } + + gt(a, b) { + if (this.F.gt(a[0], b[0])) return true; + if (this.F.gt(b[0], a[0])) return false; + if (this.F.gt(a[1], b[1])) return true; + if (this.F.gt(b[1], a[1])) return false; + if (this.F.gt(a[2], b[2])) return true; + return false; + } + + + geq(a, b) { + return this.gt(a, b) || this.eq(a, b); + } + + lt(a, b) { + return !this.geq(a,b); + } + + leq(a, b) { + return !this.gt(a,b); + } + + neq(a, b) { + return !this.eq(a,b); + } + + random() { + return [this.F.random(), this.F.random(), this.F.random()]; + } + + + toRprLE(buff, o, e) { + this.F.toRprLE(buff, o, e[0]); + this.F.toRprLE(buff, o+this.F.n8, e[1]); + this.F.toRprLE(buff, o+this.F.n8*2, e[2]); + } + + toRprBE(buff, o, e) { + this.F.toRprBE(buff, o, e[2]); + this.F.toRprBE(buff, o+this.F.n8, e[1]); + this.F.toRprBE(buff, o+this.F.n8*2, e[0]); + } + + toRprLEM(buff, o, e) { + this.F.toRprLEM(buff, o, e[0]); + this.F.toRprLEM(buff, o+this.F.n8, e[1]); + this.F.toRprLEM(buff, o+this.F.n8*2, e[2]); + } + + + toRprBEM(buff, o, e) { + this.F.toRprBEM(buff, o, e[2]); + this.F.toRprBEM(buff, o+this.F.n8, e[1]); + this.F.toRprBEM(buff, o+this.F.n8*2, e[0]); + } + + fromRprLE(buff, o) { + o = o || 0; + const c0 = this.F.fromRprLE(buff, o); + const c1 = this.F.fromRprLE(buff, o+this.n8); + const c2 = this.F.fromRprLE(buff, o+this.n8*2); + return [c0, c1, c2]; + } + + fromRprBE(buff, o) { + o = o || 0; + const c2 = this.F.fromRprBE(buff, o); + const c1 = this.F.fromRprBE(buff, o+this.n8); + const c0 = this.F.fromRprBE(buff, o+this.n8*2); + return [c0, c1, c2]; + } + + fromRprLEM(buff, o) { + o = o || 0; + const c0 = this.F.fromRprLEM(buff, o); + const c1 = this.F.fromRprLEM(buff, o+this.n8); + const c2 = this.F.fromRprLEM(buff, o+this.n8*2); + return [c0, c1, c2]; + } + + fromRprBEM(buff, o) { + o = o || 0; + const c2 = this.F.fromRprBEM(buff, o); + const c1 = this.F.fromRprBEM(buff, o+this.n8); + const c0 = this.F.fromRprBEM(buff, o+this.n8*2); + return [c0, c1, c2]; + } + + } + + /* + Copyright 2018 0kims association. + + This file is part of snarkjs. + + snarkjs is a free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your option) + any later version. + + snarkjs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + snarkjs. If not, see . + */ + + + function isGreatest(F, a) { + if (Array.isArray(a)) { + for (let i=a.length-1; i>=0; i--) { + if (!F.F.isZero(a[i])) { + return isGreatest(F.F, a[i]); + } + } + return 0; + } else { + const na = F.neg(a); + return gt$5(a, na); + } + } + + + class EC { + + constructor(F, g) { + this.F = F; + this.g = g; + if (this.g.length == 2) this.g[2] = this.F.one; + this.zero = [this.F.zero, this.F.one, this.F.zero]; + } + + add(p1, p2) { + + const F = this.F; + + if (this.eq(p1, this.zero)) return p2; + if (this.eq(p2, this.zero)) return p1; + + const res = new Array(3); + + const Z1Z1 = F.square( p1[2] ); + const Z2Z2 = F.square( p2[2] ); + + const U1 = F.mul( p1[0] , Z2Z2 ); // U1 = X1 * Z2Z2 + const U2 = F.mul( p2[0] , Z1Z1 ); // U2 = X2 * Z1Z1 + + const Z1_cubed = F.mul( p1[2] , Z1Z1); + const Z2_cubed = F.mul( p2[2] , Z2Z2); + + const S1 = F.mul( p1[1] , Z2_cubed); // S1 = Y1 * Z2 * Z2Z2 + const S2 = F.mul( p2[1] , Z1_cubed); // S2 = Y2 * Z1 * Z1Z1 + + if (F.eq(U1,U2) && F.eq(S1,S2)) { + return this.double(p1); + } + + const H = F.sub( U2 , U1 ); // H = U2-U1 + + const S2_minus_S1 = F.sub( S2 , S1 ); + + const I = F.square( F.add(H,H) ); // I = (2 * H)^2 + const J = F.mul( H , I ); // J = H * I + + const r = F.add( S2_minus_S1 , S2_minus_S1 ); // r = 2 * (S2-S1) + const V = F.mul( U1 , I ); // V = U1 * I + + res[0] = + F.sub( + F.sub( F.square(r) , J ), + F.add( V , V )); // X3 = r^2 - J - 2 * V + + const S1_J = F.mul( S1 , J ); + + res[1] = + F.sub( + F.mul( r , F.sub(V,res[0])), + F.add( S1_J,S1_J )); // Y3 = r * (V-X3)-2 S1 J + + res[2] = + F.mul( + H, + F.sub( + F.square( F.add(p1[2],p2[2]) ), + F.add( Z1Z1 , Z2Z2 ))); // Z3 = ((Z1+Z2)^2-Z1Z1-Z2Z2) * H + + return res; + } + + neg(p) { + return [p[0], this.F.neg(p[1]), p[2]]; + } + + sub(a, b) { + return this.add(a, this.neg(b)); + } + + double(p) { + const F = this.F; + + const res = new Array(3); + + if (this.eq(p, this.zero)) return p; + + const A = F.square( p[0] ); // A = X1^2 + const B = F.square( p[1] ); // B = Y1^2 + const C = F.square( B ); // C = B^2 + + let D = + F.sub( + F.square( F.add(p[0] , B )), + F.add( A , C)); + D = F.add(D,D); // D = 2 * ((X1 + B)^2 - A - C) + + const E = F.add( F.add(A,A), A); // E = 3 * A + const FF =F.square( E ); // F = E^2 + + res[0] = F.sub( FF , F.add(D,D) ); // X3 = F - 2 D + + let eightC = F.add( C , C ); + eightC = F.add( eightC , eightC ); + eightC = F.add( eightC , eightC ); + + res[1] = + F.sub( + F.mul( + E, + F.sub( D, res[0] )), + eightC); // Y3 = E * (D - X3) - 8 * C + + const Y1Z1 = F.mul( p[1] , p[2] ); + res[2] = F.add( Y1Z1 , Y1Z1 ); // Z3 = 2 * Y1 * Z1 + + return res; + } + + timesScalar(base, e) { + return mulScalar(this, base, e); + } + + mulScalar(base, e) { + return mulScalar(this, base, e); + } + + affine(p) { + const F = this.F; + if (this.isZero(p)) { + return this.zero; + } else if (F.eq(p[2], F.one)) { + return p; + } else { + const Z_inv = F.inv(p[2]); + const Z2_inv = F.square(Z_inv); + const Z3_inv = F.mul(Z2_inv, Z_inv); + + const res = new Array(3); + res[0] = F.mul(p[0],Z2_inv); + res[1] = F.mul(p[1],Z3_inv); + res[2] = F.one; + + return res; + } + } + + multiAffine(arr) { + const keys = Object.keys(arr); + const F = this.F; + const accMul = new Array(keys.length+1); + accMul[0] = F.one; + for (let i = 0; i< keys.length; i++) { + if (F.eq(arr[keys[i]][2], F.zero)) { + accMul[i+1] = accMul[i]; + } else { + accMul[i+1] = F.mul(accMul[i], arr[keys[i]][2]); + } + } + + accMul[keys.length] = F.inv(accMul[keys.length]); + + for (let i = keys.length-1; i>=0; i--) { + if (F.eq(arr[keys[i]][2], F.zero)) { + accMul[i] = accMul[i+1]; + arr[keys[i]] = this.zero; + } else { + const Z_inv = F.mul(accMul[i], accMul[i+1]); + accMul[i] = F.mul(arr[keys[i]][2], accMul[i+1]); + + const Z2_inv = F.square(Z_inv); + const Z3_inv = F.mul(Z2_inv, Z_inv); + + arr[keys[i]][0] = F.mul(arr[keys[i]][0],Z2_inv); + arr[keys[i]][1] = F.mul(arr[keys[i]][1],Z3_inv); + arr[keys[i]][2] = F.one; + } + } + + } + + eq(p1, p2) { + const F = this.F; + + if (this.F.eq(p1[2], this.F.zero)) return this.F.eq(p2[2], this.F.zero); + if (this.F.eq(p2[2], this.F.zero)) return false; + + const Z1Z1 = F.square( p1[2] ); + const Z2Z2 = F.square( p2[2] ); + + const U1 = F.mul( p1[0] , Z2Z2 ); + const U2 = F.mul( p2[0] , Z1Z1 ); + + const Z1_cubed = F.mul( p1[2] , Z1Z1); + const Z2_cubed = F.mul( p2[2] , Z2Z2); + + const S1 = F.mul( p1[1] , Z2_cubed); + const S2 = F.mul( p2[1] , Z1_cubed); + + return (F.eq(U1,U2) && F.eq(S1,S2)); + } + + isZero(p) { + return this.F.isZero(p[2]); + } + + toString(p) { + const cp = this.affine(p); + return `[ ${this.F.toString(cp[0])} , ${this.F.toString(cp[1])} ]`; + } + + fromRng(rng) { + const F = this.F; + let P = []; + let greatest; + do { + P[0] = F.fromRng(rng); + greatest = rng.nextBool(); + const x3b = F.add(F.mul(F.square(P[0]), P[0]), this.b); + P[1] = F.sqrt(x3b); + } while ((P[1] == null)||(F.isZero[P])); + + const s = isGreatest(F, P[1]); + if (greatest ^ s) P[1] = F.neg(P[1]); + P[2] = F.one; + + if (this.cofactor) { + P = this.mulScalar(P, this.cofactor); + } + + P = this.affine(P); + + return P; + + } + + toRprLE(buff, o, p) { + p = this.affine(p); + if (this.isZero(p)) { + const BuffV = new Uint8Array(buff, o, this.F.n8*2); + BuffV.fill(0); + return; + } + this.F.toRprLE(buff, o, p[0]); + this.F.toRprLE(buff, o+this.F.n8, p[1]); + } + + toRprBE(buff, o, p) { + p = this.affine(p); + if (this.isZero(p)) { + const BuffV = new Uint8Array(buff, o, this.F.n8*2); + BuffV.fill(0); + return; + } + this.F.toRprBE(buff, o, p[0]); + this.F.toRprBE(buff, o+this.F.n8, p[1]); + } + + toRprLEM(buff, o, p) { + p = this.affine(p); + if (this.isZero(p)) { + const BuffV = new Uint8Array(buff, o, this.F.n8*2); + BuffV.fill(0); + return; + } + this.F.toRprLEM(buff, o, p[0]); + this.F.toRprLEM(buff, o+this.F.n8, p[1]); + } + + toRprLEJM(buff, o, p) { + p = this.affine(p); + if (this.isZero(p)) { + const BuffV = new Uint8Array(buff, o, this.F.n8*2); + BuffV.fill(0); + return; + } + this.F.toRprLEM(buff, o, p[0]); + this.F.toRprLEM(buff, o+this.F.n8, p[1]); + this.F.toRprLEM(buff, o+2*this.F.n8, p[2]); + } + + + toRprBEM(buff, o, p) { + p = this.affine(p); + if (this.isZero(p)) { + const BuffV = new Uint8Array(buff, o, this.F.n8*2); + BuffV.fill(0); + return; + } + this.F.toRprBEM(buff, o, p[0]); + this.F.toRprBEM(buff, o+this.F.n8, p[1]); + } + + fromRprLE(buff, o) { + o = o || 0; + const x = this.F.fromRprLE(buff, o); + const y = this.F.fromRprLE(buff, o+this.F.n8); + if (this.F.isZero(x) && this.F.isZero(y)) { + return this.zero; + } + return [x, y, this.F.one]; + } + + fromRprBE(buff, o) { + o = o || 0; + const x = this.F.fromRprBE(buff, o); + const y = this.F.fromRprBE(buff, o+this.F.n8); + if (this.F.isZero(x) && this.F.isZero(y)) { + return this.zero; + } + return [x, y, this.F.one]; + } + + fromRprLEM(buff, o) { + o = o || 0; + const x = this.F.fromRprLEM(buff, o); + const y = this.F.fromRprLEM(buff, o+this.F.n8); + if (this.F.isZero(x) && this.F.isZero(y)) { + return this.zero; + } + return [x, y, this.F.one]; + } + + fromRprLEJM(buff, o) { + o = o || 0; + const x = this.F.fromRprLEM(buff, o); + const y = this.F.fromRprLEM(buff, o+this.F.n8); + const z = this.F.fromRprLEM(buff, o+this.F.n8*2); + if (this.F.isZero(x) && this.F.isZero(y)) { + return this.zero; + } + return [x, y, z]; + } + + fromRprBEM(buff, o) { + o = o || 0; + const x = this.F.fromRprBEM(buff, o); + const y = this.F.fromRprBEM(buff, o+this.F.n8); + if (this.F.isZero(x) && this.F.isZero(y)) { + return this.zero; + } + return [x, y, this.F.one]; + } + + fromRprCompressed(buff, o) { + const F = this.F; + const v = new Uint8Array(buff.buffer, o, F.n8); + if (v[0] & 0x40) return this.zero; + const P = new Array(3); + + const greatest = ((v[0] & 0x80) != 0); + v[0] = v[0] & 0x7F; + P[0] = F.fromRprBE(buff, o); + if (greatest) v[0] = v[0] | 0x80; // set back again the old value + + const x3b = F.add(F.mul(F.square(P[0]), P[0]), this.b); + P[1] = F.sqrt(x3b); + + if (P[1] === null) { + throw new Error("Invalid Point!"); + } + + const s = isGreatest(F, P[1]); + if (greatest ^ s) P[1] = F.neg(P[1]); + P[2] = F.one; + + return P; + } + + toRprCompressed(buff, o, p) { + p = this.affine(p); + const v = new Uint8Array(buff.buffer, o, this.F.n8); + if (this.isZero(p)) { + v.fill(0); + v[0] = 0x40; + return; + } + this.F.toRprBE(buff, o, p[0]); + + if (isGreatest(this.F, p[1])) { + v[0] = v[0] | 0x80; + } + } + + + fromRprUncompressed(buff, o) { + if (buff[0] & 0x40) return this.zero; + + return this.fromRprBE(buff, o); + } + + toRprUncompressed(buff, o, p) { + this.toRprBE(buff, o, p); + + if (this.isZero(p)) { + buff[o] = buff[o] | 0x40; + } + } + + + } + + /* global BigInt */ + + function stringifyBigInts$4(o) { + if ((typeof(o) == "bigint") || o.eq !== undefined) { + return o.toString(10); + } else if (Array.isArray(o)) { + return o.map(stringifyBigInts$4); + } else if (typeof o == "object") { + const res = {}; + const keys = Object.keys(o); + keys.forEach( (k) => { + res[k] = stringifyBigInts$4(o[k]); + }); + return res; + } else { + return o; + } + } + + function unstringifyBigInts$3(o) { + if ((typeof(o) == "string") && (/^[0-9]+$/.test(o) )) { + return BigInt(o); + } else if (Array.isArray(o)) { + return o.map(unstringifyBigInts$3); + } else if (typeof o == "object") { + if (o===null) return null; + const res = {}; + const keys = Object.keys(o); + keys.forEach( (k) => { + res[k] = unstringifyBigInts$3(o[k]); + }); + return res; + } else { + return o; + } + } + + function beBuff2int$3(buff) { + let res = 0n; + let i = buff.length; + let offset = 0; + const buffV = new DataView(buff.buffer); + while (i>0) { + if (i >= 4) { + i -= 4; + res += BigInt(buffV.getUint32(i)) << BigInt(offset*8); + offset += 4; + } else if (i >= 2) { + i -= 2; + res += BigInt(buffV.getUint16(i)) << BigInt(offset*8); + offset += 2; + } else { + i -= 1; + res += BigInt(buffV.getUint8(i)) << BigInt(offset*8); + offset += 1; + } + } + return res; + } + + function beInt2Buff$3(n, len) { + let r = n; + const buff = new Uint8Array(len); + const buffV = new DataView(buff.buffer); + let o = len; + while (o > 0) { + if (o-4 >= 0) { + o -= 4; + buffV.setUint32(o, Number(r & 0xFFFFFFFFn)); + r = r >> 32n; + } else if (o-2 >= 0) { + o -= 2; + buffV.setUint16(o, Number(r & 0xFFFFn)); + r = r >> 16n; + } else { + o -= 1; + buffV.setUint8(o, Number(r & 0xFFn)); + r = r >> 8n; + } + } + if (r) { + throw new Error("Number does not fit in this length"); + } + return buff; + } + + + function leBuff2int$3(buff) { + let res = 0n; + let i = 0; + const buffV = new DataView(buff.buffer); + while (i> 32n; + } else if (o+2 <= len) { + buff.setUint16(Number(o, r & 0xFFFFn), true ); + o += 2; + r = r >> 16n; + } else { + buff.setUint8(Number(o, r & 0xFFn), true ); + o += 1; + r = r >> 8n; + } + } + if (r) { + throw new Error("Number does not fit in this length"); + } + return buff; + } + + var utils_native$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + stringifyBigInts: stringifyBigInts$4, + unstringifyBigInts: unstringifyBigInts$3, + beBuff2int: beBuff2int$3, + beInt2Buff: beInt2Buff$3, + leBuff2int: leBuff2int$3, + leInt2Buff: leInt2Buff$3 + }); + + function stringifyBigInts$5(o) { + if ((typeof(o) == "bigint") || o.eq !== undefined) { + return o.toString(10); + } else if (Array.isArray(o)) { + return o.map(stringifyBigInts$5); + } else if (typeof o == "object") { + const res = {}; + const keys = Object.keys(o); + keys.forEach( (k) => { + res[k] = stringifyBigInts$5(o[k]); + }); + return res; + } else { + return o; + } + } + + function unstringifyBigInts$4(o) { + if ((typeof(o) == "string") && (/^[0-9]+$/.test(o) )) { + return BigInteger(o); + } else if (Array.isArray(o)) { + return o.map(unstringifyBigInts$4); + } else if (typeof o == "object") { + const res = {}; + const keys = Object.keys(o); + keys.forEach( (k) => { + res[k] = unstringifyBigInts$4(o[k]); + }); + return res; + } else { + return o; + } + } + + function beBuff2int$4(buff) { + let res = BigInteger.zero; + for (let i=0; i=0)) { + let c = Number(r.and(BigInteger("255"))); + buff[o] = c; + o--; + r = r.shiftRight(8); + } + if (!r.eq(BigInteger.zero)) { + throw new Error("Number does not fit in this length"); + } + return buff; + } + + + function leBuff2int$4 (buff) { + let res = BigInteger.zero; + for (let i=0; i>=1; + } + return res; + } + + utils$3.bitReverse = function bitReverse(idx, bits) { + return ( + _revTable$4[idx >>> 24] | + (_revTable$4[(idx >>> 16) & 0xFF] << 8) | + (_revTable$4[(idx >>> 8) & 0xFF] << 16) | + (_revTable$4[idx & 0xFF] << 24) + ) >>> (32-bits); + }; + + + utils$3.log2 = function log2( V ) + { + return( ( ( V & 0xFFFF0000 ) !== 0 ? ( V &= 0xFFFF0000, 16 ) : 0 ) | ( ( V & 0xFF00FF00 ) !== 0 ? ( V &= 0xFF00FF00, 8 ) : 0 ) | ( ( V & 0xF0F0F0F0 ) !== 0 ? ( V &= 0xF0F0F0F0, 4 ) : 0 ) | ( ( V & 0xCCCCCCCC ) !== 0 ? ( V &= 0xCCCCCCCC, 2 ) : 0 ) | ( ( V & 0xAAAAAAAA ) !== 0 ) ); + }; + + utils$3.buffReverseBits = function buffReverseBits(buff, eSize) { + const n = buff.byteLength /eSize; + const bits = utils$3.log2(n); + if (n != (1 << bits)) { + throw new Error("Invalid number of pointers"); + } + for (let i=0; ir) { + const tmp = buff.slice(i*eSize, (i+1)*eSize); + buff.set( buff.slice(r*eSize, (r+1)*eSize), i*eSize); + buff.set(tmp, r*eSize); + } + } + }; + + let { + bitReverse: bitReverse$2, + log2: log2$3, + buffReverseBits: buffReverseBits$1, + stringifyBigInts: stringifyBigInts$6, + unstringifyBigInts: unstringifyBigInts$5, + beBuff2int: beBuff2int$5, + beInt2Buff: beInt2Buff$5, + leBuff2int: leBuff2int$5, + leInt2Buff: leInt2Buff$5, + } = utils$3; + + var _utils$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + bitReverse: bitReverse$2, + log2: log2$3, + buffReverseBits: buffReverseBits$1, + stringifyBigInts: stringifyBigInts$6, + unstringifyBigInts: unstringifyBigInts$5, + beBuff2int: beBuff2int$5, + beInt2Buff: beInt2Buff$5, + leBuff2int: leBuff2int$5, + leInt2Buff: leInt2Buff$5 + }); + + function buildBatchConvert$1(tm, fnName, sIn, sOut) { + return async function batchConvert(buffIn) { + const nPoints = Math.floor(buffIn.byteLength / sIn); + if ( nPoints * sIn !== buffIn.byteLength) { + throw new Error("Invalid buffer size"); + } + const pointsPerChunk = Math.floor(nPoints/tm.concurrency); + const opPromises = []; + for (let i=0; i=0; i--) { + this.w[i] = this.square(this.w[i+1]); + } + + if (!this.eq(this.w[0], this.one)) { + throw new Error("Error calculating roots of unity"); + } + + this.batchToMontgomery = buildBatchConvert$1(tm, prefix + "_batchToMontgomery", this.n8, this.n8); + this.batchFromMontgomery = buildBatchConvert$1(tm, prefix + "_batchFromMontgomery", this.n8, this.n8); + } + + + op2(opName, a, b) { + this.tm.setBuff(this.pOp1, a); + this.tm.setBuff(this.pOp2, b); + this.tm.instance.exports[this.prefix + opName](this.pOp1, this.pOp2, this.pOp3); + return this.tm.getBuff(this.pOp3, this.n8); + } + + op2Bool(opName, a, b) { + this.tm.setBuff(this.pOp1, a); + this.tm.setBuff(this.pOp2, b); + return !!this.tm.instance.exports[this.prefix + opName](this.pOp1, this.pOp2); + } + + op1(opName, a) { + this.tm.setBuff(this.pOp1, a); + this.tm.instance.exports[this.prefix + opName](this.pOp1, this.pOp3); + return this.tm.getBuff(this.pOp3, this.n8); + } + + op1Bool(opName, a) { + this.tm.setBuff(this.pOp1, a); + return !!this.tm.instance.exports[this.prefix + opName](this.pOp1, this.pOp3); + } + + add(a,b) { + return this.op2("_add", a, b); + } + + + eq(a,b) { + return this.op2Bool("_eq", a, b); + } + + isZero(a) { + return this.op1Bool("_isZero", a); + } + + sub(a,b) { + return this.op2("_sub", a, b); + } + + neg(a) { + return this.op1("_neg", a); + } + + inv(a) { + return this.op1("_inverse", a); + } + + toMontgomery(a) { + return this.op1("_toMontgomery", a); + } + + fromMontgomery(a) { + return this.op1("_fromMontgomery", a); + } + + mul(a,b) { + return this.op2("_mul", a, b); + } + + div(a, b) { + this.tm.setBuff(this.pOp1, a); + this.tm.setBuff(this.pOp2, b); + this.tm.instance.exports[this.prefix + "_inverse"](this.pOp2, this.pOp2); + this.tm.instance.exports[this.prefix + "_mul"](this.pOp1, this.pOp2, this.pOp3); + return this.tm.getBuff(this.pOp3, this.n8); + } + + square(a) { + return this.op1("_square", a); + } + + isSquare(a) { + return this.op1Bool("_isSquare", a); + } + + sqrt(a) { + return this.op1("_sqrt", a); + } + + exp(a, b) { + if (!(b instanceof Uint8Array)) { + b = toLEBuff$1(e$5(b)); + } + this.tm.setBuff(this.pOp1, a); + this.tm.setBuff(this.pOp2, b); + this.tm.instance.exports[this.prefix + "_exp"](this.pOp1, this.pOp2, b.byteLength, this.pOp3); + return this.tm.getBuff(this.pOp3, this.n8); + } + + isNegative(a) { + return this.op1Bool("_isNegative", a); + } + + e(a, b) { + if (a instanceof Uint8Array) return a; + let ra = e$5(a, b); + if (isNegative$5(ra)) { + ra = neg$5(ra); + if (gt$5(ra, this.p)) { + ra = mod$5(ra, this.p); + } + ra = sub$5(this.p, ra); + } else { + if (gt$5(ra, this.p)) { + ra = mod$5(ra, this.p); + } + } + const buff = leInt2Buff$5(ra, this.n8); + return this.toMontgomery(buff); + } + + toString(a, radix) { + const an = this.fromMontgomery(a); + const s = fromRprLE$1(an, 0); + return toString$1(s, radix); + } + + fromRng(rng) { + let v; + const buff = new Uint8Array(this.n8); + do { + v = zero$1; + for (let i=0; i memory.buffer.byteLength) { + memory.grow(100); + } + return res; + } + + function allocBuffer(buffer) { + const p = alloc(buffer.byteLength); + setBuffer(p, buffer); + return p; + } + + function getBuffer(pointer, length) { + return new Uint8Array(u8.buffer, u8.byteOffset + pointer, length); + } + + function setBuffer(pointer, buffer) { + u8.set(new Uint8Array(buffer), pointer); + } + + function runTask(task) { + if (task[0].cmd == "INIT") { + return init(task[0]); + } + const ctx = { + vars: [], + out: [] + }; + const oldAlloc = u32[0]; + for (let i=0; i. + */ + + const MEM_SIZE$1 = 4096; // Memory size in 64K Pakes (256Mb) + const inBrowser$1 = (typeof window !== "undefined"); + let NodeWorker$1; + if (!inBrowser$1) { + NodeWorker$1 = crypto.Worker; + } + + class Deferred$1 { + constructor() { + this.promise = new Promise((resolve, reject)=> { + this.reject = reject; + this.resolve = resolve; + }); + } + } + + function sleep$1(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + function base64ToArrayBuffer$1(base64) { + { + var binary_string = window.atob(base64); + var len = binary_string.length; + var bytes = new Uint8Array(len); + for (var i = 0; i < len; i++) { + bytes[i] = binary_string.charCodeAt(i); + } + return bytes; + } + } + + + + + async function buildThreadManager$1(wasm, singleThread) { + const tm = new ThreadManager$1(); + + tm.memory = new WebAssembly.Memory({initial:MEM_SIZE$1}); + tm.u8 = new Uint8Array(tm.memory.buffer); + tm.u32 = new Uint32Array(tm.memory.buffer); + + const wasmModule = await WebAssembly.compile(base64ToArrayBuffer$1(wasm.code)); + + tm.instance = await WebAssembly.instantiate(wasmModule, { + env: { + "memory": tm.memory + } + }); + + tm.singleThread = singleThread; + tm.initalPFree = tm.u32[0]; // Save the Pointer to free space. + tm.pq = wasm.pq; + tm.pr = wasm.pr; + tm.pG1gen = wasm.pG1gen; + tm.pG1zero = wasm.pG1zero; + tm.pG2gen = wasm.pG2gen; + tm.pG2zero = wasm.pG2zero; + tm.pOneT = wasm.pOneT; + + // tm.pTmp0 = tm.alloc(curve.G2.F.n8*3); + // tm.pTmp1 = tm.alloc(curve.G2.F.n8*3); + + + if (singleThread) { + tm.code = base64ToArrayBuffer$1(wasm.code); + tm.taskManager = thread$1(); + await tm.taskManager([{ + cmd: "INIT", + init: MEM_SIZE$1, + code: tm.code.slice() + }]); + tm.concurrency = 1; + } else { + tm.workers = []; + tm.pendingDeferreds = []; + tm.working = []; + + let concurrency; + + if ((typeof(navigator) === "object") && navigator.hardwareConcurrency) { + concurrency = navigator.hardwareConcurrency; + } else { + concurrency = crypto.cpus().length; + } + tm.concurrency = concurrency; + + for (let i = 0; i 0); i++) { + if (this.working[i] == false) { + const work = this.actionQueue.shift(); + this.postAction(i, work.data, work.transfers, work.deferred); + } + } + } + + queueAction(actionData, transfers) { + const d = new Deferred$1(); + + if (this.singleThread) { + const res = this.taskManager(actionData); + d.resolve(res); + } else { + this.actionQueue.push({ + data: actionData, + transfers: transfers, + deferred: d + }); + this.processWorks(); + } + return d.promise; + } + + resetMemory() { + this.u32[0] = this.initalPFree; + } + + allocBuff(buff) { + const pointer = this.alloc(buff.byteLength); + this.setBuff(pointer, buff); + return pointer; + } + + getBuff(pointer, length) { + return this.u8.slice(pointer, pointer+ length); + } + + setBuff(pointer, buffer) { + this.u8.set(new Uint8Array(buffer), pointer); + } + + alloc(length) { + while (this.u32[0] & 3) this.u32[0]++; // Return always aligned pointers + const res = this.u32[0]; + this.u32[0] += length; + return res; + } + + async terminate() { + for (let i=0; i=0; i--) { + if (!G.isZero(res)) { + for (let j=0; j { + if (logger) logger.debug(`fft: ${i}/${nChunks}`); + return r; + })); + } + + chunks = await Promise.all(promises); + for (let i = 0; i< nChunks; i++) chunks[i] = chunks[i][0]; + + for (let i = MAX_BITS_THREAD+1; i<=bits; i++) { + if (logger) logger.debug(`fft join ${i}/${bits}`); + const nGroups = 1 << (bits - i); + const nChunksPerGroup = nChunks / nGroups; + const opPromises = []; + for (let j=0; j0; i--) { + buffOut.set(chunks[i], p); + p += chunkSize; + delete chunks[i]; // Liberate mem + } + buffOut.set(chunks[0].slice(0, (pointsInChunk-1)*sOut), p); + delete chunks[nChunks-1]; + } else { + for (let i=0; i=0; i--) { + fullBuffOut.set(result[i][0], p); + p+=result[i][0].byteLength; + } + + return fullBuffOut; + }; + } + + async function buildEngine$1(params) { + + const tm = await buildThreadManager$1(params.wasm, params.singleThread); + + + const curve = {}; + + curve.q = e$5(params.wasm.q); + curve.r = e$5(params.wasm.r); + curve.name = params.name; + curve.tm = tm; + curve.prePSize = params.wasm.prePSize; + curve.preQSize = params.wasm.preQSize; + curve.Fr = new WasmField1$1(tm, "frm", params.n8r, params.r); + curve.F1 = new WasmField1$1(tm, "f1m", params.n8q, params.q); + curve.F2 = new WasmField2$1(tm, "f2m", curve.F1); + curve.G1 = new WasmCurve$1(tm, "g1m", curve.F1, params.wasm.pG1gen, params.wasm.pG1b, params.cofactorG1); + curve.G2 = new WasmCurve$1(tm, "g2m", curve.F2, params.wasm.pG2gen, params.wasm.pG2b, params.cofactorG2); + curve.F6 = new WasmField3$1(tm, "f6m", curve.F2); + curve.F12 = new WasmField2$1(tm, "ftm", curve.F6); + + curve.Gt = curve.F12; + + buildBatchApplyKey$1(curve, "G1"); + buildBatchApplyKey$1(curve, "G2"); + buildBatchApplyKey$1(curve, "Fr"); + + buildMultiexp$1(curve, "G1"); + buildMultiexp$1(curve, "G2"); + + buildFFT$1(curve, "G1"); + buildFFT$1(curve, "G2"); + buildFFT$1(curve, "Fr"); + + buildPairing$1(curve); + + curve.array2buffer = function(arr, sG) { + const buff = new Uint8Array(sG*arr.length); + + for (let i=0; i> 2) + i]; } - this.prime = Scalar$2.fromArray(arr, 0x100000000); + this.prime = Scalar$4.fromArray(arr, 0x100000000); - this.Fr = new F1Field$1(this.prime); + this.Fr = new F1Field$2(this.prime); - this.mask32 = Scalar$2.fromString("FFFFFFFF", 16); + this.mask32 = Scalar$4.fromString("FFFFFFFF", 16); this.NVars = this.instance.exports.getNVars(); this.n64 = Math.floor((this.Fr.bitLength - 1) / 64)+1; - this.R = this.Fr.e( Scalar$2.shiftLeft(1 , this.n64*64)); + this.R = this.Fr.e( Scalar$4.shiftLeft(1 , this.n64*64)); this.RInv = this.Fr.inv(this.R); this.sanityCheck = sanityCheck; } @@ -11038,7 +15265,7 @@ var snarkjs = (function (exports) { for (let i=0; i> 2)] = 0; self.i32[(p >> 2) + 1] = 0x80000000; - const arr = Scalar$2.toArray(v, 0x100000000); + const arr = Scalar$4.toArray(v, 0x100000000); for (let i=0; i. */ - const {unstringifyBigInts: unstringifyBigInts$3} = utils$1; + const {unstringifyBigInts: unstringifyBigInts$6} = utils$1; async function groth16Verify(vk_verifier, publicSignals, proof, logger) { /* @@ -11159,9 +15386,9 @@ var snarkjs = (function (exports) { } */ - vk_verifier = unstringifyBigInts$3(vk_verifier); - proof = unstringifyBigInts$3(proof); - publicSignals = unstringifyBigInts$3(publicSignals); + vk_verifier = unstringifyBigInts$6(vk_verifier); + proof = unstringifyBigInts$6(proof); + publicSignals = unstringifyBigInts$6(publicSignals); const curve = await getCurveFromName(vk_verifier.curve); @@ -13093,6 +17320,1832 @@ var snarkjs = (function (exports) { } + /* global BigInt */ + const hexLen$2 = [ 0, 1, 2, 2, 3, 3, 3, 3, 4 ,4 ,4 ,4 ,4 ,4 ,4 ,4]; + + function fromString$6(s, radix) { + if ((!radix)||(radix==10)) { + return BigInt(s); + } else if (radix==16) { + if (s.slice(0,2) == "0x") { + return BigInt(s); + } else { + return BigInt("0x"+s); + } + } + } + + const e$6 = fromString$6; + + function fromArray$6(a, radix) { + let acc =0n; + radix = BigInt(radix); + for (let i=0; i> BigInt(n); + } + + const shl$6 = shiftLeft$6; + const shr$6 = shiftRight$6; + + function isOdd$6(a) { + return (BigInt(a) & 1n) == 1n; + } + + + function naf$6(n) { + let E = BigInt(n); + const res = []; + while (E) { + if (E & 1n) { + const z = 2 - Number(E % 4n); + res.push( z ); + E = E - BigInt(z); + } else { + res.push( 0 ); + } + E = E >> 1n; + } + return res; + } + + + function bits$6(n) { + let E = BigInt(n); + const res = []; + while (E) { + if (E & 1n) { + res.push(1); + } else { + res.push( 0 ); + } + E = E >> 1n; + } + return res; + } + + function toNumber$6(s) { + if (s>BigInt(Number.MAX_SAFE_INTEGER )) { + throw new Error("Number too big"); + } + return Number(s); + } + + function toArray$6(s, radix) { + const res = []; + let rem = BigInt(s); + radix = BigInt(radix); + while (rem) { + res.unshift( Number(rem % radix)); + rem = rem / radix; + } + return res; + } + + + function add$6(a, b) { + return BigInt(a) + BigInt(b); + } + + function sub$6(a, b) { + return BigInt(a) - BigInt(b); + } + + function neg$6(a) { + return -BigInt(a); + } + + function mul$6(a, b) { + return BigInt(a) * BigInt(b); + } + + function square$6(a) { + return BigInt(a) * BigInt(a); + } + + function pow$6(a, b) { + return BigInt(a) ** BigInt(b); + } + + function exp$8(a, b) { + return BigInt(a) ** BigInt(b); + } + + function abs$6(a) { + return BigInt(a) >= 0 ? BigInt(a) : -BigInt(a); + } + + function div$6(a, b) { + return BigInt(a) / BigInt(b); + } + + function mod$6(a, b) { + return BigInt(a) % BigInt(b); + } + + function eq$6(a, b) { + return BigInt(a) == BigInt(b); + } + + function neq$6(a, b) { + return BigInt(a) != BigInt(b); + } + + function lt$6(a, b) { + return BigInt(a) < BigInt(b); + } + + function gt$6(a, b) { + return BigInt(a) > BigInt(b); + } + + function leq$6(a, b) { + return BigInt(a) <= BigInt(b); + } + + function geq$6(a, b) { + return BigInt(a) >= BigInt(b); + } + + function band$6(a, b) { + return BigInt(a) & BigInt(b); + } + + function bor$6(a, b) { + return BigInt(a) | BigInt(b); + } + + function bxor$6(a, b) { + return BigInt(a) ^ BigInt(b); + } + + function land$6(a, b) { + return BigInt(a) && BigInt(b); + } + + function lor$6(a, b) { + return BigInt(a) || BigInt(b); + } + + function lnot$6(a) { + return !BigInt(a); + } + + var Scalar_native$2 = /*#__PURE__*/Object.freeze({ + __proto__: null, + fromString: fromString$6, + e: e$6, + fromArray: fromArray$6, + bitLength: bitLength$6, + isNegative: isNegative$6, + isZero: isZero$6, + shiftLeft: shiftLeft$6, + shiftRight: shiftRight$6, + shl: shl$6, + shr: shr$6, + isOdd: isOdd$6, + naf: naf$6, + bits: bits$6, + toNumber: toNumber$6, + toArray: toArray$6, + add: add$6, + sub: sub$6, + neg: neg$6, + mul: mul$6, + square: square$6, + pow: pow$6, + exp: exp$8, + abs: abs$6, + div: div$6, + mod: mod$6, + eq: eq$6, + neq: neq$6, + lt: lt$6, + gt: gt$6, + leq: leq$6, + geq: geq$6, + band: band$6, + bor: bor$6, + bxor: bxor$6, + land: land$6, + lor: lor$6, + lnot: lnot$6 + }); + + function fromString$7(s, radix) { + if (typeof s == "string") { + if (s.slice(0,2) == "0x") { + return BigInteger(s.slice(2), 16); + } else { + return BigInteger(s,radix); + } + } else { + return BigInteger(s, radix); + } + } + + const e$7 = fromString$7; + + function fromArray$7(a, radix) { + return BigInteger.fromArray(a, radix); + } + + function bitLength$7(a) { + return BigInteger(a).bitLength(); + } + + function isNegative$7(a) { + return BigInteger(a).isNegative(); + } + + function isZero$7(a) { + return BigInteger(a).isZero(); + } + + function shiftLeft$7(a, n) { + return BigInteger(a).shiftLeft(n); + } + + function shiftRight$7(a, n) { + return BigInteger(a).shiftRight(n); + } + + const shl$7 = shiftLeft$7; + const shr$7 = shiftRight$7; + + function isOdd$7(a) { + return BigInteger(a).isOdd(); + } + + + function naf$7(n) { + let E = BigInteger(n); + const res = []; + while (E.gt(BigInteger.zero)) { + if (E.isOdd()) { + const z = 2 - E.mod(4).toJSNumber(); + res.push( z ); + E = E.minus(z); + } else { + res.push( 0 ); + } + E = E.shiftRight(1); + } + return res; + } + + function bits$7(n) { + let E = BigInteger(n); + const res = []; + while (E.gt(BigInteger.zero)) { + if (E.isOdd()) { + res.push(1); + } else { + res.push( 0 ); + } + E = E.shiftRight(1); + } + return res; + } + + function toNumber$7(s) { + if (!s.lt(BigInteger("9007199254740992", 10))) { + throw new Error("Number too big"); + } + return s.toJSNumber(); + } + + function toArray$7(s, radix) { + return BigInteger(s).toArray(radix); + } + + function add$7(a, b) { + return BigInteger(a).add(BigInteger(b)); + } + + function sub$7(a, b) { + return BigInteger(a).minus(BigInteger(b)); + } + + function neg$7(a) { + return BigInteger.zero.minus(BigInteger(a)); + } + + function mul$7(a, b) { + return BigInteger(a).times(BigInteger(b)); + } + + function square$7(a) { + return BigInteger(a).square(); + } + + function pow$7(a, b) { + return BigInteger(a).pow(BigInteger(b)); + } + + function exp$9(a, b) { + return BigInteger(a).pow(BigInteger(b)); + } + + function abs$7(a) { + return BigInteger(a).abs(); + } + + function div$7(a, b) { + return BigInteger(a).divide(BigInteger(b)); + } + + function mod$7(a, b) { + return BigInteger(a).mod(BigInteger(b)); + } + + function eq$7(a, b) { + return BigInteger(a).eq(BigInteger(b)); + } + + function neq$7(a, b) { + return BigInteger(a).neq(BigInteger(b)); + } + + function lt$7(a, b) { + return BigInteger(a).lt(BigInteger(b)); + } + + function gt$7(a, b) { + return BigInteger(a).gt(BigInteger(b)); + } + + function leq$7(a, b) { + return BigInteger(a).leq(BigInteger(b)); + } + + function geq$7(a, b) { + return BigInteger(a).geq(BigInteger(b)); + } + + function band$7(a, b) { + return BigInteger(a).and(BigInteger(b)); + } + + function bor$7(a, b) { + return BigInteger(a).or(BigInteger(b)); + } + + function bxor$7(a, b) { + return BigInteger(a).xor(BigInteger(b)); + } + + function land$7(a, b) { + return (!BigInteger(a).isZero()) && (!BigInteger(b).isZero()); + } + + function lor$7(a, b) { + return (!BigInteger(a).isZero()) || (!BigInteger(b).isZero()); + } + + function lnot$7(a) { + return BigInteger(a).isZero(); + } + + var Scalar_bigint$2 = /*#__PURE__*/Object.freeze({ + __proto__: null, + fromString: fromString$7, + e: e$7, + fromArray: fromArray$7, + bitLength: bitLength$7, + isNegative: isNegative$7, + isZero: isZero$7, + shiftLeft: shiftLeft$7, + shiftRight: shiftRight$7, + shl: shl$7, + shr: shr$7, + isOdd: isOdd$7, + naf: naf$7, + bits: bits$7, + toNumber: toNumber$7, + toArray: toArray$7, + add: add$7, + sub: sub$7, + neg: neg$7, + mul: mul$7, + square: square$7, + pow: pow$7, + exp: exp$9, + abs: abs$7, + div: div$7, + mod: mod$7, + eq: eq$7, + neq: neq$7, + lt: lt$7, + gt: gt$7, + leq: leq$7, + geq: geq$7, + band: band$7, + bor: bor$7, + bxor: bxor$7, + land: land$7, + lor: lor$7, + lnot: lnot$7 + }); + + const supportsNativeBigInt$6 = typeof BigInt === "function"; + + let Scalar$5 = {}; + if (supportsNativeBigInt$6) { + Object.assign(Scalar$5, Scalar_native$2); + } else { + Object.assign(Scalar$5, Scalar_bigint$2); + } + + + // Returns a buffer with Little Endian Representation + Scalar$5.toRprLE = function rprBE(buff, o, e, n8) { + const s = "0000000" + e.toString(16); + const v = new Uint32Array(buff.buffer, o, n8/4); + const l = (((s.length-7)*4 - 1) >> 5)+1; // Number of 32bit words; + for (let i=0; i> 5)+1; // Number of 32bit words; + for (let i=0; i a[a.length-i-1] = ch.toString(16).padStart(8,"0") ); + return Scalar$5.fromString(a.join(""), 16); + }; + + // Pases a buffer with Big Endian Representation + Scalar$5.fromRprBE = function rprLEM(buff, o, n8) { + n8 = n8 || buff.byteLength; + const v = new DataView(buff.buffer, o, n8); + const a = new Array(n8/4); + for (let i=0; i. + */ + + const _revTable$5 = []; + for (let i=0; i<256; i++) { + _revTable$5[i] = _revSlow$5(i, 8); + } + + function _revSlow$5(idx, bits) { + let res =0; + let a = idx; + for (let i=0; i>=1; + } + return res; + } + + /* + Copyright 2018 0kims association. + + This file is part of snarkjs. + + snarkjs is a free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your option) + any later version. + + snarkjs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along with + snarkjs. If not, see . + */ + + + /* + exports.mulScalar = (F, base, e) =>{ + let res = F.zero; + let rem = bigInt(e); + let exp = base; + + while (! rem.eq(bigInt.zero)) { + if (rem.and(bigInt.one).eq(bigInt.one)) { + res = F.add(res, exp); + } + exp = F.double(exp); + rem = rem.shiftRight(1); + } + + return res; + }; + */ + + + function exp$b(F, base, e) { + + if (isZero$8(e)) return F.one; + + const n = bits$8(e); + + if (n.legth==0) return F.one; + + let res = base; + + for (let i=n.length-2; i>=0; i--) { + + res = F.square(res); + + if (n[i]) { + res = F.mul(res, base); + } + } + + return res; + } + + // Check here: https://eprint.iacr.org/2012/685.pdf + + function buildSqrt$2 (F) { + if ((F.m % 2) == 1) { + if (eq$8(mod$8(F.p, 4), 1 )) { + if (eq$8(mod$8(F.p, 8), 1 )) { + if (eq$8(mod$8(F.p, 16), 1 )) { + // alg7_muller(F); + alg5_tonelliShanks$2(F); + } else if (eq$8(mod$8(F.p, 16), 9 )) { + alg4_kong$2(F); + } else { + throw new Error("Field withot sqrt"); + } + } else if (eq$8(mod$8(F.p, 8), 5 )) { + alg3_atkin$2(F); + } else { + throw new Error("Field withot sqrt"); + } + } else if (eq$8(mod$8(F.p, 4), 3 )) { + alg2_shanks$2(F); + } + } else { + const pm2mod4 = mod$8(pow$8(F.p, F.m/2), 4); + if (pm2mod4 == 1) { + alg10_adj$2(F); + } else if (pm2mod4 == 3) { + alg9_adj$2(F); + } else { + alg8_complex$2(F); + } + + } + } + + + function alg5_tonelliShanks$2(F) { + F.sqrt_q = pow$8(F.p, F.m); + + F.sqrt_s = 0; + F.sqrt_t = sub$8(F.sqrt_q, 1); + + while (!isOdd$8(F.sqrt_t)) { + F.sqrt_s = F.sqrt_s + 1; + F.sqrt_t = div$8(F.sqrt_t, 2); + } + + let c0 = F.one; + + while (F.eq(c0, F.one)) { + const c = F.random(); + F.sqrt_z = F.pow(c, F.sqrt_t); + c0 = F.pow(F.sqrt_z, 1 << (F.sqrt_s-1) ); + } + + F.sqrt_tm1d2 = div$8(sub$8(F.sqrt_t, 1),2); + + F.sqrt = function(a) { + const F=this; + if (F.isZero(a)) return F.zero; + let w = F.pow(a, F.sqrt_tm1d2); + const a0 = F.pow( F.mul(F.square(w), a), 1 << (F.sqrt_s-1) ); + if (F.eq(a0, F.negone)) return null; + + let v = F.sqrt_s; + let x = F.mul(a, w); + let b = F.mul(x, w); + let z = F.sqrt_z; + while (!F.eq(b, F.one)) { + let b2k = F.square(b); + let k=1; + while (!F.eq(b2k, F.one)) { + b2k = F.square(b2k); + k++; + } + + w = z; + for (let i=0; i>>0; + } + } + } + else { // NodeJS + crypto.randomFillSync(array); + } + return array; + } + + /* global BigInt */ + + class ZqField$4 { + constructor(p) { + this.type="F1"; + this.one = 1n; + this.zero = 0n; + this.p = BigInt(p); + this.m = 1; + this.negone = this.p-1n; + this.two = 2n; + this.half = this.p >> 1n; + this.bitLength = bitLength$8(this.p); + this.mask = (1n << BigInt(this.bitLength)) - 1n; + + this.n64 = Math.floor((this.bitLength - 1) / 64)+1; + this.n32 = this.n64*2; + this.n8 = this.n64*8; + this.R = this.e(1n << BigInt(this.n64*64)); + this.Ri = this.inv(this.R); + + const e = this.negone >> 1n; + this.nqr = this.two; + let r = this.pow(this.nqr, e); + while (!this.eq(r, this.negone)) { + this.nqr = this.nqr + 1n; + r = this.pow(this.nqr, e); + } + + + this.s = 0; + this.t = this.negone; + + while ((this.t & 1n) == 0n) { + this.s = this.s + 1; + this.t = this.t >> 1n; + } + + this.nqr_to_t = this.pow(this.nqr, this.t); + + buildSqrt$2(this); + } + + e(a,b) { + let res; + if (!b) { + res = BigInt(a); + } else if (b==16) { + res = BigInt("0x"+a); + } + if (res < 0) { + let nres = -res; + if (nres >= this.p) nres = nres % this.p; + return this.p - nres; + } else { + return (res>= this.p) ? res%this.p : res; + } + + } + + add(a, b) { + const res = a + b; + return res >= this.p ? res-this.p : res; + } + + sub(a, b) { + return (a >= b) ? a-b : this.p-b+a; + } + + neg(a) { + return a ? this.p-a : a; + } + + mul(a, b) { + return (a*b)%this.p; + } + + mulScalar(base, s) { + return (base * this.e(s)) % this.p; + } + + square(a) { + return (a*a) % this.p; + } + + eq(a, b) { + return a==b; + } + + neq(a, b) { + return a!=b; + } + + lt(a, b) { + const aa = (a > this.half) ? a - this.p : a; + const bb = (b > this.half) ? b - this.p : b; + return aa < bb; + } + + gt(a, b) { + const aa = (a > this.half) ? a - this.p : a; + const bb = (b > this.half) ? b - this.p : b; + return aa > bb; + } + + leq(a, b) { + const aa = (a > this.half) ? a - this.p : a; + const bb = (b > this.half) ? b - this.p : b; + return aa <= bb; + } + + geq(a, b) { + const aa = (a > this.half) ? a - this.p : a; + const bb = (b > this.half) ? b - this.p : b; + return aa >= bb; + } + + div(a, b) { + return this.mul(a, this.inv(b)); + } + + idiv(a, b) { + if (!b) throw new Error("Division by zero"); + return a / b; + } + + inv(a) { + if (!a) throw new Error("Division by zero"); + + let t = 0n; + let r = this.p; + let newt = 1n; + let newr = a % this.p; + while (newr) { + let q = r/newr; + [t, newt] = [newt, t-q*newt]; + [r, newr] = [newr, r-q*newr]; + } + if (t<0n) t += this.p; + return t; + } + + mod(a, b) { + return a % b; + } + + pow(b, e) { + return exp$b(this, b, e); + } + + exp(b, e) { + return exp$b(this, b, e); + } + + band(a, b) { + const res = ((a & b) & this.mask); + return res >= this.p ? res-this.p : res; + } + + bor(a, b) { + const res = ((a | b) & this.mask); + return res >= this.p ? res-this.p : res; + } + + bxor(a, b) { + const res = ((a ^ b) & this.mask); + return res >= this.p ? res-this.p : res; + } + + bnot(a) { + const res = a ^ this.mask; + return res >= this.p ? res-this.p : res; + } + + shl(a, b) { + if (Number(b) < this.bitLength) { + const res = (a << b) & this.mask; + return res >= this.p ? res-this.p : res; + } else { + const nb = this.p - b; + if (Number(nb) < this.bitLength) { + return a >> nb; + } else { + return 0n; + } + } + } + + shr(a, b) { + if (Number(b) < this.bitLength) { + return a >> b; + } else { + const nb = this.p - b; + if (Number(nb) < this.bitLength) { + const res = (a << nb) & this.mask; + return res >= this.p ? res-this.p : res; + } else { + return 0; + } + } + } + + land(a, b) { + return (a && b) ? 1n : 0n; + } + + lor(a, b) { + return (a || b) ? 1n : 0n; + } + + lnot(a) { + return (a) ? 0n : 1n; + } + + sqrt_old(n) { + + if (n == 0n) return this.zero; + + // Test that have solution + const res = this.pow(n, this.negone >> this.one); + if ( res != 1n ) return null; + + let m = this.s; + let c = this.nqr_to_t; + let t = this.pow(n, this.t); + let r = this.pow(n, this.add(this.t, this.one) >> 1n ); + + while ( t != 1n ) { + let sq = this.square(t); + let i = 1; + while (sq != 1n ) { + i++; + sq = this.square(sq); + } + + // b = c ^ m-i-1 + let b = c; + for (let j=0; j< m-i-1; j ++) b = this.square(b); + + m = i; + c = this.square(b); + t = this.mul(t, c); + r = this.mul(r, b); + } + + if (r > (this.p >> 1n)) { + r = this.neg(r); + } + + return r; + } + + normalize(a, b) { + a = BigInt(a,b); + if (a < 0) { + let na = -a; + if (na >= this.p) na = na % this.p; + return this.p - na; + } else { + return (a>= this.p) ? a%this.p : a; + } + } + + random() { + const nBytes = (this.bitLength*2 / 8); + let res =0n; + for (let i=0; i this.half) { + const v = this.p-a; + vs = "-"+v.toString(base); + } else { + vs = a.toString(base); + } + return vs; + } + + isZero(a) { + return a == 0n; + } + + fromRng(rng) { + let v; + do { + v=0n; + for (let i=0; i= this.p); + v = (v * this.Ri) % this.p; // Convert from montgomery + return v; + } + + } + + class ZqField$5 { + constructor(p) { + this.type="F1"; + this.one = BigInteger.one; + this.zero = BigInteger.zero; + this.p = BigInteger(p); + this.m = 1; + this.negone = this.p.minus(BigInteger.one); + this.two = BigInteger(2); + this.half = this.p.shiftRight(1); + this.bitLength = this.p.bitLength(); + this.mask = BigInteger.one.shiftLeft(this.bitLength).minus(BigInteger.one); + + this.n64 = Math.floor((this.bitLength - 1) / 64)+1; + this.n32 = this.n64*2; + this.n8 = this.n64*8; + this.R = BigInteger.one.shiftLeft(this.n64*64); + this.Ri = this.inv(this.R); + + const e = this.negone.shiftRight(this.one); + this.nqr = this.two; + let r = this.pow(this.nqr, e); + while (!r.equals(this.negone)) { + this.nqr = this.nqr.add(this.one); + r = this.pow(this.nqr, e); + } + + this.s = this.zero; + this.t = this.negone; + + while (!this.t.isOdd()) { + this.s = this.s.add(this.one); + this.t = this.t.shiftRight(this.one); + } + + this.nqr_to_t = this.pow(this.nqr, this.t); + + buildSqrt$2(this); + } + + e(a,b) { + + const res = BigInteger(a,b); + + return this.normalize(res); + + } + + add(a, b) { + let res = a.add(b); + if (res.geq(this.p)) { + res = res.minus(this.p); + } + return res; + } + + sub(a, b) { + if (a.geq(b)) { + return a.minus(b); + } else { + return this.p.minus(b.minus(a)); + } + } + + neg(a) { + if (a.isZero()) return a; + return this.p.minus(a); + } + + mul(a, b) { + return a.times(b).mod(this.p); + } + + mulScalar(base, s) { + return base.times(BigInteger(s)).mod(this.p); + } + + square(a) { + return a.square().mod(this.p); + } + + eq(a, b) { + return a.eq(b); + } + + neq(a, b) { + return a.neq(b); + } + + lt(a, b) { + const aa = a.gt(this.half) ? a.minus(this.p) : a; + const bb = b.gt(this.half) ? b.minus(this.p) : b; + return aa.lt(bb); + } + + gt(a, b) { + const aa = a.gt(this.half) ? a.minus(this.p) : a; + const bb = b.gt(this.half) ? b.minus(this.p) : b; + return aa.gt(bb); + } + + leq(a, b) { + const aa = a.gt(this.half) ? a.minus(this.p) : a; + const bb = b.gt(this.half) ? b.minus(this.p) : b; + return aa.leq(bb); + } + + geq(a, b) { + const aa = a.gt(this.half) ? a.minus(this.p) : a; + const bb = b.gt(this.half) ? b.minus(this.p) : b; + return aa.geq(bb); + } + + div(a, b) { + if (b.isZero()) throw new Error("Division by zero"); + return a.times(b.modInv(this.p)).mod(this.p); + } + + idiv(a, b) { + if (b.isZero()) throw new Error("Division by zero"); + return a.divide(b); + } + + inv(a) { + if (a.isZero()) throw new Error("Division by zero"); + return a.modInv(this.p); + } + + mod(a, b) { + return a.mod(b); + } + + pow(a, b) { + return a.modPow(b, this.p); + } + + exp(a, b) { + return a.modPow(b, this.p); + } + + band(a, b) { + return a.and(b).and(this.mask).mod(this.p); + } + + bor(a, b) { + return a.or(b).and(this.mask).mod(this.p); + } + + bxor(a, b) { + return a.xor(b).and(this.mask).mod(this.p); + } + + bnot(a) { + return a.xor(this.mask).mod(this.p); + } + + shl(a, b) { + if (b.lt(this.bitLength)) { + return a.shiftLeft(b).and(this.mask).mod(this.p); + } else { + const nb = this.p.minus(b); + if (nb.lt(this.bitLength)) { + return this.shr(a, nb); + } else { + return BigInteger.zero; + } + } + } + + shr(a, b) { + if (b.lt(this.bitLength)) { + return a.shiftRight(b); + } else { + const nb = this.p.minus(b); + if (nb.lt(this.bitLength)) { + return this.shl(a, nb); + } else { + return BigInteger.zero; + } + } + } + + land(a, b) { + return (a.isZero() || b.isZero()) ? BigInteger.zero : BigInteger.one; + } + + lor(a, b) { + return (a.isZero() && b.isZero()) ? BigInteger.zero : BigInteger.one; + } + + lnot(a) { + return a.isZero() ? BigInteger.one : BigInteger.zero; + } + + sqrt_old(n) { + + if (n.equals(this.zero)) return this.zero; + + // Test that have solution + const res = this.pow(n, this.negone.shiftRight(this.one)); + if (!res.equals(this.one)) return null; + + let m = parseInt(this.s); + let c = this.nqr_to_t; + let t = this.pow(n, this.t); + let r = this.pow(n, this.add(this.t, this.one).shiftRight(this.one) ); + + while (!t.equals(this.one)) { + let sq = this.square(t); + let i = 1; + while (!sq.equals(this.one)) { + i++; + sq = this.square(sq); + } + + // b = c ^ m-i-1 + let b = c; + for (let j=0; j< m-i-1; j ++) b = this.square(b); + + m = i; + c = this.square(b); + t = this.mul(t, c); + r = this.mul(r, b); + } + + if (r.greater(this.p.shiftRight(this.one))) { + r = this.neg(r); + } + + return r; + } + + normalize(a) { + a = BigInteger(a); + if (a.isNegative()) { + return this.p.minus(a.abs().mod(this.p)); + } else { + return a.mod(this.p); + } + } + + random() { + let res = BigInteger(0); + let n = BigInteger(this.p.square()); + while (!n.isZero()) { + res = res.shiftLeft(8).add(BigInteger(getRandomBytes$2(1)[0])); + n = n.shiftRight(8); + } + return res.mod(this.p); + } + + toString(a, base) { + let vs; + if (!a.lesserOrEquals(this.p.shiftRight(BigInteger(1)))) { + const v = this.p.minus(a); + vs = "-"+v.toString(base); + } else { + vs = a.toString(base); + } + + return vs; + } + + isZero(a) { + return a.isZero(); + } + + fromRng(rng) { + let v; + do { + v = BigInteger(0); + for (let i=0; i { + res[k] = stringifyBigInts$7(o[k]); + }); + return res; + } else { + return o; + } + } + + function unstringifyBigInts$7(o) { + if ((typeof(o) == "string") && (/^[0-9]+$/.test(o) )) { + return BigInt(o); + } else if (Array.isArray(o)) { + return o.map(unstringifyBigInts$7); + } else if (typeof o == "object") { + if (o===null) return null; + const res = {}; + const keys = Object.keys(o); + keys.forEach( (k) => { + res[k] = unstringifyBigInts$7(o[k]); + }); + return res; + } else { + return o; + } + } + + function beBuff2int$6(buff) { + let res = 0n; + let i = buff.length; + let offset = 0; + const buffV = new DataView(buff.buffer); + while (i>0) { + if (i >= 4) { + i -= 4; + res += BigInt(buffV.getUint32(i)) << BigInt(offset*8); + offset += 4; + } else if (i >= 2) { + i -= 2; + res += BigInt(buffV.getUint16(i)) << BigInt(offset*8); + offset += 2; + } else { + i -= 1; + res += BigInt(buffV.getUint8(i)) << BigInt(offset*8); + offset += 1; + } + } + return res; + } + + function beInt2Buff$6(n, len) { + let r = n; + const buff = new Uint8Array(len); + const buffV = new DataView(buff.buffer); + let o = len; + while (o > 0) { + if (o-4 >= 0) { + o -= 4; + buffV.setUint32(o, Number(r & 0xFFFFFFFFn)); + r = r >> 32n; + } else if (o-2 >= 0) { + o -= 2; + buffV.setUint16(o, Number(r & 0xFFFFn)); + r = r >> 16n; + } else { + o -= 1; + buffV.setUint8(o, Number(r & 0xFFn)); + r = r >> 8n; + } + } + if (r) { + throw new Error("Number does not fit in this length"); + } + return buff; + } + + + function leBuff2int$6(buff) { + let res = 0n; + let i = 0; + const buffV = new DataView(buff.buffer); + while (i> 32n; + } else if (o+2 <= len) { + buff.setUint16(Number(o, r & 0xFFFFn), true ); + o += 2; + r = r >> 16n; + } else { + buff.setUint8(Number(o, r & 0xFFn), true ); + o += 1; + r = r >> 8n; + } + } + if (r) { + throw new Error("Number does not fit in this length"); + } + return buff; + } + + var utils_native$2 = /*#__PURE__*/Object.freeze({ + __proto__: null, + stringifyBigInts: stringifyBigInts$7, + unstringifyBigInts: unstringifyBigInts$7, + beBuff2int: beBuff2int$6, + beInt2Buff: beInt2Buff$6, + leBuff2int: leBuff2int$6, + leInt2Buff: leInt2Buff$6 + }); + + function stringifyBigInts$8(o) { + if ((typeof(o) == "bigint") || o.eq !== undefined) { + return o.toString(10); + } else if (Array.isArray(o)) { + return o.map(stringifyBigInts$8); + } else if (typeof o == "object") { + const res = {}; + const keys = Object.keys(o); + keys.forEach( (k) => { + res[k] = stringifyBigInts$8(o[k]); + }); + return res; + } else { + return o; + } + } + + function unstringifyBigInts$8(o) { + if ((typeof(o) == "string") && (/^[0-9]+$/.test(o) )) { + return BigInteger(o); + } else if (Array.isArray(o)) { + return o.map(unstringifyBigInts$8); + } else if (typeof o == "object") { + const res = {}; + const keys = Object.keys(o); + keys.forEach( (k) => { + res[k] = unstringifyBigInts$8(o[k]); + }); + return res; + } else { + return o; + } + } + + function beBuff2int$7(buff) { + let res = BigInteger.zero; + for (let i=0; i=0)) { + let c = Number(r.and(BigInteger("255"))); + buff[o] = c; + o--; + r = r.shiftRight(8); + } + if (!r.eq(BigInteger.zero)) { + throw new Error("Number does not fit in this length"); + } + return buff; + } + + + function leBuff2int$7 (buff) { + let res = BigInteger.zero; + for (let i=0; i>=1; + } + return res; + } + + utils$5.bitReverse = function bitReverse(idx, bits) { + return ( + _revTable$6[idx >>> 24] | + (_revTable$6[(idx >>> 16) & 0xFF] << 8) | + (_revTable$6[(idx >>> 8) & 0xFF] << 16) | + (_revTable$6[idx & 0xFF] << 24) + ) >>> (32-bits); + }; + + + utils$5.log2 = function log2( V ) + { + return( ( ( V & 0xFFFF0000 ) !== 0 ? ( V &= 0xFFFF0000, 16 ) : 0 ) | ( ( V & 0xFF00FF00 ) !== 0 ? ( V &= 0xFF00FF00, 8 ) : 0 ) | ( ( V & 0xF0F0F0F0 ) !== 0 ? ( V &= 0xF0F0F0F0, 4 ) : 0 ) | ( ( V & 0xCCCCCCCC ) !== 0 ? ( V &= 0xCCCCCCCC, 2 ) : 0 ) | ( ( V & 0xAAAAAAAA ) !== 0 ) ); + }; + + utils$5.buffReverseBits = function buffReverseBits(buff, eSize) { + const n = buff.byteLength /eSize; + const bits = utils$5.log2(n); + if (n != (1 << bits)) { + throw new Error("Invalid number of pointers"); + } + for (let i=0; ir) { + const tmp = buff.slice(i*eSize, (i+1)*eSize); + buff.set( buff.slice(r*eSize, (r+1)*eSize), i*eSize); + buff.set(tmp, r*eSize); + } + } + }; + + const Scalar$6=_Scalar$2; + async function open$1(fileName, openFlags, cacheSize) { cacheSize = cacheSize || 4096*64; if (["w+", "wx+", "r", "ax+", "a+"].indexOf(openFlags) <0) @@ -13610,7 +19663,7 @@ var snarkjs = (function (exports) { async function readBigInt$1(fd, n8, pos) { const buff = await fd.read(n8, pos); - return Scalar$1.fromRprLE(buff, 0, n8); + return Scalar$6.fromRprLE(buff, 0, n8); } async function loadHeader(fd,sections) { @@ -13621,7 +19674,7 @@ var snarkjs = (function (exports) { // Read Header res.n8 = await fd.readULE32(); res.prime = await readBigInt$1(fd, res.n8); - res.Fr = new F1Field(res.prime); + res.Fr = new F1Field$3(res.prime); res.nVars = await fd.readULE32(); res.nOutputs = await fd.readULE32(); @@ -13839,10 +19892,10 @@ var snarkjs = (function (exports) { return -1; } - const cirPower = log2$2(r1cs.nConstraints + r1cs.nPubInputs + r1cs.nOutputs +1 -1) +1; + const cirPower = log2$1(r1cs.nConstraints + r1cs.nPubInputs + r1cs.nOutputs +1 -1) +1; - if (cirPower > power) { - if (logger) logger.error(`circuit too big for this power of tau ceremony. ${r1cs.nConstraints} > 2**${power}`); + if (cirPower > power+1) { + if (logger) logger.error(`circuit too big for this power of tau ceremony. ${r1cs.nConstraints}*2 > 2**${power}`); return -1; } @@ -14525,6 +20578,7 @@ var snarkjs = (function (exports) { const buffTauLEM = await curve.G1.batchUtoLEM(buffTauU); buffH = new Uint8Array(zkeyHeader.domainSize*sG1); buffH.set(buffTauLEM); // Let the last one to zero. + curve.G1.toRprLEM(buffH, sG1*(zkeyHeader.domainSize-1), curve.G1.zeroAffine); const n2Inv = curve.Fr.neg(curve.Fr.inv(curve.Fr.e(2))); const wInv = curve.Fr.inv(curve.Fr.w[zkeyHeader.power+1]); buffH = await curve.G1.batchApplyKey(buffH, n2Inv, wInv, "affine", "jacobian", logger); @@ -14870,6 +20924,7 @@ var snarkjs = (function (exports) { const e = curve.Fr.fromRng(rng); curve.Fr.toRprLE(buff_r, i*zkey.n8r, e); } + curve.Fr.toRprLE(buff_r, (zkey.domainSize-1)*zkey.n8r, curve.Fr.zero); let R1 = G.zero; for (let i=0; i>BigInt(I)}const i=Q,B=t;var E=Object.freeze({__proto__:null,fromString:g,e:C,fromArray:function(A,I){let g=0n;I=BigInt(I);for(let C=0;C>=1n}return g},bits:function(A){let I=BigInt(A);const g=[];for(;I;)1n&I?g.push(1):g.push(0),I>>=1n;return g},toNumber:function(A){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("Number too big");return Number(A)},toArray:function(A,I){const g=[];let C=BigInt(A);for(I=BigInt(I);C;)g.unshift(Number(C%I)),C/=I;return g},add:function(A,I){return BigInt(A)+BigInt(I)},sub:function(A,I){return BigInt(A)-BigInt(I)},neg:function(A){return-BigInt(A)},mul:function(A,I){return BigInt(A)*BigInt(I)},square:function(A){return BigInt(A)*BigInt(A)},pow:function(A,I){return BigInt(A)**BigInt(I)},exp:function(A,I){return BigInt(A)**BigInt(I)},abs:function(A){return BigInt(A)>=0?BigInt(A):-BigInt(A)},div:function(A,I){return BigInt(A)/BigInt(I)},mod:function(A,I){return BigInt(A)%BigInt(I)},eq:function(A,I){return BigInt(A)==BigInt(I)},neq:function(A,I){return BigInt(A)!=BigInt(I)},lt:function(A,I){return BigInt(A)BigInt(I)},leq:function(A,I){return BigInt(A)<=BigInt(I)},geq:function(A,I){return BigInt(A)>=BigInt(I)},band:function(A,I){return BigInt(A)&BigInt(I)},bor:function(A,I){return BigInt(A)|BigInt(I)},bxor:function(A,I){return BigInt(A)^BigInt(I)},land:function(A,I){return BigInt(A)&&BigInt(I)},lor:function(A,I){return BigInt(A)||BigInt(I)},lnot:function(A){return!BigInt(A)}});function e(A,I){return A(I={exports:{}},I.exports),I.exports}var n=e((function(A){var I=function(A){var g=1e7,C=9007199254740992,Q=h(C),t="function"==typeof BigInt;function i(A,I,g,C){return void 0===A?i[0]:void 0!==I&&(10!=+I||g)?P(A,I,g,C):K(A)}function B(A,I){this.value=A,this.sign=I,this.isSmall=!1}function E(A){this.value=A,this.sign=A<0,this.isSmall=!0}function e(A){this.value=A}function n(A){return-C0?Math.floor(A):Math.ceil(A)}function w(A,I){var C,Q,t=A.length,i=I.length,B=new Array(t),E=0,e=g;for(Q=0;Q=e?1:0,B[Q]=C-E*e;for(;Q0&&B.push(E),B}function f(A,I){return A.length>=I.length?w(A,I):w(I,A)}function D(A,I){var C,Q,t=A.length,i=new Array(t),B=g;for(Q=0;Q0;)i[Q++]=I%B,I=Math.floor(I/B);return i}function c(A,I){var g,C,Q=A.length,t=I.length,i=new Array(Q),B=0;for(g=0;g0;)i[Q++]=E%B,E=Math.floor(E/B);return i}function u(A,I){for(var g=[];I-- >0;)g.push(0);return g.concat(A)}function l(A,I,C){return new B(A=0;--g)Q=(t=1e7*Q+A[g])-(C=s(t/I))*I,B[g]=0|C;return[B,0|Q]}function G(A,I){var C,Q=K(I);if(t)return[new e(A.value/Q.value),new e(A.value%Q.value)];var n,w=A.value,f=Q.value;if(0===f)throw new Error("Cannot divide by zero");if(A.isSmall)return Q.isSmall?[new E(s(w/f)),new E(w%f)]:[i[0],A];if(Q.isSmall){if(1===f)return[A,i[0]];if(-1==f)return[A.negate(),i[0]];var D=Math.abs(f);if(D=0;Q--){for(C=a-1,D[Q+h]!==w&&(C=Math.floor((D[Q+h]*a+D[Q+h-1])/w)),t=0,i=0,E=c.length,B=0;BE&&(Q=1e7*(Q+1)),g=Math.ceil(Q/t);do{if(U(i=M(I,g),n)<=0)break;g--}while(g);e.push(g),n=c(n,i)}return e.reverse(),[o(e),o(n)]}(w,f))[0];var u=A.sign!==Q.sign,l=C[1],p=A.sign;return"number"==typeof n?(u&&(n=-n),n=new E(n)):n=new B(n,u),"number"==typeof l?(p&&(l=-l),l=new E(l)):l=new B(l,p),[n,l]}function U(A,I){if(A.length!==I.length)return A.length>I.length?1:-1;for(var g=A.length-1;g>=0;g--)if(A[g]!==I[g])return A[g]>I[g]?1:-1;return 0}function d(A){var I=A.abs();return!I.isUnit()&&(!!(I.equals(2)||I.equals(3)||I.equals(5))||!(I.isEven()||I.isDivisibleBy(3)||I.isDivisibleBy(5))&&(!!I.lesser(49)||void 0))}function L(A,g){for(var C,Q,t,i=A.prev(),B=i,E=0;B.isEven();)B=B.divide(2),E++;A:for(Q=0;Q=0?C=c(A,I):(C=c(I,A),g=!g),"number"==typeof(C=o(C))?(g&&(C=-C),new E(C)):new B(C,g)}(g,C,this.sign)},B.prototype.minus=B.prototype.subtract,E.prototype.subtract=function(A){var I=K(A),g=this.value;if(g<0!==I.sign)return this.add(I.negate());var C=I.value;return I.isSmall?new E(g-C):y(C,Math.abs(g),g>=0)},E.prototype.minus=E.prototype.subtract,e.prototype.subtract=function(A){return new e(this.value-K(A).value)},e.prototype.minus=e.prototype.subtract,B.prototype.negate=function(){return new B(this.value,!this.sign)},E.prototype.negate=function(){var A=this.sign,I=new E(-this.value);return I.sign=!A,I},e.prototype.negate=function(){return new e(-this.value)},B.prototype.abs=function(){return new B(this.value,!1)},E.prototype.abs=function(){return new E(Math.abs(this.value))},e.prototype.abs=function(){return new e(this.value>=0?this.value:-this.value)},B.prototype.multiply=function(A){var I,C,Q,t=K(A),E=this.value,e=t.value,n=this.sign!==t.sign;if(t.isSmall){if(0===e)return i[0];if(1===e)return this;if(-1===e)return this.negate();if((I=Math.abs(e))0?function A(I,g){var C=Math.max(I.length,g.length);if(C<=30)return F(I,g);C=Math.ceil(C/2);var Q=I.slice(C),t=I.slice(0,C),i=g.slice(C),B=g.slice(0,C),E=A(t,B),e=A(Q,i),n=A(f(t,Q),f(B,i)),h=f(f(E,u(c(c(n,E),e),C)),u(e,2*C));return a(h),h}(E,e):F(E,e),n)},B.prototype.times=B.prototype.multiply,E.prototype._multiplyBySmall=function(A){return n(A.value*this.value)?new E(A.value*this.value):l(Math.abs(A.value),h(Math.abs(this.value)),this.sign!==A.sign)},B.prototype._multiplyBySmall=function(A){return 0===A.value?i[0]:1===A.value?this:-1===A.value?this.negate():l(Math.abs(A.value),this.value,this.sign!==A.sign)},E.prototype.multiply=function(A){return K(A)._multiplyBySmall(this)},E.prototype.times=E.prototype.multiply,e.prototype.multiply=function(A){return new e(this.value*K(A).value)},e.prototype.times=e.prototype.multiply,B.prototype.square=function(){return new B(p(this.value),!1)},E.prototype.square=function(){var A=this.value*this.value;return n(A)?new E(A):new B(p(h(Math.abs(this.value))),!1)},e.prototype.square=function(A){return new e(this.value*this.value)},B.prototype.divmod=function(A){var I=G(this,A);return{quotient:I[0],remainder:I[1]}},e.prototype.divmod=E.prototype.divmod=B.prototype.divmod,B.prototype.divide=function(A){return G(this,A)[0]},e.prototype.over=e.prototype.divide=function(A){return new e(this.value/K(A).value)},E.prototype.over=E.prototype.divide=B.prototype.over=B.prototype.divide,B.prototype.mod=function(A){return G(this,A)[1]},e.prototype.mod=e.prototype.remainder=function(A){return new e(this.value%K(A).value)},E.prototype.remainder=E.prototype.mod=B.prototype.remainder=B.prototype.mod,B.prototype.pow=function(A){var I,g,C,Q=K(A),t=this.value,B=Q.value;if(0===B)return i[1];if(0===t)return i[0];if(1===t)return i[1];if(-1===t)return Q.isEven()?i[1]:i[-1];if(Q.sign)return i[0];if(!Q.isSmall)throw new Error("The exponent "+Q.toString()+" is too large.");if(this.isSmall&&n(I=Math.pow(t,B)))return new E(s(I));for(g=this,C=i[1];!0&B&&(C=C.times(g),--B),0!==B;)B/=2,g=g.square();return C},E.prototype.pow=B.prototype.pow,e.prototype.pow=function(A){var I=K(A),g=this.value,C=I.value,Q=BigInt(0),t=BigInt(1),B=BigInt(2);if(C===Q)return i[1];if(g===Q)return i[0];if(g===t)return i[1];if(g===BigInt(-1))return I.isEven()?i[1]:i[-1];if(I.isNegative())return new e(Q);for(var E=this,n=i[1];(C&t)===t&&(n=n.times(E),--C),C!==Q;)C/=B,E=E.square();return n},B.prototype.modPow=function(A,I){if(A=K(A),(I=K(I)).isZero())throw new Error("Cannot take modPow with modulus 0");var g=i[1],C=this.mod(I);for(A.isNegative()&&(A=A.multiply(i[-1]),C=C.modInv(I));A.isPositive();){if(C.isZero())return i[0];A.isOdd()&&(g=g.multiply(C).mod(I)),A=A.divide(2),C=C.square().mod(I)}return g},e.prototype.modPow=E.prototype.modPow=B.prototype.modPow,B.prototype.compareAbs=function(A){var I=K(A),g=this.value,C=I.value;return I.isSmall?1:U(g,C)},E.prototype.compareAbs=function(A){var I=K(A),g=Math.abs(this.value),C=I.value;return I.isSmall?g===(C=Math.abs(C))?0:g>C?1:-1:-1},e.prototype.compareAbs=function(A){var I=this.value,g=K(A).value;return(I=I>=0?I:-I)===(g=g>=0?g:-g)?0:I>g?1:-1},B.prototype.compare=function(A){if(A===1/0)return-1;if(A===-1/0)return 1;var I=K(A),g=this.value,C=I.value;return this.sign!==I.sign?I.sign?1:-1:I.isSmall?this.sign?-1:1:U(g,C)*(this.sign?-1:1)},B.prototype.compareTo=B.prototype.compare,E.prototype.compare=function(A){if(A===1/0)return-1;if(A===-1/0)return 1;var I=K(A),g=this.value,C=I.value;return I.isSmall?g==C?0:g>C?1:-1:g<0!==I.sign?g<0?-1:1:g<0?1:-1},E.prototype.compareTo=E.prototype.compare,e.prototype.compare=function(A){if(A===1/0)return-1;if(A===-1/0)return 1;var I=this.value,g=K(A).value;return I===g?0:I>g?1:-1},e.prototype.compareTo=e.prototype.compare,B.prototype.equals=function(A){return 0===this.compare(A)},e.prototype.eq=e.prototype.equals=E.prototype.eq=E.prototype.equals=B.prototype.eq=B.prototype.equals,B.prototype.notEquals=function(A){return 0!==this.compare(A)},e.prototype.neq=e.prototype.notEquals=E.prototype.neq=E.prototype.notEquals=B.prototype.neq=B.prototype.notEquals,B.prototype.greater=function(A){return this.compare(A)>0},e.prototype.gt=e.prototype.greater=E.prototype.gt=E.prototype.greater=B.prototype.gt=B.prototype.greater,B.prototype.lesser=function(A){return this.compare(A)<0},e.prototype.lt=e.prototype.lesser=E.prototype.lt=E.prototype.lesser=B.prototype.lt=B.prototype.lesser,B.prototype.greaterOrEquals=function(A){return this.compare(A)>=0},e.prototype.geq=e.prototype.greaterOrEquals=E.prototype.geq=E.prototype.greaterOrEquals=B.prototype.geq=B.prototype.greaterOrEquals,B.prototype.lesserOrEquals=function(A){return this.compare(A)<=0},e.prototype.leq=e.prototype.lesserOrEquals=E.prototype.leq=E.prototype.lesserOrEquals=B.prototype.leq=B.prototype.lesserOrEquals,B.prototype.isEven=function(){return 0==(1&this.value[0])},E.prototype.isEven=function(){return 0==(1&this.value)},e.prototype.isEven=function(){return(this.value&BigInt(1))===BigInt(0)},B.prototype.isOdd=function(){return 1==(1&this.value[0])},E.prototype.isOdd=function(){return 1==(1&this.value)},e.prototype.isOdd=function(){return(this.value&BigInt(1))===BigInt(1)},B.prototype.isPositive=function(){return!this.sign},E.prototype.isPositive=function(){return this.value>0},e.prototype.isPositive=E.prototype.isPositive,B.prototype.isNegative=function(){return this.sign},E.prototype.isNegative=function(){return this.value<0},e.prototype.isNegative=E.prototype.isNegative,B.prototype.isUnit=function(){return!1},E.prototype.isUnit=function(){return 1===Math.abs(this.value)},e.prototype.isUnit=function(){return this.abs().value===BigInt(1)},B.prototype.isZero=function(){return!1},E.prototype.isZero=function(){return 0===this.value},e.prototype.isZero=function(){return this.value===BigInt(0)},B.prototype.isDivisibleBy=function(A){var I=K(A);return!I.isZero()&&(!!I.isUnit()||(0===I.compareAbs(2)?this.isEven():this.mod(I).isZero()))},e.prototype.isDivisibleBy=E.prototype.isDivisibleBy=B.prototype.isDivisibleBy,B.prototype.isPrime=function(A){var g=d(this);if(void 0!==g)return g;var C=this.abs(),Q=C.bitLength();if(Q<=64)return L(C,[2,3,5,7,11,13,17,19,23,29,31,37]);for(var t=Math.log(2)*Q.toJSNumber(),i=Math.ceil(!0===A?2*Math.pow(t,2):t),B=[],E=0;E-C?new E(A-1):new B(Q,!0)},e.prototype.prev=function(){return new e(this.value-BigInt(1))};for(var m=[1];2*m[m.length-1]<=g;)m.push(2*m[m.length-1]);var k=m.length,N=m[k-1];function J(A){return Math.abs(A)<=g}function S(A,g,C){g=K(g);for(var Q=A.isNegative(),t=g.isNegative(),i=Q?A.not():A,B=t?g.not():g,E=0,e=0,n=null,h=null,o=[];!i.isZero()||!B.isZero();)E=(n=G(i,N))[1].toJSNumber(),Q&&(E=N-1-E),e=(h=G(B,N))[1].toJSNumber(),t&&(e=N-1-e),i=n[0],B=h[0],o.push(C(E,e));for(var a=0!==C(Q?1:0,t?1:0)?I(-1):I(0),r=o.length-1;r>=0;r-=1)a=a.multiply(N).add(I(o[r]));return a}B.prototype.shiftLeft=function(A){var I=K(A).toJSNumber();if(!J(I))throw new Error(String(I)+" is too large for shifting.");if(I<0)return this.shiftRight(-I);var g=this;if(g.isZero())return g;for(;I>=k;)g=g.multiply(N),I-=k-1;return g.multiply(m[I])},e.prototype.shiftLeft=E.prototype.shiftLeft=B.prototype.shiftLeft,B.prototype.shiftRight=function(A){var I,g=K(A).toJSNumber();if(!J(g))throw new Error(String(g)+" is too large for shifting.");if(g<0)return this.shiftLeft(-g);for(var C=this;g>=k;){if(C.isZero()||C.isNegative()&&C.isUnit())return C;C=(I=G(C,N))[1].isNegative()?I[0].prev():I[0],g-=k-1}return(I=G(C,m[g]))[1].isNegative()?I[0].prev():I[0]},e.prototype.shiftRight=E.prototype.shiftRight=B.prototype.shiftRight,B.prototype.not=function(){return this.negate().prev()},e.prototype.not=E.prototype.not=B.prototype.not,B.prototype.and=function(A){return S(this,A,(function(A,I){return A&I}))},e.prototype.and=E.prototype.and=B.prototype.and,B.prototype.or=function(A){return S(this,A,(function(A,I){return A|I}))},e.prototype.or=E.prototype.or=B.prototype.or,B.prototype.xor=function(A){return S(this,A,(function(A,I){return A^I}))},e.prototype.xor=E.prototype.xor=B.prototype.xor;function R(A){var I=A.value,C="number"==typeof I?I|1<<30:"bigint"==typeof I?I|BigInt(1<<30):I[0]+I[1]*g|1073758208;return C&-C}function b(A,I){return A=K(A),I=K(I),A.greater(I)?A:I}function v(A,I){return A=K(A),I=K(I),A.lesser(I)?A:I}function Y(A,I){if(A=K(A).abs(),I=K(I).abs(),A.equals(I))return A;if(A.isZero())return I;if(I.isZero())return A;for(var g,C,Q=i[1];A.isEven()&&I.isEven();)g=v(R(A),R(I)),A=A.divide(g),I=I.divide(g),Q=Q.multiply(g);for(;A.isEven();)A=A.divide(R(A));do{for(;I.isEven();)I=I.divide(R(I));A.greater(I)&&(C=I,I=A,A=C),I=I.subtract(A)}while(!I.isZero());return Q.isUnit()?A:A.multiply(Q)}B.prototype.bitLength=function(){var A=this;return A.compareTo(I(0))<0&&(A=A.negate().subtract(I(1))),0===A.compareTo(I(0))?I(0):I(function A(g,C){if(C.compareTo(g)<=0){var Q=A(g,C.square(C)),t=Q.p,i=Q.e,B=t.multiply(C);return B.compareTo(g)<=0?{p:B,e:2*i+1}:{p:t,e:2*i}}return{p:I(1),e:0}}(A,I(2)).e).add(I(1))},e.prototype.bitLength=E.prototype.bitLength=B.prototype.bitLength;var P=function(A,I,g,C){g=g||"0123456789abcdefghijklmnopqrstuvwxyz",A=String(A),C||(A=A.toLowerCase(),g=g.toLowerCase());var Q,t=A.length,i=Math.abs(I),B={};for(Q=0;Q=i)){if("1"===n&&1===i)continue;throw new Error(n+" is not a valid digit in base "+I+".")}}I=K(I);var E=[],e="-"===A[0];for(Q=e?1:0;Q"!==A[Q]&&Q=0;C--)Q=Q.add(A[C].times(t)),t=t.times(I);return g?Q.negate():Q}function x(A,g){if((g=I(g)).isZero()){if(A.isZero())return{value:[0],isNegative:!1};throw new Error("Cannot convert nonzero numbers to base 0.")}if(g.equals(-1)){if(A.isZero())return{value:[0],isNegative:!1};if(A.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-A.toJSNumber())).map(Array.prototype.valueOf,[1,0])),isNegative:!1};var C=Array.apply(null,Array(A.toJSNumber()-1)).map(Array.prototype.valueOf,[0,1]);return C.unshift([1]),{value:[].concat.apply([],C),isNegative:!1}}var Q=!1;if(A.isNegative()&&g.isPositive()&&(Q=!0,A=A.abs()),g.isUnit())return A.isZero()?{value:[0],isNegative:!1}:{value:Array.apply(null,Array(A.toJSNumber())).map(Number.prototype.valueOf,1),isNegative:Q};for(var t,i=[],B=A;B.isNegative()||B.compareAbs(g)>=0;){t=B.divmod(g),B=t.quotient;var E=t.remainder;E.isNegative()&&(E=g.minus(E).abs(),B=B.next()),i.push(E.toJSNumber())}return i.push(B.toJSNumber()),{value:i.reverse(),isNegative:Q}}function X(A,I,g){var C=x(A,I);return(C.isNegative?"-":"")+C.value.map((function(A){return function(A,I){return A<(I=I||"0123456789abcdefghijklmnopqrstuvwxyz").length?I[A]:"<"+A+">"}(A,g)})).join("")}function Z(A){if(n(+A)){var I=+A;if(I===s(I))return t?new e(BigInt(I)):new E(I);throw new Error("Invalid integer: "+A)}var g="-"===A[0];g&&(A=A.slice(1));var C=A.split(/e/i);if(C.length>2)throw new Error("Invalid integer: "+C.join("e"));if(2===C.length){var Q=C[1];if("+"===Q[0]&&(Q=Q.slice(1)),(Q=+Q)!==s(Q)||!n(Q))throw new Error("Invalid integer: "+Q+" is not a valid exponent.");var i=C[0],h=i.indexOf(".");if(h>=0&&(Q-=i.length-h-1,i=i.slice(0,h)+i.slice(h+1)),Q<0)throw new Error("Cannot include negative exponent part for integers");A=i+=new Array(Q+1).join("0")}if(!/^([0-9][0-9]*)$/.test(A))throw new Error("Invalid integer: "+A);if(t)return new e(BigInt(g?"-"+A:A));for(var o=[],r=A.length,w=r-7;r>0;)o.push(+A.slice(w,r)),(w-=7)<0&&(w=0),r-=7;return a(o),new B(o,g)}function K(A){return"number"==typeof A?function(A){if(t)return new e(BigInt(A));if(n(A)){if(A!==s(A))throw new Error(A+" is not an integer.");return new E(A)}return Z(A.toString())}(A):"string"==typeof A?Z(A):"bigint"==typeof A?new e(A):A}B.prototype.toArray=function(A){return x(this,A)},E.prototype.toArray=function(A){return x(this,A)},e.prototype.toArray=function(A){return x(this,A)},B.prototype.toString=function(A,I){if(void 0===A&&(A=10),10!==A)return X(this,A,I);for(var g,C=this.value,Q=C.length,t=String(C[--Q]);--Q>=0;)g=String(C[Q]),t+="0000000".slice(g.length)+g;return(this.sign?"-":"")+t},E.prototype.toString=function(A,I){return void 0===A&&(A=10),10!=A?X(this,A,I):String(this.value)},e.prototype.toString=E.prototype.toString,e.prototype.toJSON=B.prototype.toJSON=E.prototype.toJSON=function(){return this.toString()},B.prototype.valueOf=function(){return parseInt(this.toString(),10)},B.prototype.toJSNumber=B.prototype.valueOf,E.prototype.valueOf=function(){return this.value},E.prototype.toJSNumber=E.prototype.valueOf,e.prototype.valueOf=e.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};for(var V=0;V<1e3;V++)i[V]=K(V),V>0&&(i[-V]=K(-V));return i.one=i[1],i.zero=i[0],i.minusOne=i[-1],i.max=b,i.min=v,i.gcd=Y,i.lcm=function(A,I){return A=K(A).abs(),I=K(I).abs(),A.divide(Y(A,I)).multiply(I)},i.isInstance=function(A){return A instanceof B||A instanceof E||A instanceof e},i.randBetween=function(A,I,C){A=K(A),I=K(I);var Q=C||Math.random,t=v(A,I),B=b(A,I).subtract(t).add(1);if(B.isSmall)return t.add(Math.floor(Q()*B));for(var E=x(B,g).value,e=[],n=!0,h=0;h>5);for(let A=0;A>5);for(let A=0;AQ[Q.length-I-1]=A.toString(16).padStart(8,"0")),c.fromString(Q.join(""),16)},c.fromRprBE=function(A,I,g){g=g||A.byteLength;const C=new DataView(A.buffer,I,g),Q=new Array(g/4);for(let A=0;A>1,B=aA(A,I,g-1,C,2*Q),E=aA(A,I,g-1,C+Q,2*Q),e=new Array(t);for(let I=0;I>1,t=rA(A,I.slice(0,Q),g-1),i=rA(A,I.slice(Q),g-1),B=new Array(C);for(let I=0;I>=1;return g}function fA(A,I){return(sA[A>>>24]|sA[A>>>16&255]<<8|sA[A>>>8&255]<<16|sA[255&A]<<24)>>>32-I}function DA(A,I){for(let g=0;gg){const I=A[g];A[g]=A[C],A[C]=I}}}function cA(A,I,g){let C;if(N(g))return A.zero;const Q=Y(g);if(1==Q[Q.length-1])C=I;else{if(-1!=Q[Q.length-1])throw new Error("invlaud NAF");C=A.neg(I)}for(let g=Q.length-2;g>=0;g--)C=A.double(C),1==Q[g]?C=A.add(C,I):-1==Q[g]&&(C=A.sub(C,I));return C}function yA(A,I,g){if(N(g))return A.one;const C=P(g);if(0==C.legth)return A.one;let Q=I;for(let g=C.length-2;g>=0;g--)Q=A.square(Q),C[g]&&(Q=A.mul(Q,I));return Q}function FA(A){if(A.m%2==1)if($(_(A.p,4),1))if($(_(A.p,8),1))if($(_(A.p,16),1))!function(A){A.sqrt_q=j(A.p,A.m),A.sqrt_s=0,A.sqrt_t=Z(A.sqrt_q,1);for(;!v(A.sqrt_t);)A.sqrt_s=A.sqrt_s+1,A.sqrt_t=T(A.sqrt_t,2);let I=A.one;for(;A.eq(I,A.one);){const g=A.random();A.sqrt_z=A.pow(g,A.sqrt_t),I=A.pow(A.sqrt_z,1<>>0,A[Q]=(A[Q]^A[I])>>>0,A[Q]=(A[Q]<<16|A[Q]>>>16&65535)>>>0,A[C]=A[C]+A[Q]>>>0,A[g]=(A[g]^A[C])>>>0,A[g]=(A[g]<<12|A[g]>>>20&4095)>>>0,A[I]=A[I]+A[g]>>>0,A[Q]=(A[Q]^A[I])>>>0,A[Q]=(A[Q]<<8|A[Q]>>>24&255)>>>0,A[C]=A[C]+A[Q]>>>0,A[g]=(A[g]^A[C])>>>0,A[g]=(A[g]<<7|A[g]>>>25&127)>>>0}class uA{constructor(A){A=A||[0,0,0,0,0,0,0,0],this.state=[1634760805,857760878,2036477234,1797285236,A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],0,0,0,0],this.idx=16,this.buff=new Array(16)}nextU32(){return 16==this.idx&&this.update(),this.buff[this.idx++]}nextU64(){return X(V(this.nextU32(),4294967296),this.nextU32())}nextBool(){return 1==(1&this.nextU32())}update(){for(let A=0;A<16;A++)this.buff[A]=this.state[A];for(let I=0;I<10;I++)MA(A=this.buff,0,4,8,12),MA(A,1,5,9,13),MA(A,2,6,10,14),MA(A,3,7,11,15),MA(A,0,5,10,15),MA(A,1,6,11,12),MA(A,2,7,8,13),MA(A,3,4,9,14);var A;for(let A=0;A<16;A++)this.buff[A]=this.buff[A]+this.state[A]>>>0;this.idx=0,this.state[12]=this.state[12]+1>>>0,0==this.state[12]&&(this.state[13]=this.state[13]+1>>>0,0==this.state[13]&&(this.state[14]=this.state[14]+1>>>0,0==this.state[14]&&(this.state[15]=this.state[15]+1>>>0)))}}var lA={};function pA(A){let I=new Uint8Array(A);if("undefined"!=typeof window)if(void 0!==window.crypto)window.crypto.getRandomValues(I);else for(let g=0;g>>0;else lA.randomFillSync(I);return I}let HA=null;function GA(){return HA||(HA=new uA(function(){const A=pA(32),I=new Uint32Array(A.buffer),g=[];for(let A=0;A<8;A++)g.push(I[A]);return g}()),HA)}class UA{constructor(A){this.type="F1",this.one=1n,this.zero=0n,this.p=BigInt(A),this.m=1,this.negone=this.p-1n,this.two=2n,this.half=this.p>>1n,this.bitLength=m(this.p),this.mask=(1n<>1n;this.nqr=this.two;let g=this.pow(this.nqr,I);for(;!this.eq(g,this.negone);)this.nqr=this.nqr+1n,g=this.pow(this.nqr,I);for(this.s=0,this.t=this.negone;0n==(1n&this.t);)this.s=this.s+1,this.t=this.t>>1n;this.nqr_to_t=this.pow(this.nqr,this.t),FA(this)}e(A,I){let g;if(I?16==I&&(g=BigInt("0x"+A)):g=BigInt(A),g<0){let A=-g;return A>=this.p&&(A%=this.p),this.p-A}return g>=this.p?g%this.p:g}add(A,I){const g=A+I;return g>=this.p?g-this.p:g}sub(A,I){return A>=I?A-I:this.p-I+A}neg(A){return A?this.p-A:A}mul(A,I){return A*I%this.p}mulScalar(A,I){return A*this.e(I)%this.p}square(A){return A*A%this.p}eq(A,I){return A==I}neq(A,I){return A!=I}lt(A,I){return(A>this.half?A-this.p:A)<(I>this.half?I-this.p:I)}gt(A,I){return(A>this.half?A-this.p:A)>(I>this.half?I-this.p:I)}leq(A,I){return(A>this.half?A-this.p:A)<=(I>this.half?I-this.p:I)}geq(A,I){return(A>this.half?A-this.p:A)>=(I>this.half?I-this.p:I)}div(A,I){return this.mul(A,this.inv(I))}idiv(A,I){if(!I)throw new Error("Division by zero");return A/I}inv(A){if(!A)throw new Error("Division by zero");let I=0n,g=this.p,C=1n,Q=A%this.p;for(;Q;){let A=g/Q;[I,C]=[C,I-A*C],[g,Q]=[Q,g-A*Q]}return I<0n&&(I+=this.p),I}mod(A,I){return A%I}pow(A,I){return yA(this,A,I)}exp(A,I){return yA(this,A,I)}band(A,I){const g=A&I&this.mask;return g>=this.p?g-this.p:g}bor(A,I){const g=(A|I)&this.mask;return g>=this.p?g-this.p:g}bxor(A,I){const g=(A^I)&this.mask;return g>=this.p?g-this.p:g}bnot(A){const I=A^this.mask;return I>=this.p?I-this.p:I}shl(A,I){if(Number(I)=this.p?g-this.p:g}{const g=this.p-I;return Number(g)>g:0n}}shr(A,I){if(Number(I)>I;{const g=this.p-I;if(Number(g)=this.p?I-this.p:I}return 0}}land(A,I){return A&&I?1n:0n}lor(A,I){return A||I?1n:0n}lnot(A){return A?0n:1n}sqrt_old(A){if(0n==A)return this.zero;if(1n!=this.pow(A,this.negone>>this.one))return null;let I=this.s,g=this.nqr_to_t,C=this.pow(A,this.t),Q=this.pow(A,this.add(this.t,this.one)>>1n);for(;1n!=C;){let A=this.square(C),t=1;for(;1n!=A;)t++,A=this.square(A);let i=g;for(let A=0;Athis.p>>1n&&(Q=this.neg(Q)),Q}normalize(A,I){if((A=BigInt(A,I))<0){let I=-A;return I>=this.p&&(I%=this.p),this.p-I}return A>=this.p?A%this.p:A}random(){const A=2*this.bitLength/8;let I=0n;for(let g=0;gthis.half){g="-"+(this.p-A).toString(I)}else g=A.toString(I);return g}isZero(A){return 0n==A}fromRng(A){let I;do{I=0n;for(let g=0;g=this.p);return I=I*this.Ri%this.p,I}}class dA{constructor(A){this.type="F1",this.one=n.one,this.zero=n.zero,this.p=n(A),this.m=1,this.negone=this.p.minus(n.one),this.two=n(2),this.half=this.p.shiftRight(1),this.bitLength=this.p.bitLength(),this.mask=n.one.shiftLeft(this.bitLength).minus(n.one),this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=2*this.n64,this.n8=8*this.n64,this.R=n.one.shiftLeft(64*this.n64),this.Ri=this.inv(this.R);const I=this.negone.shiftRight(this.one);this.nqr=this.two;let g=this.pow(this.nqr,I);for(;!g.equals(this.negone);)this.nqr=this.nqr.add(this.one),g=this.pow(this.nqr,I);for(this.s=this.zero,this.t=this.negone;!this.t.isOdd();)this.s=this.s.add(this.one),this.t=this.t.shiftRight(this.one);this.nqr_to_t=this.pow(this.nqr,this.t),FA(this)}e(A,I){const g=n(A,I);return this.normalize(g)}add(A,I){let g=A.add(I);return g.geq(this.p)&&(g=g.minus(this.p)),g}sub(A,I){return A.geq(I)?A.minus(I):this.p.minus(I.minus(A))}neg(A){return A.isZero()?A:this.p.minus(A)}mul(A,I){return A.times(I).mod(this.p)}mulScalar(A,I){return A.times(n(I)).mod(this.p)}square(A){return A.square().mod(this.p)}eq(A,I){return A.eq(I)}neq(A,I){return A.neq(I)}lt(A,I){const g=A.gt(this.half)?A.minus(this.p):A,C=I.gt(this.half)?I.minus(this.p):I;return g.lt(C)}gt(A,I){const g=A.gt(this.half)?A.minus(this.p):A,C=I.gt(this.half)?I.minus(this.p):I;return g.gt(C)}leq(A,I){const g=A.gt(this.half)?A.minus(this.p):A,C=I.gt(this.half)?I.minus(this.p):I;return g.leq(C)}geq(A,I){const g=A.gt(this.half)?A.minus(this.p):A,C=I.gt(this.half)?I.minus(this.p):I;return g.geq(C)}div(A,I){if(I.isZero())throw new Error("Division by zero");return A.times(I.modInv(this.p)).mod(this.p)}idiv(A,I){if(I.isZero())throw new Error("Division by zero");return A.divide(I)}inv(A){if(A.isZero())throw new Error("Division by zero");return A.modInv(this.p)}mod(A,I){return A.mod(I)}pow(A,I){return A.modPow(I,this.p)}exp(A,I){return A.modPow(I,this.p)}band(A,I){return A.and(I).and(this.mask).mod(this.p)}bor(A,I){return A.or(I).and(this.mask).mod(this.p)}bxor(A,I){return A.xor(I).and(this.mask).mod(this.p)}bnot(A){return A.xor(this.mask).mod(this.p)}shl(A,I){if(I.lt(this.bitLength))return A.shiftLeft(I).and(this.mask).mod(this.p);{const g=this.p.minus(I);return g.lt(this.bitLength)?this.shr(A,g):n.zero}}shr(A,I){if(I.lt(this.bitLength))return A.shiftRight(I);{const g=this.p.minus(I);return g.lt(this.bitLength)?this.shl(A,g):n.zero}}land(A,I){return A.isZero()||I.isZero()?n.zero:n.one}lor(A,I){return A.isZero()&&I.isZero()?n.zero:n.one}lnot(A){return A.isZero()?n.one:n.zero}sqrt_old(A){if(A.equals(this.zero))return this.zero;if(!this.pow(A,this.negone.shiftRight(this.one)).equals(this.one))return null;let I=parseInt(this.s),g=this.nqr_to_t,C=this.pow(A,this.t),Q=this.pow(A,this.add(this.t,this.one).shiftRight(this.one));for(;!C.equals(this.one);){let A=this.square(C),t=1;for(;!A.equals(this.one);)t++,A=this.square(A);let i=g;for(let A=0;A=0;g--)if(!A.F.isZero(I[g]))return NA(A.F,I[g]);return 0}{const g=A.neg(I);return gA(I,g)}}var JA={bn128_wasm:{code:"AGFzbQEAAAABiQERYAJ/fwBgAX8AYAF/AX9gAn9/AX9gA39/fwF/YAN/f38AYAN/fn8AYAJ/fgBgBH9/f38AYAV/f39/fwBgBH9/f38Bf2AHf39/f39/fwBgCH9/f39/f39/AGAFf39/f38Bf2AHf39/f39/fwF/YAl/f39/f39/f38Bf2ALf39/f39/f39/f38BfwIQAQNlbnYGbWVtb3J5AgDoBwOrAqkCAAECAQMDBAQFAAAGBwgFAgUFAAAFAAAAAAICAAEFCAkFBQgAAgIFBQAABQAAAAACAgABBQgJBQUIAAIFAAACAgIBAQAAAAMDAwAABQUFAAAFBQUAAAAAAAUABQAAAAAFBQUFBQoACwkKAAsJCAgDAAgIAgAACQUFAAgMCQICAQEABQUABQUAAAAAAwAIAgIJCAACAgIBAQAAAAMDAwAABQUFAAAFBQUAAAAAAAUABQAAAAAFBQUFBQoACwkKAAsJCAgFAwAICAIAAAkFBQUDAAgIAgAACQUFBQUJCQkJCQACAgEBAAUABQUAAgAAAwAIAgkIAAICAQEABQUABQUAAAAAAwAIAgIJCAACBQAAAAAICAUAAAAAAAAAAAAAAAAAAAAABA0ODxAFB70imgIIaW50X2NvcHkAAAhpbnRfemVybwABB2ludF9vbmUAAwppbnRfaXNaZXJvAAIGaW50X2VxAAQHaW50X2d0ZQAFB2ludF9hZGQABgdpbnRfc3ViAAcHaW50X211bAAICmludF9zcXVhcmUACQ1pbnRfc3F1YXJlT2xkAAoHaW50X2RpdgANDmludF9pbnZlcnNlTW9kAA4IZjFtX2NvcHkAAAhmMW1femVybwABCmYxbV9pc1plcm8AAgZmMW1fZXEABAdmMW1fYWRkABAHZjFtX3N1YgARB2YxbV9uZWcAEg5mMW1faXNOZWdhdGl2ZQAZCWYxbV9pc09uZQAPCGYxbV9zaWduABoLZjFtX21SZWR1Y3QAEwdmMW1fbXVsABQKZjFtX3NxdWFyZQAVDWYxbV9zcXVhcmVPbGQAFhJmMW1fZnJvbU1vbnRnb21lcnkAGBBmMW1fdG9Nb250Z29tZXJ5ABcLZjFtX2ludmVyc2UAGwdmMW1fb25lABwIZjFtX2xvYWQAHQ9mMW1fdGltZXNTY2FsYXIAHgdmMW1fZXhwACIQZjFtX2JhdGNoSW52ZXJzZQAfCGYxbV9zcXJ0ACMMZjFtX2lzU3F1YXJlACQVZjFtX2JhdGNoVG9Nb250Z29tZXJ5ACAXZjFtX2JhdGNoRnJvbU1vbnRnb21lcnkAIQhmcm1fY29weQAACGZybV96ZXJvAAEKZnJtX2lzWmVybwACBmZybV9lcQAEB2ZybV9hZGQAJgdmcm1fc3ViACcHZnJtX25lZwAoDmZybV9pc05lZ2F0aXZlAC8JZnJtX2lzT25lACUIZnJtX3NpZ24AMAtmcm1fbVJlZHVjdAApB2ZybV9tdWwAKgpmcm1fc3F1YXJlACsNZnJtX3NxdWFyZU9sZAAsEmZybV9mcm9tTW9udGdvbWVyeQAuEGZybV90b01vbnRnb21lcnkALQtmcm1faW52ZXJzZQAxB2ZybV9vbmUAMghmcm1fbG9hZAAzD2ZybV90aW1lc1NjYWxhcgA0B2ZybV9leHAAOBBmcm1fYmF0Y2hJbnZlcnNlADUIZnJtX3NxcnQAOQxmcm1faXNTcXVhcmUAOhVmcm1fYmF0Y2hUb01vbnRnb21lcnkANhdmcm1fYmF0Y2hGcm9tTW9udGdvbWVyeQA3BmZyX2FkZAAmBmZyX3N1YgAnBmZyX25lZwAoBmZyX211bAA7CWZyX3NxdWFyZQA8CmZyX2ludmVyc2UAPQ1mcl9pc05lZ2F0aXZlAD4HZnJfY29weQAAB2ZyX3plcm8AAQZmcl9vbmUAMglmcl9pc1plcm8AAgVmcl9lcQAEDGcxbV9tdWx0aWV4cABnEmcxbV9tdWx0aWV4cF9jaHVuawBmEmcxbV9tdWx0aWV4cEFmZmluZQBrGGcxbV9tdWx0aWV4cEFmZmluZV9jaHVuawBqCmcxbV9pc1plcm8AQBBnMW1faXNaZXJvQWZmaW5lAD8GZzFtX2VxAEgLZzFtX2VxTWl4ZWQARwxnMW1fZXFBZmZpbmUARghnMW1fY29weQBEDmcxbV9jb3B5QWZmaW5lAEMIZzFtX3plcm8AQg5nMW1femVyb0FmZmluZQBBCmcxbV9kb3VibGUAShBnMW1fZG91YmxlQWZmaW5lAEkHZzFtX2FkZABNDGcxbV9hZGRNaXhlZABMDWcxbV9hZGRBZmZpbmUASwdnMW1fbmVnAE8NZzFtX25lZ0FmZmluZQBOB2cxbV9zdWIAUgxnMW1fc3ViTWl4ZWQAUQ1nMW1fc3ViQWZmaW5lAFASZzFtX2Zyb21Nb250Z29tZXJ5AFQYZzFtX2Zyb21Nb250Z29tZXJ5QWZmaW5lAFMQZzFtX3RvTW9udGdvbWVyeQBWFmcxbV90b01vbnRnb21lcnlBZmZpbmUAVQ9nMW1fdGltZXNTY2FsYXIAbBVnMW1fdGltZXNTY2FsYXJBZmZpbmUAbQ1nMW1fbm9ybWFsaXplAFkKZzFtX0xFTXRvVQBbCmcxbV9MRU10b0MAXApnMW1fVXRvTEVNAF0KZzFtX0N0b0xFTQBeD2cxbV9iYXRjaExFTXRvVQBfD2cxbV9iYXRjaExFTXRvQwBgD2cxbV9iYXRjaFV0b0xFTQBhD2cxbV9iYXRjaEN0b0xFTQBiDGcxbV90b0FmZmluZQBXDmcxbV90b0phY29iaWFuAEURZzFtX2JhdGNoVG9BZmZpbmUAWBNnMW1fYmF0Y2hUb0phY29iaWFuAGMHZnJtX2ZmdABzCGZybV9pZmZ0AHQKZnJtX3Jhd2ZmdABxC2ZybV9mZnRKb2luAHUKZnJtX2ZmdE1peAB2DGZybV9mZnRGaW5hbAB3CHBvbF96ZXJvAHgPcG9sX2NvbnN0cnVjdExDAHkMcWFwX2J1aWxkQUJDAHoLcWFwX2pvaW5BQkMAewpmMm1faXNaZXJvAHwJZjJtX2lzT25lAH0IZjJtX3plcm8AfgdmMm1fb25lAH8IZjJtX2NvcHkAgAEHZjJtX211bACBAQhmMm1fbXVsMQCCAQpmMm1fc3F1YXJlAIMBB2YybV9hZGQAhAEHZjJtX3N1YgCFAQdmMm1fbmVnAIYBCGYybV9zaWduAI0BDWYybV9jb25qdWdhdGUAhwESZjJtX2Zyb21Nb250Z29tZXJ5AIkBEGYybV90b01vbnRnb21lcnkAiAEGZjJtX2VxAIoBC2YybV9pbnZlcnNlAIsBB2YybV9leHAAkAEPZjJtX3RpbWVzU2NhbGFyAIwBEGYybV9iYXRjaEludmVyc2UAjwEIZjJtX3NxcnQAkQEMZjJtX2lzU3F1YXJlAJIBDmYybV9pc05lZ2F0aXZlAI4BDGcybV9tdWx0aWV4cAC7ARJnMm1fbXVsdGlleHBfY2h1bmsAugESZzJtX211bHRpZXhwQWZmaW5lAL8BGGcybV9tdWx0aWV4cEFmZmluZV9jaHVuawC+AQpnMm1faXNaZXJvAJQBEGcybV9pc1plcm9BZmZpbmUAkwEGZzJtX2VxAJwBC2cybV9lcU1peGVkAJsBDGcybV9lcUFmZmluZQCaAQhnMm1fY29weQCYAQ5nMm1fY29weUFmZmluZQCXAQhnMm1femVybwCWAQ5nMm1femVyb0FmZmluZQCVAQpnMm1fZG91YmxlAJ4BEGcybV9kb3VibGVBZmZpbmUAnQEHZzJtX2FkZAChAQxnMm1fYWRkTWl4ZWQAoAENZzJtX2FkZEFmZmluZQCfAQdnMm1fbmVnAKMBDWcybV9uZWdBZmZpbmUAogEHZzJtX3N1YgCmAQxnMm1fc3ViTWl4ZWQApQENZzJtX3N1YkFmZmluZQCkARJnMm1fZnJvbU1vbnRnb21lcnkAqAEYZzJtX2Zyb21Nb250Z29tZXJ5QWZmaW5lAKcBEGcybV90b01vbnRnb21lcnkAqgEWZzJtX3RvTW9udGdvbWVyeUFmZmluZQCpAQ9nMm1fdGltZXNTY2FsYXIAwAEVZzJtX3RpbWVzU2NhbGFyQWZmaW5lAMEBDWcybV9ub3JtYWxpemUArQEKZzJtX0xFTXRvVQCvAQpnMm1fTEVNdG9DALABCmcybV9VdG9MRU0AsQEKZzJtX0N0b0xFTQCyAQ9nMm1fYmF0Y2hMRU10b1UAswEPZzJtX2JhdGNoTEVNdG9DALQBD2cybV9iYXRjaFV0b0xFTQC1AQ9nMm1fYmF0Y2hDdG9MRU0AtgEMZzJtX3RvQWZmaW5lAKsBDmcybV90b0phY29iaWFuAJkBEWcybV9iYXRjaFRvQWZmaW5lAKwBE2cybV9iYXRjaFRvSmFjb2JpYW4AtwELZzFtX3RpbWVzRnIAwgEHZzFtX2ZmdADIAQhnMW1faWZmdADJAQpnMW1fcmF3ZmZ0AMYBC2cxbV9mZnRKb2luAMoBCmcxbV9mZnRNaXgAywEMZzFtX2ZmdEZpbmFsAMwBC2cybV90aW1lc0ZyAM0BB2cybV9mZnQA0wEIZzJtX2lmZnQA1AEKZzJtX3Jhd2ZmdADRAQtnMm1fZmZ0Sm9pbgDVAQpnMm1fZmZ0TWl4ANYBDGcybV9mZnRGaW5hbADXARFnMW1fdGltZXNGckFmZmluZQDYARFnMm1fdGltZXNGckFmZmluZQDZARFmcm1fYmF0Y2hBcHBseUtleQDaARFnMW1fYmF0Y2hBcHBseUtleQDbARZnMW1fYmF0Y2hBcHBseUtleU1peGVkANwBEWcybV9iYXRjaEFwcGx5S2V5AN0BFmcybV9iYXRjaEFwcGx5S2V5TWl4ZWQA3gEKZjZtX2lzWmVybwDgAQlmNm1faXNPbmUA4QEIZjZtX3plcm8A4gEHZjZtX29uZQDjAQhmNm1fY29weQDkAQdmNm1fbXVsAOUBCmY2bV9zcXVhcmUA5gEHZjZtX2FkZADnAQdmNm1fc3ViAOgBB2Y2bV9uZWcA6QEIZjZtX3NpZ24A6gESZjZtX2Zyb21Nb250Z29tZXJ5AOwBEGY2bV90b01vbnRnb21lcnkA6wEGZjZtX2VxAO0BC2Y2bV9pbnZlcnNlAO4BB2Y2bV9leHAA8gEPZjZtX3RpbWVzU2NhbGFyAO8BEGY2bV9iYXRjaEludmVyc2UA8QEOZjZtX2lzTmVnYXRpdmUA8AEKZnRtX2lzWmVybwD0AQlmdG1faXNPbmUA9QEIZnRtX3plcm8A9gEHZnRtX29uZQD3AQhmdG1fY29weQD4AQdmdG1fbXVsAPkBCGZ0bV9tdWwxAPoBCmZ0bV9zcXVhcmUA+wEHZnRtX2FkZAD8AQdmdG1fc3ViAP0BB2Z0bV9uZWcA/gEIZnRtX3NpZ24AhQINZnRtX2Nvbmp1Z2F0ZQD/ARJmdG1fZnJvbU1vbnRnb21lcnkAgQIQZnRtX3RvTW9udGdvbWVyeQCAAgZmdG1fZXEAggILZnRtX2ludmVyc2UAgwIHZnRtX2V4cACIAg9mdG1fdGltZXNTY2FsYXIAhAIQZnRtX2JhdGNoSW52ZXJzZQCHAghmdG1fc3FydACJAgxmdG1faXNTcXVhcmUAigIOZnRtX2lzTmVnYXRpdmUAhgIUYm4xMjhfX2Zyb2Jlbml1c01hcDAAkwIUYm4xMjhfX2Zyb2Jlbml1c01hcDEAlAIUYm4xMjhfX2Zyb2Jlbml1c01hcDIAlQIUYm4xMjhfX2Zyb2Jlbml1c01hcDMAlgIUYm4xMjhfX2Zyb2Jlbml1c01hcDQAlwIUYm4xMjhfX2Zyb2Jlbml1c01hcDUAmAIUYm4xMjhfX2Zyb2Jlbml1c01hcDYAmQIUYm4xMjhfX2Zyb2Jlbml1c01hcDcAmgIUYm4xMjhfX2Zyb2Jlbml1c01hcDgAmwIUYm4xMjhfX2Zyb2Jlbml1c01hcDkAnAIQYm4xMjhfcGFpcmluZ0VxMQCjAhBibjEyOF9wYWlyaW5nRXEyAKQCEGJuMTI4X3BhaXJpbmdFcTMApQIQYm4xMjhfcGFpcmluZ0VxNACmAhBibjEyOF9wYWlyaW5nRXE1AKcCDWJuMTI4X3BhaXJpbmcAqAIPYm4xMjhfcHJlcGFyZUcxAI0CD2JuMTI4X3ByZXBhcmVHMgCPAhBibjEyOF9taWxsZXJMb29wAJICGWJuMTI4X2ZpbmFsRXhwb25lbnRpYXRpb24AogIcYm4xMjhfZmluYWxFeHBvbmVudGlhdGlvbk9sZACdAg9ibjEyOF9fbXVsQnkwMjQAkAISYm4xMjhfX211bEJ5MDI0T2xkAJECF2JuMTI4X19jeWNsb3RvbWljU3F1YXJlAJ8CF2JuMTI4X19jeWNsb3RvbWljRXhwX3cwAKACCoXOA6kCKgAgASAAKQMANwMAIAEgACkDCDcDCCABIAApAxA3AxAgASAAKQMYNwMYCx4AIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGAszACAAKQMYUARAIAApAxBQBEAgACkDCFAEQCAAKQMAUA8FQQAPCwVBAA8LBUEADwtBAA8LHgAgAEIBNwMAIABCADcDCCAAQgA3AxAgAEIANwMYC0cAIAApAxggASkDGFEEQCAAKQMQIAEpAxBRBEAgACkDCCABKQMIUQRAIAApAwAgASkDAFEPBUEADwsFQQAPCwVBAA8LQQAPC30AIAApAxggASkDGFQEQEEADwUgACkDGCABKQMYVgRAQQEPBSAAKQMQIAEpAxBUBEBBAA8FIAApAxAgASkDEFYEQEEBDwUgACkDCCABKQMIVARAQQAPBSAAKQMIIAEpAwhWBEBBAQ8FIAApAwAgASkDAFoPCwsLCwsLQQAPC9QBAQF+IAA1AgAgATUCAHwhAyACIAM+AgAgADUCBCABNQIEfCADQiCIfCEDIAIgAz4CBCAANQIIIAE1Agh8IANCIIh8IQMgAiADPgIIIAA1AgwgATUCDHwgA0IgiHwhAyACIAM+AgwgADUCECABNQIQfCADQiCIfCEDIAIgAz4CECAANQIUIAE1AhR8IANCIIh8IQMgAiADPgIUIAA1AhggATUCGHwgA0IgiHwhAyACIAM+AhggADUCHCABNQIcfCADQiCIfCEDIAIgAz4CHCADQiCIpwuMAgEBfiAANQIAIAE1AgB9IQMgAiADQv////8Pgz4CACAANQIEIAE1AgR9IANCIId8IQMgAiADQv////8Pgz4CBCAANQIIIAE1Agh9IANCIId8IQMgAiADQv////8Pgz4CCCAANQIMIAE1Agx9IANCIId8IQMgAiADQv////8Pgz4CDCAANQIQIAE1AhB9IANCIId8IQMgAiADQv////8Pgz4CECAANQIUIAE1AhR9IANCIId8IQMgAiADQv////8Pgz4CFCAANQIYIAE1Ahh9IANCIId8IQMgAiADQv////8Pgz4CGCAANQIcIAE1Ahx9IANCIId8IQMgAiADQv////8Pgz4CHCADQiCHpwuPEBIBfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4gA0L/////D4MgADUCACIFIAE1AgAiBn58IQMgBCADQiCIfCEEIAIgAz4CACAEQiCIIQMgBEL/////D4MgBSABNQIEIgh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIEIgcgBn58IQQgAyAEQiCIfCEDIAIgBD4CBCADQiCIIQQgA0L/////D4MgBSABNQIIIgp+fCEDIAQgA0IgiHwhBCADQv////8PgyAHIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIIIgkgBn58IQMgBCADQiCIfCEEIAIgAz4CCCAEQiCIIQMgBEL/////D4MgBSABNQIMIgx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAHIAp+fCEEIAMgBEIgiHwhAyAEQv////8PgyAJIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIMIgsgBn58IQQgAyAEQiCIfCEDIAIgBD4CDCADQiCIIQQgA0L/////D4MgBSABNQIQIg5+fCEDIAQgA0IgiHwhBCADQv////8PgyAHIAx+fCEDIAQgA0IgiHwhBCADQv////8PgyAJIAp+fCEDIAQgA0IgiHwhBCADQv////8PgyALIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIQIg0gBn58IQMgBCADQiCIfCEEIAIgAz4CECAEQiCIIQMgBEL/////D4MgBSABNQIUIhB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAHIA5+fCEEIAMgBEIgiHwhAyAEQv////8PgyAJIAx+fCEEIAMgBEIgiHwhAyAEQv////8PgyALIAp+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIUIg8gBn58IQQgAyAEQiCIfCEDIAIgBD4CFCADQiCIIQQgA0L/////D4MgBSABNQIYIhJ+fCEDIAQgA0IgiHwhBCADQv////8PgyAHIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAJIA5+fCEDIAQgA0IgiHwhBCADQv////8PgyALIAx+fCEDIAQgA0IgiHwhBCADQv////8PgyANIAp+fCEDIAQgA0IgiHwhBCADQv////8PgyAPIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIYIhEgBn58IQMgBCADQiCIfCEEIAIgAz4CGCAEQiCIIQMgBEL/////D4MgBSABNQIcIhR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAHIBJ+fCEEIAMgBEIgiHwhAyAEQv////8PgyAJIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyALIA5+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIAx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAPIAp+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIcIhMgBn58IQQgAyAEQiCIfCEDIAIgBD4CHCADQiCIIQQgA0L/////D4MgByAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSASfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAIfnwhAyAEIANCIIh8IQQgAiADPgIgIARCIIghAyAEQv////8PgyAJIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyALIBJ+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAPIA5+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIAx+fCEEIAMgBEIgiHwhAyAEQv////8PgyATIAp+fCEEIAMgBEIgiHwhAyACIAQ+AiQgA0IgiCEEIANC/////w+DIAsgFH58IQMgBCADQiCIfCEEIANC/////w+DIA0gEn58IQMgBCADQiCIfCEEIANC/////w+DIA8gEH58IQMgBCADQiCIfCEEIANC/////w+DIBEgDn58IQMgBCADQiCIfCEEIANC/////w+DIBMgDH58IQMgBCADQiCIfCEEIAIgAz4CKCAEQiCIIQMgBEL/////D4MgDSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgDyASfnwhBCADIARCIIh8IQMgBEL/////D4MgESAQfnwhBCADIARCIIh8IQMgBEL/////D4MgEyAOfnwhBCADIARCIIh8IQMgAiAEPgIsIANCIIghBCADQv////8PgyAPIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBJ+fCEDIAQgA0IgiHwhBCADQv////8PgyATIBB+fCEDIAQgA0IgiHwhBCACIAM+AjAgBEIgiCEDIARC/////w+DIBEgFH58IQQgAyAEQiCIfCEDIARC/////w+DIBMgEn58IQQgAyAEQiCIfCEDIAIgBD4CNCADQiCIIQQgA0L/////D4MgEyAUfnwhAyAEIANCIIh8IQQgAiADPgI4IARCIIghAyACIAQ+AjwLjBIMAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+QgAhAkIAIQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgADUCACIGIAZ+fCECIAMgAkIgiHwhAyABIAI+AgAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCBCIHfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CBCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIIIgh+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAHIAd+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIIIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AgwiCX58IQIgAyACQiCIfCEDIAJC/////w+DIAcgCH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AgwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCECIKfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAJfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCCAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CECADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIUIgt+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAp+fCECIAMgAkIgiHwhAyACQv////8PgyAIIAl+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIUIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AhgiDH58IQIgAyACQiCIfCEDIAJC/////w+DIAcgC358IQIgAyACQiCIfCEDIAJC/////w+DIAggCn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAkgCX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AhggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCHCINfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAMfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCALfnwhAiADIAJCIIh8IQMgAkL/////D4MgCSAKfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CHCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByANfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCAMfnwhAiADIAJCIIh8IQMgAkL/////D4MgCSALfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCiAKfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CICADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCCANfnwhAiADIAJCIIh8IQMgAkL/////D4MgCSAMfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiALfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CJCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCSANfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAMfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCyALfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CKCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCiANfnwhAiADIAJCIIh8IQMgAkL/////D4MgCyAMfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CLCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCyANfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgDCAMfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CMCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgDCANfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CNCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgDSANfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4COCADIQQgBEIgiCEFIAEgBD4CPAsKACAAIAAgARAIC7YBAQF+IAA1AAAgAX4hAyACIAM+AAAgADUABCABfiADQiCIfCEDIAIgAz4ABCAANQAIIAF+IANCIIh8IQMgAiADPgAIIAA1AAwgAX4gA0IgiHwhAyACIAM+AAwgADUAECABfiADQiCIfCEDIAIgAz4AECAANQAUIAF+IANCIIh8IQMgAiADPgAUIAA1ABggAX4gA0IgiHwhAyACIAM+ABggADUAHCABfiADQiCIfCEDIAIgAz4AHAtOAgF+AX8gACEDIAM1AAAgAXwhAiADIAI+AAAgAkIgiCECAkADQCACUA0BIANBBGohAyADNQAAIAJ8IQIgAyACPgAAIAJCIIghAgwACwsLsAIHAX8BfwF/AX8BfgF+AX8gAgRAIAIhBQVB6AAhBQsgAwRAIAMhBAVBiAEhBAsgACAEEAAgAUHIABAAIAUQAUGoARABQR8hBkEfIQcCQANAQcgAIAdqLQAAIAdBA0ZyDQEgB0EBayEHDAALC0HIACAHakEDazUAAEIBfCEIIAhCAVEEQEIAQgCAGgsCQANAAkADQCAEIAZqLQAAIAZBB0ZyDQEgBkEBayEGDAALCyAEIAZqQQdrKQAAIQkgCSAIgCEJIAYgB2tBBGshCgJAA0AgCUKAgICAcINQIApBAE5xDQEgCUIIiCEJIApBAWohCgwACwsgCVAEQCAEQcgAEAVFDQJCASEJQQAhCgtByAAgCUHIARALIARByAEgCmsgBBAHGiAFIApqIAkQDAwACwsLtQILAX8BfwF/AX8BfwF/AX8BfwF/AX8Bf0HoASEDQegBEAFBACELQYgCIQUgAUGIAhAAQagCIQRBqAIQA0EAIQxByAIhCCAAQcgCEABB6AIhBkGIAyEHQegDIQoCQANAIAgQAg0BIAUgCCAGIAcQDSAGIARBqAMQCCALBEAgDARAQagDIAMQBQRAQagDIAMgChAHGkEAIQ0FIANBqAMgChAHGkEBIQ0LBUGoAyADIAoQBhpBASENCwUgDARAQagDIAMgChAGGkEAIQ0FIANBqAMQBQRAIANBqAMgChAHGkEAIQ0FQagDIAMgChAHGkEBIQ0LCwsgAyEJIAQhAyAKIQQgCSEKIAwhCyANIQwgBSEJIAghBSAHIQggCSEHDAALCyALBEAgASADIAIQBxoFIAMgAhAACwsKACAAQegEEAQPCywAIAAgASACEAYEQCACQYgEIAIQBxoFIAJBiAQQBQRAIAJBiAQgAhAHGgsLCxcAIAAgASACEAcEQCACQYgEIAIQBhoLCwsAQYgFIAAgARARC5wRAwF+AX4BfkKJx5mkDiECQgAhAyAANQIAIAJ+Qv////8PgyEEIAA1AgAgA0IgiHxBiAQ1AgAgBH58IQMgACADPgIAIAA1AgQgA0IgiHxBiAQ1AgQgBH58IQMgACADPgIEIAA1AgggA0IgiHxBiAQ1AgggBH58IQMgACADPgIIIAA1AgwgA0IgiHxBiAQ1AgwgBH58IQMgACADPgIMIAA1AhAgA0IgiHxBiAQ1AhAgBH58IQMgACADPgIQIAA1AhQgA0IgiHxBiAQ1AhQgBH58IQMgACADPgIUIAA1AhggA0IgiHxBiAQ1AhggBH58IQMgACADPgIYIAA1AhwgA0IgiHxBiAQ1AhwgBH58IQMgACADPgIcQegGIANCIIg+AgBCACEDIAA1AgQgAn5C/////w+DIQQgADUCBCADQiCIfEGIBDUCACAEfnwhAyAAIAM+AgQgADUCCCADQiCIfEGIBDUCBCAEfnwhAyAAIAM+AgggADUCDCADQiCIfEGIBDUCCCAEfnwhAyAAIAM+AgwgADUCECADQiCIfEGIBDUCDCAEfnwhAyAAIAM+AhAgADUCFCADQiCIfEGIBDUCECAEfnwhAyAAIAM+AhQgADUCGCADQiCIfEGIBDUCFCAEfnwhAyAAIAM+AhggADUCHCADQiCIfEGIBDUCGCAEfnwhAyAAIAM+AhwgADUCICADQiCIfEGIBDUCHCAEfnwhAyAAIAM+AiBB6AYgA0IgiD4CBEIAIQMgADUCCCACfkL/////D4MhBCAANQIIIANCIIh8QYgENQIAIAR+fCEDIAAgAz4CCCAANQIMIANCIIh8QYgENQIEIAR+fCEDIAAgAz4CDCAANQIQIANCIIh8QYgENQIIIAR+fCEDIAAgAz4CECAANQIUIANCIIh8QYgENQIMIAR+fCEDIAAgAz4CFCAANQIYIANCIIh8QYgENQIQIAR+fCEDIAAgAz4CGCAANQIcIANCIIh8QYgENQIUIAR+fCEDIAAgAz4CHCAANQIgIANCIIh8QYgENQIYIAR+fCEDIAAgAz4CICAANQIkIANCIIh8QYgENQIcIAR+fCEDIAAgAz4CJEHoBiADQiCIPgIIQgAhAyAANQIMIAJ+Qv////8PgyEEIAA1AgwgA0IgiHxBiAQ1AgAgBH58IQMgACADPgIMIAA1AhAgA0IgiHxBiAQ1AgQgBH58IQMgACADPgIQIAA1AhQgA0IgiHxBiAQ1AgggBH58IQMgACADPgIUIAA1AhggA0IgiHxBiAQ1AgwgBH58IQMgACADPgIYIAA1AhwgA0IgiHxBiAQ1AhAgBH58IQMgACADPgIcIAA1AiAgA0IgiHxBiAQ1AhQgBH58IQMgACADPgIgIAA1AiQgA0IgiHxBiAQ1AhggBH58IQMgACADPgIkIAA1AiggA0IgiHxBiAQ1AhwgBH58IQMgACADPgIoQegGIANCIIg+AgxCACEDIAA1AhAgAn5C/////w+DIQQgADUCECADQiCIfEGIBDUCACAEfnwhAyAAIAM+AhAgADUCFCADQiCIfEGIBDUCBCAEfnwhAyAAIAM+AhQgADUCGCADQiCIfEGIBDUCCCAEfnwhAyAAIAM+AhggADUCHCADQiCIfEGIBDUCDCAEfnwhAyAAIAM+AhwgADUCICADQiCIfEGIBDUCECAEfnwhAyAAIAM+AiAgADUCJCADQiCIfEGIBDUCFCAEfnwhAyAAIAM+AiQgADUCKCADQiCIfEGIBDUCGCAEfnwhAyAAIAM+AiggADUCLCADQiCIfEGIBDUCHCAEfnwhAyAAIAM+AixB6AYgA0IgiD4CEEIAIQMgADUCFCACfkL/////D4MhBCAANQIUIANCIIh8QYgENQIAIAR+fCEDIAAgAz4CFCAANQIYIANCIIh8QYgENQIEIAR+fCEDIAAgAz4CGCAANQIcIANCIIh8QYgENQIIIAR+fCEDIAAgAz4CHCAANQIgIANCIIh8QYgENQIMIAR+fCEDIAAgAz4CICAANQIkIANCIIh8QYgENQIQIAR+fCEDIAAgAz4CJCAANQIoIANCIIh8QYgENQIUIAR+fCEDIAAgAz4CKCAANQIsIANCIIh8QYgENQIYIAR+fCEDIAAgAz4CLCAANQIwIANCIIh8QYgENQIcIAR+fCEDIAAgAz4CMEHoBiADQiCIPgIUQgAhAyAANQIYIAJ+Qv////8PgyEEIAA1AhggA0IgiHxBiAQ1AgAgBH58IQMgACADPgIYIAA1AhwgA0IgiHxBiAQ1AgQgBH58IQMgACADPgIcIAA1AiAgA0IgiHxBiAQ1AgggBH58IQMgACADPgIgIAA1AiQgA0IgiHxBiAQ1AgwgBH58IQMgACADPgIkIAA1AiggA0IgiHxBiAQ1AhAgBH58IQMgACADPgIoIAA1AiwgA0IgiHxBiAQ1AhQgBH58IQMgACADPgIsIAA1AjAgA0IgiHxBiAQ1AhggBH58IQMgACADPgIwIAA1AjQgA0IgiHxBiAQ1AhwgBH58IQMgACADPgI0QegGIANCIIg+AhhCACEDIAA1AhwgAn5C/////w+DIQQgADUCHCADQiCIfEGIBDUCACAEfnwhAyAAIAM+AhwgADUCICADQiCIfEGIBDUCBCAEfnwhAyAAIAM+AiAgADUCJCADQiCIfEGIBDUCCCAEfnwhAyAAIAM+AiQgADUCKCADQiCIfEGIBDUCDCAEfnwhAyAAIAM+AiggADUCLCADQiCIfEGIBDUCECAEfnwhAyAAIAM+AiwgADUCMCADQiCIfEGIBDUCFCAEfnwhAyAAIAM+AjAgADUCNCADQiCIfEGIBDUCGCAEfnwhAyAAIAM+AjQgADUCOCADQiCIfEGIBDUCHCAEfnwhAyAAIAM+AjhB6AYgA0IgiD4CHEHoBiAAQSBqIAEQEAu+HyMBfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+QonHmaQOIQUgA0L/////D4MgADUCACIGIAE1AgAiB358IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEIIANC/////w+DQQA1AogEIgkgCH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AgQiC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AgQiCiAHfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCjAQiDSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DIQwgBEL/////D4MgCSAMfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAYgATUCCCIPfnwhAyAEIANCIIh8IQQgA0L/////D4MgCiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCCCIOIAd+fCEDIAQgA0IgiHwhBCADQv////8PgyANIAx+fCEDIAQgA0IgiHwhBCADQv////8Pg0EANQKQBCIRIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhECADQv////8PgyAJIBB+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIMIhN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAKIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAOIAt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIMIhIgB358IQQgAyAEQiCIfCEDIARC/////w+DIA0gEH58IQQgAyAEQiCIfCEDIARC/////w+DIBEgDH58IQQgAyAEQiCIfCEDIARC/////w+DQQA1ApQEIhUgCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEUIARC/////w+DIAkgFH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AhAiF358IQMgBCADQiCIfCEEIANC/////w+DIAogE358IQMgBCADQiCIfCEEIANC/////w+DIA4gD358IQMgBCADQiCIfCEEIANC/////w+DIBIgC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AhAiFiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUCmAQiGSAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DIRggA0L/////D4MgCSAYfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCFCIbfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgDiATfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgFiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCFCIaIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQKcBCIdIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhHCAEQv////8PgyAJIBx+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIYIh9+fCEDIAQgA0IgiHwhBCADQv////8PgyAKIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyASIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIYIh4gB358IQMgBCADQiCIfCEEIANC/////w+DIA0gHH58IQMgBCADQiCIfCEEIANC/////w+DIBEgGH58IQMgBCADQiCIfCEEIANC/////w+DIBUgFH58IQMgBCADQiCIfCEEIANC/////w+DIBkgEH58IQMgBCADQiCIfCEEIANC/////w+DIB0gDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AqAEIiEgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEgIANC/////w+DIAkgIH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AhwiI358IQQgAyAEQiCIfCEDIARC/////w+DIAogH358IQQgAyAEQiCIfCEDIARC/////w+DIA4gG358IQQgAyAEQiCIfCEDIARC/////w+DIBIgF358IQQgAyAEQiCIfCEDIARC/////w+DIBYgE358IQQgAyAEQiCIfCEDIARC/////w+DIBogD358IQQgAyAEQiCIfCEDIARC/////w+DIB4gC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AhwiIiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgESAcfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgISAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCpAQiJSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DISQgBEL/////D4MgCSAkfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAogI358IQMgBCADQiCIfCEEIANC/////w+DIA4gH358IQMgBCADQiCIfCEEIANC/////w+DIBIgG358IQMgBCADQiCIfCEEIANC/////w+DIBYgF358IQMgBCADQiCIfCEEIANC/////w+DIBogE358IQMgBCADQiCIfCEEIANC/////w+DIB4gD358IQMgBCADQiCIfCEEIANC/////w+DICIgC358IQMgBCADQiCIfCEEIANC/////w+DIA0gJH58IQMgBCADQiCIfCEEIANC/////w+DIBEgIH58IQMgBCADQiCIfCEEIANC/////w+DIBUgHH58IQMgBCADQiCIfCEEIANC/////w+DIBkgGH58IQMgBCADQiCIfCEEIANC/////w+DIB0gFH58IQMgBCADQiCIfCEEIANC/////w+DICEgEH58IQMgBCADQiCIfCEEIANC/////w+DICUgDH58IQMgBCADQiCIfCEEIAIgAz4CACAEQiCIIQMgBEL/////D4MgDiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAffnwhBCADIARCIIh8IQMgBEL/////D4MgFiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgHiATfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgESAkfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAcfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgISAUfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAQfnwhBCADIARCIIh8IQMgAiAEPgIEIANCIIghBCADQv////8PgyASICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAeIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyAiIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAVICR+fCEDIAQgA0IgiHwhBCADQv////8PgyAZICB+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyAhIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAlIBR+fCEDIAQgA0IgiHwhBCACIAM+AgggBEIgiCEDIARC/////w+DIBYgI358IQQgAyAEQiCIfCEDIARC/////w+DIBogH358IQQgAyAEQiCIfCEDIARC/////w+DIB4gG358IQQgAyAEQiCIfCEDIARC/////w+DICIgF358IQQgAyAEQiCIfCEDIARC/////w+DIBkgJH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gIH58IQQgAyAEQiCIfCEDIARC/////w+DICEgHH58IQQgAyAEQiCIfCEDIARC/////w+DICUgGH58IQQgAyAEQiCIfCEDIAIgBD4CDCADQiCIIQQgA0L/////D4MgGiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgHiAffnwhAyAEIANCIIh8IQQgA0L/////D4MgIiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgISAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAcfnwhAyAEIANCIIh8IQQgAiADPgIQIARCIIghAyAEQv////8PgyAeICN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAiIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlICB+fCEEIAMgBEIgiHwhAyACIAQ+AhQgA0IgiCEEIANC/////w+DICIgI358IQMgBCADQiCIfCEEIANC/////w+DICUgJH58IQMgBCADQiCIfCEEIAIgAz4CGCAEQiCIIQMgAiAEPgIcIAOnBEAgAkGIBCACEAcaBSACQYgEEAUEQCACQYgEIAIQBxoLCwu7IR0BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+QonHmaQOIQZCACECQgAhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAANQIAIgcgB358IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEIIAJC/////w+DQQA1AogEIgkgCH58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AgQiCn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8Pg0EANQKMBCIMIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhCyACQv////8PgyAJIAt+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIIIg1+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAKIAp+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCkAQiDyAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIQ4gAkL/////D4MgCSAOfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCDCIQfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiANfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgDn58IQIgAyACQiCIfCEDIAJC/////w+DIA8gC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1ApQEIhIgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyERIAJC/////w+DIAkgEX58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhAiE358IQIgAyACQiCIfCEDIAJC/////w+DIAogEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA0gDX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAPIA5+fCECIAMgAkIgiHwhAyACQv////8PgyASIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKYBCIVIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhFCACQv////8PgyAJIBR+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIUIhZ+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBN+fCECIAMgAkIgiHwhAyACQv////8PgyANIBB+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyARfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCnAQiGCAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIRcgAkL/////D4MgCSAXfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCGCIZfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSATfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgECAQfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgF358IQIgAyACQiCIfCEDIAJC/////w+DIA8gFH58IQIgAyACQiCIfCEDIAJC/////w+DIBIgEX58IQIgAyACQiCIfCEDIAJC/////w+DIBUgDn58IQIgAyACQiCIfCEDIAJC/////w+DIBggC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AqAEIhsgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEaIAJC/////w+DIAkgGn58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhwiHH58IQIgAyACQiCIfCEDIAJC/////w+DIAogGX58IQIgAyACQiCIfCEDIAJC/////w+DIA0gFn58IQIgAyACQiCIfCEDIAJC/////w+DIBAgE358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBd+fCECIAMgAkIgiHwhAyACQv////8PgyASIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAYIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAbIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKkBCIeIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhHSACQv////8PgyAJIB1+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCiAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgECAWfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgEyATfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgHX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gGn58IQIgAyACQiCIfCEDIAJC/////w+DIBIgF358IQIgAyACQiCIfCEDIAJC/////w+DIBUgFH58IQIgAyACQiCIfCEDIAJC/////w+DIBggEX58IQIgAyACQiCIfCEDIAJC/////w+DIBsgDn58IQIgAyACQiCIfCEDIAJC/////w+DIB4gC358IQIgAyACQiCIfCEDIAEgAj4CACADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgDSAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgECAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAWfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIA8gHX58IQIgAyACQiCIfCEDIAJC/////w+DIBIgGn58IQIgAyACQiCIfCEDIAJC/////w+DIBUgF358IQIgAyACQiCIfCEDIAJC/////w+DIBggFH58IQIgAyACQiCIfCEDIAJC/////w+DIBsgEX58IQIgAyACQiCIfCEDIAJC/////w+DIB4gDn58IQIgAyACQiCIfCEDIAEgAj4CBCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgECAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAZfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgFiAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBIgHX58IQIgAyACQiCIfCEDIAJC/////w+DIBUgGn58IQIgAyACQiCIfCEDIAJC/////w+DIBggF358IQIgAyACQiCIfCEDIAJC/////w+DIBsgFH58IQIgAyACQiCIfCEDIAJC/////w+DIB4gEX58IQIgAyACQiCIfCEDIAEgAj4CCCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgEyAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAZfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBUgHX58IQIgAyACQiCIfCEDIAJC/////w+DIBggGn58IQIgAyACQiCIfCEDIAJC/////w+DIBsgF358IQIgAyACQiCIfCEDIAJC/////w+DIB4gFH58IQIgAyACQiCIfCEDIAEgAj4CDCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgFiAcfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgGSAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBggHX58IQIgAyACQiCIfCEDIAJC/////w+DIBsgGn58IQIgAyACQiCIfCEDIAJC/////w+DIB4gF358IQIgAyACQiCIfCEDIAEgAj4CECADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgGSAcfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBsgHX58IQIgAyACQiCIfCEDIAJC/////w+DIB4gGn58IQIgAyACQiCIfCEDIAEgAj4CFCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgHCAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIB4gHX58IQIgAyACQiCIfCEDIAEgAj4CGCADIQQgBEIgiCEFIAEgBD4CHCAFpwRAIAFBiAQgARAHGgUgAUGI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QcgONQIIIAR+fCEDIAAgAz4CDCAANQIQIANCIIh8QcgONQIMIAR+fCEDIAAgAz4CECAANQIUIANCIIh8QcgONQIQIAR+fCEDIAAgAz4CFCAANQIYIANCIIh8QcgONQIUIAR+fCEDIAAgAz4CGCAANQIcIANCIIh8QcgONQIYIAR+fCEDIAAgAz4CHCAANQIgIANCIIh8QcgONQIcIAR+fCEDIAAgAz4CIEGoESADQiCIPgIEQgAhAyAANQIIIAJ+Qv////8PgyEEIAA1AgggA0IgiHxByA41AgAgBH58IQMgACADPgIIIAA1AgwgA0IgiHxByA41AgQgBH58IQMgACADPgIMIAA1AhAgA0IgiHxByA41AgggBH58IQMgACADPgIQIAA1AhQgA0IgiHxByA41AgwgBH58IQMgACADPgIUIAA1AhggA0IgiHxByA41AhAgBH58IQMgACADPgIYIAA1AhwgA0IgiHxByA41AhQgBH58IQMgACADPgIcIAA1AiAgA0IgiHxByA41AhggBH58IQMgACADPgIgIAA1AiQgA0IgiHxByA41AhwgBH58IQMgACADPgIkQagRIANCIIg+AghCACEDIAA1AgwgAn5C/////w+DIQQgADUCDCADQiCIfEHIDjUCACAEfnwhAyAAIAM+AgwgADUCECADQiCIfEHIDjUCBCAEfnwhAyAAIAM+AhAgADUCFCADQiCIfEHIDjUCCCAEfnwhAyAAIAM+AhQgADUCGCADQiCIfEHIDjUCDCAEfnwhAyAAIAM+AhggADUCHCADQiCIfEHIDjUCECAEfnwhAyAAIAM+AhwgADUCICADQiCIfEHIDjUCFCAEfnwhAyAAIAM+AiAgADUCJCADQiCIfEHIDjUCGCAEfnwhAyAAIAM+AiQgADUCKCADQiCIfEHIDjUCHCAEfnwhAyAAIAM+AihBqBEgA0IgiD4CDEIAIQMgADUCECACfkL/////D4MhBCAANQIQIANCIIh8QcgONQIAIAR+fCEDIAAgAz4CECAANQIUIANCIIh8QcgONQIEIAR+fCEDIAAgAz4CFCAANQIYIANCIIh8QcgONQIIIAR+fCEDIAAgAz4CGCAANQIcIANCIIh8QcgONQIMIAR+fCEDIAAgAz4CHCAANQIgIANCIIh8QcgONQIQIAR+fCEDIAAgAz4CICAANQIkIANCIIh8QcgONQIUIAR+fCEDIAAgAz4CJCAANQIoIANCIIh8QcgONQIYIAR+fCEDIAAgAz4CKCAANQIsIANCIIh8QcgONQIcIAR+fCEDIAAgAz4CLEGoESADQiCIPgIQQgAhAyAANQIUIAJ+Qv////8PgyEEIAA1AhQgA0IgiHxByA41AgAgBH58IQMgACADPgIUIAA1AhggA0IgiHxByA41AgQgBH58IQMgACADPgIYIAA1AhwgA0IgiHxByA41AgggBH58IQMgACADPgIcIAA1AiAgA0IgiHxByA41AgwgBH58IQMgACADPgIgIAA1AiQgA0IgiHxByA41AhAgBH58IQMgACADPgIkIAA1AiggA0IgiHxByA41AhQgBH58IQMgACADPgIoIAA1AiwgA0IgiHxByA41AhggBH58IQMgACADPgIsIAA1AjAgA0IgiHxByA41AhwgBH58IQMgACADPgIwQagRIANCIIg+AhRCACEDIAA1AhggAn5C/////w+DIQQgADUCGCADQiCIfEHIDjUCACAEfnwhAyAAIAM+AhggADUCHCADQiCIfEHIDjUCBCAEfnwhAyAAIAM+AhwgADUCICADQiCIfEHIDjUCCCAEfnwhAyAAIAM+AiAgADUCJCADQiCIfEHIDjUCDCAEfnwhAyAAIAM+AiQgADUCKCADQiCIfEHIDjUCECAEfnwhAyAAIAM+AiggADUCLCADQiCIfEHIDjUCFCAEfnwhAyAAIAM+AiwgADUCMCADQiCIfEHIDjUCGCAEfnwhAyAAIAM+AjAgADUCNCADQiCIfEHIDjUCHCAEfnwhAyAAIAM+AjRBqBEgA0IgiD4CGEIAIQMgADUCHCACfkL/////D4MhBCAANQIcIANCIIh8QcgONQIAIAR+fCEDIAAgAz4CHCAANQIgIANCIIh8QcgONQIEIAR+fCEDIAAgAz4CICAANQIkIANCIIh8QcgONQIIIAR+fCEDIAAgAz4CJCAANQIoIANCIIh8QcgONQIMIAR+fCEDIAAgAz4CKCAANQIsIANCIIh8QcgONQIQIAR+fCEDIAAgAz4CLCAANQIwIANCIIh8QcgONQIUIAR+fCEDIAAgAz4CMCAANQI0IANCIIh8QcgONQIYIAR+fCEDIAAgAz4CNCAANQI4IANCIIh8QcgONQIcIAR+fCEDIAAgAz4COEGoESADQiCIPgIcQagRIABBIGogARAmC74fIwF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX5C/////w4hBSADQv////8PgyAANQIAIgYgATUCACIHfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DIQggA0L/////D4NBADUCyA4iCSAIfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCBCILfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCBCIKIAd+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQLMDiINIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhDCAEQv////8PgyAJIAx+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIIIg9+fCEDIAQgA0IgiHwhBCADQv////8PgyAKIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIIIg4gB358IQMgBCADQiCIfCEEIANC/////w+DIA0gDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AtAOIhEgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEQIANC/////w+DIAkgEH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AgwiE358IQQgAyAEQiCIfCEDIARC/////w+DIAogD358IQQgAyAEQiCIfCEDIARC/////w+DIA4gC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AgwiEiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgESAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUC1A4iFSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DIRQgBEL/////D4MgCSAUfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAYgATUCECIXfnwhAyAEIANCIIh8IQQgA0L/////D4MgCiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgDiAPfnwhAyAEIANCIIh8IQQgA0L/////D4MgEiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCECIWIAd+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIAx+fCEDIAQgA0IgiHwhBCADQv////8Pg0EANQLYDiIZIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhGCADQv////8PgyAJIBh+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIUIht+fCEEIAMgBEIgiHwhAyAEQv////8PgyAKIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAOIBN+fCEEIAMgBEIgiHwhAyAEQv////8PgyASIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAWIAt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIUIhogB358IQQgAyAEQiCIfCEDIARC/////w+DIA0gGH58IQQgAyAEQiCIfCEDIARC/////w+DIBEgFH58IQQgAyAEQiCIfCEDIARC/////w+DIBUgEH58IQQgAyAEQiCIfCEDIARC/////w+DIBkgDH58IQQgAyAEQiCIfCEDIARC/////w+DQQA1AtwOIh0gCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEcIARC/////w+DIAkgHH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AhgiH358IQMgBCADQiCIfCEEIANC/////w+DIAogG358IQMgBCADQiCIfCEEIANC/////w+DIA4gF358IQMgBCADQiCIfCEEIANC/////w+DIBIgE358IQMgBCADQiCIfCEEIANC/////w+DIBYgD358IQMgBCADQiCIfCEEIANC/////w+DIBogC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AhgiHiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUC4A4iISAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DISAgA0L/////D4MgCSAgfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCHCIjfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAffnwhBCADIARCIIh8IQMgBEL/////D4MgDiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgFiATfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgHiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCHCIiIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANICB+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAdIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQLkDiIlIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhJCAEQv////8PgyAJICR+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgCiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgDiAffnwhAyAEIANCIIh8IQQgA0L/////D4MgEiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgFiAXfnwhAyAEIANCIIh8IQQgA0L/////D4MgGiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgHiAPfnwhAyAEIANCIIh8IQQgA0L/////D4MgIiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgISAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAMfnwhAyAEIANCIIh8IQQgAiADPgIAIARCIIghAyAEQv////8PgyAOICN+fCEEIAMgBEIgiHwhAyAEQv////8PgyASIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAWIBt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAaIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAeIBN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAiIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyARICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVICB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAdIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlIBB+fCEEIAMgBEIgiHwhAyACIAQ+AgQgA0IgiCEEIANC/////w+DIBIgI358IQMgBCADQiCIfCEEIANC/////w+DIBYgH358IQMgBCADQiCIfCEEIANC/////w+DIBogG358IQMgBCADQiCIfCEEIANC/////w+DIB4gF358IQMgBCADQiCIfCEEIANC/////w+DICIgE358IQMgBCADQiCIfCEEIANC/////w+DIBUgJH58IQMgBCADQiCIfCEEIANC/////w+DIBkgIH58IQMgBCADQiCIfCEEIANC/////w+DIB0gHH58IQMgBCADQiCIfCEEIANC/////w+DICEgGH58IQMgBCADQiCIfCEEIANC/////w+DICUgFH58IQMgBCADQiCIfCEEIAIgAz4CCCAEQiCIIQMgBEL/////D4MgFiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAffnwhBCADIARCIIh8IQMgBEL/////D4MgHiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAkfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgISAcfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAYfnwhBCADIARCIIh8IQMgAiAEPgIMIANCIIghBCADQv////8PgyAaICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAeIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyAiIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAdICR+fCEDIAQgA0IgiHwhBCADQv////8PgyAhICB+fCEDIAQgA0IgiHwhBCADQv////8PgyAlIBx+fCEDIAQgA0IgiHwhBCACIAM+AhAgBEIgiCEDIARC/////w+DIB4gI358IQQgAyAEQiCIfCEDIARC/////w+DICIgH358IQQgAyAEQiCIfCEDIARC/////w+DICEgJH58IQQgAyAEQiCIfCEDIARC/////w+DICUgIH58IQQgAyAEQiCIfCEDIAIgBD4CFCADQiCIIQQgA0L/////D4MgIiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAkfnwhAyAEIANCIIh8IQQgAiADPgIYIARCIIghAyACIAQ+AhwgA6cEQCACQcgOIAIQBxoFIAJByA4QBQRAIAJByA4gAhAHGgsLC7shHQF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX5C/////w4hBkIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAA1AgAiByAHfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIQggAkL/////D4NBADUCyA4iCSAIfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCBCIKfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DQQA1AswOIgwgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyELIAJC/////w+DIAkgC358IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AggiDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAogCn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQLQDiIPIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhDiACQv////8PgyAJIA5+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIMIhB+fCECIAMgAkIgiHwhAyACQv////8PgyAKIA1+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUC1A4iEiAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIREgAkL/////D4MgCSARfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCECITfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAQfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgDSANfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgEX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gDn58IQIgAyACQiCIfCEDIAJC/////w+DIBIgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AtgOIhUgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEUIAJC/////w+DIAkgFH58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhQiFn58IQIgAyACQiCIfCEDIAJC/////w+DIAogE358IQIgAyACQiCIfCEDIAJC/////w+DIA0gEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBF+fCECIAMgAkIgiHwhAyACQv////8PgyASIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAVIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQLcDiIYIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhFyACQv////8PgyAJIBd+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIYIhl+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBZ+fCECIAMgAkIgiHwhAyACQv////8PgyANIBN+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAQIBB+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiARfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUC4A4iGyAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIRogAkL/////D4MgCSAafnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCHCIcfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgECATfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgGn58IQIgAyACQiCIfCEDIAJC/////w+DIA8gF358IQIgAyACQiCIfCEDIAJC/////w+DIBIgFH58IQIgAyACQiCIfCEDIAJC/////w+DIBUgEX58IQIgAyACQiCIfCEDIAJC/////w+DIBggDn58IQIgAyACQiCIfCEDIAJC/////w+DIBsgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AuQOIh4gCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEdIAJC/////w+DIAkgHX58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAKIBx+fCECIAMgAkIgiHwhAyACQv////8PgyANIBl+fCECIAMgAkIgiHwhAyACQv////8PgyAQIBZ+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyATIBN+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAafnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCARfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgHiALfnwhAiADIAJCIIh8IQMgASACPgIAIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyANIBx+fCECIAMgAkIgiHwhAyACQv////8PgyAQIBl+fCECIAMgAkIgiHwhAyACQv////8PgyATIBZ+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDyAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAafnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyARfnwhAiADIAJCIIh8IQMgAkL/////D4MgHiAOfnwhAiADIAJCIIh8IQMgASACPgIEIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAQIBx+fCECIAMgAkIgiHwhAyACQv////8PgyATIBl+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAWIBZ+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgEiAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAafnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgHiARfnwhAiADIAJCIIh8IQMgASACPgIIIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyATIBx+fCECIAMgAkIgiHwhAyACQv////8PgyAWIBl+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgFSAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAafnwhAiADIAJCIIh8IQMgAkL/////D4MgGyAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgHiAUfnwhAiADIAJCIIh8IQMgASACPgIMIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAWIBx+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAZIBl+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgGCAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyAafnwhAiADIAJCIIh8IQMgAkL/////D4MgHiAXfnwhAiADIAJCIIh8IQMgASACPgIQIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAZIBx+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgGyAdfnwh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NwMgIAEgACkDKDcDKCABIAApAzA3AzAgASAAKQM4NwM4IAEgACkDQDcDQCABIAApA0g3A0ggASAAKQNQNwNQIAEgACkDWDcDWAscACABQcAAahAcIABBIGogAUEgahAAIAAgARAACxgBAX8gACABEAQgAEEgaiABQSBqEARxDwt1AQF/IABBwABqIQIgABBABEAgARA/DwsgARA/BEBBAA8LIAIQDwRAIAAgARBGDwsgAkHIGRAVIAFByBlB6BkQFCACQcgZQYgaEBQgAUEgakGIGkGoGhAUIABB6BkQBARAIABBIGpBqBoQBARAQQEPCwtBAA8LtAECAX8BfyAAQcAAaiECIAFBwABqIQMgABBABEAgARBADwsgARBABEBBAA8LIAIQDwRAIAEgABBHDwsgAxAPBEAgACABEEcPCyACQcgaEBUgA0HoGhAVIABB6BpBiBsQFCABQcgaQagbEBQgAkHIGkHIGxAUIANB6BpB6BsQFCAAQSBqQegbQYgcEBQgAUEgakHIG0GoHBAUQYgbQagbEAQEQEGIHEGoHBAEBEBBAQ8LC0EADwvoAQAgABA/BEAgACABEEUPCyAAQcgcEBUgAEEgakHoHBAVQegcQYgdEBUgAEHoHEGoHRAQQagdQagdEBVBqB1ByBxBqB0QEUGoHUGIHUGoHRARQagdQagdQagdEBBByBxByBxByB0QEEHIHUHIHEHIHRAQIABBIGogAEEgaiABQcAAahAQQcgdIAEQFSABQagdIAEQESABQagdIAEQEUGIHUGIHUHoHRAQQegdQegdQegdEBBB6B1B6B1B6B0QEEGoHSABIAFBIGoQESABQSBqQcgdIAFBIGoQFCABQSBqQegdIAFBIGoQEQuJAgAgABBABEAgACABEEQPCyAAQcAAahAPBEAgACABEEkPDwsgAEGIHhAVIABBIGpBqB4QFUGoHkHIHhAVIABBqB5B6B4QEEHoHkHoHhAVQegeQYgeQegeEBFB6B5ByB5B6B4QEUHoHkHoHkHoHhAQQYgeQYgeQYgfEBBBiB9BiB5BiB8QEEGIH0GoHxAVIABBIGogAEHAAGpByB8QFEHoHkHoHiABEBBBqB8gASABEBFByB5ByB5B6B8QEEHoH0HoH0HoHxAQQegfQegfQegfEBBB6B4gASABQSBqEBEgAUEgakGIHyABQSBqEBQg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BEAgABAZDwsgAEEgahAZDwuLAgQBfwF/AX8Bf0EAKAIAIQVBACAFIAJBAWpBwABsajYCACAFEH8gACEGIAVBwABqIQVBACEIAkADQCAIIAJGDQEgBhB8BEAgBUHAAGsgBRCAAQUgBiAFQcAAayAFEIEBCyAGIAFqIQYgBUHAAGohBSAIQQFqIQgMAAsLIAYgAWshBiAFQcAAayEFIAMgAkEBayAEbGohByAFIAUQiwECQANAIAhFDQEgBhB8BEAgBSAFQcAAaxCAASAHEH4FIAVBwABrQejKABCAASAFIAYgBUHAAGsQgQEgBUHoygAgBxCBAQsgBiABayEGIAcgBGshByAFQcAAayEFIAhBAWshCAwACwtBACAFNgIAC8wCAgF/AX8gAkUEQCADEH8PCyAAQajLABCAASADEH8gAiEEAkADQCAEQQFrIQQgASAEai0AACEFIAMgAxCDASAFQYABTwRAIAVBgAFrIQUgA0GoywAgAxCBAQsgAyADEIMBIAVBwABPBEAgBUHAAGshBSADQajLACADEIEBCyADIAMQgwEgBUEgTwRAIAVBIGshBSADQajLACADEIEBCyADIAMQgwEgBUEQTwRAIAVBEGshBSADQajLACADEIEBCyADIAMQgwEgBUEITwRAIAVBCGshBSADQajLACADEIEBCyADIAMQgwEgBUEETwRAIAVBBGshBSADQajLACADEIEBCyADIAMQgwEgBUECTwRAIAVBAmshBSADQajLACADEIEBCyADIAMQgwEgBUEBTwRAIAVBAWshBSADQajLACADEIEBCyAERQ0BDAALCwvLAQBB6M0AEH9B6M0AQejNABCGASAAQejLAEEgQajMABCQAUGozABB6MwAEIMBIABB6MwAQejMABCBAUHozABBqM0AEIcBQajNAEHozABBqM0AEIEBQajNAEHozQAQigEEQAALQajMACAAQajOABCBAUHozABB6M0AEIoBBEBB6M0AEAFBiM4AEBxB6M0AQajOACABEIEBBUHozgAQf0HozgBB6MwAQejOABCEAUHozgBBiMwAQSBB6M4AEJABQejOAEGozgAgARCBAQsLaABBiNEAEH9BiNEAQYjRABCGASAAQajPAEEgQcjPABCQAUHIzwBBiNAAEIMBIABBiNAAQYjQABCBAUGI0ABByNAAEIcBQcjQAEGI0ABByNAAEIEBQcjQAEGI0QAQigEEQEEADwtBAQ8LDwAgABB8IABBwABqEHxxCwoAIABBgAFqEHwLDgAgABB+IABBwABqEH4LFgAgABB+IABBwABqEH8gAEGAAWoQfguiAQAgASAAKQMANwMAIAEgACkDCDcDCCABIAApAxA3AxAgASAAKQMYNwMYIAEgACkDIDcDICABIAApAyg3AyggASAAKQMwNwMwIAEgACkDODcDOCABIAApA0A3A0AgASAAKQNINwNIIAEgACkDUDcDUCABIAApA1g3A1ggASAAKQNgNwNgIAEgACkDaDcDaCABIAApA3A3A3AgASAAKQN4NwN4C4ICACABIAApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggASAAKQMgNwMgIAEgACkDKDcDKCABIAApAzA3AzAgASAAKQM4NwM4IAEgACkDQDcDQCABIAApA0g3A0ggASAAKQNQNwNQIAEgACkDWDcDWCABIAApA2A3A2AgASAAKQNoNwNoIAEgACkDcDcDcCABIAApA3g3A3ggASAAKQOAATcDgAEgASAAKQOIATcDiAEgASAAKQOQATcDkAEgASAAKQOYATcDmAEgASAAKQOgATcDoAEgASAAKQOoATcDqAEgASAAKQOwATcDsAEgASAAKQO4ATcDuAELIAAgAUGAAWoQfyAAQcAAaiABQcAAahCAASAAIAEQgAELHAEBfyAAIAEQigEgAEHAAGogAUHAAGoQigFxDwuKAQEBfyAAQYABaiECIAAQlAEEQCABEJMBDwsgARCTAQRAQQAPCyACEH0EQCAAIAEQmgEPCyACQYjSABCDASABQYjSAEHI0gAQgQEgAkGI0gBBiNMAEIEBIAFBwABqQYjTAEHI0wAQgQEgAEHI0gAQigEEQCAAQcAAakHI0wAQigEEQEEBDwsLQQAPC9cBAgF/AX8gAEGAAWohAiABQYABaiEDIAAQlAEEQCABEJQBDwsgARCUAQRAQQAPCyACEH0EQCABIAAQmwEPCyADEH0EQCAAIAEQmwEPCyACQYjUABCDASADQcjUABCDASAAQcjUAEGI1QAQgQEgAUGI1ABByNUAEIEBIAJBiNQAQYjWABCBASADQcjUAEHI1gAQgQEgAEHAAGpByNYAQYjXABCBASABQcAAakGI1gBByNcA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DwsWACAAEH4gAEHAAGoQfiAAQYABahB+CxYAIAAQfyAAQcAAahB+IABBgAFqEH4LJwAgACABEIABIABBwABqIAFBwABqEIABIABBgAFqIAFBgAFqEIABC+UCACAAIAFByMcBEIEBIABBwABqIAFBwABqQYjIARCBASAAQYABaiABQYABakHIyAEQgQEgACAAQcAAakGIyQEQhAEgASABQcAAakHIyQEQhAEgACAAQYABakGIygEQhAEgASABQYABakHIygEQhAEgAEHAAGogAEGAAWpBiMsBEIQBIAFBwABqIAFBgAFqQcjLARCEAUHIxwFBiMgBQYjMARCEAUHIxwFByMgBQcjMARCEAUGIyAFByMgBQYjNARCEAUGIywFByMsBIAIQgQEgAkGIzQEgAhCFASACIAIQ3wFByMcBIAIgAhCEAUGIyQFByMkBIAJBwABqEIEBIAJBwABqQYjMASACQcAAahCFAUHIyAFByM0BEN8BIAJBwABqQcjNASACQcAAahCEAUGIygFByMoBIAJBgAFqEIEBIAJBgAFqQcjMASACQYABahCFASACQYABakGIyAEgAkGAAWoQhAELgQIAIABBiM4BEIMBIAAgAEHAAGpByM4BEIEBQcjOAUHIzgFBiM8BEIQBIAAgAEHAAGpByM8BEIUBQcjPASAAQYABakHIzwEQhAFByM8BQcjPARCDASAAQcAAaiAAQYABakGI0AEQgQFBiNABQYjQAUHI0AEQhAEgAEGAAWpBiNEBEIMBQcjQASABEN8BQYjOASABIAEQhAFBiNEBIAFBwABqEN8BQYjPASABQcAAaiABQcAAahCEAUGIzgFBiNEBIAFBgAFqEIQBQcjQASABQYABaiABQYABahCFAUHIzwEgAUGAAWogAUGAAWoQhAFBiM8BIAFBgAFqIAFBgAFqEIQBCzUAIAAgASACEIQBIABBwABqIAFBwABqIAJBwABqEIQBIABBgAFqIAFBgAFqIAJBgAFqEIQBCzUAIAAgASACEIUBIABBwABqIAFBwABqIAJBwABqEIUBIABBgAFqIAFBgAFqIAJBgAFqEIUBCycAIAAgARCGASAAQcAAaiABQcAAahCGASAAQYABaiABQYABahCGAQswAQF/IABBgAFqEI0BIQEgAQRAIAEPCyAAQcAAahCNASEBIAEEQCABDwsgABCN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ahCBASAAQYABakHQ0AMgAUGAAWoQgQEgAEHAAWpBkNEDIAFBwAFqEIEBIABBgAJqQdDRAyABQYACahCBASAAQcACakGQ0gMgAUHAAmoQgQELigIAIAAgARAAIABBIGogAUEgahASIAFB0NIDIAEQgQEgAEHAAGogAUHAAGoQACAAQeAAaiABQeAAahASIAFBwABqQZDTAyABQcAAahCBASAAQYABaiABQYABahAAIABBoAFqIAFBoAFqEBIgAUGAAWpB0NMDIAFBgAFqEIEBIABBwAFqIAFBwAFqEAAgAEHgAWogAUHgAWoQEiABQcABakGQ1AMgAUHAAWoQgQEgAEGAAmogAUGAAmoQACAAQaACaiABQaACahASIAFBgAJqQdDUAyABQYACahCBASAAQcACaiABQcACahAAIABB4AJqIAFB4AJqEBIgAUHAAmpBkNUDIAFBwAJqEIEBC2wAIABB0NUDIAEQgQEgAEHAAGpBkNYDIAFBwABqEIEBIABBgAFqQdDWAyABQYABahCBASAAQcABakGQ1wMgAUHAAWoQgQEgAEGAAmpB0NcDIAFBgAJqEIEBIABBwAJqQZDYAyABQcACahCBAQuKAgAgACABEAAgAEEgaiABQSBqEBIgAUHQ2AMgARCBASAAQcAAaiABQcAAahAAIABB4ABqIAFB4ABqEBIgAUHAAGpBkNkDIAFBwABqEIEBIABBgAFqIAFBgAFqEAAgAEGgAWogAUGgAWoQEiABQYABakHQ2QMgAUGAAWoQgQEgAEHAAWogAUHAAWoQACAAQeABaiABQeABahASIAFBwAFqQZDaAyABQcABahCBASAAQYACaiABQYACahAAIABBoAJqIAFBoAJqEBIgAUGAAmpB0NoDIAFBgAJqEIEBIABBwAJqIAFBwAJqEAAgAEHgAmogAUHgAmoQEiABQcACakGQ2wMgAUHAAmoQgQELbAAgAEHQ2wMgARCBASAAQcAAakGQ3AMgAUHAAGoQgQEgAEGAAWpB0NwDIAFBgAFqEIEBIABBwAFqQZDdAyABQcABahCBASAAQYACakHQ3QMgAUGAAmoQgQEgAEHAAmpBkN4DIAFBwAJqEIEBC4oCACAAIAEQACAAQSBqIAFBIGoQEiABQdDeAyABEIEBIABBwABqIAFBwABqEAAgAEHgAGogAUHgAGoQEiABQcAA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",pq:520,pr:1864,pG1gen:24392,pG1zero:24488,pG1b:3240,pG2gen:24584,pG2zero:24776,pG2b:10440,pOneT:24968,prePSize:192,preQSize:19776,n8q:32,n8r:32,q:"21888242871839275222246405745257275088696311157297823662689037894645226208583",r:"21888242871839275222246405745257275088548364400416034343698204186575808495617"},bls12381_wasm:{code:"AGFzbQEAAAABiQERYAJ/fwBgAX8AYAF/AX9gAn9/AX9gA39/fwF/YAN/f38AYAN/fn8AYAJ/fgBgBH9/f38AYAV/f39/fwBgBH9/f38Bf2AHf39/f39/fwBgCH9/f39/f39/AGAFf39/f38Bf2AHf39/f39/fwF/YAl/f39/f39/f38Bf2ALf39/f39/f39/f38BfwIQAQNlbnYGbWVtb3J5AgDoBwO5ArcCAAECAQMDBAQFAAAGBwgFAgUFAAAFAAAAAAICAAEFCAkFBQgAAgABAgEDAwQEBQAABgcIBQIFBQAABQAAAAACAgABBQgJBQUIAAIFAAACAgIBAQAAAAMDAwAABQUFAAAFBQUAAAAAAAUABQAAAAAFBQUFBQoACwkKAAsJCAgDAAgIAgAACQUFAAgMCQICAQEABQUABQUAAAAAAwAIAgIJCAACAgIBAQAAAAMDAwAABQUFAAAFBQUAAAAAAAUABQAAAAAFBQUFBQoACwkKAAsJCAgFAwAICAIAAAkFBQUDAAgIAgAACQUFBQUJCQkJCQACAgEBAAUABQUAAgAAAwAIAgkIAAICAQEABQUABQUAAAAAAwAIAgIJCAACBQgJBQAAAAAAAAAAAAAFAAAABQAAAAAEDQ4PEAUHviSoAglpbnRxX2NvcHkAAAlpbnRxX3plcm8AAQhpbnRxX29uZQADC2ludHFfaXNaZXJvAAIHaW50cV9lcQAECGludHFfZ3RlAAUIaW50cV9hZGQABghpbnRxX3N1YgAHCGludHFfbXVsAAgLaW50cV9zcXVhcmUACQ5pbnRxX3NxdWFyZU9sZAAKCGludHFfZGl2AA0PaW50cV9pbnZlcnNlTW9kAA4IZjFtX2NvcHkAAAhmMW1femVybwABCmYxbV9pc1plcm8AAgZmMW1fZXEABAdmMW1fYWRkABAHZjFtX3N1YgARB2YxbV9uZWcAEg5mMW1faXNOZWdhdGl2ZQAZCWYxbV9pc09uZQAPCGYxbV9zaWduABoLZjFtX21SZWR1Y3QAEwdmMW1fbXVsABQKZjFtX3NxdWFyZQAVDWYxbV9zcXVhcmVPbGQAFhJmMW1fZnJvbU1vbnRnb21lcnkAGBBmMW1fdG9Nb250Z29tZXJ5ABcLZjFtX2ludmVyc2UAGwdmMW1fb25lABwIZjFtX2xvYWQAHQ9mMW1fdGltZXNTY2FsYXIAHgdmMW1fZXhwACIQZjFtX2JhdGNoSW52ZXJzZQAfCGYxbV9zcXJ0ACMMZjFtX2lzU3F1YXJlACQVZjFtX2JhdGNoVG9Nb250Z29tZXJ5ACAXZjFtX2JhdGNoRnJvbU1vbnRnb21lcnkAIQlpbnRyX2NvcHkAJQlpbnRyX3plcm8AJghpbnRyX29uZQAoC2ludHJfaXNaZXJvACcHaW50cl9lcQApCGludHJfZ3RlACoIaW50cl9hZGQAKwhpbnRyX3N1YgAsCGludHJfbXVsAC0LaW50cl9zcXVhcmUALg5pbnRyX3NxdWFyZU9sZAAvCGludHJfZGl2ADIPaW50cl9pbnZlcnNlTW9kADMIZnJtX2NvcHkAJQhmcm1femVybwAmCmZybV9pc1plcm8AJwZmcm1fZXEAKQdmcm1fYWRkADUHZnJtX3N1YgA2B2ZybV9uZWcANw5mcm1faXNOZWdhdGl2ZQA+CWZybV9pc09uZQA0CGZybV9zaWduAD8LZnJtX21SZWR1Y3QAOAdmcm1fbXVsADkKZnJtX3NxdWFyZQA6DWZybV9zcXVhcmVPbGQAOxJmcm1fZnJvbU1vbnRnb21lcnkAPRBmcm1fdG9Nb250Z29tZXJ5ADwLZnJtX2ludmVyc2UAQAdmcm1fb25lAEEIZnJtX2xvYWQAQg9mcm1fdGltZXNTY2FsYXIAQwdmcm1fZXhwAEcQZnJtX2JhdGNoSW52ZXJzZQBECGZybV9zcXJ0AEgMZnJtX2lzU3F1YXJlAEkVZnJtX2JhdGNoVG9Nb250Z29tZXJ5AEUXZnJtX2JhdGNoRnJvbU1vbnRnb21lcnkARgZmcl9hZGQANQZmcl9zdWIANgZmcl9uZWcANwZmcl9tdWwASglmcl9zcXVhcmUASwpmcl9pbnZlcnNlAEwNZnJfaXNOZWdhdGl2ZQBNB2ZyX2NvcHkAJQdmcl96ZXJvACYGZnJfb25lAEEJZnJfaXNaZXJvACcFZnJfZXEAKQxnMW1fbXVsdGlleHAAdhJnMW1fbXVsdGlleHBfY2h1bmsAdRJnMW1fbXVsdGlleHBBZmZpbmUAehhnMW1fbXVsdGlleHBBZmZpbmVfY2h1bmsAeQpnMW1faXNaZXJvAE8QZzFtX2lzWmVyb0FmZmluZQBOBmcxbV9lcQBXC2cxbV9lcU1peGVkAFYMZzFtX2VxQWZmaW5lAFUIZzFtX2NvcHkAUw5nMW1fY29weUFmZmluZQBSCGcxbV96ZXJvAFEOZzFtX3plcm9BZmZpbmUAUApnMW1fZG91YmxlAFkQZzFtX2RvdWJsZUFmZmluZQBYB2cxbV9hZGQAXAxnMW1fYWRkTWl4ZWQAWw1nMW1fYWRkQWZmaW5lAFoHZzFtX25lZwBeDWcxbV9uZWdBZmZpbmUAXQdnMW1fc3ViAGEMZzFtX3N1Yk1peGVkAGANZzFtX3N1YkFmZmluZQBfEmcxbV9mcm9tTW9udGdvbWVyeQBjGGcxbV9mcm9tTW9udGdvbWVyeUFmZmluZQBiEGcxbV90b01vbnRnb21lcnkAZRZnMW1fdG9Nb250Z29tZXJ5QWZmaW5lAGQPZzFtX3RpbWVzU2NhbGFyAHsVZzFtX3RpbWVzU2NhbGFyQWZmaW5lAHwNZzFtX25vcm1hbGl6ZQBoCmcxbV9MRU10b1UAagpnMW1fTEVNdG9DAGsKZzFtX1V0b0xFTQBsCmcxbV9DdG9MRU0AbQ9nMW1fYmF0Y2hMRU10b1UAbg9nMW1fYmF0Y2hMRU10b0MAbw9nMW1fYmF0Y2hVdG9MRU0AcA9nMW1fYmF0Y2hDdG9MRU0AcQxnMW1fdG9BZmZpbmUAZg5nMW1fdG9KYWNvYmlhbgBUEWcxbV9iYXRjaFRvQWZmaW5lAGcTZzFtX2JhdGNoVG9KYWNvYmlhbgByB2ZybV9mZnQAggEIZnJtX2lmZnQAgwEKZnJtX3Jhd2ZmdACAAQtmcm1fZmZ0Sm9pbgCEAQpmcm1fZmZ0TWl4AIUBDGZybV9mZnRGaW5hbACGAQhwb2xfemVybwCHAQ9wb2xfY29uc3RydWN0TEMAiAEMcWFwX2J1aWxkQUJDAIkBC3FhcF9qb2luQUJDAIoBCmYybV9pc1plcm8AiwEJZjJtX2lzT25lAIwBCGYybV96ZXJvAI0BB2YybV9vbmUAjgEIZjJtX2NvcHkAjwEHZjJtX211bACQAQhmMm1fbXVsMQCRAQpmMm1fc3F1YXJlAJIBB2YybV9hZGQAkwEHZjJtX3N1YgCUAQdmMm1fbmVnAJUBCGYybV9zaWduAJwBDWYybV9jb25qdWdhdGUAlgESZjJtX2Zyb21Nb250Z29tZXJ5AJgBEGYybV90b01vbnRnb21lcnkAlwEGZjJtX2VxAJkBC2YybV9pbnZlcnNlAJoBB2YybV9leHAAnwEPZjJtX3RpbWVzU2NhbGFyAJsBEGYybV9iYXRjaEludmVyc2UAngEIZjJtX3NxcnQAoAEMZjJtX2lzU3F1YXJlAKEBDmYybV9pc05lZ2F0aXZlAJ0BDGcybV9tdWx0aWV4cADKARJnMm1fbXVsdGlleHBfY2h1bmsAyQESZzJtX211bHRpZXhwQWZmaW5lAM4BGGcybV9tdWx0aWV4cEFmZmluZV9jaHVuawDNAQpnMm1faXNaZXJvAKMBEGcybV9pc1plcm9BZmZpbmUAogEGZzJtX2VxAKsBC2cybV9lcU1peGVkAKoBDGcybV9lcUFmZmluZQCpAQhnMm1fY29weQCnAQ5nMm1fY29weUFmZmluZQCmAQhnMm1femVybwClAQ5nMm1femVyb0FmZmluZQCkAQpnMm1fZG91YmxlAK0BEGcybV9kb3VibGVBZmZpbmUArAEHZzJtX2FkZACwAQxnMm1fYWRkTWl4ZWQArwENZzJtX2FkZEFmZmluZQCuAQdnMm1fbmVnALIBDWcybV9uZWdBZmZpbmUAsQEHZzJtX3N1YgC1AQxnMm1fc3ViTWl4ZWQAtAENZzJtX3N1YkFmZmluZQCzARJnMm1fZnJvbU1vbnRnb21lcnkAtwEYZzJtX2Zyb21Nb250Z29tZXJ5QWZmaW5lALYBEGcybV90b01vbnRnb21lcnkAuQEWZzJtX3RvTW9udGdvbWVyeUFmZmluZQC4AQ9nMm1fdGltZXNTY2FsYXIAzwEVZzJtX3RpbWVzU2NhbGFyQWZmaW5lANABDWcybV9ub3JtYWxpemUAvAEKZzJtX0xFTXRvVQC+AQpnMm1fTEVNdG9DAL8BCmcybV9VdG9MRU0AwAEKZzJtX0N0b0xFTQDBAQ9nMm1fYmF0Y2hMRU10b1UAwgEPZzJtX2JhdGNoTEVNdG9DAMMBD2cybV9iYXRjaFV0b0xFTQDEAQ9nMm1fYmF0Y2hDdG9MRU0AxQEMZzJtX3RvQWZmaW5lALoBDmcybV90b0phY29iaWFuAKgBEWcybV9iYXRjaFRvQWZmaW5lALsBE2cybV9iYXRjaFRvSmFjb2JpYW4AxgELZzFtX3RpbWVzRnIA0QEHZzFtX2ZmdADXAQhnMW1faWZmdADYAQpnMW1fcmF3ZmZ0ANUBC2cxbV9mZnRKb2luANkBCmcxbV9mZnRNaXgA2gEMZzFtX2ZmdEZpbmFsANsBC2cybV90aW1lc0ZyANwBB2cybV9mZnQA4gEIZzJtX2lmZnQA4wEKZzJtX3Jhd2ZmdADgAQtnMm1fZmZ0Sm9pbgDkAQpnMm1fZmZ0TWl4AOUBDGcybV9mZnRGaW5hbADmARFnMW1fdGltZXNGckFmZmluZQDnARFnMm1fdGltZXNGckFmZmluZQDoARFmcm1fYmF0Y2hBcHBseUtleQDpARFnMW1fYmF0Y2hBcHBseUtleQDqARZnMW1fYmF0Y2hBcHBseUtleU1peGVkAOsBEWcybV9iYXRjaEFwcGx5S2V5AOwBFmcybV9iYXRjaEFwcGx5S2V5TWl4ZWQA7QEKZjZtX2lzWmVybwDvAQlmNm1faXNPbmUA8AEIZjZtX3plcm8A8QEHZjZtX29uZQDyAQhmNm1fY29weQDzAQdmNm1fbXVsAPQBCmY2bV9zcXVhcmUA9QEHZjZtX2FkZAD2AQdmNm1fc3ViAPcBB2Y2bV9uZWcA+AEIZjZtX3NpZ24A+QESZjZtX2Zyb21Nb250Z29tZXJ5APsBEGY2bV90b01vbnRnb21lcnkA+gEGZjZtX2VxAPwBC2Y2bV9pbnZlcnNlAP0BB2Y2bV9leHAAgQIPZjZtX3RpbWVzU2NhbGFyAP4BEGY2bV9iYXRjaEludmVyc2UAgAIOZjZtX2lzTmVnYXRpdmUA/wEKZnRtX2lzWmVybwCDAglmdG1faXNPbmUAhAIIZnRtX3plcm8AhQIHZnRtX29uZQCGAghmdG1fY29weQCHAgdmdG1fbXVsAIgCCGZ0bV9tdWwxAIkCCmZ0bV9zcXVhcmUAigIHZnRtX2FkZACLAgdmdG1fc3ViAIwCB2Z0bV9uZWcAjQIIZnRtX3NpZ24AlAINZnRtX2Nvbmp1Z2F0ZQCOAhJmdG1fZnJvbU1vbnRnb21lcnkAkAIQZnRtX3RvTW9udGdvbWVyeQCPAgZmdG1fZXEAkQILZnRtX2ludmVyc2UAkgIHZnRtX2V4cACXAg9mdG1fdGltZXNTY2FsYXIAkwIQZnRtX2JhdGNoSW52ZXJzZQCWAghmdG1fc3FydACYAgxmdG1faXNTcXVhcmUAmQIOZnRtX2lzTmVnYXRpdmUAlQIXYmxzMTIzODFfX2Zyb2Jlbml1c01hcDAAngIXYmxzMTIzODFfX2Zyb2Jlbml1c01hcDEAnwIXYmxzMTIzODFfX2Zyb2Jlbml1c01hcDIAoAIXYmxzMTIzODFfX2Zyb2Jlbml1c01hcDMAoQIXYmxzMTIzODFfX2Zyb2Jlbml1c01hcDQAogIXYmxzMTIzODFfX2Zyb2Jlbml1c01hcDUAowIXYmxzMTIzODFfX2Zyb2Jlbml1c01hcDYApAIXYmxzMTIzODFfX2Zyb2Jlbml1c01hcDcApQIXYmxzMTIzODFfX2Zyb2Jlbml1c01hcDgApgIXYmxzMTIzODFfX2Zyb2Jlbml1c01hcDkApwITYmxzMTIzODFfcGFpcmluZ0VxMQCxAhNibHMxMjM4MV9wYWlyaW5nRXEyALICE2JsczEyMzgxX3BhaXJpbmdFcTMAswITYmxzMTIzODFfcGFpcmluZ0VxNAC0AhNibHMxMjM4MV9wYWlyaW5nRXE1ALUCEGJsczEyMzgxX3BhaXJpbmcAtgISYmxzMTIzODFfcHJlcGFyZUcxAKoCEmJsczEyMzgxX3ByZXBhcmVHMgCrAhNibHMxMjM4MV9taWxsZXJMb29wAKwCHGJsczEyMzgxX2ZpbmFsRXhwb25lbnRpYXRpb24AsAIfYmxzMTIzODFfZmluYWxFeHBvbmVudGlhdGlvbk9sZACtAhpibHMxMjM4MV9fY3ljbG90b21pY1NxdWFyZQCuAhpibHMxMjM4MV9fY3ljbG90b21pY0V4cF93MACvAghmNm1fbXVsMQCaAglmNm1fbXVsMDEAmwIKZnRtX211bDAxNACcAgrq/AS3Aj4AIAEgACkDADcDACABIAApAwg3AwggASAAKQMQNwMQIAEgACkDGDcDGCABIAApAyA3AyAgASAAKQMoNwMoCywAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoC00AIAApAyhQBEAgACkDIFAEQCAAKQMYUARAIAApAxBQBEAgACkDCFAEQCAAKQMAUA8FQQAPCwVBAA8LBUEADwsFQQAPCwVBAA8LQQAPCywAIABCATcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoC2sAIAApAyggASkDKFEEQCAAKQMgIAEpAyBRBEAgACkDGCABKQMYUQRAIAApAxAgASkDEFEEQCAAKQMIIAEpAwhRBEAgACkDACABKQMAUQ8FQQAPCwVBAA8LBUEADwsFQQAPCwVBAA8LQQAPC8UBACAAKQMoIAEpAyhUBEBBAA8FIAApAyggASkDKFYEQEEBDwUgACkDICABKQMgVARAQQAPBSAAKQMgIAEpAyBWBEBBAQ8FIAApAxggASkDGFQEQEEADwUgACkDGCABKQMYVgRAQQEPBSAAKQMQIAEpAxBUBEBBAA8FIAApAxAgASkDEFYEQEEBDwUgACkDCCABKQMIVARAQQAPBSAAKQMIIAEpAwhWBEBBAQ8FIAApAwAgASkDAFoPCwsLCwsLCwsLC0EADwu8AgEBfiAANQIAIAE1AgB8IQMgAiADPgIAIAA1AgQgATUCBHwgA0IgiHwhAyACIAM+AgQgADUCCCABNQIIfCADQiCIfCEDIAIgAz4CCCAANQIMIAE1Agx8IANCIIh8IQMgAiADPgIMIAA1AhAgATUCEHwgA0IgiHwhAyACIAM+AhAgADUCFCABNQIUfCADQiCIfCEDIAIgAz4CFCAANQIYIAE1Ahh8IANCIIh8IQMgAiADPgIYIAA1AhwgATUCHHwgA0IgiHwhAyACIAM+AhwgADUCICABNQIgfCADQiCIfCEDIAIgAz4CICAANQIkIAE1AiR8IANCIIh8IQMgAiADPgIkIAA1AiggATUCKHwgA0IgiHwhAyACIAM+AiggADUCLCABNQIsfCADQiCIfCEDIAIgAz4CLCADQiCIpwuQAwEBfiAANQIAIAE1AgB9IQMgAiADQv////8Pgz4CACAANQIEIAE1AgR9IANCIId8IQMgAiADQv////8Pgz4CBCAANQIIIAE1Agh9IANCIId8IQMgAiADQv////8Pgz4CCCAANQIMIAE1Agx9IANCIId8IQMgAiADQv////8Pgz4CDCAANQIQIAE1AhB9IANCIId8IQMgAiADQv////8Pgz4CECAANQIUIAE1AhR9IANCIId8IQMgAiADQv////8Pgz4CFCAANQIYIAE1Ahh9IANCIId8IQMgAiADQv////8Pgz4CGCAANQIcIAE1Ahx9IANCIId8IQMgAiADQv////8Pgz4CHCAANQIgIAE1AiB9IANCIId8IQMgAiADQv////8Pgz4CICAANQIkIAE1AiR9IANCIId8IQMgAiADQv////8Pgz4CJCAANQIoIAE1Aih9IANCIId8IQMgAiADQv////8Pgz4CKCAANQIsIAE1Aix9IANCIId8IQMgAiADQv////8Pgz4CLCADQiCHpwunIhoBfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+IANC/////w+DIAA1AgAiBSABNQIAIgZ+fCEDIAQgA0IgiHwhBCACIAM+AgAgBEIgiCEDIARC/////w+DIAUgATUCBCIIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCBCIHIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AgQgA0IgiCEEIANC/////w+DIAUgATUCCCIKfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCCCIJIAZ+fCEDIAQgA0IgiHwhBCACIAM+AgggBEIgiCEDIARC/////w+DIAUgATUCDCIMfnwhBCADIARCIIh8IQMgBEL/////D4MgByAKfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCDCILIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AgwgA0IgiCEEIANC/////w+DIAUgATUCECIOfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCECINIAZ+fCEDIAQgA0IgiHwhBCACIAM+AhAgBEIgiCEDIARC/////w+DIAUgATUCFCIQfnwhBCADIARCIIh8IQMgBEL/////D4MgByAOfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCFCIPIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AhQgA0IgiCEEIANC/////w+DIAUgATUCGCISfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCGCIRIAZ+fCEDIAQgA0IgiHwhBCACIAM+AhggBEIgiCEDIARC/////w+DIAUgATUCHCIUfnwhBCADIARCIIh8IQMgBEL/////D4MgByASfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgESAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCHCITIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AhwgA0IgiCEEIANC/////w+DIAUgATUCICIWfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSASfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCICIVIAZ+fCEDIAQgA0IgiHwhBCACIAM+AiAgBEIgiCEDIARC/////w+DIAUgATUCJCIYfnwhBCADIARCIIh8IQMgBEL/////D4MgByAWfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgCyASfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgESAMfnwhBCADIARCIIh8IQMgBEL/////D4MgEyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCJCIXIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AiQgA0IgiCEEIANC/////w+DIAUgATUCKCIafnwhAyAEIANCIIh8IQQgA0L/////D4MgByAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAWfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSASfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgFyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCKCIZIAZ+fCEDIAQgA0IgiHwhBCACIAM+AiggBEIgiCEDIARC/////w+DIAUgATUCLCIcfnwhBCADIARCIIh8IQMgBEL/////D4MgByAafnwhBCADIARCIIh8IQMgBEL/////D4MgCSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAWfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgDyASfnwhBCADIARCIIh8IQMgBEL/////D4MgESAQfnwhBCADIARCIIh8IQMgBEL/////D4MgEyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgFyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCLCIbIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AiwgA0IgiCEEIANC/////w+DIAcgHH58IQMgBCADQiCIfCEEIANC/////w+DIAkgGn58IQMgBCADQiCIfCEEIANC/////w+DIAsgGH58IQMgBCADQiCIfCEEIANC/////w+DIA0gFn58IQMgBCADQiCIfCEEIANC/////w+DIA8gFH58IQMgBCADQiCIfCEEIANC/////w+DIBEgEn58IQMgBCADQiCIfCEEIANC/////w+DIBMgEH58IQMgBCADQiCIfCEEIANC/////w+DIBUgDn58IQMgBCADQiCIfCEEIANC/////w+DIBcgDH58IQMgBCADQiCIfCEEIANC/////w+DIBkgCn58IQMgBCADQiCIfCEEIANC/////w+DIBsgCH58IQMgBCADQiCIfCEEIAIgAz4CMCAEQiCIIQMgBEL/////D4MgCSAcfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAafnwhBCADIARCIIh8IQMgBEL/////D4MgDSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAWfnwhBCADIARCIIh8IQMgBEL/////D4MgESAUfnwhBCADIARCIIh8IQMgBEL/////D4MgEyASfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgFyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgGyAKfnwhBCADIARCIIh8IQMgAiAEPgI0IANCIIghBCADQv////8PgyALIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBp+fCEDIAQgA0IgiHwhBCADQv////8PgyAPIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBZ+fCEDIAQgA0IgiHwhBCADQv////8PgyATIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIBJ+fCEDIAQgA0IgiHwhBCADQv////8PgyAXIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIA5+fCEDIAQgA0IgiHwhBCADQv////8PgyAbIAx+fCEDIAQgA0IgiHwhBCACIAM+AjggBEIgiCEDIARC/////w+DIA0gHH58IQQgAyAEQiCIfCEDIARC/////w+DIA8gGn58IQQgAyAEQiCIfCEDIARC/////w+DIBEgGH58IQQgAyAEQiCIfCEDIARC/////w+DIBMgFn58IQQgAyAEQiCIfCEDIARC/////w+DIBUgFH58IQQgAyAEQiCIfCEDIARC/////w+DIBcgEn58IQQgAyAEQiCIfCEDIARC/////w+DIBkgEH58IQQgAyAEQiCIfCEDIARC/////w+DIBsgDn58IQQgAyAEQiCIfCEDIAIgBD4CPCADQiCIIQQgA0L/////D4MgDyAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAafnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAWfnwhAyAEIANCIIh8IQQgA0L/////D4MgFyAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSASfnwhAyAEIANCIIh8IQQgA0L/////D4MgGyAQfnwhAyAEIANCIIh8IQQgAiADPgJAIARCIIghAyAEQv////8PgyARIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyATIBp+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAXIBZ+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAbIBJ+fCEEIAMgBEIgiHwhAyACIAQ+AkQgA0IgiCEEIANC/////w+DIBMgHH58IQMgBCADQiCIfCEEIANC/////w+DIBUgGn58IQMgBCADQiCIfCEEIANC/////w+DIBcgGH58IQMgBCADQiCIfCEEIANC/////w+DIBkgFn58IQMgBCADQiCIfCEEIANC/////w+DIBsgFH58IQMgBCADQiCIfCEEIAIgAz4CSCAEQiCIIQMgBEL/////D4MgFSAcfnwhBCADIARCIIh8IQMgBEL/////D4MgFyAafnwhBCADIARCIIh8IQMgBEL/////D4MgGSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgGyAWfnwhBCADIARCIIh8IQMgAiAEPgJMIANCIIghBCADQv////8PgyAXIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIBp+fCEDIAQgA0IgiHwhBCADQv////8PgyAbIBh+fCEDIAQgA0IgiHwhBCACIAM+AlAgBEIgiCEDIARC/////w+DIBkgHH58IQQgAyAEQiCIfCEDIARC/////w+DIBsgGn58IQQgAyAEQiCIfCEDIAIgBD4CVCADQiCIIQQgA0L/////D4MgGyAcfnwhAyAEIANCIIh8IQQgAiADPgJYIARCIIghAyACIAQ+AlwLziAQAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX5CACECQgAhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAANQIAIgYgBn58IQIgAyACQiCIfCEDIAEgAj4CACADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIEIgd+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIEIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AggiCH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAcgB358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AgggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCDCIJfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAIfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CDCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIQIgp+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAl+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAIIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIQIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AhQiC358IQIgAyACQiCIfCEDIAJC/////w+DIAcgCn58IQIgAyACQiCIfCEDIAJC/////w+DIAggCX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AhQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCGCIMfnwhAiADIAJCIIh8IQMgAkL/////D4MgByALfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCAKfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCSAJfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CGCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIcIg1+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAx+fCECIAMgAkIgiHwhAyACQv////8PgyAIIAt+fCECIAMgAkIgiHwhAyACQv////8PgyAJIAp+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIcIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AiAiDn58IQIgAyACQiCIfCEDIAJC/////w+DIAcgDX58IQIgAyACQiCIfCEDIAJC/////w+DIAggDH58IQIgAyACQiCIfCEDIAJC/////w+DIAkgC358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAogCn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCJCIPfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCANfnwhAiADIAJCIIh8IQMgAkL/////D4MgCSAMfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiALfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CJCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIoIhB+fCECIAMgAkIgiHwhAyACQv////8PgyAHIA9+fCECIAMgAkIgiHwhAyACQv////8PgyAIIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAJIA1+fCECIAMgAkIgiHwhAyACQv////8PgyAKIAx+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyALIAt+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIoIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AiwiEX58IQIgAyACQiCIfCEDIAJC/////w+DIAcgEH58IQIgAyACQiCIfCEDIAJC/////w+DIAggD358IQIgAyACQiCIfCEDIAJC/////w+DIAkgDn58IQIgAyACQiCIfCEDIAJC/////w+DIAogDX58IQIgAyACQiCIfCEDIAJC/////w+DIAsgDH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgEX58IQIgAyACQiCIfCEDIAJC/////w+DIAggEH58IQIgAyACQiCIfCEDIAJC/////w+DIAkgD358IQIgAyACQiCIfCEDIAJC/////w+DIAogDn58IQIgAyACQiCIfCEDIAJC/////w+DIAsgDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAwgDH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAggEX58IQIgAyACQiCIfCEDIAJC/////w+DIAkgEH58IQIgAyACQiCIfCEDIAJC/////w+DIAogD358IQIgAyACQiCIfCEDIAJC/////w+DIAsgDn58IQIgAyACQiCIfCEDIAJC/////w+DIAwgDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAkgEX58IQIgAyACQiCIfCEDIAJC/////w+DIAogEH58IQIgAyACQiCIfCEDIAJC/////w+DIAsgD358IQIgAyACQiCIfCEDIAJC/////w+DIAwgDn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA0gDX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAogEX58IQIgAyACQiCIfCEDIAJC/////w+DIAsgEH58IQIgAyACQiCIfCEDIAJC/////w+DIAwgD358IQIgAyACQiCIfCEDIAJC/////w+DIA0gDn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAsgEX58IQIgAyACQiCIfCEDIAJC/////w+DIAwgEH58IQIgAyACQiCIfCEDIAJC/////w+DIA0gD358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA4gDn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AkAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAwgEX58IQIgAyACQiCIfCEDIAJC/////w+DIA0gEH58IQIgAyACQiCIfCEDIAJC/////w+DIA4gD358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AkQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIA0gEX58IQIgAyACQiCIfCEDIAJC/////w+DIA4gEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIA8gD358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AkggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIA4gEX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AkwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIA8gEX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBAgEH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AlAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBAgEX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AlQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBEgEX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AlggAyEEIARCIIghBSABIAQ+AlwLCgAgACAAIAEQCAuSAgEBfiAANQAAIAF+IQMgAiADPgAAIAA1AAQgAX4gA0IgiHwhAyACIAM+AAQgADUACCABfiADQiCIfCEDIAIgAz4ACCAANQAMIAF+IANCIIh8IQMgAiADPgAMIAA1ABAgAX4gA0IgiHwhAyACIAM+ABAgADUAFCABfiADQiCIfCEDIAIgAz4AFCAANQAYIAF+IANCIIh8IQMgAiADPgAYIAA1ABwgAX4gA0IgiHwhAyACIAM+ABwgADUAICABfiADQiCIfCEDIAIgAz4AICAANQAkIAF+IANCIIh8IQMgAiADPgAkIAA1ACggAX4gA0IgiHwhAyACIAM+ACggADUALCABfiADQiCIfCEDIAIgAz4ALAtOAgF+AX8gACEDIAM1AAAgAXwhAiADIAI+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IAR+fCEDIAAgAz4CUCAANQJUIANCIIh8QfgFNQIoIAR+fCEDIAAgAz4CVCAANQJYIANCIIh8QfgFNQIsIAR+fCEDIAAgAz4CWEGICiADQiCIPgIsQYgKIABBMGogARAQC6ZDMwF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfkL9//P/DyEFIANC/////w+DIAA1AgAiBiABNQIAIgd+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhCCADQv////8Pg0EANQL4BSIJIAh+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIEIgt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIEIgogB358IQQgAyAEQiCIfCEDIARC/////w+DQQA1AvwFIg0gCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEMIARC/////w+DIAkgDH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AggiD358IQMgBCADQiCIfCEEIANC/////w+DIAogC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AggiDiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUCgAYiESAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DIRAgA0L/////D4MgCSAQfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCDCITfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgDiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCDCISIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQKEBiIVIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhFCAEQv////8PgyAJIBR+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIQIhd+fCEDIAQgA0IgiHwhBCADQv////8PgyAKIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyASIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIQIhYgB358IQMgBCADQiCIfCEEIANC/////w+DIA0gFH58IQMgBCADQiCIfCEEIANC/////w+DIBEgEH58IQMgBCADQiCIfCEEIANC/////w+DIBUgDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AogGIhkgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEYIANC/////w+DIAkgGH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AhQiG358IQQgAyAEQiCIfCEDIARC/////w+DIAogF358IQQgAyAEQiCIfCEDIARC/////w+DIA4gE358IQQgAyAEQiCIfCEDIARC/////w+DIBIgD358IQQgAyAEQiCIfCEDIARC/////w+DIBYgC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AhQiGiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgESAUfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCjAYiHSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DIRwgBEL/////D4MgCSAcfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAYgATUCGCIffnwhAyAEIANCIIh8IQQgA0L/////D4MgCiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgDiAXfnwhAyAEIANCIIh8IQQgA0L/////D4MgEiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgFiAPfnwhAyAEIANCIIh8IQQgA0L/////D4MgGiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCGCIeIAd+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIAx+fCEDIAQgA0IgiHwhBCADQv////8Pg0EANQKQBiIhIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhICADQv////8PgyAJICB+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIcIiN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAKIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAOIBt+fCEEIAMgBEIgiHwhAyAEQv////8PgyASIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAWIBN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAaIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAeIAt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIcIiIgB358IQQgAyAEQiCIfCEDIARC/////w+DIA0gIH58IQQgAyAEQiCIfCEDIARC/////w+DIBEgHH58IQQgAyAEQiCIfCEDIARC/////w+DIBUgGH58IQQgAyAEQiCIfCEDIARC/////w+DIBkgFH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gEH58IQQgAyAEQiCIfCEDIARC/////w+DICEgDH58IQQgAyAEQiCIfCEDIARC/////w+DQQA1ApQGIiUgCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEkIARC/////w+DIAkgJH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AiAiJ358IQMgBCADQiCIfCEEIANC/////w+DIAogI358IQMgBCADQiCIfCEEIANC/////w+DIA4gH358IQMgBCADQiCIfCEEIANC/////w+DIBIgG358IQMgBCADQiCIfCEEIANC/////w+DIBYgF358IQMgBCADQiCIfCEEIANC/////w+DIBogE358IQMgBCADQiCIfCEEIANC/////w+DIB4gD358IQMgBCADQiCIfCEEIANC/////w+DICIgC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AiAiJiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgESAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgISAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUCmAYiKSAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DISggA0L/////D4MgCSAofnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCJCIrfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAnfnwhBCADIARCIIh8IQMgBEL/////D4MgDiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAffnwhBCADIARCIIh8IQMgBEL/////D4MgFiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgHiATfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgJiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCJCIqIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANICh+fCEEIAMgBEIgiHwhAyAEQv////8PgyARICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAVICB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAdIBh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyApIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQKcBiItIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhLCAEQv////8PgyAJICx+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIoIi9+fCEDIAQgA0IgiHwhBCADQv////8PgyAKICt+fCEDIAQgA0IgiHwhBCADQv////8PgyAOICd+fCEDIAQgA0IgiHwhBCADQv////8PgyASICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAeIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyAiIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAmIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyAqIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIoIi4gB358IQMgBCADQiCIfCEEIANC/////w+DIA0gLH58IQMgBCADQiCIfCEEIANC/////w+DIBEgKH58IQMgBCADQiCIfCEEIANC/////w+DIBUgJH58IQMgBCADQiCIfCEEIANC/////w+DIBkgIH58IQMgBCADQiCIfCEEIANC/////w+DIB0gHH58IQMgBCADQiCIfCEEIANC/////w+DICEgGH58IQMgBCADQiCIfCEEIANC/////w+DICUgFH58IQMgBCADQiCIfCEEIANC/////w+DICkgEH58IQMgBCADQiCIfCEEIANC/////w+DIC0gDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AqAGIjEgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEwIANC/////w+DIAkgMH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AiwiM358IQQgAyAEQiCIfCEDIARC/////w+DIAogL358IQQgAyAEQiCIfCEDIARC/////w+DIA4gK358IQQgAyAEQiCIfCEDIARC/////w+DIBIgJ358IQQgAyAEQiCIfCEDIARC/////w+DIBYgI358IQQgAyAEQiCIfCEDIARC/////w+DIBogH358IQQgAyAEQiCIfCEDIARC/////w+DIB4gG358IQQgAyAEQiCIfCEDIARC/////w+DICIgF358IQQgAyAEQiCIfCEDIARC/////w+DICYgE358IQQgAyAEQiCIfCEDIARC/////w+DICogD358IQQgAyAEQiCIfCEDIARC/////w+DIC4gC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AiwiMiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAwfnwhBCADIARCIIh8IQMgBEL/////D4MgESAsfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAofnwhBCADIARCIIh8IQMgBEL/////D4MgGSAkfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgISAcfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgKSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgLSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgMSAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCpAYiNSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DITQgBEL/////D4MgCSA0fnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAogM358IQMgBCADQiCIfCEEIANC/////w+DIA4gL358IQMgBCADQiCIfCEEIANC/////w+DIBIgK358IQMgBCADQiCIfCEEIANC/////w+DIBYgJ358IQMgBCADQiCIfCEEIANC/////w+DIBogI358IQMgBCADQiCIfCEEIANC/////w+DIB4gH358IQMgBCADQiCIfCEEIANC/////w+DICIgG358IQMgBCADQiCIfCEEIANC/////w+DICYgF358IQMgBCADQiCIfCEEIANC/////w+DICogE358IQMgBCADQiCIfCEEIANC/////w+DIC4gD358IQMgBCADQiCIfCEEIANC/////w+DIDIgC358IQMgBCADQiCIfCEEIANC/////w+DIA0gNH58IQMgBCADQiCIfCEEIANC/////w+DIBEgMH58IQMgBCADQiCIfCEEIANC/////w+DIBUgLH58IQMgBCADQiCIfCEEIANC/////w+DIBkgKH58IQMgBCADQiCIfCEEIANC/////w+DIB0gJH58IQMgBCADQiCIfCEEIANC/////w+DICEgIH58IQMgBCADQiCIfCEEIANC/////w+DICUgHH58IQMgBCADQiCIfCEEIANC/////w+DICkgGH58IQMgBCADQiCIfCEEIANC/////w+DIC0gFH58IQMgBCADQiCIfCEEIANC/////w+DIDEgEH58IQMgBCADQiCIfCEEIANC/////w+DIDUgDH58IQMgBCADQiCIfCEEIAIgAz4CACAEQiCIIQMgBEL/////D4MgDiAzfnwhBCADIARCIIh8IQMgBEL/////D4MgEiAvfnwhBCADIARCIIh8IQMgBEL/////D4MgFiArfnwhBCADIARCIIh8IQMgBEL/////D4MgGiAnfnwhBCADIARCIIh8IQMgBEL/////D4MgHiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAffnwhBCADIARCIIh8IQMgBEL/////D4MgJiAbfnwhBCADIARCIIh8IQMgBEL/////D4MgKiAXfnwhBCADIARCIIh8IQMgBEL/////D4MgLiATfnwhBCADIARCIIh8IQMgBEL/////D4MgMiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgESA0fnwhBCADIARCIIh8IQMgBEL/////D4MgFSAwfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAsfnwhBCADIARCIIh8IQMgBEL/////D4MgHSAofnwhBCADIARCIIh8IQMgBEL/////D4MgISAkfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAgfnwhBCADIARCIIh8IQMgBEL/////D4MgKSAcfnwhBCADIARCIIh8IQMgBEL/////D4MgLSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgMSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgNSAQfnwhBCADIARCIIh8IQMgAiAEPgIEIANCIIghBCADQv////8PgyASIDN+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIC9+fCEDIAQgA0IgiHwhBCADQv////8PgyAaICt+fCEDIAQgA0IgiHwhBCADQv////8PgyAeICd+fCEDIAQgA0IgiHwhBCADQv////8PgyAiICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAmIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyAqIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAuIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyAyIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIDR+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIDB+fCEDIAQgA0IgiHwhBCADQv////8PgyAdICx+fCEDIAQgA0IgiHwhBCADQv////8PgyAhICh+fCEDIAQgA0IgiHwhBCADQv////8PgyAlICR+fCEDIAQgA0IgiHwhBCADQv////8PgyApICB+fCEDIAQgA0IgiHwhBCADQv////8PgyAtIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyAxIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyA1IBR+fCEDIAQgA0IgiHwhBCACIAM+AgggBEIgiCEDIARC/////w+DIBYgM358IQQgAyAEQiCIfCEDIARC/////w+DIBogL358IQQgAyAEQiCIfCEDIARC/////w+DIB4gK358IQQgAyAEQiCIfCEDIARC/////w+DICIgJ358IQQgAyAEQiCIfCEDIARC/////w+DICYgI358IQQgAyAEQiCIfCEDIARC/////w+DICogH358IQQgAyAEQiCIfCEDIARC/////w+DIC4gG358IQQgAyAEQiCIfCEDIARC/////w+DIDIgF358IQQgAyAEQiCIfCEDIARC/////w+DIBkgNH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gMH58IQQgAyAEQiCIfCEDIARC/////w+DICEgLH58IQQgAyAEQiCIfCEDIARC/////w+DICUgKH58IQQgAyAEQiCIfCEDIARC/////w+DICkgJH58IQQgAyAEQiCIfCEDIARC/////w+DIC0gIH58IQQgAyAEQiCIfCEDIARC/////w+DIDEgHH58IQQgAyAEQiCIfCEDIARC/////w+DIDUgGH58IQQgAyAEQiCIfCEDIAIgBD4CDCADQiCIIQQgA0L/////D4MgGiAzfnwhAyAEIANCIIh8IQQgA0L/////D4MgHiAvfnwhAyAEIANCIIh8IQQgA0L/////D4MgIiArfnwhAyAEIANCIIh8IQQgA0L/////D4MgJiAnfnwhAyAEIANCIIh8IQQgA0L/////D4MgKiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgLiAffnwhAyAEIANCIIh8IQQgA0L/////D4MgMiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSA0fnwhAyAEIANCIIh8IQQgA0L/////D4MgISAwfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAsfnwhAyAEIANCIIh8IQQgA0L/////D4MgKSAofnwhAyAEIANCIIh8IQQgA0L/////D4MgLSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgMSAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgNSAcfnwhAyAEIANCIIh8IQQgAiADPgIQIARCIIghAyAEQv////8PgyAeIDN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAiIC9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAmICt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAqICd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAuICN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAyIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIDR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlIDB+fCEEIAMgBEIgiHwhAyAEQv////8PgyApICx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAtICh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAxICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyA1ICB+fCEEIAMgBEIgiHwhAyACIAQ+AhQgA0IgiCEEIANC/////w+DICIgM358IQMgBCADQiCIfCEEIANC/////w+DICYgL358IQMgBCADQiCIfCEEIANC/////w+DICogK358IQMgBCADQiCIfCEEIANC/////w+DIC4gJ358IQMgBCADQiCIfCEEIANC/////w+DIDIgI358IQMgBCADQiCIfCEEIANC/////w+DICUgNH58IQMgBCADQiCIfCEEIANC/////w+DICkgMH58IQMgBCADQiCIfCEEIANC/////w+DIC0gLH58IQMgBCADQiCIfCEEIANC/////w+DIDEgKH58IQMgBCADQiCIfCEEIANC/////w+DIDUgJH58IQMgBCADQiCIfCEEIAIgAz4CGCAEQiCIIQMgBEL/////D4MgJiAzfnwhBCADIARCIIh8IQMgBEL/////D4MgKiAvfnwhBCADIARCIIh8IQMgBEL/////D4MgLiArfnwhBCADIARCIIh8IQMgBEL/////D4MgMiAnfnwhBCADIARCIIh8IQMgBEL/////D4MgKSA0fnwhBCADIARCIIh8IQMgBEL/////D4MgLSAwfnwhBCADIARCIIh8IQMgBEL/////D4MgMSAsfnwhBCADIARCIIh8IQMgBEL/////D4MgNSAofnwhBCADIARCIIh8IQMgAiAEPgIcIANCIIghBCADQv////8PgyAqIDN+fCEDIAQgA0IgiHwhBCADQv////8PgyAuIC9+fCEDIAQgA0IgiHwhBCADQv////8PgyAyICt+fCEDIAQgA0IgiHwhBCADQv////8PgyAtIDR+fCEDIAQgA0IgiHwhBCADQv////8PgyAxIDB+fCEDIAQgA0IgiHwhBCADQv////8PgyA1ICx+fCEDIAQgA0IgiHwhBCACIAM+AiAgBEIgiCEDIARC/////w+DIC4gM358IQQgAyAEQiCIfCEDIARC/////w+DIDIgL358IQQgAyAEQiCIfCEDIARC/////w+DIDEgNH58IQQgAyAEQiCIfCEDIARC/////w+DIDUgMH58IQQgAyAEQiCIfCEDIAIgBD4CJCADQiCIIQQgA0L/////D4MgMiAzfnwhAyAEIANCIIh8IQQgA0L/////D4MgNSA0fnwhAyAEIANCIIh8IQQgAiADPgIoIARCIIghAyACIAQ+AiwgA6cEQCACQfgFIAIQBxoFIAJB+AUQBQRAIAJB+AUgAhAHGgsLC81BKQF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX5C/f/z/w8hBkIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAA1AgAiByAHfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIQggAkL/////D4NBADUC+AUiCSAIfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCBCIKfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DQQA1AvwFIgwgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyELIAJC/////w+DIAkgC358IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AggiDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAogCn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKABiIPIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhDiACQv////8PgyAJIA5+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIMIhB+fCECIAMgAkIgiHwhAyACQv////8PgyAKIA1+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUChAYiEiAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIREgAkL/////D4MgCSARfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCECITfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAQfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgDSANfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgEX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gDn58IQIgAyACQiCIfCEDIAJC/////w+DIBIgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AogGIhUgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEUIAJC/////w+DIAkgFH58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhQiFn58IQIgAyACQiCIfCEDIAJC/////w+DIAogE358IQIgAyACQiCIfCEDIAJC/////w+DIA0gEH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBF+fCECIAMgAkIgiHwhAyACQv////8PgyASIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAVIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKMBiIYIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhFyACQv////8PgyAJIBd+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIYIhl+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBZ+fCECIAMgAkIgiHwhAyACQv////8PgyANIBN+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAQIBB+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiARfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCkAYiGyAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIRogAkL/////D4MgCSAafnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCHCIcfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgECATfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgGn58IQIgAyACQiCIfCEDIAJC/////w+DIA8gF358IQIgAyACQiCIfCEDIAJC/////w+DIBIgFH58IQIgAyACQiCIfCEDIAJC/////w+DIBUgEX58IQIgAyACQiCIfCEDIAJC/////w+DIBggDn58IQIgAyACQiCIfCEDIAJC/////w+DIBsgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1ApQGIh4gCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEdIAJC/////w+DIAkgHX58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AiAiH358IQIgAyACQiCIfCEDIAJC/////w+DIAogHH58IQIgAyACQiCIfCEDIAJC/////w+DIA0gGX58IQIgAyACQiCIfCEDIAJC/////w+DIBAgFn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBMgE358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBp+fCECIAMgAkIgiHwhAyACQv////8PgyASIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAbIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAeIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKYBiIhIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhICACQv////8PgyAJICB+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIkIiJ+fCECIAMgAkIgiHwhAyACQv////8PgyAKIB9+fCECIAMgAkIgiHwhAyACQv////8PgyANIBx+fCECIAMgAkIgiHwhAyACQv////8PgyAQIBl+fCECIAMgAkIgiHwhAyACQv////8PgyATIBZ+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAgfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAdfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAafnwhAiADIAJCIIh8IQMgAkL/////D4MgFSAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyARfnwhAiADIAJCIIh8IQMgAkL/////D4MgHiAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgISALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCnAYiJCAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DISMgAkL/////D4MgCSAjfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCKCIlfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiAifnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAffnwhAiADIAJCIIh8IQMgAkL/////D4MgECAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAZfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgFiAWfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgI358IQIgAyACQiCIfCEDIAJC/////w+DIA8gIH58IQIgAyACQiCIfCEDIAJC/////w+DIBIgHX58IQIgAyACQiCIfCEDIAJC/////w+DIBUgGn58IQIgAyACQiCIfCEDIAJC/////w+DIBggF358IQIgAyACQiCIfCEDIAJC/////w+DIBsgFH58IQIgAyACQiCIfCEDIAJC/////w+DIB4gEX58IQIgAyACQiCIfCEDIAJC/////w+DICEgDn58IQIgAyACQiCIfCEDIAJC/////w+DICQgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AqAGIicgCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEmIAJC/////w+DIAkgJn58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AiwiKH58IQIgAyACQiCIfCEDIAJC/////w+DIAogJX58IQIgAyACQiCIfCEDIAJC/////w+DIA0gIn58IQIgAyACQiCIfCEDIAJC/////w+DIBAgH358IQIgAyACQiCIfCEDIAJC/////w+DIBMgHH58IQIgAyACQiCIfCEDIAJC/////w+DIBYgGX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMICZ+fCECIAMgAkIgiHwhAyACQv////8PgyAPICN+fCECIAMgAkIgiHwhAyACQv////8PgyASICB+fCECIAMgAkIgiHwhAyACQv////8PgyAVIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAhIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAkIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAnIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQKkBiIqIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhKSACQv////8PgyAJICl+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgCiAofnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgECAifnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAffnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAcfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgGSAZfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgKX58IQIgAyACQiCIfCEDIAJC/////w+DIA8gJn58IQIgAyACQiCIfCEDIAJC/////w+DIBIgI358IQIgAyACQiCIfCEDIAJC/////w+DIBUgIH58IQIgAyACQiCIfCEDIAJC/////w+DIBggHX58IQIgAyACQiCIfCEDIAJC/////w+DIBsgGn58IQIgAyACQiCIfCEDIAJC/////w+DIB4gF358IQIgAyACQiCIfCEDIAJC/////w+DICEgFH58IQIgAyACQiCIfCEDIAJC/////w+DICQgEX58IQIgAyACQiCIfCEDIAJC/////w+DICcgDn58IQIgAyACQiCIfCEDIAJC/////w+DICogC358IQIgAyACQiCIfCEDIAEgAj4CACADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgDSAofnwhAiADIAJCIIh8IQMgAkL/////D4MgECAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAifnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAffnwhAiADIAJCIIh8IQMgAkL/////D4MgGSAcfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIA8gKX58IQIgAyACQiCIfCEDIAJC/////w+DIBIgJn58IQIgAyACQiCIfCEDIAJC/////w+DIBUgI358IQIgAyACQiCIfCEDIAJC/////w+DIBggIH58IQIgAyACQiCIfCEDIAJC/////w+DIBsgHX58IQIgAyACQiCIfCEDIAJC/////w+DIB4gGn58IQIgAyACQiCIfCEDIAJC/////w+DICEgF358IQIgAyACQiCIfCEDIAJC/////w+DICQgFH58IQIgAyACQiCIfCEDIAJC/////w+DICcgEX58IQIgAyACQiCIfCEDIAJC/////w+DICogDn58IQIgAyACQiCIfCEDIAEgAj4CBCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgECAofnwhAiADIAJCIIh8IQMgAkL/////D4MgEyAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAifnwhAiADIAJCIIh8IQMgAkL/////D4MgGSAffnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgHCAcfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBIgKX58IQIgAyACQiCIfCEDIAJC/////w+DIBUgJn58IQIgAyACQiCIfCEDIAJC/////w+DIBggI358IQIgAyACQiCIfCEDIAJC/////w+DIBsgIH58IQIgAyACQiCIfCEDIAJC/////w+DIB4gHX58IQIgAyACQiCIfCEDIAJC/////w+DICEgGn58IQIgAyACQiCIfCEDIAJC/////w+DICQgF358IQIgAyACQiCIfCEDIAJC/////w+DICcgFH58IQIgAyACQiCIfCEDIAJC/////w+DICogEX58IQIgAyACQiCIfCEDIAEgAj4CCCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgEyAofnwhAiADIAJCIIh8IQMgAkL/////D4MgFiAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgGSAifnwhAiADIAJCIIh8IQMgAkL/////D4MgHCAffnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBUgKX58IQIgAyACQiCIfCEDIAJC/////w+DIBggJn58IQIgAyACQiCIfCEDIAJC/////w+DIBsgI358IQIgAyACQiCIfCEDIAJC/////w+DIB4gIH58IQIgAyACQiCIfCEDIAJC/////w+DICEgHX58IQIgAyACQiCIfCEDIAJC/////w+DICQgGn58IQIgAyACQiCIfCEDIAJC/////w+DICcgF358IQIgAyACQiCIfCEDIAJC/////w+DICogFH58IQIgAyACQiCIfCEDIAEgAj4CDCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgFiAofnwhAiADIAJCIIh8IQMgAkL/////D4MgGSAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgHCAifnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgHyAffnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBggKX58IQIgAyACQiCIfCEDIAJC/////w+DIBsgJn58IQIgAyACQiCIfCEDIAJC/////w+DIB4gI358IQIgAyACQiCIfCEDIAJC/////w+DICEgIH58IQIgAyACQiCIfCEDIAJC/////w+DICQgHX58IQIgAyACQiCIfCEDIAJC/////w+DICcgGn58IQIgAyACQiCIfCEDIAJC/////w+DICogF358IQIgAyACQiCIfCEDIAEgAj4CECADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgGSAofnwhAiADIAJCIIh8IQMgAkL/////D4MgHCAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgHyAifnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIBsgKX58IQIgAyACQiCIfCEDIAJC/////w+DIB4gJn58IQIgAyACQiCIfCEDIAJC/////w+DICEgI358IQIgAyACQiCIfCEDIAJC/////w+DICQgIH58IQIgAyACQiCIfCEDIAJC/////w+DICcgHX58IQIgAyACQiCIfCEDIAJC/////w+DICogGn58IQIgAyACQiCIfCEDIAEgAj4CFCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgHCAofnwhAiADIAJCIIh8IQMgAkL/////D4MgHyAlfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgIiAifnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIB4gKX58IQIgAyACQiCIfCEDIAJC/////w+DICEgJn58IQIgAyACQiCIfCEDIAJC/////w+DICQgI358IQIgAyACQiCIfCEDIAJC/////w+DICcgIH58IQIgAyACQiCIfCEDIAJC/////w+DICogHX58IQIgAyACQiCIfCEDIAEgAj4CGCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgHyAofnwhAiADIAJCIIh8IQMgAkL/////D4MgIiAlfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DICEgKX58IQIgAyACQiCIfCEDIAJC/////w+DICQgJn58IQIgAyACQiCIfCEDIAJC/////w+DICcgI358IQIgAyACQiCIfCEDIAJC/////w+DICogIH58IQIgAyACQiCIfCEDIAEgAj4CHCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgIiAofnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgJSAlfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DICQgKX58IQIgAyACQiCIfCEDIAJC/////w+DICcgJn58IQIgAyACQiCIfCEDIAJC/////w+DICogI358IQIgAyACQiCIfCEDIAEgAj4CICADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgJSAofnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DICcgKX58IQIgAyACQiCIfCEDIAJC/////w+DICogJn58IQIgAyACQiCIfCEDIAEgAj4CJCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgKCAofnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DICogKX58IQIgAyACQiCIfCEDIAEgAj4CKCADIQQgBEIgiCEFIAEgBD4CLCAFpwRAIAFB+AUgARAHGgUgAUH4BRAFBEAgAUH4BSABEAcaCwsLCgAgACAAIAEQFAsLACAAQdgGIAEQFAsVACAAQYgTEABBuBMQAUGIEyABEBMLEQAgAEHoExAYQegTQZgIEAULJAAgABACBEBBAA8LIABBmBQQGEGYFEGYCBAFBEBBfw8LQQEPCxcAIAAgARAYIAFB+AUgARAOIAEgARAXCwkAQYgHIAAQAAvLAQQBfwF/AX8BfyACEAFBMCEFIAAhAwJAA0AgBSABSw0BIAVBMEYEQEHIFBAcBUHIFEHYBkHIFBAUCyADQcgUQfgUEBQgAkH4FCACEBAgA0EwaiEDIAVBMGohBQwACwsgAUEwcCEEIARFBEAPC0H4FBABQQAhBgJAA0AgBiAERg0BIAYgAy0AADoA+BQgA0EBaiEDIAZBAWohBgwACwsgBUEwRgRAQcgUEBwFQcgUQdgGQcgUEBQLQfgUQcgUQfgUEBQgAkH4FCACEBALHAAgASACQagVEB1BqBVBqBUQFyAAQagVIAMQFAv4AQQBfwF/AX8Bf0EAKAIAIQVBACAFIAJBAWpBMGxqNgIAIAUQHCAAIQYgBUEwaiEFQQAhCAJAA0AgCCACRg0BIAYQAgRAIAVBMGsgBRAABSAGIAVBMGsgBRAUCyAGIAFqIQYgBUEwaiEFIAhBAWohCAwACwsgBiABayEGIAVBMGshBSADIAJBAWsgBGxqIQcgBSAFEBsCQANAIAhFDQEgBhACBEAgBSAFQTBrEAAgBxABBSAFQTBrQdgVEAAgBSAGIAVBMGsQFCAFQdgVIAcQFAsgBiABayEGIAcgBGshByAFQTBrIQUgCEEBayEIDAALC0EAIAU2AgALPgMBfwF/AX8gACEEIAIhBUEAIQMCQANAIAMgAUYNASAEIAUQFyAEQTBqIQQgBUEwaiEFIANBAWohAwwACwsLPgMBfwF/AX8gACEEIAIhBUEAIQMCQANAIAMgAUYNASAEIAUQGCAEQTBqIQQgBUEwaiEFIANBAWohAwwACwsLsgICAX8BfyACRQRAIAMQHA8LIABBiBYQACADEBwgAiEEAkADQCAEQQFrIQQgASAEai0AACEFIAMgAxAVIAVBgAFPBEAgBUGAAWshBSADQYgWIAMQFAsgAyADEBUgBUHAAE8EQCAFQcAAayEFIANBiBYgAxAUCyADIAMQFSAFQSBPBEAgBUEgayEFIANBiBYgAxAUCyADIAMQFSAFQRBPBEAgBUEQayEFIANBiBYgAxAUCyADIAMQFSAFQQhPBEAgBUEIayEFIANBiBYgAxAUCyADIAMQFSAFQQRPBEAgBUEEayEFIANBiBYgAxAUCyADIAMQFSAFQQJPBEAgBUECayEFIANBiBYgAxAUCyADIAMQFSAFQQFPBEAgBUEBayEFIANBiBYgAxAUCyAERQ0BDAALCwveAQMBfwF/AX8gABACBEAgARABDwtBASECQagJQbgWEAAgAEH4CEEwQegWECIgAEHYCUEwQZgXECICQANAQegWQYgHEAQNAUHoFkHIFxAVQQEhAwJAA0BByBdBiAcQBA0BQcgXQcgXEBUgA0EBaiEDDAALC0G4FkH4FxAAIAIgA2tBAWshBAJAA0AgBEUNAUH4F0H4FxAVIARBAWshBAwACwsgAyECQfgXQbgWEBVB6BZBuBZB6BYQFEGYF0H4F0GYFxAUDAALC0GYFxAZBEBBmBcgARASBUGYFyABEAALCyAAIAAQAgRAQQEPCyAAQegHQTBBqBgQIkGoGEGIBxAECyoAIAEgACkDADcDACABIAApAwg3AwggASAAKQMQNwMQIAEgACkDGDcDGAseACAAQgA3AwAgAEIANwMIIABCADcDECAAQgA3AxgLMwAgACkDGFAEQCAAKQMQUARAIAApAwhQBEAgACkDAFAPBUEADwsFQQAPCwVBAA8LQQAPCx4AIABCATcDACAAQgA3AwggAEIANwMQIABCADcDGAtHACAAKQMYIAEpAxhRBEAgACkDECABKQMQUQRAIAApAwggASkDCFEEQCAAKQMAIAEpAwBRDwVBAA8LBUEADwsFQQAPC0EADwt9ACAAKQMYIAEpAxhUBEBBAA8FIAApAxggASkDGFYEQEEBDwUgACkDECABKQMQVARAQQAPBSAAKQMQIAEpAxBWBEBBAQ8FIAApAwggASkDCFQEQEEADwUgACkDCCABKQMIVgRAQQEPBSAAKQMAIAEpAwBaDwsLCwsLC0EADwvUAQEBfiAANQIAIAE1AgB8IQMgAiADPgIAIAA1AgQgATUCBHwgA0IgiHwhAyACIAM+AgQgADUCCCABNQIIfCADQiCIfCEDIAIgAz4CCCAANQIMIAE1Agx8IANCIIh8IQMgAiADPgIMIAA1AhAgATUCEHwgA0IgiHwhAyACIAM+AhAgADUCFCABNQIUfCADQiCIfCEDIAIgAz4CFCAANQIYIAE1Ahh8IANCIIh8IQMgAiADPgIYIAA1AhwgATUCHHwgA0IgiHwhAyACIAM+AhwgA0IgiKcLjAIBAX4gADUCACABNQIAfSEDIAIgA0L/////D4M+AgAgADUCBCABNQIEfSADQiCHfCEDIAIgA0L/////D4M+AgQgADUCCCABNQIIfSADQiCHfCEDIAIgA0L/////D4M+AgggADUCDCABNQIMfSADQiCHfCEDIAIgA0L/////D4M+AgwgADUCECABNQIQfSADQiCHfCEDIAIgA0L/////D4M+AhAgADUCFCABNQIUfSADQiCHfCEDIAIgA0L/////D4M+AhQgADUCGCABNQIYfSADQiCHfCEDIAIgA0L/////D4M+AhggADUCHCABNQIcfSADQiCHfCEDIAIgA0L/////D4M+AhwgA0Igh6cLjxASAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+IANC/////w+DIAA1AgAiBSABNQIAIgZ+fCEDIAQgA0IgiHwhBCACIAM+AgAgBEIgiCEDIARC/////w+DIAUgATUCBCIIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCBCIHIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AgQgA0IgiCEEIANC/////w+DIAUgATUCCCIKfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCCCIJIAZ+fCEDIAQgA0IgiHwhBCACIAM+AgggBEIgiCEDIARC/////w+DIAUgATUCDCIMfnwhBCADIARCIIh8IQMgBEL/////D4MgByAKfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCDCILIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AgwgA0IgiCEEIANC/////w+DIAUgATUCECIOfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCECINIAZ+fCEDIAQgA0IgiHwhBCACIAM+AhAgBEIgiCEDIARC/////w+DIAUgATUCFCIQfnwhBCADIARCIIh8IQMgBEL/////D4MgByAOfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCFCIPIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AhQgA0IgiCEEIANC/////w+DIAUgATUCGCISfnwhAyAEIANCIIh8IQQgA0L/////D4MgByAQfnwhAyAEIANCIIh8IQQgA0L/////D4MgCSAOfnwhAyAEIANCIIh8IQQgA0L/////D4MgCyAMfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAKfnwhAyAEIANCIIh8IQQgA0L/////D4MgDyAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCGCIRIAZ+fCEDIAQgA0IgiHwhBCACIAM+AhggBEIgiCEDIARC/////w+DIAUgATUCHCIUfnwhBCADIARCIIh8IQMgBEL/////D4MgByASfnwhBCADIARCIIh8IQMgBEL/////D4MgCSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgCyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAMfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAKfnwhBCADIARCIIh8IQMgBEL/////D4MgESAIfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCHCITIAZ+fCEEIAMgBEIgiHwhAyACIAQ+AhwgA0IgiCEEIANC/////w+DIAcgFH58IQMgBCADQiCIfCEEIANC/////w+DIAkgEn58IQMgBCADQiCIfCEEIANC/////w+DIAsgEH58IQMgBCADQiCIfCEEIANC/////w+DIA0gDn58IQMgBCADQiCIfCEEIANC/////w+DIA8gDH58IQMgBCADQiCIfCEEIANC/////w+DIBEgCn58IQMgBCADQiCIfCEEIANC/////w+DIBMgCH58IQMgBCADQiCIfCEEIAIgAz4CICAEQiCIIQMgBEL/////D4MgCSAUfnwhBCADIARCIIh8IQMgBEL/////D4MgCyASfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgDyAOfnwhBCADIARCIIh8IQMgBEL/////D4MgESAMfnwhBCADIARCIIh8IQMgBEL/////D4MgEyAKfnwhBCADIARCIIh8IQMgAiAEPgIkIANCIIghBCADQv////8PgyALIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBJ+fCEDIAQgA0IgiHwhBCADQv////8PgyAPIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyARIA5+fCEDIAQgA0IgiHwhBCADQv////8PgyATIAx+fCEDIAQgA0IgiHwhBCACIAM+AiggBEIgiCEDIARC/////w+DIA0gFH58IQQgAyAEQiCIfCEDIARC/////w+DIA8gEn58IQQgAyAEQiCIfCEDIARC/////w+DIBEgEH58IQQgAyAEQiCIfCEDIARC/////w+DIBMgDn58IQQgAyAEQiCIfCEDIAIgBD4CLCADQiCIIQQgA0L/////D4MgDyAUfnwhAyAEIANCIIh8IQQgA0L/////D4MgESASfnwhAyAEIANCIIh8IQQgA0L/////D4MgEyAQfnwhAyAEIANCIIh8IQQgAiADPgIwIARCIIghAyAEQv////8PgyARIBR+fCEEIAMgBEIgiHwhAyAEQv////8PgyATIBJ+fCEEIAMgBEIgiHwhAyACIAQ+AjQgA0IgiCEEIANC/////w+DIBMgFH58IQMgBCADQiCIfCEEIAIgAz4COCAEQiCIIQMgAiAEPgI8C4wSDAF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfkIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAA1AgAiBiAGfnwhAiADIAJCIIh8IQMgASACPgIAIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AgQiB358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AgQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCCCIIfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgByAHfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CCCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIMIgl+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAh+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIMIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AhAiCn58IQIgAyACQiCIfCEDIAJC/////w+DIAcgCX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAggCH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AhAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAYgADUCFCILfnwhAiADIAJCIIh8IQMgAkL/////D4MgByAKfnwhAiADIAJCIIh8IQMgAkL/////D4MgCCAJfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAEgAj4CFCADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgBiAANQIYIgx+fCECIAMgAkIgiHwhAyACQv////8PgyAHIAt+fCECIAMgAkIgiHwhAyACQv////8PgyAIIAp+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAJIAl+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgASACPgIYIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAGIAA1AhwiDX58IQIgAyACQiCIfCEDIAJC/////w+DIAcgDH58IQIgAyACQiCIfCEDIAJC/////w+DIAggC358IQIgAyACQiCIfCEDIAJC/////w+DIAkgCn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AhwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgDX58IQIgAyACQiCIfCEDIAJC/////w+DIAggDH58IQIgAyACQiCIfCEDIAJC/////w+DIAkgC358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAogCn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAggDX58IQIgAyACQiCIfCEDIAJC/////w+DIAkgDH58IQIgAyACQiCIfCEDIAJC/////w+DIAogC358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAkgDX58IQIgAyACQiCIfCEDIAJC/////w+DIAogDH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAsgC358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAogDX58IQIgAyACQiCIfCEDIAJC/////w+DIAsgDH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AiwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAsgDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIAwgDH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyABIAI+AjAgAyEE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iHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIEIgt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIEIgogB358IQQgAyAEQiCIfCEDIARC/////w+DQQA1ArwcIg0gCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEMIARC/////w+DIAkgDH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAGIAE1AggiD358IQMgBCADQiCIfCEEIANC/////w+DIAogC358IQMgBCADQiCIfCEEIANC/////w+DIAA1AggiDiAHfnwhAyAEIANCIIh8IQQgA0L/////D4MgDSAMfnwhAyAEIANCIIh8IQQgA0L/////D4NBADUCwBwiESAIfnwhAyAEIANCIIh8IQQgA0L/////D4MgBX5C/////w+DIRAgA0L/////D4MgCSAQfnwhAyAEIANCIIh8IQQgBEIgiCEDIARC/////w+DIAYgATUCDCITfnwhBCADIARCIIh8IQMgBEL/////D4MgCiAPfnwhBCADIARCIIh8IQMgBEL/////D4MgDiALfnwhBCADIARCIIh8IQMgBEL/////D4MgADUCDCISIAd+fCEEIAMgBEIgiHwhAyAEQv////8PgyANIBB+fCEEIAMgBEIgiHwhAyAEQv////8PgyARIAx+fCEEIAMgBEIgiHwhAyAEQv////8Pg0EANQLEHCIVIAh+fCEEIAMgBEIgiHwhAyAEQv////8PgyAFfkL/////D4MhFCAEQv////8PgyAJIBR+fCEEIAMgBEIgiHwhAyADQiCIIQQgA0L/////D4MgBiABNQIQIhd+fCEDIAQgA0IgiHwhBCADQv////8PgyAKIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyASIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyAANQIQIhYgB358IQMgBCADQiCIfCEEIANC/////w+DIA0gFH58IQMgBCADQiCIfCEEIANC/////w+DIBEgEH58IQMgBCADQiCIfCEEIANC/////w+DIBUgDH58IQMgBCADQiCIfCEEIANC/////w+DQQA1AsgcIhkgCH58IQMgBCADQiCIfCEEIANC/////w+DIAV+Qv////8PgyEYIANC/////w+DIAkgGH58IQMgBCADQiCIfCEEIARCIIghAyAEQv////8PgyAGIAE1AhQiG358IQQgAyAEQiCIfCEDIARC/////w+DIAogF358IQQgAyAEQiCIfCEDIARC/////w+DIA4gE358IQQgAyAEQiCIfCEDIARC/////w+DIBIgD358IQQgAyAEQiCIfCEDIARC/////w+DIBYgC358IQQgAyAEQiCIfCEDIARC/////w+DIAA1AhQiGiAHfnwhBCADIARCIIh8IQMgBEL/////D4MgDSAYfnwhBCADIARCIIh8IQMgBEL/////D4MgESAUfnwhBCADIARCIIh8IQMgBEL/////D4MgFSAQfnwhBCADIARCIIh8IQMgBEL/////D4MgGSAMfnwhBCADIARCIIh8IQMgBEL/////D4NBADUCzBwiHSAIfnwhBCADIARCIIh8IQMgBEL/////D4MgBX5C/////w+DIRwgBEL/////D4MgCSAcfnwhBCADIARCIIh8IQMgA0IgiCEEIANC/////w+DIAYgATUCGCIffnwhAyAEIANCIIh8IQQgA0L/////D4MgCiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgDiAXfnwhAyAEIANCIIh8IQQgA0L/////D4MgEiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgFiAPfnwhAyAEIANCIIh8IQQgA0L/////D4MgGiALfnwhAyAEIANCIIh8IQQgA0L/////D4MgADUCGCIeIAd+fCEDIAQgA0IgiHwhBCADQv////8PgyANIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyARIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIAx+fCEDIAQgA0IgiHwhBCADQv////8Pg0EANQLQHCIhIAh+fCEDIAQgA0IgiHwhBCADQv////8PgyAFfkL/////D4MhICADQv////8PgyAJICB+fCEDIAQgA0IgiHwhBCAEQiCIIQMgBEL/////D4MgBiABNQIcIiN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAKIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAOIBt+fCEEIAMgBEIgiHwhAyAEQv////8PgyASIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAWIBN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAaIA9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAeIAt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAANQIcIiIgB358IQQgAyAEQiCIfCEDIARC/////w+DIA0gIH58IQQgAyAEQiCIfCEDIARC/////w+DIBEgHH58IQQgAyAEQiCIfCEDIARC/////w+DIBUgGH58IQQgAyAEQiCIfCEDIARC/////w+DIBkgFH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gEH58IQQgAyAEQiCIfCEDIARC/////w+DICEgDH58IQQgAyAEQiCIfCEDIARC/////w+DQQA1AtQcIiUgCH58IQQgAyAEQiCIfCEDIARC/////w+DIAV+Qv////8PgyEkIARC/////w+DIAkgJH58IQQgAyAEQiCIfCEDIANCIIghBCADQv////8PgyAKICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAOIB9+fCEDIAQgA0IgiHwhBCADQv////8PgyASIBt+fCEDIAQgA0IgiHwhBCADQv////8PgyAWIBd+fCEDIAQgA0IgiHwhBCADQv////8PgyAaIBN+fCEDIAQgA0IgiHwhBCADQv////8PgyAeIA9+fCEDIAQgA0IgiHwhBCADQv////8PgyAiIAt+fCEDIAQgA0IgiHwhBCADQv////8PgyANICR+fCEDIAQgA0IgiHwhBCADQv////8PgyARICB+fCEDIAQgA0IgiHwhBCADQv////8PgyAVIBx+fCEDIAQgA0IgiHwhBCADQv////8PgyAZIBh+fCEDIAQgA0IgiHwhBCADQv////8PgyAdIBR+fCEDIAQgA0IgiHwhBCADQv////8PgyAhIBB+fCEDIAQgA0IgiHwhBCADQv////8PgyAlIAx+fCEDIAQgA0IgiHwhBCACIAM+AgAgBEIgiCEDIARC/////w+DIA4gI358IQQgAyAEQiCIfCEDIARC/////w+DIBIgH358IQQgAyAEQiCIfCEDIARC/////w+DIBYgG358IQQgAyAEQiCIfCEDIARC/////w+DIBogF358IQQgAyAEQiCIfCEDIARC/////w+DIB4gE358IQQgAyAEQiCIfCEDIARC/////w+DICIgD358IQQgAyAEQiCIfCEDIARC/////w+DIBEgJH58IQQgAyAEQiCIfCEDIARC/////w+DIBUgIH58IQQgAyAEQiCIfCEDIARC/////w+DIBkgHH58IQQgAyAEQiCIfCEDIARC/////w+DIB0gGH58IQQgAyAEQiCIfCEDIARC/////w+DICEgFH58IQQgAyAEQiCIfCEDIARC/////w+DICUgEH58IQQgAyAEQiCIfCEDIAIgBD4CBCADQiCIIQQgA0L/////D4MgEiAjfnwhAyAEIANCIIh8IQQgA0L/////D4MgFiAffnwhAyAEIANCIIh8IQQgA0L/////D4MgGiAbfnwhAyAEIANCIIh8IQQgA0L/////D4MgHiAXfnwhAyAEIANCIIh8IQQgA0L/////D4MgIiATfnwhAyAEIANCIIh8IQQgA0L/////D4MgFSAkfnwhAyAEIANCIIh8IQQgA0L/////D4MgGSAgfnwhAyAEIANCIIh8IQQgA0L/////D4MgHSAcfnwhAyAEIANCIIh8IQQgA0L/////D4MgISAYfnwhAyAEIANCIIh8IQQgA0L/////D4MgJSAUfnwhAyAEIANCIIh8IQQgAiADPgIIIARCIIghAyAEQv////8PgyAWICN+fCEEIAMgBEIgiHwhAyAEQv////8PgyAaIB9+fCEEIAMgBEIgiHwhAyAEQv////8PgyAeIBt+fCEEIAMgBEIgiHwhAyAEQv////8PgyAiIBd+fCEEIAMgBEIgiHwhAyAEQv////8PgyAZICR+fCEEIAMgBEIgiHwhAyAEQv////8PgyAdICB+fCEEIAMgBEIgiHwhAyAEQv////8PgyAhIBx+fCEEIAMgBEIgiHwhAyAEQv////8PgyAlIBh+fCEEIAMgBEIgiHwhAyACIAQ+AgwgA0IgiCEEIANC/////w+DIBogI358IQMgBCADQiCIfCEEIANC/////w+DIB4gH358IQMgBCADQiCIfCEEIANC/////w+DICIgG358IQMgBCADQiCIfCEEIANC/////w+DIB0gJH58IQMgBCADQiCIfCEEIANC/////w+DICEgIH58IQMgBCADQiCIfCEEIANC/////w+DICUgHH58IQMgBCADQiCIfCEEIAIgAz4CECAEQiCIIQMgBEL/////D4MgHiAjfnwhBCADIARCIIh8IQMgBEL/////D4MgIiAffnwhBCADIARCIIh8IQMgBEL/////D4MgISAkfnwhBCADIARCIIh8IQMgBEL/////D4MgJSAgfnwhBCADIARCIIh8IQMgAiAEPgIUIANCIIghBCADQv////8PgyAiICN+fCEDIAQgA0IgiHwhBCADQv////8PgyAlICR+fCEDIAQgA0IgiHwhBCACIAM+AhggBEIgiCEDIAIgBD4CHCADpwRAIAJBuBwgAhAsGgUgAkG4HBAqBEAgAkG4HCACECwaCwsLuyEdAX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfgF+AX4BfkL/////DyEGQgAhAkIAIQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgADUCACIHIAd+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhCCACQv////8Pg0EANQK4HCIJIAh+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIEIgp+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4NBADUCvBwiDCAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIQsgAkL/////D4MgCSALfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCCCINfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgCiAKfnwhAiADIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AsAcIg8gCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEOIAJC/////w+DIAkgDn58IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AgwiEH58IQIgAyACQiCIfCEDIAJC/////w+DIAogDX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAPIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQLEHCISIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhESACQv////8PgyAJIBF+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIQIhN+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBB+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyANIA1+fCECIAMgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCARfnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUCyBwiFSAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIRQgAkL/////D4MgCSAUfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAcgADUCFCIWfnwhAiADIAJCIIh8IQMgAkL/////D4MgCiATfnwhAiADIAJCIIh8IQMgAkL/////D4MgDSAQfnwhAiADIAJCIIh8IQMgAkL/////D4NCAYYhAiADQgGGIAJCIIh8IQMgAkL/////D4MgBEL/////D4N8IQIgAyACQiCIfCAFfCEDIAJC/////w+DIAwgFH58IQIgAyACQiCIfCEDIAJC/////w+DIA8gEX58IQIgAyACQiCIfCEDIAJC/////w+DIBIgDn58IQIgAyACQiCIfCEDIAJC/////w+DIBUgC358IQIgAyACQiCIfCEDIAJC/////w+DQQA1AswcIhggCH58IQIgAyACQiCIfCEDIAJC/////w+DIAZ+Qv////8PgyEXIAJC/////w+DIAkgF358IQIgAyACQiCIfCEDIAMhBCAEQiCIIQVCACECQgAhAyACQv////8PgyAHIAA1AhgiGX58IQIgAyACQiCIfCEDIAJC/////w+DIAogFn58IQIgAyACQiCIfCEDIAJC/////w+DIA0gE358IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBAgEH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBR+fCECIAMgAkIgiHwhAyACQv////8PgyASIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAVIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAYIAt+fCECIAMgAkIgiHwhAyACQv////8Pg0EANQLQHCIbIAh+fCECIAMgAkIgiHwhAyACQv////8PgyAGfkL/////D4MhGiACQv////8PgyAJIBp+fCECIAMgAkIgiHwhAyADIQQgBEIgiCEFQgAhAkIAIQMgAkL/////D4MgByAANQIcIhx+fCECIAMgAkIgiHwhAyACQv////8PgyAKIBl+fCECIAMgAkIgiHwhAyACQv////8PgyANIBZ+fCECIAMgAkIgiHwhAyACQv////8PgyAQIBN+fCECIAMgAkIgiHwhAyACQv////8Pg0IBhiECIANCAYYgAkIgiHwhAyACQv////8PgyAEQv////8Pg3whAiADIAJCIIh8IAV8IQMgAkL/////D4MgDCAafnwhAiADIAJCIIh8IQMgAkL/////D4MgDyAXfnwhAiADIAJCIIh8IQMgAkL/////D4MgEiAUfnwhAiADIAJCIIh8IQMgAkL/////D4MgFSARfnwhAiADIAJCIIh8IQMgAkL/////D4MgGCAOfnwhAiADIAJCIIh8IQMgAkL/////D4MgGyALfnwhAiADIAJCIIh8IQMgAkL/////D4NBADUC1BwiHiAIfnwhAiADIAJCIIh8IQMgAkL/////D4MgBn5C/////w+DIR0gAkL/////D4MgCSAdfnwhAiADIAJCIIh8IQMgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIAogHH58IQIgAyACQiCIfCEDIAJC/////w+DIA0gGX58IQIgAyACQiCIfCEDIAJC/////w+DIBAgFn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBMgE358IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAMIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAPIBp+fCECIAMgAkIgiHwhAyACQv////8PgyASIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAbIA5+fCECIAMgAkIgiHwhAyACQv////8PgyAeIAt+fCECIAMgAkIgiHwhAyABIAI+AgAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIA0gHH58IQIgAyACQiCIfCEDIAJC/////w+DIBAgGX58IQIgAyACQiCIfCEDIAJC/////w+DIBMgFn58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAPIB1+fCECIAMgAkIgiHwhAyACQv////8PgyASIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBF+fCECIAMgAkIgiHwhAyACQv////8PgyAeIA5+fCECIAMgAkIgiHwhAyABIAI+AgQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBAgHH58IQIgAyACQiCIfCEDIAJC/////w+DIBMgGX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBYgFn58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyASIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAVIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBR+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBF+fCECIAMgAkIgiHwhAyABIAI+AgggAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBMgHH58IQIgAyACQiCIfCEDIAJC/////w+DIBYgGX58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAVIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAYIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBd+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBR+fCECIAMgAkIgiHwhAyABIAI+AgwgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBYgHH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBkgGX58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAYIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAbIBp+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBd+fCECIAMgAkIgiHwhAyABIAI+AhAgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DIBkgHH58IQIgAyACQiCIfCEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAbIB1+fCECIAMgAkIgiHwhAyACQv////8PgyAeIBp+fCECIAMgAkIgiHwhAyABIAI+AhQgAyEEIARCIIghBUIAIQJCACEDIAJC/////w+DQgGGIQIgA0IBhiACQiCIfCEDIAJC/////w+DIBwgHH58IQIgAyACQiCIfCEDIAJC/////w+DIARC/////w+DfCECIAMgAkIgiHwgBXwhAyACQv////8PgyAeIB1+fCECIAMgAkIgiHwhAyABIAI+AhggAyEEIARCIIghBSABIAQ+AhwgBacEQCABQbgcIAEQLBoFIAFBuBwQKgRAIAFBuBwgARAsGgsLCwoAIAAgACABEDkLCwAgAEH4HCABEDkLFQAgAEGYIxAlQbgjECZBmCMgARA4CxEAIABB2CMQPUHYI0H4HRAqCyQAIAAQJwRAQQAPCyAAQfgjED1B+CNB+B0QKgRAQX8PC0EBDwsXACAAIAEQPSABQbgcIAEQMyABIAEQPAsJAEGYHSAAECULywEEAX8BfwF/AX8gAhAmQSAhBSAAIQMCQANAIAUgAUsNASAFQSBGBEBBmCQQQQVBmCRB+BxBmCQQOQsgA0GYJEG4JBA5IAJBuCQgAhA1IANBIGohAyAFQSBqIQUMAAsLIAFBIHAhBCAERQRADwtBuCQQJkEAIQYCQANAIAYgBEYNASAGIAMtAAA6ALgkIANBAWohAyAGQQFqIQYMAAsLIAVBIEYEQEGYJBBBBUGYJEH4HEGYJBA5C0G4JEGYJEG4JBA5IAJBuCQgAhA1CxwAIAEgAkHYJBBCQdgkQdgkEDwgAEHYJCADEDkL+AEEAX8BfwF/AX9BACgCACEFQQAgBSACQQFqQSBsajYCACAFEEEgACEGIAVBIGohBUEAIQgCQANAIAggAkYNASAGECcEQCAFQSBrIAUQJQUgBiAFQSBrIAUQOQsgBiABaiEGIAVBIGohBSAIQQFqIQgMAAsLIAYgAWshBiAFQSBrIQUgAyACQQFrIARsaiEHIAUgBRBAAkADQCAIRQ0BIAYQJwRAIAUgBUEgaxAlIAcQJgUgBUEga0H4JBAlIAUgBiAFQSBrEDkgBUH4JCAHEDkLIAYgAWshBiAHIARrIQcgBUEgayEFIAhBAWshCAwACwtBACAFNgIACz4DAX8BfwF/IAAhBCACIQVBACEDAkADQCADIAFGDQEgBCAFEDwgBEEgaiEEIAVBIGohBSADQQFqIQMMAAsLCz4DAX8BfwF/IAAhBCACIQVBACEDAkADQCADIAFGDQEgBCAFED0gBEEgaiEEIAVBIGohBSADQQFqIQMMAAsLC7ICAgF/AX8gAkUEQCADEEEPCyAAQZglECUgAxBBIAIhBAJAA0AgBEEBayEEIAEgBGotAAAhBSADIAMQOiAFQYABTwRAIAVBgAFrIQUgA0GYJSADEDkLIAMgAxA6IAVBwABPBEAgBUHAAGshBSADQZglIAMQOQsgAyADEDogBUEgTwRAIAVBIGshBSADQZglIAMQOQsgAyADEDogBUEQTwRAIAVBEGshBSADQZglIAMQOQsgAyADEDogBUEITwRAIAVBCGshBSADQZglIAMQOQsgAyADEDogBUEETwRAIAVBBGshBSADQZglIAMQOQsgAyADEDogBUECTwRAIAVBAmshBSADQZglIAMQOQsgAyADEDogBUEBTwRAIAVBAWshBSADQZglIAMQOQsgBEUNAQwACwsL3gEDAX8BfwF/IAAQJwRAIAEQJg8LQSAhAkHYHkG4JRAlIABBuB5BIEHYJRBHIABB+B5BIEH4JRBHAkADQEHYJUGYHRApDQFB2CVBmCYQOkEBIQMCQANAQZgmQZgdECkNAUGYJkGYJhA6IANBAWohAwwACwtBuCVBuCYQJSACIANrQQFrIQQCQANAIARFDQFBuCZBuCYQOiAEQQFrIQQMAAsLIAMhAkG4JkG4JRA6QdglQbglQdglEDlB+CVBuCZB+CUQOQwACwtB+CUQPgRAQfglIAEQNwVB+CUgARAlCwsgACAAECcEQEEBDwsgAEHYHUEgQdgmEEdB2CZBmB0QKQsVACAAIAFB+CYQOUH4JkH4HCACEDkLCgAgACAAIAEQSgsLACAAQbgcIAEQMwsJACAAQfgdECoLDgAgABACIABBMGoQAnELCgAgAEHgAGoQAgsNACAAEAEgAEEwahABCxUAIAAQASAAQTBqEBwgAEHgAGoQAQt6ACABIAApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggASAAKQMgNwMgIAEgACkDKDcDKCABIAApAzA3AzAgASAAKQM4NwM4IAEgACkDQDcDQCABIAApA0g3A0ggASAAKQNQNwNQIAEgACkDWDcDWAu6AQAgASAAKQMANwMAIAEgACkDCDcDCCABIAApAxA3AxAgASAAKQMYNwMYIAEgACkDIDcDICABIAApAyg3AyggASAAKQMwNwMwIAEgACkDODcDOCABIAApA0A3A0AgASAAKQNINwNIIAEgACkDUDcDUCABIAApA1g3A1ggASAAKQNgNwNgIAEgACkDaDcDaCABIAApA3A3A3AgASAAKQN4NwN4IAEgACkDgAE3A4ABIAEgACkDiAE3A4gBCxwAIAFB4ABqEBwgAEEw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EJABQcjxAEGo8gAQmQEEQEEADwtBAQ8LEQAgABCLASAAQeAAahCLAXELCwAgAEHAAWoQiwELEAAgABCNASAAQeAAahCNAQsZACAAEI0BIABB4ABqEI4BIABBwAFqEI0BC4ICACABIAApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggASAAKQMgNwMgIAEgACkDKDcDKCABIAApAzA3AzAgASAAKQM4NwM4IAEgACkDQDcDQCABIAApA0g3A0ggASAAKQNQNwNQIAEgACkDWDcDWCABIAApA2A3A2AgASAAKQNoNwNoIAEgACkDcDcDcCABIAApA3g3A3ggASAAKQOAATcDgAEgASAAKQOIATcDiAEgASAAKQOQATcDkAEgASAAKQOYATcDmAEgASAAKQOgATcDoAEgASAAKQOoATcDqAEgASAAKQOwATcDsAEgASAAKQO4ATcDuAELkgMAIAEgACkDADcDACABIAApAwg3AwggASAAKQMQNwMQIAEgACkDGDcDGCABIAApAyA3AyAgASAAKQMoNwMoIAEgACkDMDcDMCABIAApAzg3AzggASAAKQNANwNAIAEgACkDSDcDSCABIAApA1A3A1AgASAAKQNYNwNYIAEgACkDYDcDYCABIAApA2g3A2ggASAAKQNwNwNwIAEgACkDeDcDeCABIAApA4ABNwOAASABIAApA4gBNwOIASABIAApA5ABNwOQASABIAApA5gBNwOYASABIAApA6ABNwOgASABIAApA6gBNwOoASABIAApA7ABNwOwASABIAApA7gBNwO4ASABIAApA8ABNwPAASABIAApA8gBNwPIASABIAApA9ABNwPQASABIAApA9gBNwPYASABIAApA+ABNwPgASABIAApA+gBNwPoASABIAApA/ABNwPwASABIAApA/gBNwP4ASABIAApA4ACNwOAAiABIAApA4gCNwOIAiABIAApA5ACNwOQAiABIAApA5gCNwOYAgshACABQcABahCOASAAQeAAaiABQeAAahCPASAAIAEQjwELHAEBfyAAIAEQmQEgAEHgAGogAUHgAGoQmQFxDwuLAQEBfyAAQcABaiECIAAQowEEQCABEKIBDwsgARCiAQRAQQAPCyACEIwBBEAgACABEKkBDwsgAkHo8wAQkgEgAUHo8wBByPQAEJAB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BEAgASACEKcBDwsgARCjAQRAIAAgAhCnAQ8LIAMQjAEEQCABIAAgAhCvAQ8LIAQQjAEEQCAAIAEgAhCvAQ8LIANBqJkBEJIBIARBiJoBEJIBIABBiJoBQeiaARCQASABQaiZAUHImwEQkAEgA0GomQFBqJwBEJABIARBiJoBQYidARCQASAAQeAAakGInQFB6J0BEJABIAFB4ABqQaicAUHIngEQkAFB6JoBQcibARCZAQRAQeidAUHIngEQmQEEQCAAIAIQrQEPCwtByJsBQeiaAUGonwEQlAFByJ4BQeidAUGIoAEQlAFBqJ8BQaifAUHooAEQkwFB6KABQeigARCSAUGonwFB6KABQcihARCQAUGIoAFBiKABQaiiARCTAUHomgFB6KABQeijARCQAUGoogFBiKMBEJIBQeijAUHoowFByKQBEJMBQYijAUHIoQEgAhCUASACQcikASACEJQBQeidAUHIoQFBqKUBEJABQailAUGopQFBqKUBEJMBQeijASACIAJB4ABqEJQBIAJB4ABqQaiiASACQeAAahCQASACQeAAakGopQEgAkHgAGoQlAEgAyAEIAJBwAFqEJMBIAJBwAFqIAJBwAFqEJIBIAJBwAFqQaiZASACQcABahCUASACQcABakGImgEgAkHAAWoQlAEgAkHAAWpBqJ8BIAJBwAFqEJABCxgAIAAgARCPASAAQeAAaiABQeAAahCVAQsnACAAIAEQjwEgAEHgAGogAUHgAGoQlQEgAEHAAWogAUHAAWoQjwELFgAgAUGIpgEQsQEgAEGIpgEgAhCuAQsWACABQaioARCxASAAQaioASACEK8BCxYAIAFByKoBELIBIABByKoBIAIQsAELGAAgACABEJgBIABB4ABqIAFB4ABqEJgBCycAIAAgARCYASAAQeAAaiABQeAAahCYASAAQcABaiABQcABahCYAQsYACAAIAEQlwEgAEHgAGogAUHgAGoQlwELJwAgACABEJcBIABB4ABqIAFB4ABqEJcBIABBwAFqIAFBwAFqEJcBC14AIAAQowEEQCABEI0BIAFB4ABqEI0BBSAAQcABakHorAEQmgFB6KwBQcitARCSAUHorAFByK0BQaiuARCQASAAQcitASABEJABIABB4ABqQaiuASABQeAAahCQAQsLvgEFAX8BfwF/AX8Bf0EAKAIA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aiAAIARBoAJqEPYBIARBoAJqIAFBqJMDIARBoAJqEJsCIARBoAJqQeiOAyAEQaACahD3ASAEQaACakGIkQMgBEGgAmoQ9wFBiJEDIAQQ8wEgBCAEEIICIARB6I4DIAQQ9gELUAAgASAAQTBqQYiUAxAUIAFBMGogAEEwakG4lAMQFCABQeAAaiAAQeiUAxAUIAFBkAFqIABBmJUDEBQgAiABQcABakHolANBiJQDIAIQnAILbAAgAEHItwQgARCQASAAQeAAakGouAQgAUHgAGoQkAEgAEHAAWpBiLkEIAFBwAFqEJABIABBoAJqQei5BCABQaACahCQASAAQYADakHIugQgAUGAA2oQkAEgAEHgA2pBqLsEIAFB4ANqEJABC4oCACAAIAEQACAAQTBqIAFBMGoQEiABQYi8BCABEJABIABB4ABqIAFB4ABqEAAgAEGQAWogAUGQAWoQEiABQeAAakHovAQgAUHgAGoQkAEgAEHAAWogAUHAAWoQACAAQfABaiABQfABahASIAFBwAFqQci9BCABQcABahCQASAAQaACaiABQaACahAAIABB0AJqIAFB0AJqEBIgAUGgAmpBqL4EIAFBoAJqEJABIABBgANqIAFBgANqEAAgAEGwA2ogAUGwA2oQEiABQYADakGIvwQgAUGAA2oQkAEgAEHgA2ogAUHgA2oQACAAQZAEaiABQZAEahASIAFB4ANqQei/BCABQeADahCQAQtsACAAQcjABCABEJABIABB4ABqQajBBCABQeAAahCQASAAQcABakGIwgQgAUHAAWoQkAEgAEGgAmpB6MIEIAFBoAJqEJABIABBgANqQcjDBCABQYADahCQASAAQeADakGoxAQgAUHgA2oQkAELigIAIAAgARAAIABBMGogAUEwahASIAFBiMUEIAEQkAEgAEHgAGogAUHgAGoQACAAQZABaiABQZABahASIAFB4ABqQejFBCABQeAAahCQASAAQcABaiABQcABahAAIABB8AFqIAFB8AFqEBIgAUHAAWpByMYEIAFBwAFqEJABIABBoAJqIAFBoAJqEAAgAEHQAmogAUHQAmoQEiABQaACakGoxwQgAUGgAmoQkAEgAEGAA2ogAUGAA2oQACAAQbADaiABQbADahASIAFBgANqQYjIBCABQYADahCQASAAQeADaiABQeADahAAIABBkARqIAFBkARqEBIgAUHgA2pB6MgEIAFB4ANqEJABC2wAIABByMkEIAEQkAEgAEHgAGpBqMoEIAFB4ABqEJABIABBwAFqQYjLBCABQcABahCQASAAQaACakHoywQgAUGgAmoQkAEgAEGAA2pByMwEIAFBgANqEJABIABB4ANqQajNBCABQeADahCQAQuKAgAgACABEAAgAEEwaiABQTBqEBIgAUGIzgQgARCQASAAQeAAaiABQeAAahAAIABBkAFqIAFBkAFqEBIgAUHgAGpB6M4EIAFB4ABqEJABIABBwAFqIAFBwAFqEAAgAEHwAWogAUHwAWoQEiABQcABakHIzwQgAUHAAWoQkAEgAEGgAmogAUGgAmoQACAAQdACaiABQdACahASIAFBoAJqQajQBCABQaACahCQASAAQYADaiABQYADahAAIABBsANqIAFBsANqEBIgAUGAA2pBiNEEIAFBgANqEJABIABB4ANqIAFB4ANqEAAgAEGQBGogAUGQBGoQEiABQeADakHo0QQgAUHgA2oQkAELbAAgAEHI0gQgARCQASAAQeAAakGo0wQgAUHgAGoQkAEgAEHAAWpBiNQEIAFBwAFqEJABIABBoAJqQejUBCABQaACahCQASAAQYADakHI1QQgAUGAA2oQkAEgAEHgA2pBqNYEIAFB4ANqEJABC4oCACAAIAEQACAAQTBqIAFBMGoQEiABQYjXBCABEJABIABB4ABqIAFB4ABqEAAgAEGQAWogAUGQAWoQEiABQeAAakHo1wQgAUHgAGoQkAEgAEHAAWogAUHAAWoQACAAQfABaiABQfABahASIAFBwAFqQcjYBCABQcABahCQASAAQaACaiABQaACahAAIABB0AJqIAFB0AJqEBIgAUGgAmpBqNkEIAFBoAJqEJABIABBgANqIAFBgANqEAAgAEGwA2ogAUGwA2oQEiABQYADakGI2gQgAUGAA2oQkAEgAEHgA2ogAUHgA2oQACAAQZAEaiABQZAEahASIAFB4ANqQejaBCABQeADahCQAQtsACAAQcjbBCABEJABIABB4ABqQajcBCABQeAAahCQASAAQcABakGI3QQgAUHAAWoQkAEgAEGgAmpB6N0EIAFBoAJqEJABIABBgANqQcjeBCABQYADahCQASAAQeADakGo3wQgAUHgA2oQkAELigIAIAAgARAAIABBMGogAUEwahASIAFBiOAEIAEQkAEgAEHgAGogAUHgAGoQACAAQZABaiABQZABahASIAFB4ABqQejgBCABQeAAahCQASAAQcABaiABQcABahAAIABB8AFqIAFB8AFqEBIgAUHAAWpByOEEIAFBwAFqEJABIABBoAJqIAFBoAJqEAAgAEHQAmogAUHQAmoQEiABQaACakGo4gQgAUGgAmoQkAEgAEGAA2ogAUGAA2oQACAAQbADaiABQbADahASIAFBgANqQYjjBCABQYADahCQASAAQeADaiABQeADahAAIABBkARqIAFBkARqEBIgAUHgA2pB6OMEIAFB4ANqEJABC9gEACAAQcABakHI5AQQkgEgAUHgAGpBqOUEEJIBQcjkBCABQejmBBCQASABQeAAaiAAQcABaiACQeAAahCTASACQeAAaiACQeAAahCSASACQeAAakGo5QQgAkHgAGoQlAEgAkHgAGpByOQEIAJB4ABqEJQBIAJB4ABqQcjkBCACQeAAahCQAUHo5gQgAEHI5wQQlAFByOcEQajoBBCSAUGo6ARBqOgEQYjpBBCTAUGI6QRBiOkEQYjpBBCTAUGI6QRByOcEQejpBBCQASACQeAAaiAAQeAAakHI6gQQlAFByOoEIABB4ABqQcjqBBCUAUHI6gQgASACQcABahCQAUGI6QQgAEGo6wQQkAFByOoEIAAQkgEgAEHo6QQgABCUASAAQajrBCAAEJQBIABBqOsEIAAQlAEgAEHAAWpByOcEIABBwAFqEJMBIABBwAFqIABBwAFqEJIBIABBwAFqQcjkBCAAQcABahCUASAAQcABakGo6AQgAEHAAWoQlAEgAUHgAGogAEHAAWogAhCTAUGo6wQgAEGI7AQQlAFBiOwEQcjqBEGI7AQQkAEgAEHgAGpB6OkEQejmBBCQAUHo5gRB6OYEQejmBBCTAUGI7ARB6OYEIABB4ABqEJQBIAIgAhCSASACQajlBCACEJQBIABBwAFqQYjmBBCSASACQYjmBCACEJQBIAJBwAFqIAJBwAFqIAJBwAFqEJMBIAJBwAFqIAIgAkHAAWoQlAEgAEHAAWogAEHAAWogAhCTAUHI6gRByOoEEJUBQcjqBEHI6gQgAkHgAGoQkwELsgQAIAAgARCSASAAQeAAakHI7QQQkgFByO0EQajuBBCSAUHI7QQgACABQeAAahCTASABQeAAaiABQeAAahCSASABQeAAaiABIAFB4ABqEJQBIAFB4ABqQajuBCABQeAAahCUASABQeAAaiABQeAAaiABQeAAahCTASABIAFBiO8EEJMBQYjvBCABQYjvBBCTASAAQYjvBCABQcABahCTAUGI7wRB6O8EEJIBIABBwAFqQejsBBCSAUHo7wQgAUHgAGogABCUASAAIAFB4ABqIAAQlAEgAEHAAWogAEHgAGogAEHAAWoQkwEgAEHAAWogAEHAAWoQkgEgAEHAAWpByO0EIABBwAFqEJQBIABBwAFqQejsBCAAQcABahCUASABQeAAaiAAIABB4ABqEJQBIABB4ABqQYjvBCAAQeAAahCQAUGo7gRBqO4EQajuBBCTAUGo7gRBqO4EQajuBBCTAUGo7gRBqO4EQajuBBCTASAAQeAAakGo7gQgAEHgAGoQlAFBiO8EQejsBCABQeAAahCQASABQeAAaiABQeAAaiABQeAAahCTASABQeAAaiABQeAAahCVASABQcABaiABQcABahCSASABQcABaiABIAFBwAFqEJQBIAFBwAFqQejvBCABQcABahCUAUHI7QRByO0EQcjtBBCTAUHI7QRByO0EQcjtBBCTASABQcABakHI7QQgAUHAAWoQlAEgAEHAAWpB6OwEIAEQkAEgASABIAEQkwELCAAgACABEGgLbQIBfwF/IAAgARC8ASABEKMBBEAPCyABQcjwBBCnASABQaACaiECQT4hAwJAA0BByPAEIAIQqQIgAkGgAmohAiADLADoiQMEQEHI8AQgASACEKgCIAJBoAJqIQILIANFDQEgA0EBayEDDAALCwuAAQIBfwF/IAIQhgIgABBPBEAPCyABEE8EQA8LIAFBoAJqIQNBPiEEAkADQCAAIAMgAhCdAiADQaACaiEDIAQsAOiJAwRAIAAgAyACEJ0CIANBoAJqIQMLIAIgAhCKAiAEQQFGDQEgBEEBayEEDAALCyAAIAMgAhCdAiACIAIQjgILEAAgAEHo8gRBoAQgARCXAgvsBQAgACAAQYADakHI+wQQkAEgAEGAA2pBiPcEEO4BIABBiPcEQYj3BBCTASAAIABBgANqQaj8BBCTAUGo/ARBiPcEQYj3BBCQAUHI+wRBqPwEEO4BQcj7BEGo/ARBqPwEEJMBQYj3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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAA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GP////8AAAAAAaQBAP1bQqz6J1729yfGzLeCYtasWBIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAA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",pq:760,pr:3640,pG1gen:33752,pG1zero:33896,pG1b:5016,pG2gen:34040,pG2zero:34328,pG2b:14728,pOneT:34616,prePSize:288,preQSize:20448,n8q:48,n8r:32,q:"4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787",r:"52435875175126190479447740508185965837690552500527637822603658699938581184513"}};var SA=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const g={};return Object.keys(I).forEach(C=>{g[C]=A(I[C])}),g}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return BigInt(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){if(null===I)return null;const g={};return Object.keys(I).forEach(C=>{g[C]=A(I[C])}),g}return I},beBuff2int:function(A){let I=0n,g=A.length,C=0;const Q=new DataView(A.buffer);for(;g>0;)g>=4?(g-=4,I+=BigInt(Q.getUint32(g))<=2?(g-=2,I+=BigInt(Q.getUint16(g))<0;)t-4>=0?(t-=4,Q.setUint32(t,Number(0xFFFFFFFFn&g)),g>>=32n):t-2>=0?(t-=2,Q.setUint16(t,Number(0xFFFFn&g)),g>>=16n):(t-=1,Q.setUint8(t,Number(0xFFn&g)),g>>=8n);if(g)throw new Error("Number does not fit in this length");return C},leBuff2int:function(A){let I=0n,g=0;const C=new DataView(A.buffer);for(;g>=32n):t+2<=I?(C.setUint16(Number(t,0xFFFFn&g),!0),t+=2,g>>=16n):(C.setUint8(Number(t,0xFFn&g),!0),t+=1,g>>=8n);if(g)throw new Error("Number does not fit in this length");return C}});var RA=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const g={};return Object.keys(I).forEach(C=>{g[C]=A(I[C])}),g}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return n(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const g={};return Object.keys(I).forEach(C=>{g[C]=A(I[C])}),g}return I},beBuff2int:function(A){let I=n.zero;for(let g=0;g=0;){let A=Number(g.and(n("255")));Q[C]=A,C--,g=g.shiftRight(8)}if(!g.eq(n.zero))throw new Error("Number does not fit in this length");return Q},leBuff2int:function(A){let I=n.zero;for(let g=0;g>=1;return g}bA.bitReverse=function(A,I){return(vA[A>>>24]|vA[A>>>16&255]<<8|vA[A>>>8&255]<<16|vA[255&A]<<24)>>>32-I},bA.log2=function(A){return(0!=(4294901760&A)?(A&=4294901760,16):0)|(0!=(4278255360&A)?(A&=4278255360,8):0)|(0!=(4042322160&A)?(A&=4042322160,4):0)|(0!=(3435973836&A)?(A&=3435973836,2):0)|0!=(2863311530&A)},bA.buffReverseBits=function(A,I){const g=A.byteLength/I,C=bA.log2(g);if(g!=1<g){const C=A.slice(Q*I,(Q+1)*I);A.set(A.slice(g*I,(g+1)*I),Q*I),A.set(C,g*I)}}};let{bitReverse:PA,log2:qA,buffReverseBits:xA,stringifyBigInts:XA,unstringifyBigInts:ZA,beBuff2int:KA,beInt2Buff:VA,leBuff2int:OA,leInt2Buff:jA}=bA;var WA=Object.freeze({__proto__:null,bitReverse:PA,log2:qA,buffReverseBits:xA,stringifyBigInts:XA,unstringifyBigInts:ZA,beBuff2int:KA,beInt2Buff:VA,leBuff2int:OA,leInt2Buff:jA});function zA(A,I,g,C){return async function(Q){const t=Math.floor(Q.byteLength/g);if(t*g!==Q.byteLength)throw new Error("Invalid buffer size");const i=Math.floor(t/A.concurrency),B=[];for(let E=0;E=0;A--)this.w[A]=this.square(this.w[A+1]);if(!this.eq(this.w[0],this.one))throw new Error("Error calculating roots of unity");this.batchToMontgomery=zA(A,I+"_batchToMontgomery",this.n8,this.n8),this.batchFromMontgomery=zA(A,I+"_batchFromMontgomery",this.n8,this.n8)}op2(A,I,g){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,g),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(A,I,g){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,g),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}add(A,I){return this.op2("_add",A,I)}eq(A,I){return this.op2Bool("_eq",A,I)}isZero(A){return this.op1Bool("_isZero",A)}sub(A,I){return this.op2("_sub",A,I)}neg(A){return this.op1("_neg",A)}inv(A){return this.op1("_inverse",A)}toMontgomery(A){return this.op1("_toMontgomery",A)}fromMontgomery(A){return this.op1("_fromMontgomery",A)}mul(A,I){return this.op2("_mul",A,I)}div(A,I){return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(A){return this.op1("_square",A)}isSquare(A){return this.op1Bool("_isSquare",A)}sqrt(A){return this.op1("_sqrt",A)}exp(A,I){return I instanceof Uint8Array||(I=p(d(I))),this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}isNegative(A){return this.op1Bool("_isNegative",A)}e(A,I){if(A instanceof Uint8Array)return A;let g=d(A,I);k(g)?(g=K(g),gA(g,this.p)&&(g=_(g,this.p)),g=Z(this.p,g)):gA(g,this.p)&&(g=_(g,this.p));const C=jA(g,this.n8);return this.toMontgomery(C)}toString(A,I){const g=this.fromMontgomery(A),C=M(g,0);return l(C,I)}fromRng(A){let I;const g=new Uint8Array(this.n8);do{I=H;for(let g=0;gg.buffer.byteLength;)g.grow(100);return I}function B(A){const I=i(A.byteLength);return E(I,A),I}function E(A,I){Q.set(new Uint8Array(I),A)}function e(A){if("INIT"==A[0].cmd)return t(A[0]);const g={vars:[],out:[]},e=C[0];for(let C=0;C{this.reject=I,this.resolve=A})}}function tI(A){for(var I=window.atob(A),g=I.length,C=new Uint8Array(g),Q=0;Q0;A++)if(0==this.working[A]){const I=this.actionQueue.shift();this.postAction(A,I.data,I.transfers,I.deferred)}}queueAction(A,I){const g=new QI;if(this.singleThread){const I=this.taskManager(A);g.resolve(I)}else this.actionQueue.push({data:A,transfers:I,deferred:g}),this.processWorks();return g.promise}resetMemory(){this.u32[0]=this.initalPFree}allocBuff(A){const I=this.alloc(A.byteLength);return this.setBuff(I,A),I}getBuff(A,I){return this.u8.slice(A,A+I)}setBuff(A,I){this.u8.set(new Uint8Array(I),A)}alloc(A){for(;3&this.u32[0];)this.u32[0]++;const I=this.u32[0];return this.u32[0]+=A,I}async terminate(){for(let A=0;AsetTimeout(I,A)))}}function BI(A,I){const g=A[I],C=A.Fr,Q=A.tm;A[I].batchApplyKey=async function(A,t,i,B,E){let e,n,h,o,a;if(B=B||"affine",E=E||"affine","G1"==I)"jacobian"==B?(h=3*g.F.n8,e="g1m_batchApplyKey"):(h=2*g.F.n8,e="g1m_batchApplyKeyMixed"),o=3*g.F.n8,"jacobian"==E?a=3*g.F.n8:(n="g1m_batchToAffine",a=2*g.F.n8);else if("G2"==I)"jacobian"==B?(h=3*g.F.n8,e="g2m_batchApplyKey"):(h=2*g.F.n8,e="g2m_batchApplyKeyMixed"),o=3*g.F.n8,"jacobian"==E?a=3*g.F.n8:(n="g2m_batchToAffine",a=2*g.F.n8);else{if("Fr"!=I)throw new Error("Invalid group: "+I);e="frm_batchApplyKey",h=g.n8,o=g.n8,a=g.n8}const r=Math.floor(A.byteLength/h),s=Math.floor(r/Q.concurrency),w=[];i=C.e(i);let f=C.e(t);for(let I=0;I=0;A--){if(!g.isZero(a))for(let A=0;A(e&&e.debug(`fft: ${A}/${B}`),I)))}A=await Promise.all(E);for(let I=0;I0;I--)u.set(A[I],C),C+=g,delete A[I];u.set(A[0].slice(0,(I-1)*o),C),delete A[B-1]}}return c?A.buffer2array(u,o):u}g.fft=async function(A,I,g,C){return await t(A,!1,I,g,C)},g.ifft=async function(A,I,g,C){return await t(A,!0,I,g,C)},g.fftMix=async function(A){const t=3*g.F.n8;let i,B;if("G1"==I)i="g1m_fftMix",B="g1m_fftJoin";else if("G2"==I)i="g2m_fftMix",B="g2m_fftJoin";else{if("Fr"!=I)throw new Error("Invalid group");i="frm_fftMix",B="frm_fftJoin"}const E=Math.floor(A.byteLength/t),e=qA(E);let n=1<=0;A--)a.set(o[A][0],r),r+=o[A][0].byteLength;return a}}async function hI(A){const I=await async function(A,I){const g=new iI;g.memory=new WebAssembly.Memory({initial:4096}),g.u8=new Uint8Array(g.memory.buffer),g.u32=new Uint32Array(g.memory.buffer);const C=await WebAssembly.compile(tI(A.code));if(g.instance=await WebAssembly.instantiate(C,{env:{memory:g.memory}}),g.singleThread=I,g.initalPFree=g.u32[0],g.pq=A.pq,g.pr=A.pr,g.pG1gen=A.pG1gen,g.pG1zero=A.pG1zero,g.pG2gen=A.pG2gen,g.pG2zero=A.pG2zero,g.pOneT=A.pOneT,I)g.code=tI(A.code),g.taskManager=II(),await g.taskManager([{cmd:"INIT",init:4096,code:g.code.slice()}]),g.concurrency=1;else{let I;g.workers=[],g.pendingDeferreds=[],g.working=[],I="object"==typeof navigator&&navigator.hardwareConcurrency?navigator.hardwareConcurrency:lA.cpus().length,g.concurrency=I;for(let A=0;A=0;)this.w[Q]=this.F.square(this.w[Q+1]),this.wi[Q]=this.F.square(this.wi[Q+1]),Q--;this.roots=[],this._setRoots(15)}_setRoots(A){for(let I=A;I>=0&&!this.roots[I];I--){let A=this.F.one;const g=1<A.length&&([I,A]=[A,I]),I.length<=2||I.length0){return new Array(I).fill(this.F.zero).concat(A)}return-I>=A.length?[]:A.slice(-I)}eval2(A,I){let g=this.F.zero,C=this.F.one;for(let Q=0;Q>1),g.mul(C,A(I,B,Q+t,t<<1,i>>1)))}(this.extend(A,C),I,0,1,C)}lagrange(A){let I=[this.F.one];for(let g=0;g>1,i=this._fft(A,I-1,g,2*C),B=this._fft(A,I-1,g+C,2*C),E=new Array(Q);let e=this.F.one;for(let A=0;A0&&this.F.eq(A[I],this.F.zero);)I--;return A.slice(0,I+1)}eq(A,I){const g=this.reduce(A),C=this.reduce(I);if(g.length!=C.length)return!1;for(let A=0;A=0;C--)g[C]=this.F.add(this.F.mul(g[C+1],I),A[C+1]);return g}_next2Power(A){return A--,A|=A>>1,A|=A>>2,A|=A>>4,A|=A>>8,A|=A>>16,++A}toString(A){let I="";for(let g=this.normalize(A).length-1;g>=0;g--)this.F.eq(A[g],this.F.zero)||(""!=I&&(I+=" + "),I+=A[g].toString(10),g>0&&(I+="x",g>1&&(I=I+"^"+g)));return I}normalize(A){const I=new Array(A.length);for(let g=0;g2*i&&(e=this.sub(this.scaleX([this.F.one],2*i),this.mul(E,t)));let n,h,o=[],a=Q,r=!1;for(;!r;)n=this.mul(a,E),o=this.add(o,this.scaleX(n,-2*i)),B>2*i?(h=this.mul(a,e),a=this.scaleX(h,-2*i),B=a.length-1):r=!0;return o}oneRoot(A,I){let g=oA(A-1)+1,C=this.F.one,Q=I;if(I>=A)throw new Error("Given 'i' should be lower than 'n'");if(1<0;)!0&Q&&(C=this.F.mul(C,this.w[g])),Q>>=1,g--;return C}computeVanishingPolinomial(A,I){const g=1<=0;Q--)if(g.eq(A[I[Q]][2],g.zero))C[Q]=C[Q+1],A[I[Q]]=this.zero;else{const t=g.mul(C[Q],C[Q+1]);C[Q]=g.mul(A[I[Q]][2],C[Q+1]);const i=g.square(t),B=g.mul(i,t);A[I[Q]][0]=g.mul(A[I[Q]][0],i),A[I[Q]][1]=g.mul(A[I[Q]][1],B),A[I[Q]][2]=g.one}}eq(A,I){const g=this.F;if(this.F.eq(A[2],this.F.zero))return this.F.eq(I[2],this.F.zero);if(this.F.eq(I[2],this.F.zero))return!1;const C=g.square(A[2]),Q=g.square(I[2]),t=g.mul(A[0],Q),i=g.mul(I[0],C),B=g.mul(A[2],C),E=g.mul(I[2],Q),e=g.mul(A[1],E),n=g.mul(I[1],B);return g.eq(t,i)&&g.eq(e,n)}isZero(A){return this.F.isZero(A[2])}toString(A){const I=this.affine(A);return`[ ${this.F.toString(I[0])} , ${this.F.toString(I[1])} ]`}fromRng(A){const I=this.F;let g,C=[];do{C[0]=I.fromRng(A),g=A.nextBool();const Q=I.add(I.mul(I.square(C[0]),C[0]),this.b);C[1]=I.sqrt(Q)}while(null==C[1]||I.isZero[C]);return g^NA(I,C[1])&&(C[1]=I.neg(C[1])),C[2]=I.one,this.cofactor&&(C=this.mulScalar(C,this.cofactor)),C=this.affine(C),C}toRprLE(A,I,g){if(g=this.affine(g),this.isZero(g)){new Uint8Array(A,I,2*this.F.n8).fill(0)}else this.F.toRprLE(A,I,g[0]),this.F.toRprLE(A,I+this.F.n8,g[1])}toRprBE(A,I,g){if(g=this.affine(g),this.isZero(g)){new Uint8Array(A,I,2*this.F.n8).fill(0)}else this.F.toRprBE(A,I,g[0]),this.F.toRprBE(A,I+this.F.n8,g[1])}toRprLEM(A,I,g){if(g=this.affine(g),this.isZero(g)){new Uint8Array(A,I,2*this.F.n8).fill(0)}else this.F.toRprLEM(A,I,g[0]),this.F.toRprLEM(A,I+this.F.n8,g[1])}toRprLEJM(A,I,g){if(g=this.affine(g),this.isZero(g)){new Uint8Array(A,I,2*this.F.n8).fill(0)}else this.F.toRprLEM(A,I,g[0]),this.F.toRprLEM(A,I+this.F.n8,g[1]),this.F.toRprLEM(A,I+2*this.F.n8,g[2])}toRprBEM(A,I,g){if(g=this.affine(g),this.isZero(g)){new Uint8Array(A,I,2*this.F.n8).fill(0)}else this.F.toRprBEM(A,I,g[0]),this.F.toRprBEM(A,I+this.F.n8,g[1])}fromRprLE(A,I){I=I||0;const g=this.F.fromRprLE(A,I),C=this.F.fromRprLE(A,I+this.F.n8);return this.F.isZero(g)&&this.F.isZero(C)?this.zero:[g,C,this.F.one]}fromRprBE(A,I){I=I||0;const g=this.F.fromRprBE(A,I),C=this.F.fromRprBE(A,I+this.F.n8);return this.F.isZero(g)&&this.F.isZero(C)?this.zero:[g,C,this.F.one]}fromRprLEM(A,I){I=I||0;const g=this.F.fromRprLEM(A,I),C=this.F.fromRprLEM(A,I+this.F.n8);return this.F.isZero(g)&&this.F.isZero(C)?this.zero:[g,C,this.F.one]}fromRprLEJM(A,I){I=I||0;const g=this.F.fromRprLEM(A,I),C=this.F.fromRprLEM(A,I+this.F.n8),Q=this.F.fromRprLEM(A,I+2*this.F.n8);return this.F.isZero(g)&&this.F.isZero(C)?this.zero:[g,C,Q]}fromRprBEM(A,I){I=I||0;const g=this.F.fromRprBEM(A,I),C=this.F.fromRprBEM(A,I+this.F.n8);return this.F.isZero(g)&&this.F.isZero(C)?this.zero:[g,C,this.F.one]}fromRprCompressed(A,I){const g=this.F,C=new Uint8Array(A.buffer,I,g.n8);if(64&C[0])return this.zero;const Q=new Array(3),t=0!=(128&C[0]);C[0]=127&C[0],Q[0]=g.fromRprBE(A,I),t&&(C[0]=128|C[0]);const i=g.add(g.mul(g.square(Q[0]),Q[0]),this.b);if(Q[1]=g.sqrt(i),null===Q[1])throw new Error("Invalid Point!");return t^NA(g,Q[1])&&(Q[1]=g.neg(Q[1])),Q[2]=g.one,Q}toRprCompressed(A,I,g){g=this.affine(g);const C=new Uint8Array(A.buffer,I,this.F.n8);if(this.isZero(g))return C.fill(0),void(C[0]=64);this.F.toRprBE(A,I,g[0]),NA(this.F,g[1])&&(C[0]=128|C[0])}fromRprUncompressed(A,I){return 64&A[0]?this.zero:this.fromRprBE(A,I)}toRprUncompressed(A,I,g){this.toRprBE(A,I,g),this.isZero(g)&&(A[I]=64|A[I])}},buildBn128:rI,buildBls12381:sI,ChaCha:uA});async function cI(A,I,g){if(g=g||262144,["w+","wx+","r","ax+","a+"].indexOf(I)<0)throw new Error("Invalid open option");const C=await lA.promises.open(A,I),Q=await C.stat();return new lI(C,Q,g,A)}const yI=new Uint8Array(4),FI=new DataView(yI.buffer),MI=new Uint8Array(8),uI=new DataView(MI.buffer);class lI{constructor(A,I,g,C){for(this.fileName=C,this.fd=A,this.pos=0,this.pageBits=8,this.pageSize=1<{I.pendingLoads.push({page:A,resolve:g,reject:C}),setImmediate(I._triggerLoad.bind(I))})}_triggerLoad(){const A=this;if(function(){const I=[];for(let g=0;g=A.maxPagesLoaded){const I=function(){for(let I in A.pages){const g=A.pages[I];if(0==g.dirty&&0==g.pendingOps)return I}return-1}();if(I<0)return;delete A.pages[I]}const I=A.pendingLoads.shift();if(I.page>=A.totalPages)return A.pages[I.page]={dirty:!1,buff:new Uint8Array(A.pageSize),pendingOps:1,size:0},I.resolve(),void setImmediate(A._triggerLoad.bind(A));if(A.reading)return void A.pendingLoads.unshift(I);A.reading=!0;const g={dirty:!1,buff:new Uint8Array(A.pageSize),pendingOps:1,size:0};A.fd.read(g.buff,0,A.pageSize,I.page*A.pageSize).then(C=>{g.size=C.bytesRead,A.pages[I.page]=g,A.reading=!1,I.resolve(),setImmediate(A._triggerLoad.bind(A))},A=>{I.reject(A)})}_triggerWrite(){const A=this;if(A.writing)return;const I=A._getDirtyPage();I<0?A.pendingClose&&A.pendingClose():(A.writing=!0,A.pages[I].dirty=!1,A.fd.write(A.pages[I].buff,0,A.pages[I].size,I*A.pageSize).then(()=>{A.writing=!1,setImmediate(A._triggerWrite.bind(A)),setImmediate(A._triggerLoad.bind(A))},I=>{console.log("ERROR Writing: "+I),A.error=I,A._tryClose()}))}_getDirtyPage(){for(let A in this.pages)if(this.pages[A].dirty)return A;return-1}async write(A,I){if(0==A.byteLength)return;const g=this;if(void 0===I&&(I=g.pos),g.pos=I+A.byteLength,g.totalSize0;){await g._loadPage(Q);const I=t+i>g.pageSize?g.pageSize-t:i,C=new Uint8Array(A.buffer,A.byteLength-i,I);new Uint8Array(g.pages[Q].buff.buffer,t,I).set(C),g.pages[Q].dirty=!0,g.pages[Q].pendingOps--,g.pages[Q].size=Math.max(t+I,g.pages[Q].size),Q>=g.totalPages&&(g.totalPages=Q+1),i-=I,Q++,t=0,setImmediate(g._triggerWrite.bind(g))}}async read(A,I){if(0==A)return new Uint8Array(0);const g=this;if(A>g.pageSize*g.maxPagesLoaded*.8){const I=Math.floor(1.1*A);this.maxPagesLoaded=Math.floor(I/g.pageSize)+1}if(void 0===I&&(I=g.pos),g.pos=I+A,g.pendingClose)throw new Error("Reading a closing file");const C=Math.floor(I/g.pageSize),Q=Math.floor((I+A-1)/g.pageSize);for(let A=C;A<=Q;A++)await g._loadPage(A);let t=new Uint8Array(A),i=new Uint8Array(t),B=C,E=I%g.pageSize,e=I+A>g.totalSize?A-(I+A-g.totalSize):A;for(;e>0;){const A=E+e>g.pageSize?g.pageSize-E:e,I=new Uint8Array(g.pages[B].buff.buffer,E,A);t.set(I,i.byteLength-e),g.pages[B].pendingOps--,e-=A,B++,E=0}return setImmediate(g._triggerLoad.bind(g)),t}_tryClose(){const A=this;if(!A.pendingClose)return;A.error&&A.pendingCloseReject(A.error);A._getDirtyPage()>=0||A.writing||A.reading||A.pendingLoads.length>0||A.pendingClose()}close(){const A=this;if(A.pendingClose)throw new Error("Closing the file twice");return new Promise((I,g)=>{A.pendingClose=I,A.pendingCloseReject=g,A._tryClose()}).then(()=>{A.fd.close()},I=>{throw A.fd.close(),I})}async discard(){await this.close(),await lA.promises.unlink(this.fileName)}async writeULE32(A,I){FI.setUint32(0,A,!0),await this.write(yI,I)}async writeUBE32(A,I){FI.setUint32(0,A,!1),await this.write(yI,I)}async writeULE64(A,I){uI.setUint32(0,4294967295&A,!0),uI.setUint32(4,Math.floor(A/4294967296),!0),await this.write(MI,I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),g=new Uint32Array(I.buffer);return 4294967296*g[1]+g[0]}}const pI=new Uint8Array(4),HI=new DataView(pI.buffer),GI=new Uint8Array(8),UI=new DataView(GI.buffer);class dI{constructor(){this.pageSize=16384}_resizeIfNeeded(A){if(A>this.allocSize){const I=Math.max(this.allocSize+(1<<20),Math.floor(1.1*this.allocSize),A),g=new Uint8Array(I);g.set(this.o.data),this.o.data=g,this.allocSize=I}}async write(A,I){if(void 0===I&&(I=this.pos),this.readOnly)throw new Error("Writing a read only file");this._resizeIfNeeded(I+A.byteLength),this.o.data.set(A,I),I+A.byteLength>this.totalSize&&(this.totalSize=I+A.byteLength),this.pos=I+A.byteLength}async read(A,I){if(void 0===I&&(I=this.pos),this.readOnly&&I+A>this.totalSize)throw new Error("Reading out of bounds");this._resizeIfNeeded(I+A);const g=this.o.data.slice(I,I+A);return this.pos=I+A,g}close(){this.o.data.byteLength!=this.totalSize&&(this.o.data=this.o.data.slice(0,this.totalSize))}async discard(){}async writeULE32(A,I){HI.setUint32(0,A,!0),await this.write(pI,I)}async writeUBE32(A,I){HI.setUint32(0,A,!1),await this.write(pI,I)}async writeULE64(A,I){UI.setUint32(0,4294967295&A,!0),UI.setUint32(4,Math.floor(A/4294967296),!0),await this.write(GI,I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),g=new Uint32Array(I.buffer);return 4294967296*g[1]+g[0]}}async function LI(A,I){if("string"==typeof A&&(A={type:"file",fileName:A,cacheSize:I}),"file"==A.type)return await cI(A.fileName,"w+",A.cacheSize);if("mem"==A.type)return function(A){const I=A.initialSize||1<<20,g=new dI;return g.o=A,g.o.data=new Uint8Array(I),g.allocSize=I,g.totalSize=0,g.readOnly=!1,g.pos=0,g}(A);throw new Error("Invalid FastFile type: "+A.type)}async function mI(A,I){if(A instanceof Uint8Array&&(A={type:"mem",data:A}),"string"==typeof A){A={type:"mem",data:await fetch(A).then((function(A){return A.arrayBuffer()})).then((function(A){return new Uint8Array(A)}))}}if("file"==A.type)return await cI(A.fileName,"r",A.cacheSize);if("mem"==A.type)return await function(A){const I=new dI;return I.o=A,I.allocSize=A.data.byteLength,I.totalSize=A.data.byteLength,I.readOnly=!0,I.pos=0,I}(A);throw new Error("Invalid FastFile type: "+A.type)}async function kI(A,I,g){const C=await mI(A),Q=await C.read(4);let t="";for(let A=0;A<4;A++)t+=String.fromCharCode(Q[A]);if(t!=I)throw new Error(A+": Invalid File format");if(await C.readULE32()>g)throw new Error("Version not supported");const i=await C.readULE32();let B=[];for(let A=0;A1)throw new Error(A.fileName+": Section Duplicated "+g);A.pos=I[g][0].p,A.readingSection=I[g][0]}async function bI(A,I){if(void 0===A.readingSection)throw new Error("Not reading a section");if(!I&&A.pos-A.readingSection.p!=A.readingSection.size)throw new Error("Invalid section size reading");delete A.readingSection}async function vI(A,I,g,C){const Q=new Uint8Array(g);wI.toRprLE(Q,0,I,g),await A.write(Q,C)}async function YI(A,I,g){const C=await A.read(I,g);return wI.fromRprLE(C,0,I)}async function PI(A,I,g,C){const Q=A.pageSize;await RI(A,I,C),await JI(g,C);for(let t=0;t=Q,"digestLength must be at least "+Q+", was given "+A),VI(A<=t,"digestLength must be at most "+t+", was given "+A),null!=h&&(VI(h instanceof Uint8Array,"key must be Uint8Array or Buffer"),VI(h.length>=i,"key must be at least "+i+", was given "+h.length),VI(h.length<=B,"key must be at least "+B+", was given "+h.length)),null!=o&&(VI(o instanceof Uint8Array,"salt must be Uint8Array or Buffer"),VI(o.length===E,"salt must be exactly "+E+", was given "+o.length)),null!=a&&(VI(a instanceof Uint8Array,"personal must be Uint8Array or Buffer"),VI(a.length===e,"personal must be exactly "+e+", was given "+a.length))),C.length||(C.push(g),g+=216),this.digestLength=A,this.finalized=!1,this.pointer=C.pop(),I.memory.fill(0,0,64),I.memory[0]=this.digestLength,I.memory[1]=h?h.length:0,I.memory[2]=1,I.memory[3]=1,o&&I.memory.set(o,32),a&&I.memory.set(a,48),this.pointer+216>I.memory.length&&I.realloc(this.pointer+216),I.exports.blake2b_init(this.pointer,this.digestLength),h&&(this.update(h),I.memory.fill(0,g,g+h.length),I.memory[this.pointer+200]=128)}function h(){}function o(A){return A<16?"0"+A.toString(16):A.toString(16)}n.prototype.update=function(A){return VI(!1===this.finalized,"Hash instance finalized"),VI(A instanceof Uint8Array,"input must be Uint8Array or Buffer"),g+A.length>I.memory.length&&I.realloc(g+A.length),I.memory.set(A,g),I.exports.blake2b_update(this.pointer,g,g+A.length),this},n.prototype.getPartialHash=function(){return I.memory.slice(this.pointer,this.pointer+216)},n.prototype.setPartialHash=function(A){I.memory.set(A,this.pointer)},n.prototype.digest=function(A){if(VI(!1===this.finalized,"Hash instance finalized"),this.finalized=!0,C.push(this.pointer),I.exports.blake2b_final(this.pointer),!A||"binary"===A)return I.memory.slice(this.pointer+128,this.pointer+128+this.digestLength);if("hex"===A)return function(A,I,g){for(var C="",Q=0;Q=this.digestLength,"input must be Uint8Array or Buffer");for(var g=0;g>=1;return g}function Ag(A,I){return(_I[A>>>24]|_I[A>>>16&255]<<8|_I[A>>>8&255]<<16|_I[255&A]<<24)>>>32-I}function Ig(A){return(0!=(4294901760&A)?(A&=4294901760,16):0)|(0!=(4278255360&A)?(A&=4278255360,8):0)|(0!=(4042322160&A)?(A&=4042322160,4):0)|(0!=(3435973836&A)?(A&=3435973836,2):0)|0!=(2863311530&A)}function gg(A,I){const g=new DataView(A.buffer,A.byteOffset,A.byteLength);let C="";for(let A=0;A<4;A++){A>0&&(C+="\n"),C+="\t\t";for(let I=0;I<4;I++)I>0&&(C+=" "),C+=g.getUint32(16*A+4*I).toString(16).padStart(8,"0")}return I&&(C=I+"\n"+C),C}function Cg(A,I){if(A.byteLength!=I.byteLength)return!1;for(var g=new Int8Array(A),C=new Int8Array(I),Q=0;Q!=A.byteLength;Q++)if(g[Q]!=C[Q])return!1;return!0}function Qg(A){const I=A.getPartialHash(),g=TI(64);return g.setPartialHash(I),g}async function tg(A,I,g,C,Q){if(A.G1.isZero(I))return!1;if(A.G1.isZero(g))return!1;if(A.G2.isZero(C))return!1;if(A.G2.isZero(Q))return!1;return await A.pairingEq(I,Q,A.G1.neg(g),C)}async function ig(A){for(;!A;)A=await window.prompt("Enter a random text. (Entropy): ","");const I=TI(64);I.update(lA.randomBytes(64));const g=new TextEncoder;I.update(g.encode(A));const C=Buffer.from(I.digest()),Q=[];for(let A=0;A<8;A++)Q[A]=C.readUInt32BE(4*A);return new uA(Q)}function Bg(A,I){let g,C;I<32?(g=1<>>0,C=1):(g=4294967296,C=1<>>0);let Q=A;for(let A=0;A0){const I=new Uint8Array(C);await A.writeULE32(I.byteLength),await A.write(I)}else await A.writeULE32(0)}async function cg(A,I,g){await JI(A,10),await A.write(g.csHash),await A.writeULE32(g.contributions.length);for(let C=0;C>1;const Q=B.getUint32(4+C*t+4,!0);Q>A?g=C-1:Q>4&15).toString(16)+(15&A).toString(16);function r(A,I){var g,C,Q,t=[0],i="";for(C=0;C0;)t.push(g%I),g=g/I|0}for(C=t.length-1;C>=0;--C)i+="0123456789abcdefghijklmnopqrstuvwxyz"[t[C]];return i}function s(A,I){return{bits:I,value:A,dec:function(){return r(A,10)},hex:function(){return A},str:function(){return r(A,36)}}}function w(A,I){return{bits:I,value:A,dec:function(){return A.toString()},hex:function(){return E[A>>>24]+E[A>>>16&255]+E[A>>>8&255]+E[255&A]},str:function(){return A.toString(36)}}}function f(A,I){return{bits:I,value:A,dec:function(){return A.toString()},hex:function(){return("0000000000000000"+A.toString(16)).substr(-13)},str:function(){return A.toString(36)}}}function D(A,E){var e="object"==typeof A?JSON.stringify(A):A;switch(E||o){case 32:return I(e);case 64:return C(e);case 128:return Q(e);case 256:return t(e);case 512:return i(e);case 1024:return B(e);default:return g(e)}}function c(A){if("1a"===A)n=A,I=h?l:M,g=h?U:H,C=h?k:L,Q=h?R:J,t=h?P:v,i=h?Z:x,B=h?j:V;else{if("1"!==A)throw new Error("Supported FNV versions: 1, 1a");n=A,I=h?p:u,g=h?d:G,C=h?N:m,Q=h?b:S,t=h?q:Y,i=h?K:X,B=h?W:O}}function y(A){A?(h=!0,I="1a"==n?l:p,g="1a"==n?U:d,C="1a"==n?k:N,Q="1a"==n?R:b,t="1a"==n?P:q,i="1a"==n?Z:K,B="1a"==n?j:W):(h=!1,I="1a"==n?M:u,g="1a"==n?H:G,C="1a"==n?L:m,Q="1a"==n?J:S,t="1a"==n?v:Y,i="1a"==n?x:X,B="1a"==n?V:O)}function F(A){var I,g,C=n;for(var Q in"chongo /\\../\\"===(A=A||0===A?A:"chongo /\\../\\")&&c("1"),a){for(a[Q].offset=[],g=0;g>>16)&65535),i+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=403*t),i=403*(B=i+(Q>>>16)&65535),i+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=403*t),i=403*(B=i+(Q>>>16)&65535),B=(i+=(t^=A.charCodeAt(I++))<<8)+((Q=403*t)>>>16)&65535,t=65535&Q;for(;I>>16)&65535,t=65535&Q;return w((B<<16>>>0)+t,32)}function u(A){var I,g=A.length-3,C=a[32].offset,Q=0,t=0|C[1],i=0,B=0|C[0];for(I=0;I>>16)&65535),i+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=403*t),i=403*(B=i+(Q>>>16)&65535),i+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=403*t),i=403*(B=i+(Q>>>16)&65535),B=(i+=(t^=A.charCodeAt(I++))<<8)+((Q=403*t)>>>16)&65535,t=65535&Q,t^=A.charCodeAt(I++);for(;I>>16)&65535,t=65535&Q,t^=A.charCodeAt(I++);return w((B<<16>>>0)+t,32)}function l(A){var I,g,C=A.length,Q=a[32].offset,t=0,i=0|Q[1],B=0,E=0|Q[0];for(g=0;g>6|192)<<8)+((t=403*i)>>>16)&65535,i=65535&t,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,i=65535&(t=403*i),B=403*(E=B+(t>>>16)&65535),B+=(i^=I>>12&63|128)<<8,i=65535&(t=403*i),B=403*(E=B+(t>>>16)&65535),E=(B+=(i^=I>>6&63|128)<<8)+((t=403*i)>>>16)&65535,i=65535&t,i^=63&I|128):(B=403*E,B+=(i^=I>>12|224)<<8,i=65535&(t=403*i),B=403*(E=B+(t>>>16)&65535),E=(B+=(i^=I>>6&63|128)<<8)+((t=403*i)>>>16)&65535,i=65535&t,i^=63&I|128),B=403*E,E=(B+=i<<8)+((t=403*i)>>>16)&65535,i=65535&t;return w((E<<16>>>0)+i,32)}function p(A){var I,g,C=A.length,Q=a[32].offset,t=0,i=0|Q[1],B=0,E=0|Q[0];for(g=0;g>>16)&65535,i=65535&t,(I=A.charCodeAt(g))<128?i^=I:I<2048?(B=403*E,E=(B+=(i^=I>>6|192)<<8)+((t=403*i)>>>16)&65535,i=65535&t,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,i=65535&(t=403*i),B=403*(E=B+(t>>>16)&65535),B+=(i^=I>>12&63|128)<<8,i=65535&(t=403*i),B=403*(E=B+(t>>>16)&65535),E=(B+=(i^=I>>6&63|128)<<8)+((t=403*i)>>>16)&65535,i=65535&t,i^=63&I|128):(B=403*E,B+=(i^=I>>12|224)<<8,i=65535&(t=403*i),B=403*(E=B+(t>>>16)&65535),E=(B+=(i^=I>>6&63|128)<<8)+((t=403*i)>>>16)&65535,i=65535&t,i^=63&I|128);return w((E<<16>>>0)+i,32)}function H(A){var I,g=A.length-3,C=a[64].offset,Q=0,t=0|C[3],i=0,B=0|C[2],E=0,e=0|C[1],n=0,h=0|C[0];for(I=0;I>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),E=435*(e=65535&E),n=435*h,E+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=435*t),h=(n+=B<<8)+((E+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),E=435*(e=65535&E),n=435*h,E+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=435*t),h=(n+=B<<8)+((E+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),E=435*(e=65535&E),n=435*h,E+=(t^=A.charCodeAt(I++))<<8,n+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),h=n+((E+=i>>>16)>>>16)&65535,e=65535&E;for(;I>>16),h=n+((E+=i>>>16)>>>16)&65535,e=65535&E;return f(281474976710656*(15&h)+4294967296*e+65536*B+(t^h>>4),52)}function G(A){var I,g=A.length-3,C=a[64].offset,Q=0,t=0|C[3],i=0,B=0|C[2],E=0,e=0|C[1],n=0,h=0|C[0];for(I=0;I>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),E=435*(e=65535&E),n=435*h,E+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=435*t),h=(n+=B<<8)+((E+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),E=435*(e=65535&E),n=435*h,E+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=435*t),h=(n+=B<<8)+((E+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),E=435*(e=65535&E),n=435*h,E+=(t^=A.charCodeAt(I++))<<8,n+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),h=n+((E+=i>>>16)>>>16)&65535,e=65535&E,t^=A.charCodeAt(I++);for(;I>>16),h=n+((E+=i>>>16)>>>16)&65535,e=65535&E,t^=A.charCodeAt(I++);return f(281474976710656*(15&h)+4294967296*e+65536*B+(t^h>>4),52)}function U(A){var I,g,C=A.length,Q=a[64].offset,t=0,i=0|Q[3],B=0,E=0|Q[2],e=0,n=0|Q[1],h=0,o=0|Q[0];for(g=0;g>6|192)<<8,h+=E<<8,i=65535&(t=435*i),E=65535&(B+=t>>>16),o=h+((e+=B>>>16)>>>16)&65535,n=65535&e,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,i=65535&(t=435*i),o=(h+=E<<8)+((e+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(E=65535&B),e=435*(n=65535&e),h=435*o,e+=(i^=I>>12&63|128)<<8,i=65535&(t=435*i),o=(h+=E<<8)+((e+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(E=65535&B),e=435*(n=65535&e),h=435*o,e+=(i^=I>>6&63|128)<<8,h+=E<<8,i=65535&(t=435*i),E=65535&(B+=t>>>16),o=h+((e+=B>>>16)>>>16)&65535,n=65535&e,i^=63&I|128):(B=435*E,e=435*n,h=435*o,e+=(i^=I>>12|224)<<8,i=65535&(t=435*i),o=(h+=E<<8)+((e+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(E=65535&B),e=435*(n=65535&e),h=435*o,e+=(i^=I>>6&63|128)<<8,h+=E<<8,i=65535&(t=435*i),E=65535&(B+=t>>>16),o=h+((e+=B>>>16)>>>16)&65535,n=65535&e,i^=63&I|128),B=435*E,e=435*n,h=435*o,e+=i<<8,h+=E<<8,i=65535&(t=435*i),E=65535&(B+=t>>>16),o=h+((e+=B>>>16)>>>16)&65535,n=65535&e;return f(281474976710656*(15&o)+4294967296*n+65536*E+(i^o>>4),52)}function d(A){var I,g,C=A.length,Q=a[64].offset,t=0,i=0|Q[3],B=0,E=0|Q[2],e=0,n=0|Q[1],h=0,o=0|Q[0];for(g=0;g>>16),o=h+((e+=B>>>16)>>>16)&65535,n=65535&e,(I=A.charCodeAt(g))<128?i^=I:I<2048?(B=435*E,e=435*n,h=435*o,e+=(i^=I>>6|192)<<8,h+=E<<8,i=65535&(t=435*i),E=65535&(B+=t>>>16),o=h+((e+=B>>>16)>>>16)&65535,n=65535&e,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,i=65535&(t=435*i),o=(h+=E<<8)+((e+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(E=65535&B),e=435*(n=65535&e),h=435*o,e+=(i^=I>>12&63|128)<<8,i=65535&(t=435*i),o=(h+=E<<8)+((e+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(E=65535&B),e=435*(n=65535&e),h=435*o,e+=(i^=I>>6&63|128)<<8,h+=E<<8,i=65535&(t=435*i),E=65535&(B+=t>>>16),o=h+((e+=B>>>16)>>>16)&65535,n=65535&e,i^=63&I|128):(B=435*E,e=435*n,h=435*o,e+=(i^=I>>12|224)<<8,i=65535&(t=435*i),o=(h+=E<<8)+((e+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(E=65535&B),e=435*(n=65535&e),h=435*o,e+=(i^=I>>6&63|128)<<8,h+=E<<8,i=65535&(t=435*i),E=65535&(B+=t>>>16),o=h+((e+=B>>>16)>>>16)&65535,n=65535&e,i^=63&I|128);return f(281474976710656*(15&o)+4294967296*n+65536*E+(i^o>>4),52)}function L(A){var I,g=A.length-3,C=a[64].offset,Q=0,t=0|C[3],i=0,B=0|C[2],e=0,n=0|C[1],h=0,o=0|C[0];for(I=0;I>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),e=435*(n=65535&e),h=435*o,e+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=435*t),o=(h+=B<<8)+((e+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),e=435*(n=65535&e),h=435*o,e+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=435*t),o=(h+=B<<8)+((e+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),e=435*(n=65535&e),h=435*o,e+=(t^=A.charCodeAt(I++))<<8,h+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),o=h+((e+=i>>>16)>>>16)&65535,n=65535&e;for(;I>>16),o=h+((e+=i>>>16)>>>16)&65535,n=65535&e;return s(E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t],64)}function m(A){var I,g=A.length-3,C=a[64].offset,Q=0,t=0|C[3],i=0,B=0|C[2],e=0,n=0|C[1],h=0,o=0|C[0];for(I=0;I>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),e=435*(n=65535&e),h=435*o,e+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=435*t),o=(h+=B<<8)+((e+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),e=435*(n=65535&e),h=435*o,e+=(t^=A.charCodeAt(I++))<<8,t=65535&(Q=435*t),o=(h+=B<<8)+((e+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),e=435*(n=65535&e),h=435*o,e+=(t^=A.charCodeAt(I++))<<8,h+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),o=h+((e+=i>>>16)>>>16)&65535,n=65535&e,t^=A.charCodeAt(I++);for(;I>>16),o=h+((e+=i>>>16)>>>16)&65535,n=65535&e,t^=A.charCodeAt(I++);return s(E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t],64)}function k(A){var I,g,C=A.length,Q=a[64].offset,t=0,i=0|Q[3],B=0,e=0|Q[2],n=0,h=0|Q[1],o=0,r=0|Q[0];for(g=0;g>6|192)<<8,o+=e<<8,i=65535&(t=435*i),e=65535&(B+=t>>>16),r=o+((n+=B>>>16)>>>16)&65535,h=65535&n,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,i=65535&(t=435*i),r=(o+=e<<8)+((n+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(e=65535&B),n=435*(h=65535&n),o=435*r,n+=(i^=I>>12&63|128)<<8,i=65535&(t=435*i),r=(o+=e<<8)+((n+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(e=65535&B),n=435*(h=65535&n),o=435*r,n+=(i^=I>>6&63|128)<<8,o+=e<<8,i=65535&(t=435*i),e=65535&(B+=t>>>16),r=o+((n+=B>>>16)>>>16)&65535,h=65535&n,i^=63&I|128):(B=435*e,n=435*h,o=435*r,n+=(i^=I>>12|224)<<8,i=65535&(t=435*i),r=(o+=e<<8)+((n+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(e=65535&B),n=435*(h=65535&n),o=435*r,n+=(i^=I>>6&63|128)<<8,o+=e<<8,i=65535&(t=435*i),e=65535&(B+=t>>>16),r=o+((n+=B>>>16)>>>16)&65535,h=65535&n,i^=63&I|128),B=435*e,n=435*h,o=435*r,n+=i<<8,o+=e<<8,i=65535&(t=435*i),e=65535&(B+=t>>>16),r=o+((n+=B>>>16)>>>16)&65535,h=65535&n;return s(E[r>>8]+E[255&r]+E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i],64)}function N(A){var I,g,C=A.length,Q=a[64].offset,t=0,i=0|Q[3],B=0,e=0|Q[2],n=0,h=0|Q[1],o=0,r=0|Q[0];for(g=0;g>>16),r=o+((n+=B>>>16)>>>16)&65535,h=65535&n,(I=A.charCodeAt(g))<128?i^=I:I<2048?(B=435*e,n=435*h,o=435*r,n+=(i^=I>>6|192)<<8,o+=e<<8,i=65535&(t=435*i),e=65535&(B+=t>>>16),r=o+((n+=B>>>16)>>>16)&65535,h=65535&n,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,i=65535&(t=435*i),r=(o+=e<<8)+((n+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(e=65535&B),n=435*(h=65535&n),o=435*r,n+=(i^=I>>12&63|128)<<8,i=65535&(t=435*i),r=(o+=e<<8)+((n+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(e=65535&B),n=435*(h=65535&n),o=435*r,n+=(i^=I>>6&63|128)<<8,o+=e<<8,i=65535&(t=435*i),e=65535&(B+=t>>>16),r=o+((n+=B>>>16)>>>16)&65535,h=65535&n,i^=63&I|128):(B=435*e,n=435*h,o=435*r,n+=(i^=I>>12|224)<<8,i=65535&(t=435*i),r=(o+=e<<8)+((n+=(B+=t>>>16)>>>16)>>>16)&65535,B=435*(e=65535&B),n=435*(h=65535&n),o=435*r,n+=(i^=I>>6&63|128)<<8,o+=e<<8,i=65535&(t=435*i),e=65535&(B+=t>>>16),r=o+((n+=B>>>16)>>>16)&65535,h=65535&n,i^=63&I|128);return s(E[r>>8]+E[255&r]+E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i],64)}function J(A){var I,g=A.length-3,C=a[128].offset,Q=0,t=0|C[7],i=0,B=0|C[6],e=0,n=0|C[5],h=0,o=0|C[4],r=0,w=0|C[3],f=0,D=0|C[2],c=0,y=0|C[1],F=0,M=0|C[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=315*(B=65535&i),e=315*(n=65535&e),h=315*(o=65535&h),r=315*(w=65535&r),f=315*(D=65535&f),c=315*(y=65535&c),F=315*M,f+=(t^=A.charCodeAt(I++))<<8,c+=B<<8,t=65535&(Q=315*t),M=(F+=n<<8)+((c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=315*(B=65535&i),e=315*(n=65535&e),h=315*(o=65535&h),r=315*(w=65535&r),f=315*(D=65535&f),c=315*(y=65535&c),F=315*M,f+=(t^=A.charCodeAt(I++))<<8,c+=B<<8,t=65535&(Q=315*t),M=(F+=n<<8)+((c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=315*(B=65535&i),e=315*(n=65535&e),h=315*(o=65535&h),r=315*(w=65535&r),f=315*(D=65535&f),c=315*(y=65535&c),F=315*M,f+=(t^=A.charCodeAt(I++))<<8,c+=B<<8,F+=n<<8,t=65535&(Q=315*t),B=65535&(i+=Q>>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),M=F+((c+=f>>>16)>>>16)&65535,y=65535&c;for(;I>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),M=F+((c+=f>>>16)>>>16)&65535,y=65535&c;return s(E[M>>8]+E[255&M]+E[y>>8]+E[255&y]+E[D>>8]+E[255&D]+E[w>>8]+E[255&w]+E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t],128)}function S(A){var I,g=A.length-3,C=a[128].offset,Q=0,t=0|C[7],i=0,B=0|C[6],e=0,n=0|C[5],h=0,o=0|C[4],r=0,w=0|C[3],f=0,D=0|C[2],c=0,y=0|C[1],F=0,M=0|C[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=315*(B=65535&i),e=315*(n=65535&e),h=315*(o=65535&h),r=315*(w=65535&r),f=315*(D=65535&f),c=315*(y=65535&c),F=315*M,f+=(t^=A.charCodeAt(I++))<<8,c+=B<<8,t=65535&(Q=315*t),M=(F+=n<<8)+((c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=315*(B=65535&i),e=315*(n=65535&e),h=315*(o=65535&h),r=315*(w=65535&r),f=315*(D=65535&f),c=315*(y=65535&c),F=315*M,f+=(t^=A.charCodeAt(I++))<<8,c+=B<<8,t=65535&(Q=315*t),M=(F+=n<<8)+((c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=315*(B=65535&i),e=315*(n=65535&e),h=315*(o=65535&h),r=315*(w=65535&r),f=315*(D=65535&f),c=315*(y=65535&c),F=315*M,f+=(t^=A.charCodeAt(I++))<<8,c+=B<<8,F+=n<<8,t=65535&(Q=315*t),B=65535&(i+=Q>>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),M=F+((c+=f>>>16)>>>16)&65535,y=65535&c,t^=A.charCodeAt(I++);for(;I>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),M=F+((c+=f>>>16)>>>16)&65535,y=65535&c,t^=A.charCodeAt(I++);return s(E[M>>8]+E[255&M]+E[y>>8]+E[255&y]+E[D>>8]+E[255&D]+E[w>>8]+E[255&w]+E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t],128)}function R(A){var I,g,C=A.length,Q=a[128].offset,t=0,i=0|Q[7],B=0,e=0|Q[6],n=0,h=0|Q[5],o=0,r=0|Q[4],w=0,f=0|Q[3],D=0,c=0|Q[2],y=0,F=0|Q[1],M=0,u=0|Q[0];for(g=0;g>6|192)<<8,y+=e<<8,M+=h<<8,i=65535&(t=315*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),u=M+((y+=D>>>16)>>>16)&65535,F=65535&y,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,y+=e<<8,i=65535&(t=315*i),u=(M+=h<<8)+((y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=315*(e=65535&B),n=315*(h=65535&n),o=315*(r=65535&o),w=315*(f=65535&w),D=315*(c=65535&D),y=315*(F=65535&y),M=315*u,D+=(i^=I>>12&63|128)<<8,y+=e<<8,i=65535&(t=315*i),u=(M+=h<<8)+((y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=315*(e=65535&B),n=315*(h=65535&n),o=315*(r=65535&o),w=315*(f=65535&w),D=315*(c=65535&D),y=315*(F=65535&y),M=315*u,D+=(i^=I>>6&63|128)<<8,y+=e<<8,M+=h<<8,i=65535&(t=315*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),u=M+((y+=D>>>16)>>>16)&65535,F=65535&y,i^=63&I|128):(B=315*e,n=315*h,o=315*r,w=315*f,D=315*c,y=315*F,M=315*u,D+=(i^=I>>12|224)<<8,y+=e<<8,i=65535&(t=315*i),u=(M+=h<<8)+((y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=315*(e=65535&B),n=315*(h=65535&n),o=315*(r=65535&o),w=315*(f=65535&w),D=315*(c=65535&D),y=315*(F=65535&y),M=315*u,D+=(i^=I>>6&63|128)<<8,y+=e<<8,M+=h<<8,i=65535&(t=315*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),u=M+((y+=D>>>16)>>>16)&65535,F=65535&y,i^=63&I|128),B=315*e,n=315*h,o=315*r,w=315*f,D=315*c,y=315*F,M=315*u,D+=i<<8,y+=e<<8,M+=h<<8,i=65535&(t=315*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),u=M+((y+=D>>>16)>>>16)&65535,F=65535&y;return s(E[u>>8]+E[255&u]+E[F>>8]+E[255&F]+E[c>>8]+E[255&c]+E[f>>8]+E[255&f]+E[r>>8]+E[255&r]+E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i],128)}function b(A){var I,g,C=A.length,Q=a[128].offset,t=0,i=0|Q[7],B=0,e=0|Q[6],n=0,h=0|Q[5],o=0,r=0|Q[4],w=0,f=0|Q[3],D=0,c=0|Q[2],y=0,F=0|Q[1],M=0,u=0|Q[0];for(g=0;g>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),u=M+((y+=D>>>16)>>>16)&65535,F=65535&y,(I=A.charCodeAt(g))<128?i^=I:I<2048?(B=315*e,n=315*h,o=315*r,w=315*f,D=315*c,y=315*F,M=315*u,D+=(i^=I>>6|192)<<8,y+=e<<8,M+=h<<8,i=65535&(t=315*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),u=M+((y+=D>>>16)>>>16)&65535,F=65535&y,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,y+=e<<8,i=65535&(t=315*i),u=(M+=h<<8)+((y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=315*(e=65535&B),n=315*(h=65535&n),o=315*(r=65535&o),w=315*(f=65535&w),D=315*(c=65535&D),y=315*(F=65535&y),M=315*u,D+=(i^=I>>12&63|128)<<8,y+=e<<8,i=65535&(t=315*i),u=(M+=h<<8)+((y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=315*(e=65535&B),n=315*(h=65535&n),o=315*(r=65535&o),w=315*(f=65535&w),D=315*(c=65535&D),y=315*(F=65535&y),M=315*u,D+=(i^=I>>6&63|128)<<8,y+=e<<8,M+=h<<8,i=65535&(t=315*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),u=M+((y+=D>>>16)>>>16)&65535,F=65535&y,i^=63&I|128):(B=315*e,n=315*h,o=315*r,w=315*f,D=315*c,y=315*F,M=315*u,D+=(i^=I>>12|224)<<8,y+=e<<8,i=65535&(t=315*i),u=(M+=h<<8)+((y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=315*(e=65535&B),n=315*(h=65535&n),o=315*(r=65535&o),w=315*(f=65535&w),D=315*(c=65535&D),y=315*(F=65535&y),M=315*u,D+=(i^=I>>6&63|128)<<8,y+=e<<8,M+=h<<8,i=65535&(t=315*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),u=M+((y+=D>>>16)>>>16)&65535,F=65535&y,i^=63&I|128);return s(E[u>>8]+E[255&u]+E[F>>8]+E[255&F]+E[c>>8]+E[255&c]+E[f>>8]+E[255&f]+E[r>>8]+E[255&r]+E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i],128)}function v(A){var I,g=A.length-3,C=a[256].offset,Q=0,t=0|C[15],i=0,B=0|C[14],e=0,n=0|C[13],h=0,o=0|C[12],r=0,w=0|C[11],f=0,D=0|C[10],c=0,y=0|C[9],F=0,M=0|C[8],u=0,l=0|C[7],p=0,H=0|C[6],G=0,U=0|C[5],d=0,L=0|C[4],m=0,k=0|C[3],N=0,J=0|C[2],S=0,R=0|C[1],b=0,v=0|C[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=355*(B=65535&i),e=355*(n=65535&e),h=355*(o=65535&h),r=355*(w=65535&r),f=355*(D=65535&f),c=355*(y=65535&c),F=355*(M=65535&F),u=355*(l=65535&u),p=355*(H=65535&p),G=355*(U=65535&G),d=355*(L=65535&d),m=355*(k=65535&m),N=355*(J=65535&N),S=355*(R=65535&S),b=355*v,G+=(t^=A.charCodeAt(I++))<<8,d+=B<<8,m+=n<<8,N+=o<<8,S+=w<<8,t=65535&(Q=355*t),v=(b+=D<<8)+((S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=355*(B=65535&i),e=355*(n=65535&e),h=355*(o=65535&h),r=355*(w=65535&r),f=355*(D=65535&f),c=355*(y=65535&c),F=355*(M=65535&F),u=355*(l=65535&u),p=355*(H=65535&p),G=355*(U=65535&G),d=355*(L=65535&d),m=355*(k=65535&m),N=355*(J=65535&N),S=355*(R=65535&S),b=355*v,G+=(t^=A.charCodeAt(I++))<<8,d+=B<<8,m+=n<<8,N+=o<<8,S+=w<<8,t=65535&(Q=355*t),v=(b+=D<<8)+((S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=355*(B=65535&i),e=355*(n=65535&e),h=355*(o=65535&h),r=355*(w=65535&r),f=355*(D=65535&f),c=355*(y=65535&c),F=355*(M=65535&F),u=355*(l=65535&u),p=355*(H=65535&p),G=355*(U=65535&G),d=355*(L=65535&d),m=355*(k=65535&m),N=355*(J=65535&N),S=355*(R=65535&S),b=355*v,G+=(t^=A.charCodeAt(I++))<<8,d+=B<<8,m+=n<<8,N+=o<<8,S+=w<<8,b+=D<<8,t=65535&(Q=355*t),B=65535&(i+=Q>>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),v=b+((S+=N>>>16)>>>16)&65535,R=65535&S;for(;I>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),v=b+((S+=N>>>16)>>>16)&65535,R=65535&S;return s(E[v>>8]+E[255&v]+E[R>>8]+E[255&R]+E[J>>8]+E[255&J]+E[k>>8]+E[255&k]+E[L>>8]+E[255&L]+E[U>>8]+E[255&U]+E[H>>8]+E[255&H]+E[l>>8]+E[255&l]+E[M>>8]+E[255&M]+E[y>>8]+E[255&y]+E[D>>8]+E[255&D]+E[w>>8]+E[255&w]+E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t],256)}function Y(A){var I,g=A.length-3,C=a[256].offset,Q=0,t=0|C[15],i=0,B=0|C[14],e=0,n=0|C[13],h=0,o=0|C[12],r=0,w=0|C[11],f=0,D=0|C[10],c=0,y=0|C[9],F=0,M=0|C[8],u=0,l=0|C[7],p=0,H=0|C[6],G=0,U=0|C[5],d=0,L=0|C[4],m=0,k=0|C[3],N=0,J=0|C[2],S=0,R=0|C[1],b=0,v=0|C[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=355*(B=65535&i),e=355*(n=65535&e),h=355*(o=65535&h),r=355*(w=65535&r),f=355*(D=65535&f),c=355*(y=65535&c),F=355*(M=65535&F),u=355*(l=65535&u),p=355*(H=65535&p),G=355*(U=65535&G),d=355*(L=65535&d),m=355*(k=65535&m),N=355*(J=65535&N),S=355*(R=65535&S),b=355*v,G+=(t^=A.charCodeAt(I++))<<8,d+=B<<8,m+=n<<8,N+=o<<8,S+=w<<8,t=65535&(Q=355*t),v=(b+=D<<8)+((S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=355*(B=65535&i),e=355*(n=65535&e),h=355*(o=65535&h),r=355*(w=65535&r),f=355*(D=65535&f),c=355*(y=65535&c),F=355*(M=65535&F),u=355*(l=65535&u),p=355*(H=65535&p),G=355*(U=65535&G),d=355*(L=65535&d),m=355*(k=65535&m),N=355*(J=65535&N),S=355*(R=65535&S),b=355*v,G+=(t^=A.charCodeAt(I++))<<8,d+=B<<8,m+=n<<8,N+=o<<8,S+=w<<8,t=65535&(Q=355*t),v=(b+=D<<8)+((S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=355*(B=65535&i),e=355*(n=65535&e),h=355*(o=65535&h),r=355*(w=65535&r),f=355*(D=65535&f),c=355*(y=65535&c),F=355*(M=65535&F),u=355*(l=65535&u),p=355*(H=65535&p),G=355*(U=65535&G),d=355*(L=65535&d),m=355*(k=65535&m),N=355*(J=65535&N),S=355*(R=65535&S),b=355*v,G+=(t^=A.charCodeAt(I++))<<8,d+=B<<8,m+=n<<8,N+=o<<8,S+=w<<8,b+=D<<8,t=65535&(Q=355*t),B=65535&(i+=Q>>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),v=b+((S+=N>>>16)>>>16)&65535,R=65535&S,t^=A.charCodeAt(I++);for(;I>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),v=b+((S+=N>>>16)>>>16)&65535,R=65535&S,t^=A.charCodeAt(I++);return s(E[v>>8]+E[255&v]+E[R>>8]+E[255&R]+E[J>>8]+E[255&J]+E[k>>8]+E[255&k]+E[L>>8]+E[255&L]+E[U>>8]+E[255&U]+E[H>>8]+E[255&H]+E[l>>8]+E[255&l]+E[M>>8]+E[255&M]+E[y>>8]+E[255&y]+E[D>>8]+E[255&D]+E[w>>8]+E[255&w]+E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t],256)}function P(A){var I,g,C=A.length,Q=a[256].offset,t=0,i=0|Q[15],B=0,e=0|Q[14],n=0,h=0|Q[13],o=0,r=0|Q[12],w=0,f=0|Q[11],D=0,c=0|Q[10],y=0,F=0|Q[9],M=0,u=0|Q[8],l=0,p=0|Q[7],H=0,G=0|Q[6],U=0,d=0|Q[5],L=0,m=0|Q[4],k=0,N=0|Q[3],J=0,S=0|Q[2],R=0,b=0|Q[1],v=0,Y=0|Q[0];for(g=0;g>6|192)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,v+=c<<8,i=65535&(t=355*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),Y=v+((R+=J>>>16)>>>16)&65535,b=65535&R,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,i=65535&(t=355*i),Y=(v+=c<<8)+((R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=355*(e=65535&B),n=355*(h=65535&n),o=355*(r=65535&o),w=355*(f=65535&w),D=355*(c=65535&D),y=355*(F=65535&y),M=355*(u=65535&M),l=355*(p=65535&l),H=355*(G=65535&H),U=355*(d=65535&U),L=355*(m=65535&L),k=355*(N=65535&k),J=355*(S=65535&J),R=355*(b=65535&R),v=355*Y,U+=(i^=I>>12&63|128)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,i=65535&(t=355*i),Y=(v+=c<<8)+((R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=355*(e=65535&B),n=355*(h=65535&n),o=355*(r=65535&o),w=355*(f=65535&w),D=355*(c=65535&D),y=355*(F=65535&y),M=355*(u=65535&M),l=355*(p=65535&l),H=355*(G=65535&H),U=355*(d=65535&U),L=355*(m=65535&L),k=355*(N=65535&k),J=355*(S=65535&J),R=355*(b=65535&R),v=355*Y,U+=(i^=I>>6&63|128)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,v+=c<<8,i=65535&(t=355*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),Y=v+((R+=J>>>16)>>>16)&65535,b=65535&R,i^=63&I|128):(B=355*e,n=355*h,o=355*r,w=355*f,D=355*c,y=355*F,M=355*u,l=355*p,H=355*G,U=355*d,L=355*m,k=355*N,J=355*S,R=355*b,v=355*Y,U+=(i^=I>>12|224)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,i=65535&(t=355*i),Y=(v+=c<<8)+((R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=355*(e=65535&B),n=355*(h=65535&n),o=355*(r=65535&o),w=355*(f=65535&w),D=355*(c=65535&D),y=355*(F=65535&y),M=355*(u=65535&M),l=355*(p=65535&l),H=355*(G=65535&H),U=355*(d=65535&U),L=355*(m=65535&L),k=355*(N=65535&k),J=355*(S=65535&J),R=355*(b=65535&R),v=355*Y,U+=(i^=I>>6&63|128)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,v+=c<<8,i=65535&(t=355*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),Y=v+((R+=J>>>16)>>>16)&65535,b=65535&R,i^=63&I|128),B=355*e,n=355*h,o=355*r,w=355*f,D=355*c,y=355*F,M=355*u,l=355*p,H=355*G,U=355*d,L=355*m,k=355*N,J=355*S,R=355*b,v=355*Y,U+=i<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,v+=c<<8,i=65535&(t=355*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),Y=v+((R+=J>>>16)>>>16)&65535,b=65535&R;return s(E[Y>>8]+E[255&Y]+E[b>>8]+E[255&b]+E[S>>8]+E[255&S]+E[N>>8]+E[255&N]+E[m>>8]+E[255&m]+E[d>>8]+E[255&d]+E[G>>8]+E[255&G]+E[p>>8]+E[255&p]+E[u>>8]+E[255&u]+E[F>>8]+E[255&F]+E[c>>8]+E[255&c]+E[f>>8]+E[255&f]+E[r>>8]+E[255&r]+E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i],256)}function q(A){var I,g,C=A.length,Q=a[256].offset,t=0,i=0|Q[15],B=0,e=0|Q[14],n=0,h=0|Q[13],o=0,r=0|Q[12],w=0,f=0|Q[11],D=0,c=0|Q[10],y=0,F=0|Q[9],M=0,u=0|Q[8],l=0,p=0|Q[7],H=0,G=0|Q[6],U=0,d=0|Q[5],L=0,m=0|Q[4],k=0,N=0|Q[3],J=0,S=0|Q[2],R=0,b=0|Q[1],v=0,Y=0|Q[0];for(g=0;g>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),Y=v+((R+=J>>>16)>>>16)&65535,b=65535&R,(I=A.charCodeAt(g))<128?i^=I:I<2048?(B=355*e,n=355*h,o=355*r,w=355*f,D=355*c,y=355*F,M=355*u,l=355*p,H=355*G,U=355*d,L=355*m,k=355*N,J=355*S,R=355*b,v=355*Y,U+=(i^=I>>6|192)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,v+=c<<8,i=65535&(t=355*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),Y=v+((R+=J>>>16)>>>16)&65535,b=65535&R,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,i=65535&(t=355*i),Y=(v+=c<<8)+((R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=355*(e=65535&B),n=355*(h=65535&n),o=355*(r=65535&o),w=355*(f=65535&w),D=355*(c=65535&D),y=355*(F=65535&y),M=355*(u=65535&M),l=355*(p=65535&l),H=355*(G=65535&H),U=355*(d=65535&U),L=355*(m=65535&L),k=355*(N=65535&k),J=355*(S=65535&J),R=355*(b=65535&R),v=355*Y,U+=(i^=I>>12&63|128)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,i=65535&(t=355*i),Y=(v+=c<<8)+((R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=355*(e=65535&B),n=355*(h=65535&n),o=355*(r=65535&o),w=355*(f=65535&w),D=355*(c=65535&D),y=355*(F=65535&y),M=355*(u=65535&M),l=355*(p=65535&l),H=355*(G=65535&H),U=355*(d=65535&U),L=355*(m=65535&L),k=355*(N=65535&k),J=355*(S=65535&J),R=355*(b=65535&R),v=355*Y,U+=(i^=I>>6&63|128)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,v+=c<<8,i=65535&(t=355*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),Y=v+((R+=J>>>16)>>>16)&65535,b=65535&R,i^=63&I|128):(B=355*e,n=355*h,o=355*r,w=355*f,D=355*c,y=355*F,M=355*u,l=355*p,H=355*G,U=355*d,L=355*m,k=355*N,J=355*S,R=355*b,v=355*Y,U+=(i^=I>>12|224)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,i=65535&(t=355*i),Y=(v+=c<<8)+((R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=355*(e=65535&B),n=355*(h=65535&n),o=355*(r=65535&o),w=355*(f=65535&w),D=355*(c=65535&D),y=355*(F=65535&y),M=355*(u=65535&M),l=355*(p=65535&l),H=355*(G=65535&H),U=355*(d=65535&U),L=355*(m=65535&L),k=355*(N=65535&k),J=355*(S=65535&J),R=355*(b=65535&R),v=355*Y,U+=(i^=I>>6&63|128)<<8,L+=e<<8,k+=h<<8,J+=r<<8,R+=f<<8,v+=c<<8,i=65535&(t=355*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),Y=v+((R+=J>>>16)>>>16)&65535,b=65535&R,i^=63&I|128);return s(E[Y>>8]+E[255&Y]+E[b>>8]+E[255&b]+E[S>>8]+E[255&S]+E[N>>8]+E[255&N]+E[m>>8]+E[255&m]+E[d>>8]+E[255&d]+E[G>>8]+E[255&G]+E[p>>8]+E[255&p]+E[u>>8]+E[255&u]+E[F>>8]+E[255&F]+E[c>>8]+E[255&c]+E[f>>8]+E[255&f]+E[r>>8]+E[255&r]+E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i],256)}function x(A){var I,g=A.length-3,C=a[512].offset,Q=0,t=0|C[31],i=0,B=0|C[30],e=0,n=0|C[29],h=0,o=0|C[28],r=0,w=0|C[27],f=0,D=0|C[26],c=0,y=0|C[25],F=0,M=0|C[24],u=0,l=0|C[23],p=0,H=0|C[22],G=0,U=0|C[21],d=0,L=0|C[20],m=0,k=0|C[19],N=0,J=0|C[18],S=0,R=0|C[17],b=0,v=0|C[16],Y=0,P=0|C[15],q=0,x=0|C[14],X=0,Z=0|C[13],K=0,V=0|C[12],O=0,j=0|C[11],W=0,z=0|C[10],T=0,_=0|C[9],$=0,AA=0|C[8],IA=0,gA=0|C[7],CA=0,QA=0|C[6],tA=0,iA=0|C[5],BA=0,EA=0|C[4],eA=0,nA=0|C[3],hA=0,oA=0|C[2],aA=0,rA=0|C[1],sA=0,wA=0|C[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=343*(B=65535&i),e=343*(n=65535&e),h=343*(o=65535&h),r=343*(w=65535&r),f=343*(D=65535&f),c=343*(y=65535&c),F=343*(M=65535&F),u=343*(l=65535&u),p=343*(H=65535&p),G=343*(U=65535&G),d=343*(L=65535&d),m=343*(k=65535&m),N=343*(J=65535&N),S=343*(R=65535&S),b=343*(v=65535&b),Y=343*(P=65535&Y),q=343*(x=65535&q),X=343*(Z=65535&X),K=343*(V=65535&K),O=343*(j=65535&O),W=343*(z=65535&W),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(gA=65535&IA),CA=343*(QA=65535&CA),tA=343*(iA=65535&tA),BA=343*(EA=65535&BA),eA=343*(nA=65535&eA),hA=343*(oA=65535&hA),aA=343*(rA=65535&aA),sA=343*wA,W+=(t^=A.charCodeAt(I++))<<8,T+=B<<8,$+=n<<8,IA+=o<<8,CA+=w<<8,tA+=D<<8,BA+=y<<8,eA+=M<<8,hA+=l<<8,aA+=H<<8,t=65535&(Q=343*t),wA=(sA+=U<<8)+((aA+=(hA+=(eA+=(BA+=(tA+=(CA+=(IA+=($+=(T+=(W+=(O+=(K+=(X+=(q+=(Y+=(b+=(S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=343*(B=65535&i),e=343*(n=65535&e),h=343*(o=65535&h),r=343*(w=65535&r),f=343*(D=65535&f),c=343*(y=65535&c),F=343*(M=65535&F),u=343*(l=65535&u),p=343*(H=65535&p),G=343*(U=65535&G),d=343*(L=65535&d),m=343*(k=65535&m),N=343*(J=65535&N),S=343*(R=65535&S),b=343*(v=65535&b),Y=343*(P=65535&Y),q=343*(x=65535&q),X=343*(Z=65535&X),K=343*(V=65535&K),O=343*(j=65535&O),W=343*(z=65535&W),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(gA=65535&IA),CA=343*(QA=65535&CA),tA=343*(iA=65535&tA),BA=343*(EA=65535&BA),eA=343*(nA=65535&eA),hA=343*(oA=65535&hA),aA=343*(rA=65535&aA),sA=343*wA,W+=(t^=A.charCodeAt(I++))<<8,T+=B<<8,$+=n<<8,IA+=o<<8,CA+=w<<8,tA+=D<<8,BA+=y<<8,eA+=M<<8,hA+=l<<8,aA+=H<<8,t=65535&(Q=343*t),wA=(sA+=U<<8)+((aA+=(hA+=(eA+=(BA+=(tA+=(CA+=(IA+=($+=(T+=(W+=(O+=(K+=(X+=(q+=(Y+=(b+=(S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=343*(B=65535&i),e=343*(n=65535&e),h=343*(o=65535&h),r=343*(w=65535&r),f=343*(D=65535&f),c=343*(y=65535&c),F=343*(M=65535&F),u=343*(l=65535&u),p=343*(H=65535&p),G=343*(U=65535&G),d=343*(L=65535&d),m=343*(k=65535&m),N=343*(J=65535&N),S=343*(R=65535&S),b=343*(v=65535&b),Y=343*(P=65535&Y),q=343*(x=65535&q),X=343*(Z=65535&X),K=343*(V=65535&K),O=343*(j=65535&O),W=343*(z=65535&W),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(gA=65535&IA),CA=343*(QA=65535&CA),tA=343*(iA=65535&tA),BA=343*(EA=65535&BA),eA=343*(nA=65535&eA),hA=343*(oA=65535&hA),aA=343*(rA=65535&aA),sA=343*wA,W+=(t^=A.charCodeAt(I++))<<8,T+=B<<8,$+=n<<8,IA+=o<<8,CA+=w<<8,tA+=D<<8,BA+=y<<8,eA+=M<<8,hA+=l<<8,aA+=H<<8,sA+=U<<8,t=65535&(Q=343*t),B=65535&(i+=Q>>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),R=65535&(S+=N>>>16),v=65535&(b+=S>>>16),P=65535&(Y+=b>>>16),x=65535&(q+=Y>>>16),Z=65535&(X+=q>>>16),V=65535&(K+=X>>>16),j=65535&(O+=K>>>16),z=65535&(W+=O>>>16),_=65535&(T+=W>>>16),AA=65535&($+=T>>>16),gA=65535&(IA+=$>>>16),QA=65535&(CA+=IA>>>16),iA=65535&(tA+=CA>>>16),EA=65535&(BA+=tA>>>16),nA=65535&(eA+=BA>>>16),oA=65535&(hA+=eA>>>16),wA=sA+((aA+=hA>>>16)>>>16)&65535,rA=65535&aA;for(;I>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),R=65535&(S+=N>>>16),v=65535&(b+=S>>>16),P=65535&(Y+=b>>>16),x=65535&(q+=Y>>>16),Z=65535&(X+=q>>>16),V=65535&(K+=X>>>16),j=65535&(O+=K>>>16),z=65535&(W+=O>>>16),_=65535&(T+=W>>>16),AA=65535&($+=T>>>16),gA=65535&(IA+=$>>>16),QA=65535&(CA+=IA>>>16),iA=65535&(tA+=CA>>>16),EA=65535&(BA+=tA>>>16),nA=65535&(eA+=BA>>>16),oA=65535&(hA+=eA>>>16),wA=sA+((aA+=hA>>>16)>>>16)&65535,rA=65535&aA;return s(E[wA>>8]+E[255&wA]+E[rA>>8]+E[255&rA]+E[oA>>8]+E[255&oA]+E[nA>>8]+E[255&nA]+E[EA>>8]+E[255&EA]+E[iA>>8]+E[255&iA]+E[QA>>8]+E[255&QA]+E[gA>>8]+E[255&gA]+E[AA>>8]+E[255&AA]+E[_>>8]+E[255&_]+E[z>>8]+E[255&z]+E[j>>8]+E[255&j]+E[V>>8]+E[255&V]+E[Z>>8]+E[255&Z]+E[x>>8]+E[255&x]+E[P>>8]+E[255&P]+E[v>>8]+E[255&v]+E[R>>8]+E[255&R]+E[J>>8]+E[255&J]+E[k>>8]+E[255&k]+E[L>>8]+E[255&L]+E[U>>8]+E[255&U]+E[H>>8]+E[255&H]+E[l>>8]+E[255&l]+E[M>>8]+E[255&M]+E[y>>8]+E[255&y]+E[D>>8]+E[255&D]+E[w>>8]+E[255&w]+E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t],512)}function X(A){var I,g=A.length-3,C=a[512].offset,Q=0,t=0|C[31],i=0,B=0|C[30],e=0,n=0|C[29],h=0,o=0|C[28],r=0,w=0|C[27],f=0,D=0|C[26],c=0,y=0|C[25],F=0,M=0|C[24],u=0,l=0|C[23],p=0,H=0|C[22],G=0,U=0|C[21],d=0,L=0|C[20],m=0,k=0|C[19],N=0,J=0|C[18],S=0,R=0|C[17],b=0,v=0|C[16],Y=0,P=0|C[15],q=0,x=0|C[14],X=0,Z=0|C[13],K=0,V=0|C[12],O=0,j=0|C[11],W=0,z=0|C[10],T=0,_=0|C[9],$=0,AA=0|C[8],IA=0,gA=0|C[7],CA=0,QA=0|C[6],tA=0,iA=0|C[5],BA=0,EA=0|C[4],eA=0,nA=0|C[3],hA=0,oA=0|C[2],aA=0,rA=0|C[1],sA=0,wA=0|C[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=343*(B=65535&i),e=343*(n=65535&e),h=343*(o=65535&h),r=343*(w=65535&r),f=343*(D=65535&f),c=343*(y=65535&c),F=343*(M=65535&F),u=343*(l=65535&u),p=343*(H=65535&p),G=343*(U=65535&G),d=343*(L=65535&d),m=343*(k=65535&m),N=343*(J=65535&N),S=343*(R=65535&S),b=343*(v=65535&b),Y=343*(P=65535&Y),q=343*(x=65535&q),X=343*(Z=65535&X),K=343*(V=65535&K),O=343*(j=65535&O),W=343*(z=65535&W),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(gA=65535&IA),CA=343*(QA=65535&CA),tA=343*(iA=65535&tA),BA=343*(EA=65535&BA),eA=343*(nA=65535&eA),hA=343*(oA=65535&hA),aA=343*(rA=65535&aA),sA=343*wA,W+=(t^=A.charCodeAt(I++))<<8,T+=B<<8,$+=n<<8,IA+=o<<8,CA+=w<<8,tA+=D<<8,BA+=y<<8,eA+=M<<8,hA+=l<<8,aA+=H<<8,t=65535&(Q=343*t),wA=(sA+=U<<8)+((aA+=(hA+=(eA+=(BA+=(tA+=(CA+=(IA+=($+=(T+=(W+=(O+=(K+=(X+=(q+=(Y+=(b+=(S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=343*(B=65535&i),e=343*(n=65535&e),h=343*(o=65535&h),r=343*(w=65535&r),f=343*(D=65535&f),c=343*(y=65535&c),F=343*(M=65535&F),u=343*(l=65535&u),p=343*(H=65535&p),G=343*(U=65535&G),d=343*(L=65535&d),m=343*(k=65535&m),N=343*(J=65535&N),S=343*(R=65535&S),b=343*(v=65535&b),Y=343*(P=65535&Y),q=343*(x=65535&q),X=343*(Z=65535&X),K=343*(V=65535&K),O=343*(j=65535&O),W=343*(z=65535&W),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(gA=65535&IA),CA=343*(QA=65535&CA),tA=343*(iA=65535&tA),BA=343*(EA=65535&BA),eA=343*(nA=65535&eA),hA=343*(oA=65535&hA),aA=343*(rA=65535&aA),sA=343*wA,W+=(t^=A.charCodeAt(I++))<<8,T+=B<<8,$+=n<<8,IA+=o<<8,CA+=w<<8,tA+=D<<8,BA+=y<<8,eA+=M<<8,hA+=l<<8,aA+=H<<8,t=65535&(Q=343*t),wA=(sA+=U<<8)+((aA+=(hA+=(eA+=(BA+=(tA+=(CA+=(IA+=($+=(T+=(W+=(O+=(K+=(X+=(q+=(Y+=(b+=(S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=343*(B=65535&i),e=343*(n=65535&e),h=343*(o=65535&h),r=343*(w=65535&r),f=343*(D=65535&f),c=343*(y=65535&c),F=343*(M=65535&F),u=343*(l=65535&u),p=343*(H=65535&p),G=343*(U=65535&G),d=343*(L=65535&d),m=343*(k=65535&m),N=343*(J=65535&N),S=343*(R=65535&S),b=343*(v=65535&b),Y=343*(P=65535&Y),q=343*(x=65535&q),X=343*(Z=65535&X),K=343*(V=65535&K),O=343*(j=65535&O),W=343*(z=65535&W),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(gA=65535&IA),CA=343*(QA=65535&CA),tA=343*(iA=65535&tA),BA=343*(EA=65535&BA),eA=343*(nA=65535&eA),hA=343*(oA=65535&hA),aA=343*(rA=65535&aA),sA=343*wA,W+=(t^=A.charCodeAt(I++))<<8,T+=B<<8,$+=n<<8,IA+=o<<8,CA+=w<<8,tA+=D<<8,BA+=y<<8,eA+=M<<8,hA+=l<<8,aA+=H<<8,sA+=U<<8,t=65535&(Q=343*t),B=65535&(i+=Q>>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),R=65535&(S+=N>>>16),v=65535&(b+=S>>>16),P=65535&(Y+=b>>>16),x=65535&(q+=Y>>>16),Z=65535&(X+=q>>>16),V=65535&(K+=X>>>16),j=65535&(O+=K>>>16),z=65535&(W+=O>>>16),_=65535&(T+=W>>>16),AA=65535&($+=T>>>16),gA=65535&(IA+=$>>>16),QA=65535&(CA+=IA>>>16),iA=65535&(tA+=CA>>>16),EA=65535&(BA+=tA>>>16),nA=65535&(eA+=BA>>>16),oA=65535&(hA+=eA>>>16),wA=sA+((aA+=hA>>>16)>>>16)&65535,rA=65535&aA,t^=A.charCodeAt(I++);for(;I>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),R=65535&(S+=N>>>16),v=65535&(b+=S>>>16),P=65535&(Y+=b>>>16),x=65535&(q+=Y>>>16),Z=65535&(X+=q>>>16),V=65535&(K+=X>>>16),j=65535&(O+=K>>>16),z=65535&(W+=O>>>16),_=65535&(T+=W>>>16),AA=65535&($+=T>>>16),gA=65535&(IA+=$>>>16),QA=65535&(CA+=IA>>>16),iA=65535&(tA+=CA>>>16),EA=65535&(BA+=tA>>>16),nA=65535&(eA+=BA>>>16),oA=65535&(hA+=eA>>>16),wA=sA+((aA+=hA>>>16)>>>16)&65535,rA=65535&aA,t^=A.charCodeAt(I++);return s(E[wA>>8]+E[255&wA]+E[rA>>8]+E[255&rA]+E[oA>>8]+E[255&oA]+E[nA>>8]+E[255&nA]+E[EA>>8]+E[255&EA]+E[iA>>8]+E[255&iA]+E[QA>>8]+E[255&QA]+E[gA>>8]+E[255&gA]+E[AA>>8]+E[255&AA]+E[_>>8]+E[255&_]+E[z>>8]+E[255&z]+E[j>>8]+E[255&j]+E[V>>8]+E[255&V]+E[Z>>8]+E[255&Z]+E[x>>8]+E[255&x]+E[P>>8]+E[255&P]+E[v>>8]+E[255&v]+E[R>>8]+E[255&R]+E[J>>8]+E[255&J]+E[k>>8]+E[255&k]+E[L>>8]+E[255&L]+E[U>>8]+E[255&U]+E[H>>8]+E[255&H]+E[l>>8]+E[255&l]+E[M>>8]+E[255&M]+E[y>>8]+E[255&y]+E[D>>8]+E[255&D]+E[w>>8]+E[255&w]+E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t],512)}function Z(A){var I,g,C=A.length,Q=a[512].offset,t=0,i=0|Q[31],B=0,e=0|Q[30],n=0,h=0|Q[29],o=0,r=0|Q[28],w=0,f=0|Q[27],D=0,c=0|Q[26],y=0,F=0|Q[25],M=0,u=0|Q[24],l=0,p=0|Q[23],H=0,G=0|Q[22],U=0,d=0|Q[21],L=0,m=0|Q[20],k=0,N=0|Q[19],J=0,S=0|Q[18],R=0,b=0|Q[17],v=0,Y=0|Q[16],P=0,q=0|Q[15],x=0,X=0|Q[14],Z=0,K=0|Q[13],V=0,O=0|Q[12],j=0,W=0|Q[11],z=0,T=0|Q[10],_=0,$=0|Q[9],AA=0,IA=0|Q[8],gA=0,CA=0|Q[7],QA=0,tA=0|Q[6],iA=0,BA=0|Q[5],EA=0,eA=0|Q[4],nA=0,hA=0|Q[3],oA=0,aA=0|Q[2],rA=0,sA=0|Q[1],wA=0,fA=0|Q[0];for(g=0;g>6|192)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,wA+=d<<8,i=65535&(t=343*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),fA=wA+((rA+=oA>>>16)>>>16)&65535,sA=65535&rA,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,i=65535&(t=343*i),fA=(wA+=d<<8)+((rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=343*(e=65535&B),n=343*(h=65535&n),o=343*(r=65535&o),w=343*(f=65535&w),D=343*(c=65535&D),y=343*(F=65535&y),M=343*(u=65535&M),l=343*(p=65535&l),H=343*(G=65535&H),U=343*(d=65535&U),L=343*(m=65535&L),k=343*(N=65535&k),J=343*(S=65535&J),R=343*(b=65535&R),v=343*(Y=65535&v),P=343*(q=65535&P),x=343*(X=65535&x),Z=343*(K=65535&Z),V=343*(O=65535&V),j=343*(W=65535&j),z=343*(T=65535&z),_=343*($=65535&_),AA=343*(IA=65535&AA),gA=343*(CA=65535&gA),QA=343*(tA=65535&QA),iA=343*(BA=65535&iA),EA=343*(eA=65535&EA),nA=343*(hA=65535&nA),oA=343*(aA=65535&oA),rA=343*(sA=65535&rA),wA=343*fA,z+=(i^=I>>12&63|128)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,i=65535&(t=343*i),fA=(wA+=d<<8)+((rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=343*(e=65535&B),n=343*(h=65535&n),o=343*(r=65535&o),w=343*(f=65535&w),D=343*(c=65535&D),y=343*(F=65535&y),M=343*(u=65535&M),l=343*(p=65535&l),H=343*(G=65535&H),U=343*(d=65535&U),L=343*(m=65535&L),k=343*(N=65535&k),J=343*(S=65535&J),R=343*(b=65535&R),v=343*(Y=65535&v),P=343*(q=65535&P),x=343*(X=65535&x),Z=343*(K=65535&Z),V=343*(O=65535&V),j=343*(W=65535&j),z=343*(T=65535&z),_=343*($=65535&_),AA=343*(IA=65535&AA),gA=343*(CA=65535&gA),QA=343*(tA=65535&QA),iA=343*(BA=65535&iA),EA=343*(eA=65535&EA),nA=343*(hA=65535&nA),oA=343*(aA=65535&oA),rA=343*(sA=65535&rA),wA=343*fA,z+=(i^=I>>6&63|128)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,wA+=d<<8,i=65535&(t=343*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),fA=wA+((rA+=oA>>>16)>>>16)&65535,sA=65535&rA,i^=63&I|128):(B=343*e,n=343*h,o=343*r,w=343*f,D=343*c,y=343*F,M=343*u,l=343*p,H=343*G,U=343*d,L=343*m,k=343*N,J=343*S,R=343*b,v=343*Y,P=343*q,x=343*X,Z=343*K,V=343*O,j=343*W,z=343*T,_=343*$,AA=343*IA,gA=343*CA,QA=343*tA,iA=343*BA,EA=343*eA,nA=343*hA,oA=343*aA,rA=343*sA,wA=343*fA,z+=(i^=I>>12|224)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,i=65535&(t=343*i),fA=(wA+=d<<8)+((rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=343*(e=65535&B),n=343*(h=65535&n),o=343*(r=65535&o),w=343*(f=65535&w),D=343*(c=65535&D),y=343*(F=65535&y),M=343*(u=65535&M),l=343*(p=65535&l),H=343*(G=65535&H),U=343*(d=65535&U),L=343*(m=65535&L),k=343*(N=65535&k),J=343*(S=65535&J),R=343*(b=65535&R),v=343*(Y=65535&v),P=343*(q=65535&P),x=343*(X=65535&x),Z=343*(K=65535&Z),V=343*(O=65535&V),j=343*(W=65535&j),z=343*(T=65535&z),_=343*($=65535&_),AA=343*(IA=65535&AA),gA=343*(CA=65535&gA),QA=343*(tA=65535&QA),iA=343*(BA=65535&iA),EA=343*(eA=65535&EA),nA=343*(hA=65535&nA),oA=343*(aA=65535&oA),rA=343*(sA=65535&rA),wA=343*fA,z+=(i^=I>>6&63|128)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,wA+=d<<8,i=65535&(t=343*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),fA=wA+((rA+=oA>>>16)>>>16)&65535,sA=65535&rA,i^=63&I|128),B=343*e,n=343*h,o=343*r,w=343*f,D=343*c,y=343*F,M=343*u,l=343*p,H=343*G,U=343*d,L=343*m,k=343*N,J=343*S,R=343*b,v=343*Y,P=343*q,x=343*X,Z=343*K,V=343*O,j=343*W,z=343*T,_=343*$,AA=343*IA,gA=343*CA,QA=343*tA,iA=343*BA,EA=343*eA,nA=343*hA,oA=343*aA,rA=343*sA,wA=343*fA,z+=i<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,wA+=d<<8,i=65535&(t=343*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),fA=wA+((rA+=oA>>>16)>>>16)&65535,sA=65535&rA;return s(E[fA>>8]+E[255&fA]+E[sA>>8]+E[255&sA]+E[aA>>8]+E[255&aA]+E[hA>>8]+E[255&hA]+E[eA>>8]+E[255&eA]+E[BA>>8]+E[255&BA]+E[tA>>8]+E[255&tA]+E[CA>>8]+E[255&CA]+E[IA>>8]+E[255&IA]+E[$>>8]+E[255&$]+E[T>>8]+E[255&T]+E[W>>8]+E[255&W]+E[O>>8]+E[255&O]+E[K>>8]+E[255&K]+E[X>>8]+E[255&X]+E[q>>8]+E[255&q]+E[Y>>8]+E[255&Y]+E[b>>8]+E[255&b]+E[S>>8]+E[255&S]+E[N>>8]+E[255&N]+E[m>>8]+E[255&m]+E[d>>8]+E[255&d]+E[G>>8]+E[255&G]+E[p>>8]+E[255&p]+E[u>>8]+E[255&u]+E[F>>8]+E[255&F]+E[c>>8]+E[255&c]+E[f>>8]+E[255&f]+E[r>>8]+E[255&r]+E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i],512)}function K(A){var I,g,C=A.length,Q=a[512].offset,t=0,i=0|Q[31],B=0,e=0|Q[30],n=0,h=0|Q[29],o=0,r=0|Q[28],w=0,f=0|Q[27],D=0,c=0|Q[26],y=0,F=0|Q[25],M=0,u=0|Q[24],l=0,p=0|Q[23],H=0,G=0|Q[22],U=0,d=0|Q[21],L=0,m=0|Q[20],k=0,N=0|Q[19],J=0,S=0|Q[18],R=0,b=0|Q[17],v=0,Y=0|Q[16],P=0,q=0|Q[15],x=0,X=0|Q[14],Z=0,K=0|Q[13],V=0,O=0|Q[12],j=0,W=0|Q[11],z=0,T=0|Q[10],_=0,$=0|Q[9],AA=0,IA=0|Q[8],gA=0,CA=0|Q[7],QA=0,tA=0|Q[6],iA=0,BA=0|Q[5],EA=0,eA=0|Q[4],nA=0,hA=0|Q[3],oA=0,aA=0|Q[2],rA=0,sA=0|Q[1],wA=0,fA=0|Q[0];for(g=0;g>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),fA=wA+((rA+=oA>>>16)>>>16)&65535,sA=65535&rA,(I=A.charCodeAt(g))<128?i^=I:I<2048?(B=343*e,n=343*h,o=343*r,w=343*f,D=343*c,y=343*F,M=343*u,l=343*p,H=343*G,U=343*d,L=343*m,k=343*N,J=343*S,R=343*b,v=343*Y,P=343*q,x=343*X,Z=343*K,V=343*O,j=343*W,z=343*T,_=343*$,AA=343*IA,gA=343*CA,QA=343*tA,iA=343*BA,EA=343*eA,nA=343*hA,oA=343*aA,rA=343*sA,wA=343*fA,z+=(i^=I>>6|192)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,wA+=d<<8,i=65535&(t=343*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),fA=wA+((rA+=oA>>>16)>>>16)&65535,sA=65535&rA,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,i=65535&(t=343*i),fA=(wA+=d<<8)+((rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=343*(e=65535&B),n=343*(h=65535&n),o=343*(r=65535&o),w=343*(f=65535&w),D=343*(c=65535&D),y=343*(F=65535&y),M=343*(u=65535&M),l=343*(p=65535&l),H=343*(G=65535&H),U=343*(d=65535&U),L=343*(m=65535&L),k=343*(N=65535&k),J=343*(S=65535&J),R=343*(b=65535&R),v=343*(Y=65535&v),P=343*(q=65535&P),x=343*(X=65535&x),Z=343*(K=65535&Z),V=343*(O=65535&V),j=343*(W=65535&j),z=343*(T=65535&z),_=343*($=65535&_),AA=343*(IA=65535&AA),gA=343*(CA=65535&gA),QA=343*(tA=65535&QA),iA=343*(BA=65535&iA),EA=343*(eA=65535&EA),nA=343*(hA=65535&nA),oA=343*(aA=65535&oA),rA=343*(sA=65535&rA),wA=343*fA,z+=(i^=I>>12&63|128)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,i=65535&(t=343*i),fA=(wA+=d<<8)+((rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=343*(e=65535&B),n=343*(h=65535&n),o=343*(r=65535&o),w=343*(f=65535&w),D=343*(c=65535&D),y=343*(F=65535&y),M=343*(u=65535&M),l=343*(p=65535&l),H=343*(G=65535&H),U=343*(d=65535&U),L=343*(m=65535&L),k=343*(N=65535&k),J=343*(S=65535&J),R=343*(b=65535&R),v=343*(Y=65535&v),P=343*(q=65535&P),x=343*(X=65535&x),Z=343*(K=65535&Z),V=343*(O=65535&V),j=343*(W=65535&j),z=343*(T=65535&z),_=343*($=65535&_),AA=343*(IA=65535&AA),gA=343*(CA=65535&gA),QA=343*(tA=65535&QA),iA=343*(BA=65535&iA),EA=343*(eA=65535&EA),nA=343*(hA=65535&nA),oA=343*(aA=65535&oA),rA=343*(sA=65535&rA),wA=343*fA,z+=(i^=I>>6&63|128)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,wA+=d<<8,i=65535&(t=343*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),fA=wA+((rA+=oA>>>16)>>>16)&65535,sA=65535&rA,i^=63&I|128):(B=343*e,n=343*h,o=343*r,w=343*f,D=343*c,y=343*F,M=343*u,l=343*p,H=343*G,U=343*d,L=343*m,k=343*N,J=343*S,R=343*b,v=343*Y,P=343*q,x=343*X,Z=343*K,V=343*O,j=343*W,z=343*T,_=343*$,AA=343*IA,gA=343*CA,QA=343*tA,iA=343*BA,EA=343*eA,nA=343*hA,oA=343*aA,rA=343*sA,wA=343*fA,z+=(i^=I>>12|224)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,i=65535&(t=343*i),fA=(wA+=d<<8)+((rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=343*(e=65535&B),n=343*(h=65535&n),o=343*(r=65535&o),w=343*(f=65535&w),D=343*(c=65535&D),y=343*(F=65535&y),M=343*(u=65535&M),l=343*(p=65535&l),H=343*(G=65535&H),U=343*(d=65535&U),L=343*(m=65535&L),k=343*(N=65535&k),J=343*(S=65535&J),R=343*(b=65535&R),v=343*(Y=65535&v),P=343*(q=65535&P),x=343*(X=65535&x),Z=343*(K=65535&Z),V=343*(O=65535&V),j=343*(W=65535&j),z=343*(T=65535&z),_=343*($=65535&_),AA=343*(IA=65535&AA),gA=343*(CA=65535&gA),QA=343*(tA=65535&QA),iA=343*(BA=65535&iA),EA=343*(eA=65535&EA),nA=343*(hA=65535&nA),oA=343*(aA=65535&oA),rA=343*(sA=65535&rA),wA=343*fA,z+=(i^=I>>6&63|128)<<8,_+=e<<8,AA+=h<<8,gA+=r<<8,QA+=f<<8,iA+=c<<8,EA+=F<<8,nA+=u<<8,oA+=p<<8,rA+=G<<8,wA+=d<<8,i=65535&(t=343*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),fA=wA+((rA+=oA>>>16)>>>16)&65535,sA=65535&rA,i^=63&I|128);return s(E[fA>>8]+E[255&fA]+E[sA>>8]+E[255&sA]+E[aA>>8]+E[255&aA]+E[hA>>8]+E[255&hA]+E[eA>>8]+E[255&eA]+E[BA>>8]+E[255&BA]+E[tA>>8]+E[255&tA]+E[CA>>8]+E[255&CA]+E[IA>>8]+E[255&IA]+E[$>>8]+E[255&$]+E[T>>8]+E[255&T]+E[W>>8]+E[255&W]+E[O>>8]+E[255&O]+E[K>>8]+E[255&K]+E[X>>8]+E[255&X]+E[q>>8]+E[255&q]+E[Y>>8]+E[255&Y]+E[b>>8]+E[255&b]+E[S>>8]+E[255&S]+E[N>>8]+E[255&N]+E[m>>8]+E[255&m]+E[d>>8]+E[255&d]+E[G>>8]+E[255&G]+E[p>>8]+E[255&p]+E[u>>8]+E[255&u]+E[F>>8]+E[255&F]+E[c>>8]+E[255&c]+E[f>>8]+E[255&f]+E[r>>8]+E[255&r]+E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i],512)}function V(A){var I,g=A.length-3,C=a[1024].offset,Q=0,t=0|C[63],i=0,B=0|C[62],e=0,n=0|C[61],h=0,o=0|C[60],r=0,w=0|C[59],f=0,D=0|C[58],c=0,y=0|C[57],F=0,M=0|C[56],u=0,l=0|C[55],p=0,H=0|C[54],G=0,U=0|C[53],d=0,L=0|C[52],m=0,k=0|C[51],N=0,J=0|C[50],S=0,R=0|C[49],b=0,v=0|C[48],Y=0,P=0|C[47],q=0,x=0|C[46],X=0,Z=0|C[45],K=0,V=0|C[44],O=0,j=0|C[43],W=0,z=0|C[42],T=0,_=0|C[41],$=0,AA=0|C[40],IA=0,gA=0|C[39],CA=0,QA=0|C[38],tA=0,iA=0|C[37],BA=0,EA=0|C[36],eA=0,nA=0|C[35],hA=0,oA=0|C[34],aA=0,rA=0|C[33],sA=0,wA=0|C[32],fA=0,DA=0|C[31],cA=0,yA=0|C[30],FA=0,MA=0|C[29],uA=0,lA=0|C[28],pA=0,HA=0|C[27],GA=0,UA=0|C[26],dA=0,LA=0|C[25],mA=0,kA=0|C[24],NA=0,JA=0|C[23],SA=0,RA=0|C[22],bA=0,vA=0|C[21],YA=0,PA=0|C[20],qA=0,xA=0|C[19],XA=0,ZA=0|C[18],KA=0,VA=0|C[17],OA=0,jA=0|C[16],WA=0,zA=0|C[15],TA=0,_A=0|C[14],$A=0,AI=0|C[13],II=0,gI=0|C[12],CI=0,QI=0|C[11],tI=0,iI=0|C[10],BI=0,EI=0|C[9],eI=0,nI=0|C[8],hI=0,oI=0|C[7],aI=0,rI=0|C[6],sI=0,wI=0|C[5],fI=0,DI=0|C[4],cI=0,yI=0|C[3],FI=0,MI=0|C[2],uI=0,lI=0|C[1],pI=0,HI=0|C[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=397*(B=65535&i),e=397*(n=65535&e),h=397*(o=65535&h),r=397*(w=65535&r),f=397*(D=65535&f),c=397*(y=65535&c),F=397*(M=65535&F),u=397*(l=65535&u),p=397*(H=65535&p),G=397*(U=65535&G),d=397*(L=65535&d),m=397*(k=65535&m),N=397*(J=65535&N),S=397*(R=65535&S),b=397*(v=65535&b),Y=397*(P=65535&Y),q=397*(x=65535&q),X=397*(Z=65535&X),K=397*(V=65535&K),O=397*(j=65535&O),W=397*(z=65535&W),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(gA=65535&IA),CA=397*(QA=65535&CA),tA=397*(iA=65535&tA),BA=397*(EA=65535&BA),eA=397*(nA=65535&eA),hA=397*(oA=65535&hA),aA=397*(rA=65535&aA),sA=397*(wA=65535&sA),fA=397*(DA=65535&fA),cA=397*(yA=65535&cA),FA=397*(MA=65535&FA),uA=397*(lA=65535&uA),pA=397*(HA=65535&pA),GA=397*(UA=65535&GA),dA=397*(LA=65535&dA),mA=397*(kA=65535&mA),NA=397*(JA=65535&NA),SA=397*(RA=65535&SA),bA=397*(vA=65535&bA),YA=397*(PA=65535&YA),qA=397*(xA=65535&qA),XA=397*(ZA=65535&XA),KA=397*(VA=65535&KA),OA=397*(jA=65535&OA),WA=397*(zA=65535&WA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(gI=65535&II),CI=397*(QI=65535&CI),tI=397*(iI=65535&tI),BI=397*(EI=65535&BI),eI=397*(nI=65535&eI),hI=397*(oI=65535&hI),aI=397*(rI=65535&aI),sI=397*(wI=65535&sI),fI=397*(DI=65535&fI),cI=397*(yI=65535&cI),FI=397*(MI=65535&FI),uI=397*(lI=65535&uI),pI=397*HI,bA+=(t^=A.charCodeAt(I++))<<8,YA+=B<<8,qA+=n<<8,XA+=o<<8,KA+=w<<8,OA+=D<<8,WA+=y<<8,TA+=M<<8,$A+=l<<8,II+=H<<8,CI+=U<<8,tI+=L<<8,BI+=k<<8,eI+=J<<8,hI+=R<<8,aI+=v<<8,sI+=P<<8,fI+=x<<8,cI+=Z<<8,FI+=V<<8,uI+=j<<8,t=65535&(Q=397*t),HI=(pI+=z<<8)+((uI+=(FI+=(cI+=(fI+=(sI+=(aI+=(hI+=(eI+=(BI+=(tI+=(CI+=(II+=($A+=(TA+=(WA+=(OA+=(KA+=(XA+=(qA+=(YA+=(bA+=(SA+=(NA+=(mA+=(dA+=(GA+=(pA+=(uA+=(FA+=(cA+=(fA+=(sA+=(aA+=(hA+=(eA+=(BA+=(tA+=(CA+=(IA+=($+=(T+=(W+=(O+=(K+=(X+=(q+=(Y+=(b+=(S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=397*(B=65535&i),e=397*(n=65535&e),h=397*(o=65535&h),r=397*(w=65535&r),f=397*(D=65535&f),c=397*(y=65535&c),F=397*(M=65535&F),u=397*(l=65535&u),p=397*(H=65535&p),G=397*(U=65535&G),d=397*(L=65535&d),m=397*(k=65535&m),N=397*(J=65535&N),S=397*(R=65535&S),b=397*(v=65535&b),Y=397*(P=65535&Y),q=397*(x=65535&q),X=397*(Z=65535&X),K=397*(V=65535&K),O=397*(j=65535&O),W=397*(z=65535&W),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(gA=65535&IA),CA=397*(QA=65535&CA),tA=397*(iA=65535&tA),BA=397*(EA=65535&BA),eA=397*(nA=65535&eA),hA=397*(oA=65535&hA),aA=397*(rA=65535&aA),sA=397*(wA=65535&sA),fA=397*(DA=65535&fA),cA=397*(yA=65535&cA),FA=397*(MA=65535&FA),uA=397*(lA=65535&uA),pA=397*(HA=65535&pA),GA=397*(UA=65535&GA),dA=397*(LA=65535&dA),mA=397*(kA=65535&mA),NA=397*(JA=65535&NA),SA=397*(RA=65535&SA),bA=397*(vA=65535&bA),YA=397*(PA=65535&YA),qA=397*(xA=65535&qA),XA=397*(ZA=65535&XA),KA=397*(VA=65535&KA),OA=397*(jA=65535&OA),WA=397*(zA=65535&WA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(gI=65535&II),CI=397*(QI=65535&CI),tI=397*(iI=65535&tI),BI=397*(EI=65535&BI),eI=397*(nI=65535&eI),hI=397*(oI=65535&hI),aI=397*(rI=65535&aI),sI=397*(wI=65535&sI),fI=397*(DI=65535&fI),cI=397*(yI=65535&cI),FI=397*(MI=65535&FI),uI=397*(lI=65535&uI),pI=397*HI,bA+=(t^=A.charCodeAt(I++))<<8,YA+=B<<8,qA+=n<<8,XA+=o<<8,KA+=w<<8,OA+=D<<8,WA+=y<<8,TA+=M<<8,$A+=l<<8,II+=H<<8,CI+=U<<8,tI+=L<<8,BI+=k<<8,eI+=J<<8,hI+=R<<8,aI+=v<<8,sI+=P<<8,fI+=x<<8,cI+=Z<<8,FI+=V<<8,uI+=j<<8,t=65535&(Q=397*t),HI=(pI+=z<<8)+((uI+=(FI+=(cI+=(fI+=(sI+=(aI+=(hI+=(eI+=(BI+=(tI+=(CI+=(II+=($A+=(TA+=(WA+=(OA+=(KA+=(XA+=(qA+=(YA+=(bA+=(SA+=(NA+=(mA+=(dA+=(GA+=(pA+=(uA+=(FA+=(cA+=(fA+=(sA+=(aA+=(hA+=(eA+=(BA+=(tA+=(CA+=(IA+=($+=(T+=(W+=(O+=(K+=(X+=(q+=(Y+=(b+=(S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=397*(B=65535&i),e=397*(n=65535&e),h=397*(o=65535&h),r=397*(w=65535&r),f=397*(D=65535&f),c=397*(y=65535&c),F=397*(M=65535&F),u=397*(l=65535&u),p=397*(H=65535&p),G=397*(U=65535&G),d=397*(L=65535&d),m=397*(k=65535&m),N=397*(J=65535&N),S=397*(R=65535&S),b=397*(v=65535&b),Y=397*(P=65535&Y),q=397*(x=65535&q),X=397*(Z=65535&X),K=397*(V=65535&K),O=397*(j=65535&O),W=397*(z=65535&W),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(gA=65535&IA),CA=397*(QA=65535&CA),tA=397*(iA=65535&tA),BA=397*(EA=65535&BA),eA=397*(nA=65535&eA),hA=397*(oA=65535&hA),aA=397*(rA=65535&aA),sA=397*(wA=65535&sA),fA=397*(DA=65535&fA),cA=397*(yA=65535&cA),FA=397*(MA=65535&FA),uA=397*(lA=65535&uA),pA=397*(HA=65535&pA),GA=397*(UA=65535&GA),dA=397*(LA=65535&dA),mA=397*(kA=65535&mA),NA=397*(JA=65535&NA),SA=397*(RA=65535&SA),bA=397*(vA=65535&bA),YA=397*(PA=65535&YA),qA=397*(xA=65535&qA),XA=397*(ZA=65535&XA),KA=397*(VA=65535&KA),OA=397*(jA=65535&OA),WA=397*(zA=65535&WA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(gI=65535&II),CI=397*(QI=65535&CI),tI=397*(iI=65535&tI),BI=397*(EI=65535&BI),eI=397*(nI=65535&eI),hI=397*(oI=65535&hI),aI=397*(rI=65535&aI),sI=397*(wI=65535&sI),fI=397*(DI=65535&fI),cI=397*(yI=65535&cI),FI=397*(MI=65535&FI),uI=397*(lI=65535&uI),pI=397*HI,bA+=(t^=A.charCodeAt(I++))<<8,YA+=B<<8,qA+=n<<8,XA+=o<<8,KA+=w<<8,OA+=D<<8,WA+=y<<8,TA+=M<<8,$A+=l<<8,II+=H<<8,CI+=U<<8,tI+=L<<8,BI+=k<<8,eI+=J<<8,hI+=R<<8,aI+=v<<8,sI+=P<<8,fI+=x<<8,cI+=Z<<8,FI+=V<<8,uI+=j<<8,pI+=z<<8,t=65535&(Q=397*t),B=65535&(i+=Q>>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),R=65535&(S+=N>>>16),v=65535&(b+=S>>>16),P=65535&(Y+=b>>>16),x=65535&(q+=Y>>>16),Z=65535&(X+=q>>>16),V=65535&(K+=X>>>16),j=65535&(O+=K>>>16),z=65535&(W+=O>>>16),_=65535&(T+=W>>>16),AA=65535&($+=T>>>16),gA=65535&(IA+=$>>>16),QA=65535&(CA+=IA>>>16),iA=65535&(tA+=CA>>>16),EA=65535&(BA+=tA>>>16),nA=65535&(eA+=BA>>>16),oA=65535&(hA+=eA>>>16),rA=65535&(aA+=hA>>>16),wA=65535&(sA+=aA>>>16),DA=65535&(fA+=sA>>>16),yA=65535&(cA+=fA>>>16),MA=65535&(FA+=cA>>>16),lA=65535&(uA+=FA>>>16),HA=65535&(pA+=uA>>>16),UA=65535&(GA+=pA>>>16),LA=65535&(dA+=GA>>>16),kA=65535&(mA+=dA>>>16),JA=65535&(NA+=mA>>>16),RA=65535&(SA+=NA>>>16),vA=65535&(bA+=SA>>>16),PA=65535&(YA+=bA>>>16),xA=65535&(qA+=YA>>>16),ZA=65535&(XA+=qA>>>16),VA=65535&(KA+=XA>>>16),jA=65535&(OA+=KA>>>16),zA=65535&(WA+=OA>>>16),_A=65535&(TA+=WA>>>16),AI=65535&($A+=TA>>>16),gI=65535&(II+=$A>>>16),QI=65535&(CI+=II>>>16),iI=65535&(tI+=CI>>>16),EI=65535&(BI+=tI>>>16),nI=65535&(eI+=BI>>>16),oI=65535&(hI+=eI>>>16),rI=65535&(aI+=hI>>>16),wI=65535&(sI+=aI>>>16),DI=65535&(fI+=sI>>>16),yI=65535&(cI+=fI>>>16),MI=65535&(FI+=cI>>>16),HI=pI+((uI+=FI>>>16)>>>16)&65535,lI=65535&uI;for(;I>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),R=65535&(S+=N>>>16),v=65535&(b+=S>>>16),P=65535&(Y+=b>>>16),x=65535&(q+=Y>>>16),Z=65535&(X+=q>>>16),V=65535&(K+=X>>>16),j=65535&(O+=K>>>16),z=65535&(W+=O>>>16),_=65535&(T+=W>>>16),AA=65535&($+=T>>>16),gA=65535&(IA+=$>>>16),QA=65535&(CA+=IA>>>16),iA=65535&(tA+=CA>>>16),EA=65535&(BA+=tA>>>16),nA=65535&(eA+=BA>>>16),oA=65535&(hA+=eA>>>16),rA=65535&(aA+=hA>>>16),wA=65535&(sA+=aA>>>16),DA=65535&(fA+=sA>>>16),yA=65535&(cA+=fA>>>16),MA=65535&(FA+=cA>>>16),lA=65535&(uA+=FA>>>16),HA=65535&(pA+=uA>>>16),UA=65535&(GA+=pA>>>16),LA=65535&(dA+=GA>>>16),kA=65535&(mA+=dA>>>16),JA=65535&(NA+=mA>>>16),RA=65535&(SA+=NA>>>16),vA=65535&(bA+=SA>>>16),PA=65535&(YA+=bA>>>16),xA=65535&(qA+=YA>>>16),ZA=65535&(XA+=qA>>>16),VA=65535&(KA+=XA>>>16),jA=65535&(OA+=KA>>>16),zA=65535&(WA+=OA>>>16),_A=65535&(TA+=WA>>>16),AI=65535&($A+=TA>>>16),gI=65535&(II+=$A>>>16),QI=65535&(CI+=II>>>16),iI=65535&(tI+=CI>>>16),EI=65535&(BI+=tI>>>16),nI=65535&(eI+=BI>>>16),oI=65535&(hI+=eI>>>16),rI=65535&(aI+=hI>>>16),wI=65535&(sI+=aI>>>16),DI=65535&(fI+=sI>>>16),yI=65535&(cI+=fI>>>16),MI=65535&(FI+=cI>>>16),HI=pI+((uI+=FI>>>16)>>>16)&65535,lI=65535&uI;return s(E[HI>>8]+E[255&HI]+E[lI>>8]+E[255&lI]+E[MI>>8]+E[255&MI]+E[yI>>8]+E[255&yI]+E[DI>>8]+E[255&DI]+E[wI>>8]+E[255&wI]+E[rI>>8]+E[255&rI]+E[oI>>8]+E[255&oI]+E[nI>>8]+E[255&nI]+E[EI>>8]+E[255&EI]+E[iI>>8]+E[255&iI]+E[QI>>8]+E[255&QI]+E[gI>>8]+E[255&gI]+E[AI>>8]+E[255&AI]+E[_A>>8]+E[255&_A]+E[zA>>8]+E[255&zA]+E[jA>>8]+E[255&jA]+E[VA>>8]+E[255&VA]+E[ZA>>8]+E[255&ZA]+E[xA>>8]+E[255&xA]+E[PA>>8]+E[255&PA]+E[vA>>8]+E[255&vA]+E[RA>>8]+E[255&RA]+E[JA>>8]+E[255&JA]+E[kA>>8]+E[255&kA]+E[LA>>8]+E[255&LA]+E[UA>>8]+E[255&UA]+E[HA>>8]+E[255&HA]+E[lA>>8]+E[255&lA]+E[MA>>8]+E[255&MA]+E[yA>>8]+E[255&yA]+E[DA>>8]+E[255&DA]+E[wA>>8]+E[255&wA]+E[rA>>8]+E[255&rA]+E[oA>>8]+E[255&oA]+E[nA>>8]+E[255&nA]+E[EA>>8]+E[255&EA]+E[iA>>8]+E[255&iA]+E[QA>>8]+E[255&QA]+E[gA>>8]+E[255&gA]+E[AA>>8]+E[255&AA]+E[_>>8]+E[255&_]+E[z>>8]+E[255&z]+E[j>>8]+E[255&j]+E[V>>8]+E[255&V]+E[Z>>8]+E[255&Z]+E[x>>8]+E[255&x]+E[P>>8]+E[255&P]+E[v>>8]+E[255&v]+E[R>>8]+E[255&R]+E[J>>8]+E[255&J]+E[k>>8]+E[255&k]+E[L>>8]+E[255&L]+E[U>>8]+E[255&U]+E[H>>8]+E[255&H]+E[l>>8]+E[255&l]+E[M>>8]+E[255&M]+E[y>>8]+E[255&y]+E[D>>8]+E[255&D]+E[w>>8]+E[255&w]+E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t],1024)}function O(A){var I,g=A.length-3,C=a[1024].offset,Q=0,t=0|C[63],i=0,B=0|C[62],e=0,n=0|C[61],h=0,o=0|C[60],r=0,w=0|C[59],f=0,D=0|C[58],c=0,y=0|C[57],F=0,M=0|C[56],u=0,l=0|C[55],p=0,H=0|C[54],G=0,U=0|C[53],d=0,L=0|C[52],m=0,k=0|C[51],N=0,J=0|C[50],S=0,R=0|C[49],b=0,v=0|C[48],Y=0,P=0|C[47],q=0,x=0|C[46],X=0,Z=0|C[45],K=0,V=0|C[44],O=0,j=0|C[43],W=0,z=0|C[42],T=0,_=0|C[41],$=0,AA=0|C[40],IA=0,gA=0|C[39],CA=0,QA=0|C[38],tA=0,iA=0|C[37],BA=0,EA=0|C[36],eA=0,nA=0|C[35],hA=0,oA=0|C[34],aA=0,rA=0|C[33],sA=0,wA=0|C[32],fA=0,DA=0|C[31],cA=0,yA=0|C[30],FA=0,MA=0|C[29],uA=0,lA=0|C[28],pA=0,HA=0|C[27],GA=0,UA=0|C[26],dA=0,LA=0|C[25],mA=0,kA=0|C[24],NA=0,JA=0|C[23],SA=0,RA=0|C[22],bA=0,vA=0|C[21],YA=0,PA=0|C[20],qA=0,xA=0|C[19],XA=0,ZA=0|C[18],KA=0,VA=0|C[17],OA=0,jA=0|C[16],WA=0,zA=0|C[15],TA=0,_A=0|C[14],$A=0,AI=0|C[13],II=0,gI=0|C[12],CI=0,QI=0|C[11],tI=0,iI=0|C[10],BI=0,EI=0|C[9],eI=0,nI=0|C[8],hI=0,oI=0|C[7],aI=0,rI=0|C[6],sI=0,wI=0|C[5],fI=0,DI=0|C[4],cI=0,yI=0|C[3],FI=0,MI=0|C[2],uI=0,lI=0|C[1],pI=0,HI=0|C[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=397*(B=65535&i),e=397*(n=65535&e),h=397*(o=65535&h),r=397*(w=65535&r),f=397*(D=65535&f),c=397*(y=65535&c),F=397*(M=65535&F),u=397*(l=65535&u),p=397*(H=65535&p),G=397*(U=65535&G),d=397*(L=65535&d),m=397*(k=65535&m),N=397*(J=65535&N),S=397*(R=65535&S),b=397*(v=65535&b),Y=397*(P=65535&Y),q=397*(x=65535&q),X=397*(Z=65535&X),K=397*(V=65535&K),O=397*(j=65535&O),W=397*(z=65535&W),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(gA=65535&IA),CA=397*(QA=65535&CA),tA=397*(iA=65535&tA),BA=397*(EA=65535&BA),eA=397*(nA=65535&eA),hA=397*(oA=65535&hA),aA=397*(rA=65535&aA),sA=397*(wA=65535&sA),fA=397*(DA=65535&fA),cA=397*(yA=65535&cA),FA=397*(MA=65535&FA),uA=397*(lA=65535&uA),pA=397*(HA=65535&pA),GA=397*(UA=65535&GA),dA=397*(LA=65535&dA),mA=397*(kA=65535&mA),NA=397*(JA=65535&NA),SA=397*(RA=65535&SA),bA=397*(vA=65535&bA),YA=397*(PA=65535&YA),qA=397*(xA=65535&qA),XA=397*(ZA=65535&XA),KA=397*(VA=65535&KA),OA=397*(jA=65535&OA),WA=397*(zA=65535&WA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(gI=65535&II),CI=397*(QI=65535&CI),tI=397*(iI=65535&tI),BI=397*(EI=65535&BI),eI=397*(nI=65535&eI),hI=397*(oI=65535&hI),aI=397*(rI=65535&aI),sI=397*(wI=65535&sI),fI=397*(DI=65535&fI),cI=397*(yI=65535&cI),FI=397*(MI=65535&FI),uI=397*(lI=65535&uI),pI=397*HI,bA+=(t^=A.charCodeAt(I++))<<8,YA+=B<<8,qA+=n<<8,XA+=o<<8,KA+=w<<8,OA+=D<<8,WA+=y<<8,TA+=M<<8,$A+=l<<8,II+=H<<8,CI+=U<<8,tI+=L<<8,BI+=k<<8,eI+=J<<8,hI+=R<<8,aI+=v<<8,sI+=P<<8,fI+=x<<8,cI+=Z<<8,FI+=V<<8,uI+=j<<8,t=65535&(Q=397*t),HI=(pI+=z<<8)+((uI+=(FI+=(cI+=(fI+=(sI+=(aI+=(hI+=(eI+=(BI+=(tI+=(CI+=(II+=($A+=(TA+=(WA+=(OA+=(KA+=(XA+=(qA+=(YA+=(bA+=(SA+=(NA+=(mA+=(dA+=(GA+=(pA+=(uA+=(FA+=(cA+=(fA+=(sA+=(aA+=(hA+=(eA+=(BA+=(tA+=(CA+=(IA+=($+=(T+=(W+=(O+=(K+=(X+=(q+=(Y+=(b+=(S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=397*(B=65535&i),e=397*(n=65535&e),h=397*(o=65535&h),r=397*(w=65535&r),f=397*(D=65535&f),c=397*(y=65535&c),F=397*(M=65535&F),u=397*(l=65535&u),p=397*(H=65535&p),G=397*(U=65535&G),d=397*(L=65535&d),m=397*(k=65535&m),N=397*(J=65535&N),S=397*(R=65535&S),b=397*(v=65535&b),Y=397*(P=65535&Y),q=397*(x=65535&q),X=397*(Z=65535&X),K=397*(V=65535&K),O=397*(j=65535&O),W=397*(z=65535&W),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(gA=65535&IA),CA=397*(QA=65535&CA),tA=397*(iA=65535&tA),BA=397*(EA=65535&BA),eA=397*(nA=65535&eA),hA=397*(oA=65535&hA),aA=397*(rA=65535&aA),sA=397*(wA=65535&sA),fA=397*(DA=65535&fA),cA=397*(yA=65535&cA),FA=397*(MA=65535&FA),uA=397*(lA=65535&uA),pA=397*(HA=65535&pA),GA=397*(UA=65535&GA),dA=397*(LA=65535&dA),mA=397*(kA=65535&mA),NA=397*(JA=65535&NA),SA=397*(RA=65535&SA),bA=397*(vA=65535&bA),YA=397*(PA=65535&YA),qA=397*(xA=65535&qA),XA=397*(ZA=65535&XA),KA=397*(VA=65535&KA),OA=397*(jA=65535&OA),WA=397*(zA=65535&WA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(gI=65535&II),CI=397*(QI=65535&CI),tI=397*(iI=65535&tI),BI=397*(EI=65535&BI),eI=397*(nI=65535&eI),hI=397*(oI=65535&hI),aI=397*(rI=65535&aI),sI=397*(wI=65535&sI),fI=397*(DI=65535&fI),cI=397*(yI=65535&cI),FI=397*(MI=65535&FI),uI=397*(lI=65535&uI),pI=397*HI,bA+=(t^=A.charCodeAt(I++))<<8,YA+=B<<8,qA+=n<<8,XA+=o<<8,KA+=w<<8,OA+=D<<8,WA+=y<<8,TA+=M<<8,$A+=l<<8,II+=H<<8,CI+=U<<8,tI+=L<<8,BI+=k<<8,eI+=J<<8,hI+=R<<8,aI+=v<<8,sI+=P<<8,fI+=x<<8,cI+=Z<<8,FI+=V<<8,uI+=j<<8,t=65535&(Q=397*t),HI=(pI+=z<<8)+((uI+=(FI+=(cI+=(fI+=(sI+=(aI+=(hI+=(eI+=(BI+=(tI+=(CI+=(II+=($A+=(TA+=(WA+=(OA+=(KA+=(XA+=(qA+=(YA+=(bA+=(SA+=(NA+=(mA+=(dA+=(GA+=(pA+=(uA+=(FA+=(cA+=(fA+=(sA+=(aA+=(hA+=(eA+=(BA+=(tA+=(CA+=(IA+=($+=(T+=(W+=(O+=(K+=(X+=(q+=(Y+=(b+=(S+=(N+=(m+=(d+=(G+=(p+=(u+=(F+=(c+=(f+=(r+=(h+=(e+=(i+=Q>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,i=397*(B=65535&i),e=397*(n=65535&e),h=397*(o=65535&h),r=397*(w=65535&r),f=397*(D=65535&f),c=397*(y=65535&c),F=397*(M=65535&F),u=397*(l=65535&u),p=397*(H=65535&p),G=397*(U=65535&G),d=397*(L=65535&d),m=397*(k=65535&m),N=397*(J=65535&N),S=397*(R=65535&S),b=397*(v=65535&b),Y=397*(P=65535&Y),q=397*(x=65535&q),X=397*(Z=65535&X),K=397*(V=65535&K),O=397*(j=65535&O),W=397*(z=65535&W),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(gA=65535&IA),CA=397*(QA=65535&CA),tA=397*(iA=65535&tA),BA=397*(EA=65535&BA),eA=397*(nA=65535&eA),hA=397*(oA=65535&hA),aA=397*(rA=65535&aA),sA=397*(wA=65535&sA),fA=397*(DA=65535&fA),cA=397*(yA=65535&cA),FA=397*(MA=65535&FA),uA=397*(lA=65535&uA),pA=397*(HA=65535&pA),GA=397*(UA=65535&GA),dA=397*(LA=65535&dA),mA=397*(kA=65535&mA),NA=397*(JA=65535&NA),SA=397*(RA=65535&SA),bA=397*(vA=65535&bA),YA=397*(PA=65535&YA),qA=397*(xA=65535&qA),XA=397*(ZA=65535&XA),KA=397*(VA=65535&KA),OA=397*(jA=65535&OA),WA=397*(zA=65535&WA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(gI=65535&II),CI=397*(QI=65535&CI),tI=397*(iI=65535&tI),BI=397*(EI=65535&BI),eI=397*(nI=65535&eI),hI=397*(oI=65535&hI),aI=397*(rI=65535&aI),sI=397*(wI=65535&sI),fI=397*(DI=65535&fI),cI=397*(yI=65535&cI),FI=397*(MI=65535&FI),uI=397*(lI=65535&uI),pI=397*HI,bA+=(t^=A.charCodeAt(I++))<<8,YA+=B<<8,qA+=n<<8,XA+=o<<8,KA+=w<<8,OA+=D<<8,WA+=y<<8,TA+=M<<8,$A+=l<<8,II+=H<<8,CI+=U<<8,tI+=L<<8,BI+=k<<8,eI+=J<<8,hI+=R<<8,aI+=v<<8,sI+=P<<8,fI+=x<<8,cI+=Z<<8,FI+=V<<8,uI+=j<<8,pI+=z<<8,t=65535&(Q=397*t),B=65535&(i+=Q>>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),R=65535&(S+=N>>>16),v=65535&(b+=S>>>16),P=65535&(Y+=b>>>16),x=65535&(q+=Y>>>16),Z=65535&(X+=q>>>16),V=65535&(K+=X>>>16),j=65535&(O+=K>>>16),z=65535&(W+=O>>>16),_=65535&(T+=W>>>16),AA=65535&($+=T>>>16),gA=65535&(IA+=$>>>16),QA=65535&(CA+=IA>>>16),iA=65535&(tA+=CA>>>16),EA=65535&(BA+=tA>>>16),nA=65535&(eA+=BA>>>16),oA=65535&(hA+=eA>>>16),rA=65535&(aA+=hA>>>16),wA=65535&(sA+=aA>>>16),DA=65535&(fA+=sA>>>16),yA=65535&(cA+=fA>>>16),MA=65535&(FA+=cA>>>16),lA=65535&(uA+=FA>>>16),HA=65535&(pA+=uA>>>16),UA=65535&(GA+=pA>>>16),LA=65535&(dA+=GA>>>16),kA=65535&(mA+=dA>>>16),JA=65535&(NA+=mA>>>16),RA=65535&(SA+=NA>>>16),vA=65535&(bA+=SA>>>16),PA=65535&(YA+=bA>>>16),xA=65535&(qA+=YA>>>16),ZA=65535&(XA+=qA>>>16),VA=65535&(KA+=XA>>>16),jA=65535&(OA+=KA>>>16),zA=65535&(WA+=OA>>>16),_A=65535&(TA+=WA>>>16),AI=65535&($A+=TA>>>16),gI=65535&(II+=$A>>>16),QI=65535&(CI+=II>>>16),iI=65535&(tI+=CI>>>16),EI=65535&(BI+=tI>>>16),nI=65535&(eI+=BI>>>16),oI=65535&(hI+=eI>>>16),rI=65535&(aI+=hI>>>16),wI=65535&(sI+=aI>>>16),DI=65535&(fI+=sI>>>16),yI=65535&(cI+=fI>>>16),MI=65535&(FI+=cI>>>16),HI=pI+((uI+=FI>>>16)>>>16)&65535,lI=65535&uI,t^=A.charCodeAt(I++);for(;I>>16),n=65535&(e+=i>>>16),o=65535&(h+=e>>>16),w=65535&(r+=h>>>16),D=65535&(f+=r>>>16),y=65535&(c+=f>>>16),M=65535&(F+=c>>>16),l=65535&(u+=F>>>16),H=65535&(p+=u>>>16),U=65535&(G+=p>>>16),L=65535&(d+=G>>>16),k=65535&(m+=d>>>16),J=65535&(N+=m>>>16),R=65535&(S+=N>>>16),v=65535&(b+=S>>>16),P=65535&(Y+=b>>>16),x=65535&(q+=Y>>>16),Z=65535&(X+=q>>>16),V=65535&(K+=X>>>16),j=65535&(O+=K>>>16),z=65535&(W+=O>>>16),_=65535&(T+=W>>>16),AA=65535&($+=T>>>16),gA=65535&(IA+=$>>>16),QA=65535&(CA+=IA>>>16),iA=65535&(tA+=CA>>>16),EA=65535&(BA+=tA>>>16),nA=65535&(eA+=BA>>>16),oA=65535&(hA+=eA>>>16),rA=65535&(aA+=hA>>>16),wA=65535&(sA+=aA>>>16),DA=65535&(fA+=sA>>>16),yA=65535&(cA+=fA>>>16),MA=65535&(FA+=cA>>>16),lA=65535&(uA+=FA>>>16),HA=65535&(pA+=uA>>>16),UA=65535&(GA+=pA>>>16),LA=65535&(dA+=GA>>>16),kA=65535&(mA+=dA>>>16),JA=65535&(NA+=mA>>>16),RA=65535&(SA+=NA>>>16),vA=65535&(bA+=SA>>>16),PA=65535&(YA+=bA>>>16),xA=65535&(qA+=YA>>>16),ZA=65535&(XA+=qA>>>16),VA=65535&(KA+=XA>>>16),jA=65535&(OA+=KA>>>16),zA=65535&(WA+=OA>>>16),_A=65535&(TA+=WA>>>16),AI=65535&($A+=TA>>>16),gI=65535&(II+=$A>>>16),QI=65535&(CI+=II>>>16),iI=65535&(tI+=CI>>>16),EI=65535&(BI+=tI>>>16),nI=65535&(eI+=BI>>>16),oI=65535&(hI+=eI>>>16),rI=65535&(aI+=hI>>>16),wI=65535&(sI+=aI>>>16),DI=65535&(fI+=sI>>>16),yI=65535&(cI+=fI>>>16),MI=65535&(FI+=cI>>>16),HI=pI+((uI+=FI>>>16)>>>16)&65535,lI=65535&uI,t^=A.charCodeAt(I++);return s(E[HI>>8]+E[255&HI]+E[lI>>8]+E[255&lI]+E[MI>>8]+E[255&MI]+E[yI>>8]+E[255&yI]+E[DI>>8]+E[255&DI]+E[wI>>8]+E[255&wI]+E[rI>>8]+E[255&rI]+E[oI>>8]+E[255&oI]+E[nI>>8]+E[255&nI]+E[EI>>8]+E[255&EI]+E[iI>>8]+E[255&iI]+E[QI>>8]+E[255&QI]+E[gI>>8]+E[255&gI]+E[AI>>8]+E[255&AI]+E[_A>>8]+E[255&_A]+E[zA>>8]+E[255&zA]+E[jA>>8]+E[255&jA]+E[VA>>8]+E[255&VA]+E[ZA>>8]+E[255&ZA]+E[xA>>8]+E[255&xA]+E[PA>>8]+E[255&PA]+E[vA>>8]+E[255&vA]+E[RA>>8]+E[255&RA]+E[JA>>8]+E[255&JA]+E[kA>>8]+E[255&kA]+E[LA>>8]+E[255&LA]+E[UA>>8]+E[255&UA]+E[HA>>8]+E[255&HA]+E[lA>>8]+E[255&lA]+E[MA>>8]+E[255&MA]+E[yA>>8]+E[255&yA]+E[DA>>8]+E[255&DA]+E[wA>>8]+E[255&wA]+E[rA>>8]+E[255&rA]+E[oA>>8]+E[255&oA]+E[nA>>8]+E[255&nA]+E[EA>>8]+E[255&EA]+E[iA>>8]+E[255&iA]+E[QA>>8]+E[255&QA]+E[gA>>8]+E[255&gA]+E[AA>>8]+E[255&AA]+E[_>>8]+E[255&_]+E[z>>8]+E[255&z]+E[j>>8]+E[255&j]+E[V>>8]+E[255&V]+E[Z>>8]+E[255&Z]+E[x>>8]+E[255&x]+E[P>>8]+E[255&P]+E[v>>8]+E[255&v]+E[R>>8]+E[255&R]+E[J>>8]+E[255&J]+E[k>>8]+E[255&k]+E[L>>8]+E[255&L]+E[U>>8]+E[255&U]+E[H>>8]+E[255&H]+E[l>>8]+E[255&l]+E[M>>8]+E[255&M]+E[y>>8]+E[255&y]+E[D>>8]+E[255&D]+E[w>>8]+E[255&w]+E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t],1024)}function j(A){var I,g,C=A.length,Q=a[1024].offset,t=0,i=0|Q[63],B=0,e=0|Q[62],n=0,h=0|Q[61],o=0,r=0|Q[60],w=0,f=0|Q[59],D=0,c=0|Q[58],y=0,F=0|Q[57],M=0,u=0|Q[56],l=0,p=0|Q[55],H=0,G=0|Q[54],U=0,d=0|Q[53],L=0,m=0|Q[52],k=0,N=0|Q[51],J=0,S=0|Q[50],R=0,b=0|Q[49],v=0,Y=0|Q[48],P=0,q=0|Q[47],x=0,X=0|Q[46],Z=0,K=0|Q[45],V=0,O=0|Q[44],j=0,W=0|Q[43],z=0,T=0|Q[42],_=0,$=0|Q[41],AA=0,IA=0|Q[40],gA=0,CA=0|Q[39],QA=0,tA=0|Q[38],iA=0,BA=0|Q[37],EA=0,eA=0|Q[36],nA=0,hA=0|Q[35],oA=0,aA=0|Q[34],rA=0,sA=0|Q[33],wA=0,fA=0|Q[32],DA=0,cA=0|Q[31],yA=0,FA=0|Q[30],MA=0,uA=0|Q[29],lA=0,pA=0|Q[28],HA=0,GA=0|Q[27],UA=0,dA=0|Q[26],LA=0,mA=0|Q[25],kA=0,NA=0|Q[24],JA=0,SA=0|Q[23],RA=0,bA=0|Q[22],vA=0,YA=0|Q[21],PA=0,qA=0|Q[20],xA=0,XA=0|Q[19],ZA=0,KA=0|Q[18],VA=0,OA=0|Q[17],jA=0,WA=0|Q[16],zA=0,TA=0|Q[15],_A=0,$A=0|Q[14],AI=0,II=0|Q[13],gI=0,CI=0|Q[12],QI=0,tI=0|Q[11],iI=0,BI=0|Q[10],EI=0,eI=0|Q[9],nI=0,hI=0|Q[8],oI=0,aI=0|Q[7],rI=0,sI=0|Q[6],wI=0,fI=0|Q[5],DI=0,cI=0|Q[4],yI=0,FI=0|Q[3],MI=0,uI=0|Q[2],lI=0,pI=0|Q[1],HI=0,GI=0|Q[0];for(g=0;g>6|192)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,HI+=T<<8,i=65535&(t=397*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),sA=65535&(rA+=oA>>>16),fA=65535&(wA+=rA>>>16),cA=65535&(DA+=wA>>>16),FA=65535&(yA+=DA>>>16),uA=65535&(MA+=yA>>>16),pA=65535&(lA+=MA>>>16),GA=65535&(HA+=lA>>>16),dA=65535&(UA+=HA>>>16),mA=65535&(LA+=UA>>>16),NA=65535&(kA+=LA>>>16),SA=65535&(JA+=kA>>>16),bA=65535&(RA+=JA>>>16),YA=65535&(vA+=RA>>>16),qA=65535&(PA+=vA>>>16),XA=65535&(xA+=PA>>>16),KA=65535&(ZA+=xA>>>16),OA=65535&(VA+=ZA>>>16),WA=65535&(jA+=VA>>>16),TA=65535&(zA+=jA>>>16),$A=65535&(_A+=zA>>>16),II=65535&(AI+=_A>>>16),CI=65535&(gI+=AI>>>16),tI=65535&(QI+=gI>>>16),BI=65535&(iI+=QI>>>16),eI=65535&(EI+=iI>>>16),hI=65535&(nI+=EI>>>16),aI=65535&(oI+=nI>>>16),sI=65535&(rI+=oI>>>16),fI=65535&(wI+=rI>>>16),cI=65535&(DI+=wI>>>16),FI=65535&(yI+=DI>>>16),uI=65535&(MI+=yI>>>16),GI=HI+((lI+=MI>>>16)>>>16)&65535,pI=65535&lI,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,i=65535&(t=397*i),GI=(HI+=T<<8)+((lI+=(MI+=(yI+=(DI+=(wI+=(rI+=(oI+=(nI+=(EI+=(iI+=(QI+=(gI+=(AI+=(_A+=(zA+=(jA+=(VA+=(ZA+=(xA+=(PA+=(vA+=(RA+=(JA+=(kA+=(LA+=(UA+=(HA+=(lA+=(MA+=(yA+=(DA+=(wA+=(rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=397*(e=65535&B),n=397*(h=65535&n),o=397*(r=65535&o),w=397*(f=65535&w),D=397*(c=65535&D),y=397*(F=65535&y),M=397*(u=65535&M),l=397*(p=65535&l),H=397*(G=65535&H),U=397*(d=65535&U),L=397*(m=65535&L),k=397*(N=65535&k),J=397*(S=65535&J),R=397*(b=65535&R),v=397*(Y=65535&v),P=397*(q=65535&P),x=397*(X=65535&x),Z=397*(K=65535&Z),V=397*(O=65535&V),j=397*(W=65535&j),z=397*(T=65535&z),_=397*($=65535&_),AA=397*(IA=65535&AA),gA=397*(CA=65535&gA),QA=397*(tA=65535&QA),iA=397*(BA=65535&iA),EA=397*(eA=65535&EA),nA=397*(hA=65535&nA),oA=397*(aA=65535&oA),rA=397*(sA=65535&rA),wA=397*(fA=65535&wA),DA=397*(cA=65535&DA),yA=397*(FA=65535&yA),MA=397*(uA=65535&MA),lA=397*(pA=65535&lA),HA=397*(GA=65535&HA),UA=397*(dA=65535&UA),LA=397*(mA=65535&LA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),RA=397*(bA=65535&RA),vA=397*(YA=65535&vA),PA=397*(qA=65535&PA),xA=397*(XA=65535&xA),ZA=397*(KA=65535&ZA),VA=397*(OA=65535&VA),jA=397*(WA=65535&jA),zA=397*(TA=65535&zA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),gI=397*(CI=65535&gI),QI=397*(tI=65535&QI),iI=397*(BI=65535&iI),EI=397*(eI=65535&EI),nI=397*(hI=65535&nI),oI=397*(aI=65535&oI),rI=397*(sI=65535&rI),wI=397*(fI=65535&wI),DI=397*(cI=65535&DI),yI=397*(FI=65535&yI),MI=397*(uI=65535&MI),lI=397*(pI=65535&lI),HI=397*GI,vA+=(i^=I>>12&63|128)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,i=65535&(t=397*i),GI=(HI+=T<<8)+((lI+=(MI+=(yI+=(DI+=(wI+=(rI+=(oI+=(nI+=(EI+=(iI+=(QI+=(gI+=(AI+=(_A+=(zA+=(jA+=(VA+=(ZA+=(xA+=(PA+=(vA+=(RA+=(JA+=(kA+=(LA+=(UA+=(HA+=(lA+=(MA+=(yA+=(DA+=(wA+=(rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=397*(e=65535&B),n=397*(h=65535&n),o=397*(r=65535&o),w=397*(f=65535&w),D=397*(c=65535&D),y=397*(F=65535&y),M=397*(u=65535&M),l=397*(p=65535&l),H=397*(G=65535&H),U=397*(d=65535&U),L=397*(m=65535&L),k=397*(N=65535&k),J=397*(S=65535&J),R=397*(b=65535&R),v=397*(Y=65535&v),P=397*(q=65535&P),x=397*(X=65535&x),Z=397*(K=65535&Z),V=397*(O=65535&V),j=397*(W=65535&j),z=397*(T=65535&z),_=397*($=65535&_),AA=397*(IA=65535&AA),gA=397*(CA=65535&gA),QA=397*(tA=65535&QA),iA=397*(BA=65535&iA),EA=397*(eA=65535&EA),nA=397*(hA=65535&nA),oA=397*(aA=65535&oA),rA=397*(sA=65535&rA),wA=397*(fA=65535&wA),DA=397*(cA=65535&DA),yA=397*(FA=65535&yA),MA=397*(uA=65535&MA),lA=397*(pA=65535&lA),HA=397*(GA=65535&HA),UA=397*(dA=65535&UA),LA=397*(mA=65535&LA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),RA=397*(bA=65535&RA),vA=397*(YA=65535&vA),PA=397*(qA=65535&PA),xA=397*(XA=65535&xA),ZA=397*(KA=65535&ZA),VA=397*(OA=65535&VA),jA=397*(WA=65535&jA),zA=397*(TA=65535&zA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),gI=397*(CI=65535&gI),QI=397*(tI=65535&QI),iI=397*(BI=65535&iI),EI=397*(eI=65535&EI),nI=397*(hI=65535&nI),oI=397*(aI=65535&oI),rI=397*(sI=65535&rI),wI=397*(fI=65535&wI),DI=397*(cI=65535&DI),yI=397*(FI=65535&yI),MI=397*(uI=65535&MI),lI=397*(pI=65535&lI),HI=397*GI,vA+=(i^=I>>6&63|128)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,HI+=T<<8,i=65535&(t=397*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),sA=65535&(rA+=oA>>>16),fA=65535&(wA+=rA>>>16),cA=65535&(DA+=wA>>>16),FA=65535&(yA+=DA>>>16),uA=65535&(MA+=yA>>>16),pA=65535&(lA+=MA>>>16),GA=65535&(HA+=lA>>>16),dA=65535&(UA+=HA>>>16),mA=65535&(LA+=UA>>>16),NA=65535&(kA+=LA>>>16),SA=65535&(JA+=kA>>>16),bA=65535&(RA+=JA>>>16),YA=65535&(vA+=RA>>>16),qA=65535&(PA+=vA>>>16),XA=65535&(xA+=PA>>>16),KA=65535&(ZA+=xA>>>16),OA=65535&(VA+=ZA>>>16),WA=65535&(jA+=VA>>>16),TA=65535&(zA+=jA>>>16),$A=65535&(_A+=zA>>>16),II=65535&(AI+=_A>>>16),CI=65535&(gI+=AI>>>16),tI=65535&(QI+=gI>>>16),BI=65535&(iI+=QI>>>16),eI=65535&(EI+=iI>>>16),hI=65535&(nI+=EI>>>16),aI=65535&(oI+=nI>>>16),sI=65535&(rI+=oI>>>16),fI=65535&(wI+=rI>>>16),cI=65535&(DI+=wI>>>16),FI=65535&(yI+=DI>>>16),uI=65535&(MI+=yI>>>16),GI=HI+((lI+=MI>>>16)>>>16)&65535,pI=65535&lI,i^=63&I|128):(B=397*e,n=397*h,o=397*r,w=397*f,D=397*c,y=397*F,M=397*u,l=397*p,H=397*G,U=397*d,L=397*m,k=397*N,J=397*S,R=397*b,v=397*Y,P=397*q,x=397*X,Z=397*K,V=397*O,j=397*W,z=397*T,_=397*$,AA=397*IA,gA=397*CA,QA=397*tA,iA=397*BA,EA=397*eA,nA=397*hA,oA=397*aA,rA=397*sA,wA=397*fA,DA=397*cA,yA=397*FA,MA=397*uA,lA=397*pA,HA=397*GA,UA=397*dA,LA=397*mA,kA=397*NA,JA=397*SA,RA=397*bA,vA=397*YA,PA=397*qA,xA=397*XA,ZA=397*KA,VA=397*OA,jA=397*WA,zA=397*TA,_A=397*$A,AI=397*II,gI=397*CI,QI=397*tI,iI=397*BI,EI=397*eI,nI=397*hI,oI=397*aI,rI=397*sI,wI=397*fI,DI=397*cI,yI=397*FI,MI=397*uI,lI=397*pI,HI=397*GI,vA+=(i^=I>>12|224)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,i=65535&(t=397*i),GI=(HI+=T<<8)+((lI+=(MI+=(yI+=(DI+=(wI+=(rI+=(oI+=(nI+=(EI+=(iI+=(QI+=(gI+=(AI+=(_A+=(zA+=(jA+=(VA+=(ZA+=(xA+=(PA+=(vA+=(RA+=(JA+=(kA+=(LA+=(UA+=(HA+=(lA+=(MA+=(yA+=(DA+=(wA+=(rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=397*(e=65535&B),n=397*(h=65535&n),o=397*(r=65535&o),w=397*(f=65535&w),D=397*(c=65535&D),y=397*(F=65535&y),M=397*(u=65535&M),l=397*(p=65535&l),H=397*(G=65535&H),U=397*(d=65535&U),L=397*(m=65535&L),k=397*(N=65535&k),J=397*(S=65535&J),R=397*(b=65535&R),v=397*(Y=65535&v),P=397*(q=65535&P),x=397*(X=65535&x),Z=397*(K=65535&Z),V=397*(O=65535&V),j=397*(W=65535&j),z=397*(T=65535&z),_=397*($=65535&_),AA=397*(IA=65535&AA),gA=397*(CA=65535&gA),QA=397*(tA=65535&QA),iA=397*(BA=65535&iA),EA=397*(eA=65535&EA),nA=397*(hA=65535&nA),oA=397*(aA=65535&oA),rA=397*(sA=65535&rA),wA=397*(fA=65535&wA),DA=397*(cA=65535&DA),yA=397*(FA=65535&yA),MA=397*(uA=65535&MA),lA=397*(pA=65535&lA),HA=397*(GA=65535&HA),UA=397*(dA=65535&UA),LA=397*(mA=65535&LA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),RA=397*(bA=65535&RA),vA=397*(YA=65535&vA),PA=397*(qA=65535&PA),xA=397*(XA=65535&xA),ZA=397*(KA=65535&ZA),VA=397*(OA=65535&VA),jA=397*(WA=65535&jA),zA=397*(TA=65535&zA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),gI=397*(CI=65535&gI),QI=397*(tI=65535&QI),iI=397*(BI=65535&iI),EI=397*(eI=65535&EI),nI=397*(hI=65535&nI),oI=397*(aI=65535&oI),rI=397*(sI=65535&rI),wI=397*(fI=65535&wI),DI=397*(cI=65535&DI),yI=397*(FI=65535&yI),MI=397*(uI=65535&MI),lI=397*(pI=65535&lI),HI=397*GI,vA+=(i^=I>>6&63|128)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,HI+=T<<8,i=65535&(t=397*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),sA=65535&(rA+=oA>>>16),fA=65535&(wA+=rA>>>16),cA=65535&(DA+=wA>>>16),FA=65535&(yA+=DA>>>16),uA=65535&(MA+=yA>>>16),pA=65535&(lA+=MA>>>16),GA=65535&(HA+=lA>>>16),dA=65535&(UA+=HA>>>16),mA=65535&(LA+=UA>>>16),NA=65535&(kA+=LA>>>16),SA=65535&(JA+=kA>>>16),bA=65535&(RA+=JA>>>16),YA=65535&(vA+=RA>>>16),qA=65535&(PA+=vA>>>16),XA=65535&(xA+=PA>>>16),KA=65535&(ZA+=xA>>>16),OA=65535&(VA+=ZA>>>16),WA=65535&(jA+=VA>>>16),TA=65535&(zA+=jA>>>16),$A=65535&(_A+=zA>>>16),II=65535&(AI+=_A>>>16),CI=65535&(gI+=AI>>>16),tI=65535&(QI+=gI>>>16),BI=65535&(iI+=QI>>>16),eI=65535&(EI+=iI>>>16),hI=65535&(nI+=EI>>>16),aI=65535&(oI+=nI>>>16),sI=65535&(rI+=oI>>>16),fI=65535&(wI+=rI>>>16),cI=65535&(DI+=wI>>>16),FI=65535&(yI+=DI>>>16),uI=65535&(MI+=yI>>>16),GI=HI+((lI+=MI>>>16)>>>16)&65535,pI=65535&lI,i^=63&I|128),B=397*e,n=397*h,o=397*r,w=397*f,D=397*c,y=397*F,M=397*u,l=397*p,H=397*G,U=397*d,L=397*m,k=397*N,J=397*S,R=397*b,v=397*Y,P=397*q,x=397*X,Z=397*K,V=397*O,j=397*W,z=397*T,_=397*$,AA=397*IA,gA=397*CA,QA=397*tA,iA=397*BA,EA=397*eA,nA=397*hA,oA=397*aA,rA=397*sA,wA=397*fA,DA=397*cA,yA=397*FA,MA=397*uA,lA=397*pA,HA=397*GA,UA=397*dA,LA=397*mA,kA=397*NA,JA=397*SA,RA=397*bA,vA=397*YA,PA=397*qA,xA=397*XA,ZA=397*KA,VA=397*OA,jA=397*WA,zA=397*TA,_A=397*$A,AI=397*II,gI=397*CI,QI=397*tI,iI=397*BI,EI=397*eI,nI=397*hI,oI=397*aI,rI=397*sI,wI=397*fI,DI=397*cI,yI=397*FI,MI=397*uI,lI=397*pI,HI=397*GI,vA+=i<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,HI+=T<<8,i=65535&(t=397*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),sA=65535&(rA+=oA>>>16),fA=65535&(wA+=rA>>>16),cA=65535&(DA+=wA>>>16),FA=65535&(yA+=DA>>>16),uA=65535&(MA+=yA>>>16),pA=65535&(lA+=MA>>>16),GA=65535&(HA+=lA>>>16),dA=65535&(UA+=HA>>>16),mA=65535&(LA+=UA>>>16),NA=65535&(kA+=LA>>>16),SA=65535&(JA+=kA>>>16),bA=65535&(RA+=JA>>>16),YA=65535&(vA+=RA>>>16),qA=65535&(PA+=vA>>>16),XA=65535&(xA+=PA>>>16),KA=65535&(ZA+=xA>>>16),OA=65535&(VA+=ZA>>>16),WA=65535&(jA+=VA>>>16),TA=65535&(zA+=jA>>>16),$A=65535&(_A+=zA>>>16),II=65535&(AI+=_A>>>16),CI=65535&(gI+=AI>>>16),tI=65535&(QI+=gI>>>16),BI=65535&(iI+=QI>>>16),eI=65535&(EI+=iI>>>16),hI=65535&(nI+=EI>>>16),aI=65535&(oI+=nI>>>16),sI=65535&(rI+=oI>>>16),fI=65535&(wI+=rI>>>16),cI=65535&(DI+=wI>>>16),FI=65535&(yI+=DI>>>16),uI=65535&(MI+=yI>>>16),GI=HI+((lI+=MI>>>16)>>>16)&65535,pI=65535&lI;return s(E[GI>>8]+E[255&GI]+E[pI>>8]+E[255&pI]+E[uI>>8]+E[255&uI]+E[FI>>8]+E[255&FI]+E[cI>>8]+E[255&cI]+E[fI>>8]+E[255&fI]+E[sI>>8]+E[255&sI]+E[aI>>8]+E[255&aI]+E[hI>>8]+E[255&hI]+E[eI>>8]+E[255&eI]+E[BI>>8]+E[255&BI]+E[tI>>8]+E[255&tI]+E[CI>>8]+E[255&CI]+E[II>>8]+E[255&II]+E[$A>>8]+E[255&$A]+E[TA>>8]+E[255&TA]+E[WA>>8]+E[255&WA]+E[OA>>8]+E[255&OA]+E[KA>>8]+E[255&KA]+E[XA>>8]+E[255&XA]+E[qA>>8]+E[255&qA]+E[YA>>8]+E[255&YA]+E[bA>>8]+E[255&bA]+E[SA>>8]+E[255&SA]+E[NA>>8]+E[255&NA]+E[mA>>8]+E[255&mA]+E[dA>>8]+E[255&dA]+E[GA>>8]+E[255&GA]+E[pA>>8]+E[255&pA]+E[uA>>8]+E[255&uA]+E[FA>>8]+E[255&FA]+E[cA>>8]+E[255&cA]+E[fA>>8]+E[255&fA]+E[sA>>8]+E[255&sA]+E[aA>>8]+E[255&aA]+E[hA>>8]+E[255&hA]+E[eA>>8]+E[255&eA]+E[BA>>8]+E[255&BA]+E[tA>>8]+E[255&tA]+E[CA>>8]+E[255&CA]+E[IA>>8]+E[255&IA]+E[$>>8]+E[255&$]+E[T>>8]+E[255&T]+E[W>>8]+E[255&W]+E[O>>8]+E[255&O]+E[K>>8]+E[255&K]+E[X>>8]+E[255&X]+E[q>>8]+E[255&q]+E[Y>>8]+E[255&Y]+E[b>>8]+E[255&b]+E[S>>8]+E[255&S]+E[N>>8]+E[255&N]+E[m>>8]+E[255&m]+E[d>>8]+E[255&d]+E[G>>8]+E[255&G]+E[p>>8]+E[255&p]+E[u>>8]+E[255&u]+E[F>>8]+E[255&F]+E[c>>8]+E[255&c]+E[f>>8]+E[255&f]+E[r>>8]+E[255&r]+E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i],1024)}function W(A){var I,g,C=A.length,Q=a[1024].offset,t=0,i=0|Q[63],B=0,e=0|Q[62],n=0,h=0|Q[61],o=0,r=0|Q[60],w=0,f=0|Q[59],D=0,c=0|Q[58],y=0,F=0|Q[57],M=0,u=0|Q[56],l=0,p=0|Q[55],H=0,G=0|Q[54],U=0,d=0|Q[53],L=0,m=0|Q[52],k=0,N=0|Q[51],J=0,S=0|Q[50],R=0,b=0|Q[49],v=0,Y=0|Q[48],P=0,q=0|Q[47],x=0,X=0|Q[46],Z=0,K=0|Q[45],V=0,O=0|Q[44],j=0,W=0|Q[43],z=0,T=0|Q[42],_=0,$=0|Q[41],AA=0,IA=0|Q[40],gA=0,CA=0|Q[39],QA=0,tA=0|Q[38],iA=0,BA=0|Q[37],EA=0,eA=0|Q[36],nA=0,hA=0|Q[35],oA=0,aA=0|Q[34],rA=0,sA=0|Q[33],wA=0,fA=0|Q[32],DA=0,cA=0|Q[31],yA=0,FA=0|Q[30],MA=0,uA=0|Q[29],lA=0,pA=0|Q[28],HA=0,GA=0|Q[27],UA=0,dA=0|Q[26],LA=0,mA=0|Q[25],kA=0,NA=0|Q[24],JA=0,SA=0|Q[23],RA=0,bA=0|Q[22],vA=0,YA=0|Q[21],PA=0,qA=0|Q[20],xA=0,XA=0|Q[19],ZA=0,KA=0|Q[18],VA=0,OA=0|Q[17],jA=0,WA=0|Q[16],zA=0,TA=0|Q[15],_A=0,$A=0|Q[14],AI=0,II=0|Q[13],gI=0,CI=0|Q[12],QI=0,tI=0|Q[11],iI=0,BI=0|Q[10],EI=0,eI=0|Q[9],nI=0,hI=0|Q[8],oI=0,aI=0|Q[7],rI=0,sI=0|Q[6],wI=0,fI=0|Q[5],DI=0,cI=0|Q[4],yI=0,FI=0|Q[3],MI=0,uI=0|Q[2],lI=0,pI=0|Q[1],HI=0,GI=0|Q[0];for(g=0;g>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),sA=65535&(rA+=oA>>>16),fA=65535&(wA+=rA>>>16),cA=65535&(DA+=wA>>>16),FA=65535&(yA+=DA>>>16),uA=65535&(MA+=yA>>>16),pA=65535&(lA+=MA>>>16),GA=65535&(HA+=lA>>>16),dA=65535&(UA+=HA>>>16),mA=65535&(LA+=UA>>>16),NA=65535&(kA+=LA>>>16),SA=65535&(JA+=kA>>>16),bA=65535&(RA+=JA>>>16),YA=65535&(vA+=RA>>>16),qA=65535&(PA+=vA>>>16),XA=65535&(xA+=PA>>>16),KA=65535&(ZA+=xA>>>16),OA=65535&(VA+=ZA>>>16),WA=65535&(jA+=VA>>>16),TA=65535&(zA+=jA>>>16),$A=65535&(_A+=zA>>>16),II=65535&(AI+=_A>>>16),CI=65535&(gI+=AI>>>16),tI=65535&(QI+=gI>>>16),BI=65535&(iI+=QI>>>16),eI=65535&(EI+=iI>>>16),hI=65535&(nI+=EI>>>16),aI=65535&(oI+=nI>>>16),sI=65535&(rI+=oI>>>16),fI=65535&(wI+=rI>>>16),cI=65535&(DI+=wI>>>16),FI=65535&(yI+=DI>>>16),uI=65535&(MI+=yI>>>16),GI=HI+((lI+=MI>>>16)>>>16)&65535,pI=65535&lI,(I=A.charCodeAt(g))<128?i^=I:I<2048?(B=397*e,n=397*h,o=397*r,w=397*f,D=397*c,y=397*F,M=397*u,l=397*p,H=397*G,U=397*d,L=397*m,k=397*N,J=397*S,R=397*b,v=397*Y,P=397*q,x=397*X,Z=397*K,V=397*O,j=397*W,z=397*T,_=397*$,AA=397*IA,gA=397*CA,QA=397*tA,iA=397*BA,EA=397*eA,nA=397*hA,oA=397*aA,rA=397*sA,wA=397*fA,DA=397*cA,yA=397*FA,MA=397*uA,lA=397*pA,HA=397*GA,UA=397*dA,LA=397*mA,kA=397*NA,JA=397*SA,RA=397*bA,vA=397*YA,PA=397*qA,xA=397*XA,ZA=397*KA,VA=397*OA,jA=397*WA,zA=397*TA,_A=397*$A,AI=397*II,gI=397*CI,QI=397*tI,iI=397*BI,EI=397*eI,nI=397*hI,oI=397*aI,rI=397*sI,wI=397*fI,DI=397*cI,yI=397*FI,MI=397*uI,lI=397*pI,HI=397*GI,vA+=(i^=I>>6|192)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,HI+=T<<8,i=65535&(t=397*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),sA=65535&(rA+=oA>>>16),fA=65535&(wA+=rA>>>16),cA=65535&(DA+=wA>>>16),FA=65535&(yA+=DA>>>16),uA=65535&(MA+=yA>>>16),pA=65535&(lA+=MA>>>16),GA=65535&(HA+=lA>>>16),dA=65535&(UA+=HA>>>16),mA=65535&(LA+=UA>>>16),NA=65535&(kA+=LA>>>16),SA=65535&(JA+=kA>>>16),bA=65535&(RA+=JA>>>16),YA=65535&(vA+=RA>>>16),qA=65535&(PA+=vA>>>16),XA=65535&(xA+=PA>>>16),KA=65535&(ZA+=xA>>>16),OA=65535&(VA+=ZA>>>16),WA=65535&(jA+=VA>>>16),TA=65535&(zA+=jA>>>16),$A=65535&(_A+=zA>>>16),II=65535&(AI+=_A>>>16),CI=65535&(gI+=AI>>>16),tI=65535&(QI+=gI>>>16),BI=65535&(iI+=QI>>>16),eI=65535&(EI+=iI>>>16),hI=65535&(nI+=EI>>>16),aI=65535&(oI+=nI>>>16),sI=65535&(rI+=oI>>>16),fI=65535&(wI+=rI>>>16),cI=65535&(DI+=wI>>>16),FI=65535&(yI+=DI>>>16),uI=65535&(MI+=yI>>>16),GI=HI+((lI+=MI>>>16)>>>16)&65535,pI=65535&lI,i^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,i=65535&(t=397*i),GI=(HI+=T<<8)+((lI+=(MI+=(yI+=(DI+=(wI+=(rI+=(oI+=(nI+=(EI+=(iI+=(QI+=(gI+=(AI+=(_A+=(zA+=(jA+=(VA+=(ZA+=(xA+=(PA+=(vA+=(RA+=(JA+=(kA+=(LA+=(UA+=(HA+=(lA+=(MA+=(yA+=(DA+=(wA+=(rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=397*(e=65535&B),n=397*(h=65535&n),o=397*(r=65535&o),w=397*(f=65535&w),D=397*(c=65535&D),y=397*(F=65535&y),M=397*(u=65535&M),l=397*(p=65535&l),H=397*(G=65535&H),U=397*(d=65535&U),L=397*(m=65535&L),k=397*(N=65535&k),J=397*(S=65535&J),R=397*(b=65535&R),v=397*(Y=65535&v),P=397*(q=65535&P),x=397*(X=65535&x),Z=397*(K=65535&Z),V=397*(O=65535&V),j=397*(W=65535&j),z=397*(T=65535&z),_=397*($=65535&_),AA=397*(IA=65535&AA),gA=397*(CA=65535&gA),QA=397*(tA=65535&QA),iA=397*(BA=65535&iA),EA=397*(eA=65535&EA),nA=397*(hA=65535&nA),oA=397*(aA=65535&oA),rA=397*(sA=65535&rA),wA=397*(fA=65535&wA),DA=397*(cA=65535&DA),yA=397*(FA=65535&yA),MA=397*(uA=65535&MA),lA=397*(pA=65535&lA),HA=397*(GA=65535&HA),UA=397*(dA=65535&UA),LA=397*(mA=65535&LA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),RA=397*(bA=65535&RA),vA=397*(YA=65535&vA),PA=397*(qA=65535&PA),xA=397*(XA=65535&xA),ZA=397*(KA=65535&ZA),VA=397*(OA=65535&VA),jA=397*(WA=65535&jA),zA=397*(TA=65535&zA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),gI=397*(CI=65535&gI),QI=397*(tI=65535&QI),iI=397*(BI=65535&iI),EI=397*(eI=65535&EI),nI=397*(hI=65535&nI),oI=397*(aI=65535&oI),rI=397*(sI=65535&rI),wI=397*(fI=65535&wI),DI=397*(cI=65535&DI),yI=397*(FI=65535&yI),MI=397*(uI=65535&MI),lI=397*(pI=65535&lI),HI=397*GI,vA+=(i^=I>>12&63|128)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,i=65535&(t=397*i),GI=(HI+=T<<8)+((lI+=(MI+=(yI+=(DI+=(wI+=(rI+=(oI+=(nI+=(EI+=(iI+=(QI+=(gI+=(AI+=(_A+=(zA+=(jA+=(VA+=(ZA+=(xA+=(PA+=(vA+=(RA+=(JA+=(kA+=(LA+=(UA+=(HA+=(lA+=(MA+=(yA+=(DA+=(wA+=(rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=397*(e=65535&B),n=397*(h=65535&n),o=397*(r=65535&o),w=397*(f=65535&w),D=397*(c=65535&D),y=397*(F=65535&y),M=397*(u=65535&M),l=397*(p=65535&l),H=397*(G=65535&H),U=397*(d=65535&U),L=397*(m=65535&L),k=397*(N=65535&k),J=397*(S=65535&J),R=397*(b=65535&R),v=397*(Y=65535&v),P=397*(q=65535&P),x=397*(X=65535&x),Z=397*(K=65535&Z),V=397*(O=65535&V),j=397*(W=65535&j),z=397*(T=65535&z),_=397*($=65535&_),AA=397*(IA=65535&AA),gA=397*(CA=65535&gA),QA=397*(tA=65535&QA),iA=397*(BA=65535&iA),EA=397*(eA=65535&EA),nA=397*(hA=65535&nA),oA=397*(aA=65535&oA),rA=397*(sA=65535&rA),wA=397*(fA=65535&wA),DA=397*(cA=65535&DA),yA=397*(FA=65535&yA),MA=397*(uA=65535&MA),lA=397*(pA=65535&lA),HA=397*(GA=65535&HA),UA=397*(dA=65535&UA),LA=397*(mA=65535&LA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),RA=397*(bA=65535&RA),vA=397*(YA=65535&vA),PA=397*(qA=65535&PA),xA=397*(XA=65535&xA),ZA=397*(KA=65535&ZA),VA=397*(OA=65535&VA),jA=397*(WA=65535&jA),zA=397*(TA=65535&zA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),gI=397*(CI=65535&gI),QI=397*(tI=65535&QI),iI=397*(BI=65535&iI),EI=397*(eI=65535&EI),nI=397*(hI=65535&nI),oI=397*(aI=65535&oI),rI=397*(sI=65535&rI),wI=397*(fI=65535&wI),DI=397*(cI=65535&DI),yI=397*(FI=65535&yI),MI=397*(uI=65535&MI),lI=397*(pI=65535&lI),HI=397*GI,vA+=(i^=I>>6&63|128)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,HI+=T<<8,i=65535&(t=397*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),sA=65535&(rA+=oA>>>16),fA=65535&(wA+=rA>>>16),cA=65535&(DA+=wA>>>16),FA=65535&(yA+=DA>>>16),uA=65535&(MA+=yA>>>16),pA=65535&(lA+=MA>>>16),GA=65535&(HA+=lA>>>16),dA=65535&(UA+=HA>>>16),mA=65535&(LA+=UA>>>16),NA=65535&(kA+=LA>>>16),SA=65535&(JA+=kA>>>16),bA=65535&(RA+=JA>>>16),YA=65535&(vA+=RA>>>16),qA=65535&(PA+=vA>>>16),XA=65535&(xA+=PA>>>16),KA=65535&(ZA+=xA>>>16),OA=65535&(VA+=ZA>>>16),WA=65535&(jA+=VA>>>16),TA=65535&(zA+=jA>>>16),$A=65535&(_A+=zA>>>16),II=65535&(AI+=_A>>>16),CI=65535&(gI+=AI>>>16),tI=65535&(QI+=gI>>>16),BI=65535&(iI+=QI>>>16),eI=65535&(EI+=iI>>>16),hI=65535&(nI+=EI>>>16),aI=65535&(oI+=nI>>>16),sI=65535&(rI+=oI>>>16),fI=65535&(wI+=rI>>>16),cI=65535&(DI+=wI>>>16),FI=65535&(yI+=DI>>>16),uI=65535&(MI+=yI>>>16),GI=HI+((lI+=MI>>>16)>>>16)&65535,pI=65535&lI,i^=63&I|128):(B=397*e,n=397*h,o=397*r,w=397*f,D=397*c,y=397*F,M=397*u,l=397*p,H=397*G,U=397*d,L=397*m,k=397*N,J=397*S,R=397*b,v=397*Y,P=397*q,x=397*X,Z=397*K,V=397*O,j=397*W,z=397*T,_=397*$,AA=397*IA,gA=397*CA,QA=397*tA,iA=397*BA,EA=397*eA,nA=397*hA,oA=397*aA,rA=397*sA,wA=397*fA,DA=397*cA,yA=397*FA,MA=397*uA,lA=397*pA,HA=397*GA,UA=397*dA,LA=397*mA,kA=397*NA,JA=397*SA,RA=397*bA,vA=397*YA,PA=397*qA,xA=397*XA,ZA=397*KA,VA=397*OA,jA=397*WA,zA=397*TA,_A=397*$A,AI=397*II,gI=397*CI,QI=397*tI,iI=397*BI,EI=397*eI,nI=397*hI,oI=397*aI,rI=397*sI,wI=397*fI,DI=397*cI,yI=397*FI,MI=397*uI,lI=397*pI,HI=397*GI,vA+=(i^=I>>12|224)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,i=65535&(t=397*i),GI=(HI+=T<<8)+((lI+=(MI+=(yI+=(DI+=(wI+=(rI+=(oI+=(nI+=(EI+=(iI+=(QI+=(gI+=(AI+=(_A+=(zA+=(jA+=(VA+=(ZA+=(xA+=(PA+=(vA+=(RA+=(JA+=(kA+=(LA+=(UA+=(HA+=(lA+=(MA+=(yA+=(DA+=(wA+=(rA+=(oA+=(nA+=(EA+=(iA+=(QA+=(gA+=(AA+=(_+=(z+=(j+=(V+=(Z+=(x+=(P+=(v+=(R+=(J+=(k+=(L+=(U+=(H+=(l+=(M+=(y+=(D+=(w+=(o+=(n+=(B+=t>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,B=397*(e=65535&B),n=397*(h=65535&n),o=397*(r=65535&o),w=397*(f=65535&w),D=397*(c=65535&D),y=397*(F=65535&y),M=397*(u=65535&M),l=397*(p=65535&l),H=397*(G=65535&H),U=397*(d=65535&U),L=397*(m=65535&L),k=397*(N=65535&k),J=397*(S=65535&J),R=397*(b=65535&R),v=397*(Y=65535&v),P=397*(q=65535&P),x=397*(X=65535&x),Z=397*(K=65535&Z),V=397*(O=65535&V),j=397*(W=65535&j),z=397*(T=65535&z),_=397*($=65535&_),AA=397*(IA=65535&AA),gA=397*(CA=65535&gA),QA=397*(tA=65535&QA),iA=397*(BA=65535&iA),EA=397*(eA=65535&EA),nA=397*(hA=65535&nA),oA=397*(aA=65535&oA),rA=397*(sA=65535&rA),wA=397*(fA=65535&wA),DA=397*(cA=65535&DA),yA=397*(FA=65535&yA),MA=397*(uA=65535&MA),lA=397*(pA=65535&lA),HA=397*(GA=65535&HA),UA=397*(dA=65535&UA),LA=397*(mA=65535&LA),kA=397*(NA=65535&kA),JA=397*(SA=65535&JA),RA=397*(bA=65535&RA),vA=397*(YA=65535&vA),PA=397*(qA=65535&PA),xA=397*(XA=65535&xA),ZA=397*(KA=65535&ZA),VA=397*(OA=65535&VA),jA=397*(WA=65535&jA),zA=397*(TA=65535&zA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),gI=397*(CI=65535&gI),QI=397*(tI=65535&QI),iI=397*(BI=65535&iI),EI=397*(eI=65535&EI),nI=397*(hI=65535&nI),oI=397*(aI=65535&oI),rI=397*(sI=65535&rI),wI=397*(fI=65535&wI),DI=397*(cI=65535&DI),yI=397*(FI=65535&yI),MI=397*(uI=65535&MI),lI=397*(pI=65535&lI),HI=397*GI,vA+=(i^=I>>6&63|128)<<8,PA+=e<<8,xA+=h<<8,ZA+=r<<8,VA+=f<<8,jA+=c<<8,zA+=F<<8,_A+=u<<8,AI+=p<<8,gI+=G<<8,QI+=d<<8,iI+=m<<8,EI+=N<<8,nI+=S<<8,oI+=b<<8,rI+=Y<<8,wI+=q<<8,DI+=X<<8,yI+=K<<8,MI+=O<<8,lI+=W<<8,HI+=T<<8,i=65535&(t=397*i),e=65535&(B+=t>>>16),h=65535&(n+=B>>>16),r=65535&(o+=n>>>16),f=65535&(w+=o>>>16),c=65535&(D+=w>>>16),F=65535&(y+=D>>>16),u=65535&(M+=y>>>16),p=65535&(l+=M>>>16),G=65535&(H+=l>>>16),d=65535&(U+=H>>>16),m=65535&(L+=U>>>16),N=65535&(k+=L>>>16),S=65535&(J+=k>>>16),b=65535&(R+=J>>>16),Y=65535&(v+=R>>>16),q=65535&(P+=v>>>16),X=65535&(x+=P>>>16),K=65535&(Z+=x>>>16),O=65535&(V+=Z>>>16),W=65535&(j+=V>>>16),T=65535&(z+=j>>>16),$=65535&(_+=z>>>16),IA=65535&(AA+=_>>>16),CA=65535&(gA+=AA>>>16),tA=65535&(QA+=gA>>>16),BA=65535&(iA+=QA>>>16),eA=65535&(EA+=iA>>>16),hA=65535&(nA+=EA>>>16),aA=65535&(oA+=nA>>>16),sA=65535&(rA+=oA>>>16),fA=65535&(wA+=rA>>>16),cA=65535&(DA+=wA>>>16),FA=65535&(yA+=DA>>>16),uA=65535&(MA+=yA>>>16),pA=65535&(lA+=MA>>>16),GA=65535&(HA+=lA>>>16),dA=65535&(UA+=HA>>>16),mA=65535&(LA+=UA>>>16),NA=65535&(kA+=LA>>>16),SA=65535&(JA+=kA>>>16),bA=65535&(RA+=JA>>>16),YA=65535&(vA+=RA>>>16),qA=65535&(PA+=vA>>>16),XA=65535&(xA+=PA>>>16),KA=65535&(ZA+=xA>>>16),OA=65535&(VA+=ZA>>>16),WA=65535&(jA+=VA>>>16),TA=65535&(zA+=jA>>>16),$A=65535&(_A+=zA>>>16),II=65535&(AI+=_A>>>16),CI=65535&(gI+=AI>>>16),tI=65535&(QI+=gI>>>16),BI=65535&(iI+=QI>>>16),eI=65535&(EI+=iI>>>16),hI=65535&(nI+=EI>>>16),aI=65535&(oI+=nI>>>16),sI=65535&(rI+=oI>>>16),fI=65535&(wI+=rI>>>16),cI=65535&(DI+=wI>>>16),FI=65535&(yI+=DI>>>16),uI=65535&(MI+=yI>>>16),GI=HI+((lI+=MI>>>16)>>>16)&65535,pI=65535&lI,i^=63&I|128);return s(E[GI>>8]+E[255&GI]+E[pI>>8]+E[255&pI]+E[uI>>8]+E[255&uI]+E[FI>>8]+E[255&FI]+E[cI>>8]+E[255&cI]+E[fI>>8]+E[255&fI]+E[sI>>8]+E[255&sI]+E[aI>>8]+E[255&aI]+E[hI>>8]+E[255&hI]+E[eI>>8]+E[255&eI]+E[BI>>8]+E[255&BI]+E[tI>>8]+E[255&tI]+E[CI>>8]+E[255&CI]+E[II>>8]+E[255&II]+E[$A>>8]+E[255&$A]+E[TA>>8]+E[255&TA]+E[WA>>8]+E[255&WA]+E[OA>>8]+E[255&OA]+E[KA>>8]+E[255&KA]+E[XA>>8]+E[255&XA]+E[qA>>8]+E[255&qA]+E[YA>>8]+E[255&YA]+E[bA>>8]+E[255&bA]+E[SA>>8]+E[255&SA]+E[NA>>8]+E[255&NA]+E[mA>>8]+E[255&mA]+E[dA>>8]+E[255&dA]+E[GA>>8]+E[255&GA]+E[pA>>8]+E[255&pA]+E[uA>>8]+E[255&uA]+E[FA>>8]+E[255&FA]+E[cA>>8]+E[255&cA]+E[fA>>8]+E[255&fA]+E[sA>>8]+E[255&sA]+E[aA>>8]+E[255&aA]+E[hA>>8]+E[255&hA]+E[eA>>8]+E[255&eA]+E[BA>>8]+E[255&BA]+E[tA>>8]+E[255&tA]+E[CA>>8]+E[255&CA]+E[IA>>8]+E[255&IA]+E[$>>8]+E[255&$]+E[T>>8]+E[255&T]+E[W>>8]+E[255&W]+E[O>>8]+E[255&O]+E[K>>8]+E[255&K]+E[X>>8]+E[255&X]+E[q>>8]+E[255&q]+E[Y>>8]+E[255&Y]+E[b>>8]+E[255&b]+E[S>>8]+E[255&S]+E[N>>8]+E[255&N]+E[m>>8]+E[255&m]+E[d>>8]+E[255&d]+E[G>>8]+E[255&G]+E[p>>8]+E[255&p]+E[u>>8]+E[255&u]+E[F>>8]+E[255&F]+E[c>>8]+E[255&c]+E[f>>8]+E[255&f]+E[r>>8]+E[255&r]+E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i],1024)}return I=M,g=H,C=L,Q=J,t=v,i=x,B=V,c("1a"),y(!1),F(),{hash:D,setKeyspace:function(A){if(52!==A&&!a[A])throw new Error("Supported FNV keyspacs: 32, 52, 64, 128, 256, 512, and 1024 bit");o=A},version:c,useUTF8:y,seed:F,fast1a32:function(A){var I,g=A.length-3,C=0,Q=40389,t=0,i=33052;for(I=0;I>>16)&65535),t+=(Q^=A.charCodeAt(I++))<<8,Q=65535&(C=403*Q),t=403*(i=t+(C>>>16)&65535),t+=(Q^=A.charCodeAt(I++))<<8,Q=65535&(C=403*Q),t=403*(i=t+(C>>>16)&65535),i=(t+=(Q^=A.charCodeAt(I++))<<8)+((C=403*Q)>>>16)&65535,Q=65535&C;for(;I>>16)&65535,Q=65535&C;return(i<<16>>>0)+Q},fast1a32hex:function(A){var I,g=A.length-3,C=0,Q=40389,t=0,i=33052;for(I=0;I>>16)&65535),t+=(Q^=A.charCodeAt(I++))<<8,Q=65535&(C=403*Q),t=403*(i=t+(C>>>16)&65535),t+=(Q^=A.charCodeAt(I++))<<8,Q=65535&(C=403*Q),t=403*(i=t+(C>>>16)&65535),i=(t+=(Q^=A.charCodeAt(I++))<<8)+((C=403*Q)>>>16)&65535,Q=65535&C;for(;I>>16)&65535,Q=65535&C;return E[i>>>8&255]+E[255&i]+E[Q>>>8&255]+E[255&Q]},fast1a52:function(A){var I,g=A.length-3,C=0,Q=8997,t=0,i=33826,B=0,E=40164,e=0,n=52210;for(I=0;I>>16)>>>16)>>>16)&65535,t=435*(i=65535&t),B=435*(E=65535&B),e=435*n,B+=(Q^=A.charCodeAt(I++))<<8,Q=65535&(C=435*Q),n=(e+=i<<8)+((B+=(t+=C>>>16)>>>16)>>>16)&65535,t=435*(i=65535&t),B=435*(E=65535&B),e=435*n,B+=(Q^=A.charCodeAt(I++))<<8,Q=65535&(C=435*Q),n=(e+=i<<8)+((B+=(t+=C>>>16)>>>16)>>>16)&65535,t=435*(i=65535&t),B=435*(E=65535&B),e=435*n,B+=(Q^=A.charCodeAt(I++))<<8,e+=i<<8,Q=65535&(C=435*Q),i=65535&(t+=C>>>16),n=e+((B+=t>>>16)>>>16)&65535,E=65535&B;for(;I>>16),n=e+((B+=t>>>16)>>>16)&65535,E=65535&B;return 281474976710656*(15&n)+4294967296*E+65536*i+(Q^n>>4)},fast1a52hex:function(A){var I,g=A.length-3,C=0,Q=8997,t=0,i=33826,B=0,n=40164,h=0,o=52210;for(I=0;I>>16)>>>16)>>>16)&65535,t=435*(i=65535&t),B=435*(n=65535&B),h=435*o,B+=(Q^=A.charCodeAt(I++))<<8,Q=65535&(C=435*Q),o=(h+=i<<8)+((B+=(t+=C>>>16)>>>16)>>>16)&65535,t=435*(i=65535&t),B=435*(n=65535&B),h=435*o,B+=(Q^=A.charCodeAt(I++))<<8,Q=65535&(C=435*Q),o=(h+=i<<8)+((B+=(t+=C>>>16)>>>16)>>>16)&65535,t=435*(i=65535&t),B=435*(n=65535&B),h=435*o,B+=(Q^=A.charCodeAt(I++))<<8,h+=i<<8,Q=65535&(C=435*Q),i=65535&(t+=C>>>16),o=h+((B+=t>>>16)>>>16)&65535,n=65535&B;for(;I>>16),o=h+((B+=t>>>16)>>>16)&65535,n=65535&B;return e[15&o]+E[n>>8]+E[255&n]+E[i>>8]+E[255&i]+E[Q>>8^o>>12]+E[255&(Q^o>>4)]},fast1a64:function(A){var I,g=A.length-3,C=0,Q=8997,t=0,i=33826,B=0,e=40164,n=0,h=52210;for(I=0;I>>16)>>>16)>>>16)&65535,t=435*(i=65535&t),B=435*(e=65535&B),n=435*h,B+=(Q^=A.charCodeAt(I++))<<8,Q=65535&(C=435*Q),h=(n+=i<<8)+((B+=(t+=C>>>16)>>>16)>>>16)&65535,t=435*(i=65535&t),B=435*(e=65535&B),n=435*h,B+=(Q^=A.charCodeAt(I++))<<8,Q=65535&(C=435*Q),h=(n+=i<<8)+((B+=(t+=C>>>16)>>>16)>>>16)&65535,t=435*(i=65535&t),B=435*(e=65535&B),n=435*h,B+=(Q^=A.charCodeAt(I++))<<8,n+=i<<8,Q=65535&(C=435*Q),i=65535&(t+=C>>>16),h=n+((B+=t>>>16)>>>16)&65535,e=65535&B;for(;I>>16),h=n+((B+=t>>>16)>>>16)&65535,e=65535&B;return E[h>>8]+E[255&h]+E[e>>8]+E[255&e]+E[i>>8]+E[255&i]+E[Q>>8]+E[255&Q]},fast1a32utf:function(A){var I,g,C=A.length,Q=0,t=40389,i=0,B=33052;for(g=0;g>6|192)<<8)+((Q=403*t)>>>16)&65535,t=65535&Q,t^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,t=65535&(Q=403*t),i=403*(B=i+(Q>>>16)&65535),i+=(t^=I>>12&63|128)<<8,t=65535&(Q=403*t),i=403*(B=i+(Q>>>16)&65535),B=(i+=(t^=I>>6&63|128)<<8)+((Q=403*t)>>>16)&65535,t=65535&Q,t^=63&I|128):(i=403*B,i+=(t^=I>>12|224)<<8,t=65535&(Q=403*t),i=403*(B=i+(Q>>>16)&65535),B=(i+=(t^=I>>6&63|128)<<8)+((Q=403*t)>>>16)&65535,t=65535&Q,t^=63&I|128),i=403*B,B=(i+=t<<8)+((Q=403*t)>>>16)&65535,t=65535&Q;return(B<<16>>>0)+t},fast1a32hexutf:function(A){var I,g,C=A.length,Q=0,t=40389,i=0,B=33052;for(g=0;g>6|192)<<8)+((Q=403*t)>>>16)&65535,t=65535&Q,t^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,t=65535&(Q=403*t),i=403*(B=i+(Q>>>16)&65535),i+=(t^=I>>12&63|128)<<8,t=65535&(Q=403*t),i=403*(B=i+(Q>>>16)&65535),B=(i+=(t^=I>>6&63|128)<<8)+((Q=403*t)>>>16)&65535,t=65535&Q,t^=63&I|128):(i=403*B,i+=(t^=I>>12|224)<<8,t=65535&(Q=403*t),i=403*(B=i+(Q>>>16)&65535),B=(i+=(t^=I>>6&63|128)<<8)+((Q=403*t)>>>16)&65535,t=65535&Q,t^=63&I|128),i=403*B,B=(i+=t<<8)+((Q=403*t)>>>16)&65535,t=65535&Q;return E[B>>>8&255]+E[255&B]+E[t>>>8&255]+E[255&t]},fast1a52utf:function(A){var I,g,C=A.length,Q=0,t=8997,i=0,B=33826,E=0,e=40164,n=0,h=52210;for(g=0;g>6|192)<<8,n+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),h=n+((E+=i>>>16)>>>16)&65535,e=65535&E,t^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,t=65535&(Q=435*t),h=(n+=B<<8)+((E+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),E=435*(e=65535&E),n=435*h,E+=(t^=I>>12&63|128)<<8,t=65535&(Q=435*t),h=(n+=B<<8)+((E+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),E=435*(e=65535&E),n=435*h,E+=(t^=I>>6&63|128)<<8,n+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),h=n+((E+=i>>>16)>>>16)&65535,e=65535&E,t^=63&I|128):(i=435*B,E=435*e,n=435*h,E+=(t^=I>>12|224)<<8,t=65535&(Q=435*t),h=(n+=B<<8)+((E+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),E=435*(e=65535&E),n=435*h,E+=(t^=I>>6&63|128)<<8,n+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),h=n+((E+=i>>>16)>>>16)&65535,e=65535&E,t^=63&I|128),i=435*B,E=435*e,n=435*h,E+=t<<8,n+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),h=n+((E+=i>>>16)>>>16)&65535,e=65535&E;return 281474976710656*(15&h)+4294967296*e+65536*B+(t^h>>4)},fast1a52hexutf:function(A){var I,g,C=A.length,Q=0,t=8997,i=0,B=33826,n=0,h=40164,o=0,a=52210;for(g=0;g>6|192)<<8,o+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),a=o+((n+=i>>>16)>>>16)&65535,h=65535&n,t^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,t=65535&(Q=435*t),a=(o+=B<<8)+((n+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),n=435*(h=65535&n),o=435*a,n+=(t^=I>>12&63|128)<<8,t=65535&(Q=435*t),a=(o+=B<<8)+((n+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),n=435*(h=65535&n),o=435*a,n+=(t^=I>>6&63|128)<<8,o+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),a=o+((n+=i>>>16)>>>16)&65535,h=65535&n,t^=63&I|128):(i=435*B,n=435*h,o=435*a,n+=(t^=I>>12|224)<<8,t=65535&(Q=435*t),a=(o+=B<<8)+((n+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),n=435*(h=65535&n),o=435*a,n+=(t^=I>>6&63|128)<<8,o+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),a=o+((n+=i>>>16)>>>16)&65535,h=65535&n,t^=63&I|128),i=435*B,n=435*h,o=435*a,n+=t<<8,o+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),a=o+((n+=i>>>16)>>>16)&65535,h=65535&n;return e[15&a]+E[h>>8]+E[255&h]+E[B>>8]+E[255&B]+E[t>>8^a>>12]+E[255&(t^a>>4)]},fast1a64utf:function(A){var I,g,C=A.length,Q=0,t=8997,i=0,B=33826,e=0,n=40164,h=0,o=52210;for(g=0;g>6|192)<<8,h+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),o=h+((e+=i>>>16)>>>16)&65535,n=65535&e,t^=63&I|128):55296==(64512&I)&&g+1>18|240)<<8,t=65535&(Q=435*t),o=(h+=B<<8)+((e+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),e=435*(n=65535&e),h=435*o,e+=(t^=I>>12&63|128)<<8,t=65535&(Q=435*t),o=(h+=B<<8)+((e+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),e=435*(n=65535&e),h=435*o,e+=(t^=I>>6&63|128)<<8,h+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),o=h+((e+=i>>>16)>>>16)&65535,n=65535&e,t^=63&I|128):(i=435*B,e=435*n,h=435*o,e+=(t^=I>>12|224)<<8,t=65535&(Q=435*t),o=(h+=B<<8)+((e+=(i+=Q>>>16)>>>16)>>>16)&65535,i=435*(B=65535&i),e=435*(n=65535&e),h=435*o,e+=(t^=I>>6&63|128)<<8,h+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),o=h+((e+=i>>>16)>>>16)&65535,n=65535&e,t^=63&I|128),i=435*B,e=435*n,h=435*o,e+=t<<8,h+=B<<8,t=65535&(Q=435*t),B=65535&(i+=Q>>>16),o=h+((e+=i>>>16)>>>16)&65535,n=65535&e;return E[o>>8]+E[255&o]+E[n>>8]+E[255&n]+E[B>>8]+E[255&B]+E[t>>8]+E[255&t]}}}();A.exports=I}));var Hg={fnvHash:function(A){return pg.hash(A,64).hex()},flatArray:function(A){var I=[];return function A(I,g){if(Array.isArray(g))for(let C=0;C>2)-2;const C=this.instance.exports.getPRawPrime(),Q=new Array(this.n32);for(let A=0;A>2)+A];this.prime=Gg.fromArray(Q,4294967296),this.Fr=new Ug(this.prime),this.mask32=Gg.fromString("FFFFFFFF",16),this.NVars=this.instance.exports.getNVars(),this.n64=Math.floor((this.Fr.bitLength-1)/64)+1,this.R=this.Fr.e(Gg.shiftLeft(1,64*this.n64)),this.RInv=this.Fr.inv(this.R),this.sanityCheck=g}async _doCalculateWitness(A,I){this.instance.exports.init(this.sanityCheck||I?1:0);const g=this.allocInt(),C=this.allocFr();Object.keys(A).forEach(I=>{const Q=Hg.fnvHash(I),t=parseInt(Q.slice(0,8),16),i=parseInt(Q.slice(8,16),16);try{this.instance.exports.getSignalOffset32(g,0,t,i)}catch(A){throw new Error(`Signal ${I} is not an input of the circuit.`)}const B=this.getInt(g),E=Hg.flatArray(A[I]);for(let A=0;A>2]}setInt(A,I){this.i32[A>>2]=I}getFr(A){const I=this,g=A>>2;if(2147483648&I.i32[g+1]){const A=new Array(I.n32);for(let C=0;C>2]=Q,void(g.i32[1+(A>>2)]=0)}g.i32[A>>2]=0,g.i32[1+(A>>2)]=2147483648;const t=Gg.toArray(I,4294967296);for(let I=0;I>2)+I]=C>=0?t[C]:0}}}var Lg={WitnessCalculatorBuilder:async function(A,I){I=I||{};const g=new WebAssembly.Memory({initial:2e4}),C=await WebAssembly.compile(A);let Q;const t=await WebAssembly.instantiate(C,{env:{memory:g},runtime:{error:function(A,I,g,C,t,i){let E;throw E=7==A?B(I)+" "+Q.getFr(C).toString()+" != "+Q.getFr(t).toString()+" "+B(i):B(I)+" "+g+" "+C+" "+t+" "+i,console.log("ERROR: ",A,E),new Error(E)},log:function(A){console.log(Q.getFr(A).toString())},logGetSignal:function(A,g){I.logGetSignal&&I.logGetSignal(A,Q.getFr(g))},logSetSignal:function(A,g){I.logSetSignal&&I.logSetSignal(A,Q.getFr(g))},logStartComponent:function(A){I.logStartComponent&&I.logStartComponent(A)},logFinishComponent:function(A){I.logFinishComponent&&I.logFinishComponent(A)}}}),i=I&&(I.sanityCheck||I.logGetSignal||I.logSetSignal||I.logStartComponent||I.logFinishComponent);return Q=new dg(g,t,i),Q;function B(A){const I=new Uint8Array(g.buffer),C=[];for(let g=0;I[A+g]>0;g++)C.push(I[A+g]);return String.fromCharCode.apply(null,C)}}};const{WitnessCalculatorBuilder:mg}=Lg;async function kg(A,I,g,C){const Q=await mI(I),t=await Q.read(Q.totalSize);await Q.close();const i=await mg(t),B=await i.calculateBinWitness(A),E=await NI(g,"wtns",2,2);await async function(A,I,g){await JI(A,1);const C=8*(Math.floor((wI.bitLength(g)-1)/64)+1);if(await A.writeULE32(C),await vI(A,g,C),I.byteLength%C!=0)throw new Error("Invalid witness length");await A.writeULE32(I.byteLength/C),await SI(A),await JI(A,2),await A.write(I),await SI(A)}(E,B,i.prime),await E.close()}const{unstringifyBigInts:Ng}=fI;var Jg=Object.freeze({__proto__:null,fullProve:async function(A,I,g,C){const Q={type:"mem"};return await kg(A,I,Q),await lg(g,Q)},prove:lg,verify:async function(A,I,g,C){A=Ng(A),g=Ng(g),I=Ng(I);const Q=await async function(A){let I;const g=A.toUpperCase().match(/[A-Za-z0-9]+/g).join("");if(["BN128","BN254","ALTBN128"].indexOf(g)>=0)I=await rI();else{if(!(["BLS12381"].indexOf(g)>=0))throw new Error("Curve not supported: "+A);I=await sI()}return I}(A.curve),t=Q.G1.fromObject(A.IC[0]),i=new Uint8Array(2*Q.G1.F.n8*I.length),B=new Uint8Array(Q.Fr.n8*I.length);for(let g=0;g1)throw new Error(A.fileName+": File has more than one header");A.pos=I[1][0].p;const g=await A.readULE32(),C=await A.read(g),Q=wI.fromRprLE(C),t=await KI(Q);if(8*t.F1.n64!=g)throw new Error(A.fileName+": Invalid size");const i=await A.readULE32(),B=await A.readULE32();if(A.pos-I[1][0].p!=I[1][0].size)throw new Error("Invalid PTau header size");return{curve:t,power:i,ceremonyPower:B}}function qg(A,I,g,C){const Q={tau:{},alpha:{},beta:{}};return Q.tau.g1_s=t(),Q.tau.g1_sx=t(),Q.alpha.g1_s=t(),Q.alpha.g1_sx=t(),Q.beta.g1_s=t(),Q.beta.g1_sx=t(),Q.tau.g2_spx=i(),Q.alpha.g2_spx=i(),Q.beta.g2_spx=i(),Q;function t(){let Q;return Q=C?g.G1.fromRprLEM(A,I):g.G1.fromRprUncompressed(A,I),I+=2*g.G1.F.n8,Q}function i(){let Q;return Q=C?g.G2.fromRprLEM(A,I):g.G2.fromRprUncompressed(A,I),I+=2*g.G2.F.n8,Q}}function xg(A,I,g,C,Q){async function t(C){Q?g.G1.toRprLEM(A,I,C):g.G1.toRprUncompressed(A,I,C),I+=2*g.F1.n8}async function i(C){Q?g.G2.toRprLEM(A,I,C):g.G2.toRprUncompressed(A,I,C),I+=2*g.F2.n8}return t(C.tau.g1_s),t(C.tau.g1_sx),t(C.alpha.g1_s),t(C.alpha.g1_sx),t(C.beta.g1_s),t(C.beta.g1_sx),i(C.tau.g2_spx),i(C.alpha.g2_spx),i(C.beta.g2_spx),A}async function Xg(A,I){const g={};g.tauG1=await E(),g.tauG2=await e(),g.alphaG1=await E(),g.betaG1=await E(),g.betaG2=await e(),g.key=await async function(A,I,g){return qg(await A.read(2*I.F1.n8*6+2*I.F2.n8*3),0,I,g)}(A,I,!0),g.partialHash=await A.read(216),g.nextChallenge=await A.read(64),g.type=await A.readULE32();const C=new Uint8Array(2*I.G1.F.n8*6+2*I.G2.F.n8*3);xg(C,0,I,g.key,!1);const Q=TI(64);Q.setPartialHash(g.partialHash),Q.update(C),g.responseHash=Q.digest();const t=await A.readULE32(),i=A.pos;let B=0;for(;A.pos-i1)throw new Error(A.fileName+": File has more than one contributions section");A.pos=g[7][0].p;const C=await A.readULE32(),Q=[];for(let g=0;g0){const I=new Uint8Array(t);await A.writeULE32(I.byteLength),await A.write(I)}else await A.writeULE32(0);async function i(g){I.G1.toRprLEM(C,0,g),await A.write(C)}async function B(g){I.G2.toRprLEM(Q,0,g),await A.write(Q)}}async function Vg(A,I,g){await A.writeULE32(7);const C=A.pos;await A.writeULE64(0),await A.writeULE32(g.length);for(let C=0;C0?n[n.length-1].nextChallenge:Og(E,e,t);const D=await NI(g,"ptau",1,7);await Yg(D,E,e);const c=await w.read(64);if(!Cg(c,f))throw new Error("Wrong contribution. this contribution is not based on the previus hash");const y=new TI(64);y.update(c);const F=[];let M;M=await H(w,D,"G1",2,2*(1<=g&&I1?E[E.length-2]:e;const h=E[E.length-1];if(I&&I.debug("Validating contribution #"+E[E.length-1].id),!await zg(t,h,n,I))return!1;const o=TI(64);o.update(h.responseHash),I&&I.debug("Verifying powers in tau*G1 section");const a=await y(2,"G1","tauG1",2*(1<1)throw A.error("File has no BetaG2 section"),new Error("File has more than one GetaG2 section");C.pos=Q[6][0].p;const B=await C.read(g),E=I.fromRprLEM(B);return I.toRprUncompressed(i,0,E),o.update(i),E}(I);if(!t.G2.eq(h.betaG2,f))return I&&I.error("betaG2 element in betaG2 section does not match the one in the contribution section"),!1;const D=o.digest();if(!Cg(D,h.nextChallenge))return I&&I.error("Hash of the values does not match the next challenge of the last contributor in the contributions section"),!1;I&&I.info(gg(D,"Next challenge hash: ")),c(h,n);for(let A=E.length-2;A>=0;A--){const g=E[A],C=A>0?E[A-1]:e;if(!await zg(t,g,C,I))return!1;c(g,C)}if(I&&I.info("-----------------------------------------------------"),Q[12]&&Q[13]&&Q[14]&&Q[15]){let A;if(A=await F("G1",2,12,"tauG1",I),!A)return!1;if(A=await F("G2",3,13,"tauG2",I),!A)return!1;if(A=await F("G1",4,14,"alphaTauG1",I),!A)return!1;if(A=await F("G1",5,15,"betaTauG1",I),!A)return!1}else I&&I.warn('this file does not contain phase2 precalculated values. Please run: \n snarkjs "powersoftau preparephase2" to prepare this file to be used in the phase2 ceremony.');return await C.close(),!0;function c(A,g){if(!I)return;I.info("-----------------------------------------------------"),I.info(`Contribution #${A.id}: ${A.name||""}`),I.info(gg(A.nextChallenge,"Next Challenge: "));const C=new Uint8Array(2*t.G1.F.n8*6+2*t.G2.F.n8*3);xg(C,0,t,A.key,!1);const Q=TI(64);Q.setPartialHash(A.partialHash),Q.update(C);const i=Q.digest();I.info(gg(i,"Response Hash:")),I.info(gg(g.nextChallenge,"Response Hash:")),1==A.type&&(I.info("Beacon generator: "+eg(A.beaconHash)),I.info("Beacon iterations Exp: "+A.numIterationsExp))}async function y(A,I,g,i,B,E){const e=t[I],n=2*e.F.n8;await RI(C,Q,A);const h=[];let a=e.zero,r=e.zero,s=e.zero;for(let A=0;A0){const A=e.fromRprLEM(Q,0),I=lA.randomBytes(4).readUInt32BE(0,!0);a=e.add(a,e.timesScalar(s,I)),r=e.add(r,e.timesScalar(A,I))}const f=await e.multiExpAffine(Q.slice(0,(I-1)*n),w),D=await e.multiExpAffine(Q.slice(n),w);a=e.add(a,f),r=e.add(r,D),s=e.fromRprLEM(Q,(I-1)*n);for(let g=0;g=A&&C1;)e/=2,n+=1;if(1<{Q.debug(I+".g1_s: "+A.G1.toString(w[I].g1_s,16)),Q.debug(I+".g1_sx: "+A.G1.toString(w[I].g1_sx,16)),Q.debug(I+".g2_sp: "+A.G2.toString(w[I].g2_sp,16)),Q.debug(I+".g2_spx: "+A.G2.toString(w[I].g2_spx,16)),Q.debug("")});const f=TI(64);await o.write(s),f.update(s),await _g(t,o,f,A,"G1",2*(1<=256)return t&&t.error("Maximum lenght of beacon hash is 255 bytes"),!1;if((Q=parseInt(Q))<10||Q>63)return t&&t.error("Invalid numIterationsExp. (Must be between 10 and 63)"),!1;await TI.ready();const{fd:B,sections:E}=await kI(A,"ptau",1),{curve:e,power:n,ceremonyPower:h}=await Pg(B,E);if(n!=h)return t&&t.error("This file has been reduced. You cannot contribute into a reduced file."),!1;E[12]&&t&&t.warn("Contributing into a file that has phase2 calculated. You will have to prepare phase2 again.");const o=await Zg(B,e,E),a={name:g,type:1,numIterationsExp:Q,beaconHash:i};let r;r=o.length>0?o[o.length-1].nextChallenge:Og(e,n,t),a.key=jg(e,r,i,Q);const s=new TI(64);s.update(r);const w=await NI(I,"ptau",1,7);await Yg(w,e,n);const f=[];let D;D=await M(2,"G1",2*(1<0?n[n.length-1].nextChallenge:Og(B,E,Q),h.key=vg(B,o,a);const r=new TI(64);r.update(o);const s=await NI(I,"ptau",1,7);await Yg(s,B,E);const w=[];let f;f=await F(2,"G1",2*(1<16?16:I,h=1<16?16:A),o=(1<{I.pendingLoads.push({page:A,resolve:g,reject:C}),setImmediate(I._triggerLoad.bind(I))})}_triggerLoad(){const A=this;if(function(){const I=[];for(let g=0;g=A.maxPagesLoaded){const I=function(){for(let I in A.pages){const g=A.pages[I];if(0==g.dirty&&0==g.pendingOps)return I}return-1}();if(I<0)return;delete A.pages[I]}const I=A.pendingLoads.shift();if(I.page>=A.totalPages)return A.pages[I.page]={dirty:!1,buff:new Uint8Array(A.pageSize),pendingOps:1,size:0},I.resolve(),void setImmediate(A._triggerLoad.bind(A));if(A.reading)return void A.pendingLoads.unshift(I);A.reading=!0;const g={dirty:!1,buff:new Uint8Array(A.pageSize),pendingOps:1,size:0};A.fd.read(g.buff,0,A.pageSize,I.page*A.pageSize).then(C=>{g.size=C.bytesRead,A.pages[I.page]=g,A.reading=!1,I.resolve(),setImmediate(A._triggerLoad.bind(A))},A=>{I.reject(A)})}_triggerWrite(){const A=this;if(A.writing)return;const I=A._getDirtyPage();I<0?A.pendingClose&&A.pendingClose():(A.writing=!0,A.pages[I].dirty=!1,A.fd.write(A.pages[I].buff,0,A.pages[I].size,I*A.pageSize).then(()=>{A.writing=!1,setImmediate(A._triggerWrite.bind(A)),setImmediate(A._triggerLoad.bind(A))},I=>{console.log("ERROR Writing: "+I),A.error=I,A._tryClose()}))}_getDirtyPage(){for(let A in this.pages)if(this.pages[A].dirty)return A;return-1}async write(A,I){if(0==A.byteLength)return;const g=this;if(A.byteLength>g.pageSize*g.maxPagesLoaded*.8){const I=Math.floor(1.1*A.byteLength);this.maxPagesLoaded=Math.floor(I/g.pageSize)+1}if(void 0===I&&(I=g.pos),g.pos=I+A.byteLength,g.totalSize0;){const I=i+B>g.pageSize?g.pageSize-i:B,C=new Uint8Array(A.buffer,A.byteLength-B,I);new Uint8Array(g.pages[t].buff.buffer,i,I).set(C),g.pages[t].dirty=!0,g.pages[t].pendingOps--,g.pages[t].size=Math.max(i+I,g.pages[t].size),t>=g.totalPages&&(g.totalPages=t+1),B-=I,t++,i=0}setImmediate(g._triggerWrite.bind(g))}async read(A,I){if(0==A)return new Uint8Array(0);const g=this;if(A>g.pageSize*g.maxPagesLoaded*.8){const I=Math.floor(1.1*A);this.maxPagesLoaded=Math.floor(I/g.pageSize)+1}if(void 0===I&&(I=g.pos),g.pos=I+A,g.pendingClose)throw new Error("Reading a closing file");const C=Math.floor(I/g.pageSize),Q=Math.floor((I+A-1)/g.pageSize);for(let A=C;A<=Q;A++)await g._loadPage(A);let t=new Uint8Array(A),i=new Uint8Array(t),B=C,E=I%g.pageSize,e=I+A>g.totalSize?A-(I+A-g.totalSize):A;for(;e>0;){const A=E+e>g.pageSize?g.pageSize-E:e,I=new Uint8Array(g.pages[B].buff.buffer,E,A);t.set(I,i.byteLength-e),g.pages[B].pendingOps--,e-=A,B++,E=0}return setImmediate(g._triggerLoad.bind(g)),t}_tryClose(){const A=this;if(!A.pendingClose)return;A.error&&A.pendingCloseReject(A.error);A._getDirtyPage()>=0||A.writing||A.reading||A.pendingLoads.length>0||A.pendingClose()}close(){const A=this;if(A.pendingClose)throw new Error("Closing the file twice");return new Promise((I,g)=>{A.pendingClose=I,A.pendingCloseReject=g,A._tryClose()}).then(()=>{A.fd.close()},I=>{throw A.fd.close(),I})}async discard(){await this.close(),await lA.promises.unlink(this.fileName)}async writeULE32(A,I){const g=Uint32Array.of(A);await this.write(new Uint8Array(g.buffer),I)}async writeUBE32(A,I){const g=new Uint8Array(4);new DataView(g.buffer).setUint32(0,A,!1),await this.write(g,I)}async writeULE64(A,I){const g=Uint32Array.of(4294967295&A,Math.floor(A/4294967296));await this.write(new Uint8Array(g.buffer),I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),g=new Uint32Array(I.buffer);return 4294967296*g[1]+g[0]}}class IC{constructor(){this.pageSize=16384}_resizeIfNeeded(A){if(A>this.allocSize){const I=Math.max(this.allocSize+(1<<20),Math.floor(1.1*this.allocSize),A),g=new Uint8Array(I);g.set(this.o.data),this.o.data=g,this.allocSize=I}}async write(A,I){if(void 0===I&&(I=this.pos),this.readOnly)throw new Error("Writing a read only file");this._resizeIfNeeded(I+A.byteLength),this.o.data.set(A,I),I+A.byteLength>this.totalSize&&(this.totalSize=I+A.byteLength),this.pos=I+A.byteLength}async read(A,I){if(void 0===I&&(I=this.pos),this.readOnly&&I+A>this.totalSize)throw new Error("Reading out of bounds");this._resizeIfNeeded(I+A);const g=this.o.data.slice(I,I+A);return this.pos=I+A,g}close(){this.o.data.byteLength!=this.totalSize&&(this.o.data=this.o.data.slice(0,this.totalSize))}async discard(){}async writeULE32(A,I){const g=Uint32Array.of(A);await this.write(new Uint8Array(g.buffer),I)}async writeUBE32(A,I){const g=new Uint8Array(4);new DataView(g.buffer).setUint32(0,A,!1),await this.write(g,I)}async writeULE64(A,I){const g=Uint32Array.of(4294967295&A,Math.floor(A/4294967296));await this.write(new Uint8Array(g.buffer),I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),g=new Uint32Array(I.buffer);return 4294967296*g[1]+g[0]}}async function gC(A,I){if(A instanceof Uint8Array&&(A={type:"mem",data:A}),"string"==typeof A){A={type:"mem",data:await fetch(A).then((function(A){return A.arrayBuffer()})).then((function(A){return new Uint8Array(A)}))}}if("file"==A.type)return await async function(A,I,g){if(g=g||262144,["w+","wx+","r","ax+","a+"].indexOf(I)<0)throw new Error("Invalid open option");const C=await lA.promises.open(A,I),Q=await C.stat();return new AC(C,Q,g,A)}(A.fileName,"r",A.cacheSize);if("mem"==A.type)return await function(A){const I=new IC;return I.o=A,I.allocSize=A.data.byteLength,I.totalSize=A.data.byteLength,I.readOnly=!0,I.pos=0,I}(A);throw new Error("Invalid FastFile type: "+A.type)}async function CC(A,I,g){if(void 0!==A.readingSection)throw new Error("Already reading a section");if(!I[g])throw new Error(A.fileName+": Missing section "+g);if(I[g].length>1)throw new Error(A.fileName+": Section Duplicated "+g);A.pos=I[g][0].p,A.readingSection=I[g][0]}async function QC(A,I){if(void 0===A.readingSection)throw new Error("Not reading a section");if(!I&&A.pos-A.readingSection.p!=A.readingSection.size)throw new Error("Invalid section size");delete A.readingSection}async function tC(A,I,g){const C=await A.read(I,g);return wI.fromRprLE(C,0,I)}async function iC(A,I){const g={};return await CC(A,I,1),g.n8=await A.readULE32(),g.prime=await tC(A,g.n8),g.Fr=new kA(g.prime),g.nVars=await A.readULE32(),g.nOutputs=await A.readULE32(),g.nPubInputs=await A.readULE32(),g.nPrvInputs=await A.readULE32(),g.nLabels=await A.readULE64(),g.nConstraints=await A.readULE32(),await QC(A),g}async function BC(A,I,g){const{fd:C,sections:Q}=await async function(A,I,g){const C=await gC(A),Q=await C.read(4);let t="";for(let A=0;A<4;A++)t+=String.fromCharCode(Q[A]);if(t!=I)throw new Error(A+": Invalid File format");if(await C.readULE32()>g)throw new Error("Version not supported");const i=await C.readULE32();let B=[];for(let A=0;A{let C="";return Object.keys(g).forEach(Q=>{let t=I.varIdx2Name[Q];"one"==t&&(t="");let i=A.Fr.toString(g[Q]);"1"==i&&(i=""),"-1"==i&&(i="-"),""!=C&&"-"!=i[0]&&(i="+"+i),""!=C&&(i=" "+i),C=C+i+t}),C},t=`[ ${Q(C[0])} ] * [ ${Q(C[1])} ] - [ ${Q(C[2])} ] = 0`;g&&g.info(t)}},info:async function(A,I){const g=await BC(A);return wI.eq(g.prime,eC)?I&&I.info("Curve: bn-128"):wI.eq(g.prime,EC)?I&&I.info("Curve: bls12-381"):I&&I.info("Unknown Curve. Prime: "+wI.toString(g.prime)),I&&I.info("# of Wires: "+g.nVars),I&&I.info("# of Constraints: "+g.nConstraints),I&&I.info("# of Private Inputs: "+g.nPrvInputs),I&&I.info("# of Public Inputs: "+g.nPubInputs),I&&I.info("# of Outputs: "+g.nOutputs),g},exportJson:async function(A,I){return await BC(A,!0,!0)}});async function hC(A){const I={labelIdx2Name:["one"],varIdx2Name:["one"],componentIdx2Name:[]},g=await mI(A),C=await g.read(g.totalSize),Q=new TextDecoder("utf-8").decode(C).split("\n");for(let A=0;Ah)return C&&C.error(`circuit too big for this power of tau ceremony. ${B.nConstraints} > 2**${h}`),-1;if(!e[12])return C&&C.error("Powers of tau is not prepared."),-1;const w=B.nOutputs+B.nPubInputs,f=1<o.contributions.length)return Q&&Q.error("The impoerted file does not include new contributions"),!1;for(let A=0;A=0;A--){const I=n.contributions[A];C&&C.info("-------------------------"),C&&C.info(gg(I.contributionHash,`contribution #${A+1} ${I.name?I.name:""}:`)),1==I.type&&(C&&C.info("Beacon generator: "+eg(I.beaconHash)),C&&C.info("Beacon iterations Exp: "+I.numIterationsExp))}return C&&C.info("-------------------------"),C&&C.info("ZKey Ok!"),!0;async function c(A,I){const g=2*E.G1.F.n8,C=A.byteLength/g,Q=E.tm.concurrency,t=Math.floor(C/Q),i=[];for(let g=0;g=256)return t&&t.error("Maximum lenght of beacon hash is 255 bytes"),!1;if((Q=parseInt(Q))<10||Q>63)return t&&t.error("Invalid numIterationsExp. (Must be between 10 and 63)"),!1;const{fd:B,sections:E}=await kI(A,"zkey",2),e=await sg(B,E,"groth16"),n=await KI(e.q),h=await fg(B,n,E),o=await NI(I,"zkey",1,10),a=await Bg(i,Q),r=TI(64);r.update(h.csHash);for(let A=0;A",B);const E=`[${C.vk_beta_2[0][1].toString()},`+C.vk_beta_2[0][0].toString()+"], "+`[${C.vk_beta_2[1][1].toString()},`+C.vk_beta_2[1][0].toString()+"]";i=i.replace("<%vk_beta2%>",E);const e=`[${C.vk_gamma_2[0][1].toString()},`+C.vk_gamma_2[0][0].toString()+"], "+`[${C.vk_gamma_2[1][1].toString()},`+C.vk_gamma_2[1][0].toString()+"]";i=i.replace("<%vk_gamma2%>",e);const n=`[${C.vk_delta_2[0][1].toString()},`+C.vk_delta_2[0][0].toString()+"], "+`[${C.vk_delta_2[1][1].toString()},`+C.vk_delta_2[1][0].toString()+"]";i=i.replace("<%vk_delta2%>",n),i=i.replace("<%vk_input_length%>",(C.IC.length-1).toString()),i=i.replace("<%vk_ic_length%>",C.IC.length.toString());let h="";for(let A=0;A",h),i}});return A.groth16=Jg,A.powersOfTau=$g,A.r1cs=nC,A.wtns=aC,A.zKey=DC,A}({}); +var snarkjs=function(A){"use strict";const I=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];function t(A,I){return I&&10!=I?16==I?"0x"==A.slice(0,2)?BigInt(A):BigInt("0x"+A):void 0:BigInt(A)}const i=t;function g(A,I){return BigInt(A)<>BigInt(I)}const Q=g,e=C;var n=Object.freeze({__proto__:null,fromString:t,e:i,fromArray:function(A,I){let t=0n;I=BigInt(I);for(let i=0;i>=1n}return t},bits:function(A){let I=BigInt(A);const t=[];for(;I;)1n&I?t.push(1):t.push(0),I>>=1n;return t},toNumber:function(A){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("Number too big");return Number(A)},toArray:function(A,I){const t=[];let i=BigInt(A);for(I=BigInt(I);i;)t.unshift(Number(i%I)),i/=I;return t},add:function(A,I){return BigInt(A)+BigInt(I)},sub:function(A,I){return BigInt(A)-BigInt(I)},neg:function(A){return-BigInt(A)},mul:function(A,I){return BigInt(A)*BigInt(I)},square:function(A){return BigInt(A)*BigInt(A)},pow:function(A,I){return BigInt(A)**BigInt(I)},exp:function(A,I){return BigInt(A)**BigInt(I)},abs:function(A){return BigInt(A)>=0?BigInt(A):-BigInt(A)},div:function(A,I){return BigInt(A)/BigInt(I)},mod:function(A,I){return BigInt(A)%BigInt(I)},eq:function(A,I){return BigInt(A)==BigInt(I)},neq:function(A,I){return BigInt(A)!=BigInt(I)},lt:function(A,I){return BigInt(A)BigInt(I)},leq:function(A,I){return BigInt(A)<=BigInt(I)},geq:function(A,I){return BigInt(A)>=BigInt(I)},band:function(A,I){return BigInt(A)&BigInt(I)},bor:function(A,I){return BigInt(A)|BigInt(I)},bxor:function(A,I){return BigInt(A)^BigInt(I)},land:function(A,I){return BigInt(A)&&BigInt(I)},lor:function(A,I){return BigInt(A)||BigInt(I)},lnot:function(A){return!BigInt(A)}});function B(A,I){return A(I={exports:{}},I.exports),I.exports}var r=B((function(A){var I=function(A){var t=1e7,i=9007199254740992,g=E(i),C="function"==typeof BigInt;function Q(A,I,t,i){return void 0===A?Q[0]:void 0!==I&&(10!=+I||t)?Y(A,I,t,i):Z(A)}function e(A,I){this.value=A,this.sign=I,this.isSmall=!1}function n(A){this.value=A,this.sign=A<0,this.isSmall=!0}function B(A){this.value=A}function r(A){return-i0?Math.floor(A):Math.ceil(A)}function f(A,I){var i,g,C=A.length,Q=I.length,e=new Array(C),n=0,B=t;for(g=0;g=B?1:0,e[g]=i-n*B;for(;g0&&e.push(n),e}function w(A,I){return A.length>=I.length?f(A,I):f(I,A)}function D(A,I){var i,g,C=A.length,Q=new Array(C),e=t;for(g=0;g0;)Q[g++]=I%e,I=Math.floor(I/e);return Q}function c(A,I){var t,i,g=A.length,C=I.length,Q=new Array(g),e=0;for(t=0;t0;)Q[g++]=n%e,n=Math.floor(n/e);return Q}function l(A,I){for(var t=[];I-- >0;)t.push(0);return t.concat(A)}function F(A,I,i){return new e(A=0;--t)g=(C=1e7*g+A[t])-(i=a(C/I))*I,e[t]=0|i;return[e,0|g]}function d(A,I){var i,g=Z(I);if(C)return[new B(A.value/g.value),new B(A.value%g.value)];var r,f=A.value,w=g.value;if(0===w)throw new Error("Cannot divide by zero");if(A.isSmall)return g.isSmall?[new n(a(f/w)),new n(f%w)]:[Q[0],A];if(g.isSmall){if(1===w)return[A,Q[0]];if(-1==w)return[A.negate(),Q[0]];var D=Math.abs(w);if(D=0;g--){for(i=o-1,D[g+E]!==f&&(i=Math.floor((D[g+E]*o+D[g+E-1])/f)),C=0,Q=0,n=c.length,e=0;en&&(g=1e7*(g+1)),t=Math.ceil(g/C);do{if(G(Q=p(I,t),r)<=0)break;t--}while(t);B.push(t),r=c(r,Q)}return B.reverse(),[h(B),h(r)]}(f,w))[0];var l=A.sign!==g.sign,F=i[1],M=A.sign;return"number"==typeof r?(l&&(r=-r),r=new n(r)):r=new e(r,l),"number"==typeof F?(M&&(F=-F),F=new n(F)):F=new e(F,M),[r,F]}function G(A,I){if(A.length!==I.length)return A.length>I.length?1:-1;for(var t=A.length-1;t>=0;t--)if(A[t]!==I[t])return A[t]>I[t]?1:-1;return 0}function U(A){var I=A.abs();return!I.isUnit()&&(!!(I.equals(2)||I.equals(3)||I.equals(5))||!(I.isEven()||I.isDivisibleBy(3)||I.isDivisibleBy(5))&&(!!I.lesser(49)||void 0))}function H(A,t){for(var i,g,C,Q=A.prev(),e=Q,n=0;e.isEven();)e=e.divide(2),n++;A:for(g=0;g=0?i=c(A,I):(i=c(I,A),t=!t),"number"==typeof(i=h(i))?(t&&(i=-i),new n(i)):new e(i,t)}(t,i,this.sign)},e.prototype.minus=e.prototype.subtract,n.prototype.subtract=function(A){var I=Z(A),t=this.value;if(t<0!==I.sign)return this.add(I.negate());var i=I.value;return I.isSmall?new n(t-i):u(i,Math.abs(t),t>=0)},n.prototype.minus=n.prototype.subtract,B.prototype.subtract=function(A){return new B(this.value-Z(A).value)},B.prototype.minus=B.prototype.subtract,e.prototype.negate=function(){return new e(this.value,!this.sign)},n.prototype.negate=function(){var A=this.sign,I=new n(-this.value);return I.sign=!A,I},B.prototype.negate=function(){return new B(-this.value)},e.prototype.abs=function(){return new e(this.value,!1)},n.prototype.abs=function(){return new n(Math.abs(this.value))},B.prototype.abs=function(){return new B(this.value>=0?this.value:-this.value)},e.prototype.multiply=function(A){var I,i,g,C=Z(A),n=this.value,B=C.value,r=this.sign!==C.sign;if(C.isSmall){if(0===B)return Q[0];if(1===B)return this;if(-1===B)return this.negate();if((I=Math.abs(B))0?function A(I,t){var i=Math.max(I.length,t.length);if(i<=30)return y(I,t);i=Math.ceil(i/2);var g=I.slice(i),C=I.slice(0,i),Q=t.slice(i),e=t.slice(0,i),n=A(C,e),B=A(g,Q),r=A(w(C,g),w(e,Q)),E=w(w(n,l(c(c(r,n),B),i)),l(B,2*i));return o(E),E}(n,B):y(n,B),r)},e.prototype.times=e.prototype.multiply,n.prototype._multiplyBySmall=function(A){return r(A.value*this.value)?new n(A.value*this.value):F(Math.abs(A.value),E(Math.abs(this.value)),this.sign!==A.sign)},e.prototype._multiplyBySmall=function(A){return 0===A.value?Q[0]:1===A.value?this:-1===A.value?this.negate():F(Math.abs(A.value),this.value,this.sign!==A.sign)},n.prototype.multiply=function(A){return Z(A)._multiplyBySmall(this)},n.prototype.times=n.prototype.multiply,B.prototype.multiply=function(A){return new B(this.value*Z(A).value)},B.prototype.times=B.prototype.multiply,e.prototype.square=function(){return new e(M(this.value),!1)},n.prototype.square=function(){var A=this.value*this.value;return r(A)?new n(A):new e(M(E(Math.abs(this.value))),!1)},B.prototype.square=function(A){return new B(this.value*this.value)},e.prototype.divmod=function(A){var I=d(this,A);return{quotient:I[0],remainder:I[1]}},B.prototype.divmod=n.prototype.divmod=e.prototype.divmod,e.prototype.divide=function(A){return d(this,A)[0]},B.prototype.over=B.prototype.divide=function(A){return new B(this.value/Z(A).value)},n.prototype.over=n.prototype.divide=e.prototype.over=e.prototype.divide,e.prototype.mod=function(A){return d(this,A)[1]},B.prototype.mod=B.prototype.remainder=function(A){return new B(this.value%Z(A).value)},n.prototype.remainder=n.prototype.mod=e.prototype.remainder=e.prototype.mod,e.prototype.pow=function(A){var I,t,i,g=Z(A),C=this.value,e=g.value;if(0===e)return Q[1];if(0===C)return Q[0];if(1===C)return Q[1];if(-1===C)return g.isEven()?Q[1]:Q[-1];if(g.sign)return Q[0];if(!g.isSmall)throw new Error("The exponent "+g.toString()+" is too large.");if(this.isSmall&&r(I=Math.pow(C,e)))return new n(a(I));for(t=this,i=Q[1];!0&e&&(i=i.times(t),--e),0!==e;)e/=2,t=t.square();return i},n.prototype.pow=e.prototype.pow,B.prototype.pow=function(A){var I=Z(A),t=this.value,i=I.value,g=BigInt(0),C=BigInt(1),e=BigInt(2);if(i===g)return Q[1];if(t===g)return Q[0];if(t===C)return Q[1];if(t===BigInt(-1))return I.isEven()?Q[1]:Q[-1];if(I.isNegative())return new B(g);for(var n=this,r=Q[1];(i&C)===C&&(r=r.times(n),--i),i!==g;)i/=e,n=n.square();return r},e.prototype.modPow=function(A,I){if(A=Z(A),(I=Z(I)).isZero())throw new Error("Cannot take modPow with modulus 0");var t=Q[1],i=this.mod(I);for(A.isNegative()&&(A=A.multiply(Q[-1]),i=i.modInv(I));A.isPositive();){if(i.isZero())return Q[0];A.isOdd()&&(t=t.multiply(i).mod(I)),A=A.divide(2),i=i.square().mod(I)}return t},B.prototype.modPow=n.prototype.modPow=e.prototype.modPow,e.prototype.compareAbs=function(A){var I=Z(A),t=this.value,i=I.value;return I.isSmall?1:G(t,i)},n.prototype.compareAbs=function(A){var I=Z(A),t=Math.abs(this.value),i=I.value;return I.isSmall?t===(i=Math.abs(i))?0:t>i?1:-1:-1},B.prototype.compareAbs=function(A){var I=this.value,t=Z(A).value;return(I=I>=0?I:-I)===(t=t>=0?t:-t)?0:I>t?1:-1},e.prototype.compare=function(A){if(A===1/0)return-1;if(A===-1/0)return 1;var I=Z(A),t=this.value,i=I.value;return this.sign!==I.sign?I.sign?1:-1:I.isSmall?this.sign?-1:1:G(t,i)*(this.sign?-1:1)},e.prototype.compareTo=e.prototype.compare,n.prototype.compare=function(A){if(A===1/0)return-1;if(A===-1/0)return 1;var I=Z(A),t=this.value,i=I.value;return I.isSmall?t==i?0:t>i?1:-1:t<0!==I.sign?t<0?-1:1:t<0?1:-1},n.prototype.compareTo=n.prototype.compare,B.prototype.compare=function(A){if(A===1/0)return-1;if(A===-1/0)return 1;var I=this.value,t=Z(A).value;return I===t?0:I>t?1:-1},B.prototype.compareTo=B.prototype.compare,e.prototype.equals=function(A){return 0===this.compare(A)},B.prototype.eq=B.prototype.equals=n.prototype.eq=n.prototype.equals=e.prototype.eq=e.prototype.equals,e.prototype.notEquals=function(A){return 0!==this.compare(A)},B.prototype.neq=B.prototype.notEquals=n.prototype.neq=n.prototype.notEquals=e.prototype.neq=e.prototype.notEquals,e.prototype.greater=function(A){return this.compare(A)>0},B.prototype.gt=B.prototype.greater=n.prototype.gt=n.prototype.greater=e.prototype.gt=e.prototype.greater,e.prototype.lesser=function(A){return this.compare(A)<0},B.prototype.lt=B.prototype.lesser=n.prototype.lt=n.prototype.lesser=e.prototype.lt=e.prototype.lesser,e.prototype.greaterOrEquals=function(A){return this.compare(A)>=0},B.prototype.geq=B.prototype.greaterOrEquals=n.prototype.geq=n.prototype.greaterOrEquals=e.prototype.geq=e.prototype.greaterOrEquals,e.prototype.lesserOrEquals=function(A){return this.compare(A)<=0},B.prototype.leq=B.prototype.lesserOrEquals=n.prototype.leq=n.prototype.lesserOrEquals=e.prototype.leq=e.prototype.lesserOrEquals,e.prototype.isEven=function(){return 0==(1&this.value[0])},n.prototype.isEven=function(){return 0==(1&this.value)},B.prototype.isEven=function(){return(this.value&BigInt(1))===BigInt(0)},e.prototype.isOdd=function(){return 1==(1&this.value[0])},n.prototype.isOdd=function(){return 1==(1&this.value)},B.prototype.isOdd=function(){return(this.value&BigInt(1))===BigInt(1)},e.prototype.isPositive=function(){return!this.sign},n.prototype.isPositive=function(){return this.value>0},B.prototype.isPositive=n.prototype.isPositive,e.prototype.isNegative=function(){return this.sign},n.prototype.isNegative=function(){return this.value<0},B.prototype.isNegative=n.prototype.isNegative,e.prototype.isUnit=function(){return!1},n.prototype.isUnit=function(){return 1===Math.abs(this.value)},B.prototype.isUnit=function(){return this.abs().value===BigInt(1)},e.prototype.isZero=function(){return!1},n.prototype.isZero=function(){return 0===this.value},B.prototype.isZero=function(){return this.value===BigInt(0)},e.prototype.isDivisibleBy=function(A){var I=Z(A);return!I.isZero()&&(!!I.isUnit()||(0===I.compareAbs(2)?this.isEven():this.mod(I).isZero()))},B.prototype.isDivisibleBy=n.prototype.isDivisibleBy=e.prototype.isDivisibleBy,e.prototype.isPrime=function(A){var t=U(this);if(void 0!==t)return t;var i=this.abs(),g=i.bitLength();if(g<=64)return H(i,[2,3,5,7,11,13,17,19,23,29,31,37]);for(var C=Math.log(2)*g.toJSNumber(),Q=Math.ceil(!0===A?2*Math.pow(C,2):C),e=[],n=0;n-i?new n(A-1):new e(g,!0)},B.prototype.prev=function(){return new B(this.value-BigInt(1))};for(var L=[1];2*L[L.length-1]<=t;)L.push(2*L[L.length-1]);var k=L.length,N=L[k-1];function b(A){return Math.abs(A)<=t}function S(A,t,i){t=Z(t);for(var g=A.isNegative(),C=t.isNegative(),Q=g?A.not():A,e=C?t.not():t,n=0,B=0,r=null,E=null,h=[];!Q.isZero()||!e.isZero();)n=(r=d(Q,N))[1].toJSNumber(),g&&(n=N-1-n),B=(E=d(e,N))[1].toJSNumber(),C&&(B=N-1-B),Q=r[0],e=E[0],h.push(i(n,B));for(var o=0!==i(g?1:0,C?1:0)?I(-1):I(0),s=h.length-1;s>=0;s-=1)o=o.multiply(N).add(I(h[s]));return o}e.prototype.shiftLeft=function(A){var I=Z(A).toJSNumber();if(!b(I))throw new Error(String(I)+" is too large for shifting.");if(I<0)return this.shiftRight(-I);var t=this;if(t.isZero())return t;for(;I>=k;)t=t.multiply(N),I-=k-1;return t.multiply(L[I])},B.prototype.shiftLeft=n.prototype.shiftLeft=e.prototype.shiftLeft,e.prototype.shiftRight=function(A){var I,t=Z(A).toJSNumber();if(!b(t))throw new Error(String(t)+" is too large for shifting.");if(t<0)return this.shiftLeft(-t);for(var i=this;t>=k;){if(i.isZero()||i.isNegative()&&i.isUnit())return i;i=(I=d(i,N))[1].isNegative()?I[0].prev():I[0],t-=k-1}return(I=d(i,L[t]))[1].isNegative()?I[0].prev():I[0]},B.prototype.shiftRight=n.prototype.shiftRight=e.prototype.shiftRight,e.prototype.not=function(){return this.negate().prev()},B.prototype.not=n.prototype.not=e.prototype.not,e.prototype.and=function(A){return S(this,A,(function(A,I){return A&I}))},B.prototype.and=n.prototype.and=e.prototype.and,e.prototype.or=function(A){return S(this,A,(function(A,I){return A|I}))},B.prototype.or=n.prototype.or=e.prototype.or,e.prototype.xor=function(A){return S(this,A,(function(A,I){return A^I}))},B.prototype.xor=n.prototype.xor=e.prototype.xor;function R(A){var I=A.value,i="number"==typeof I?I|1<<30:"bigint"==typeof I?I|BigInt(1<<30):I[0]+I[1]*t|1073758208;return i&-i}function J(A,I){return A=Z(A),I=Z(I),A.greater(I)?A:I}function v(A,I){return A=Z(A),I=Z(I),A.lesser(I)?A:I}function q(A,I){if(A=Z(A).abs(),I=Z(I).abs(),A.equals(I))return A;if(A.isZero())return I;if(I.isZero())return A;for(var t,i,g=Q[1];A.isEven()&&I.isEven();)t=v(R(A),R(I)),A=A.divide(t),I=I.divide(t),g=g.multiply(t);for(;A.isEven();)A=A.divide(R(A));do{for(;I.isEven();)I=I.divide(R(I));A.greater(I)&&(i=I,I=A,A=i),I=I.subtract(A)}while(!I.isZero());return g.isUnit()?A:A.multiply(g)}e.prototype.bitLength=function(){var A=this;return A.compareTo(I(0))<0&&(A=A.negate().subtract(I(1))),0===A.compareTo(I(0))?I(0):I(function A(t,i){if(i.compareTo(t)<=0){var g=A(t,i.square(i)),C=g.p,Q=g.e,e=C.multiply(i);return e.compareTo(t)<=0?{p:e,e:2*Q+1}:{p:C,e:2*Q}}return{p:I(1),e:0}}(A,I(2)).e).add(I(1))},B.prototype.bitLength=n.prototype.bitLength=e.prototype.bitLength;var Y=function(A,I,t,i){t=t||"0123456789abcdefghijklmnopqrstuvwxyz",A=String(A),i||(A=A.toLowerCase(),t=t.toLowerCase());var g,C=A.length,Q=Math.abs(I),e={};for(g=0;g=Q)){if("1"===r&&1===Q)continue;throw new Error(r+" is not a valid digit in base "+I+".")}}I=Z(I);var n=[],B="-"===A[0];for(g=B?1:0;g"!==A[g]&&g=0;i--)g=g.add(A[i].times(C)),C=C.times(I);return t?g.negate():g}function x(A,t){if((t=I(t)).isZero()){if(A.isZero())return{value:[0],isNegative:!1};throw new Error("Cannot convert nonzero numbers to base 0.")}if(t.equals(-1)){if(A.isZero())return{value:[0],isNegative:!1};if(A.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-A.toJSNumber())).map(Array.prototype.valueOf,[1,0])),isNegative:!1};var i=Array.apply(null,Array(A.toJSNumber()-1)).map(Array.prototype.valueOf,[0,1]);return i.unshift([1]),{value:[].concat.apply([],i),isNegative:!1}}var g=!1;if(A.isNegative()&&t.isPositive()&&(g=!0,A=A.abs()),t.isUnit())return A.isZero()?{value:[0],isNegative:!1}:{value:Array.apply(null,Array(A.toJSNumber())).map(Number.prototype.valueOf,1),isNegative:g};for(var C,Q=[],e=A;e.isNegative()||e.compareAbs(t)>=0;){C=e.divmod(t),e=C.quotient;var n=C.remainder;n.isNegative()&&(n=t.minus(n).abs(),e=e.next()),Q.push(n.toJSNumber())}return Q.push(e.toJSNumber()),{value:Q.reverse(),isNegative:g}}function O(A,I,t){var i=x(A,I);return(i.isNegative?"-":"")+i.value.map((function(A){return function(A,I){return A<(I=I||"0123456789abcdefghijklmnopqrstuvwxyz").length?I[A]:"<"+A+">"}(A,t)})).join("")}function X(A){if(r(+A)){var I=+A;if(I===a(I))return C?new B(BigInt(I)):new n(I);throw new Error("Invalid integer: "+A)}var t="-"===A[0];t&&(A=A.slice(1));var i=A.split(/e/i);if(i.length>2)throw new Error("Invalid integer: "+i.join("e"));if(2===i.length){var g=i[1];if("+"===g[0]&&(g=g.slice(1)),(g=+g)!==a(g)||!r(g))throw new Error("Invalid integer: "+g+" is not a valid exponent.");var Q=i[0],E=Q.indexOf(".");if(E>=0&&(g-=Q.length-E-1,Q=Q.slice(0,E)+Q.slice(E+1)),g<0)throw new Error("Cannot include negative exponent part for integers");A=Q+=new Array(g+1).join("0")}if(!/^([0-9][0-9]*)$/.test(A))throw new Error("Invalid integer: "+A);if(C)return new B(BigInt(t?"-"+A:A));for(var h=[],s=A.length,f=s-7;s>0;)h.push(+A.slice(f,s)),(f-=7)<0&&(f=0),s-=7;return o(h),new e(h,t)}function Z(A){return"number"==typeof A?function(A){if(C)return new B(BigInt(A));if(r(A)){if(A!==a(A))throw new Error(A+" is not an integer.");return new n(A)}return X(A.toString())}(A):"string"==typeof A?X(A):"bigint"==typeof A?new B(A):A}e.prototype.toArray=function(A){return x(this,A)},n.prototype.toArray=function(A){return x(this,A)},B.prototype.toArray=function(A){return x(this,A)},e.prototype.toString=function(A,I){if(void 0===A&&(A=10),10!==A)return O(this,A,I);for(var t,i=this.value,g=i.length,C=String(i[--g]);--g>=0;)t=String(i[g]),C+="0000000".slice(t.length)+t;return(this.sign?"-":"")+C},n.prototype.toString=function(A,I){return void 0===A&&(A=10),10!=A?O(this,A,I):String(this.value)},B.prototype.toString=n.prototype.toString,B.prototype.toJSON=e.prototype.toJSON=n.prototype.toJSON=function(){return this.toString()},e.prototype.valueOf=function(){return parseInt(this.toString(),10)},e.prototype.toJSNumber=e.prototype.valueOf,n.prototype.valueOf=function(){return this.value},n.prototype.toJSNumber=n.prototype.valueOf,B.prototype.valueOf=B.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};for(var j=0;j<1e3;j++)Q[j]=Z(j),j>0&&(Q[-j]=Z(-j));return Q.one=Q[1],Q.zero=Q[0],Q.minusOne=Q[-1],Q.max=J,Q.min=v,Q.gcd=q,Q.lcm=function(A,I){return A=Z(A).abs(),I=Z(I).abs(),A.divide(q(A,I)).multiply(I)},Q.isInstance=function(A){return A instanceof e||A instanceof n||A instanceof B},Q.randBetween=function(A,I,i){A=Z(A),I=Z(I);var g=i||Math.random,C=v(A,I),e=J(A,I).subtract(C).add(1);if(e.isSmall)return C.add(Math.floor(g()*e));for(var n=x(e,t).value,B=[],r=!0,E=0;E>5);for(let A=0;A>5);for(let A=0;Ag[g.length-I-1]=A.toString(16).padStart(8,"0")),c.fromString(g.join(""),16)},c.fromRprBE=function(A,I,t){t=t||A.byteLength;const i=new DataView(A.buffer,I,t),g=new Array(t/4);for(let A=0;A>=1;return t}function sA(A,I,t){if(N(t))return A.one;const i=Y(t);if(0==i.legth)return A.one;let g=I;for(let t=i.length-2;t>=0;t--)g=A.square(g),i[t]&&(g=A.mul(g,I));return g}function aA(A){if(A.m%2==1)if($(_(A.p,4),1))if($(_(A.p,8),1))if($(_(A.p,16),1))!function(A){A.sqrt_q=V(A.p,A.m),A.sqrt_s=0,A.sqrt_t=X(A.sqrt_q,1);for(;!v(A.sqrt_t);)A.sqrt_s=A.sqrt_s+1,A.sqrt_t=T(A.sqrt_t,2);let I=A.one;for(;A.eq(I,A.one);){const t=A.random();A.sqrt_z=A.pow(t,A.sqrt_t),I=A.pow(A.sqrt_z,1<>>0,A[g]=(A[g]^A[I])>>>0,A[g]=(A[g]<<16|A[g]>>>16&65535)>>>0,A[i]=A[i]+A[g]>>>0,A[t]=(A[t]^A[i])>>>0,A[t]=(A[t]<<12|A[t]>>>20&4095)>>>0,A[I]=A[I]+A[t]>>>0,A[g]=(A[g]^A[I])>>>0,A[g]=(A[g]<<8|A[g]>>>24&255)>>>0,A[i]=A[i]+A[g]>>>0,A[t]=(A[t]^A[i])>>>0,A[t]=(A[t]<<7|A[t]>>>25&127)>>>0}class wA{constructor(A){A=A||[0,0,0,0,0,0,0,0],this.state=[1634760805,857760878,2036477234,1797285236,A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],0,0,0,0],this.idx=16,this.buff=new Array(16)}nextU32(){return 16==this.idx&&this.update(),this.buff[this.idx++]}nextU64(){return O(j(this.nextU32(),4294967296),this.nextU32())}nextBool(){return 1==(1&this.nextU32())}update(){for(let A=0;A<16;A++)this.buff[A]=this.state[A];for(let I=0;I<10;I++)fA(A=this.buff,0,4,8,12),fA(A,1,5,9,13),fA(A,2,6,10,14),fA(A,3,7,11,15),fA(A,0,5,10,15),fA(A,1,6,11,12),fA(A,2,7,8,13),fA(A,3,4,9,14);var A;for(let A=0;A<16;A++)this.buff[A]=this.buff[A]+this.state[A]>>>0;this.idx=0,this.state[12]=this.state[12]+1>>>0,0==this.state[12]&&(this.state[13]=this.state[13]+1>>>0,0==this.state[13]&&(this.state[14]=this.state[14]+1>>>0,0==this.state[14]&&(this.state[15]=this.state[15]+1>>>0)))}}var DA={};function cA(A){let I=new Uint8Array(A);if("undefined"!=typeof window)if(void 0!==window.crypto)window.crypto.getRandomValues(I);else for(let t=0;t>>0;else DA.randomFillSync(I);return I}let uA=null;function yA(){return uA||(uA=new wA(function(){const A=cA(32),I=new Uint32Array(A.buffer),t=[];for(let A=0;A<8;A++)t.push(I[A]);return t}()),uA)}class pA{constructor(A){this.type="F1",this.one=1n,this.zero=0n,this.p=BigInt(A),this.m=1,this.negone=this.p-1n,this.two=2n,this.half=this.p>>1n,this.bitLength=L(this.p),this.mask=(1n<>1n;this.nqr=this.two;let t=this.pow(this.nqr,I);for(;!this.eq(t,this.negone);)this.nqr=this.nqr+1n,t=this.pow(this.nqr,I);for(this.s=0,this.t=this.negone;0n==(1n&this.t);)this.s=this.s+1,this.t=this.t>>1n;this.nqr_to_t=this.pow(this.nqr,this.t),aA(this)}e(A,I){let t;if(I?16==I&&(t=BigInt("0x"+A)):t=BigInt(A),t<0){let A=-t;return A>=this.p&&(A%=this.p),this.p-A}return t>=this.p?t%this.p:t}add(A,I){const t=A+I;return t>=this.p?t-this.p:t}sub(A,I){return A>=I?A-I:this.p-I+A}neg(A){return A?this.p-A:A}mul(A,I){return A*I%this.p}mulScalar(A,I){return A*this.e(I)%this.p}square(A){return A*A%this.p}eq(A,I){return A==I}neq(A,I){return A!=I}lt(A,I){return(A>this.half?A-this.p:A)<(I>this.half?I-this.p:I)}gt(A,I){return(A>this.half?A-this.p:A)>(I>this.half?I-this.p:I)}leq(A,I){return(A>this.half?A-this.p:A)<=(I>this.half?I-this.p:I)}geq(A,I){return(A>this.half?A-this.p:A)>=(I>this.half?I-this.p:I)}div(A,I){return this.mul(A,this.inv(I))}idiv(A,I){if(!I)throw new Error("Division by zero");return A/I}inv(A){if(!A)throw new Error("Division by zero");let I=0n,t=this.p,i=1n,g=A%this.p;for(;g;){let A=t/g;[I,i]=[i,I-A*i],[t,g]=[g,t-A*g]}return I<0n&&(I+=this.p),I}mod(A,I){return A%I}pow(A,I){return sA(this,A,I)}exp(A,I){return sA(this,A,I)}band(A,I){const t=A&I&this.mask;return t>=this.p?t-this.p:t}bor(A,I){const t=(A|I)&this.mask;return t>=this.p?t-this.p:t}bxor(A,I){const t=(A^I)&this.mask;return t>=this.p?t-this.p:t}bnot(A){const I=A^this.mask;return I>=this.p?I-this.p:I}shl(A,I){if(Number(I)=this.p?t-this.p:t}{const t=this.p-I;return Number(t)>t:0n}}shr(A,I){if(Number(I)>I;{const t=this.p-I;if(Number(t)=this.p?I-this.p:I}return 0}}land(A,I){return A&&I?1n:0n}lor(A,I){return A||I?1n:0n}lnot(A){return A?0n:1n}sqrt_old(A){if(0n==A)return this.zero;if(1n!=this.pow(A,this.negone>>this.one))return null;let I=this.s,t=this.nqr_to_t,i=this.pow(A,this.t),g=this.pow(A,this.add(this.t,this.one)>>1n);for(;1n!=i;){let A=this.square(i),C=1;for(;1n!=A;)C++,A=this.square(A);let Q=t;for(let A=0;Athis.p>>1n&&(g=this.neg(g)),g}normalize(A,I){if((A=BigInt(A,I))<0){let I=-A;return I>=this.p&&(I%=this.p),this.p-I}return A>=this.p?A%this.p:A}random(){const A=2*this.bitLength/8;let I=0n;for(let t=0;tthis.half){t="-"+(this.p-A).toString(I)}else t=A.toString(I);return t}isZero(A){return 0n==A}fromRng(A){let I;do{I=0n;for(let t=0;t=this.p);return I=I*this.Ri%this.p,I}}class lA{constructor(A){this.type="F1",this.one=r.one,this.zero=r.zero,this.p=r(A),this.m=1,this.negone=this.p.minus(r.one),this.two=r(2),this.half=this.p.shiftRight(1),this.bitLength=this.p.bitLength(),this.mask=r.one.shiftLeft(this.bitLength).minus(r.one),this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=2*this.n64,this.n8=8*this.n64,this.R=r.one.shiftLeft(64*this.n64),this.Ri=this.inv(this.R);const I=this.negone.shiftRight(this.one);this.nqr=this.two;let t=this.pow(this.nqr,I);for(;!t.equals(this.negone);)this.nqr=this.nqr.add(this.one),t=this.pow(this.nqr,I);for(this.s=this.zero,this.t=this.negone;!this.t.isOdd();)this.s=this.s.add(this.one),this.t=this.t.shiftRight(this.one);this.nqr_to_t=this.pow(this.nqr,this.t),aA(this)}e(A,I){const t=r(A,I);return this.normalize(t)}add(A,I){let t=A.add(I);return t.geq(this.p)&&(t=t.minus(this.p)),t}sub(A,I){return A.geq(I)?A.minus(I):this.p.minus(I.minus(A))}neg(A){return A.isZero()?A:this.p.minus(A)}mul(A,I){return A.times(I).mod(this.p)}mulScalar(A,I){return A.times(r(I)).mod(this.p)}square(A){return A.square().mod(this.p)}eq(A,I){return A.eq(I)}neq(A,I){return A.neq(I)}lt(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.lt(i)}gt(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.gt(i)}leq(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.leq(i)}geq(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.geq(i)}div(A,I){if(I.isZero())throw new Error("Division by zero");return A.times(I.modInv(this.p)).mod(this.p)}idiv(A,I){if(I.isZero())throw new Error("Division by zero");return A.divide(I)}inv(A){if(A.isZero())throw new Error("Division by zero");return A.modInv(this.p)}mod(A,I){return A.mod(I)}pow(A,I){return A.modPow(I,this.p)}exp(A,I){return A.modPow(I,this.p)}band(A,I){return A.and(I).and(this.mask).mod(this.p)}bor(A,I){return A.or(I).and(this.mask).mod(this.p)}bxor(A,I){return A.xor(I).and(this.mask).mod(this.p)}bnot(A){return A.xor(this.mask).mod(this.p)}shl(A,I){if(I.lt(this.bitLength))return A.shiftLeft(I).and(this.mask).mod(this.p);{const t=this.p.minus(I);return t.lt(this.bitLength)?this.shr(A,t):r.zero}}shr(A,I){if(I.lt(this.bitLength))return A.shiftRight(I);{const t=this.p.minus(I);return t.lt(this.bitLength)?this.shl(A,t):r.zero}}land(A,I){return A.isZero()||I.isZero()?r.zero:r.one}lor(A,I){return A.isZero()&&I.isZero()?r.zero:r.one}lnot(A){return A.isZero()?r.one:r.zero}sqrt_old(A){if(A.equals(this.zero))return this.zero;if(!this.pow(A,this.negone.shiftRight(this.one)).equals(this.one))return null;let I=parseInt(this.s),t=this.nqr_to_t,i=this.pow(A,this.t),g=this.pow(A,this.add(this.t,this.one).shiftRight(this.one));for(;!i.equals(this.one);){let A=this.square(i),C=1;for(;!A.equals(this.one);)C++,A=this.square(A);let Q=t;for(let A=0;A{t[i]=A(I[i])}),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return BigInt(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){if(null===I)return null;const t={};return Object.keys(I).forEach(i=>{t[i]=A(I[i])}),t}return I},beBuff2int:function(A){let I=0n,t=A.length,i=0;const g=new DataView(A.buffer);for(;t>0;)t>=4?(t-=4,I+=BigInt(g.getUint32(t))<=2?(t-=2,I+=BigInt(g.getUint16(t))<0;)C-4>=0?(C-=4,g.setUint32(C,Number(0xFFFFFFFFn&t)),t>>=32n):C-2>=0?(C-=2,g.setUint16(C,Number(0xFFFFn&t)),t>>=16n):(C-=1,g.setUint8(C,Number(0xFFn&t)),t>>=8n);if(t)throw new Error("Number does not fit in this length");return i},leBuff2int:function(A){let I=0n,t=0;const i=new DataView(A.buffer);for(;t>=32n):C+2<=I?(i.setUint16(Number(C,0xFFFFn&t),!0),C+=2,t>>=16n):(i.setUint8(Number(C,0xFFn&t),!0),C+=1,t>>=8n);if(t)throw new Error("Number does not fit in this length");return i}});var UA=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach(i=>{t[i]=A(I[i])}),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return r(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach(i=>{t[i]=A(I[i])}),t}return I},beBuff2int:function(A){let I=r.zero;for(let t=0;t=0;){let A=Number(t.and(r("255")));g[i]=A,i--,t=t.shiftRight(8)}if(!t.eq(r.zero))throw new Error("Number does not fit in this length");return g},leBuff2int:function(A){let I=r.zero;for(let t=0;t>=1;return t}HA.bitReverse=function(A,I){return(LA[A>>>24]|LA[A>>>16&255]<<8|LA[A>>>8&255]<<16|LA[255&A]<<24)>>>32-I},HA.log2=function(A){return(0!=(4294901760&A)?(A&=4294901760,16):0)|(0!=(4278255360&A)?(A&=4278255360,8):0)|(0!=(4042322160&A)?(A&=4042322160,4):0)|(0!=(3435973836&A)?(A&=3435973836,2):0)|0!=(2863311530&A)},HA.buffReverseBits=function(A,I){const t=A.byteLength/I,i=HA.log2(t);if(t!=1<t){const i=A.slice(g*I,(g+1)*I);A.set(A.slice(t*I,(t+1)*I),g*I),A.set(i,t*I)}}};let{bitReverse:NA,log2:bA,buffReverseBits:SA,stringifyBigInts:RA,unstringifyBigInts:JA,beBuff2int:vA,beInt2Buff:qA,leBuff2int:YA,leInt2Buff:PA}=HA;var xA=Object.freeze({__proto__:null,bitReverse:NA,log2:bA,buffReverseBits:SA,stringifyBigInts:RA,unstringifyBigInts:JA,beBuff2int:vA,beInt2Buff:qA,leBuff2int:YA,leInt2Buff:PA});function OA(A,I,t,i){return async function(g){const C=Math.floor(g.byteLength/t);if(C*t!==g.byteLength)throw new Error("Invalid buffer size");const Q=Math.floor(C/A.concurrency),e=[];for(let n=0;n=0;A--)this.w[A]=this.square(this.w[A+1]);if(!this.eq(this.w[0],this.one))throw new Error("Error calculating roots of unity");this.batchToMontgomery=OA(A,I+"_batchToMontgomery",this.n8,this.n8),this.batchFromMontgomery=OA(A,I+"_batchFromMontgomery",this.n8,this.n8)}op2(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}add(A,I){return this.op2("_add",A,I)}eq(A,I){return this.op2Bool("_eq",A,I)}isZero(A){return this.op1Bool("_isZero",A)}sub(A,I){return this.op2("_sub",A,I)}neg(A){return this.op1("_neg",A)}inv(A){return this.op1("_inverse",A)}toMontgomery(A){return this.op1("_toMontgomery",A)}fromMontgomery(A){return this.op1("_fromMontgomery",A)}mul(A,I){return this.op2("_mul",A,I)}div(A,I){return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(A){return this.op1("_square",A)}isSquare(A){return this.op1Bool("_isSquare",A)}sqrt(A){return this.op1("_sqrt",A)}exp(A,I){return I instanceof Uint8Array||(I=M(U(I))),this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}isNegative(A){return this.op1Bool("_isNegative",A)}e(A,I){if(A instanceof Uint8Array)return A;let t=U(A,I);k(t)?(t=Z(t),tA(t,this.p)&&(t=_(t,this.p)),t=X(this.p,t)):tA(t,this.p)&&(t=_(t,this.p));const i=PA(t,this.n8);return this.toMontgomery(i)}toString(A,I){const t=this.fromMontgomery(A),i=p(t,0);return F(i,I)}fromRng(A){let I;const t=new Uint8Array(this.n8);do{I=m;for(let t=0;tt.buffer.byteLength;)t.grow(100);return I}function e(A){const I=Q(A.byteLength);return n(I,A),I}function n(A,I){g.set(new Uint8Array(I),A)}function B(A){if("INIT"==A[0].cmd)return C(A[0]);const t={vars:[],out:[]},B=i[0];for(let i=0;i{this.reject=I,this.resolve=A})}}function _A(A){for(var I=window.atob(A),t=I.length,i=new Uint8Array(t),g=0;g0;A++)if(0==this.working[A]){const I=this.actionQueue.shift();this.postAction(A,I.data,I.transfers,I.deferred)}}queueAction(A,I){const t=new TA;if(this.singleThread){const I=this.taskManager(A);t.resolve(I)}else this.actionQueue.push({data:A,transfers:I,deferred:t}),this.processWorks();return t.promise}resetMemory(){this.u32[0]=this.initalPFree}allocBuff(A){const I=this.alloc(A.byteLength);return this.setBuff(I,A),I}getBuff(A,I){return this.u8.slice(A,A+I)}setBuff(A,I){this.u8.set(new Uint8Array(I),A)}alloc(A){for(;3&this.u32[0];)this.u32[0]++;const I=this.u32[0];return this.u32[0]+=A,I}async terminate(){for(let A=0;AsetTimeout(I,A)))}}function AI(A,I){const t=A[I],i=A.Fr,g=A.tm;A[I].batchApplyKey=async function(A,C,Q,e,n){let B,r,E,h,o;if(e=e||"affine",n=n||"affine","G1"==I)"jacobian"==e?(E=3*t.F.n8,B="g1m_batchApplyKey"):(E=2*t.F.n8,B="g1m_batchApplyKeyMixed"),h=3*t.F.n8,"jacobian"==n?o=3*t.F.n8:(r="g1m_batchToAffine",o=2*t.F.n8);else if("G2"==I)"jacobian"==e?(E=3*t.F.n8,B="g2m_batchApplyKey"):(E=2*t.F.n8,B="g2m_batchApplyKeyMixed"),h=3*t.F.n8,"jacobian"==n?o=3*t.F.n8:(r="g2m_batchToAffine",o=2*t.F.n8);else{if("Fr"!=I)throw new Error("Invalid group: "+I);B="frm_batchApplyKey",E=t.n8,h=t.n8,o=t.n8}const s=Math.floor(A.byteLength/E),a=Math.floor(s/g.concurrency),f=[];Q=i.e(Q);let w=i.e(C);for(let I=0;I=0;A--){if(!t.isZero(o))for(let A=0;A(B&&B.debug(`fft: ${A}/${t}`),I)))}A=await Promise.all(e);for(let I=0;I0;g--)l.set(A[g],i),i+=I*h,delete A[g];l.set(A[0].slice(0,(I-1)*h),i),delete A[0]}else for(let i=0;i=0;A--)o.set(h[A][0],s),s+=h[A][0].byteLength;return o}}async function gI(A){const I=await async function(A,I){const t=new $A;t.memory=new WebAssembly.Memory({initial:4096}),t.u8=new Uint8Array(t.memory.buffer),t.u32=new Uint32Array(t.memory.buffer);const i=await WebAssembly.compile(_A(A.code));if(t.instance=await WebAssembly.instantiate(i,{env:{memory:t.memory}}),t.singleThread=I,t.initalPFree=t.u32[0],t.pq=A.pq,t.pr=A.pr,t.pG1gen=A.pG1gen,t.pG1zero=A.pG1zero,t.pG2gen=A.pG2gen,t.pG2zero=A.pG2zero,t.pOneT=A.pOneT,I)t.code=_A(A.code),t.taskManager=VA(),await t.taskManager([{cmd:"INIT",init:4096,code:t.code.slice()}]),t.concurrency=1;else{let I;t.workers=[],t.pendingDeferreds=[],t.working=[],I="object"==typeof navigator&&navigator.hardwareConcurrency?navigator.hardwareConcurrency:DA.cpus().length,t.concurrency=I;for(let A=0;A{I.pendingLoads.push({page:A,resolve:t,reject:i}),setImmediate(I._triggerLoad.bind(I))})}_triggerLoad(){const A=this;if(function(){const I=[];for(let t=0;t=A.maxPagesLoaded){const I=function(){for(let I in A.pages){const t=A.pages[I];if(0==t.dirty&&0==t.pendingOps)return I}return-1}();if(I<0)return;delete A.pages[I]}const I=A.pendingLoads.shift();if(I.page>=A.totalPages)return A.pages[I.page]={dirty:!1,buff:new Uint8Array(A.pageSize),pendingOps:1,size:0},I.resolve(),void setImmediate(A._triggerLoad.bind(A));if(A.reading)return void A.pendingLoads.unshift(I);A.reading=!0;const t={dirty:!1,buff:new Uint8Array(A.pageSize),pendingOps:1,size:0};A.fd.read(t.buff,0,A.pageSize,I.page*A.pageSize).then(i=>{t.size=i.bytesRead,A.pages[I.page]=t,A.reading=!1,I.resolve(),setImmediate(A._triggerLoad.bind(A))},A=>{I.reject(A)})}_triggerWrite(){const A=this;if(A.writing)return;const I=A._getDirtyPage();I<0?A.pendingClose&&A.pendingClose():(A.writing=!0,A.pages[I].dirty=!1,A.fd.write(A.pages[I].buff,0,A.pages[I].size,I*A.pageSize).then(()=>{A.writing=!1,setImmediate(A._triggerWrite.bind(A)),setImmediate(A._triggerLoad.bind(A))},I=>{console.log("ERROR Writing: "+I),A.error=I,A._tryClose()}))}_getDirtyPage(){for(let A in this.pages)if(this.pages[A].dirty)return A;return-1}async write(A,I){if(0==A.byteLength)return;const t=this;if(void 0===I&&(I=t.pos),t.pos=I+A.byteLength,t.totalSize0;){await t._loadPage(g);const I=C+Q>t.pageSize?t.pageSize-C:Q,i=new Uint8Array(A.buffer,A.byteLength-Q,I);new Uint8Array(t.pages[g].buff.buffer,C,I).set(i),t.pages[g].dirty=!0,t.pages[g].pendingOps--,t.pages[g].size=Math.max(C+I,t.pages[g].size),g>=t.totalPages&&(t.totalPages=g+1),Q-=I,g++,C=0,setImmediate(t._triggerWrite.bind(t))}}async read(A,I){if(0==A)return new Uint8Array(0);const t=this;if(A>t.pageSize*t.maxPagesLoaded*.8){const I=Math.floor(1.1*A);this.maxPagesLoaded=Math.floor(I/t.pageSize)+1}if(void 0===I&&(I=t.pos),t.pos=I+A,t.pendingClose)throw new Error("Reading a closing file");const i=Math.floor(I/t.pageSize),g=Math.floor((I+A-1)/t.pageSize);for(let A=i;A<=g;A++)await t._loadPage(A);let C=new Uint8Array(A),Q=new Uint8Array(C),e=i,n=I%t.pageSize,B=I+A>t.totalSize?A-(I+A-t.totalSize):A;for(;B>0;){const A=n+B>t.pageSize?t.pageSize-n:B,I=new Uint8Array(t.pages[e].buff.buffer,n,A);C.set(I,Q.byteLength-B),t.pages[e].pendingOps--,B-=A,e++,n=0}return setImmediate(t._triggerLoad.bind(t)),C}_tryClose(){const A=this;if(!A.pendingClose)return;A.error&&A.pendingCloseReject(A.error);A._getDirtyPage()>=0||A.writing||A.reading||A.pendingLoads.length>0||A.pendingClose()}close(){const A=this;if(A.pendingClose)throw new Error("Closing the file twice");return new Promise((I,t)=>{A.pendingClose=I,A.pendingCloseReject=t,A._tryClose()}).then(()=>{A.fd.close()},I=>{throw A.fd.close(),I})}async discard(){await this.close(),await DA.promises.unlink(this.fileName)}async writeULE32(A,I){oI.setUint32(0,A,!0),await this.write(hI,I)}async writeUBE32(A,I){oI.setUint32(0,A,!1),await this.write(hI,I)}async writeULE64(A,I){aI.setUint32(0,4294967295&A,!0),aI.setUint32(4,Math.floor(A/4294967296),!0),await this.write(sI,I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),t=new Uint32Array(I.buffer);return 4294967296*t[1]+t[0]}}const wI=new Uint8Array(4),DI=new DataView(wI.buffer),cI=new Uint8Array(8),uI=new DataView(cI.buffer);class yI{constructor(){this.pageSize=16384}_resizeIfNeeded(A){if(A>this.allocSize){const I=Math.max(this.allocSize+(1<<20),Math.floor(1.1*this.allocSize),A),t=new Uint8Array(I);t.set(this.o.data),this.o.data=t,this.allocSize=I}}async write(A,I){if(void 0===I&&(I=this.pos),this.readOnly)throw new Error("Writing a read only file");this._resizeIfNeeded(I+A.byteLength),this.o.data.set(A,I),I+A.byteLength>this.totalSize&&(this.totalSize=I+A.byteLength),this.pos=I+A.byteLength}async read(A,I){if(void 0===I&&(I=this.pos),this.readOnly&&I+A>this.totalSize)throw new Error("Reading out of bounds");this._resizeIfNeeded(I+A);const t=this.o.data.slice(I,I+A);return this.pos=I+A,t}close(){this.o.data.byteLength!=this.totalSize&&(this.o.data=this.o.data.slice(0,this.totalSize))}async discard(){}async writeULE32(A,I){DI.setUint32(0,A,!0),await this.write(wI,I)}async writeUBE32(A,I){DI.setUint32(0,A,!1),await this.write(wI,I)}async writeULE64(A,I){uI.setUint32(0,4294967295&A,!0),uI.setUint32(4,Math.floor(A/4294967296),!0),await this.write(cI,I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),t=new Uint32Array(I.buffer);return 4294967296*t[1]+t[0]}}async function pI(A,I){if("string"==typeof A&&(A={type:"file",fileName:A,cacheSize:I}),"file"==A.type)return await EI(A.fileName,"w+",A.cacheSize);if("mem"==A.type)return function(A){const I=A.initialSize||1<<20,t=new yI;return t.o=A,t.o.data=new Uint8Array(I),t.allocSize=I,t.totalSize=0,t.readOnly=!1,t.pos=0,t}(A);throw new Error("Invalid FastFile type: "+A.type)}async function lI(A,I){if(A instanceof Uint8Array&&(A={type:"mem",data:A}),"string"==typeof A){A={type:"mem",data:await fetch(A).then((function(A){return A.arrayBuffer()})).then((function(A){return new Uint8Array(A)}))}}if("file"==A.type)return await EI(A.fileName,"r",A.cacheSize);if("mem"==A.type)return await function(A){const I=new yI;return I.o=A,I.allocSize=A.data.byteLength,I.totalSize=A.data.byteLength,I.readOnly=!0,I.pos=0,I}(A);throw new Error("Invalid FastFile type: "+A.type)}async function FI(A,I,t){const i=await lI(A),g=await i.read(4);let C="";for(let A=0;A<4;A++)C+=String.fromCharCode(g[A]);if(C!=I)throw new Error(A+": Invalid File format");if(await i.readULE32()>t)throw new Error("Version not supported");const Q=await i.readULE32();let e=[];for(let A=0;A1)throw new Error(A.fileName+": Section Duplicated "+t);A.pos=I[t][0].p,A.readingSection=I[t][0]}async function UI(A,I){if(void 0===A.readingSection)throw new Error("Not reading a section");if(!I&&A.pos-A.readingSection.p!=A.readingSection.size)throw new Error("Invalid section size reading");delete A.readingSection}async function HI(A,I,t,i){const g=new Uint8Array(t);BI.toRprLE(g,0,I,t),await A.write(g,i)}async function LI(A,I,t){const i=await A.read(I,t);return BI.fromRprLE(i,0,I)}async function kI(A,I,t,i){const g=A.pageSize;await GI(A,I,i),await mI(t,i);for(let C=0;C=g,"digestLength must be at least "+g+", was given "+A),vI(A<=C,"digestLength must be at most "+C+", was given "+A),null!=E&&(vI(E instanceof Uint8Array,"key must be Uint8Array or Buffer"),vI(E.length>=Q,"key must be at least "+Q+", was given "+E.length),vI(E.length<=e,"key must be at least "+e+", was given "+E.length)),null!=h&&(vI(h instanceof Uint8Array,"salt must be Uint8Array or Buffer"),vI(h.length===n,"salt must be exactly "+n+", was given "+h.length)),null!=o&&(vI(o instanceof Uint8Array,"personal must be Uint8Array or Buffer"),vI(o.length===B,"personal must be exactly "+B+", was given "+o.length))),i.length||(i.push(t),t+=216),this.digestLength=A,this.finalized=!1,this.pointer=i.pop(),I.memory.fill(0,0,64),I.memory[0]=this.digestLength,I.memory[1]=E?E.length:0,I.memory[2]=1,I.memory[3]=1,h&&I.memory.set(h,32),o&&I.memory.set(o,48),this.pointer+216>I.memory.length&&I.realloc(this.pointer+216),I.exports.blake2b_init(this.pointer,this.digestLength),E&&(this.update(E),I.memory.fill(0,t,t+E.length),I.memory[this.pointer+200]=128)}function E(){}function h(A){return A<16?"0"+A.toString(16):A.toString(16)}r.prototype.update=function(A){return vI(!1===this.finalized,"Hash instance finalized"),vI(A instanceof Uint8Array,"input must be Uint8Array or Buffer"),t+A.length>I.memory.length&&I.realloc(t+A.length),I.memory.set(A,t),I.exports.blake2b_update(this.pointer,t,t+A.length),this},r.prototype.getPartialHash=function(){return I.memory.slice(this.pointer,this.pointer+216)},r.prototype.setPartialHash=function(A){I.memory.set(A,this.pointer)},r.prototype.digest=function(A){if(vI(!1===this.finalized,"Hash instance finalized"),this.finalized=!0,i.push(this.pointer),I.exports.blake2b_final(this.pointer),!A||"binary"===A)return I.memory.slice(this.pointer+128,this.pointer+128+this.digestLength);if("hex"===A)return function(A,I,t){for(var i="",g=0;g=this.digestLength,"input must be Uint8Array or Buffer");for(var t=0;t>=1;return t}function jI(A,I){return(XI[A>>>24]|XI[A>>>16&255]<<8|XI[A>>>8&255]<<16|XI[255&A]<<24)>>>32-I}function KI(A){return(0!=(4294901760&A)?(A&=4294901760,16):0)|(0!=(4278255360&A)?(A&=4278255360,8):0)|(0!=(4042322160&A)?(A&=4042322160,4):0)|(0!=(3435973836&A)?(A&=3435973836,2):0)|0!=(2863311530&A)}function VI(A,I){const t=new DataView(A.buffer,A.byteOffset,A.byteLength);let i="";for(let A=0;A<4;A++){A>0&&(i+="\n"),i+="\t\t";for(let I=0;I<4;I++)I>0&&(i+=" "),i+=t.getUint32(16*A+4*I).toString(16).padStart(8,"0")}return I&&(i=I+"\n"+i),i}function zI(A,I){if(A.byteLength!=I.byteLength)return!1;for(var t=new Int8Array(A),i=new Int8Array(I),g=0;g!=A.byteLength;g++)if(t[g]!=i[g])return!1;return!0}function WI(A){const I=A.getPartialHash(),t=OI(64);return t.setPartialHash(I),t}async function TI(A,I,t,i,g){if(A.G1.isZero(I))return!1;if(A.G1.isZero(t))return!1;if(A.G2.isZero(i))return!1;if(A.G2.isZero(g))return!1;return await A.pairingEq(I,g,A.G1.neg(t),i)}async function _I(A){for(;!A;)A=await window.prompt("Enter a random text. (Entropy): ","");const I=OI(64);I.update(DA.randomBytes(64));const t=new TextEncoder;I.update(t.encode(A));const i=Buffer.from(I.digest()),g=[];for(let A=0;A<8;A++)g[A]=i.readUInt32BE(4*A);return new wA(g)}function $I(A,I){let t,i;I<32?(t=1<>>0,i=1):(t=4294967296,i=1<>>0);let g=A;for(let A=0;A0){const I=new Uint8Array(i);await A.writeULE32(I.byteLength),await A.write(I)}else await A.writeULE32(0)}async function Et(A,I,t){await mI(A,10),await A.write(t.csHash),await A.writeULE32(t.contributions.length);for(let i=0;i>1;const g=e.getUint32(4+i*C+4,!0);g>A?t=i-1:g>4&15).toString(16)+(15&A).toString(16);function s(A,I){var t,i,g,C=[0],Q="";for(i=0;i0;)C.push(t%I),t=t/I|0}for(i=C.length-1;i>=0;--i)Q+="0123456789abcdefghijklmnopqrstuvwxyz"[C[i]];return Q}function a(A,I){return{bits:I,value:A,dec:function(){return s(A,10)},hex:function(){return A},str:function(){return s(A,36)}}}function f(A,I){return{bits:I,value:A,dec:function(){return A.toString()},hex:function(){return n[A>>>24]+n[A>>>16&255]+n[A>>>8&255]+n[255&A]},str:function(){return A.toString(36)}}}function w(A,I){return{bits:I,value:A,dec:function(){return A.toString()},hex:function(){return("0000000000000000"+A.toString(16)).substr(-13)},str:function(){return A.toString(36)}}}function D(A,n){var B="object"==typeof A?JSON.stringify(A):A;switch(n||h){case 32:return I(B);case 64:return i(B);case 128:return g(B);case 256:return C(B);case 512:return Q(B);case 1024:return e(B);default:return t(B)}}function c(A){if("1a"===A)r=A,I=E?F:p,t=E?G:m,i=E?k:H,g=E?R:b,C=E?Y:v,Q=E?X:x,e=E?V:j;else{if("1"!==A)throw new Error("Supported FNV versions: 1, 1a");r=A,I=E?M:l,t=E?U:d,i=E?N:L,g=E?J:S,C=E?P:q,Q=E?Z:O,e=E?z:K}}function u(A){A?(E=!0,I="1a"==r?F:M,t="1a"==r?G:U,i="1a"==r?k:N,g="1a"==r?R:J,C="1a"==r?Y:P,Q="1a"==r?X:Z,e="1a"==r?V:z):(E=!1,I="1a"==r?p:l,t="1a"==r?m:d,i="1a"==r?H:L,g="1a"==r?b:S,C="1a"==r?v:q,Q="1a"==r?x:O,e="1a"==r?j:K)}function y(A){var I,t,i=r;for(var g in"chongo /\\../\\"===(A=A||0===A?A:"chongo /\\../\\")&&c("1"),o){for(o[g].offset=[],t=0;t>>16)&65535),Q+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=403*C),Q=403*(e=Q+(g>>>16)&65535),Q+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=403*C),Q=403*(e=Q+(g>>>16)&65535),e=(Q+=(C^=A.charCodeAt(I++))<<8)+((g=403*C)>>>16)&65535,C=65535&g;for(;I>>16)&65535,C=65535&g;return f((e<<16>>>0)+C,32)}function l(A){var I,t=A.length-3,i=o[32].offset,g=0,C=0|i[1],Q=0,e=0|i[0];for(I=0;I>>16)&65535),Q+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=403*C),Q=403*(e=Q+(g>>>16)&65535),Q+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=403*C),Q=403*(e=Q+(g>>>16)&65535),e=(Q+=(C^=A.charCodeAt(I++))<<8)+((g=403*C)>>>16)&65535,C=65535&g,C^=A.charCodeAt(I++);for(;I>>16)&65535,C=65535&g,C^=A.charCodeAt(I++);return f((e<<16>>>0)+C,32)}function F(A){var I,t,i=A.length,g=o[32].offset,C=0,Q=0|g[1],e=0,n=0|g[0];for(t=0;t>6|192)<<8)+((C=403*Q)>>>16)&65535,Q=65535&C,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,Q=65535&(C=403*Q),e=403*(n=e+(C>>>16)&65535),e+=(Q^=I>>12&63|128)<<8,Q=65535&(C=403*Q),e=403*(n=e+(C>>>16)&65535),n=(e+=(Q^=I>>6&63|128)<<8)+((C=403*Q)>>>16)&65535,Q=65535&C,Q^=63&I|128):(e=403*n,e+=(Q^=I>>12|224)<<8,Q=65535&(C=403*Q),e=403*(n=e+(C>>>16)&65535),n=(e+=(Q^=I>>6&63|128)<<8)+((C=403*Q)>>>16)&65535,Q=65535&C,Q^=63&I|128),e=403*n,n=(e+=Q<<8)+((C=403*Q)>>>16)&65535,Q=65535&C;return f((n<<16>>>0)+Q,32)}function M(A){var I,t,i=A.length,g=o[32].offset,C=0,Q=0|g[1],e=0,n=0|g[0];for(t=0;t>>16)&65535,Q=65535&C,(I=A.charCodeAt(t))<128?Q^=I:I<2048?(e=403*n,n=(e+=(Q^=I>>6|192)<<8)+((C=403*Q)>>>16)&65535,Q=65535&C,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,Q=65535&(C=403*Q),e=403*(n=e+(C>>>16)&65535),e+=(Q^=I>>12&63|128)<<8,Q=65535&(C=403*Q),e=403*(n=e+(C>>>16)&65535),n=(e+=(Q^=I>>6&63|128)<<8)+((C=403*Q)>>>16)&65535,Q=65535&C,Q^=63&I|128):(e=403*n,e+=(Q^=I>>12|224)<<8,Q=65535&(C=403*Q),e=403*(n=e+(C>>>16)&65535),n=(e+=(Q^=I>>6&63|128)<<8)+((C=403*Q)>>>16)&65535,Q=65535&C,Q^=63&I|128);return f((n<<16>>>0)+Q,32)}function m(A){var I,t=A.length-3,i=o[64].offset,g=0,C=0|i[3],Q=0,e=0|i[2],n=0,B=0|i[1],r=0,E=0|i[0];for(I=0;I>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),n=435*(B=65535&n),r=435*E,n+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=435*C),E=(r+=e<<8)+((n+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),n=435*(B=65535&n),r=435*E,n+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=435*C),E=(r+=e<<8)+((n+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),n=435*(B=65535&n),r=435*E,n+=(C^=A.charCodeAt(I++))<<8,r+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),E=r+((n+=Q>>>16)>>>16)&65535,B=65535&n;for(;I>>16),E=r+((n+=Q>>>16)>>>16)&65535,B=65535&n;return w(281474976710656*(15&E)+4294967296*B+65536*e+(C^E>>4),52)}function d(A){var I,t=A.length-3,i=o[64].offset,g=0,C=0|i[3],Q=0,e=0|i[2],n=0,B=0|i[1],r=0,E=0|i[0];for(I=0;I>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),n=435*(B=65535&n),r=435*E,n+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=435*C),E=(r+=e<<8)+((n+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),n=435*(B=65535&n),r=435*E,n+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=435*C),E=(r+=e<<8)+((n+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),n=435*(B=65535&n),r=435*E,n+=(C^=A.charCodeAt(I++))<<8,r+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),E=r+((n+=Q>>>16)>>>16)&65535,B=65535&n,C^=A.charCodeAt(I++);for(;I>>16),E=r+((n+=Q>>>16)>>>16)&65535,B=65535&n,C^=A.charCodeAt(I++);return w(281474976710656*(15&E)+4294967296*B+65536*e+(C^E>>4),52)}function G(A){var I,t,i=A.length,g=o[64].offset,C=0,Q=0|g[3],e=0,n=0|g[2],B=0,r=0|g[1],E=0,h=0|g[0];for(t=0;t>6|192)<<8,E+=n<<8,Q=65535&(C=435*Q),n=65535&(e+=C>>>16),h=E+((B+=e>>>16)>>>16)&65535,r=65535&B,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,Q=65535&(C=435*Q),h=(E+=n<<8)+((B+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(n=65535&e),B=435*(r=65535&B),E=435*h,B+=(Q^=I>>12&63|128)<<8,Q=65535&(C=435*Q),h=(E+=n<<8)+((B+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(n=65535&e),B=435*(r=65535&B),E=435*h,B+=(Q^=I>>6&63|128)<<8,E+=n<<8,Q=65535&(C=435*Q),n=65535&(e+=C>>>16),h=E+((B+=e>>>16)>>>16)&65535,r=65535&B,Q^=63&I|128):(e=435*n,B=435*r,E=435*h,B+=(Q^=I>>12|224)<<8,Q=65535&(C=435*Q),h=(E+=n<<8)+((B+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(n=65535&e),B=435*(r=65535&B),E=435*h,B+=(Q^=I>>6&63|128)<<8,E+=n<<8,Q=65535&(C=435*Q),n=65535&(e+=C>>>16),h=E+((B+=e>>>16)>>>16)&65535,r=65535&B,Q^=63&I|128),e=435*n,B=435*r,E=435*h,B+=Q<<8,E+=n<<8,Q=65535&(C=435*Q),n=65535&(e+=C>>>16),h=E+((B+=e>>>16)>>>16)&65535,r=65535&B;return w(281474976710656*(15&h)+4294967296*r+65536*n+(Q^h>>4),52)}function U(A){var I,t,i=A.length,g=o[64].offset,C=0,Q=0|g[3],e=0,n=0|g[2],B=0,r=0|g[1],E=0,h=0|g[0];for(t=0;t>>16),h=E+((B+=e>>>16)>>>16)&65535,r=65535&B,(I=A.charCodeAt(t))<128?Q^=I:I<2048?(e=435*n,B=435*r,E=435*h,B+=(Q^=I>>6|192)<<8,E+=n<<8,Q=65535&(C=435*Q),n=65535&(e+=C>>>16),h=E+((B+=e>>>16)>>>16)&65535,r=65535&B,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,Q=65535&(C=435*Q),h=(E+=n<<8)+((B+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(n=65535&e),B=435*(r=65535&B),E=435*h,B+=(Q^=I>>12&63|128)<<8,Q=65535&(C=435*Q),h=(E+=n<<8)+((B+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(n=65535&e),B=435*(r=65535&B),E=435*h,B+=(Q^=I>>6&63|128)<<8,E+=n<<8,Q=65535&(C=435*Q),n=65535&(e+=C>>>16),h=E+((B+=e>>>16)>>>16)&65535,r=65535&B,Q^=63&I|128):(e=435*n,B=435*r,E=435*h,B+=(Q^=I>>12|224)<<8,Q=65535&(C=435*Q),h=(E+=n<<8)+((B+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(n=65535&e),B=435*(r=65535&B),E=435*h,B+=(Q^=I>>6&63|128)<<8,E+=n<<8,Q=65535&(C=435*Q),n=65535&(e+=C>>>16),h=E+((B+=e>>>16)>>>16)&65535,r=65535&B,Q^=63&I|128);return w(281474976710656*(15&h)+4294967296*r+65536*n+(Q^h>>4),52)}function H(A){var I,t=A.length-3,i=o[64].offset,g=0,C=0|i[3],Q=0,e=0|i[2],B=0,r=0|i[1],E=0,h=0|i[0];for(I=0;I>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),B=435*(r=65535&B),E=435*h,B+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=435*C),h=(E+=e<<8)+((B+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),B=435*(r=65535&B),E=435*h,B+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=435*C),h=(E+=e<<8)+((B+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),B=435*(r=65535&B),E=435*h,B+=(C^=A.charCodeAt(I++))<<8,E+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),h=E+((B+=Q>>>16)>>>16)&65535,r=65535&B;for(;I>>16),h=E+((B+=Q>>>16)>>>16)&65535,r=65535&B;return a(n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C],64)}function L(A){var I,t=A.length-3,i=o[64].offset,g=0,C=0|i[3],Q=0,e=0|i[2],B=0,r=0|i[1],E=0,h=0|i[0];for(I=0;I>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),B=435*(r=65535&B),E=435*h,B+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=435*C),h=(E+=e<<8)+((B+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),B=435*(r=65535&B),E=435*h,B+=(C^=A.charCodeAt(I++))<<8,C=65535&(g=435*C),h=(E+=e<<8)+((B+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),B=435*(r=65535&B),E=435*h,B+=(C^=A.charCodeAt(I++))<<8,E+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),h=E+((B+=Q>>>16)>>>16)&65535,r=65535&B,C^=A.charCodeAt(I++);for(;I>>16),h=E+((B+=Q>>>16)>>>16)&65535,r=65535&B,C^=A.charCodeAt(I++);return a(n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C],64)}function k(A){var I,t,i=A.length,g=o[64].offset,C=0,Q=0|g[3],e=0,B=0|g[2],r=0,E=0|g[1],h=0,s=0|g[0];for(t=0;t>6|192)<<8,h+=B<<8,Q=65535&(C=435*Q),B=65535&(e+=C>>>16),s=h+((r+=e>>>16)>>>16)&65535,E=65535&r,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,Q=65535&(C=435*Q),s=(h+=B<<8)+((r+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(B=65535&e),r=435*(E=65535&r),h=435*s,r+=(Q^=I>>12&63|128)<<8,Q=65535&(C=435*Q),s=(h+=B<<8)+((r+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(B=65535&e),r=435*(E=65535&r),h=435*s,r+=(Q^=I>>6&63|128)<<8,h+=B<<8,Q=65535&(C=435*Q),B=65535&(e+=C>>>16),s=h+((r+=e>>>16)>>>16)&65535,E=65535&r,Q^=63&I|128):(e=435*B,r=435*E,h=435*s,r+=(Q^=I>>12|224)<<8,Q=65535&(C=435*Q),s=(h+=B<<8)+((r+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(B=65535&e),r=435*(E=65535&r),h=435*s,r+=(Q^=I>>6&63|128)<<8,h+=B<<8,Q=65535&(C=435*Q),B=65535&(e+=C>>>16),s=h+((r+=e>>>16)>>>16)&65535,E=65535&r,Q^=63&I|128),e=435*B,r=435*E,h=435*s,r+=Q<<8,h+=B<<8,Q=65535&(C=435*Q),B=65535&(e+=C>>>16),s=h+((r+=e>>>16)>>>16)&65535,E=65535&r;return a(n[s>>8]+n[255&s]+n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q],64)}function N(A){var I,t,i=A.length,g=o[64].offset,C=0,Q=0|g[3],e=0,B=0|g[2],r=0,E=0|g[1],h=0,s=0|g[0];for(t=0;t>>16),s=h+((r+=e>>>16)>>>16)&65535,E=65535&r,(I=A.charCodeAt(t))<128?Q^=I:I<2048?(e=435*B,r=435*E,h=435*s,r+=(Q^=I>>6|192)<<8,h+=B<<8,Q=65535&(C=435*Q),B=65535&(e+=C>>>16),s=h+((r+=e>>>16)>>>16)&65535,E=65535&r,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,Q=65535&(C=435*Q),s=(h+=B<<8)+((r+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(B=65535&e),r=435*(E=65535&r),h=435*s,r+=(Q^=I>>12&63|128)<<8,Q=65535&(C=435*Q),s=(h+=B<<8)+((r+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(B=65535&e),r=435*(E=65535&r),h=435*s,r+=(Q^=I>>6&63|128)<<8,h+=B<<8,Q=65535&(C=435*Q),B=65535&(e+=C>>>16),s=h+((r+=e>>>16)>>>16)&65535,E=65535&r,Q^=63&I|128):(e=435*B,r=435*E,h=435*s,r+=(Q^=I>>12|224)<<8,Q=65535&(C=435*Q),s=(h+=B<<8)+((r+=(e+=C>>>16)>>>16)>>>16)&65535,e=435*(B=65535&e),r=435*(E=65535&r),h=435*s,r+=(Q^=I>>6&63|128)<<8,h+=B<<8,Q=65535&(C=435*Q),B=65535&(e+=C>>>16),s=h+((r+=e>>>16)>>>16)&65535,E=65535&r,Q^=63&I|128);return a(n[s>>8]+n[255&s]+n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q],64)}function b(A){var I,t=A.length-3,i=o[128].offset,g=0,C=0|i[7],Q=0,e=0|i[6],B=0,r=0|i[5],E=0,h=0|i[4],s=0,f=0|i[3],w=0,D=0|i[2],c=0,u=0|i[1],y=0,p=0|i[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=315*(e=65535&Q),B=315*(r=65535&B),E=315*(h=65535&E),s=315*(f=65535&s),w=315*(D=65535&w),c=315*(u=65535&c),y=315*p,w+=(C^=A.charCodeAt(I++))<<8,c+=e<<8,C=65535&(g=315*C),p=(y+=r<<8)+((c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=315*(e=65535&Q),B=315*(r=65535&B),E=315*(h=65535&E),s=315*(f=65535&s),w=315*(D=65535&w),c=315*(u=65535&c),y=315*p,w+=(C^=A.charCodeAt(I++))<<8,c+=e<<8,C=65535&(g=315*C),p=(y+=r<<8)+((c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=315*(e=65535&Q),B=315*(r=65535&B),E=315*(h=65535&E),s=315*(f=65535&s),w=315*(D=65535&w),c=315*(u=65535&c),y=315*p,w+=(C^=A.charCodeAt(I++))<<8,c+=e<<8,y+=r<<8,C=65535&(g=315*C),e=65535&(Q+=g>>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),p=y+((c+=w>>>16)>>>16)&65535,u=65535&c;for(;I>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),p=y+((c+=w>>>16)>>>16)&65535,u=65535&c;return a(n[p>>8]+n[255&p]+n[u>>8]+n[255&u]+n[D>>8]+n[255&D]+n[f>>8]+n[255&f]+n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C],128)}function S(A){var I,t=A.length-3,i=o[128].offset,g=0,C=0|i[7],Q=0,e=0|i[6],B=0,r=0|i[5],E=0,h=0|i[4],s=0,f=0|i[3],w=0,D=0|i[2],c=0,u=0|i[1],y=0,p=0|i[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=315*(e=65535&Q),B=315*(r=65535&B),E=315*(h=65535&E),s=315*(f=65535&s),w=315*(D=65535&w),c=315*(u=65535&c),y=315*p,w+=(C^=A.charCodeAt(I++))<<8,c+=e<<8,C=65535&(g=315*C),p=(y+=r<<8)+((c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=315*(e=65535&Q),B=315*(r=65535&B),E=315*(h=65535&E),s=315*(f=65535&s),w=315*(D=65535&w),c=315*(u=65535&c),y=315*p,w+=(C^=A.charCodeAt(I++))<<8,c+=e<<8,C=65535&(g=315*C),p=(y+=r<<8)+((c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=315*(e=65535&Q),B=315*(r=65535&B),E=315*(h=65535&E),s=315*(f=65535&s),w=315*(D=65535&w),c=315*(u=65535&c),y=315*p,w+=(C^=A.charCodeAt(I++))<<8,c+=e<<8,y+=r<<8,C=65535&(g=315*C),e=65535&(Q+=g>>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),p=y+((c+=w>>>16)>>>16)&65535,u=65535&c,C^=A.charCodeAt(I++);for(;I>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),p=y+((c+=w>>>16)>>>16)&65535,u=65535&c,C^=A.charCodeAt(I++);return a(n[p>>8]+n[255&p]+n[u>>8]+n[255&u]+n[D>>8]+n[255&D]+n[f>>8]+n[255&f]+n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C],128)}function R(A){var I,t,i=A.length,g=o[128].offset,C=0,Q=0|g[7],e=0,B=0|g[6],r=0,E=0|g[5],h=0,s=0|g[4],f=0,w=0|g[3],D=0,c=0|g[2],u=0,y=0|g[1],p=0,l=0|g[0];for(t=0;t>6|192)<<8,u+=B<<8,p+=E<<8,Q=65535&(C=315*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),l=p+((u+=D>>>16)>>>16)&65535,y=65535&u,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,u+=B<<8,Q=65535&(C=315*Q),l=(p+=E<<8)+((u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=315*(B=65535&e),r=315*(E=65535&r),h=315*(s=65535&h),f=315*(w=65535&f),D=315*(c=65535&D),u=315*(y=65535&u),p=315*l,D+=(Q^=I>>12&63|128)<<8,u+=B<<8,Q=65535&(C=315*Q),l=(p+=E<<8)+((u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=315*(B=65535&e),r=315*(E=65535&r),h=315*(s=65535&h),f=315*(w=65535&f),D=315*(c=65535&D),u=315*(y=65535&u),p=315*l,D+=(Q^=I>>6&63|128)<<8,u+=B<<8,p+=E<<8,Q=65535&(C=315*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),l=p+((u+=D>>>16)>>>16)&65535,y=65535&u,Q^=63&I|128):(e=315*B,r=315*E,h=315*s,f=315*w,D=315*c,u=315*y,p=315*l,D+=(Q^=I>>12|224)<<8,u+=B<<8,Q=65535&(C=315*Q),l=(p+=E<<8)+((u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=315*(B=65535&e),r=315*(E=65535&r),h=315*(s=65535&h),f=315*(w=65535&f),D=315*(c=65535&D),u=315*(y=65535&u),p=315*l,D+=(Q^=I>>6&63|128)<<8,u+=B<<8,p+=E<<8,Q=65535&(C=315*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),l=p+((u+=D>>>16)>>>16)&65535,y=65535&u,Q^=63&I|128),e=315*B,r=315*E,h=315*s,f=315*w,D=315*c,u=315*y,p=315*l,D+=Q<<8,u+=B<<8,p+=E<<8,Q=65535&(C=315*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),l=p+((u+=D>>>16)>>>16)&65535,y=65535&u;return a(n[l>>8]+n[255&l]+n[y>>8]+n[255&y]+n[c>>8]+n[255&c]+n[w>>8]+n[255&w]+n[s>>8]+n[255&s]+n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q],128)}function J(A){var I,t,i=A.length,g=o[128].offset,C=0,Q=0|g[7],e=0,B=0|g[6],r=0,E=0|g[5],h=0,s=0|g[4],f=0,w=0|g[3],D=0,c=0|g[2],u=0,y=0|g[1],p=0,l=0|g[0];for(t=0;t>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),l=p+((u+=D>>>16)>>>16)&65535,y=65535&u,(I=A.charCodeAt(t))<128?Q^=I:I<2048?(e=315*B,r=315*E,h=315*s,f=315*w,D=315*c,u=315*y,p=315*l,D+=(Q^=I>>6|192)<<8,u+=B<<8,p+=E<<8,Q=65535&(C=315*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),l=p+((u+=D>>>16)>>>16)&65535,y=65535&u,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,u+=B<<8,Q=65535&(C=315*Q),l=(p+=E<<8)+((u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=315*(B=65535&e),r=315*(E=65535&r),h=315*(s=65535&h),f=315*(w=65535&f),D=315*(c=65535&D),u=315*(y=65535&u),p=315*l,D+=(Q^=I>>12&63|128)<<8,u+=B<<8,Q=65535&(C=315*Q),l=(p+=E<<8)+((u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=315*(B=65535&e),r=315*(E=65535&r),h=315*(s=65535&h),f=315*(w=65535&f),D=315*(c=65535&D),u=315*(y=65535&u),p=315*l,D+=(Q^=I>>6&63|128)<<8,u+=B<<8,p+=E<<8,Q=65535&(C=315*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),l=p+((u+=D>>>16)>>>16)&65535,y=65535&u,Q^=63&I|128):(e=315*B,r=315*E,h=315*s,f=315*w,D=315*c,u=315*y,p=315*l,D+=(Q^=I>>12|224)<<8,u+=B<<8,Q=65535&(C=315*Q),l=(p+=E<<8)+((u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=315*(B=65535&e),r=315*(E=65535&r),h=315*(s=65535&h),f=315*(w=65535&f),D=315*(c=65535&D),u=315*(y=65535&u),p=315*l,D+=(Q^=I>>6&63|128)<<8,u+=B<<8,p+=E<<8,Q=65535&(C=315*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),l=p+((u+=D>>>16)>>>16)&65535,y=65535&u,Q^=63&I|128);return a(n[l>>8]+n[255&l]+n[y>>8]+n[255&y]+n[c>>8]+n[255&c]+n[w>>8]+n[255&w]+n[s>>8]+n[255&s]+n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q],128)}function v(A){var I,t=A.length-3,i=o[256].offset,g=0,C=0|i[15],Q=0,e=0|i[14],B=0,r=0|i[13],E=0,h=0|i[12],s=0,f=0|i[11],w=0,D=0|i[10],c=0,u=0|i[9],y=0,p=0|i[8],l=0,F=0|i[7],M=0,m=0|i[6],d=0,G=0|i[5],U=0,H=0|i[4],L=0,k=0|i[3],N=0,b=0|i[2],S=0,R=0|i[1],J=0,v=0|i[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=355*(e=65535&Q),B=355*(r=65535&B),E=355*(h=65535&E),s=355*(f=65535&s),w=355*(D=65535&w),c=355*(u=65535&c),y=355*(p=65535&y),l=355*(F=65535&l),M=355*(m=65535&M),d=355*(G=65535&d),U=355*(H=65535&U),L=355*(k=65535&L),N=355*(b=65535&N),S=355*(R=65535&S),J=355*v,d+=(C^=A.charCodeAt(I++))<<8,U+=e<<8,L+=r<<8,N+=h<<8,S+=f<<8,C=65535&(g=355*C),v=(J+=D<<8)+((S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=355*(e=65535&Q),B=355*(r=65535&B),E=355*(h=65535&E),s=355*(f=65535&s),w=355*(D=65535&w),c=355*(u=65535&c),y=355*(p=65535&y),l=355*(F=65535&l),M=355*(m=65535&M),d=355*(G=65535&d),U=355*(H=65535&U),L=355*(k=65535&L),N=355*(b=65535&N),S=355*(R=65535&S),J=355*v,d+=(C^=A.charCodeAt(I++))<<8,U+=e<<8,L+=r<<8,N+=h<<8,S+=f<<8,C=65535&(g=355*C),v=(J+=D<<8)+((S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=355*(e=65535&Q),B=355*(r=65535&B),E=355*(h=65535&E),s=355*(f=65535&s),w=355*(D=65535&w),c=355*(u=65535&c),y=355*(p=65535&y),l=355*(F=65535&l),M=355*(m=65535&M),d=355*(G=65535&d),U=355*(H=65535&U),L=355*(k=65535&L),N=355*(b=65535&N),S=355*(R=65535&S),J=355*v,d+=(C^=A.charCodeAt(I++))<<8,U+=e<<8,L+=r<<8,N+=h<<8,S+=f<<8,J+=D<<8,C=65535&(g=355*C),e=65535&(Q+=g>>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),v=J+((S+=N>>>16)>>>16)&65535,R=65535&S;for(;I>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),v=J+((S+=N>>>16)>>>16)&65535,R=65535&S;return a(n[v>>8]+n[255&v]+n[R>>8]+n[255&R]+n[b>>8]+n[255&b]+n[k>>8]+n[255&k]+n[H>>8]+n[255&H]+n[G>>8]+n[255&G]+n[m>>8]+n[255&m]+n[F>>8]+n[255&F]+n[p>>8]+n[255&p]+n[u>>8]+n[255&u]+n[D>>8]+n[255&D]+n[f>>8]+n[255&f]+n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C],256)}function q(A){var I,t=A.length-3,i=o[256].offset,g=0,C=0|i[15],Q=0,e=0|i[14],B=0,r=0|i[13],E=0,h=0|i[12],s=0,f=0|i[11],w=0,D=0|i[10],c=0,u=0|i[9],y=0,p=0|i[8],l=0,F=0|i[7],M=0,m=0|i[6],d=0,G=0|i[5],U=0,H=0|i[4],L=0,k=0|i[3],N=0,b=0|i[2],S=0,R=0|i[1],J=0,v=0|i[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=355*(e=65535&Q),B=355*(r=65535&B),E=355*(h=65535&E),s=355*(f=65535&s),w=355*(D=65535&w),c=355*(u=65535&c),y=355*(p=65535&y),l=355*(F=65535&l),M=355*(m=65535&M),d=355*(G=65535&d),U=355*(H=65535&U),L=355*(k=65535&L),N=355*(b=65535&N),S=355*(R=65535&S),J=355*v,d+=(C^=A.charCodeAt(I++))<<8,U+=e<<8,L+=r<<8,N+=h<<8,S+=f<<8,C=65535&(g=355*C),v=(J+=D<<8)+((S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=355*(e=65535&Q),B=355*(r=65535&B),E=355*(h=65535&E),s=355*(f=65535&s),w=355*(D=65535&w),c=355*(u=65535&c),y=355*(p=65535&y),l=355*(F=65535&l),M=355*(m=65535&M),d=355*(G=65535&d),U=355*(H=65535&U),L=355*(k=65535&L),N=355*(b=65535&N),S=355*(R=65535&S),J=355*v,d+=(C^=A.charCodeAt(I++))<<8,U+=e<<8,L+=r<<8,N+=h<<8,S+=f<<8,C=65535&(g=355*C),v=(J+=D<<8)+((S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=355*(e=65535&Q),B=355*(r=65535&B),E=355*(h=65535&E),s=355*(f=65535&s),w=355*(D=65535&w),c=355*(u=65535&c),y=355*(p=65535&y),l=355*(F=65535&l),M=355*(m=65535&M),d=355*(G=65535&d),U=355*(H=65535&U),L=355*(k=65535&L),N=355*(b=65535&N),S=355*(R=65535&S),J=355*v,d+=(C^=A.charCodeAt(I++))<<8,U+=e<<8,L+=r<<8,N+=h<<8,S+=f<<8,J+=D<<8,C=65535&(g=355*C),e=65535&(Q+=g>>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),v=J+((S+=N>>>16)>>>16)&65535,R=65535&S,C^=A.charCodeAt(I++);for(;I>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),v=J+((S+=N>>>16)>>>16)&65535,R=65535&S,C^=A.charCodeAt(I++);return a(n[v>>8]+n[255&v]+n[R>>8]+n[255&R]+n[b>>8]+n[255&b]+n[k>>8]+n[255&k]+n[H>>8]+n[255&H]+n[G>>8]+n[255&G]+n[m>>8]+n[255&m]+n[F>>8]+n[255&F]+n[p>>8]+n[255&p]+n[u>>8]+n[255&u]+n[D>>8]+n[255&D]+n[f>>8]+n[255&f]+n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C],256)}function Y(A){var I,t,i=A.length,g=o[256].offset,C=0,Q=0|g[15],e=0,B=0|g[14],r=0,E=0|g[13],h=0,s=0|g[12],f=0,w=0|g[11],D=0,c=0|g[10],u=0,y=0|g[9],p=0,l=0|g[8],F=0,M=0|g[7],m=0,d=0|g[6],G=0,U=0|g[5],H=0,L=0|g[4],k=0,N=0|g[3],b=0,S=0|g[2],R=0,J=0|g[1],v=0,q=0|g[0];for(t=0;t>6|192)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,v+=c<<8,Q=65535&(C=355*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),q=v+((R+=b>>>16)>>>16)&65535,J=65535&R,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,Q=65535&(C=355*Q),q=(v+=c<<8)+((R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=355*(B=65535&e),r=355*(E=65535&r),h=355*(s=65535&h),f=355*(w=65535&f),D=355*(c=65535&D),u=355*(y=65535&u),p=355*(l=65535&p),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(U=65535&G),H=355*(L=65535&H),k=355*(N=65535&k),b=355*(S=65535&b),R=355*(J=65535&R),v=355*q,G+=(Q^=I>>12&63|128)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,Q=65535&(C=355*Q),q=(v+=c<<8)+((R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=355*(B=65535&e),r=355*(E=65535&r),h=355*(s=65535&h),f=355*(w=65535&f),D=355*(c=65535&D),u=355*(y=65535&u),p=355*(l=65535&p),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(U=65535&G),H=355*(L=65535&H),k=355*(N=65535&k),b=355*(S=65535&b),R=355*(J=65535&R),v=355*q,G+=(Q^=I>>6&63|128)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,v+=c<<8,Q=65535&(C=355*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),q=v+((R+=b>>>16)>>>16)&65535,J=65535&R,Q^=63&I|128):(e=355*B,r=355*E,h=355*s,f=355*w,D=355*c,u=355*y,p=355*l,F=355*M,m=355*d,G=355*U,H=355*L,k=355*N,b=355*S,R=355*J,v=355*q,G+=(Q^=I>>12|224)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,Q=65535&(C=355*Q),q=(v+=c<<8)+((R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=355*(B=65535&e),r=355*(E=65535&r),h=355*(s=65535&h),f=355*(w=65535&f),D=355*(c=65535&D),u=355*(y=65535&u),p=355*(l=65535&p),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(U=65535&G),H=355*(L=65535&H),k=355*(N=65535&k),b=355*(S=65535&b),R=355*(J=65535&R),v=355*q,G+=(Q^=I>>6&63|128)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,v+=c<<8,Q=65535&(C=355*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),q=v+((R+=b>>>16)>>>16)&65535,J=65535&R,Q^=63&I|128),e=355*B,r=355*E,h=355*s,f=355*w,D=355*c,u=355*y,p=355*l,F=355*M,m=355*d,G=355*U,H=355*L,k=355*N,b=355*S,R=355*J,v=355*q,G+=Q<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,v+=c<<8,Q=65535&(C=355*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),q=v+((R+=b>>>16)>>>16)&65535,J=65535&R;return a(n[q>>8]+n[255&q]+n[J>>8]+n[255&J]+n[S>>8]+n[255&S]+n[N>>8]+n[255&N]+n[L>>8]+n[255&L]+n[U>>8]+n[255&U]+n[d>>8]+n[255&d]+n[M>>8]+n[255&M]+n[l>>8]+n[255&l]+n[y>>8]+n[255&y]+n[c>>8]+n[255&c]+n[w>>8]+n[255&w]+n[s>>8]+n[255&s]+n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q],256)}function P(A){var I,t,i=A.length,g=o[256].offset,C=0,Q=0|g[15],e=0,B=0|g[14],r=0,E=0|g[13],h=0,s=0|g[12],f=0,w=0|g[11],D=0,c=0|g[10],u=0,y=0|g[9],p=0,l=0|g[8],F=0,M=0|g[7],m=0,d=0|g[6],G=0,U=0|g[5],H=0,L=0|g[4],k=0,N=0|g[3],b=0,S=0|g[2],R=0,J=0|g[1],v=0,q=0|g[0];for(t=0;t>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),q=v+((R+=b>>>16)>>>16)&65535,J=65535&R,(I=A.charCodeAt(t))<128?Q^=I:I<2048?(e=355*B,r=355*E,h=355*s,f=355*w,D=355*c,u=355*y,p=355*l,F=355*M,m=355*d,G=355*U,H=355*L,k=355*N,b=355*S,R=355*J,v=355*q,G+=(Q^=I>>6|192)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,v+=c<<8,Q=65535&(C=355*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),q=v+((R+=b>>>16)>>>16)&65535,J=65535&R,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,Q=65535&(C=355*Q),q=(v+=c<<8)+((R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=355*(B=65535&e),r=355*(E=65535&r),h=355*(s=65535&h),f=355*(w=65535&f),D=355*(c=65535&D),u=355*(y=65535&u),p=355*(l=65535&p),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(U=65535&G),H=355*(L=65535&H),k=355*(N=65535&k),b=355*(S=65535&b),R=355*(J=65535&R),v=355*q,G+=(Q^=I>>12&63|128)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,Q=65535&(C=355*Q),q=(v+=c<<8)+((R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=355*(B=65535&e),r=355*(E=65535&r),h=355*(s=65535&h),f=355*(w=65535&f),D=355*(c=65535&D),u=355*(y=65535&u),p=355*(l=65535&p),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(U=65535&G),H=355*(L=65535&H),k=355*(N=65535&k),b=355*(S=65535&b),R=355*(J=65535&R),v=355*q,G+=(Q^=I>>6&63|128)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,v+=c<<8,Q=65535&(C=355*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),q=v+((R+=b>>>16)>>>16)&65535,J=65535&R,Q^=63&I|128):(e=355*B,r=355*E,h=355*s,f=355*w,D=355*c,u=355*y,p=355*l,F=355*M,m=355*d,G=355*U,H=355*L,k=355*N,b=355*S,R=355*J,v=355*q,G+=(Q^=I>>12|224)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,Q=65535&(C=355*Q),q=(v+=c<<8)+((R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=355*(B=65535&e),r=355*(E=65535&r),h=355*(s=65535&h),f=355*(w=65535&f),D=355*(c=65535&D),u=355*(y=65535&u),p=355*(l=65535&p),F=355*(M=65535&F),m=355*(d=65535&m),G=355*(U=65535&G),H=355*(L=65535&H),k=355*(N=65535&k),b=355*(S=65535&b),R=355*(J=65535&R),v=355*q,G+=(Q^=I>>6&63|128)<<8,H+=B<<8,k+=E<<8,b+=s<<8,R+=w<<8,v+=c<<8,Q=65535&(C=355*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),q=v+((R+=b>>>16)>>>16)&65535,J=65535&R,Q^=63&I|128);return a(n[q>>8]+n[255&q]+n[J>>8]+n[255&J]+n[S>>8]+n[255&S]+n[N>>8]+n[255&N]+n[L>>8]+n[255&L]+n[U>>8]+n[255&U]+n[d>>8]+n[255&d]+n[M>>8]+n[255&M]+n[l>>8]+n[255&l]+n[y>>8]+n[255&y]+n[c>>8]+n[255&c]+n[w>>8]+n[255&w]+n[s>>8]+n[255&s]+n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q],256)}function x(A){var I,t=A.length-3,i=o[512].offset,g=0,C=0|i[31],Q=0,e=0|i[30],B=0,r=0|i[29],E=0,h=0|i[28],s=0,f=0|i[27],w=0,D=0|i[26],c=0,u=0|i[25],y=0,p=0|i[24],l=0,F=0|i[23],M=0,m=0|i[22],d=0,G=0|i[21],U=0,H=0|i[20],L=0,k=0|i[19],N=0,b=0|i[18],S=0,R=0|i[17],J=0,v=0|i[16],q=0,Y=0|i[15],P=0,x=0|i[14],O=0,X=0|i[13],Z=0,j=0|i[12],K=0,V=0|i[11],z=0,W=0|i[10],T=0,_=0|i[9],$=0,AA=0|i[8],IA=0,tA=0|i[7],iA=0,gA=0|i[6],CA=0,QA=0|i[5],eA=0,nA=0|i[4],BA=0,rA=0|i[3],EA=0,hA=0|i[2],oA=0,sA=0|i[1],aA=0,fA=0|i[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=343*(e=65535&Q),B=343*(r=65535&B),E=343*(h=65535&E),s=343*(f=65535&s),w=343*(D=65535&w),c=343*(u=65535&c),y=343*(p=65535&y),l=343*(F=65535&l),M=343*(m=65535&M),d=343*(G=65535&d),U=343*(H=65535&U),L=343*(k=65535&L),N=343*(b=65535&N),S=343*(R=65535&S),J=343*(v=65535&J),q=343*(Y=65535&q),P=343*(x=65535&P),O=343*(X=65535&O),Z=343*(j=65535&Z),K=343*(V=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),CA=343*(QA=65535&CA),eA=343*(nA=65535&eA),BA=343*(rA=65535&BA),EA=343*(hA=65535&EA),oA=343*(sA=65535&oA),aA=343*fA,z+=(C^=A.charCodeAt(I++))<<8,T+=e<<8,$+=r<<8,IA+=h<<8,iA+=f<<8,CA+=D<<8,eA+=u<<8,BA+=p<<8,EA+=F<<8,oA+=m<<8,C=65535&(g=343*C),fA=(aA+=G<<8)+((oA+=(EA+=(BA+=(eA+=(CA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(O+=(P+=(q+=(J+=(S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=343*(e=65535&Q),B=343*(r=65535&B),E=343*(h=65535&E),s=343*(f=65535&s),w=343*(D=65535&w),c=343*(u=65535&c),y=343*(p=65535&y),l=343*(F=65535&l),M=343*(m=65535&M),d=343*(G=65535&d),U=343*(H=65535&U),L=343*(k=65535&L),N=343*(b=65535&N),S=343*(R=65535&S),J=343*(v=65535&J),q=343*(Y=65535&q),P=343*(x=65535&P),O=343*(X=65535&O),Z=343*(j=65535&Z),K=343*(V=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),CA=343*(QA=65535&CA),eA=343*(nA=65535&eA),BA=343*(rA=65535&BA),EA=343*(hA=65535&EA),oA=343*(sA=65535&oA),aA=343*fA,z+=(C^=A.charCodeAt(I++))<<8,T+=e<<8,$+=r<<8,IA+=h<<8,iA+=f<<8,CA+=D<<8,eA+=u<<8,BA+=p<<8,EA+=F<<8,oA+=m<<8,C=65535&(g=343*C),fA=(aA+=G<<8)+((oA+=(EA+=(BA+=(eA+=(CA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(O+=(P+=(q+=(J+=(S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=343*(e=65535&Q),B=343*(r=65535&B),E=343*(h=65535&E),s=343*(f=65535&s),w=343*(D=65535&w),c=343*(u=65535&c),y=343*(p=65535&y),l=343*(F=65535&l),M=343*(m=65535&M),d=343*(G=65535&d),U=343*(H=65535&U),L=343*(k=65535&L),N=343*(b=65535&N),S=343*(R=65535&S),J=343*(v=65535&J),q=343*(Y=65535&q),P=343*(x=65535&P),O=343*(X=65535&O),Z=343*(j=65535&Z),K=343*(V=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),CA=343*(QA=65535&CA),eA=343*(nA=65535&eA),BA=343*(rA=65535&BA),EA=343*(hA=65535&EA),oA=343*(sA=65535&oA),aA=343*fA,z+=(C^=A.charCodeAt(I++))<<8,T+=e<<8,$+=r<<8,IA+=h<<8,iA+=f<<8,CA+=D<<8,eA+=u<<8,BA+=p<<8,EA+=F<<8,oA+=m<<8,aA+=G<<8,C=65535&(g=343*C),e=65535&(Q+=g>>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),R=65535&(S+=N>>>16),v=65535&(J+=S>>>16),Y=65535&(q+=J>>>16),x=65535&(P+=q>>>16),X=65535&(O+=P>>>16),j=65535&(Z+=O>>>16),V=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),QA=65535&(CA+=iA>>>16),nA=65535&(eA+=CA>>>16),rA=65535&(BA+=eA>>>16),hA=65535&(EA+=BA>>>16),fA=aA+((oA+=EA>>>16)>>>16)&65535,sA=65535&oA;for(;I>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),R=65535&(S+=N>>>16),v=65535&(J+=S>>>16),Y=65535&(q+=J>>>16),x=65535&(P+=q>>>16),X=65535&(O+=P>>>16),j=65535&(Z+=O>>>16),V=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),QA=65535&(CA+=iA>>>16),nA=65535&(eA+=CA>>>16),rA=65535&(BA+=eA>>>16),hA=65535&(EA+=BA>>>16),fA=aA+((oA+=EA>>>16)>>>16)&65535,sA=65535&oA;return a(n[fA>>8]+n[255&fA]+n[sA>>8]+n[255&sA]+n[hA>>8]+n[255&hA]+n[rA>>8]+n[255&rA]+n[nA>>8]+n[255&nA]+n[QA>>8]+n[255&QA]+n[gA>>8]+n[255&gA]+n[tA>>8]+n[255&tA]+n[AA>>8]+n[255&AA]+n[_>>8]+n[255&_]+n[W>>8]+n[255&W]+n[V>>8]+n[255&V]+n[j>>8]+n[255&j]+n[X>>8]+n[255&X]+n[x>>8]+n[255&x]+n[Y>>8]+n[255&Y]+n[v>>8]+n[255&v]+n[R>>8]+n[255&R]+n[b>>8]+n[255&b]+n[k>>8]+n[255&k]+n[H>>8]+n[255&H]+n[G>>8]+n[255&G]+n[m>>8]+n[255&m]+n[F>>8]+n[255&F]+n[p>>8]+n[255&p]+n[u>>8]+n[255&u]+n[D>>8]+n[255&D]+n[f>>8]+n[255&f]+n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C],512)}function O(A){var I,t=A.length-3,i=o[512].offset,g=0,C=0|i[31],Q=0,e=0|i[30],B=0,r=0|i[29],E=0,h=0|i[28],s=0,f=0|i[27],w=0,D=0|i[26],c=0,u=0|i[25],y=0,p=0|i[24],l=0,F=0|i[23],M=0,m=0|i[22],d=0,G=0|i[21],U=0,H=0|i[20],L=0,k=0|i[19],N=0,b=0|i[18],S=0,R=0|i[17],J=0,v=0|i[16],q=0,Y=0|i[15],P=0,x=0|i[14],O=0,X=0|i[13],Z=0,j=0|i[12],K=0,V=0|i[11],z=0,W=0|i[10],T=0,_=0|i[9],$=0,AA=0|i[8],IA=0,tA=0|i[7],iA=0,gA=0|i[6],CA=0,QA=0|i[5],eA=0,nA=0|i[4],BA=0,rA=0|i[3],EA=0,hA=0|i[2],oA=0,sA=0|i[1],aA=0,fA=0|i[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=343*(e=65535&Q),B=343*(r=65535&B),E=343*(h=65535&E),s=343*(f=65535&s),w=343*(D=65535&w),c=343*(u=65535&c),y=343*(p=65535&y),l=343*(F=65535&l),M=343*(m=65535&M),d=343*(G=65535&d),U=343*(H=65535&U),L=343*(k=65535&L),N=343*(b=65535&N),S=343*(R=65535&S),J=343*(v=65535&J),q=343*(Y=65535&q),P=343*(x=65535&P),O=343*(X=65535&O),Z=343*(j=65535&Z),K=343*(V=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),CA=343*(QA=65535&CA),eA=343*(nA=65535&eA),BA=343*(rA=65535&BA),EA=343*(hA=65535&EA),oA=343*(sA=65535&oA),aA=343*fA,z+=(C^=A.charCodeAt(I++))<<8,T+=e<<8,$+=r<<8,IA+=h<<8,iA+=f<<8,CA+=D<<8,eA+=u<<8,BA+=p<<8,EA+=F<<8,oA+=m<<8,C=65535&(g=343*C),fA=(aA+=G<<8)+((oA+=(EA+=(BA+=(eA+=(CA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(O+=(P+=(q+=(J+=(S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=343*(e=65535&Q),B=343*(r=65535&B),E=343*(h=65535&E),s=343*(f=65535&s),w=343*(D=65535&w),c=343*(u=65535&c),y=343*(p=65535&y),l=343*(F=65535&l),M=343*(m=65535&M),d=343*(G=65535&d),U=343*(H=65535&U),L=343*(k=65535&L),N=343*(b=65535&N),S=343*(R=65535&S),J=343*(v=65535&J),q=343*(Y=65535&q),P=343*(x=65535&P),O=343*(X=65535&O),Z=343*(j=65535&Z),K=343*(V=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),CA=343*(QA=65535&CA),eA=343*(nA=65535&eA),BA=343*(rA=65535&BA),EA=343*(hA=65535&EA),oA=343*(sA=65535&oA),aA=343*fA,z+=(C^=A.charCodeAt(I++))<<8,T+=e<<8,$+=r<<8,IA+=h<<8,iA+=f<<8,CA+=D<<8,eA+=u<<8,BA+=p<<8,EA+=F<<8,oA+=m<<8,C=65535&(g=343*C),fA=(aA+=G<<8)+((oA+=(EA+=(BA+=(eA+=(CA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(O+=(P+=(q+=(J+=(S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=343*(e=65535&Q),B=343*(r=65535&B),E=343*(h=65535&E),s=343*(f=65535&s),w=343*(D=65535&w),c=343*(u=65535&c),y=343*(p=65535&y),l=343*(F=65535&l),M=343*(m=65535&M),d=343*(G=65535&d),U=343*(H=65535&U),L=343*(k=65535&L),N=343*(b=65535&N),S=343*(R=65535&S),J=343*(v=65535&J),q=343*(Y=65535&q),P=343*(x=65535&P),O=343*(X=65535&O),Z=343*(j=65535&Z),K=343*(V=65535&K),z=343*(W=65535&z),T=343*(_=65535&T),$=343*(AA=65535&$),IA=343*(tA=65535&IA),iA=343*(gA=65535&iA),CA=343*(QA=65535&CA),eA=343*(nA=65535&eA),BA=343*(rA=65535&BA),EA=343*(hA=65535&EA),oA=343*(sA=65535&oA),aA=343*fA,z+=(C^=A.charCodeAt(I++))<<8,T+=e<<8,$+=r<<8,IA+=h<<8,iA+=f<<8,CA+=D<<8,eA+=u<<8,BA+=p<<8,EA+=F<<8,oA+=m<<8,aA+=G<<8,C=65535&(g=343*C),e=65535&(Q+=g>>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),R=65535&(S+=N>>>16),v=65535&(J+=S>>>16),Y=65535&(q+=J>>>16),x=65535&(P+=q>>>16),X=65535&(O+=P>>>16),j=65535&(Z+=O>>>16),V=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),QA=65535&(CA+=iA>>>16),nA=65535&(eA+=CA>>>16),rA=65535&(BA+=eA>>>16),hA=65535&(EA+=BA>>>16),fA=aA+((oA+=EA>>>16)>>>16)&65535,sA=65535&oA,C^=A.charCodeAt(I++);for(;I>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),R=65535&(S+=N>>>16),v=65535&(J+=S>>>16),Y=65535&(q+=J>>>16),x=65535&(P+=q>>>16),X=65535&(O+=P>>>16),j=65535&(Z+=O>>>16),V=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),QA=65535&(CA+=iA>>>16),nA=65535&(eA+=CA>>>16),rA=65535&(BA+=eA>>>16),hA=65535&(EA+=BA>>>16),fA=aA+((oA+=EA>>>16)>>>16)&65535,sA=65535&oA,C^=A.charCodeAt(I++);return a(n[fA>>8]+n[255&fA]+n[sA>>8]+n[255&sA]+n[hA>>8]+n[255&hA]+n[rA>>8]+n[255&rA]+n[nA>>8]+n[255&nA]+n[QA>>8]+n[255&QA]+n[gA>>8]+n[255&gA]+n[tA>>8]+n[255&tA]+n[AA>>8]+n[255&AA]+n[_>>8]+n[255&_]+n[W>>8]+n[255&W]+n[V>>8]+n[255&V]+n[j>>8]+n[255&j]+n[X>>8]+n[255&X]+n[x>>8]+n[255&x]+n[Y>>8]+n[255&Y]+n[v>>8]+n[255&v]+n[R>>8]+n[255&R]+n[b>>8]+n[255&b]+n[k>>8]+n[255&k]+n[H>>8]+n[255&H]+n[G>>8]+n[255&G]+n[m>>8]+n[255&m]+n[F>>8]+n[255&F]+n[p>>8]+n[255&p]+n[u>>8]+n[255&u]+n[D>>8]+n[255&D]+n[f>>8]+n[255&f]+n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C],512)}function X(A){var I,t,i=A.length,g=o[512].offset,C=0,Q=0|g[31],e=0,B=0|g[30],r=0,E=0|g[29],h=0,s=0|g[28],f=0,w=0|g[27],D=0,c=0|g[26],u=0,y=0|g[25],p=0,l=0|g[24],F=0,M=0|g[23],m=0,d=0|g[22],G=0,U=0|g[21],H=0,L=0|g[20],k=0,N=0|g[19],b=0,S=0|g[18],R=0,J=0|g[17],v=0,q=0|g[16],Y=0,P=0|g[15],x=0,O=0|g[14],X=0,Z=0|g[13],j=0,K=0|g[12],V=0,z=0|g[11],W=0,T=0|g[10],_=0,$=0|g[9],AA=0,IA=0|g[8],tA=0,iA=0|g[7],gA=0,CA=0|g[6],QA=0,eA=0|g[5],nA=0,BA=0|g[4],rA=0,EA=0|g[3],hA=0,oA=0|g[2],sA=0,aA=0|g[1],fA=0,wA=0|g[0];for(t=0;t>6|192)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,fA+=U<<8,Q=65535&(C=343*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),wA=fA+((sA+=hA>>>16)>>>16)&65535,aA=65535&sA,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,Q=65535&(C=343*Q),wA=(fA+=U<<8)+((sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=343*(B=65535&e),r=343*(E=65535&r),h=343*(s=65535&h),f=343*(w=65535&f),D=343*(c=65535&D),u=343*(y=65535&u),p=343*(l=65535&p),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(U=65535&G),H=343*(L=65535&H),k=343*(N=65535&k),b=343*(S=65535&b),R=343*(J=65535&R),v=343*(q=65535&v),Y=343*(P=65535&Y),x=343*(O=65535&x),X=343*(Z=65535&X),j=343*(K=65535&j),V=343*(z=65535&V),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(CA=65535&gA),QA=343*(eA=65535&QA),nA=343*(BA=65535&nA),rA=343*(EA=65535&rA),hA=343*(oA=65535&hA),sA=343*(aA=65535&sA),fA=343*wA,W+=(Q^=I>>12&63|128)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,Q=65535&(C=343*Q),wA=(fA+=U<<8)+((sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=343*(B=65535&e),r=343*(E=65535&r),h=343*(s=65535&h),f=343*(w=65535&f),D=343*(c=65535&D),u=343*(y=65535&u),p=343*(l=65535&p),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(U=65535&G),H=343*(L=65535&H),k=343*(N=65535&k),b=343*(S=65535&b),R=343*(J=65535&R),v=343*(q=65535&v),Y=343*(P=65535&Y),x=343*(O=65535&x),X=343*(Z=65535&X),j=343*(K=65535&j),V=343*(z=65535&V),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(CA=65535&gA),QA=343*(eA=65535&QA),nA=343*(BA=65535&nA),rA=343*(EA=65535&rA),hA=343*(oA=65535&hA),sA=343*(aA=65535&sA),fA=343*wA,W+=(Q^=I>>6&63|128)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,fA+=U<<8,Q=65535&(C=343*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),wA=fA+((sA+=hA>>>16)>>>16)&65535,aA=65535&sA,Q^=63&I|128):(e=343*B,r=343*E,h=343*s,f=343*w,D=343*c,u=343*y,p=343*l,F=343*M,m=343*d,G=343*U,H=343*L,k=343*N,b=343*S,R=343*J,v=343*q,Y=343*P,x=343*O,X=343*Z,j=343*K,V=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*CA,QA=343*eA,nA=343*BA,rA=343*EA,hA=343*oA,sA=343*aA,fA=343*wA,W+=(Q^=I>>12|224)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,Q=65535&(C=343*Q),wA=(fA+=U<<8)+((sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=343*(B=65535&e),r=343*(E=65535&r),h=343*(s=65535&h),f=343*(w=65535&f),D=343*(c=65535&D),u=343*(y=65535&u),p=343*(l=65535&p),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(U=65535&G),H=343*(L=65535&H),k=343*(N=65535&k),b=343*(S=65535&b),R=343*(J=65535&R),v=343*(q=65535&v),Y=343*(P=65535&Y),x=343*(O=65535&x),X=343*(Z=65535&X),j=343*(K=65535&j),V=343*(z=65535&V),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(CA=65535&gA),QA=343*(eA=65535&QA),nA=343*(BA=65535&nA),rA=343*(EA=65535&rA),hA=343*(oA=65535&hA),sA=343*(aA=65535&sA),fA=343*wA,W+=(Q^=I>>6&63|128)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,fA+=U<<8,Q=65535&(C=343*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),wA=fA+((sA+=hA>>>16)>>>16)&65535,aA=65535&sA,Q^=63&I|128),e=343*B,r=343*E,h=343*s,f=343*w,D=343*c,u=343*y,p=343*l,F=343*M,m=343*d,G=343*U,H=343*L,k=343*N,b=343*S,R=343*J,v=343*q,Y=343*P,x=343*O,X=343*Z,j=343*K,V=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*CA,QA=343*eA,nA=343*BA,rA=343*EA,hA=343*oA,sA=343*aA,fA=343*wA,W+=Q<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,fA+=U<<8,Q=65535&(C=343*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),wA=fA+((sA+=hA>>>16)>>>16)&65535,aA=65535&sA;return a(n[wA>>8]+n[255&wA]+n[aA>>8]+n[255&aA]+n[oA>>8]+n[255&oA]+n[EA>>8]+n[255&EA]+n[BA>>8]+n[255&BA]+n[eA>>8]+n[255&eA]+n[CA>>8]+n[255&CA]+n[iA>>8]+n[255&iA]+n[IA>>8]+n[255&IA]+n[$>>8]+n[255&$]+n[T>>8]+n[255&T]+n[z>>8]+n[255&z]+n[K>>8]+n[255&K]+n[Z>>8]+n[255&Z]+n[O>>8]+n[255&O]+n[P>>8]+n[255&P]+n[q>>8]+n[255&q]+n[J>>8]+n[255&J]+n[S>>8]+n[255&S]+n[N>>8]+n[255&N]+n[L>>8]+n[255&L]+n[U>>8]+n[255&U]+n[d>>8]+n[255&d]+n[M>>8]+n[255&M]+n[l>>8]+n[255&l]+n[y>>8]+n[255&y]+n[c>>8]+n[255&c]+n[w>>8]+n[255&w]+n[s>>8]+n[255&s]+n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q],512)}function Z(A){var I,t,i=A.length,g=o[512].offset,C=0,Q=0|g[31],e=0,B=0|g[30],r=0,E=0|g[29],h=0,s=0|g[28],f=0,w=0|g[27],D=0,c=0|g[26],u=0,y=0|g[25],p=0,l=0|g[24],F=0,M=0|g[23],m=0,d=0|g[22],G=0,U=0|g[21],H=0,L=0|g[20],k=0,N=0|g[19],b=0,S=0|g[18],R=0,J=0|g[17],v=0,q=0|g[16],Y=0,P=0|g[15],x=0,O=0|g[14],X=0,Z=0|g[13],j=0,K=0|g[12],V=0,z=0|g[11],W=0,T=0|g[10],_=0,$=0|g[9],AA=0,IA=0|g[8],tA=0,iA=0|g[7],gA=0,CA=0|g[6],QA=0,eA=0|g[5],nA=0,BA=0|g[4],rA=0,EA=0|g[3],hA=0,oA=0|g[2],sA=0,aA=0|g[1],fA=0,wA=0|g[0];for(t=0;t>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),wA=fA+((sA+=hA>>>16)>>>16)&65535,aA=65535&sA,(I=A.charCodeAt(t))<128?Q^=I:I<2048?(e=343*B,r=343*E,h=343*s,f=343*w,D=343*c,u=343*y,p=343*l,F=343*M,m=343*d,G=343*U,H=343*L,k=343*N,b=343*S,R=343*J,v=343*q,Y=343*P,x=343*O,X=343*Z,j=343*K,V=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*CA,QA=343*eA,nA=343*BA,rA=343*EA,hA=343*oA,sA=343*aA,fA=343*wA,W+=(Q^=I>>6|192)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,fA+=U<<8,Q=65535&(C=343*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),wA=fA+((sA+=hA>>>16)>>>16)&65535,aA=65535&sA,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,Q=65535&(C=343*Q),wA=(fA+=U<<8)+((sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=343*(B=65535&e),r=343*(E=65535&r),h=343*(s=65535&h),f=343*(w=65535&f),D=343*(c=65535&D),u=343*(y=65535&u),p=343*(l=65535&p),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(U=65535&G),H=343*(L=65535&H),k=343*(N=65535&k),b=343*(S=65535&b),R=343*(J=65535&R),v=343*(q=65535&v),Y=343*(P=65535&Y),x=343*(O=65535&x),X=343*(Z=65535&X),j=343*(K=65535&j),V=343*(z=65535&V),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(CA=65535&gA),QA=343*(eA=65535&QA),nA=343*(BA=65535&nA),rA=343*(EA=65535&rA),hA=343*(oA=65535&hA),sA=343*(aA=65535&sA),fA=343*wA,W+=(Q^=I>>12&63|128)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,Q=65535&(C=343*Q),wA=(fA+=U<<8)+((sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=343*(B=65535&e),r=343*(E=65535&r),h=343*(s=65535&h),f=343*(w=65535&f),D=343*(c=65535&D),u=343*(y=65535&u),p=343*(l=65535&p),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(U=65535&G),H=343*(L=65535&H),k=343*(N=65535&k),b=343*(S=65535&b),R=343*(J=65535&R),v=343*(q=65535&v),Y=343*(P=65535&Y),x=343*(O=65535&x),X=343*(Z=65535&X),j=343*(K=65535&j),V=343*(z=65535&V),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(CA=65535&gA),QA=343*(eA=65535&QA),nA=343*(BA=65535&nA),rA=343*(EA=65535&rA),hA=343*(oA=65535&hA),sA=343*(aA=65535&sA),fA=343*wA,W+=(Q^=I>>6&63|128)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,fA+=U<<8,Q=65535&(C=343*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),wA=fA+((sA+=hA>>>16)>>>16)&65535,aA=65535&sA,Q^=63&I|128):(e=343*B,r=343*E,h=343*s,f=343*w,D=343*c,u=343*y,p=343*l,F=343*M,m=343*d,G=343*U,H=343*L,k=343*N,b=343*S,R=343*J,v=343*q,Y=343*P,x=343*O,X=343*Z,j=343*K,V=343*z,W=343*T,_=343*$,AA=343*IA,tA=343*iA,gA=343*CA,QA=343*eA,nA=343*BA,rA=343*EA,hA=343*oA,sA=343*aA,fA=343*wA,W+=(Q^=I>>12|224)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,Q=65535&(C=343*Q),wA=(fA+=U<<8)+((sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=343*(B=65535&e),r=343*(E=65535&r),h=343*(s=65535&h),f=343*(w=65535&f),D=343*(c=65535&D),u=343*(y=65535&u),p=343*(l=65535&p),F=343*(M=65535&F),m=343*(d=65535&m),G=343*(U=65535&G),H=343*(L=65535&H),k=343*(N=65535&k),b=343*(S=65535&b),R=343*(J=65535&R),v=343*(q=65535&v),Y=343*(P=65535&Y),x=343*(O=65535&x),X=343*(Z=65535&X),j=343*(K=65535&j),V=343*(z=65535&V),W=343*(T=65535&W),_=343*($=65535&_),AA=343*(IA=65535&AA),tA=343*(iA=65535&tA),gA=343*(CA=65535&gA),QA=343*(eA=65535&QA),nA=343*(BA=65535&nA),rA=343*(EA=65535&rA),hA=343*(oA=65535&hA),sA=343*(aA=65535&sA),fA=343*wA,W+=(Q^=I>>6&63|128)<<8,_+=B<<8,AA+=E<<8,tA+=s<<8,gA+=w<<8,QA+=c<<8,nA+=y<<8,rA+=l<<8,hA+=M<<8,sA+=d<<8,fA+=U<<8,Q=65535&(C=343*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),wA=fA+((sA+=hA>>>16)>>>16)&65535,aA=65535&sA,Q^=63&I|128);return a(n[wA>>8]+n[255&wA]+n[aA>>8]+n[255&aA]+n[oA>>8]+n[255&oA]+n[EA>>8]+n[255&EA]+n[BA>>8]+n[255&BA]+n[eA>>8]+n[255&eA]+n[CA>>8]+n[255&CA]+n[iA>>8]+n[255&iA]+n[IA>>8]+n[255&IA]+n[$>>8]+n[255&$]+n[T>>8]+n[255&T]+n[z>>8]+n[255&z]+n[K>>8]+n[255&K]+n[Z>>8]+n[255&Z]+n[O>>8]+n[255&O]+n[P>>8]+n[255&P]+n[q>>8]+n[255&q]+n[J>>8]+n[255&J]+n[S>>8]+n[255&S]+n[N>>8]+n[255&N]+n[L>>8]+n[255&L]+n[U>>8]+n[255&U]+n[d>>8]+n[255&d]+n[M>>8]+n[255&M]+n[l>>8]+n[255&l]+n[y>>8]+n[255&y]+n[c>>8]+n[255&c]+n[w>>8]+n[255&w]+n[s>>8]+n[255&s]+n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q],512)}function j(A){var I,t=A.length-3,i=o[1024].offset,g=0,C=0|i[63],Q=0,e=0|i[62],B=0,r=0|i[61],E=0,h=0|i[60],s=0,f=0|i[59],w=0,D=0|i[58],c=0,u=0|i[57],y=0,p=0|i[56],l=0,F=0|i[55],M=0,m=0|i[54],d=0,G=0|i[53],U=0,H=0|i[52],L=0,k=0|i[51],N=0,b=0|i[50],S=0,R=0|i[49],J=0,v=0|i[48],q=0,Y=0|i[47],P=0,x=0|i[46],O=0,X=0|i[45],Z=0,j=0|i[44],K=0,V=0|i[43],z=0,W=0|i[42],T=0,_=0|i[41],$=0,AA=0|i[40],IA=0,tA=0|i[39],iA=0,gA=0|i[38],CA=0,QA=0|i[37],eA=0,nA=0|i[36],BA=0,rA=0|i[35],EA=0,hA=0|i[34],oA=0,sA=0|i[33],aA=0,fA=0|i[32],wA=0,DA=0|i[31],cA=0,uA=0|i[30],yA=0,pA=0|i[29],lA=0,FA=0|i[28],MA=0,mA=0|i[27],dA=0,GA=0|i[26],UA=0,HA=0|i[25],LA=0,kA=0|i[24],NA=0,bA=0|i[23],SA=0,RA=0|i[22],JA=0,vA=0|i[21],qA=0,YA=0|i[20],PA=0,xA=0|i[19],OA=0,XA=0|i[18],ZA=0,jA=0|i[17],KA=0,VA=0|i[16],zA=0,WA=0|i[15],TA=0,_A=0|i[14],$A=0,AI=0|i[13],II=0,tI=0|i[12],iI=0,gI=0|i[11],CI=0,QI=0|i[10],eI=0,nI=0|i[9],BI=0,rI=0|i[8],EI=0,hI=0|i[7],oI=0,sI=0|i[6],aI=0,fI=0|i[5],wI=0,DI=0|i[4],cI=0,uI=0|i[3],yI=0,pI=0|i[2],lI=0,FI=0|i[1],MI=0,mI=0|i[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=397*(e=65535&Q),B=397*(r=65535&B),E=397*(h=65535&E),s=397*(f=65535&s),w=397*(D=65535&w),c=397*(u=65535&c),y=397*(p=65535&y),l=397*(F=65535&l),M=397*(m=65535&M),d=397*(G=65535&d),U=397*(H=65535&U),L=397*(k=65535&L),N=397*(b=65535&N),S=397*(R=65535&S),J=397*(v=65535&J),q=397*(Y=65535&q),P=397*(x=65535&P),O=397*(X=65535&O),Z=397*(j=65535&Z),K=397*(V=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),CA=397*(QA=65535&CA),eA=397*(nA=65535&eA),BA=397*(rA=65535&BA),EA=397*(hA=65535&EA),oA=397*(sA=65535&oA),aA=397*(fA=65535&aA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),yA=397*(pA=65535&yA),lA=397*(FA=65535&lA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),UA=397*(HA=65535&UA),LA=397*(kA=65535&LA),NA=397*(bA=65535&NA),SA=397*(RA=65535&SA),JA=397*(vA=65535&JA),qA=397*(YA=65535&qA),PA=397*(xA=65535&PA),OA=397*(XA=65535&OA),ZA=397*(jA=65535&ZA),KA=397*(VA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),CI=397*(QI=65535&CI),eI=397*(nI=65535&eI),BI=397*(rI=65535&BI),EI=397*(hI=65535&EI),oI=397*(sI=65535&oI),aI=397*(fI=65535&aI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),yI=397*(pI=65535&yI),lI=397*(FI=65535&lI),MI=397*mI,JA+=(C^=A.charCodeAt(I++))<<8,qA+=e<<8,PA+=r<<8,OA+=h<<8,ZA+=f<<8,KA+=D<<8,zA+=u<<8,TA+=p<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,CI+=H<<8,eI+=k<<8,BI+=b<<8,EI+=R<<8,oI+=v<<8,aI+=Y<<8,wI+=x<<8,cI+=X<<8,yI+=j<<8,lI+=V<<8,C=65535&(g=397*C),mI=(MI+=W<<8)+((lI+=(yI+=(cI+=(wI+=(aI+=(oI+=(EI+=(BI+=(eI+=(CI+=(iI+=(II+=($A+=(TA+=(zA+=(KA+=(ZA+=(OA+=(PA+=(qA+=(JA+=(SA+=(NA+=(LA+=(UA+=(dA+=(MA+=(lA+=(yA+=(cA+=(wA+=(aA+=(oA+=(EA+=(BA+=(eA+=(CA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(O+=(P+=(q+=(J+=(S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=397*(e=65535&Q),B=397*(r=65535&B),E=397*(h=65535&E),s=397*(f=65535&s),w=397*(D=65535&w),c=397*(u=65535&c),y=397*(p=65535&y),l=397*(F=65535&l),M=397*(m=65535&M),d=397*(G=65535&d),U=397*(H=65535&U),L=397*(k=65535&L),N=397*(b=65535&N),S=397*(R=65535&S),J=397*(v=65535&J),q=397*(Y=65535&q),P=397*(x=65535&P),O=397*(X=65535&O),Z=397*(j=65535&Z),K=397*(V=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),CA=397*(QA=65535&CA),eA=397*(nA=65535&eA),BA=397*(rA=65535&BA),EA=397*(hA=65535&EA),oA=397*(sA=65535&oA),aA=397*(fA=65535&aA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),yA=397*(pA=65535&yA),lA=397*(FA=65535&lA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),UA=397*(HA=65535&UA),LA=397*(kA=65535&LA),NA=397*(bA=65535&NA),SA=397*(RA=65535&SA),JA=397*(vA=65535&JA),qA=397*(YA=65535&qA),PA=397*(xA=65535&PA),OA=397*(XA=65535&OA),ZA=397*(jA=65535&ZA),KA=397*(VA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),CI=397*(QI=65535&CI),eI=397*(nI=65535&eI),BI=397*(rI=65535&BI),EI=397*(hI=65535&EI),oI=397*(sI=65535&oI),aI=397*(fI=65535&aI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),yI=397*(pI=65535&yI),lI=397*(FI=65535&lI),MI=397*mI,JA+=(C^=A.charCodeAt(I++))<<8,qA+=e<<8,PA+=r<<8,OA+=h<<8,ZA+=f<<8,KA+=D<<8,zA+=u<<8,TA+=p<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,CI+=H<<8,eI+=k<<8,BI+=b<<8,EI+=R<<8,oI+=v<<8,aI+=Y<<8,wI+=x<<8,cI+=X<<8,yI+=j<<8,lI+=V<<8,C=65535&(g=397*C),mI=(MI+=W<<8)+((lI+=(yI+=(cI+=(wI+=(aI+=(oI+=(EI+=(BI+=(eI+=(CI+=(iI+=(II+=($A+=(TA+=(zA+=(KA+=(ZA+=(OA+=(PA+=(qA+=(JA+=(SA+=(NA+=(LA+=(UA+=(dA+=(MA+=(lA+=(yA+=(cA+=(wA+=(aA+=(oA+=(EA+=(BA+=(eA+=(CA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(O+=(P+=(q+=(J+=(S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=397*(e=65535&Q),B=397*(r=65535&B),E=397*(h=65535&E),s=397*(f=65535&s),w=397*(D=65535&w),c=397*(u=65535&c),y=397*(p=65535&y),l=397*(F=65535&l),M=397*(m=65535&M),d=397*(G=65535&d),U=397*(H=65535&U),L=397*(k=65535&L),N=397*(b=65535&N),S=397*(R=65535&S),J=397*(v=65535&J),q=397*(Y=65535&q),P=397*(x=65535&P),O=397*(X=65535&O),Z=397*(j=65535&Z),K=397*(V=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),CA=397*(QA=65535&CA),eA=397*(nA=65535&eA),BA=397*(rA=65535&BA),EA=397*(hA=65535&EA),oA=397*(sA=65535&oA),aA=397*(fA=65535&aA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),yA=397*(pA=65535&yA),lA=397*(FA=65535&lA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),UA=397*(HA=65535&UA),LA=397*(kA=65535&LA),NA=397*(bA=65535&NA),SA=397*(RA=65535&SA),JA=397*(vA=65535&JA),qA=397*(YA=65535&qA),PA=397*(xA=65535&PA),OA=397*(XA=65535&OA),ZA=397*(jA=65535&ZA),KA=397*(VA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),CI=397*(QI=65535&CI),eI=397*(nI=65535&eI),BI=397*(rI=65535&BI),EI=397*(hI=65535&EI),oI=397*(sI=65535&oI),aI=397*(fI=65535&aI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),yI=397*(pI=65535&yI),lI=397*(FI=65535&lI),MI=397*mI,JA+=(C^=A.charCodeAt(I++))<<8,qA+=e<<8,PA+=r<<8,OA+=h<<8,ZA+=f<<8,KA+=D<<8,zA+=u<<8,TA+=p<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,CI+=H<<8,eI+=k<<8,BI+=b<<8,EI+=R<<8,oI+=v<<8,aI+=Y<<8,wI+=x<<8,cI+=X<<8,yI+=j<<8,lI+=V<<8,MI+=W<<8,C=65535&(g=397*C),e=65535&(Q+=g>>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),R=65535&(S+=N>>>16),v=65535&(J+=S>>>16),Y=65535&(q+=J>>>16),x=65535&(P+=q>>>16),X=65535&(O+=P>>>16),j=65535&(Z+=O>>>16),V=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),QA=65535&(CA+=iA>>>16),nA=65535&(eA+=CA>>>16),rA=65535&(BA+=eA>>>16),hA=65535&(EA+=BA>>>16),sA=65535&(oA+=EA>>>16),fA=65535&(aA+=oA>>>16),DA=65535&(wA+=aA>>>16),uA=65535&(cA+=wA>>>16),pA=65535&(yA+=cA>>>16),FA=65535&(lA+=yA>>>16),mA=65535&(MA+=lA>>>16),GA=65535&(dA+=MA>>>16),HA=65535&(UA+=dA>>>16),kA=65535&(LA+=UA>>>16),bA=65535&(NA+=LA>>>16),RA=65535&(SA+=NA>>>16),vA=65535&(JA+=SA>>>16),YA=65535&(qA+=JA>>>16),xA=65535&(PA+=qA>>>16),XA=65535&(OA+=PA>>>16),jA=65535&(ZA+=OA>>>16),VA=65535&(KA+=ZA>>>16),WA=65535&(zA+=KA>>>16),_A=65535&(TA+=zA>>>16),AI=65535&($A+=TA>>>16),tI=65535&(II+=$A>>>16),gI=65535&(iI+=II>>>16),QI=65535&(CI+=iI>>>16),nI=65535&(eI+=CI>>>16),rI=65535&(BI+=eI>>>16),hI=65535&(EI+=BI>>>16),sI=65535&(oI+=EI>>>16),fI=65535&(aI+=oI>>>16),DI=65535&(wI+=aI>>>16),uI=65535&(cI+=wI>>>16),pI=65535&(yI+=cI>>>16),mI=MI+((lI+=yI>>>16)>>>16)&65535,FI=65535&lI;for(;I>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),R=65535&(S+=N>>>16),v=65535&(J+=S>>>16),Y=65535&(q+=J>>>16),x=65535&(P+=q>>>16),X=65535&(O+=P>>>16),j=65535&(Z+=O>>>16),V=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),QA=65535&(CA+=iA>>>16),nA=65535&(eA+=CA>>>16),rA=65535&(BA+=eA>>>16),hA=65535&(EA+=BA>>>16),sA=65535&(oA+=EA>>>16),fA=65535&(aA+=oA>>>16),DA=65535&(wA+=aA>>>16),uA=65535&(cA+=wA>>>16),pA=65535&(yA+=cA>>>16),FA=65535&(lA+=yA>>>16),mA=65535&(MA+=lA>>>16),GA=65535&(dA+=MA>>>16),HA=65535&(UA+=dA>>>16),kA=65535&(LA+=UA>>>16),bA=65535&(NA+=LA>>>16),RA=65535&(SA+=NA>>>16),vA=65535&(JA+=SA>>>16),YA=65535&(qA+=JA>>>16),xA=65535&(PA+=qA>>>16),XA=65535&(OA+=PA>>>16),jA=65535&(ZA+=OA>>>16),VA=65535&(KA+=ZA>>>16),WA=65535&(zA+=KA>>>16),_A=65535&(TA+=zA>>>16),AI=65535&($A+=TA>>>16),tI=65535&(II+=$A>>>16),gI=65535&(iI+=II>>>16),QI=65535&(CI+=iI>>>16),nI=65535&(eI+=CI>>>16),rI=65535&(BI+=eI>>>16),hI=65535&(EI+=BI>>>16),sI=65535&(oI+=EI>>>16),fI=65535&(aI+=oI>>>16),DI=65535&(wI+=aI>>>16),uI=65535&(cI+=wI>>>16),pI=65535&(yI+=cI>>>16),mI=MI+((lI+=yI>>>16)>>>16)&65535,FI=65535&lI;return a(n[mI>>8]+n[255&mI]+n[FI>>8]+n[255&FI]+n[pI>>8]+n[255&pI]+n[uI>>8]+n[255&uI]+n[DI>>8]+n[255&DI]+n[fI>>8]+n[255&fI]+n[sI>>8]+n[255&sI]+n[hI>>8]+n[255&hI]+n[rI>>8]+n[255&rI]+n[nI>>8]+n[255&nI]+n[QI>>8]+n[255&QI]+n[gI>>8]+n[255&gI]+n[tI>>8]+n[255&tI]+n[AI>>8]+n[255&AI]+n[_A>>8]+n[255&_A]+n[WA>>8]+n[255&WA]+n[VA>>8]+n[255&VA]+n[jA>>8]+n[255&jA]+n[XA>>8]+n[255&XA]+n[xA>>8]+n[255&xA]+n[YA>>8]+n[255&YA]+n[vA>>8]+n[255&vA]+n[RA>>8]+n[255&RA]+n[bA>>8]+n[255&bA]+n[kA>>8]+n[255&kA]+n[HA>>8]+n[255&HA]+n[GA>>8]+n[255&GA]+n[mA>>8]+n[255&mA]+n[FA>>8]+n[255&FA]+n[pA>>8]+n[255&pA]+n[uA>>8]+n[255&uA]+n[DA>>8]+n[255&DA]+n[fA>>8]+n[255&fA]+n[sA>>8]+n[255&sA]+n[hA>>8]+n[255&hA]+n[rA>>8]+n[255&rA]+n[nA>>8]+n[255&nA]+n[QA>>8]+n[255&QA]+n[gA>>8]+n[255&gA]+n[tA>>8]+n[255&tA]+n[AA>>8]+n[255&AA]+n[_>>8]+n[255&_]+n[W>>8]+n[255&W]+n[V>>8]+n[255&V]+n[j>>8]+n[255&j]+n[X>>8]+n[255&X]+n[x>>8]+n[255&x]+n[Y>>8]+n[255&Y]+n[v>>8]+n[255&v]+n[R>>8]+n[255&R]+n[b>>8]+n[255&b]+n[k>>8]+n[255&k]+n[H>>8]+n[255&H]+n[G>>8]+n[255&G]+n[m>>8]+n[255&m]+n[F>>8]+n[255&F]+n[p>>8]+n[255&p]+n[u>>8]+n[255&u]+n[D>>8]+n[255&D]+n[f>>8]+n[255&f]+n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C],1024)}function K(A){var I,t=A.length-3,i=o[1024].offset,g=0,C=0|i[63],Q=0,e=0|i[62],B=0,r=0|i[61],E=0,h=0|i[60],s=0,f=0|i[59],w=0,D=0|i[58],c=0,u=0|i[57],y=0,p=0|i[56],l=0,F=0|i[55],M=0,m=0|i[54],d=0,G=0|i[53],U=0,H=0|i[52],L=0,k=0|i[51],N=0,b=0|i[50],S=0,R=0|i[49],J=0,v=0|i[48],q=0,Y=0|i[47],P=0,x=0|i[46],O=0,X=0|i[45],Z=0,j=0|i[44],K=0,V=0|i[43],z=0,W=0|i[42],T=0,_=0|i[41],$=0,AA=0|i[40],IA=0,tA=0|i[39],iA=0,gA=0|i[38],CA=0,QA=0|i[37],eA=0,nA=0|i[36],BA=0,rA=0|i[35],EA=0,hA=0|i[34],oA=0,sA=0|i[33],aA=0,fA=0|i[32],wA=0,DA=0|i[31],cA=0,uA=0|i[30],yA=0,pA=0|i[29],lA=0,FA=0|i[28],MA=0,mA=0|i[27],dA=0,GA=0|i[26],UA=0,HA=0|i[25],LA=0,kA=0|i[24],NA=0,bA=0|i[23],SA=0,RA=0|i[22],JA=0,vA=0|i[21],qA=0,YA=0|i[20],PA=0,xA=0|i[19],OA=0,XA=0|i[18],ZA=0,jA=0|i[17],KA=0,VA=0|i[16],zA=0,WA=0|i[15],TA=0,_A=0|i[14],$A=0,AI=0|i[13],II=0,tI=0|i[12],iI=0,gI=0|i[11],CI=0,QI=0|i[10],eI=0,nI=0|i[9],BI=0,rI=0|i[8],EI=0,hI=0|i[7],oI=0,sI=0|i[6],aI=0,fI=0|i[5],wI=0,DI=0|i[4],cI=0,uI=0|i[3],yI=0,pI=0|i[2],lI=0,FI=0|i[1],MI=0,mI=0|i[0];for(I=0;I>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=397*(e=65535&Q),B=397*(r=65535&B),E=397*(h=65535&E),s=397*(f=65535&s),w=397*(D=65535&w),c=397*(u=65535&c),y=397*(p=65535&y),l=397*(F=65535&l),M=397*(m=65535&M),d=397*(G=65535&d),U=397*(H=65535&U),L=397*(k=65535&L),N=397*(b=65535&N),S=397*(R=65535&S),J=397*(v=65535&J),q=397*(Y=65535&q),P=397*(x=65535&P),O=397*(X=65535&O),Z=397*(j=65535&Z),K=397*(V=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),CA=397*(QA=65535&CA),eA=397*(nA=65535&eA),BA=397*(rA=65535&BA),EA=397*(hA=65535&EA),oA=397*(sA=65535&oA),aA=397*(fA=65535&aA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),yA=397*(pA=65535&yA),lA=397*(FA=65535&lA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),UA=397*(HA=65535&UA),LA=397*(kA=65535&LA),NA=397*(bA=65535&NA),SA=397*(RA=65535&SA),JA=397*(vA=65535&JA),qA=397*(YA=65535&qA),PA=397*(xA=65535&PA),OA=397*(XA=65535&OA),ZA=397*(jA=65535&ZA),KA=397*(VA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),CI=397*(QI=65535&CI),eI=397*(nI=65535&eI),BI=397*(rI=65535&BI),EI=397*(hI=65535&EI),oI=397*(sI=65535&oI),aI=397*(fI=65535&aI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),yI=397*(pI=65535&yI),lI=397*(FI=65535&lI),MI=397*mI,JA+=(C^=A.charCodeAt(I++))<<8,qA+=e<<8,PA+=r<<8,OA+=h<<8,ZA+=f<<8,KA+=D<<8,zA+=u<<8,TA+=p<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,CI+=H<<8,eI+=k<<8,BI+=b<<8,EI+=R<<8,oI+=v<<8,aI+=Y<<8,wI+=x<<8,cI+=X<<8,yI+=j<<8,lI+=V<<8,C=65535&(g=397*C),mI=(MI+=W<<8)+((lI+=(yI+=(cI+=(wI+=(aI+=(oI+=(EI+=(BI+=(eI+=(CI+=(iI+=(II+=($A+=(TA+=(zA+=(KA+=(ZA+=(OA+=(PA+=(qA+=(JA+=(SA+=(NA+=(LA+=(UA+=(dA+=(MA+=(lA+=(yA+=(cA+=(wA+=(aA+=(oA+=(EA+=(BA+=(eA+=(CA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(O+=(P+=(q+=(J+=(S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=397*(e=65535&Q),B=397*(r=65535&B),E=397*(h=65535&E),s=397*(f=65535&s),w=397*(D=65535&w),c=397*(u=65535&c),y=397*(p=65535&y),l=397*(F=65535&l),M=397*(m=65535&M),d=397*(G=65535&d),U=397*(H=65535&U),L=397*(k=65535&L),N=397*(b=65535&N),S=397*(R=65535&S),J=397*(v=65535&J),q=397*(Y=65535&q),P=397*(x=65535&P),O=397*(X=65535&O),Z=397*(j=65535&Z),K=397*(V=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),CA=397*(QA=65535&CA),eA=397*(nA=65535&eA),BA=397*(rA=65535&BA),EA=397*(hA=65535&EA),oA=397*(sA=65535&oA),aA=397*(fA=65535&aA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),yA=397*(pA=65535&yA),lA=397*(FA=65535&lA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),UA=397*(HA=65535&UA),LA=397*(kA=65535&LA),NA=397*(bA=65535&NA),SA=397*(RA=65535&SA),JA=397*(vA=65535&JA),qA=397*(YA=65535&qA),PA=397*(xA=65535&PA),OA=397*(XA=65535&OA),ZA=397*(jA=65535&ZA),KA=397*(VA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),CI=397*(QI=65535&CI),eI=397*(nI=65535&eI),BI=397*(rI=65535&BI),EI=397*(hI=65535&EI),oI=397*(sI=65535&oI),aI=397*(fI=65535&aI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),yI=397*(pI=65535&yI),lI=397*(FI=65535&lI),MI=397*mI,JA+=(C^=A.charCodeAt(I++))<<8,qA+=e<<8,PA+=r<<8,OA+=h<<8,ZA+=f<<8,KA+=D<<8,zA+=u<<8,TA+=p<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,CI+=H<<8,eI+=k<<8,BI+=b<<8,EI+=R<<8,oI+=v<<8,aI+=Y<<8,wI+=x<<8,cI+=X<<8,yI+=j<<8,lI+=V<<8,C=65535&(g=397*C),mI=(MI+=W<<8)+((lI+=(yI+=(cI+=(wI+=(aI+=(oI+=(EI+=(BI+=(eI+=(CI+=(iI+=(II+=($A+=(TA+=(zA+=(KA+=(ZA+=(OA+=(PA+=(qA+=(JA+=(SA+=(NA+=(LA+=(UA+=(dA+=(MA+=(lA+=(yA+=(cA+=(wA+=(aA+=(oA+=(EA+=(BA+=(eA+=(CA+=(iA+=(IA+=($+=(T+=(z+=(K+=(Z+=(O+=(P+=(q+=(J+=(S+=(N+=(L+=(U+=(d+=(M+=(l+=(y+=(c+=(w+=(s+=(E+=(B+=(Q+=g>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,Q=397*(e=65535&Q),B=397*(r=65535&B),E=397*(h=65535&E),s=397*(f=65535&s),w=397*(D=65535&w),c=397*(u=65535&c),y=397*(p=65535&y),l=397*(F=65535&l),M=397*(m=65535&M),d=397*(G=65535&d),U=397*(H=65535&U),L=397*(k=65535&L),N=397*(b=65535&N),S=397*(R=65535&S),J=397*(v=65535&J),q=397*(Y=65535&q),P=397*(x=65535&P),O=397*(X=65535&O),Z=397*(j=65535&Z),K=397*(V=65535&K),z=397*(W=65535&z),T=397*(_=65535&T),$=397*(AA=65535&$),IA=397*(tA=65535&IA),iA=397*(gA=65535&iA),CA=397*(QA=65535&CA),eA=397*(nA=65535&eA),BA=397*(rA=65535&BA),EA=397*(hA=65535&EA),oA=397*(sA=65535&oA),aA=397*(fA=65535&aA),wA=397*(DA=65535&wA),cA=397*(uA=65535&cA),yA=397*(pA=65535&yA),lA=397*(FA=65535&lA),MA=397*(mA=65535&MA),dA=397*(GA=65535&dA),UA=397*(HA=65535&UA),LA=397*(kA=65535&LA),NA=397*(bA=65535&NA),SA=397*(RA=65535&SA),JA=397*(vA=65535&JA),qA=397*(YA=65535&qA),PA=397*(xA=65535&PA),OA=397*(XA=65535&OA),ZA=397*(jA=65535&ZA),KA=397*(VA=65535&KA),zA=397*(WA=65535&zA),TA=397*(_A=65535&TA),$A=397*(AI=65535&$A),II=397*(tI=65535&II),iI=397*(gI=65535&iI),CI=397*(QI=65535&CI),eI=397*(nI=65535&eI),BI=397*(rI=65535&BI),EI=397*(hI=65535&EI),oI=397*(sI=65535&oI),aI=397*(fI=65535&aI),wI=397*(DI=65535&wI),cI=397*(uI=65535&cI),yI=397*(pI=65535&yI),lI=397*(FI=65535&lI),MI=397*mI,JA+=(C^=A.charCodeAt(I++))<<8,qA+=e<<8,PA+=r<<8,OA+=h<<8,ZA+=f<<8,KA+=D<<8,zA+=u<<8,TA+=p<<8,$A+=F<<8,II+=m<<8,iI+=G<<8,CI+=H<<8,eI+=k<<8,BI+=b<<8,EI+=R<<8,oI+=v<<8,aI+=Y<<8,wI+=x<<8,cI+=X<<8,yI+=j<<8,lI+=V<<8,MI+=W<<8,C=65535&(g=397*C),e=65535&(Q+=g>>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),R=65535&(S+=N>>>16),v=65535&(J+=S>>>16),Y=65535&(q+=J>>>16),x=65535&(P+=q>>>16),X=65535&(O+=P>>>16),j=65535&(Z+=O>>>16),V=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),QA=65535&(CA+=iA>>>16),nA=65535&(eA+=CA>>>16),rA=65535&(BA+=eA>>>16),hA=65535&(EA+=BA>>>16),sA=65535&(oA+=EA>>>16),fA=65535&(aA+=oA>>>16),DA=65535&(wA+=aA>>>16),uA=65535&(cA+=wA>>>16),pA=65535&(yA+=cA>>>16),FA=65535&(lA+=yA>>>16),mA=65535&(MA+=lA>>>16),GA=65535&(dA+=MA>>>16),HA=65535&(UA+=dA>>>16),kA=65535&(LA+=UA>>>16),bA=65535&(NA+=LA>>>16),RA=65535&(SA+=NA>>>16),vA=65535&(JA+=SA>>>16),YA=65535&(qA+=JA>>>16),xA=65535&(PA+=qA>>>16),XA=65535&(OA+=PA>>>16),jA=65535&(ZA+=OA>>>16),VA=65535&(KA+=ZA>>>16),WA=65535&(zA+=KA>>>16),_A=65535&(TA+=zA>>>16),AI=65535&($A+=TA>>>16),tI=65535&(II+=$A>>>16),gI=65535&(iI+=II>>>16),QI=65535&(CI+=iI>>>16),nI=65535&(eI+=CI>>>16),rI=65535&(BI+=eI>>>16),hI=65535&(EI+=BI>>>16),sI=65535&(oI+=EI>>>16),fI=65535&(aI+=oI>>>16),DI=65535&(wI+=aI>>>16),uI=65535&(cI+=wI>>>16),pI=65535&(yI+=cI>>>16),mI=MI+((lI+=yI>>>16)>>>16)&65535,FI=65535&lI,C^=A.charCodeAt(I++);for(;I>>16),r=65535&(B+=Q>>>16),h=65535&(E+=B>>>16),f=65535&(s+=E>>>16),D=65535&(w+=s>>>16),u=65535&(c+=w>>>16),p=65535&(y+=c>>>16),F=65535&(l+=y>>>16),m=65535&(M+=l>>>16),G=65535&(d+=M>>>16),H=65535&(U+=d>>>16),k=65535&(L+=U>>>16),b=65535&(N+=L>>>16),R=65535&(S+=N>>>16),v=65535&(J+=S>>>16),Y=65535&(q+=J>>>16),x=65535&(P+=q>>>16),X=65535&(O+=P>>>16),j=65535&(Z+=O>>>16),V=65535&(K+=Z>>>16),W=65535&(z+=K>>>16),_=65535&(T+=z>>>16),AA=65535&($+=T>>>16),tA=65535&(IA+=$>>>16),gA=65535&(iA+=IA>>>16),QA=65535&(CA+=iA>>>16),nA=65535&(eA+=CA>>>16),rA=65535&(BA+=eA>>>16),hA=65535&(EA+=BA>>>16),sA=65535&(oA+=EA>>>16),fA=65535&(aA+=oA>>>16),DA=65535&(wA+=aA>>>16),uA=65535&(cA+=wA>>>16),pA=65535&(yA+=cA>>>16),FA=65535&(lA+=yA>>>16),mA=65535&(MA+=lA>>>16),GA=65535&(dA+=MA>>>16),HA=65535&(UA+=dA>>>16),kA=65535&(LA+=UA>>>16),bA=65535&(NA+=LA>>>16),RA=65535&(SA+=NA>>>16),vA=65535&(JA+=SA>>>16),YA=65535&(qA+=JA>>>16),xA=65535&(PA+=qA>>>16),XA=65535&(OA+=PA>>>16),jA=65535&(ZA+=OA>>>16),VA=65535&(KA+=ZA>>>16),WA=65535&(zA+=KA>>>16),_A=65535&(TA+=zA>>>16),AI=65535&($A+=TA>>>16),tI=65535&(II+=$A>>>16),gI=65535&(iI+=II>>>16),QI=65535&(CI+=iI>>>16),nI=65535&(eI+=CI>>>16),rI=65535&(BI+=eI>>>16),hI=65535&(EI+=BI>>>16),sI=65535&(oI+=EI>>>16),fI=65535&(aI+=oI>>>16),DI=65535&(wI+=aI>>>16),uI=65535&(cI+=wI>>>16),pI=65535&(yI+=cI>>>16),mI=MI+((lI+=yI>>>16)>>>16)&65535,FI=65535&lI,C^=A.charCodeAt(I++);return a(n[mI>>8]+n[255&mI]+n[FI>>8]+n[255&FI]+n[pI>>8]+n[255&pI]+n[uI>>8]+n[255&uI]+n[DI>>8]+n[255&DI]+n[fI>>8]+n[255&fI]+n[sI>>8]+n[255&sI]+n[hI>>8]+n[255&hI]+n[rI>>8]+n[255&rI]+n[nI>>8]+n[255&nI]+n[QI>>8]+n[255&QI]+n[gI>>8]+n[255&gI]+n[tI>>8]+n[255&tI]+n[AI>>8]+n[255&AI]+n[_A>>8]+n[255&_A]+n[WA>>8]+n[255&WA]+n[VA>>8]+n[255&VA]+n[jA>>8]+n[255&jA]+n[XA>>8]+n[255&XA]+n[xA>>8]+n[255&xA]+n[YA>>8]+n[255&YA]+n[vA>>8]+n[255&vA]+n[RA>>8]+n[255&RA]+n[bA>>8]+n[255&bA]+n[kA>>8]+n[255&kA]+n[HA>>8]+n[255&HA]+n[GA>>8]+n[255&GA]+n[mA>>8]+n[255&mA]+n[FA>>8]+n[255&FA]+n[pA>>8]+n[255&pA]+n[uA>>8]+n[255&uA]+n[DA>>8]+n[255&DA]+n[fA>>8]+n[255&fA]+n[sA>>8]+n[255&sA]+n[hA>>8]+n[255&hA]+n[rA>>8]+n[255&rA]+n[nA>>8]+n[255&nA]+n[QA>>8]+n[255&QA]+n[gA>>8]+n[255&gA]+n[tA>>8]+n[255&tA]+n[AA>>8]+n[255&AA]+n[_>>8]+n[255&_]+n[W>>8]+n[255&W]+n[V>>8]+n[255&V]+n[j>>8]+n[255&j]+n[X>>8]+n[255&X]+n[x>>8]+n[255&x]+n[Y>>8]+n[255&Y]+n[v>>8]+n[255&v]+n[R>>8]+n[255&R]+n[b>>8]+n[255&b]+n[k>>8]+n[255&k]+n[H>>8]+n[255&H]+n[G>>8]+n[255&G]+n[m>>8]+n[255&m]+n[F>>8]+n[255&F]+n[p>>8]+n[255&p]+n[u>>8]+n[255&u]+n[D>>8]+n[255&D]+n[f>>8]+n[255&f]+n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C],1024)}function V(A){var I,t,i=A.length,g=o[1024].offset,C=0,Q=0|g[63],e=0,B=0|g[62],r=0,E=0|g[61],h=0,s=0|g[60],f=0,w=0|g[59],D=0,c=0|g[58],u=0,y=0|g[57],p=0,l=0|g[56],F=0,M=0|g[55],m=0,d=0|g[54],G=0,U=0|g[53],H=0,L=0|g[52],k=0,N=0|g[51],b=0,S=0|g[50],R=0,J=0|g[49],v=0,q=0|g[48],Y=0,P=0|g[47],x=0,O=0|g[46],X=0,Z=0|g[45],j=0,K=0|g[44],V=0,z=0|g[43],W=0,T=0|g[42],_=0,$=0|g[41],AA=0,IA=0|g[40],tA=0,iA=0|g[39],gA=0,CA=0|g[38],QA=0,eA=0|g[37],nA=0,BA=0|g[36],rA=0,EA=0|g[35],hA=0,oA=0|g[34],sA=0,aA=0|g[33],fA=0,wA=0|g[32],DA=0,cA=0|g[31],uA=0,yA=0|g[30],pA=0,lA=0|g[29],FA=0,MA=0|g[28],mA=0,dA=0|g[27],GA=0,UA=0|g[26],HA=0,LA=0|g[25],kA=0,NA=0|g[24],bA=0,SA=0|g[23],RA=0,JA=0|g[22],vA=0,qA=0|g[21],YA=0,PA=0|g[20],xA=0,OA=0|g[19],XA=0,ZA=0|g[18],jA=0,KA=0|g[17],VA=0,zA=0|g[16],WA=0,TA=0|g[15],_A=0,$A=0|g[14],AI=0,II=0|g[13],tI=0,iI=0|g[12],gI=0,CI=0|g[11],QI=0,eI=0|g[10],nI=0,BI=0|g[9],rI=0,EI=0|g[8],hI=0,oI=0|g[7],sI=0,aI=0|g[6],fI=0,wI=0|g[5],DI=0,cI=0|g[4],uI=0,yI=0|g[3],pI=0,lI=0|g[2],FI=0,MI=0|g[1],mI=0,dI=0|g[0];for(t=0;t>6|192)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,mI+=T<<8,Q=65535&(C=397*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),aA=65535&(sA+=hA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),yA=65535&(uA+=DA>>>16),lA=65535&(pA+=uA>>>16),MA=65535&(FA+=pA>>>16),dA=65535&(mA+=FA>>>16),UA=65535&(GA+=mA>>>16),LA=65535&(HA+=GA>>>16),NA=65535&(kA+=HA>>>16),SA=65535&(bA+=kA>>>16),JA=65535&(RA+=bA>>>16),qA=65535&(vA+=RA>>>16),PA=65535&(YA+=vA>>>16),OA=65535&(xA+=YA>>>16),ZA=65535&(XA+=xA>>>16),KA=65535&(jA+=XA>>>16),zA=65535&(VA+=jA>>>16),TA=65535&(WA+=VA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),CI=65535&(gI+=tI>>>16),eI=65535&(QI+=gI>>>16),BI=65535&(nI+=QI>>>16),EI=65535&(rI+=nI>>>16),oI=65535&(hI+=rI>>>16),aI=65535&(sI+=hI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),yI=65535&(uI+=DI>>>16),lI=65535&(pI+=uI>>>16),dI=mI+((FI+=pI>>>16)>>>16)&65535,MI=65535&FI,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,Q=65535&(C=397*Q),dI=(mI+=T<<8)+((FI+=(pI+=(uI+=(DI+=(fI+=(sI+=(hI+=(rI+=(nI+=(QI+=(gI+=(tI+=(AI+=(_A+=(WA+=(VA+=(jA+=(XA+=(xA+=(YA+=(vA+=(RA+=(bA+=(kA+=(HA+=(GA+=(mA+=(FA+=(pA+=(uA+=(DA+=(fA+=(sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=397*(B=65535&e),r=397*(E=65535&r),h=397*(s=65535&h),f=397*(w=65535&f),D=397*(c=65535&D),u=397*(y=65535&u),p=397*(l=65535&p),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(U=65535&G),H=397*(L=65535&H),k=397*(N=65535&k),b=397*(S=65535&b),R=397*(J=65535&R),v=397*(q=65535&v),Y=397*(P=65535&Y),x=397*(O=65535&x),X=397*(Z=65535&X),j=397*(K=65535&j),V=397*(z=65535&V),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(CA=65535&gA),QA=397*(eA=65535&QA),nA=397*(BA=65535&nA),rA=397*(EA=65535&rA),hA=397*(oA=65535&hA),sA=397*(aA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(yA=65535&uA),pA=397*(lA=65535&pA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(UA=65535&GA),HA=397*(LA=65535&HA),kA=397*(NA=65535&kA),bA=397*(SA=65535&bA),RA=397*(JA=65535&RA),vA=397*(qA=65535&vA),YA=397*(PA=65535&YA),xA=397*(OA=65535&xA),XA=397*(ZA=65535&XA),jA=397*(KA=65535&jA),VA=397*(zA=65535&VA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(CI=65535&gI),QI=397*(eI=65535&QI),nI=397*(BI=65535&nI),rI=397*(EI=65535&rI),hI=397*(oI=65535&hI),sI=397*(aI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(yI=65535&uI),pI=397*(lI=65535&pI),FI=397*(MI=65535&FI),mI=397*dI,vA+=(Q^=I>>12&63|128)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,Q=65535&(C=397*Q),dI=(mI+=T<<8)+((FI+=(pI+=(uI+=(DI+=(fI+=(sI+=(hI+=(rI+=(nI+=(QI+=(gI+=(tI+=(AI+=(_A+=(WA+=(VA+=(jA+=(XA+=(xA+=(YA+=(vA+=(RA+=(bA+=(kA+=(HA+=(GA+=(mA+=(FA+=(pA+=(uA+=(DA+=(fA+=(sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=397*(B=65535&e),r=397*(E=65535&r),h=397*(s=65535&h),f=397*(w=65535&f),D=397*(c=65535&D),u=397*(y=65535&u),p=397*(l=65535&p),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(U=65535&G),H=397*(L=65535&H),k=397*(N=65535&k),b=397*(S=65535&b),R=397*(J=65535&R),v=397*(q=65535&v),Y=397*(P=65535&Y),x=397*(O=65535&x),X=397*(Z=65535&X),j=397*(K=65535&j),V=397*(z=65535&V),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(CA=65535&gA),QA=397*(eA=65535&QA),nA=397*(BA=65535&nA),rA=397*(EA=65535&rA),hA=397*(oA=65535&hA),sA=397*(aA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(yA=65535&uA),pA=397*(lA=65535&pA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(UA=65535&GA),HA=397*(LA=65535&HA),kA=397*(NA=65535&kA),bA=397*(SA=65535&bA),RA=397*(JA=65535&RA),vA=397*(qA=65535&vA),YA=397*(PA=65535&YA),xA=397*(OA=65535&xA),XA=397*(ZA=65535&XA),jA=397*(KA=65535&jA),VA=397*(zA=65535&VA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(CI=65535&gI),QI=397*(eI=65535&QI),nI=397*(BI=65535&nI),rI=397*(EI=65535&rI),hI=397*(oI=65535&hI),sI=397*(aI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(yI=65535&uI),pI=397*(lI=65535&pI),FI=397*(MI=65535&FI),mI=397*dI,vA+=(Q^=I>>6&63|128)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,mI+=T<<8,Q=65535&(C=397*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),aA=65535&(sA+=hA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),yA=65535&(uA+=DA>>>16),lA=65535&(pA+=uA>>>16),MA=65535&(FA+=pA>>>16),dA=65535&(mA+=FA>>>16),UA=65535&(GA+=mA>>>16),LA=65535&(HA+=GA>>>16),NA=65535&(kA+=HA>>>16),SA=65535&(bA+=kA>>>16),JA=65535&(RA+=bA>>>16),qA=65535&(vA+=RA>>>16),PA=65535&(YA+=vA>>>16),OA=65535&(xA+=YA>>>16),ZA=65535&(XA+=xA>>>16),KA=65535&(jA+=XA>>>16),zA=65535&(VA+=jA>>>16),TA=65535&(WA+=VA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),CI=65535&(gI+=tI>>>16),eI=65535&(QI+=gI>>>16),BI=65535&(nI+=QI>>>16),EI=65535&(rI+=nI>>>16),oI=65535&(hI+=rI>>>16),aI=65535&(sI+=hI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),yI=65535&(uI+=DI>>>16),lI=65535&(pI+=uI>>>16),dI=mI+((FI+=pI>>>16)>>>16)&65535,MI=65535&FI,Q^=63&I|128):(e=397*B,r=397*E,h=397*s,f=397*w,D=397*c,u=397*y,p=397*l,F=397*M,m=397*d,G=397*U,H=397*L,k=397*N,b=397*S,R=397*J,v=397*q,Y=397*P,x=397*O,X=397*Z,j=397*K,V=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*CA,QA=397*eA,nA=397*BA,rA=397*EA,hA=397*oA,sA=397*aA,fA=397*wA,DA=397*cA,uA=397*yA,pA=397*lA,FA=397*MA,mA=397*dA,GA=397*UA,HA=397*LA,kA=397*NA,bA=397*SA,RA=397*JA,vA=397*qA,YA=397*PA,xA=397*OA,XA=397*ZA,jA=397*KA,VA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*CI,QI=397*eI,nI=397*BI,rI=397*EI,hI=397*oI,sI=397*aI,fI=397*wI,DI=397*cI,uI=397*yI,pI=397*lI,FI=397*MI,mI=397*dI,vA+=(Q^=I>>12|224)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,Q=65535&(C=397*Q),dI=(mI+=T<<8)+((FI+=(pI+=(uI+=(DI+=(fI+=(sI+=(hI+=(rI+=(nI+=(QI+=(gI+=(tI+=(AI+=(_A+=(WA+=(VA+=(jA+=(XA+=(xA+=(YA+=(vA+=(RA+=(bA+=(kA+=(HA+=(GA+=(mA+=(FA+=(pA+=(uA+=(DA+=(fA+=(sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=397*(B=65535&e),r=397*(E=65535&r),h=397*(s=65535&h),f=397*(w=65535&f),D=397*(c=65535&D),u=397*(y=65535&u),p=397*(l=65535&p),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(U=65535&G),H=397*(L=65535&H),k=397*(N=65535&k),b=397*(S=65535&b),R=397*(J=65535&R),v=397*(q=65535&v),Y=397*(P=65535&Y),x=397*(O=65535&x),X=397*(Z=65535&X),j=397*(K=65535&j),V=397*(z=65535&V),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(CA=65535&gA),QA=397*(eA=65535&QA),nA=397*(BA=65535&nA),rA=397*(EA=65535&rA),hA=397*(oA=65535&hA),sA=397*(aA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(yA=65535&uA),pA=397*(lA=65535&pA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(UA=65535&GA),HA=397*(LA=65535&HA),kA=397*(NA=65535&kA),bA=397*(SA=65535&bA),RA=397*(JA=65535&RA),vA=397*(qA=65535&vA),YA=397*(PA=65535&YA),xA=397*(OA=65535&xA),XA=397*(ZA=65535&XA),jA=397*(KA=65535&jA),VA=397*(zA=65535&VA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(CI=65535&gI),QI=397*(eI=65535&QI),nI=397*(BI=65535&nI),rI=397*(EI=65535&rI),hI=397*(oI=65535&hI),sI=397*(aI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(yI=65535&uI),pI=397*(lI=65535&pI),FI=397*(MI=65535&FI),mI=397*dI,vA+=(Q^=I>>6&63|128)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,mI+=T<<8,Q=65535&(C=397*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),aA=65535&(sA+=hA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),yA=65535&(uA+=DA>>>16),lA=65535&(pA+=uA>>>16),MA=65535&(FA+=pA>>>16),dA=65535&(mA+=FA>>>16),UA=65535&(GA+=mA>>>16),LA=65535&(HA+=GA>>>16),NA=65535&(kA+=HA>>>16),SA=65535&(bA+=kA>>>16),JA=65535&(RA+=bA>>>16),qA=65535&(vA+=RA>>>16),PA=65535&(YA+=vA>>>16),OA=65535&(xA+=YA>>>16),ZA=65535&(XA+=xA>>>16),KA=65535&(jA+=XA>>>16),zA=65535&(VA+=jA>>>16),TA=65535&(WA+=VA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),CI=65535&(gI+=tI>>>16),eI=65535&(QI+=gI>>>16),BI=65535&(nI+=QI>>>16),EI=65535&(rI+=nI>>>16),oI=65535&(hI+=rI>>>16),aI=65535&(sI+=hI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),yI=65535&(uI+=DI>>>16),lI=65535&(pI+=uI>>>16),dI=mI+((FI+=pI>>>16)>>>16)&65535,MI=65535&FI,Q^=63&I|128),e=397*B,r=397*E,h=397*s,f=397*w,D=397*c,u=397*y,p=397*l,F=397*M,m=397*d,G=397*U,H=397*L,k=397*N,b=397*S,R=397*J,v=397*q,Y=397*P,x=397*O,X=397*Z,j=397*K,V=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*CA,QA=397*eA,nA=397*BA,rA=397*EA,hA=397*oA,sA=397*aA,fA=397*wA,DA=397*cA,uA=397*yA,pA=397*lA,FA=397*MA,mA=397*dA,GA=397*UA,HA=397*LA,kA=397*NA,bA=397*SA,RA=397*JA,vA=397*qA,YA=397*PA,xA=397*OA,XA=397*ZA,jA=397*KA,VA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*CI,QI=397*eI,nI=397*BI,rI=397*EI,hI=397*oI,sI=397*aI,fI=397*wI,DI=397*cI,uI=397*yI,pI=397*lI,FI=397*MI,mI=397*dI,vA+=Q<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,mI+=T<<8,Q=65535&(C=397*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),aA=65535&(sA+=hA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),yA=65535&(uA+=DA>>>16),lA=65535&(pA+=uA>>>16),MA=65535&(FA+=pA>>>16),dA=65535&(mA+=FA>>>16),UA=65535&(GA+=mA>>>16),LA=65535&(HA+=GA>>>16),NA=65535&(kA+=HA>>>16),SA=65535&(bA+=kA>>>16),JA=65535&(RA+=bA>>>16),qA=65535&(vA+=RA>>>16),PA=65535&(YA+=vA>>>16),OA=65535&(xA+=YA>>>16),ZA=65535&(XA+=xA>>>16),KA=65535&(jA+=XA>>>16),zA=65535&(VA+=jA>>>16),TA=65535&(WA+=VA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),CI=65535&(gI+=tI>>>16),eI=65535&(QI+=gI>>>16),BI=65535&(nI+=QI>>>16),EI=65535&(rI+=nI>>>16),oI=65535&(hI+=rI>>>16),aI=65535&(sI+=hI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),yI=65535&(uI+=DI>>>16),lI=65535&(pI+=uI>>>16),dI=mI+((FI+=pI>>>16)>>>16)&65535,MI=65535&FI;return a(n[dI>>8]+n[255&dI]+n[MI>>8]+n[255&MI]+n[lI>>8]+n[255&lI]+n[yI>>8]+n[255&yI]+n[cI>>8]+n[255&cI]+n[wI>>8]+n[255&wI]+n[aI>>8]+n[255&aI]+n[oI>>8]+n[255&oI]+n[EI>>8]+n[255&EI]+n[BI>>8]+n[255&BI]+n[eI>>8]+n[255&eI]+n[CI>>8]+n[255&CI]+n[iI>>8]+n[255&iI]+n[II>>8]+n[255&II]+n[$A>>8]+n[255&$A]+n[TA>>8]+n[255&TA]+n[zA>>8]+n[255&zA]+n[KA>>8]+n[255&KA]+n[ZA>>8]+n[255&ZA]+n[OA>>8]+n[255&OA]+n[PA>>8]+n[255&PA]+n[qA>>8]+n[255&qA]+n[JA>>8]+n[255&JA]+n[SA>>8]+n[255&SA]+n[NA>>8]+n[255&NA]+n[LA>>8]+n[255&LA]+n[UA>>8]+n[255&UA]+n[dA>>8]+n[255&dA]+n[MA>>8]+n[255&MA]+n[lA>>8]+n[255&lA]+n[yA>>8]+n[255&yA]+n[cA>>8]+n[255&cA]+n[wA>>8]+n[255&wA]+n[aA>>8]+n[255&aA]+n[oA>>8]+n[255&oA]+n[EA>>8]+n[255&EA]+n[BA>>8]+n[255&BA]+n[eA>>8]+n[255&eA]+n[CA>>8]+n[255&CA]+n[iA>>8]+n[255&iA]+n[IA>>8]+n[255&IA]+n[$>>8]+n[255&$]+n[T>>8]+n[255&T]+n[z>>8]+n[255&z]+n[K>>8]+n[255&K]+n[Z>>8]+n[255&Z]+n[O>>8]+n[255&O]+n[P>>8]+n[255&P]+n[q>>8]+n[255&q]+n[J>>8]+n[255&J]+n[S>>8]+n[255&S]+n[N>>8]+n[255&N]+n[L>>8]+n[255&L]+n[U>>8]+n[255&U]+n[d>>8]+n[255&d]+n[M>>8]+n[255&M]+n[l>>8]+n[255&l]+n[y>>8]+n[255&y]+n[c>>8]+n[255&c]+n[w>>8]+n[255&w]+n[s>>8]+n[255&s]+n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q],1024)}function z(A){var I,t,i=A.length,g=o[1024].offset,C=0,Q=0|g[63],e=0,B=0|g[62],r=0,E=0|g[61],h=0,s=0|g[60],f=0,w=0|g[59],D=0,c=0|g[58],u=0,y=0|g[57],p=0,l=0|g[56],F=0,M=0|g[55],m=0,d=0|g[54],G=0,U=0|g[53],H=0,L=0|g[52],k=0,N=0|g[51],b=0,S=0|g[50],R=0,J=0|g[49],v=0,q=0|g[48],Y=0,P=0|g[47],x=0,O=0|g[46],X=0,Z=0|g[45],j=0,K=0|g[44],V=0,z=0|g[43],W=0,T=0|g[42],_=0,$=0|g[41],AA=0,IA=0|g[40],tA=0,iA=0|g[39],gA=0,CA=0|g[38],QA=0,eA=0|g[37],nA=0,BA=0|g[36],rA=0,EA=0|g[35],hA=0,oA=0|g[34],sA=0,aA=0|g[33],fA=0,wA=0|g[32],DA=0,cA=0|g[31],uA=0,yA=0|g[30],pA=0,lA=0|g[29],FA=0,MA=0|g[28],mA=0,dA=0|g[27],GA=0,UA=0|g[26],HA=0,LA=0|g[25],kA=0,NA=0|g[24],bA=0,SA=0|g[23],RA=0,JA=0|g[22],vA=0,qA=0|g[21],YA=0,PA=0|g[20],xA=0,OA=0|g[19],XA=0,ZA=0|g[18],jA=0,KA=0|g[17],VA=0,zA=0|g[16],WA=0,TA=0|g[15],_A=0,$A=0|g[14],AI=0,II=0|g[13],tI=0,iI=0|g[12],gI=0,CI=0|g[11],QI=0,eI=0|g[10],nI=0,BI=0|g[9],rI=0,EI=0|g[8],hI=0,oI=0|g[7],sI=0,aI=0|g[6],fI=0,wI=0|g[5],DI=0,cI=0|g[4],uI=0,yI=0|g[3],pI=0,lI=0|g[2],FI=0,MI=0|g[1],mI=0,dI=0|g[0];for(t=0;t>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),aA=65535&(sA+=hA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),yA=65535&(uA+=DA>>>16),lA=65535&(pA+=uA>>>16),MA=65535&(FA+=pA>>>16),dA=65535&(mA+=FA>>>16),UA=65535&(GA+=mA>>>16),LA=65535&(HA+=GA>>>16),NA=65535&(kA+=HA>>>16),SA=65535&(bA+=kA>>>16),JA=65535&(RA+=bA>>>16),qA=65535&(vA+=RA>>>16),PA=65535&(YA+=vA>>>16),OA=65535&(xA+=YA>>>16),ZA=65535&(XA+=xA>>>16),KA=65535&(jA+=XA>>>16),zA=65535&(VA+=jA>>>16),TA=65535&(WA+=VA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),CI=65535&(gI+=tI>>>16),eI=65535&(QI+=gI>>>16),BI=65535&(nI+=QI>>>16),EI=65535&(rI+=nI>>>16),oI=65535&(hI+=rI>>>16),aI=65535&(sI+=hI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),yI=65535&(uI+=DI>>>16),lI=65535&(pI+=uI>>>16),dI=mI+((FI+=pI>>>16)>>>16)&65535,MI=65535&FI,(I=A.charCodeAt(t))<128?Q^=I:I<2048?(e=397*B,r=397*E,h=397*s,f=397*w,D=397*c,u=397*y,p=397*l,F=397*M,m=397*d,G=397*U,H=397*L,k=397*N,b=397*S,R=397*J,v=397*q,Y=397*P,x=397*O,X=397*Z,j=397*K,V=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*CA,QA=397*eA,nA=397*BA,rA=397*EA,hA=397*oA,sA=397*aA,fA=397*wA,DA=397*cA,uA=397*yA,pA=397*lA,FA=397*MA,mA=397*dA,GA=397*UA,HA=397*LA,kA=397*NA,bA=397*SA,RA=397*JA,vA=397*qA,YA=397*PA,xA=397*OA,XA=397*ZA,jA=397*KA,VA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*CI,QI=397*eI,nI=397*BI,rI=397*EI,hI=397*oI,sI=397*aI,fI=397*wI,DI=397*cI,uI=397*yI,pI=397*lI,FI=397*MI,mI=397*dI,vA+=(Q^=I>>6|192)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,mI+=T<<8,Q=65535&(C=397*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),aA=65535&(sA+=hA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),yA=65535&(uA+=DA>>>16),lA=65535&(pA+=uA>>>16),MA=65535&(FA+=pA>>>16),dA=65535&(mA+=FA>>>16),UA=65535&(GA+=mA>>>16),LA=65535&(HA+=GA>>>16),NA=65535&(kA+=HA>>>16),SA=65535&(bA+=kA>>>16),JA=65535&(RA+=bA>>>16),qA=65535&(vA+=RA>>>16),PA=65535&(YA+=vA>>>16),OA=65535&(xA+=YA>>>16),ZA=65535&(XA+=xA>>>16),KA=65535&(jA+=XA>>>16),zA=65535&(VA+=jA>>>16),TA=65535&(WA+=VA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),CI=65535&(gI+=tI>>>16),eI=65535&(QI+=gI>>>16),BI=65535&(nI+=QI>>>16),EI=65535&(rI+=nI>>>16),oI=65535&(hI+=rI>>>16),aI=65535&(sI+=hI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),yI=65535&(uI+=DI>>>16),lI=65535&(pI+=uI>>>16),dI=mI+((FI+=pI>>>16)>>>16)&65535,MI=65535&FI,Q^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,Q=65535&(C=397*Q),dI=(mI+=T<<8)+((FI+=(pI+=(uI+=(DI+=(fI+=(sI+=(hI+=(rI+=(nI+=(QI+=(gI+=(tI+=(AI+=(_A+=(WA+=(VA+=(jA+=(XA+=(xA+=(YA+=(vA+=(RA+=(bA+=(kA+=(HA+=(GA+=(mA+=(FA+=(pA+=(uA+=(DA+=(fA+=(sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=397*(B=65535&e),r=397*(E=65535&r),h=397*(s=65535&h),f=397*(w=65535&f),D=397*(c=65535&D),u=397*(y=65535&u),p=397*(l=65535&p),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(U=65535&G),H=397*(L=65535&H),k=397*(N=65535&k),b=397*(S=65535&b),R=397*(J=65535&R),v=397*(q=65535&v),Y=397*(P=65535&Y),x=397*(O=65535&x),X=397*(Z=65535&X),j=397*(K=65535&j),V=397*(z=65535&V),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(CA=65535&gA),QA=397*(eA=65535&QA),nA=397*(BA=65535&nA),rA=397*(EA=65535&rA),hA=397*(oA=65535&hA),sA=397*(aA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(yA=65535&uA),pA=397*(lA=65535&pA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(UA=65535&GA),HA=397*(LA=65535&HA),kA=397*(NA=65535&kA),bA=397*(SA=65535&bA),RA=397*(JA=65535&RA),vA=397*(qA=65535&vA),YA=397*(PA=65535&YA),xA=397*(OA=65535&xA),XA=397*(ZA=65535&XA),jA=397*(KA=65535&jA),VA=397*(zA=65535&VA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(CI=65535&gI),QI=397*(eI=65535&QI),nI=397*(BI=65535&nI),rI=397*(EI=65535&rI),hI=397*(oI=65535&hI),sI=397*(aI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(yI=65535&uI),pI=397*(lI=65535&pI),FI=397*(MI=65535&FI),mI=397*dI,vA+=(Q^=I>>12&63|128)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,Q=65535&(C=397*Q),dI=(mI+=T<<8)+((FI+=(pI+=(uI+=(DI+=(fI+=(sI+=(hI+=(rI+=(nI+=(QI+=(gI+=(tI+=(AI+=(_A+=(WA+=(VA+=(jA+=(XA+=(xA+=(YA+=(vA+=(RA+=(bA+=(kA+=(HA+=(GA+=(mA+=(FA+=(pA+=(uA+=(DA+=(fA+=(sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=397*(B=65535&e),r=397*(E=65535&r),h=397*(s=65535&h),f=397*(w=65535&f),D=397*(c=65535&D),u=397*(y=65535&u),p=397*(l=65535&p),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(U=65535&G),H=397*(L=65535&H),k=397*(N=65535&k),b=397*(S=65535&b),R=397*(J=65535&R),v=397*(q=65535&v),Y=397*(P=65535&Y),x=397*(O=65535&x),X=397*(Z=65535&X),j=397*(K=65535&j),V=397*(z=65535&V),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(CA=65535&gA),QA=397*(eA=65535&QA),nA=397*(BA=65535&nA),rA=397*(EA=65535&rA),hA=397*(oA=65535&hA),sA=397*(aA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(yA=65535&uA),pA=397*(lA=65535&pA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(UA=65535&GA),HA=397*(LA=65535&HA),kA=397*(NA=65535&kA),bA=397*(SA=65535&bA),RA=397*(JA=65535&RA),vA=397*(qA=65535&vA),YA=397*(PA=65535&YA),xA=397*(OA=65535&xA),XA=397*(ZA=65535&XA),jA=397*(KA=65535&jA),VA=397*(zA=65535&VA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(CI=65535&gI),QI=397*(eI=65535&QI),nI=397*(BI=65535&nI),rI=397*(EI=65535&rI),hI=397*(oI=65535&hI),sI=397*(aI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(yI=65535&uI),pI=397*(lI=65535&pI),FI=397*(MI=65535&FI),mI=397*dI,vA+=(Q^=I>>6&63|128)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,mI+=T<<8,Q=65535&(C=397*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),aA=65535&(sA+=hA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),yA=65535&(uA+=DA>>>16),lA=65535&(pA+=uA>>>16),MA=65535&(FA+=pA>>>16),dA=65535&(mA+=FA>>>16),UA=65535&(GA+=mA>>>16),LA=65535&(HA+=GA>>>16),NA=65535&(kA+=HA>>>16),SA=65535&(bA+=kA>>>16),JA=65535&(RA+=bA>>>16),qA=65535&(vA+=RA>>>16),PA=65535&(YA+=vA>>>16),OA=65535&(xA+=YA>>>16),ZA=65535&(XA+=xA>>>16),KA=65535&(jA+=XA>>>16),zA=65535&(VA+=jA>>>16),TA=65535&(WA+=VA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),CI=65535&(gI+=tI>>>16),eI=65535&(QI+=gI>>>16),BI=65535&(nI+=QI>>>16),EI=65535&(rI+=nI>>>16),oI=65535&(hI+=rI>>>16),aI=65535&(sI+=hI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),yI=65535&(uI+=DI>>>16),lI=65535&(pI+=uI>>>16),dI=mI+((FI+=pI>>>16)>>>16)&65535,MI=65535&FI,Q^=63&I|128):(e=397*B,r=397*E,h=397*s,f=397*w,D=397*c,u=397*y,p=397*l,F=397*M,m=397*d,G=397*U,H=397*L,k=397*N,b=397*S,R=397*J,v=397*q,Y=397*P,x=397*O,X=397*Z,j=397*K,V=397*z,W=397*T,_=397*$,AA=397*IA,tA=397*iA,gA=397*CA,QA=397*eA,nA=397*BA,rA=397*EA,hA=397*oA,sA=397*aA,fA=397*wA,DA=397*cA,uA=397*yA,pA=397*lA,FA=397*MA,mA=397*dA,GA=397*UA,HA=397*LA,kA=397*NA,bA=397*SA,RA=397*JA,vA=397*qA,YA=397*PA,xA=397*OA,XA=397*ZA,jA=397*KA,VA=397*zA,WA=397*TA,_A=397*$A,AI=397*II,tI=397*iI,gI=397*CI,QI=397*eI,nI=397*BI,rI=397*EI,hI=397*oI,sI=397*aI,fI=397*wI,DI=397*cI,uI=397*yI,pI=397*lI,FI=397*MI,mI=397*dI,vA+=(Q^=I>>12|224)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,Q=65535&(C=397*Q),dI=(mI+=T<<8)+((FI+=(pI+=(uI+=(DI+=(fI+=(sI+=(hI+=(rI+=(nI+=(QI+=(gI+=(tI+=(AI+=(_A+=(WA+=(VA+=(jA+=(XA+=(xA+=(YA+=(vA+=(RA+=(bA+=(kA+=(HA+=(GA+=(mA+=(FA+=(pA+=(uA+=(DA+=(fA+=(sA+=(hA+=(rA+=(nA+=(QA+=(gA+=(tA+=(AA+=(_+=(W+=(V+=(j+=(X+=(x+=(Y+=(v+=(R+=(b+=(k+=(H+=(G+=(m+=(F+=(p+=(u+=(D+=(f+=(h+=(r+=(e+=C>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)>>>16)&65535,e=397*(B=65535&e),r=397*(E=65535&r),h=397*(s=65535&h),f=397*(w=65535&f),D=397*(c=65535&D),u=397*(y=65535&u),p=397*(l=65535&p),F=397*(M=65535&F),m=397*(d=65535&m),G=397*(U=65535&G),H=397*(L=65535&H),k=397*(N=65535&k),b=397*(S=65535&b),R=397*(J=65535&R),v=397*(q=65535&v),Y=397*(P=65535&Y),x=397*(O=65535&x),X=397*(Z=65535&X),j=397*(K=65535&j),V=397*(z=65535&V),W=397*(T=65535&W),_=397*($=65535&_),AA=397*(IA=65535&AA),tA=397*(iA=65535&tA),gA=397*(CA=65535&gA),QA=397*(eA=65535&QA),nA=397*(BA=65535&nA),rA=397*(EA=65535&rA),hA=397*(oA=65535&hA),sA=397*(aA=65535&sA),fA=397*(wA=65535&fA),DA=397*(cA=65535&DA),uA=397*(yA=65535&uA),pA=397*(lA=65535&pA),FA=397*(MA=65535&FA),mA=397*(dA=65535&mA),GA=397*(UA=65535&GA),HA=397*(LA=65535&HA),kA=397*(NA=65535&kA),bA=397*(SA=65535&bA),RA=397*(JA=65535&RA),vA=397*(qA=65535&vA),YA=397*(PA=65535&YA),xA=397*(OA=65535&xA),XA=397*(ZA=65535&XA),jA=397*(KA=65535&jA),VA=397*(zA=65535&VA),WA=397*(TA=65535&WA),_A=397*($A=65535&_A),AI=397*(II=65535&AI),tI=397*(iI=65535&tI),gI=397*(CI=65535&gI),QI=397*(eI=65535&QI),nI=397*(BI=65535&nI),rI=397*(EI=65535&rI),hI=397*(oI=65535&hI),sI=397*(aI=65535&sI),fI=397*(wI=65535&fI),DI=397*(cI=65535&DI),uI=397*(yI=65535&uI),pI=397*(lI=65535&pI),FI=397*(MI=65535&FI),mI=397*dI,vA+=(Q^=I>>6&63|128)<<8,YA+=B<<8,xA+=E<<8,XA+=s<<8,jA+=w<<8,VA+=c<<8,WA+=y<<8,_A+=l<<8,AI+=M<<8,tI+=d<<8,gI+=U<<8,QI+=L<<8,nI+=N<<8,rI+=S<<8,hI+=J<<8,sI+=q<<8,fI+=P<<8,DI+=O<<8,uI+=Z<<8,pI+=K<<8,FI+=z<<8,mI+=T<<8,Q=65535&(C=397*Q),B=65535&(e+=C>>>16),E=65535&(r+=e>>>16),s=65535&(h+=r>>>16),w=65535&(f+=h>>>16),c=65535&(D+=f>>>16),y=65535&(u+=D>>>16),l=65535&(p+=u>>>16),M=65535&(F+=p>>>16),d=65535&(m+=F>>>16),U=65535&(G+=m>>>16),L=65535&(H+=G>>>16),N=65535&(k+=H>>>16),S=65535&(b+=k>>>16),J=65535&(R+=b>>>16),q=65535&(v+=R>>>16),P=65535&(Y+=v>>>16),O=65535&(x+=Y>>>16),Z=65535&(X+=x>>>16),K=65535&(j+=X>>>16),z=65535&(V+=j>>>16),T=65535&(W+=V>>>16),$=65535&(_+=W>>>16),IA=65535&(AA+=_>>>16),iA=65535&(tA+=AA>>>16),CA=65535&(gA+=tA>>>16),eA=65535&(QA+=gA>>>16),BA=65535&(nA+=QA>>>16),EA=65535&(rA+=nA>>>16),oA=65535&(hA+=rA>>>16),aA=65535&(sA+=hA>>>16),wA=65535&(fA+=sA>>>16),cA=65535&(DA+=fA>>>16),yA=65535&(uA+=DA>>>16),lA=65535&(pA+=uA>>>16),MA=65535&(FA+=pA>>>16),dA=65535&(mA+=FA>>>16),UA=65535&(GA+=mA>>>16),LA=65535&(HA+=GA>>>16),NA=65535&(kA+=HA>>>16),SA=65535&(bA+=kA>>>16),JA=65535&(RA+=bA>>>16),qA=65535&(vA+=RA>>>16),PA=65535&(YA+=vA>>>16),OA=65535&(xA+=YA>>>16),ZA=65535&(XA+=xA>>>16),KA=65535&(jA+=XA>>>16),zA=65535&(VA+=jA>>>16),TA=65535&(WA+=VA>>>16),$A=65535&(_A+=WA>>>16),II=65535&(AI+=_A>>>16),iI=65535&(tI+=AI>>>16),CI=65535&(gI+=tI>>>16),eI=65535&(QI+=gI>>>16),BI=65535&(nI+=QI>>>16),EI=65535&(rI+=nI>>>16),oI=65535&(hI+=rI>>>16),aI=65535&(sI+=hI>>>16),wI=65535&(fI+=sI>>>16),cI=65535&(DI+=fI>>>16),yI=65535&(uI+=DI>>>16),lI=65535&(pI+=uI>>>16),dI=mI+((FI+=pI>>>16)>>>16)&65535,MI=65535&FI,Q^=63&I|128);return a(n[dI>>8]+n[255&dI]+n[MI>>8]+n[255&MI]+n[lI>>8]+n[255&lI]+n[yI>>8]+n[255&yI]+n[cI>>8]+n[255&cI]+n[wI>>8]+n[255&wI]+n[aI>>8]+n[255&aI]+n[oI>>8]+n[255&oI]+n[EI>>8]+n[255&EI]+n[BI>>8]+n[255&BI]+n[eI>>8]+n[255&eI]+n[CI>>8]+n[255&CI]+n[iI>>8]+n[255&iI]+n[II>>8]+n[255&II]+n[$A>>8]+n[255&$A]+n[TA>>8]+n[255&TA]+n[zA>>8]+n[255&zA]+n[KA>>8]+n[255&KA]+n[ZA>>8]+n[255&ZA]+n[OA>>8]+n[255&OA]+n[PA>>8]+n[255&PA]+n[qA>>8]+n[255&qA]+n[JA>>8]+n[255&JA]+n[SA>>8]+n[255&SA]+n[NA>>8]+n[255&NA]+n[LA>>8]+n[255&LA]+n[UA>>8]+n[255&UA]+n[dA>>8]+n[255&dA]+n[MA>>8]+n[255&MA]+n[lA>>8]+n[255&lA]+n[yA>>8]+n[255&yA]+n[cA>>8]+n[255&cA]+n[wA>>8]+n[255&wA]+n[aA>>8]+n[255&aA]+n[oA>>8]+n[255&oA]+n[EA>>8]+n[255&EA]+n[BA>>8]+n[255&BA]+n[eA>>8]+n[255&eA]+n[CA>>8]+n[255&CA]+n[iA>>8]+n[255&iA]+n[IA>>8]+n[255&IA]+n[$>>8]+n[255&$]+n[T>>8]+n[255&T]+n[z>>8]+n[255&z]+n[K>>8]+n[255&K]+n[Z>>8]+n[255&Z]+n[O>>8]+n[255&O]+n[P>>8]+n[255&P]+n[q>>8]+n[255&q]+n[J>>8]+n[255&J]+n[S>>8]+n[255&S]+n[N>>8]+n[255&N]+n[L>>8]+n[255&L]+n[U>>8]+n[255&U]+n[d>>8]+n[255&d]+n[M>>8]+n[255&M]+n[l>>8]+n[255&l]+n[y>>8]+n[255&y]+n[c>>8]+n[255&c]+n[w>>8]+n[255&w]+n[s>>8]+n[255&s]+n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q],1024)}return I=p,t=m,i=H,g=b,C=v,Q=x,e=j,c("1a"),u(!1),y(),{hash:D,setKeyspace:function(A){if(52!==A&&!o[A])throw new Error("Supported FNV keyspacs: 32, 52, 64, 128, 256, 512, and 1024 bit");h=A},version:c,useUTF8:u,seed:y,fast1a32:function(A){var I,t=A.length-3,i=0,g=40389,C=0,Q=33052;for(I=0;I>>16)&65535),C+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=403*g),C=403*(Q=C+(i>>>16)&65535),C+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=403*g),C=403*(Q=C+(i>>>16)&65535),Q=(C+=(g^=A.charCodeAt(I++))<<8)+((i=403*g)>>>16)&65535,g=65535&i;for(;I>>16)&65535,g=65535&i;return(Q<<16>>>0)+g},fast1a32hex:function(A){var I,t=A.length-3,i=0,g=40389,C=0,Q=33052;for(I=0;I>>16)&65535),C+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=403*g),C=403*(Q=C+(i>>>16)&65535),C+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=403*g),C=403*(Q=C+(i>>>16)&65535),Q=(C+=(g^=A.charCodeAt(I++))<<8)+((i=403*g)>>>16)&65535,g=65535&i;for(;I>>16)&65535,g=65535&i;return n[Q>>>8&255]+n[255&Q]+n[g>>>8&255]+n[255&g]},fast1a52:function(A){var I,t=A.length-3,i=0,g=8997,C=0,Q=33826,e=0,n=40164,B=0,r=52210;for(I=0;I>>16)>>>16)>>>16)&65535,C=435*(Q=65535&C),e=435*(n=65535&e),B=435*r,e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),r=(B+=Q<<8)+((e+=(C+=i>>>16)>>>16)>>>16)&65535,C=435*(Q=65535&C),e=435*(n=65535&e),B=435*r,e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),r=(B+=Q<<8)+((e+=(C+=i>>>16)>>>16)>>>16)&65535,C=435*(Q=65535&C),e=435*(n=65535&e),B=435*r,e+=(g^=A.charCodeAt(I++))<<8,B+=Q<<8,g=65535&(i=435*g),Q=65535&(C+=i>>>16),r=B+((e+=C>>>16)>>>16)&65535,n=65535&e;for(;I>>16),r=B+((e+=C>>>16)>>>16)&65535,n=65535&e;return 281474976710656*(15&r)+4294967296*n+65536*Q+(g^r>>4)},fast1a52hex:function(A){var I,t=A.length-3,i=0,g=8997,C=0,Q=33826,e=0,r=40164,E=0,h=52210;for(I=0;I>>16)>>>16)>>>16)&65535,C=435*(Q=65535&C),e=435*(r=65535&e),E=435*h,e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),h=(E+=Q<<8)+((e+=(C+=i>>>16)>>>16)>>>16)&65535,C=435*(Q=65535&C),e=435*(r=65535&e),E=435*h,e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),h=(E+=Q<<8)+((e+=(C+=i>>>16)>>>16)>>>16)&65535,C=435*(Q=65535&C),e=435*(r=65535&e),E=435*h,e+=(g^=A.charCodeAt(I++))<<8,E+=Q<<8,g=65535&(i=435*g),Q=65535&(C+=i>>>16),h=E+((e+=C>>>16)>>>16)&65535,r=65535&e;for(;I>>16),h=E+((e+=C>>>16)>>>16)&65535,r=65535&e;return B[15&h]+n[r>>8]+n[255&r]+n[Q>>8]+n[255&Q]+n[g>>8^h>>12]+n[255&(g^h>>4)]},fast1a64:function(A){var I,t=A.length-3,i=0,g=8997,C=0,Q=33826,e=0,B=40164,r=0,E=52210;for(I=0;I>>16)>>>16)>>>16)&65535,C=435*(Q=65535&C),e=435*(B=65535&e),r=435*E,e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),E=(r+=Q<<8)+((e+=(C+=i>>>16)>>>16)>>>16)&65535,C=435*(Q=65535&C),e=435*(B=65535&e),r=435*E,e+=(g^=A.charCodeAt(I++))<<8,g=65535&(i=435*g),E=(r+=Q<<8)+((e+=(C+=i>>>16)>>>16)>>>16)&65535,C=435*(Q=65535&C),e=435*(B=65535&e),r=435*E,e+=(g^=A.charCodeAt(I++))<<8,r+=Q<<8,g=65535&(i=435*g),Q=65535&(C+=i>>>16),E=r+((e+=C>>>16)>>>16)&65535,B=65535&e;for(;I>>16),E=r+((e+=C>>>16)>>>16)&65535,B=65535&e;return n[E>>8]+n[255&E]+n[B>>8]+n[255&B]+n[Q>>8]+n[255&Q]+n[g>>8]+n[255&g]},fast1a32utf:function(A){var I,t,i=A.length,g=0,C=40389,Q=0,e=33052;for(t=0;t>6|192)<<8)+((g=403*C)>>>16)&65535,C=65535&g,C^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,C=65535&(g=403*C),Q=403*(e=Q+(g>>>16)&65535),Q+=(C^=I>>12&63|128)<<8,C=65535&(g=403*C),Q=403*(e=Q+(g>>>16)&65535),e=(Q+=(C^=I>>6&63|128)<<8)+((g=403*C)>>>16)&65535,C=65535&g,C^=63&I|128):(Q=403*e,Q+=(C^=I>>12|224)<<8,C=65535&(g=403*C),Q=403*(e=Q+(g>>>16)&65535),e=(Q+=(C^=I>>6&63|128)<<8)+((g=403*C)>>>16)&65535,C=65535&g,C^=63&I|128),Q=403*e,e=(Q+=C<<8)+((g=403*C)>>>16)&65535,C=65535&g;return(e<<16>>>0)+C},fast1a32hexutf:function(A){var I,t,i=A.length,g=0,C=40389,Q=0,e=33052;for(t=0;t>6|192)<<8)+((g=403*C)>>>16)&65535,C=65535&g,C^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,C=65535&(g=403*C),Q=403*(e=Q+(g>>>16)&65535),Q+=(C^=I>>12&63|128)<<8,C=65535&(g=403*C),Q=403*(e=Q+(g>>>16)&65535),e=(Q+=(C^=I>>6&63|128)<<8)+((g=403*C)>>>16)&65535,C=65535&g,C^=63&I|128):(Q=403*e,Q+=(C^=I>>12|224)<<8,C=65535&(g=403*C),Q=403*(e=Q+(g>>>16)&65535),e=(Q+=(C^=I>>6&63|128)<<8)+((g=403*C)>>>16)&65535,C=65535&g,C^=63&I|128),Q=403*e,e=(Q+=C<<8)+((g=403*C)>>>16)&65535,C=65535&g;return n[e>>>8&255]+n[255&e]+n[C>>>8&255]+n[255&C]},fast1a52utf:function(A){var I,t,i=A.length,g=0,C=8997,Q=0,e=33826,n=0,B=40164,r=0,E=52210;for(t=0;t>6|192)<<8,r+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),E=r+((n+=Q>>>16)>>>16)&65535,B=65535&n,C^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,C=65535&(g=435*C),E=(r+=e<<8)+((n+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),n=435*(B=65535&n),r=435*E,n+=(C^=I>>12&63|128)<<8,C=65535&(g=435*C),E=(r+=e<<8)+((n+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),n=435*(B=65535&n),r=435*E,n+=(C^=I>>6&63|128)<<8,r+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),E=r+((n+=Q>>>16)>>>16)&65535,B=65535&n,C^=63&I|128):(Q=435*e,n=435*B,r=435*E,n+=(C^=I>>12|224)<<8,C=65535&(g=435*C),E=(r+=e<<8)+((n+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),n=435*(B=65535&n),r=435*E,n+=(C^=I>>6&63|128)<<8,r+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),E=r+((n+=Q>>>16)>>>16)&65535,B=65535&n,C^=63&I|128),Q=435*e,n=435*B,r=435*E,n+=C<<8,r+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),E=r+((n+=Q>>>16)>>>16)&65535,B=65535&n;return 281474976710656*(15&E)+4294967296*B+65536*e+(C^E>>4)},fast1a52hexutf:function(A){var I,t,i=A.length,g=0,C=8997,Q=0,e=33826,r=0,E=40164,h=0,o=52210;for(t=0;t>6|192)<<8,h+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),o=h+((r+=Q>>>16)>>>16)&65535,E=65535&r,C^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,C=65535&(g=435*C),o=(h+=e<<8)+((r+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),r=435*(E=65535&r),h=435*o,r+=(C^=I>>12&63|128)<<8,C=65535&(g=435*C),o=(h+=e<<8)+((r+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),r=435*(E=65535&r),h=435*o,r+=(C^=I>>6&63|128)<<8,h+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),o=h+((r+=Q>>>16)>>>16)&65535,E=65535&r,C^=63&I|128):(Q=435*e,r=435*E,h=435*o,r+=(C^=I>>12|224)<<8,C=65535&(g=435*C),o=(h+=e<<8)+((r+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),r=435*(E=65535&r),h=435*o,r+=(C^=I>>6&63|128)<<8,h+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),o=h+((r+=Q>>>16)>>>16)&65535,E=65535&r,C^=63&I|128),Q=435*e,r=435*E,h=435*o,r+=C<<8,h+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),o=h+((r+=Q>>>16)>>>16)&65535,E=65535&r;return B[15&o]+n[E>>8]+n[255&E]+n[e>>8]+n[255&e]+n[C>>8^o>>12]+n[255&(C^o>>4)]},fast1a64utf:function(A){var I,t,i=A.length,g=0,C=8997,Q=0,e=33826,B=0,r=40164,E=0,h=52210;for(t=0;t>6|192)<<8,E+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),h=E+((B+=Q>>>16)>>>16)&65535,r=65535&B,C^=63&I|128):55296==(64512&I)&&t+1>18|240)<<8,C=65535&(g=435*C),h=(E+=e<<8)+((B+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),B=435*(r=65535&B),E=435*h,B+=(C^=I>>12&63|128)<<8,C=65535&(g=435*C),h=(E+=e<<8)+((B+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),B=435*(r=65535&B),E=435*h,B+=(C^=I>>6&63|128)<<8,E+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),h=E+((B+=Q>>>16)>>>16)&65535,r=65535&B,C^=63&I|128):(Q=435*e,B=435*r,E=435*h,B+=(C^=I>>12|224)<<8,C=65535&(g=435*C),h=(E+=e<<8)+((B+=(Q+=g>>>16)>>>16)>>>16)&65535,Q=435*(e=65535&Q),B=435*(r=65535&B),E=435*h,B+=(C^=I>>6&63|128)<<8,E+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),h=E+((B+=Q>>>16)>>>16)&65535,r=65535&B,C^=63&I|128),Q=435*e,B=435*r,E=435*h,B+=C<<8,E+=e<<8,C=65535&(g=435*C),e=65535&(Q+=g>>>16),h=E+((B+=Q>>>16)>>>16)&65535,r=65535&B;return n[h>>8]+n[255&h]+n[r>>8]+n[255&r]+n[e>>8]+n[255&e]+n[C>>8]+n[255&C]}}}();A.exports=I}));var Dt={fnvHash:function(A){return wt.hash(A,64).hex()},flatArray:function(A){var I=[];return function A(I,t){if(Array.isArray(t))for(let i=0;i>BigInt(I)}const Ft=pt,Mt=lt;var mt=Object.freeze({__proto__:null,fromString:ut,e:yt,fromArray:function(A,I){let t=0n;I=BigInt(I);for(let i=0;i>=1n}return t},bits:function(A){let I=BigInt(A);const t=[];for(;I;)1n&I?t.push(1):t.push(0),I>>=1n;return t},toNumber:function(A){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("Number too big");return Number(A)},toArray:function(A,I){const t=[];let i=BigInt(A);for(I=BigInt(I);i;)t.unshift(Number(i%I)),i/=I;return t},add:function(A,I){return BigInt(A)+BigInt(I)},sub:function(A,I){return BigInt(A)-BigInt(I)},neg:function(A){return-BigInt(A)},mul:function(A,I){return BigInt(A)*BigInt(I)},square:function(A){return BigInt(A)*BigInt(A)},pow:function(A,I){return BigInt(A)**BigInt(I)},exp:function(A,I){return BigInt(A)**BigInt(I)},abs:function(A){return BigInt(A)>=0?BigInt(A):-BigInt(A)},div:function(A,I){return BigInt(A)/BigInt(I)},mod:function(A,I){return BigInt(A)%BigInt(I)},eq:function(A,I){return BigInt(A)==BigInt(I)},neq:function(A,I){return BigInt(A)!=BigInt(I)},lt:function(A,I){return BigInt(A)BigInt(I)},leq:function(A,I){return BigInt(A)<=BigInt(I)},geq:function(A,I){return BigInt(A)>=BigInt(I)},band:function(A,I){return BigInt(A)&BigInt(I)},bor:function(A,I){return BigInt(A)|BigInt(I)},bxor:function(A,I){return BigInt(A)^BigInt(I)},land:function(A,I){return BigInt(A)&&BigInt(I)},lor:function(A,I){return BigInt(A)||BigInt(I)},lnot:function(A){return!BigInt(A)}});function dt(A,I){return"string"==typeof A&&"0x"==A.slice(0,2)?r(A.slice(2),16):r(A,I)}const Gt=dt;function Ut(A,I){return r(A).shiftLeft(I)}function Ht(A,I){return r(A).shiftRight(I)}const Lt=Ut,kt=Ht;var Nt=Object.freeze({__proto__:null,fromString:dt,e:Gt,fromArray:function(A,I){return r.fromArray(A,I)},bitLength:function(A){return r(A).bitLength()},isNegative:function(A){return r(A).isNegative()},isZero:function(A){return r(A).isZero()},shiftLeft:Ut,shiftRight:Ht,shl:Lt,shr:kt,isOdd:function(A){return r(A).isOdd()},naf:function(A){let I=r(A);const t=[];for(;I.gt(r.zero);){if(I.isOdd()){const A=2-I.mod(4).toJSNumber();t.push(A),I=I.minus(A)}else t.push(0);I=I.shiftRight(1)}return t},bits:function(A){let I=r(A);const t=[];for(;I.gt(r.zero);)I.isOdd()?t.push(1):t.push(0),I=I.shiftRight(1);return t},toNumber:function(A){if(!A.lt(r("9007199254740992",10)))throw new Error("Number too big");return A.toJSNumber()},toArray:function(A,I){return r(A).toArray(I)},add:function(A,I){return r(A).add(r(I))},sub:function(A,I){return r(A).minus(r(I))},neg:function(A){return r.zero.minus(r(A))},mul:function(A,I){return r(A).times(r(I))},square:function(A){return r(A).square()},pow:function(A,I){return r(A).pow(r(I))},exp:function(A,I){return r(A).pow(r(I))},abs:function(A){return r(A).abs()},div:function(A,I){return r(A).divide(r(I))},mod:function(A,I){return r(A).mod(r(I))},eq:function(A,I){return r(A).eq(r(I))},neq:function(A,I){return r(A).neq(r(I))},lt:function(A,I){return r(A).lt(r(I))},gt:function(A,I){return r(A).gt(r(I))},leq:function(A,I){return r(A).leq(r(I))},geq:function(A,I){return r(A).geq(r(I))},band:function(A,I){return r(A).and(r(I))},bor:function(A,I){return r(A).or(r(I))},bxor:function(A,I){return r(A).xor(r(I))},land:function(A,I){return!r(A).isZero()&&!r(I).isZero()},lor:function(A,I){return!r(A).isZero()||!r(I).isZero()},lnot:function(A){return r(A).isZero()}});const bt="function"==typeof BigInt;let St={};bt?Object.assign(St,mt):Object.assign(St,Nt),St.toRprLE=function(A,I,t,i){const g="0000000"+t.toString(16),C=new Uint32Array(A.buffer,I,i/4),Q=1+(4*(g.length-7)-1>>5);for(let A=0;A>5);for(let A=0;Ag[g.length-I-1]=A.toString(16).padStart(8,"0")),St.fromString(g.join(""),16)},St.fromRprBE=function(A,I,t){t=t||A.byteLength;const i=new DataView(A.buffer,I,t),g=new Array(t/4);for(let A=0;A>1,e=Ui(A,I,t-1,i,2*g),n=Ui(A,I,t-1,i+g,2*g),B=new Array(C);for(let I=0;I>1,C=Hi(A,I.slice(0,g),t-1),Q=Hi(A,I.slice(g),t-1),e=new Array(i);for(let I=0;I>=1;return t}function Ni(A,I){return(Li[A>>>24]|Li[A>>>16&255]<<8|Li[A>>>8&255]<<16|Li[255&A]<<24)>>>32-I}function bi(A,I){for(let t=0;tt){const I=A[t];A[t]=A[i],A[i]=I}}}function Si(A,I,t){let i;if(zt(t))return A.zero;const g=Ii(t);if(1==g[g.length-1])i=I;else{if(-1!=g[g.length-1])throw new Error("invlaud NAF");i=A.neg(I)}for(let t=g.length-2;t>=0;t--)i=A.double(i),1==g[t]?i=A.add(i,I):-1==g[t]&&(i=A.sub(i,I));return i}function Ri(A,I,t){if(zt(t))return A.one;const i=ti(t);if(0==i.legth)return A.one;let g=I;for(let t=i.length-2;t>=0;t--)g=A.square(g),i[t]&&(g=A.mul(g,I));return g}function Ji(A){if(A.m%2==1)if(ai(si(A.p,4),1))if(ai(si(A.p,8),1))if(ai(si(A.p,16),1))!function(A){A.sqrt_q=ri(A.p,A.m),A.sqrt_s=0,A.sqrt_t=Qi(A.sqrt_q,1);for(;!Ai(A.sqrt_t);)A.sqrt_s=A.sqrt_s+1,A.sqrt_t=oi(A.sqrt_t,2);let I=A.one;for(;A.eq(I,A.one);){const t=A.random();A.sqrt_z=A.pow(t,A.sqrt_t),I=A.pow(A.sqrt_z,1<>>0,A[g]=(A[g]^A[I])>>>0,A[g]=(A[g]<<16|A[g]>>>16&65535)>>>0,A[i]=A[i]+A[g]>>>0,A[t]=(A[t]^A[i])>>>0,A[t]=(A[t]<<12|A[t]>>>20&4095)>>>0,A[I]=A[I]+A[t]>>>0,A[g]=(A[g]^A[I])>>>0,A[g]=(A[g]<<8|A[g]>>>24&255)>>>0,A[i]=A[i]+A[g]>>>0,A[t]=(A[t]^A[i])>>>0,A[t]=(A[t]<<7|A[t]>>>25&127)>>>0}class qi{constructor(A){A=A||[0,0,0,0,0,0,0,0],this.state=[1634760805,857760878,2036477234,1797285236,A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],0,0,0,0],this.idx=16,this.buff=new Array(16)}nextU32(){return 16==this.idx&&this.update(),this.buff[this.idx++]}nextU64(){return Ci(ni(this.nextU32(),4294967296),this.nextU32())}nextBool(){return 1==(1&this.nextU32())}update(){for(let A=0;A<16;A++)this.buff[A]=this.state[A];for(let I=0;I<10;I++)vi(A=this.buff,0,4,8,12),vi(A,1,5,9,13),vi(A,2,6,10,14),vi(A,3,7,11,15),vi(A,0,5,10,15),vi(A,1,6,11,12),vi(A,2,7,8,13),vi(A,3,4,9,14);var A;for(let A=0;A<16;A++)this.buff[A]=this.buff[A]+this.state[A]>>>0;this.idx=0,this.state[12]=this.state[12]+1>>>0,0==this.state[12]&&(this.state[13]=this.state[13]+1>>>0,0==this.state[13]&&(this.state[14]=this.state[14]+1>>>0,0==this.state[14]&&(this.state[15]=this.state[15]+1>>>0)))}}function Yi(A){let I=new Uint8Array(A);if("undefined"!=typeof window)if(void 0!==window.crypto)window.crypto.getRandomValues(I);else for(let t=0;t>>0;else DA.randomFillSync(I);return I}let Pi=null;function xi(){return Pi||(Pi=new qi(function(){const A=Yi(32),I=new Uint32Array(A.buffer),t=[];for(let A=0;A<8;A++)t.push(I[A]);return t}()),Pi)}class Oi{constructor(A){this.type="F1",this.one=1n,this.zero=0n,this.p=BigInt(A),this.m=1,this.negone=this.p-1n,this.two=2n,this.half=this.p>>1n,this.bitLength=Kt(this.p),this.mask=(1n<>1n;this.nqr=this.two;let t=this.pow(this.nqr,I);for(;!this.eq(t,this.negone);)this.nqr=this.nqr+1n,t=this.pow(this.nqr,I);for(this.s=0,this.t=this.negone;0n==(1n&this.t);)this.s=this.s+1,this.t=this.t>>1n;this.nqr_to_t=this.pow(this.nqr,this.t),Ji(this)}e(A,I){let t;if(I?16==I&&(t=BigInt("0x"+A)):t=BigInt(A),t<0){let A=-t;return A>=this.p&&(A%=this.p),this.p-A}return t>=this.p?t%this.p:t}add(A,I){const t=A+I;return t>=this.p?t-this.p:t}sub(A,I){return A>=I?A-I:this.p-I+A}neg(A){return A?this.p-A:A}mul(A,I){return A*I%this.p}mulScalar(A,I){return A*this.e(I)%this.p}square(A){return A*A%this.p}eq(A,I){return A==I}neq(A,I){return A!=I}lt(A,I){return(A>this.half?A-this.p:A)<(I>this.half?I-this.p:I)}gt(A,I){return(A>this.half?A-this.p:A)>(I>this.half?I-this.p:I)}leq(A,I){return(A>this.half?A-this.p:A)<=(I>this.half?I-this.p:I)}geq(A,I){return(A>this.half?A-this.p:A)>=(I>this.half?I-this.p:I)}div(A,I){return this.mul(A,this.inv(I))}idiv(A,I){if(!I)throw new Error("Division by zero");return A/I}inv(A){if(!A)throw new Error("Division by zero");let I=0n,t=this.p,i=1n,g=A%this.p;for(;g;){let A=t/g;[I,i]=[i,I-A*i],[t,g]=[g,t-A*g]}return I<0n&&(I+=this.p),I}mod(A,I){return A%I}pow(A,I){return Ri(this,A,I)}exp(A,I){return Ri(this,A,I)}band(A,I){const t=A&I&this.mask;return t>=this.p?t-this.p:t}bor(A,I){const t=(A|I)&this.mask;return t>=this.p?t-this.p:t}bxor(A,I){const t=(A^I)&this.mask;return t>=this.p?t-this.p:t}bnot(A){const I=A^this.mask;return I>=this.p?I-this.p:I}shl(A,I){if(Number(I)=this.p?t-this.p:t}{const t=this.p-I;return Number(t)>t:0n}}shr(A,I){if(Number(I)>I;{const t=this.p-I;if(Number(t)=this.p?I-this.p:I}return 0}}land(A,I){return A&&I?1n:0n}lor(A,I){return A||I?1n:0n}lnot(A){return A?0n:1n}sqrt_old(A){if(0n==A)return this.zero;if(1n!=this.pow(A,this.negone>>this.one))return null;let I=this.s,t=this.nqr_to_t,i=this.pow(A,this.t),g=this.pow(A,this.add(this.t,this.one)>>1n);for(;1n!=i;){let A=this.square(i),C=1;for(;1n!=A;)C++,A=this.square(A);let Q=t;for(let A=0;Athis.p>>1n&&(g=this.neg(g)),g}normalize(A,I){if((A=BigInt(A,I))<0){let I=-A;return I>=this.p&&(I%=this.p),this.p-I}return A>=this.p?A%this.p:A}random(){const A=2*this.bitLength/8;let I=0n;for(let t=0;tthis.half){t="-"+(this.p-A).toString(I)}else t=A.toString(I);return t}isZero(A){return 0n==A}fromRng(A){let I;do{I=0n;for(let t=0;t=this.p);return I=I*this.Ri%this.p,I}}class Xi{constructor(A){this.type="F1",this.one=r.one,this.zero=r.zero,this.p=r(A),this.m=1,this.negone=this.p.minus(r.one),this.two=r(2),this.half=this.p.shiftRight(1),this.bitLength=this.p.bitLength(),this.mask=r.one.shiftLeft(this.bitLength).minus(r.one),this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=2*this.n64,this.n8=8*this.n64,this.R=r.one.shiftLeft(64*this.n64),this.Ri=this.inv(this.R);const I=this.negone.shiftRight(this.one);this.nqr=this.two;let t=this.pow(this.nqr,I);for(;!t.equals(this.negone);)this.nqr=this.nqr.add(this.one),t=this.pow(this.nqr,I);for(this.s=this.zero,this.t=this.negone;!this.t.isOdd();)this.s=this.s.add(this.one),this.t=this.t.shiftRight(this.one);this.nqr_to_t=this.pow(this.nqr,this.t),Ji(this)}e(A,I){const t=r(A,I);return this.normalize(t)}add(A,I){let t=A.add(I);return t.geq(this.p)&&(t=t.minus(this.p)),t}sub(A,I){return A.geq(I)?A.minus(I):this.p.minus(I.minus(A))}neg(A){return A.isZero()?A:this.p.minus(A)}mul(A,I){return A.times(I).mod(this.p)}mulScalar(A,I){return A.times(r(I)).mod(this.p)}square(A){return A.square().mod(this.p)}eq(A,I){return A.eq(I)}neq(A,I){return A.neq(I)}lt(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.lt(i)}gt(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.gt(i)}leq(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.leq(i)}geq(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.geq(i)}div(A,I){if(I.isZero())throw new Error("Division by zero");return A.times(I.modInv(this.p)).mod(this.p)}idiv(A,I){if(I.isZero())throw new Error("Division by zero");return A.divide(I)}inv(A){if(A.isZero())throw new Error("Division by zero");return A.modInv(this.p)}mod(A,I){return A.mod(I)}pow(A,I){return A.modPow(I,this.p)}exp(A,I){return A.modPow(I,this.p)}band(A,I){return A.and(I).and(this.mask).mod(this.p)}bor(A,I){return A.or(I).and(this.mask).mod(this.p)}bxor(A,I){return A.xor(I).and(this.mask).mod(this.p)}bnot(A){return A.xor(this.mask).mod(this.p)}shl(A,I){if(I.lt(this.bitLength))return A.shiftLeft(I).and(this.mask).mod(this.p);{const t=this.p.minus(I);return t.lt(this.bitLength)?this.shr(A,t):r.zero}}shr(A,I){if(I.lt(this.bitLength))return A.shiftRight(I);{const t=this.p.minus(I);return t.lt(this.bitLength)?this.shl(A,t):r.zero}}land(A,I){return A.isZero()||I.isZero()?r.zero:r.one}lor(A,I){return A.isZero()&&I.isZero()?r.zero:r.one}lnot(A){return A.isZero()?r.one:r.zero}sqrt_old(A){if(A.equals(this.zero))return this.zero;if(!this.pow(A,this.negone.shiftRight(this.one)).equals(this.one))return null;let I=parseInt(this.s),t=this.nqr_to_t,i=this.pow(A,this.t),g=this.pow(A,this.add(this.t,this.one).shiftRight(this.one));for(;!i.equals(this.one);){let A=this.square(i),C=1;for(;!A.equals(this.one);)C++,A=this.square(A);let Q=t;for(let A=0;A=0;t--)if(!A.F.isZero(I[t]))return Vi(A.F,I[t]);return 0}{const t=A.neg(I);return Di(I,t)}}var zi=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach(i=>{t[i]=A(I[i])}),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return BigInt(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){if(null===I)return null;const t={};return Object.keys(I).forEach(i=>{t[i]=A(I[i])}),t}return I},beBuff2int:function(A){let I=0n,t=A.length,i=0;const g=new DataView(A.buffer);for(;t>0;)t>=4?(t-=4,I+=BigInt(g.getUint32(t))<=2?(t-=2,I+=BigInt(g.getUint16(t))<0;)C-4>=0?(C-=4,g.setUint32(C,Number(0xFFFFFFFFn&t)),t>>=32n):C-2>=0?(C-=2,g.setUint16(C,Number(0xFFFFn&t)),t>>=16n):(C-=1,g.setUint8(C,Number(0xFFn&t)),t>>=8n);if(t)throw new Error("Number does not fit in this length");return i},leBuff2int:function(A){let I=0n,t=0;const i=new DataView(A.buffer);for(;t>=32n):C+2<=I?(i.setUint16(Number(C,0xFFFFn&t),!0),C+=2,t>>=16n):(i.setUint8(Number(C,0xFFn&t),!0),C+=1,t>>=8n);if(t)throw new Error("Number does not fit in this length");return i}});var Wi=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach(i=>{t[i]=A(I[i])}),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return r(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach(i=>{t[i]=A(I[i])}),t}return I},beBuff2int:function(A){let I=r.zero;for(let t=0;t=0;){let A=Number(t.and(r("255")));g[i]=A,i--,t=t.shiftRight(8)}if(!t.eq(r.zero))throw new Error("Number does not fit in this length");return g},leBuff2int:function(A){let I=r.zero;for(let t=0;t>=1;return t}Ti.bitReverse=function(A,I){return(_i[A>>>24]|_i[A>>>16&255]<<8|_i[A>>>8&255]<<16|_i[255&A]<<24)>>>32-I},Ti.log2=function(A){return(0!=(4294901760&A)?(A&=4294901760,16):0)|(0!=(4278255360&A)?(A&=4278255360,8):0)|(0!=(4042322160&A)?(A&=4042322160,4):0)|(0!=(3435973836&A)?(A&=3435973836,2):0)|0!=(2863311530&A)},Ti.buffReverseBits=function(A,I){const t=A.byteLength/I,i=Ti.log2(t);if(t!=1<t){const i=A.slice(g*I,(g+1)*I);A.set(A.slice(t*I,(t+1)*I),g*I),A.set(i,t*I)}}};let{bitReverse:Ag,log2:Ig,buffReverseBits:tg,stringifyBigInts:ig,unstringifyBigInts:gg,beBuff2int:Cg,beInt2Buff:Qg,leBuff2int:eg,leInt2Buff:ng}=Ti;var Bg=Object.freeze({__proto__:null,bitReverse:Ag,log2:Ig,buffReverseBits:tg,stringifyBigInts:ig,unstringifyBigInts:gg,beBuff2int:Cg,beInt2Buff:Qg,leBuff2int:eg,leInt2Buff:ng});function rg(A,I,t,i){return async function(g){const C=Math.floor(g.byteLength/t);if(C*t!==g.byteLength)throw new Error("Invalid buffer size");const Q=Math.floor(C/A.concurrency),e=[];for(let n=0;n=0;A--)this.w[A]=this.square(this.w[A+1]);if(!this.eq(this.w[0],this.one))throw new Error("Error calculating roots of unity");this.batchToMontgomery=rg(A,I+"_batchToMontgomery",this.n8,this.n8),this.batchFromMontgomery=rg(A,I+"_batchFromMontgomery",this.n8,this.n8)}op2(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op2Bool(A,I,t){return this.tm.setBuff(this.pOp1,I),this.tm.setBuff(this.pOp2,t),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp2)}op1(A,I){return this.tm.setBuff(this.pOp1,I),this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}op1Bool(A,I){return this.tm.setBuff(this.pOp1,I),!!this.tm.instance.exports[this.prefix+A](this.pOp1,this.pOp3)}add(A,I){return this.op2("_add",A,I)}eq(A,I){return this.op2Bool("_eq",A,I)}isZero(A){return this.op1Bool("_isZero",A)}sub(A,I){return this.op2("_sub",A,I)}neg(A){return this.op1("_neg",A)}inv(A){return this.op1("_inverse",A)}toMontgomery(A){return this.op1("_toMontgomery",A)}fromMontgomery(A){return this.op1("_fromMontgomery",A)}mul(A,I){return this.op2("_mul",A,I)}div(A,I){return this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_inverse"](this.pOp2,this.pOp2),this.tm.instance.exports[this.prefix+"_mul"](this.pOp1,this.pOp2,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}square(A){return this.op1("_square",A)}isSquare(A){return this.op1Bool("_isSquare",A)}sqrt(A){return this.op1("_sqrt",A)}exp(A,I){return I instanceof Uint8Array||(I=Pt(Zt(I))),this.tm.setBuff(this.pOp1,A),this.tm.setBuff(this.pOp2,I),this.tm.instance.exports[this.prefix+"_exp"](this.pOp1,this.pOp2,I.byteLength,this.pOp3),this.tm.getBuff(this.pOp3,this.n8)}isNegative(A){return this.op1Bool("_isNegative",A)}e(A,I){if(A instanceof Uint8Array)return A;let t=Zt(A,I);Vt(t)?(t=ei(t),Di(t,this.p)&&(t=si(t,this.p)),t=Qi(this.p,t)):Di(t,this.p)&&(t=si(t,this.p));const i=ng(t,this.n8);return this.toMontgomery(i)}toString(A,I){const t=this.fromMontgomery(A),i=vt(t,0);return Yt(i,I)}fromRng(A){let I;const t=new Uint8Array(this.n8);do{I=xt;for(let t=0;tt.buffer.byteLength;)t.grow(100);return I}function e(A){const I=Q(A.byteLength);return n(I,A),I}function n(A,I){g.set(new Uint8Array(I),A)}function B(A){if("INIT"==A[0].cmd)return C(A[0]);const t={vars:[],out:[]},B=i[0];for(let i=0;i{this.reject=I,this.resolve=A})}}function cg(A){for(var I=window.atob(A),t=I.length,i=new Uint8Array(t),g=0;g0;A++)if(0==this.working[A]){const I=this.actionQueue.shift();this.postAction(A,I.data,I.transfers,I.deferred)}}queueAction(A,I){const t=new Dg;if(this.singleThread){const I=this.taskManager(A);t.resolve(I)}else this.actionQueue.push({data:A,transfers:I,deferred:t}),this.processWorks();return t.promise}resetMemory(){this.u32[0]=this.initalPFree}allocBuff(A){const I=this.alloc(A.byteLength);return this.setBuff(I,A),I}getBuff(A,I){return this.u8.slice(A,A+I)}setBuff(A,I){this.u8.set(new Uint8Array(I),A)}alloc(A){for(;3&this.u32[0];)this.u32[0]++;const I=this.u32[0];return this.u32[0]+=A,I}async terminate(){for(let A=0;AsetTimeout(I,A)))}}function yg(A,I){const t=A[I],i=A.Fr,g=A.tm;A[I].batchApplyKey=async function(A,C,Q,e,n){let B,r,E,h,o;if(e=e||"affine",n=n||"affine","G1"==I)"jacobian"==e?(E=3*t.F.n8,B="g1m_batchApplyKey"):(E=2*t.F.n8,B="g1m_batchApplyKeyMixed"),h=3*t.F.n8,"jacobian"==n?o=3*t.F.n8:(r="g1m_batchToAffine",o=2*t.F.n8);else if("G2"==I)"jacobian"==e?(E=3*t.F.n8,B="g2m_batchApplyKey"):(E=2*t.F.n8,B="g2m_batchApplyKeyMixed"),h=3*t.F.n8,"jacobian"==n?o=3*t.F.n8:(r="g2m_batchToAffine",o=2*t.F.n8);else{if("Fr"!=I)throw new Error("Invalid group: "+I);B="frm_batchApplyKey",E=t.n8,h=t.n8,o=t.n8}const s=Math.floor(A.byteLength/E),a=Math.floor(s/g.concurrency),f=[];Q=i.e(Q);let w=i.e(C);for(let I=0;I=0;A--){if(!t.isZero(o))for(let A=0;A(B&&B.debug(`fft: ${A}/${e}`),I)))}A=await Promise.all(n);for(let I=0;I0;I--)l.set(A[I],i),i+=t,delete A[I];l.set(A[0].slice(0,(I-1)*h),i),delete A[e-1]}}return c?A.buffer2array(l,h):l}t.fft=async function(A,I,t,i){return await C(A,!1,I,t,i)},t.ifft=async function(A,I,t,i){return await C(A,!0,I,t,i)},t.fftMix=async function(A){const C=3*t.F.n8;let Q,e;if("G1"==I)Q="g1m_fftMix",e="g1m_fftJoin";else if("G2"==I)Q="g2m_fftMix",e="g2m_fftJoin";else{if("Fr"!=I)throw new Error("Invalid group");Q="frm_fftMix",e="frm_fftJoin"}const n=Math.floor(A.byteLength/C),B=Ig(n);let r=1<=0;A--)o.set(h[A][0],s),s+=h[A][0].byteLength;return o}}async function Mg(A){const I=await async function(A,I){const t=new ug;t.memory=new WebAssembly.Memory({initial:4096}),t.u8=new Uint8Array(t.memory.buffer),t.u32=new Uint32Array(t.memory.buffer);const i=await WebAssembly.compile(cg(A.code));if(t.instance=await WebAssembly.instantiate(i,{env:{memory:t.memory}}),t.singleThread=I,t.initalPFree=t.u32[0],t.pq=A.pq,t.pr=A.pr,t.pG1gen=A.pG1gen,t.pG1zero=A.pG1zero,t.pG2gen=A.pG2gen,t.pG2zero=A.pG2zero,t.pOneT=A.pOneT,I)t.code=cg(A.code),t.taskManager=ag(),await t.taskManager([{cmd:"INIT",init:4096,code:t.code.slice()}]),t.concurrency=1;else{let I;t.workers=[],t.pendingDeferreds=[],t.working=[],I="object"==typeof navigator&&navigator.hardwareConcurrency?navigator.hardwareConcurrency:DA.cpus().length,t.concurrency=I;for(let A=0;A=0;)this.w[g]=this.F.square(this.w[g+1]),this.wi[g]=this.F.square(this.wi[g+1]),g--;this.roots=[],this._setRoots(15)}_setRoots(A){for(let I=A;I>=0&&!this.roots[I];I--){let A=this.F.one;const t=1<A.length&&([I,A]=[A,I]),I.length<=2||I.length0){return new Array(I).fill(this.F.zero).concat(A)}return-I>=A.length?[]:A.slice(-I)}eval2(A,I){let t=this.F.zero,i=this.F.one;for(let g=0;g>1),t.mul(i,A(I,e,g+C,C<<1,Q>>1)))}(this.extend(A,i),I,0,1,i)}lagrange(A){let I=[this.F.one];for(let t=0;t>1,Q=this._fft(A,I-1,t,2*i),e=this._fft(A,I-1,t+i,2*i),n=new Array(g);let B=this.F.one;for(let A=0;A0&&this.F.eq(A[I],this.F.zero);)I--;return A.slice(0,I+1)}eq(A,I){const t=this.reduce(A),i=this.reduce(I);if(t.length!=i.length)return!1;for(let A=0;A=0;i--)t[i]=this.F.add(this.F.mul(t[i+1],I),A[i+1]);return t}_next2Power(A){return A--,A|=A>>1,A|=A>>2,A|=A>>4,A|=A>>8,A|=A>>16,++A}toString(A){let I="";for(let t=this.normalize(A).length-1;t>=0;t--)this.F.eq(A[t],this.F.zero)||(""!=I&&(I+=" + "),I+=A[t].toString(10),t>0&&(I+="x",t>1&&(I=I+"^"+t)));return I}normalize(A){const I=new Array(A.length);for(let t=0;t2*Q&&(B=this.sub(this.scaleX([this.F.one],2*Q),this.mul(n,C)));let r,E,h=[],o=g,s=!1;for(;!s;)r=this.mul(o,n),h=this.add(h,this.scaleX(r,-2*Q)),e>2*Q?(E=this.mul(o,B),o=this.scaleX(E,-2*Q),e=o.length-1):s=!0;return h}oneRoot(A,I){let t=Gi(A-1)+1,i=this.F.one,g=I;if(I>=A)throw new Error("Given 'i' should be lower than 'n'");if(1<0;)!0&g&&(i=this.F.mul(i,this.w[t])),g>>=1,t--;return i}computeVanishingPolinomial(A,I){const t=1<=0;g--)if(t.eq(A[I[g]][2],t.zero))i[g]=i[g+1],A[I[g]]=this.zero;else{const C=t.mul(i[g],i[g+1]);i[g]=t.mul(A[I[g]][2],i[g+1]);const Q=t.square(C),e=t.mul(Q,C);A[I[g]][0]=t.mul(A[I[g]][0],Q),A[I[g]][1]=t.mul(A[I[g]][1],e),A[I[g]][2]=t.one}}eq(A,I){const t=this.F;if(this.F.eq(A[2],this.F.zero))return this.F.eq(I[2],this.F.zero);if(this.F.eq(I[2],this.F.zero))return!1;const i=t.square(A[2]),g=t.square(I[2]),C=t.mul(A[0],g),Q=t.mul(I[0],i),e=t.mul(A[2],i),n=t.mul(I[2],g),B=t.mul(A[1],n),r=t.mul(I[1],e);return t.eq(C,Q)&&t.eq(B,r)}isZero(A){return this.F.isZero(A[2])}toString(A){const I=this.affine(A);return`[ ${this.F.toString(I[0])} , ${this.F.toString(I[1])} ]`}fromRng(A){const I=this.F;let t,i=[];do{i[0]=I.fromRng(A),t=A.nextBool();const g=I.add(I.mul(I.square(i[0]),i[0]),this.b);i[1]=I.sqrt(g)}while(null==i[1]||I.isZero[i]);return t^Vi(I,i[1])&&(i[1]=I.neg(i[1])),i[2]=I.one,this.cofactor&&(i=this.mulScalar(i,this.cofactor)),i=this.affine(i),i}toRprLE(A,I,t){if(t=this.affine(t),this.isZero(t)){new Uint8Array(A,I,2*this.F.n8).fill(0)}else this.F.toRprLE(A,I,t[0]),this.F.toRprLE(A,I+this.F.n8,t[1])}toRprBE(A,I,t){if(t=this.affine(t),this.isZero(t)){new Uint8Array(A,I,2*this.F.n8).fill(0)}else this.F.toRprBE(A,I,t[0]),this.F.toRprBE(A,I+this.F.n8,t[1])}toRprLEM(A,I,t){if(t=this.affine(t),this.isZero(t)){new Uint8Array(A,I,2*this.F.n8).fill(0)}else this.F.toRprLEM(A,I,t[0]),this.F.toRprLEM(A,I+this.F.n8,t[1])}toRprLEJM(A,I,t){if(t=this.affine(t),this.isZero(t)){new Uint8Array(A,I,2*this.F.n8).fill(0)}else this.F.toRprLEM(A,I,t[0]),this.F.toRprLEM(A,I+this.F.n8,t[1]),this.F.toRprLEM(A,I+2*this.F.n8,t[2])}toRprBEM(A,I,t){if(t=this.affine(t),this.isZero(t)){new Uint8Array(A,I,2*this.F.n8).fill(0)}else this.F.toRprBEM(A,I,t[0]),this.F.toRprBEM(A,I+this.F.n8,t[1])}fromRprLE(A,I){I=I||0;const t=this.F.fromRprLE(A,I),i=this.F.fromRprLE(A,I+this.F.n8);return this.F.isZero(t)&&this.F.isZero(i)?this.zero:[t,i,this.F.one]}fromRprBE(A,I){I=I||0;const t=this.F.fromRprBE(A,I),i=this.F.fromRprBE(A,I+this.F.n8);return this.F.isZero(t)&&this.F.isZero(i)?this.zero:[t,i,this.F.one]}fromRprLEM(A,I){I=I||0;const t=this.F.fromRprLEM(A,I),i=this.F.fromRprLEM(A,I+this.F.n8);return this.F.isZero(t)&&this.F.isZero(i)?this.zero:[t,i,this.F.one]}fromRprLEJM(A,I){I=I||0;const t=this.F.fromRprLEM(A,I),i=this.F.fromRprLEM(A,I+this.F.n8),g=this.F.fromRprLEM(A,I+2*this.F.n8);return this.F.isZero(t)&&this.F.isZero(i)?this.zero:[t,i,g]}fromRprBEM(A,I){I=I||0;const t=this.F.fromRprBEM(A,I),i=this.F.fromRprBEM(A,I+this.F.n8);return this.F.isZero(t)&&this.F.isZero(i)?this.zero:[t,i,this.F.one]}fromRprCompressed(A,I){const t=this.F,i=new Uint8Array(A.buffer,I,t.n8);if(64&i[0])return this.zero;const g=new Array(3),C=0!=(128&i[0]);i[0]=127&i[0],g[0]=t.fromRprBE(A,I),C&&(i[0]=128|i[0]);const Q=t.add(t.mul(t.square(g[0]),g[0]),this.b);if(g[1]=t.sqrt(Q),null===g[1])throw new Error("Invalid Point!");return C^Vi(t,g[1])&&(g[1]=t.neg(g[1])),g[2]=t.one,g}toRprCompressed(A,I,t){t=this.affine(t);const i=new Uint8Array(A.buffer,I,this.F.n8);if(this.isZero(t))return i.fill(0),void(i[0]=64);this.F.toRprBE(A,I,t[0]),Vi(this.F,t[1])&&(i[0]=128|i[0])}fromRprUncompressed(A,I){return 64&A[0]?this.zero:this.fromRprBE(A,I)}toRprUncompressed(A,I,t){this.toRprBE(A,I,t),this.isZero(t)&&(A[I]=64|A[I])}},buildBn128:async function(){if(mg)return mg;const A={name:"bn128",wasm:dA.bn128_wasm,q:Zt("21888242871839275222246405745257275088696311157297823662689037894645226208583"),r:Zt("21888242871839275222246405745257275088548364400416034343698204186575808495617"),n8q:32,n8r:32,cofactorG2:Zt("30644e72e131a029b85045b68181585e06ceecda572a2489345f2299c0f9fa8d",16),singleThread:!1};return mg=await Mg(A),mg.terminate=async function(){mg=null,await this.tm.terminate()},mg},buildBls12381:async function(){if(dg)return dg;const A={name:"bls12381",wasm:dA.bls12381_wasm,q:Zt("1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab",16),r:Zt("73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",16),n8q:48,n8r:32,cofactorG1:Zt("0x396c8c005555e1568c00aaab0000aaab",16),cofactorG2:Zt("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5",16),singleThread:!1};return dg=await Mg(A),dg.terminate=async function(){dg=null,await this.tm.terminate()},dg},ChaCha:qi});const Lg=Hg.Scalar,kg=Hg.F1Field;class Ng{constructor(A,I,t){this.memory=A,this.i32=new Uint32Array(A.buffer),this.instance=I,this.n32=(this.instance.exports.getFrLen()>>2)-2;const i=this.instance.exports.getPRawPrime(),g=new Array(this.n32);for(let A=0;A>2)+A];this.prime=Lg.fromArray(g,4294967296),this.Fr=new kg(this.prime),this.mask32=Lg.fromString("FFFFFFFF",16),this.NVars=this.instance.exports.getNVars(),this.n64=Math.floor((this.Fr.bitLength-1)/64)+1,this.R=this.Fr.e(Lg.shiftLeft(1,64*this.n64)),this.RInv=this.Fr.inv(this.R),this.sanityCheck=t}async _doCalculateWitness(A,I){this.instance.exports.init(this.sanityCheck||I?1:0);const t=this.allocInt(),i=this.allocFr();Object.keys(A).forEach(I=>{const g=Dt.fnvHash(I),C=parseInt(g.slice(0,8),16),Q=parseInt(g.slice(8,16),16);try{this.instance.exports.getSignalOffset32(t,0,C,Q)}catch(A){throw new Error(`Signal ${I} is not an input of the circuit.`)}const e=this.getInt(t),n=Dt.flatArray(A[I]);for(let A=0;A>2]}setInt(A,I){this.i32[A>>2]=I}getFr(A){const I=this,t=A>>2;if(2147483648&I.i32[t+1]){const A=new Array(I.n32);for(let i=0;i>2]=g,void(t.i32[1+(A>>2)]=0)}t.i32[A>>2]=0,t.i32[1+(A>>2)]=2147483648;const C=Lg.toArray(I,4294967296);for(let I=0;I>2)+I]=i>=0?C[i]:0}}}var bg={WitnessCalculatorBuilder:async function(A,I){I=I||{};const t=new WebAssembly.Memory({initial:2e4}),i=await WebAssembly.compile(A);let g;const C=await WebAssembly.instantiate(i,{env:{memory:t},runtime:{error:function(A,I,t,i,C,Q){let n;throw n=7==A?e(I)+" "+g.getFr(i).toString()+" != "+g.getFr(C).toString()+" "+e(Q):e(I)+" "+t+" "+i+" "+C+" "+Q,console.log("ERROR: ",A,n),new Error(n)},log:function(A){console.log(g.getFr(A).toString())},logGetSignal:function(A,t){I.logGetSignal&&I.logGetSignal(A,g.getFr(t))},logSetSignal:function(A,t){I.logSetSignal&&I.logSetSignal(A,g.getFr(t))},logStartComponent:function(A){I.logStartComponent&&I.logStartComponent(A)},logFinishComponent:function(A){I.logFinishComponent&&I.logFinishComponent(A)}}}),Q=I&&(I.sanityCheck||I.logGetSignal||I.logSetSignal||I.logStartComponent||I.logFinishComponent);return g=new Ng(t,C,Q),g;function e(A){const I=new Uint8Array(t.buffer),i=[];for(let t=0;I[A+t]>0;t++)i.push(I[A+t]);return String.fromCharCode.apply(null,i)}}};const{WitnessCalculatorBuilder:Sg}=bg;async function Rg(A,I,t,i){const g=await lI(I),C=await g.read(g.totalSize);await g.close();const Q=await Sg(C),e=await Q.calculateBinWitness(A),n=await MI(t,"wtns",2,2);await async function(A,I,t){await mI(A,1);const i=8*(Math.floor((BI.bitLength(t)-1)/64)+1);if(await A.writeULE32(i),await HI(A,t,i),I.byteLength%i!=0)throw new Error("Invalid witness length");await A.writeULE32(I.byteLength/i),await dI(A),await mI(A,2),await A.write(I),await dI(A)}(n,e,Q.prime),await n.close()}const{unstringifyBigInts:Jg}=rI;var vg=Object.freeze({__proto__:null,fullProve:async function(A,I,t,i){const g={type:"mem"};return await Rg(A,I,g),await ft(t,g)},prove:ft,verify:async function(A,I,t,i){A=Jg(A),t=Jg(t),I=Jg(I);const g=await async function(A){let I;const t=A.toUpperCase().match(/[A-Za-z0-9]+/g).join("");if(["BN128","BN254","ALTBN128"].indexOf(t)>=0)I=await eI();else{if(!(["BLS12381"].indexOf(t)>=0))throw new Error("Curve not supported: "+A);I=await nI()}return I}(A.curve),C=g.G1.fromObject(A.IC[0]),Q=new Uint8Array(2*g.G1.F.n8*I.length),e=new Uint8Array(g.Fr.n8*I.length);for(let t=0;t1)throw new Error(A.fileName+": File has more than one header");A.pos=I[1][0].p;const t=await A.readULE32(),i=await A.read(t),g=BI.fromRprLE(i),C=await JI(g);if(8*C.F1.n64!=t)throw new Error(A.fileName+": Invalid size");const Q=await A.readULE32(),e=await A.readULE32();if(A.pos-I[1][0].p!=I[1][0].size)throw new Error("Invalid PTau header size");return{curve:C,power:Q,ceremonyPower:e}}function Zg(A,I,t,i){const g={tau:{},alpha:{},beta:{}};return g.tau.g1_s=C(),g.tau.g1_sx=C(),g.alpha.g1_s=C(),g.alpha.g1_sx=C(),g.beta.g1_s=C(),g.beta.g1_sx=C(),g.tau.g2_spx=Q(),g.alpha.g2_spx=Q(),g.beta.g2_spx=Q(),g;function C(){let g;return g=i?t.G1.fromRprLEM(A,I):t.G1.fromRprUncompressed(A,I),I+=2*t.G1.F.n8,g}function Q(){let g;return g=i?t.G2.fromRprLEM(A,I):t.G2.fromRprUncompressed(A,I),I+=2*t.G2.F.n8,g}}function jg(A,I,t,i,g){async function C(i){g?t.G1.toRprLEM(A,I,i):t.G1.toRprUncompressed(A,I,i),I+=2*t.F1.n8}async function Q(i){g?t.G2.toRprLEM(A,I,i):t.G2.toRprUncompressed(A,I,i),I+=2*t.F2.n8}return C(i.tau.g1_s),C(i.tau.g1_sx),C(i.alpha.g1_s),C(i.alpha.g1_sx),C(i.beta.g1_s),C(i.beta.g1_sx),Q(i.tau.g2_spx),Q(i.alpha.g2_spx),Q(i.beta.g2_spx),A}async function Kg(A,I){const t={};t.tauG1=await n(),t.tauG2=await B(),t.alphaG1=await n(),t.betaG1=await n(),t.betaG2=await B(),t.key=await async function(A,I,t){return Zg(await A.read(2*I.F1.n8*6+2*I.F2.n8*3),0,I,t)}(A,I,!0),t.partialHash=await A.read(216),t.nextChallenge=await A.read(64),t.type=await A.readULE32();const i=new Uint8Array(2*I.G1.F.n8*6+2*I.G2.F.n8*3);jg(i,0,I,t.key,!1);const g=OI(64);g.setPartialHash(t.partialHash),g.update(i),t.responseHash=g.digest();const C=await A.readULE32(),Q=A.pos;let e=0;for(;A.pos-Q1)throw new Error(A.fileName+": File has more than one contributions section");A.pos=t[7][0].p;const i=await A.readULE32(),g=[];for(let t=0;t0){const I=new Uint8Array(C);await A.writeULE32(I.byteLength),await A.write(I)}else await A.writeULE32(0);async function Q(t){I.G1.toRprLEM(i,0,t),await A.write(i)}async function e(t){I.G2.toRprLEM(g,0,t),await A.write(g)}}async function Wg(A,I,t){await A.writeULE32(7);const i=A.pos;await A.writeULE64(0),await A.writeULE32(t.length);for(let i=0;i0?r[r.length-1].nextChallenge:Tg(n,B,C);const D=await MI(t,"ptau",1,7);await Og(D,n,B);const c=await f.read(64);if(!zI(c,w))throw new Error("Wrong contribution. this contribution is not based on the previus hash");const u=new OI(64);u.update(c);const y=[];let p;p=await m(f,D,"G1",2,2*(1<=t&&I1?n[n.length-2]:B;const E=n[n.length-1];if(I&&I.debug("Validating contribution #"+n[n.length-1].id),!await AC(C,E,r,I))return!1;const h=OI(64);h.update(E.responseHash),I&&I.debug("Verifying powers in tau*G1 section");const o=await u(2,"G1","tauG1",2*(1<1)throw A.error("File has no BetaG2 section"),new Error("File has more than one GetaG2 section");i.pos=g[6][0].p;const e=await i.read(t),n=I.fromRprLEM(e);return I.toRprUncompressed(Q,0,n),h.update(Q),n}(I);if(!C.G2.eq(E.betaG2,w))return I&&I.error("betaG2 element in betaG2 section does not match the one in the contribution section"),!1;const D=h.digest();if(!zI(D,E.nextChallenge))return I&&I.error("Hash of the values does not match the next challenge of the last contributor in the contributions section"),!1;I&&I.info(VI(D,"Next challenge hash: ")),c(E,r);for(let A=n.length-2;A>=0;A--){const t=n[A],i=A>0?n[A-1]:B;if(!await AC(C,t,i,I))return!1;c(t,i)}if(I&&I.info("-----------------------------------------------------"),g[12]&&g[13]&&g[14]&&g[15]){let A;if(A=await y("G1",2,12,"tauG1",I),!A)return!1;if(A=await y("G2",3,13,"tauG2",I),!A)return!1;if(A=await y("G1",4,14,"alphaTauG1",I),!A)return!1;if(A=await y("G1",5,15,"betaTauG1",I),!A)return!1}else I&&I.warn('this file does not contain phase2 precalculated values. Please run: \n snarkjs "powersoftau preparephase2" to prepare this file to be used in the phase2 ceremony.');return await i.close(),!0;function c(A,t){if(!I)return;I.info("-----------------------------------------------------"),I.info(`Contribution #${A.id}: ${A.name||""}`),I.info(VI(A.nextChallenge,"Next Challenge: "));const i=new Uint8Array(2*C.G1.F.n8*6+2*C.G2.F.n8*3);jg(i,0,C,A.key,!1);const g=OI(64);g.setPartialHash(A.partialHash),g.update(i);const Q=g.digest();I.info(VI(Q,"Response Hash:")),I.info(VI(t.nextChallenge,"Response Hash:")),1==A.type&&(I.info("Beacon generator: "+It(A.beaconHash)),I.info("Beacon iterations Exp: "+A.numIterationsExp))}async function u(A,I,t,Q,e,n){const B=C[I],r=2*B.F.n8;await GI(i,g,A);const E=[];let o=B.zero,s=B.zero,a=B.zero;for(let A=0;A0){const A=B.fromRprLEM(g,0),I=DA.randomBytes(4).readUInt32BE(0,!0);o=B.add(o,B.timesScalar(a,I)),s=B.add(s,B.timesScalar(A,I))}const w=await B.multiExpAffine(g.slice(0,(I-1)*r),f),D=await B.multiExpAffine(g.slice(r),f);o=B.add(o,w),s=B.add(s,D),a=B.fromRprLEM(g,(I-1)*r);for(let t=0;t=A&&i1;)B/=2,r+=1;if(1<{g.debug(I+".g1_s: "+A.G1.toString(f[I].g1_s,16)),g.debug(I+".g1_sx: "+A.G1.toString(f[I].g1_sx,16)),g.debug(I+".g2_sp: "+A.G2.toString(f[I].g2_sp,16)),g.debug(I+".g2_spx: "+A.G2.toString(f[I].g2_spx,16)),g.debug("")});const w=OI(64);await h.write(a),w.update(a),await tC(C,h,w,A,"G1",2*(1<=256)return C&&C.error("Maximum lenght of beacon hash is 255 bytes"),!1;if((g=parseInt(g))<10||g>63)return C&&C.error("Invalid numIterationsExp. (Must be between 10 and 63)"),!1;await OI.ready();const{fd:e,sections:n}=await FI(A,"ptau",1),{curve:B,power:r,ceremonyPower:E}=await Xg(e,n);if(r!=E)return C&&C.error("This file has been reduced. You cannot contribute into a reduced file."),!1;n[12]&&C&&C.warn("Contributing into a file that has phase2 calculated. You will have to prepare phase2 again.");const h=await Vg(e,B,n),o={name:t,type:1,numIterationsExp:g,beaconHash:Q};let s;s=h.length>0?h[h.length-1].nextChallenge:Tg(B,r,C),o.key=_g(B,s,Q,g);const a=new OI(64);a.update(s);const f=await MI(I,"ptau",1,7);await Og(f,B,r);const w=[];let D;D=await p(2,"G1",2*(1<0?r[r.length-1].nextChallenge:Tg(e,n,g),E.key=xg(e,h,o);const s=new OI(64);s.update(h);const a=await MI(I,"ptau",1,7);await Og(a,e,n);const f=[];let w;w=await y(2,"G1",2*(1<16?16:I,E=1<16?16:A),h=(1<>BigInt(I)}const BC=eC,rC=nC;var EC=Object.freeze({__proto__:null,fromString:CC,e:QC,fromArray:function(A,I){let t=0n;I=BigInt(I);for(let i=0;i>=1n}return t},bits:function(A){let I=BigInt(A);const t=[];for(;I;)1n&I?t.push(1):t.push(0),I>>=1n;return t},toNumber:function(A){if(A>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("Number too big");return Number(A)},toArray:function(A,I){const t=[];let i=BigInt(A);for(I=BigInt(I);i;)t.unshift(Number(i%I)),i/=I;return t},add:function(A,I){return BigInt(A)+BigInt(I)},sub:function(A,I){return BigInt(A)-BigInt(I)},neg:function(A){return-BigInt(A)},mul:function(A,I){return BigInt(A)*BigInt(I)},square:function(A){return BigInt(A)*BigInt(A)},pow:function(A,I){return BigInt(A)**BigInt(I)},exp:function(A,I){return BigInt(A)**BigInt(I)},abs:function(A){return BigInt(A)>=0?BigInt(A):-BigInt(A)},div:function(A,I){return BigInt(A)/BigInt(I)},mod:function(A,I){return BigInt(A)%BigInt(I)},eq:function(A,I){return BigInt(A)==BigInt(I)},neq:function(A,I){return BigInt(A)!=BigInt(I)},lt:function(A,I){return BigInt(A)BigInt(I)},leq:function(A,I){return BigInt(A)<=BigInt(I)},geq:function(A,I){return BigInt(A)>=BigInt(I)},band:function(A,I){return BigInt(A)&BigInt(I)},bor:function(A,I){return BigInt(A)|BigInt(I)},bxor:function(A,I){return BigInt(A)^BigInt(I)},land:function(A,I){return BigInt(A)&&BigInt(I)},lor:function(A,I){return BigInt(A)||BigInt(I)},lnot:function(A){return!BigInt(A)}});function hC(A,I){return"string"==typeof A&&"0x"==A.slice(0,2)?r(A.slice(2),16):r(A,I)}const oC=hC;function sC(A,I){return r(A).shiftLeft(I)}function aC(A,I){return r(A).shiftRight(I)}const fC=sC,wC=aC;var DC=Object.freeze({__proto__:null,fromString:hC,e:oC,fromArray:function(A,I){return r.fromArray(A,I)},bitLength:function(A){return r(A).bitLength()},isNegative:function(A){return r(A).isNegative()},isZero:function(A){return r(A).isZero()},shiftLeft:sC,shiftRight:aC,shl:fC,shr:wC,isOdd:function(A){return r(A).isOdd()},naf:function(A){let I=r(A);const t=[];for(;I.gt(r.zero);){if(I.isOdd()){const A=2-I.mod(4).toJSNumber();t.push(A),I=I.minus(A)}else t.push(0);I=I.shiftRight(1)}return t},bits:function(A){let I=r(A);const t=[];for(;I.gt(r.zero);)I.isOdd()?t.push(1):t.push(0),I=I.shiftRight(1);return t},toNumber:function(A){if(!A.lt(r("9007199254740992",10)))throw new Error("Number too big");return A.toJSNumber()},toArray:function(A,I){return r(A).toArray(I)},add:function(A,I){return r(A).add(r(I))},sub:function(A,I){return r(A).minus(r(I))},neg:function(A){return r.zero.minus(r(A))},mul:function(A,I){return r(A).times(r(I))},square:function(A){return r(A).square()},pow:function(A,I){return r(A).pow(r(I))},exp:function(A,I){return r(A).pow(r(I))},abs:function(A){return r(A).abs()},div:function(A,I){return r(A).divide(r(I))},mod:function(A,I){return r(A).mod(r(I))},eq:function(A,I){return r(A).eq(r(I))},neq:function(A,I){return r(A).neq(r(I))},lt:function(A,I){return r(A).lt(r(I))},gt:function(A,I){return r(A).gt(r(I))},leq:function(A,I){return r(A).leq(r(I))},geq:function(A,I){return r(A).geq(r(I))},band:function(A,I){return r(A).and(r(I))},bor:function(A,I){return r(A).or(r(I))},bxor:function(A,I){return r(A).xor(r(I))},land:function(A,I){return!r(A).isZero()&&!r(I).isZero()},lor:function(A,I){return!r(A).isZero()||!r(I).isZero()},lnot:function(A){return r(A).isZero()}});const cC="function"==typeof BigInt;let uC={};cC?Object.assign(uC,EC):Object.assign(uC,DC),uC.toRprLE=function(A,I,t,i){const g="0000000"+t.toString(16),C=new Uint32Array(A.buffer,I,i/4),Q=1+(4*(g.length-7)-1>>5);for(let A=0;A>5);for(let A=0;Ag[g.length-I-1]=A.toString(16).padStart(8,"0")),uC.fromString(g.join(""),16)},uC.fromRprBE=function(A,I,t){t=t||A.byteLength;const i=new DataView(A.buffer,I,t),g=new Array(t/4);for(let A=0;A>=1;return t}function aQ(A,I,t){if(bC(t))return A.one;const i=PC(t);if(0==i.legth)return A.one;let g=I;for(let t=i.length-2;t>=0;t--)g=A.square(g),i[t]&&(g=A.mul(g,I));return g}function fQ(A){if(A.m%2==1)if(AQ($C(A.p,4),1))if(AQ($C(A.p,8),1))if(AQ($C(A.p,16),1))!function(A){A.sqrt_q=zC(A.p,A.m),A.sqrt_s=0,A.sqrt_t=ZC(A.sqrt_q,1);for(;!qC(A.sqrt_t);)A.sqrt_s=A.sqrt_s+1,A.sqrt_t=_C(A.sqrt_t,2);let I=A.one;for(;A.eq(I,A.one);){const t=A.random();A.sqrt_z=A.pow(t,A.sqrt_t),I=A.pow(A.sqrt_z,1<>>0;else DA.randomFillSync(I);return I}class DQ{constructor(A){this.type="F1",this.one=1n,this.zero=0n,this.p=BigInt(A),this.m=1,this.negone=this.p-1n,this.two=2n,this.half=this.p>>1n,this.bitLength=kC(this.p),this.mask=(1n<>1n;this.nqr=this.two;let t=this.pow(this.nqr,I);for(;!this.eq(t,this.negone);)this.nqr=this.nqr+1n,t=this.pow(this.nqr,I);for(this.s=0,this.t=this.negone;0n==(1n&this.t);)this.s=this.s+1,this.t=this.t>>1n;this.nqr_to_t=this.pow(this.nqr,this.t),fQ(this)}e(A,I){let t;if(I?16==I&&(t=BigInt("0x"+A)):t=BigInt(A),t<0){let A=-t;return A>=this.p&&(A%=this.p),this.p-A}return t>=this.p?t%this.p:t}add(A,I){const t=A+I;return t>=this.p?t-this.p:t}sub(A,I){return A>=I?A-I:this.p-I+A}neg(A){return A?this.p-A:A}mul(A,I){return A*I%this.p}mulScalar(A,I){return A*this.e(I)%this.p}square(A){return A*A%this.p}eq(A,I){return A==I}neq(A,I){return A!=I}lt(A,I){return(A>this.half?A-this.p:A)<(I>this.half?I-this.p:I)}gt(A,I){return(A>this.half?A-this.p:A)>(I>this.half?I-this.p:I)}leq(A,I){return(A>this.half?A-this.p:A)<=(I>this.half?I-this.p:I)}geq(A,I){return(A>this.half?A-this.p:A)>=(I>this.half?I-this.p:I)}div(A,I){return this.mul(A,this.inv(I))}idiv(A,I){if(!I)throw new Error("Division by zero");return A/I}inv(A){if(!A)throw new Error("Division by zero");let I=0n,t=this.p,i=1n,g=A%this.p;for(;g;){let A=t/g;[I,i]=[i,I-A*i],[t,g]=[g,t-A*g]}return I<0n&&(I+=this.p),I}mod(A,I){return A%I}pow(A,I){return aQ(this,A,I)}exp(A,I){return aQ(this,A,I)}band(A,I){const t=A&I&this.mask;return t>=this.p?t-this.p:t}bor(A,I){const t=(A|I)&this.mask;return t>=this.p?t-this.p:t}bxor(A,I){const t=(A^I)&this.mask;return t>=this.p?t-this.p:t}bnot(A){const I=A^this.mask;return I>=this.p?I-this.p:I}shl(A,I){if(Number(I)=this.p?t-this.p:t}{const t=this.p-I;return Number(t)>t:0n}}shr(A,I){if(Number(I)>I;{const t=this.p-I;if(Number(t)=this.p?I-this.p:I}return 0}}land(A,I){return A&&I?1n:0n}lor(A,I){return A||I?1n:0n}lnot(A){return A?0n:1n}sqrt_old(A){if(0n==A)return this.zero;if(1n!=this.pow(A,this.negone>>this.one))return null;let I=this.s,t=this.nqr_to_t,i=this.pow(A,this.t),g=this.pow(A,this.add(this.t,this.one)>>1n);for(;1n!=i;){let A=this.square(i),C=1;for(;1n!=A;)C++,A=this.square(A);let Q=t;for(let A=0;Athis.p>>1n&&(g=this.neg(g)),g}normalize(A,I){if((A=BigInt(A,I))<0){let I=-A;return I>=this.p&&(I%=this.p),this.p-I}return A>=this.p?A%this.p:A}random(){const A=2*this.bitLength/8;let I=0n;for(let t=0;tthis.half){t="-"+(this.p-A).toString(I)}else t=A.toString(I);return t}isZero(A){return 0n==A}fromRng(A){let I;do{I=0n;for(let t=0;t=this.p);return I=I*this.Ri%this.p,I}}class cQ{constructor(A){this.type="F1",this.one=r.one,this.zero=r.zero,this.p=r(A),this.m=1,this.negone=this.p.minus(r.one),this.two=r(2),this.half=this.p.shiftRight(1),this.bitLength=this.p.bitLength(),this.mask=r.one.shiftLeft(this.bitLength).minus(r.one),this.n64=Math.floor((this.bitLength-1)/64)+1,this.n32=2*this.n64,this.n8=8*this.n64,this.R=r.one.shiftLeft(64*this.n64),this.Ri=this.inv(this.R);const I=this.negone.shiftRight(this.one);this.nqr=this.two;let t=this.pow(this.nqr,I);for(;!t.equals(this.negone);)this.nqr=this.nqr.add(this.one),t=this.pow(this.nqr,I);for(this.s=this.zero,this.t=this.negone;!this.t.isOdd();)this.s=this.s.add(this.one),this.t=this.t.shiftRight(this.one);this.nqr_to_t=this.pow(this.nqr,this.t),fQ(this)}e(A,I){const t=r(A,I);return this.normalize(t)}add(A,I){let t=A.add(I);return t.geq(this.p)&&(t=t.minus(this.p)),t}sub(A,I){return A.geq(I)?A.minus(I):this.p.minus(I.minus(A))}neg(A){return A.isZero()?A:this.p.minus(A)}mul(A,I){return A.times(I).mod(this.p)}mulScalar(A,I){return A.times(r(I)).mod(this.p)}square(A){return A.square().mod(this.p)}eq(A,I){return A.eq(I)}neq(A,I){return A.neq(I)}lt(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.lt(i)}gt(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.gt(i)}leq(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.leq(i)}geq(A,I){const t=A.gt(this.half)?A.minus(this.p):A,i=I.gt(this.half)?I.minus(this.p):I;return t.geq(i)}div(A,I){if(I.isZero())throw new Error("Division by zero");return A.times(I.modInv(this.p)).mod(this.p)}idiv(A,I){if(I.isZero())throw new Error("Division by zero");return A.divide(I)}inv(A){if(A.isZero())throw new Error("Division by zero");return A.modInv(this.p)}mod(A,I){return A.mod(I)}pow(A,I){return A.modPow(I,this.p)}exp(A,I){return A.modPow(I,this.p)}band(A,I){return A.and(I).and(this.mask).mod(this.p)}bor(A,I){return A.or(I).and(this.mask).mod(this.p)}bxor(A,I){return A.xor(I).and(this.mask).mod(this.p)}bnot(A){return A.xor(this.mask).mod(this.p)}shl(A,I){if(I.lt(this.bitLength))return A.shiftLeft(I).and(this.mask).mod(this.p);{const t=this.p.minus(I);return t.lt(this.bitLength)?this.shr(A,t):r.zero}}shr(A,I){if(I.lt(this.bitLength))return A.shiftRight(I);{const t=this.p.minus(I);return t.lt(this.bitLength)?this.shl(A,t):r.zero}}land(A,I){return A.isZero()||I.isZero()?r.zero:r.one}lor(A,I){return A.isZero()&&I.isZero()?r.zero:r.one}lnot(A){return A.isZero()?r.one:r.zero}sqrt_old(A){if(A.equals(this.zero))return this.zero;if(!this.pow(A,this.negone.shiftRight(this.one)).equals(this.one))return null;let I=parseInt(this.s),t=this.nqr_to_t,i=this.pow(A,this.t),g=this.pow(A,this.add(this.t,this.one).shiftRight(this.one));for(;!i.equals(this.one);){let A=this.square(i),C=1;for(;!A.equals(this.one);)C++,A=this.square(A);let Q=t;for(let A=0;A{t[i]=A(I[i])}),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return BigInt(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){if(null===I)return null;const t={};return Object.keys(I).forEach(i=>{t[i]=A(I[i])}),t}return I},beBuff2int:function(A){let I=0n,t=A.length,i=0;const g=new DataView(A.buffer);for(;t>0;)t>=4?(t-=4,I+=BigInt(g.getUint32(t))<=2?(t-=2,I+=BigInt(g.getUint16(t))<0;)C-4>=0?(C-=4,g.setUint32(C,Number(0xFFFFFFFFn&t)),t>>=32n):C-2>=0?(C-=2,g.setUint16(C,Number(0xFFFFn&t)),t>>=16n):(C-=1,g.setUint8(C,Number(0xFFn&t)),t>>=8n);if(t)throw new Error("Number does not fit in this length");return i},leBuff2int:function(A){let I=0n,t=0;const i=new DataView(A.buffer);for(;t>=32n):C+2<=I?(i.setUint16(Number(C,0xFFFFn&t),!0),C+=2,t>>=16n):(i.setUint8(Number(C,0xFFn&t),!0),C+=1,t>>=8n);if(t)throw new Error("Number does not fit in this length");return i}});var FQ=Object.freeze({__proto__:null,stringifyBigInts:function A(I){if("bigint"==typeof I||void 0!==I.eq)return I.toString(10);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach(i=>{t[i]=A(I[i])}),t}return I},unstringifyBigInts:function A(I){if("string"==typeof I&&/^[0-9]+$/.test(I))return r(I);if(Array.isArray(I))return I.map(A);if("object"==typeof I){const t={};return Object.keys(I).forEach(i=>{t[i]=A(I[i])}),t}return I},beBuff2int:function(A){let I=r.zero;for(let t=0;t=0;){let A=Number(t.and(r("255")));g[i]=A,i--,t=t.shiftRight(8)}if(!t.eq(r.zero))throw new Error("Number does not fit in this length");return g},leBuff2int:function(A){let I=r.zero;for(let t=0;t>=1;return t}MQ.bitReverse=function(A,I){return(mQ[A>>>24]|mQ[A>>>16&255]<<8|mQ[A>>>8&255]<<16|mQ[255&A]<<24)>>>32-I},MQ.log2=function(A){return(0!=(4294901760&A)?(A&=4294901760,16):0)|(0!=(4278255360&A)?(A&=4278255360,8):0)|(0!=(4042322160&A)?(A&=4042322160,4):0)|(0!=(3435973836&A)?(A&=3435973836,2):0)|0!=(2863311530&A)},MQ.buffReverseBits=function(A,I){const t=A.byteLength/I,i=MQ.log2(t);if(t!=1<t){const i=A.slice(g*I,(g+1)*I);A.set(A.slice(t*I,(t+1)*I),g*I),A.set(i,t*I)}}};const GQ=hQ;class UQ{constructor(A,I,t,i){for(this.fileName=i,this.fd=A,this.pos=0,this.pageBits=8,this.pageSize=1<{I.pendingLoads.push({page:A,resolve:t,reject:i}),setImmediate(I._triggerLoad.bind(I))})}_triggerLoad(){const A=this;if(function(){const I=[];for(let t=0;t=A.maxPagesLoaded){const I=function(){for(let I in A.pages){const t=A.pages[I];if(0==t.dirty&&0==t.pendingOps)return I}return-1}();if(I<0)return;delete A.pages[I]}const I=A.pendingLoads.shift();if(I.page>=A.totalPages)return A.pages[I.page]={dirty:!1,buff:new Uint8Array(A.pageSize),pendingOps:1,size:0},I.resolve(),void setImmediate(A._triggerLoad.bind(A));if(A.reading)return void A.pendingLoads.unshift(I);A.reading=!0;const t={dirty:!1,buff:new Uint8Array(A.pageSize),pendingOps:1,size:0};A.fd.read(t.buff,0,A.pageSize,I.page*A.pageSize).then(i=>{t.size=i.bytesRead,A.pages[I.page]=t,A.reading=!1,I.resolve(),setImmediate(A._triggerLoad.bind(A))},A=>{I.reject(A)})}_triggerWrite(){const A=this;if(A.writing)return;const I=A._getDirtyPage();I<0?A.pendingClose&&A.pendingClose():(A.writing=!0,A.pages[I].dirty=!1,A.fd.write(A.pages[I].buff,0,A.pages[I].size,I*A.pageSize).then(()=>{A.writing=!1,setImmediate(A._triggerWrite.bind(A)),setImmediate(A._triggerLoad.bind(A))},I=>{console.log("ERROR Writing: "+I),A.error=I,A._tryClose()}))}_getDirtyPage(){for(let A in this.pages)if(this.pages[A].dirty)return A;return-1}async write(A,I){if(0==A.byteLength)return;const t=this;if(A.byteLength>t.pageSize*t.maxPagesLoaded*.8){const I=Math.floor(1.1*A.byteLength);this.maxPagesLoaded=Math.floor(I/t.pageSize)+1}if(void 0===I&&(I=t.pos),t.pos=I+A.byteLength,t.totalSize0;){const I=Q+e>t.pageSize?t.pageSize-Q:e,i=new Uint8Array(A.buffer,A.byteLength-e,I);new Uint8Array(t.pages[C].buff.buffer,Q,I).set(i),t.pages[C].dirty=!0,t.pages[C].pendingOps--,t.pages[C].size=Math.max(Q+I,t.pages[C].size),C>=t.totalPages&&(t.totalPages=C+1),e-=I,C++,Q=0}setImmediate(t._triggerWrite.bind(t))}async read(A,I){if(0==A)return new Uint8Array(0);const t=this;if(A>t.pageSize*t.maxPagesLoaded*.8){const I=Math.floor(1.1*A);this.maxPagesLoaded=Math.floor(I/t.pageSize)+1}if(void 0===I&&(I=t.pos),t.pos=I+A,t.pendingClose)throw new Error("Reading a closing file");const i=Math.floor(I/t.pageSize),g=Math.floor((I+A-1)/t.pageSize);for(let A=i;A<=g;A++)await t._loadPage(A);let C=new Uint8Array(A),Q=new Uint8Array(C),e=i,n=I%t.pageSize,B=I+A>t.totalSize?A-(I+A-t.totalSize):A;for(;B>0;){const A=n+B>t.pageSize?t.pageSize-n:B,I=new Uint8Array(t.pages[e].buff.buffer,n,A);C.set(I,Q.byteLength-B),t.pages[e].pendingOps--,B-=A,e++,n=0}return setImmediate(t._triggerLoad.bind(t)),C}_tryClose(){const A=this;if(!A.pendingClose)return;A.error&&A.pendingCloseReject(A.error);A._getDirtyPage()>=0||A.writing||A.reading||A.pendingLoads.length>0||A.pendingClose()}close(){const A=this;if(A.pendingClose)throw new Error("Closing the file twice");return new Promise((I,t)=>{A.pendingClose=I,A.pendingCloseReject=t,A._tryClose()}).then(()=>{A.fd.close()},I=>{throw A.fd.close(),I})}async discard(){await this.close(),await DA.promises.unlink(this.fileName)}async writeULE32(A,I){const t=Uint32Array.of(A);await this.write(new Uint8Array(t.buffer),I)}async writeUBE32(A,I){const t=new Uint8Array(4);new DataView(t.buffer).setUint32(0,A,!1),await this.write(t,I)}async writeULE64(A,I){const t=Uint32Array.of(4294967295&A,Math.floor(A/4294967296));await this.write(new Uint8Array(t.buffer),I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),t=new Uint32Array(I.buffer);return 4294967296*t[1]+t[0]}}class HQ{constructor(){this.pageSize=16384}_resizeIfNeeded(A){if(A>this.allocSize){const I=Math.max(this.allocSize+(1<<20),Math.floor(1.1*this.allocSize),A),t=new Uint8Array(I);t.set(this.o.data),this.o.data=t,this.allocSize=I}}async write(A,I){if(void 0===I&&(I=this.pos),this.readOnly)throw new Error("Writing a read only file");this._resizeIfNeeded(I+A.byteLength),this.o.data.set(A,I),I+A.byteLength>this.totalSize&&(this.totalSize=I+A.byteLength),this.pos=I+A.byteLength}async read(A,I){if(void 0===I&&(I=this.pos),this.readOnly&&I+A>this.totalSize)throw new Error("Reading out of bounds");this._resizeIfNeeded(I+A);const t=this.o.data.slice(I,I+A);return this.pos=I+A,t}close(){this.o.data.byteLength!=this.totalSize&&(this.o.data=this.o.data.slice(0,this.totalSize))}async discard(){}async writeULE32(A,I){const t=Uint32Array.of(A);await this.write(new Uint8Array(t.buffer),I)}async writeUBE32(A,I){const t=new Uint8Array(4);new DataView(t.buffer).setUint32(0,A,!1),await this.write(t,I)}async writeULE64(A,I){const t=Uint32Array.of(4294967295&A,Math.floor(A/4294967296));await this.write(new Uint8Array(t.buffer),I)}async readULE32(A){const I=await this.read(4,A);return new Uint32Array(I.buffer)[0]}async readUBE32(A){const I=await this.read(4,A);return new DataView(I.buffer).getUint32(0,!1)}async readULE64(A){const I=await this.read(8,A),t=new Uint32Array(I.buffer);return 4294967296*t[1]+t[0]}}async function LQ(A,I){if(A instanceof Uint8Array&&(A={type:"mem",data:A}),"string"==typeof A){A={type:"mem",data:await fetch(A).then((function(A){return A.arrayBuffer()})).then((function(A){return new Uint8Array(A)}))}}if("file"==A.type)return await async function(A,I,t){if(t=t||262144,["w+","wx+","r","ax+","a+"].indexOf(I)<0)throw new Error("Invalid open option");const i=await DA.promises.open(A,I),g=await i.stat();return new UQ(i,g,t,A)}(A.fileName,"r",A.cacheSize);if("mem"==A.type)return await function(A){const I=new HQ;return I.o=A,I.allocSize=A.data.byteLength,I.totalSize=A.data.byteLength,I.readOnly=!0,I.pos=0,I}(A);throw new Error("Invalid FastFile type: "+A.type)}async function kQ(A,I,t){if(void 0!==A.readingSection)throw new Error("Already reading a section");if(!I[t])throw new Error(A.fileName+": Missing section "+t);if(I[t].length>1)throw new Error(A.fileName+": Section Duplicated "+t);A.pos=I[t][0].p,A.readingSection=I[t][0]}async function NQ(A,I){if(void 0===A.readingSection)throw new Error("Not reading a section");if(!I&&A.pos-A.readingSection.p!=A.readingSection.size)throw new Error("Invalid section size");delete A.readingSection}async function bQ(A,I,t){const i=await A.read(I,t);return GQ.fromRprLE(i,0,I)}async function SQ(A,I){const t={};return await kQ(A,I,1),t.n8=await A.readULE32(),t.prime=await bQ(A,t.n8),t.Fr=new pQ(t.prime),t.nVars=await A.readULE32(),t.nOutputs=await A.readULE32(),t.nPubInputs=await A.readULE32(),t.nPrvInputs=await A.readULE32(),t.nLabels=await A.readULE64(),t.nConstraints=await A.readULE32(),await NQ(A),t}async function RQ(A,I,t){const{fd:i,sections:g}=await async function(A,I,t){const i=await LQ(A),g=await i.read(4);let C="";for(let A=0;A<4;A++)C+=String.fromCharCode(g[A]);if(C!=I)throw new Error(A+": Invalid File format");if(await i.readULE32()>t)throw new Error("Version not supported");const Q=await i.readULE32();let e=[];for(let A=0;A{let i="";return Object.keys(t).forEach(g=>{let C=I.varIdx2Name[g];"one"==C&&(C="");let Q=A.Fr.toString(t[g]);"1"==Q&&(Q=""),"-1"==Q&&(Q="-"),""!=i&&"-"!=Q[0]&&(Q="+"+Q),""!=i&&(Q=" "+Q),i=i+Q+C}),i},C=`[ ${g(i[0])} ] * [ ${g(i[1])} ] - [ ${g(i[2])} ] = 0`;t&&t.info(C)}},info:async function(A,I){const t=await RQ(A);return BI.eq(t.prime,vQ)?I&&I.info("Curve: bn-128"):BI.eq(t.prime,JQ)?I&&I.info("Curve: bls12-381"):I&&I.info("Unknown Curve. Prime: "+BI.toString(t.prime)),I&&I.info("# of Wires: "+t.nVars),I&&I.info("# of Constraints: "+t.nConstraints),I&&I.info("# of Private Inputs: "+t.nPrvInputs),I&&I.info("# of Public Inputs: "+t.nPubInputs),I&&I.info("# of Outputs: "+t.nOutputs),t},exportJson:async function(A,I){return await RQ(A,!0,!0)}});async function YQ(A){const I={labelIdx2Name:["one"],varIdx2Name:["one"],componentIdx2Name:[]},t=await lI(A),i=await t.read(t.totalSize),g=new TextDecoder("utf-8").decode(i).split("\n");for(let A=0;AE+1)return i&&i.error(`circuit too big for this power of tau ceremony. ${e.nConstraints}*2 > 2**${E}`),-1;if(!B[12])return i&&i.error("Powers of tau is not prepared."),-1;const f=e.nOutputs+e.nPubInputs,w=1<h.contributions.length)return g&&g.error("The impoerted file does not include new contributions"),!1;for(let A=0;A=0;A--){const I=r.contributions[A];i&&i.info("-------------------------"),i&&i.info(VI(I.contributionHash,`contribution #${A+1} ${I.name?I.name:""}:`)),1==I.type&&(i&&i.info("Beacon generator: "+It(I.beaconHash)),i&&i.info("Beacon iterations Exp: "+I.numIterationsExp))}return i&&i.info("-------------------------"),i&&i.info("ZKey Ok!"),!0;async function c(A,I){const t=2*n.G1.F.n8,i=A.byteLength/t,g=n.tm.concurrency,C=Math.floor(i/g),Q=[];for(let t=0;t=256)return C&&C.error("Maximum lenght of beacon hash is 255 bytes"),!1;if((g=parseInt(g))<10||g>63)return C&&C.error("Invalid numIterationsExp. (Must be between 10 and 63)"),!1;const{fd:e,sections:n}=await FI(A,"zkey",2),B=await et(e,n,"groth16"),r=await JI(B.q),E=await Bt(e,r,n),h=await MI(I,"zkey",1,10),o=await $I(Q,g),s=OI(64);s.update(E.csHash);for(let A=0;A",e);const n=`[${i.vk_beta_2[0][1].toString()},`+i.vk_beta_2[0][0].toString()+"], "+`[${i.vk_beta_2[1][1].toString()},`+i.vk_beta_2[1][0].toString()+"]";Q=Q.replace("<%vk_beta2%>",n);const B=`[${i.vk_gamma_2[0][1].toString()},`+i.vk_gamma_2[0][0].toString()+"], "+`[${i.vk_gamma_2[1][1].toString()},`+i.vk_gamma_2[1][0].toString()+"]";Q=Q.replace("<%vk_gamma2%>",B);const r=`[${i.vk_delta_2[0][1].toString()},`+i.vk_delta_2[0][0].toString()+"], "+`[${i.vk_delta_2[1][1].toString()},`+i.vk_delta_2[1][0].toString()+"]";Q=Q.replace("<%vk_delta2%>",r),Q=Q.replace("<%vk_input_length%>",(i.IC.length-1).toString()),Q=Q.replace("<%vk_ic_length%>",i.IC.length.toString());let E="";for(let A=0;A",E),Q}});return A.groth16=vg,A.powersOfTau=iC,A.r1cs=qQ,A.wtns=xQ,A.zKey=KQ,A}({}); diff --git a/package-lock.json b/package-lock.json index 34e5c33..78a31be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,27 +5,27 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", - "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.0", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } @@ -43,9 +43,9 @@ "dev": true }, "@types/node": { - "version": "14.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.18.tgz", - "integrity": "sha512-0Z3nS5acM0cIV4JPzrj9g/GH0Et5vmADWtip3YOXOp1NpOLU8V3KoZDc8ny9c1pe/YSYYzQkAWob6dyV/EWg4g==", + "version": "14.0.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", + "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==", "dev": true }, "@types/resolve": { @@ -58,9 +58,9 @@ } }, "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", "dev": true }, "acorn-jsx": { @@ -70,9 +70,9 @@ "dev": true }, "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -105,9 +105,9 @@ } }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { @@ -162,9 +162,9 @@ "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, "blake2b-wasm": { @@ -288,6 +288,18 @@ "requires": { "ffjavascript": "0.2.4", "fnv-plus": "^1.3.1" + }, + "dependencies": { + "ffjavascript": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.4.tgz", + "integrity": "sha512-XFeWcjUDFPavN+DDOxhE8p5MOhZQJc9oO1Sj4ml1pyjqNhS1ujEamcjFyK0cctdnat61i7lvpTYzdtS3RYDC8w==", + "requires": { + "big-integer": "^1.6.48", + "wasmcurves": "0.0.4", + "worker-threads": "^1.0.0" + } + } } }, "cli-cursor": { @@ -300,11 +312,47 @@ } }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -343,6 +391,14 @@ "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "debug": { @@ -406,22 +462,22 @@ "dev": true }, "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { @@ -484,35 +540,12 @@ "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } } }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -529,9 +562,9 @@ } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { @@ -552,18 +585,18 @@ "dev": true }, "esquery": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", - "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { - "estraverse": "^5.0.0" + "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", - "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } @@ -607,9 +640,9 @@ } }, "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-json-stable-stringify": { @@ -630,9 +663,9 @@ "integrity": "sha512-0EZo2y5eW8X0oiDDRvcnufjVxlM96CQL5hvmRQtbRABWlCkH73IHwkzl0qOSdxtchaMr+0TSB7GVqaVEixRr1Q==" }, "ffjavascript": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.4.tgz", - "integrity": "sha512-XFeWcjUDFPavN+DDOxhE8p5MOhZQJc9oO1Sj4ml1pyjqNhS1ujEamcjFyK0cctdnat61i7lvpTYzdtS3RYDC8w==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.5.tgz", + "integrity": "sha512-MkjLgyDdge5N5+u4qqbbClJQZXqoj//bmSQ/jxrObbHSwu3CFMz/KAEzPjqME1D54dA36LJtASvwgobw65EZcA==", "requires": { "big-integer": "^1.6.48", "wasmcurves": "0.0.4", @@ -696,9 +729,9 @@ } }, "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "fnv-plus": { @@ -713,9 +746,9 @@ "dev": true }, "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, @@ -731,6 +764,12 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", @@ -850,32 +889,26 @@ "dev": true }, "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.15", + "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", - "rxjs": "^6.5.3", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", @@ -887,9 +920,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -917,23 +950,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -970,9 +986,9 @@ "dev": true }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-date-object": { @@ -988,9 +1004,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -1014,12 +1030,6 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, "is-reference": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", @@ -1030,12 +1040,12 @@ } }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { - "has": "^1.0.3" + "has-symbols": "^1.0.1" } }, "is-symbol": { @@ -1053,6 +1063,34 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "jest-worker": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", + "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1060,9 +1098,9 @@ "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1158,18 +1196,18 @@ "dev": true }, "mkdirp": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "mocha": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz", - "integrity": "sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -1185,7 +1223,7 @@ "js-yaml": "3.13.1", "log-symbols": "3.0.0", "minimatch": "3.0.4", - "mkdirp": "0.5.3", + "mkdirp": "0.5.5", "ms": "2.1.1", "node-environment-flags": "1.0.6", "object.assign": "4.1.0", @@ -1198,23 +1236,6 @@ "yargs-unparser": "1.6.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -1224,18 +1245,6 @@ "ms": "^2.1.1" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -1250,13 +1259,14 @@ "path-is-absolute": "^1.0.0" } }, - "mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "minimist": "^1.2.5" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "ms": { @@ -1265,32 +1275,6 @@ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -1305,45 +1289,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -1384,6 +1329,14 @@ "requires": { "object.getownpropertydescriptors": "^2.0.3", "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "normalize-path": { @@ -1393,9 +1346,9 @@ "dev": true }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true }, "object-keys": { @@ -1436,9 +1389,9 @@ } }, "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" @@ -1465,9 +1418,9 @@ "dev": true }, "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -1564,6 +1517,16 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/fastfile/-/fastfile-0.0.6.tgz", "integrity": "sha512-6cOUdePcue0DAssqGKPhmcSgdLTaB2IzxNgg2WAADOuta00Os88+ShpDItSkQ/eLCiAeYjsPasdBLYozVz+4Ug==" + }, + "ffjavascript": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.4.tgz", + "integrity": "sha512-XFeWcjUDFPavN+DDOxhE8p5MOhZQJc9oO1Sj4ml1pyjqNhS1ujEamcjFyK0cctdnat61i7lvpTYzdtS3RYDC8w==", + "requires": { + "big-integer": "^1.6.48", + "wasmcurves": "0.0.4", + "worker-threads": "^1.0.0" + } } } }, @@ -1597,6 +1560,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, "resolve": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", @@ -1632,9 +1601,9 @@ } }, "rollup": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.20.0.tgz", - "integrity": "sha512-hkbp//ne1om8+PQRpd81zk0KDvbJxkLZdZJh1ZNxjd1EkI0H1TmYuHqqXx88yciS+5YnMom3geubQjTeeUnNNw==", + "version": "2.23.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.23.1.tgz", + "integrity": "sha512-Heyl885+lyN/giQwxA8AYT2GY3U+gOlTqVLrMQYno8Z1X9lAOpfXPiKiZCyPc25e9BLJM3Zlh957dpTlO4pa8A==", "dev": true, "requires": { "fsevents": "~2.1.2" @@ -1654,9 +1623,9 @@ } }, "rollup-plugin-ignore": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/rollup-plugin-ignore/-/rollup-plugin-ignore-1.0.6.tgz", - "integrity": "sha512-OC9h/VMWcOJBwtHxLCaYeuGhqlOWTaE0/S1u5BZqxR8KB+0SjvCRPoHNMdCZQ3c3yVPWFOB2GM49atg2RvGicQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/rollup-plugin-ignore/-/rollup-plugin-ignore-1.0.9.tgz", + "integrity": "sha512-+Q2jmD4gbO3ByFuljkDEfpEcYvll7J5+ZadUuk/Pu35x2KGrbHxKtt3+s+dPIgXX1mG7zCxG4s/NdRqztR5Ruw==", "dev": true }, "rollup-plugin-json": { @@ -1701,42 +1670,6 @@ "jest-worker": "^26.0.0", "serialize-javascript": "^3.0.0", "terser": "^4.7.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-worker": { - "version": "26.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.1.0.tgz", - "integrity": "sha512-Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "rollup-pluginutils": { @@ -1749,18 +1682,15 @@ } }, "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", - "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true }, "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -1779,11 +1709,20 @@ "dev": true }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -1820,6 +1759,14 @@ "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } } }, "source-map": { @@ -1851,48 +1798,68 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", "dev": true, "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5" } }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", "dev": true, "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } } }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { @@ -1916,18 +1883,18 @@ "string-width": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -1938,15 +1905,6 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } } } }, @@ -1992,9 +1950,9 @@ } }, "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, "type-check": { @@ -2028,9 +1986,9 @@ } }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", "dev": true }, "wasmcurves": { @@ -2064,6 +2022,39 @@ "dev": true, "requires": { "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, "word-wrap": { @@ -2077,6 +2068,42 @@ "resolved": "https://registry.npmjs.org/worker-threads/-/worker-threads-1.0.0.tgz", "integrity": "sha512-vK6Hhvph8oLxocEJIlc3YfGAZhm210uGzjZsXSu+JYLAQ/s/w4Tqgl60JrdH58hW8NSGP4m3bp8a92qPXgX05w==" }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -2098,50 +2125,34 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, - "yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "require-main-filename": { + "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { @@ -2154,56 +2165,29 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + } } } } diff --git a/package.json b/package.json index 46b026e..8d52aa0 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "blake2b-wasm": "https://github.com/jbaylina/blake2b-wasm.git", "circom_runtime": "0.0.9", "fastfile": "0.0.12", - "ffjavascript": "0.2.4", + "ffjavascript": "0.2.5", "logplease": "^1.2.15", "r1csfile": "0.0.12" }, diff --git a/src/zkey_import_bellman.js b/src/zkey_import_bellman.js index 3ee08dd..7900635 100644 --- a/src/zkey_import_bellman.js +++ b/src/zkey_import_bellman.js @@ -113,6 +113,7 @@ export default async function phase2importMPCParams(zkeyNameOld, mpcparamsName, const buffTauLEM = await curve.G1.batchUtoLEM(buffTauU); buffH = new Uint8Array(zkeyHeader.domainSize*sG1); buffH.set(buffTauLEM); // Let the last one to zero. + curve.G1.toRprLEM(buffH, sG1*(zkeyHeader.domainSize-1), curve.G1.zeroAffine); const n2Inv = curve.Fr.neg(curve.Fr.inv(curve.Fr.e(2))); const wInv = curve.Fr.inv(curve.Fr.w[zkeyHeader.power+1]); buffH = await curve.G1.batchApplyKey(buffH, n2Inv, wInv, "affine", "jacobian", logger); diff --git a/src/zkey_new.js b/src/zkey_new.js index 13c7a2c..5145f1a 100644 --- a/src/zkey_new.js +++ b/src/zkey_new.js @@ -29,8 +29,8 @@ export default async function newZKey(r1csName, ptauName, zkeyName, logger) { const cirPower = log2(r1cs.nConstraints + r1cs.nPubInputs + r1cs.nOutputs +1 -1) +1; - if (cirPower > power) { - if (logger) logger.error(`circuit too big for this power of tau ceremony. ${r1cs.nConstraints} > 2**${power}`); + if (cirPower > power+1) { + if (logger) logger.error(`circuit too big for this power of tau ceremony. ${r1cs.nConstraints}*2 > 2**${power}`); return -1; } diff --git a/src/zkey_verify.js b/src/zkey_verify.js index c1a2733..149a59a 100644 --- a/src/zkey_verify.js +++ b/src/zkey_verify.js @@ -270,6 +270,7 @@ export default async function phase2verify(r1csFileName, pTauFileName, zkeyFileN const e = curve.Fr.fromRng(rng); curve.Fr.toRprLE(buff_r, i*zkey.n8r, e); } + curve.Fr.toRprLE(buff_r, (zkey.domainSize-1)*zkey.n8r, curve.Fr.zero); let R1 = G.zero; for (let i=0; i