@iden3/js-crypto
Version:
Crypto primitives for iden3
864 lines (857 loc) • 1.2 MB
JavaScript
var __defProp = Object.defineProperty;
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
}) : x)(function(x) {
if (typeof require !== "undefined") return require.apply(this, arguments);
throw Error('Dynamic require of "' + x + '" is not supported');
});
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
// src/ff/utils.ts
var utils_exports = {};
__export(utils_exports, {
beBuff2int: () => beBuff2int,
beInt2Buff: () => beInt2Buff,
leBuff2int: () => leBuff2int,
leInt2Buff: () => leInt2Buff,
unStringifyBigInts: () => unStringifyBigInts
});
// src/ff/scalar.ts
var scalar_exports = {};
__export(scalar_exports, {
abs: () => abs,
add: () => add,
bXor: () => bXor,
band: () => band,
bitLength: () => bitLength,
bits: () => bits,
bor: () => bor,
div: () => div,
e: () => e,
eq: () => eq,
exp: () => exp,
fromArray: () => fromArray,
fromRprBE: () => fromRprBE,
fromRprLE: () => fromRprLE,
fromString: () => fromString,
geq: () => geq,
gt: () => gt,
isNegative: () => isNegative,
isOdd: () => isOdd,
isZero: () => isZero,
land: () => land,
leq: () => leq,
lor: () => lor,
lt: () => lt,
mod: () => mod,
mul: () => mul,
naf: () => naf,
neg: () => neg,
neq: () => neq,
one: () => one,
pow: () => pow,
shiftLeft: () => shiftLeft,
shiftRight: () => shiftRight,
shl: () => shl,
shr: () => shr,
square: () => square,
sub: () => sub,
toArray: () => toArray,
toLEBuff: () => toLEBuff,
toNumber: () => toNumber,
toRprBE: () => toRprBE,
toRprLE: () => toRprLE,
toString: () => toString,
zero: () => zero
});
var hexLen = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4];
var fromString = (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);
}
}
throw new Error("Unsupported radix");
};
var e = fromString;
var fromArray = (a, r) => {
let acc = BigInt(0);
const radix = BigInt(r);
for (let i = 0; i < a.length; i++) {
acc = acc * radix + BigInt(a[i]);
}
return acc;
};
var bitLength = (a) => {
const aS = a.toString(16);
return (aS.length - 1) * 4 + hexLen[parseInt(aS[0], 16)];
};
var isNegative = (a) => {
return BigInt(a) < BigInt(0);
};
var isZero = (a) => {
return a === zero;
};
var shiftLeft = (a, n) => {
return a << n;
};
var shiftRight = (a, n) => {
return a >> n;
};
var shl = shiftLeft;
var shr = shiftRight;
var isOdd = (a) => {
return (a & one) == one;
};
var naf = (n) => {
let E = n;
const res = [];
while (E) {
if (E & one) {
const z = 2 - Number(E % BigInt(4));
res.push(z);
E = E - BigInt(z);
} else {
res.push(0);
}
E = E >> one;
}
return res;
};
var bits = (n) => {
let E = n;
const res = [];
while (E) {
if (E & one) {
res.push(1);
} else {
res.push(0);
}
E = E >> one;
}
return res;
};
var toNumber = (s) => {
if (s > BigInt(Number.MAX_SAFE_INTEGER)) {
throw new Error("Number too big");
}
return Number(s);
};
var toArray = (s, r) => {
const res = [];
let rem = s;
const radix = r;
while (rem) {
res.unshift(Number(rem % radix));
rem = rem / radix;
}
return res;
};
var add = (a, b) => {
return a + b;
};
var sub = (a, b) => {
return a - b;
};
var neg = (a) => {
return -a;
};
var mul = (a, b) => {
return a * b;
};
var square = (a) => {
return a * a;
};
var pow = (a, b) => {
return a ** b;
};
var exp = (a, b) => {
return a ** b;
};
var abs = (a) => {
return a >= 0 ? a : -a;
};
var div = (a, b) => {
return a / b;
};
var mod = (a, b) => {
return a % b;
};
var eq = (a, b) => {
return a === b;
};
var neq = (a, b) => {
return a !== b;
};
var lt = (a, b) => {
return a < b;
};
var gt = (a, b) => {
return a > b;
};
var leq = (a, b) => {
return a <= b;
};
var geq = (a, b) => {
return a >= b;
};
var band = (a, b) => {
return a & b;
};
var bor = (a, b) => {
return a | b;
};
var bXor = (a, b) => {
return a ^ b;
};
var land = (a, b) => {
return a && b;
};
var lor = (a, b) => {
return a || b;
};
var toRprLE = (buff, o, e2, n8) => {
const s = "0000000" + e2.toString(16);
const v = new Uint32Array(buff.buffer, buff.byteOffset + o, n8 / 4);
const l = ((s.length - 7) * 4 - 1 >> 5) + 1;
for (let i = 0; i < l; i++)
v[i] = parseInt(s.substring(s.length - 8 * i - 8, s.length - 8 * i), 16);
for (let i = l; i < v.length; i++) v[i] = 0;
for (let i = v.length * 4; i < n8; i++)
buff[i] = toNumber(band(shiftRight(e2, BigInt(i * 8)), BigInt(255)));
};
var toRprBE = (buff, o, e2, n8) => {
const s = "0000000" + e2.toString(16);
const v = new DataView(buff.buffer, buff.byteOffset + o, n8);
const l = ((s.length - 7) * 4 - 1 >> 5) + 1;
for (let i = 0; i < l; i++)
v.setUint32(
n8 - i * 4 - 4,
parseInt(s.substring(s.length - 8 * i - 8, s.length - 8 * i), 16),
false
);
for (let i = 0; i < n8 / 4 - l; i++) v.setInt32(0, 0, false);
};
var fromRprLE = (buff, o, n8) => {
n8 = n8 || buff.byteLength;
o = o || 0;
const v = new Uint32Array(buff.buffer, buff.byteOffset + o, n8 / 4);
const a = new Array(n8 / 4);
v.forEach((ch, i) => a[a.length - i - 1] = ch.toString(16).padStart(8, "0"));
return fromString(a.join(""), 16);
};
var fromRprBE = (buff, o, n8) => {
n8 = n8 || buff.byteLength;
o = o || 0;
const v = new DataView(buff.buffer, buff.byteOffset + o, n8);
const a = new Array(n8 / 4);
for (let i = 0; i < n8 / 4; i++) {
a[i] = v.getUint32(i * 4, false).toString(16).padStart(8, "0");
}
return fromString(a.join(""), 16);
};
var toString = (a, radix = 10) => {
return a.toString(radix);
};
var toLEBuff = (a) => {
const buff = new Uint8Array(Math.floor((bitLength(a) - 1) / 8) + 1);
toRprLE(buff, 0, a, buff.byteLength);
return buff;
};
var zero = BigInt(0);
var one = BigInt(1);
// src/ff/utils.ts
function unStringifyBigInts(o) {
if (Array.isArray(o)) {
return o.map(unStringifyBigInts);
} else if (typeof o == "object") {
const res = {};
for (const [key, val] of Object.entries(o)) {
res[key] = unStringifyBigInts(val);
}
return res;
}
const byteArray = Uint8Array.from(atob(o), (c) => c.charCodeAt(0));
const hex = [...byteArray].map((x) => x.toString(16).padStart(2, "0")).join("");
return BigInt(`0x${hex}`);
}
function beBuff2int(buff) {
let res = BigInt(0);
let i = buff.length;
let offset = 0;
const buffV = new DataView(buff.buffer, buff.byteOffset, buff.byteLength);
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(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 & BigInt(4294967295)));
r = r >> BigInt(32);
} else if (o - 2 >= 0) {
o -= 2;
buffV.setUint16(o, Number(r & BigInt(65535)));
r = r >> BigInt(16);
} else {
o -= 1;
buffV.setUint8(o, Number(r & BigInt(255)));
r = r >> BigInt(8);
}
}
if (r) {
throw new Error("Number does not fit in this length");
}
return buff;
}
function leBuff2int(buff) {
let res = BigInt(0);
let i = 0;
const buffV = new DataView(buff.buffer, buff.byteOffset, buff.byteLength);
while (i < buff.length) {
if (i + 4 <= buff.length) {
res += BigInt(buffV.getUint32(i, true)) << BigInt(i * 8);
i += 4;
} else if (i + 2 <= buff.length) {
res += BigInt(buffV.getUint16(i, true)) << BigInt(i * 8);
i += 2;
} else {
res += BigInt(buffV.getUint8(i)) << BigInt(i * 8);
i += 1;
}
}
return res;
}
function leInt2Buff(n, len) {
let r = n;
if (typeof len === "undefined") {
len = Math.floor((bitLength(n) - 1) / 8) + 1;
if (len == 0) len = 1;
}
const buff = new Uint8Array(len);
const buffV = new DataView(buff.buffer);
let o = 0;
while (o < len) {
if (o + 4 <= len) {
buffV.setUint32(o, Number(r & BigInt(4294967295)), true);
o += 4;
r = r >> BigInt(32);
} else if (o + 2 <= len) {
buffV.setUint16(o, Number(r & BigInt(65535)), true);
o += 2;
r = r >> BigInt(16);
} else {
buffV.setUint8(o, Number(r & BigInt(255)));
o += 1;
r = r >> BigInt(8);
}
}
if (r) {
throw new Error("Number does not fit in this length");
}
return buff;
}
// src/ff/random.ts
function getRandomBytes(length) {
if (length <= 0) {
throw new Error("Length must be greater than 0");
}
const global = globalThis;
if (global.crypto?.getRandomValues) {
const randomValues = new Uint8Array(length);
global.crypto.getRandomValues(randomValues);
return randomValues;
}
NODE: {
const crypto = __require("crypto");
return crypto.randomBytes(length);
}
throw new Error("Random byte generation is not supported in this environment");
}
// src/ff/f1field.ts
var F1Field = class {
type;
one;
zero;
p;
m;
negOne;
two;
half;
bitLength;
mask;
n64;
n32;
n8;
R;
s;
shift;
Ri;
nqr;
t;
nqr_to_t;
k;
constructor(p) {
this.type = "F1";
this.one = BigInt(1);
this.zero = BigInt(0);
this.p = BigInt(p);
this.m = one;
this.negOne = this.p - this.one;
this.two = BigInt(2);
this.half = this.p >> this.one;
this.bitLength = bitLength(this.p);
this.mask = (this.one << BigInt(this.bitLength)) - this.one;
this.n64 = Math.floor((this.bitLength - 1) / 64) + 1;
this.n32 = this.n64 * 2;
this.n8 = this.n64 * 8;
this.R = this.e(this.one << BigInt(this.n64 * 64));
this.Ri = this.inv(this.R);
const e2 = this.negOne >> this.one;
this.nqr = this.two;
let r = this.pow(this.nqr, e2);
while (!this.eq(r, this.negOne)) {
this.nqr = this.nqr + this.one;
r = this.pow(this.nqr, e2);
}
this.s = 0;
this.t = this.negOne;
while ((this.t & this.one) == this.zero) {
this.s = this.s + 1;
this.t = this.t >> this.one;
}
this.nqr_to_t = this.pow(this.nqr, this.t);
tonelliShanks(this);
this.shift = this.square(this.nqr);
this.k = this.exp(this.nqr, BigInt(2 ** this.s));
}
e(a, b = void 0) {
let res;
if (!b) {
res = BigInt(a);
} else if (b == BigInt(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;
}
double(a) {
return this.add(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 = this.zero;
let r = this.p;
let newt = this.one;
let newR = a % this.p;
while (newR) {
const q = r / newR;
[t, newt] = [newt, t - q * newt];
[r, newR] = [newR, r - q * newR];
}
if (t < this.zero) t += this.p;
return t;
}
mod(a, b) {
return a % b;
}
pow(b, e2) {
return exp2(this, b, e2);
}
exp(b, e2) {
return exp2(this, b, BigInt(e2));
}
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 this.zero;
}
}
}
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 zero;
}
}
}
land(a, b) {
return a && b ? this.one : this.zero;
}
lor(a, b) {
return a || b ? this.one : this.zero;
}
sqrt_old(n) {
if (n == this.zero) return this.zero;
const res = this.pow(n, this.negOne >> this.one);
if (res != this.one) 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) >> this.one);
while (t != this.one) {
let sq = this.square(t);
let i = 1;
while (sq != this.one) {
i++;
sq = this.square(sq);
}
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 >> this.one) {
r = this.neg(r);
}
return r;
}
normalize(a) {
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 = this.zero;
for (let i = 0; i < nBytes; i++) {
res = (res << BigInt(8)) + BigInt(getRandomBytes(1)[0]);
}
return res % this.p;
}
toString(a, base = 10) {
base = base || 10;
let vs;
if (a > this.half && base == 10) {
const v = this.p - a;
vs = "-" + v.toString(base);
} else {
vs = a.toString(base);
}
return vs;
}
isZero(a) {
return a == this.zero;
}
// Returns a buffer with Little Endian Representation
toRprLE(buff, o, e2) {
toRprLE(buff, o, e2, this.n64 * 8);
}
// Returns a buffer with Big Endian Representation
toRprBE(buff, o, e2) {
toRprBE(buff, o, e2, this.n64 * 8);
}
// Returns a buffer with Big Endian Montgomery Representation
toRprBEM(buff, o, e2) {
return this.toRprBE(buff, o, this.mul(this.R, e2));
}
toRprLEM(buff, o, e2) {
return this.toRprLE(buff, o, this.mul(this.R, e2));
}
// Passes a buffer with Little Endian Representation
fromRprLE(buff, o) {
return fromRprLE(buff, o, this.n8);
}
// Passes a buffer with Big Endian Representation
fromRprBE(buff, o) {
return fromRprBE(buff, o, this.n8);
}
fromRprLEM(buff, o) {
return this.mul(this.fromRprLE(buff, o), this.Ri);
}
fromRprBEM(buff, o) {
return this.mul(this.fromRprBE(buff, o), this.Ri);
}
toObject(a) {
return a;
}
sqrt(a) {
throw new Error("Not implemented sqrt for F1" + a);
}
sqrt_e1;
sqrt_q;
sqrt_s;
sqrt_t;
sqrt_z;
sqrt_tm1d2;
};
function tonelliShanks(F3) {
F3.sqrt_q = pow(F3.p, F3.m);
F3.sqrt_s = zero;
F3.sqrt_t = sub(F3.sqrt_q, one);
while (!isOdd(F3.sqrt_t)) {
F3.sqrt_s = F3.sqrt_s + one;
F3.sqrt_t = div(F3.sqrt_t, 2n);
}
let c0 = F3.one;
while (F3.eq(c0, F3.one)) {
const c = F3.random();
F3.sqrt_z = F3.pow(c, F3.sqrt_t);
c0 = F3.pow(F3.sqrt_z, 2n ** (F3.sqrt_s - one));
}
F3.sqrt_tm1d2 = div(sub(F3.sqrt_t, one), 2n);
F3.sqrt = (a) => {
if (F3.isZero(a)) return F3.zero;
let w = F3.pow(a, F3.sqrt_tm1d2);
const a0 = F3.pow(F3.mul(F3.square(w), a), 2n ** (F3.sqrt_s - one));
if (F3.eq(a0, F3.negOne)) return null;
let v = F3.sqrt_s;
let x = F3.mul(a, w);
let b = F3.mul(x, w);
let z = F3.sqrt_z;
while (!F3.eq(b, F3.one)) {
let b2k = F3.square(b);
let k = one;
while (!F3.eq(b2k, F3.one)) {
b2k = F3.square(b2k);
k++;
}
w = z;
for (let i = 0; i < v - k - one; i++) {
w = F3.square(w);
}
z = F3.square(w);
b = F3.mul(b, z);
x = F3.mul(x, w);
v = k;
}
return F3.geq(x, F3.zero) ? x : F3.neg(x);
};
}
function exp2(F3, base, e2) {
if (isZero(e2)) return F3.one;
const n = bits(e2);
if (n.length == 0) return F3.one;
let res = base;
for (let i = n.length - 2; i >= 0; i--) {
res = F3.square(res);
if (n[i]) {
res = F3.mul(res, base);
}
}
return res;
}
// src/babyjub/babyjub.ts
var BabyJub = class {
F;
p;
pm1d2;
Generator;
Base8;
order;
subOrder;
A;
D;
constructor(F3) {
this.F = F3;
this.p = BigInt(
"21888242871839275222246405745257275088548364400416034343698204186575808495617"
);
this.pm1d2 = scalar_exports.div(scalar_exports.sub(this.p, scalar_exports.one), 2n);
this.Generator = [
F3.e("995203441582195749578291179787384436505546430278305826713579947235728471134"),
F3.e("5472060717959818805561601436314318772137091100104008585924551046643952123905")
];
this.Base8 = [
F3.e("5299619240641551281634865583518297030282874472190772894086521144482721001553"),
F3.e("16950150798460657717958625567821834550301663161624707787222815936182638968203")
];
this.order = BigInt(
"21888242871839275222246405745257275088614511777268538073601725287587578984328"
);
this.subOrder = scalar_exports.shiftRight(this.order, 3n);
this.A = F3.e("168700");
this.D = F3.e("168696");
}
addPoint(a, b) {
const F3 = this.F;
const res = new Array(2);
const beta = F3.mul(a[0], b[1]);
const gamma = F3.mul(a[1], b[0]);
const delta = F3.mul(F3.sub(a[1], F3.mul(this.A, a[0])), F3.add(b[0], b[1]));
const tau = F3.mul(beta, gamma);
const dTau = F3.mul(this.D, tau);
res[0] = F3.div(F3.add(beta, gamma), F3.add(F3.one, dTau));
res[1] = F3.div(F3.add(delta, F3.sub(F3.mul(this.A, beta), gamma)), F3.sub(F3.one, dTau));
return res;
}
mulPointEScalar(base, e2) {
const F3 = this.F;
let res = [F3.e("0"), F3.e("1")];
let rem = e2;
let exp3 = base;
while (!scalar_exports.isZero(rem)) {
if (scalar_exports.isOdd(rem)) {
res = this.addPoint(res, exp3);
}
exp3 = this.addPoint(exp3, exp3);
rem = scalar_exports.shiftRight(rem, scalar_exports.one);
}
return res;
}
inSubgroup(P) {
const F3 = this.F;
if (!this.inCurve(P)) return false;
const res = this.mulPointEScalar(P, this.subOrder);
return F3.isZero(res[0]) && F3.eq(res[1], F3.one);
}
inCurve(P) {
const F3 = this.F;
const x2 = F3.square(P[0]);
const y2 = F3.square(P[1]);
if (!F3.eq(F3.add(F3.mul(this.A, x2), y2), F3.add(F3.one, F3.mul(F3.mul(x2, y2), this.D))))
return false;
return true;
}
packPoint(P) {
const F3 = this.F;
const buff = new Uint8Array(32);
F3.toRprLE(buff, 0, P[1]);
const n = F3.toObject(P[0]);
if (scalar_exports.gt(n, this.pm1d2)) {
buff[31] = buff[31] | 128;
}
return buff;
}
unpackPoint(buff) {
const F3 = this.F;
let sign = false;
const P = [BigInt(0), BigInt(0)];
if (buff[31] & 128) {
sign = true;
buff[31] = buff[31] & 127;
}
P[1] = F3.fromRprLE(buff, 0);
if (scalar_exports.gt(F3.toObject(P[1]), this.p)) return null;
const y2 = F3.square(P[1]);
const x2 = F3.div(F3.sub(F3.one, y2), F3.sub(this.A, F3.mul(this.D, y2)));
const x2h = F3.exp(x2, BigInt(F3.half));
if (!F3.eq(F3.one, x2h)) return null;
let x = F3.sqrt(x2);
if (x == null) return null;
if (sign) x = F3.neg(x);
P[0] = BigInt(x);
return P;
}
};
var F = new F1Field(
BigInt("21888242871839275222246405745257275088548364400416034343698204186575808495617")
);
var babyJub = new BabyJub(F);
// src/poseidon/poseidon-constants-opt.json
var poseidon_constants_opt_default = { C: [["CcRunsaOm9T+H6q6KUy6OKcaoXdTTN0bbH3A29Cr16c=", "DANWUwiW7sQql+2TfzE1z8UUKzrkBbg0PB2D/6YEy4E=", "JQ9RFqQX12qqQilS/MWzMyn3cU/CbVbAQyUH/HQKh8Q=", "JkBlrYdXLgFmWWJsM8ghP3o3O5uCJaOE9FjYULtKlJ8=", "K7jpStjYrcps6Qn/lLh1BymylORAA3baOeM/2iS9Qq8=", "GQUQZdBdhh7IE8FSkdRqMo9iAbIa1dI51Phfuwml264=", "JFvQYXqkSWGPW9RVCqx7jgjU0cAXFllDzfR3bN/zQ0o=", "CfsaERgHT/edisv1sCEx4EihVwFV4PKxw2rQkdSRqI8=", "I0q1BLuugZiXJ0GVL3i36wGOoZLwXlTBSEq4lz/2bYg=", "AfZuUJuEw1WuPUw1E6KC/Uj5yMZDn0Kng1+8/g8qMkw=", "GyL11p1yXmACzwDdnuYtGlrw79xJEPVBJ6kgzMQ/kfo=", "AlK1Xt6tE1+FKWi38cT0kPplns1bR6eKfbkfZabfwj8=", "F3OuLhY3ySrQZ3wqBH/qjspLUzA/IYcfaJKiwEh9f/E=", "LVewKQbNCrgqeedvru9vh2ZurAk893FWRdXsn3rHMvU=", "ChbzpigksoHost24/DkaSY+wYTF/r/oDaW+DRZYxPZM=", "Fmb1Jff0tpiNKjeDSrdH6uBYd1e3iOt/HiawjjaghZE=", "BdpE+OCjuLsTIx8MoltQtX9cghKOHf7D5UHZEuvhe3Y=", "CaObqZkzA7oZG6yL2z4BRNv7XzliTN2VJNx4YWM7yVo=", "BsD7gkoZIC0w7mtBjAAp4QDoWm0Vj58qgo39LtCSCmg=", "A4fY4FaysXapd2tEkss7QYrcZgYn5SuzMkKDv5UiOV0=", "FHoa+CA271sop6N76kDWrDATzxtiNYOWv3FW9cLcloQ=", "MDjZIGDa6q8b0Egr0/BhPYjo3/kKegUl+SJ+TLfG+Bs=", "BylAqh1Tilo5oyP55dZWFs9sIjM5AG+XialyRVMpCPU=", "LT1gSUn04UxwuKh5rt7Emzo2e6IWrwSPRk7W8V4rkCM=", "IlueTzXHVJ+Ad0wrTRgwmy3PfHKHuYLkl0ahdmQec8U=", "HqeBKI/fE7IZAJWiNEgo433+gcdaCXCfDRObu/bHBBQ=", "COlsPn6N5EMrICQFRYRouQ3GiQ1M7hKLNQLltstK7us=", "BbQ9p8iqKa9tyq5X0HC0nSnOiJpkpKwYPoXVWzZsgF8=", "vsmKA047ive6SGHxrVpI3O98mW56UcfN3nJNj2EOUg==", "LrZ8z6KeK0Irn4Sl0FdfxDWzD8rjAwOUgL44TuTr5yo=", "ECu9who/FHvwTu3uXXC9CEpxBcYxyG7NLE6HSaE5Fco=", "J0vBbIhyG6v9W76NhWLBvxJ644kVKA+7jjEVytNYL3k=", "GFzs5BdUmyUoPeBFEfdpEByIULQJ1JKKuDFhE1G9mTg=", "E8c/sEP36Xi8nPtVx/qstPTII2dKvhdzcFmsCjLDYAc=", "JLOh2DMIdCs2DJxgWVZz4gHN1M71pBRckzxOWWlIHXA=", "GLWulN+eyXqqKo8PQkJbzM3IJmoHD4Zu8PSNejdEOYs=", "IOs5jLlYzCzMfLH6w4UBq744FpsthSLZ5fCZ8tWQXLQ=", "HliN0+yLDSUsLHwMeKArIru60fTcqi54qLju8vTik0Q=", "D4vzvWwiujsb86suP7QIGM1CF/+68pTKQjMdTjBDoKY=", "A4jJ/PMPwoQdZI9GutAd0QvuncGE0l6ryfYXAhEJzsM=", "K7fzl8WUGsZ776iyMvFciFPawmPaeTVVRBqQzsg7ZFQ=", "F/OJtS+ep6mIdKSjHvanvrQ/sX2w5JklC7PwGBxZ+yE=", "A6IJDqy4l6MfsQVh1WCpruwkt60U0XsUXyDIdaCyjHw=", "DDmFNPDrWA8f5L9kVTOJ5nzKRxQ5lDDglhncvuF7oJk=", "Bwlayf2kavp/GBJZ42Nf7/p/Ee5j8+53elzr9IIjKMQ=", "IEb3zxyPE+8racvIvA1dgJ+CVoq+KzPRzQYJWLHO1oM=", "LCdBNqXeKEnebn+S+QlyllAay2jVYTj7y2YMTLD2kQc=", "HE1ReKy1xrbs7vI6/G8W7HsDgwlMtkZ+jQ9FB7PPdMM=", "BlsUR9DWTOztEWeFuSxjpqfdlwFQfcvouQkyXij3uNM=", "ImXX4kSIEiDIGhk9l5MwQJyb+jM0OJUTQOAj57cqGWE=", "FbErNVr34FY3ocduZ/nOxvyopkSbN2afaFBQIlazCro=", "GhUi/sxq4Cjk0+MClJe4jzXCtIxoevFo7CWC2QdbQ4c=", "IvVueegbdJbkcqZBoFPEFLzFOwqTUOJYkkCAMHb1jyY=", "IC3bZtCYiZTnqrrWks6sTiMkZyoXq4QX0e4niv0X/Qw=", "ErBwHogTxbIajjAgj48RWLls1Ciud73qcvhFEPc+384=", "HmP9IOcG4UB8iDjOsmuEyf5pP93g6x4anffoTlPu7n4=", "IKFsWoYlbe/9Fa8XTDn52aoRUAZ2rH5XAIgoDdGJYlk=", "HI+L+OFT2lWtWsouqu442lY+BDXA8vN8J1WPubrgo+s=", "DXcyaHu3v186q8/cxPu2fhWcGYMhPkFsOIAST93xh8k=", "DN0ER1qGmZou3Lu/gmSxleEIs7YLZHXYNfbM754vaGU=", "L+ZVhs1OdUtMY6iMLtP5ug47+kP1R7QRU1YMIU/jy80=", "BQPPljyCc2BOZZEo7CkmH2I5mBXZjFbb9PKDfHJ61Nk=", "HuSOong5Bht4N5k29tl8qUALOT71/fOO8Udch0LLM0w=", "GkI/jY/IkrItfNW/AZfFdcV56DVj0EhZ1zssHFwEE/k=", "BpoNpQEz6ZUvAOYXeJcqe+Do2Kt2yVYWrkZWNqu5fsc=", "G/eHndQvLLuRxloJdjVvZ5ZML5Tfvw5EzyuZCRZdhhQ=", "GyPcz0hYIgZcj8Cv5hC+cWTiUFYmf2xKgF//1FR6C5g=", "Lr6Q1vb9ykIODC4ATOXFpECeVkycTzZx4wEfYnvsfC4=", "FnzWkwU1qBbf6+gdIMN253aHdg86L6DaKQsvTWxoY/c=", "CIZcEPSmM8VMzItot53yhfGfEhA3TMZOPIqWbU+QJks=", "HekC+8C/AZUcolq7OdeIlHIbN+BxhRsDpyzGuDO3iTs=", "Dj7KAHaZ3Q+FLrItpkLklfZ8mI3VvwE3Z2sWox6rRmc="], ["DumlkrqalRjQWYbWVvQMIRTEmTwRuymTjSHUcwTNjm4=", "8URSNfIUjFmGWHFp/BvNiHsI1NAIaN9Wlv/0CVboZA==", "CN/zSH6KyZ4fKaBY0PqAuTDHKHMLerNs6HnziQ7Pc/U=", "CE1SDk5btGnh+Qdct8SQ76WVZe7a4tAMqO+IzuorAZc=", "LRXZgtmVd/oz2lZyJBb9c0s+ZnovnxXY6z52euD9gR4=", "DtJTiESroWHPFXikPPA2TpFgH2U2pZltDvvmVjLEG20=", "JgDCfYefvKGG5znmNjxxz4BMh32Cm3NdzD468ClV5go=", "KPi9RKWDy6pHW9FTlkMOfMuZpVF0QN/ZcAWFWCgr8sU=", "Cc19TDgNxUiHgarQEufq7x7TFNf2l6VXLQMMVd8VMiE=", "Ebtu4Skaq7IGEg7KrORg0ktnE/6+giNJUeK+59D4VfU=", "LXTo+gY32YUzEPPA4/rh0G8XFYD1uP0FNJyt7s/OsjA=", "JzXk7J05vf+sm+8xusujOLGglVmlEaGL5LTTFu2IkDM=", "DwPB6eCJXbGl2mMS+qeOlxEGwz+Cbgjc9hfiQhMTLf0=", "FwlM0pe/gnyvkpICBbcZwYdBCQuPd3gRhIp+nq1neMQ=", "Dbj0GcIfkkYfwrMhlGV5g0jfkNQXgELIG6fUtNVZ4rg=", "JDRDYT9k/6QXQn7Vkz/PvGaAnbYLnKFySiJwnOzu7OI=", "Iq9J+/1dfp/NJWwlwH092Oy7rm3uzQOqBLsZH62nVBE=", "FPvTf6itbk4MeKINk8cjDEZ395e0MnMj9/fAl8GUIOA=", "Fakpi7uIJTTUssn7xuTvQYlCDE6z8+HqIvqn4Yta5iU=", "L33nXyPdqqUiEyPrzrLyrIPu+S6FTnVDTC8dkFYiMrw=", "A2pEMqhoKDt4oxXoTErlrsohby/56bLmI1hPdHnNXCc=", "IYDXeGqM+BDidyGKsUoR5eOfPJYvEehgrhxWgseX3lw=", "CiaO+HBzbuvQy1W+ZA1z7jd4mQSEzAPOU1cjd+7/+OQ=", "Hu/v4RwL5GZPKZkDHxWZSCnpgujJDgkGnfm64WgJpbI=", "J+h/AzvR4KicpZboy3f+OkuPuT2aESmUZXGjw88kTFI=", "AUmKPmWZ/iQzIfV9bFQ1iJl5xPnSo+GE0hRRgJF47jk=", "J8CkH0y5/mfp3U184zcH901da8wjW+8Qjeobvr3lB6o=", "H3UjCQixQbRmNyOLEg/HcPT0roJdUATBanyR/h2uKA8=", "JfmakZjpIxZ7uoMbFf/9LXuXs6CJgI1OsfCghb7iFlY=", "EBvDGOnqWSDQ9qzcK7UmWT09VuyO0UxnYil0IoupAMY=", "GhdWBwZ9UXOXwTNOywGXVOvAyFKjzwkewczEMgeoPHY=", "DwLw5tJfnqPeskXz6MOB7msus4C6SvXBxNiXcBVd83s=", "FR11esyCN68I2KZncgPslpJWXeRWrnif81izFjs5O8k=", "JWzZV3zqFDBJ4KH+AGjdIAhJgO5bdXiQp50To6Yk+tQ=", "BROrr/YZXqSIM7E9pQ4IhEdmgsP73RlUl7iuhuGTfGE=", "HZVw3HCiBfNvYQJR7m4ugDkkboTkrESDhtGdusTkplU=", "GPGlGUdVuMXV1/G/iqpvVu/7AS3XhM9eBE7sULKfydQ=", "JmtTthXvc6yGZRLAkeSk8vpLsK+WbvQg2IFjI47rvKg=", "LWMjTJIHQ4qkK43idkTAImgwTf64yJoaP0/W6DRK4Pc=", "KrMPvlHuSbx7Ot3iGabwtfu5diBe+N9+ACHa7m9VxpM=", "Gu5tSz6+k2bcuczkiWnU3x3EKrzVKLJwBo2SB/pqRck=", "GJGuq3HjS4laeUUuWGSuHRH1dkbGC7NKohHRI/YJUhk=", "JEkrX5XAsIdkN+lLQQHGkRjhayZXdxvTp8qrAcgYqks=", "AXUhYbM1D34bOyyGY6DWQpZGKCE9ZsEKsv3fcbz95o8=", "CrZ2k1ci4vZ8+4STjmFMbC9EW40UjeVDaM+4+QoA86c=", "Cw9yRyuaL19FvHMBF+2a5Wg/wubiJ+PU/g2h96o0gYk=", "FqpvknOs1WMcIB0aUvxPisryshUsOubfE6eKUT7c02k=", "L2C5h+Y2FOsTwyTB2HFusL9i2bFV0jKBpFwI1SQ1zWA=", "GNJK4B3ekv12Brt4hFVOnfHLibBC9Qj9nbdrfMGyEhI=", "BPw792/jHi+Nd2NzEw33nRjDGF/fFZOWBxXUckz/pYY=", "DRj2tT/GlUbP3WcLQXMr323ungayEmDGtdJicEaNv4I=", "ukIxqRjxOs7BH7r6F8UiPx9wtM2wRQNvpdcEW9EOJA==", "B7RYsuAM18YQCYUwFmPn7DPIJtoGNf8evt0N2GEgtMg=", "HDXC2W25D09gWOdvFaDIKGu6JOLtQLFs7Dnp/XuqV5k=", "HRK+o9jDKl12ZWjwPdHs2wpPWJq775aUXg3eaI4pIFA=", "DZU+IAIgAycFJfmnNSbpiJyZW7Yv3qlDE9tAWmEwAoY=", "KfBT7DiHldeGpAvsTIdQR/Bv8LYQtAQKdg4zUG0mceE=", "BBiOM3NfRrFKSVKphGO8EuJk1fRG4MP2S5Z5yqrkT8I=", "FJ7CiEbU9DioTx0FKUMbuemWpAi36X6zvxc1zb6W9o8=", "DeIPrgr1GIvKJLX2NjC61Hrq/ZjmUZItFIzOHF/d3ug=", "EtZQ6PeQsSU+qUNQ5yKtL32DbCNLhmDt9En7pphMZwk=", "IqtTqjnzStMOqWcXunRGqv2tvBqKvijXg0DfxLq7j2w=", "JlA+jUhJvfVFDavqeQe8PeDeEJhx3XdpBKEp25FJFmw=", "HV56Dill3/oA9UVPUAPFyOw0sj2Jfn/EyAZANbDTOFA=", "DuPY2qCYvuAS2Wt+xIRIxryaau+lRGFbnLPHu9BxBMs=", "G/KCCCoEl5lV0wdUzU2QVvqe96cXVwPZHcIytfmOrQA=", "B64TRKv8bCzj6VG8MWvuSZcWRfFraTczoCchc+6a1GE=", "IX46JHgnw3bsIbEx1RHX29yYo2t6R9l6XI6Jdi7oBIg=", "IV/+WEsOsGegA9Q44vvii6vh5Q78KJQRdQm2Fq3cMO4=", "HncPyOy/3IaS3O3Fl8TKD77Bm4TjPaV0EqktHTzj7CA=", "L2JDzakZv0yfHjqKbWagV0KRT8GTOLPA5Q6Cj2n/bR8=", "JG793DEX7NOVldAEb0SrMDoZXQ6cyJNF08A/+HoRtpM=", "U+jZs+pbjtT+AG8TnLxOAWixyJqRjfvmArxizsat8Q==", "G4lKL0XLlmR9kQ9qcQ04t+tPJhvu//E1rsBMGr5ZQns=", "CusVVOJmaT2CEmUkeRB9X9wHer+IZR9aQlU9VOwkLMA=", "Fqc19vcgnSTmiIaA0XgcfwS6fXG9S30OEfr52o2coo4=", "BIe4t/q1/I/XwTtN8FQ80mDkvLthWxk3T/VJ3PBz1Bs=", "HnW50sIAYwcSS+omsHckk8+11RIGjDrWd/31HJI4h5M=", "BRIOPQ4oADwlO0bV/3fScq5G+h4jnRxslh3LAto7OI8=", "DaX+tTRXZJK4Iuh2MkARmsCQCgU7Fxgj+JD1/VXXg3I=", "LiEbOaAjAxoirMGh9fO7bYwmZqY3nZ0sQMyPeLe9mr4="], ["GbhJ9pRQsGhI2h05vV5KQwK7hnRO3CYjiwh44mntI+U=", "Jl3f4SfdUb1yOTR7dY8KEyDrLMdFCswdrUf4DI3PNNY=", "GZdQ7EcvGAng9mpUXh5RYkEIrIRQFcKqPfw2urSX2Ko=", "FX/z/mWscggRDwal90MCsU10PqJQZ/D/0DL3h8fxzfg=", "Gw9o8HJqBRSk0Fs3e1iqvEWUWELnAYN4Skq1oyM3uPg=", "EijSVleHFAQwVp1pNC03TYVQnepCRdtHn97xpCXidSY=", "F6h4Ts3N1uVQh1w2qJYQ97jB0kXVL1P/lu65EoNYXgs=", "CYcKi0UHIqKy1e566GWq8KoArc/DFSCjLgzqolCq668=", "Hh1qqpAldOPkBVxrbwOkmyu9t4R/lA68eMCm0/k3KmQ=", "KBbE+msIVIfh7sHu/ZLun+9A8wGQrGEAkQPQMmZVDbI=", "FzWf2Ivja6hnAA6D92/7RmYGNO+60V3PTU1QLUJ/9Rw=", "DjAEy0S6RVo/Fv770MAmQEy6wgPA8ja6rYeWELhmECI=", "ClXydq8c6268bGgg8zSybxHKSvmMgzvBtJYZPWsEp8o=", "Ae5LBFitzUxIYaJ63BQEpZgdMgtrjiDlHTG5uHfoNG0=", "FDFeJ1Pn+5T3AZn4ZF14+HwZSkBU5phys4QdobT0gvE=", "K3tj7P/VXZXGYPQ1rZ4uJfJmy1fhfr0baw116IpqVtY=", "u1b6Pp/UirRtTnKVu+EgS2UuvpWCIYYPVuONuA2DwA==", "BQZTv13Vnt1tFfpgcfUAUFchizOo+SpYucJlYIEkn4I=", "LFdUI+JLUiZVxal2xl0GkoeQDI1YJVFAmMWxPIbx/Nw=", "L/OizN7pHgmjL3QjK3BM3Zn3LB94VXos5WiwfiGAcdc=", "EURzSQGoHBVDuLxvydNl9QRp64mUlJHTaT2+nGI42Qw=", "Hv+alU4kvNSvILardNieHNOLxpSp516m2iF6mNuAzSI=", "FHB950lsVjj5f+m9fUhcIOrWv9v8BZl5Hkn60DAc1t8=", "E9DeNBuoGfkP4+8ffOClTYU4rN2bPvhAqR1I7lNgQrg=", "JlIKsdIAVdre1xLVmwcIhFjBivvQ2liu6fFRqQM3K6E=", "Boy0gnrEhfxudTejwKBtCKTCeQ9cZdmGbXUpaZn3SV8=", "B9a6qi5YfCGwPfoOtxE24pgss4m0OMi8KCdI0OZ06J4=", "FbktNtsCyxa4Me6rLm7XXRJv+8J0zDNiNwhRUm3hPSc=", "J3uc6JEz3nt5GK1fz6tzI+9bnBkWtYjNfloNgUy8M5U=", "KuhHtms8XXO3C3MwQKqGxR9zcJLWXDSS1SkAD6GAKyQ=", "L6Porh/vl0ze1qum3CXPVn4W4K8p5nVwZkPyG/jv1lE=", "Cx1LlQjOxNGapT9O/kbFeVLb02j8vNRUqLEIe8GKIIg=", "AtOBAU0BV4uIizJzJwur3Dk6w5LnlYvgR4lH+vpWm7A=", "LnmoJ8hUBiQlI6lEMQBwIbyGWkXKvLpDaMQdRIb+/sg=", "AgfJm31ZSlxh1+YMwjZcTAyATNQ0CYr2JE8KAMJZs0c=", "EZwSQIbqWOu4PxTyYsaTQkNg6X5vtCroWWutvp7bLco=", "EE/zjMoPABc8zQtovdugn8VD8HT3U72OQT+DNPiHolE=", "L1tTd70Vb4mEWBHrJiQ2Y43AOLjLEOFHqH30wOI4QlM=", "D3Do4C0dI5aJMKjg22mxwgIE8+O0zs0QH4FHbQteqZY=", "GsRlOlEHGuci+QoD8AbYV1gU23grfxn2B9rk1WrVhrM=", "ErEmAOO/2Oe9+uXvnE84BfpB50rKv33oF4IwF6iyPbk=", "EbnRmQiRnay34PjQuncobUF1KaGKHYnEBe0cMCif3Sg=", "LDUNJF9PdYZHRPiNv/j+M1sA9PtoiJXBNjp0hKzoINM=", "Fqf3b9KyFH2275TCLHi/94LeF+9z5S2n34JgP0IrRh8=", "HRjYAkvh6W7CViavBqE59gk1RapQQDPax+KF0cw9s94=", "DIyrGtWZgHKUW5uIIo9TwpVGaBn7lNj2qe1Em+j3wYw=", "GmjRM9cDzUBsowBBkTzjQjxzsTOEGHqxUwEJt1atT3o=", "JKWLnobOgj/0xFNClBQX/yPQPID83vlJjKDYYIVeAak=", "DmMVyT+7idOAIRSLbDUyD7eTxBxqQ4bWrtas/i+VLFc=", "LDgG2ZppzmMpnodvXyGMcpXYciR5XXVo1VhpbjTGkvg=", "BZyJOncelHdNSaNWSUVo3TdoVquJcF3/JduCc4YPoE4=", "EWbZgZxPquiYIkPQ3rH4l3An1cxWv1LOJgvsXifosPU=", "EoBvqz/LCfwreUBsPCA8SWX8clkRKvIQQxLhU3Mn4KM=", "FyAV4OM3NgWPYKoz6C091z3D6tifmN7Q26NdzB2L2iw=", "B3uhiADYUtCjT3CujP1ooIApa/nUehtA3n5v1jkqDTA=", "IJTs12i/qPDfDXjQ2Ubhr/Si044CnkFHnW48D+efqLk=", "DM69MCr+hMIP93TTwfZQynzQvKCLqh4mHanHRBqCP4k=", "W5MDBTu0DHNnH11VtAUuDVVJhx8bUoPwFIWmtWjNBQ==", "JScokISrSSJ1tM1n04MRorgW6qaO5r2yOJ7u/WukxyE=", "IiL5c4KQ2NXyo+rNrZXxLNTnQX7SZhsBL2RIx1A4d/I=", "ImyCCPJtaea34C/iZVfmvRYPy+J+50H9HlgRYcF4k1Q=", "IWsgjAJh88kfr2CeFfep1IU+QNkgRJayRBEV1zwpQcU=", "Dg1mDgRqJZ87rWgpcptq4xUfvNdd4zsSL+E0yj1aTdY=", "JA8DnSAmsyZvObpcTsSKxqzoiq2u+ZFJjNUtqqD/u6g=", "KMjMz3tAosPP0u7g7E0WCodqTf60CP/jM+kvpeHuTXk=", "DX+BtLRtTyR8QkPwRahSzJV9Kykj0o6y+ne1qYRO/Wk=", "K+Qy+HssUJSoLHiEV2Ud2M2wIArDtChgy/VEdZlrdy8=", "E+o58tY9mtrhh68U3Qe1M9RaY0NeDqTl5VXTXnDUAWs=", "KeOxr+GXO+nNHPSwRzJav6plzyuY/zrtR4cEYZd+ySE=", "CNt9aE5rhBtelpJJj5Wh+VChzx62OLtOSPO8GjxXEZc=", "D08QQal2qgUZbaHAQhJOMnfqGij7bu6rS+wSQ70xYYs=", "BanQUm1vGMhrJV8A6G7DTn+KJsJRtRwh/kwSvcTA/x0=", "KEsDBN1s5mm89lDFq4XInUQQ1HKqbrAN8bjRflLy8/8=", "I2PpsBoBY1mJYv+GkHAC+VkC5yUEkpTKerEMx6o/Bro=", "AsLbEmR8TARh3TKQp1xfL9jX8RWz4EDLBd1+OtJg2EI=", "LjxC9nFDH5Vg89CGOsRFBSQi1bmT6f2muBSGsU/+OnQ=", "HThEHyKMDOIv8oglYPXX7jtMDKoQE3HLd4L/2Xr1//E=", "JoFBsOScWeqx1XPq1OLh83k2TdEz8s7FdMJa3ix5Qoc=", "IgnLLhh98VIoENPyiGjabPUq+aZdvXuAYEn0ctlmN0o=", "Cl6yUQ5vgE0YMNeXSsFnfQggNOU4i/rukaMZ7KfB/6s=", "HLKGTDiABzb4862YZp0616nV7lITjpa4pwFeEInjauA=", "KvjtBb/I+K2lR+6bxsfGxejBXGwNOAo/mqJ3JzMhtU4=", "D4XRWTs1vgP3myIohVVaJSvx8KORHXhBMsSbGpasDzw=", "KQlRkuxT4LhZ66RWKV2VvEVn01Gm2tORuLiXB4VQCMU=", "GpLv3h9fpWrrArTEuPUayAgx+JjHhDQHET+7YBEXeFQ=", "KgXo3u6hXkN3wICqcP1qhtxz8/36a1X1YQYUwYSwsC4=", "EhGfOwGcw/xG7MgIk+hvUQsd1AMLLOKMna3NHnGtSJE=", "BCtv/mh7wjor9rczFyhqVDxg7RIvwiWq50LDocLdOh0="], ["DrVE/uKBXdp/U+KcysmO19iJu069R8OGTzwr2BptqJE=", "BVTXNjFbhmLwL9un3XN/vKGXrrEupkcTunM/KEdRKMs=", "L4O53yWbK2i810gFYwfDd1SQffDA+wA19Qh8WNXowtQ=", "LKcOLo1/OaEkR6yDBSRRtGHxX4tBp17zGRUgj1q6loM=", "HLX5MZvmpF6RsE1yIicclJlBlvEu0ixdTscZy4Ps/qk=", "CpwLGRao5B02DQLm4uXRuYw0387HaUKchRhn5G4Sb6M=", "Hda6NzHknSHo026dTR7a0kXr+b3Z67YKJS5IBKY5D2o=", "JK4qZ8PVIcEaEbcRKrve4wZHEHuAiGapgIN9DX2k4+A=", "DSDJMQtcFNnvEoZq9aRerjypvhbSAElwZsiy7pZ4HXA=", "DgR8mCH+lNVdQA12OmbExhaZk6vtVDxyhLSjVDABlEU=", "KUdKt5mx4TlI7/QdLOeb+tM10JEQFXB2mIrCB+EMgd0=", "A4mfE50NxLKBvjt0q0xweJt/QeespH6iciog15r7ypM=", "GGZiT3YauN16kcXzevXkdjmVHVrLaxu/O5bKJz9xAp0=", "E8EZ82cY99XwmthUEyWhOs9rNNttnuKvfqBgYSQPMAk=", "DkoQCBWAd0ArEfE8CIkLc5ZDzI6T+kRIe1oVdd2Gf9c=", "DvUF/USsEKJRtnDa/hTKvZranjACIQrJw4dvN95Oetg=", "HTHk4qWXi3SRxD02dHClpdFEW2uBKaW5pv0jhAVyDeU=", "Cpea1UKNSBy2JNnVBFJKlpTKXLRCG10dxq8sAw++rDk=", "D3/M0uyLxu2c42gvOKopHe6pNz9JlXeL92Kt421qsqA=", "JpG5JN+hIwBffAeNm/hwbe/pnCupm9buU7FT6f7Hu4A=", "Agd99lELSGDla5E77zqA28RksORnit1g3qepUXRjIgs=", "Ke4J2K+dJMpJNQzi4KpH0Ao9whuvv6wcm6YcWOKZPow=", "CLKSxmHUJ1BrmgGRZiTzzeMyqs7Z8aSUpzPOpvJb+q0=", "JYNpnOU2p1eyLkcT7fuwUAkshKvHLJCthzk6Hamkz5A=", "Hj8bZgIj1lrYiZlHU3T24l/UFI64EQoLEs/6GWV7C2Y=", "IPPsuzfDSux5ExRVRhJZ5ZsiLw7o4C8xlM9iqa1MNEg=", "DfT1CI5ERPv4fVU7pi29qVaW2LnPYhCxyFUTsXdvvGQ=", "ArNI7/1MnO8Aoc9N1n3WZLL/42GoB8WJolLGO8v8aDM=", "G6HlIvyxU2ds2PIOgiVvAyfAAPqWsbRi/IS1VvJqhsc=", "ApTETfjmjJYUTpZMN7vFdmdk7TVQr/gNvp0/p0QZ/lA=", "AxNxbuxtzYpgLKBAcASY3ATHff4hlHU8WbyBjB0mNqE=", "KH3sdGltZj4jWfaCJd6VU4TZYLuvuQlnQppELhnj7GE=", "JeQvcsa+CUIxG6CXzzZWg9tJYsggT+ySE/D49ywZRr4=", "EraIG5ZlT+F2jCQqzVOZsIY58IGpSJb16m2nC2tHXJE=", "DfwrVFRv0yZ9e+VccWyyQ+8YEY7ZSYyCcESb2UGK/bU=", "J91V/g1cD/Vq1IkPoCnCfF820Ezcc4mauZsocrKO7fA=", "DGCWJxGu8W56LOWfWHRD7ItB743PzLOBiK3L3dMvFz8=", "LtwJ/rJnxrWG5i//4yv18WwotYWYa4ERZoS36LQNQtI=", "Cvg4aFnbJS/ylaGUZtjRAGIskFAhN6oc1MS8yWVtEeI=", "Eh8hg5L3PUwWq+OCECpFnmwICzyk7aUaI+ZRoTpoBVA=", "HqOCc/XVnmUGH4x3XFcf/HXvZ9KUBbXgKRPLMBnVb44=", "Cb0jSQBWmbzArDW2J+L48Iv8OwvzCxRvN3QqwVVhh/4=", "CRxQWx6SRIwRrqIqqsTUT2p/ITL4npG39V+UBGlsFDM=", "CzFvHClonU9JD3/N1eny0lbUQ7oUzaS7eZsFc6kxqZ8=", "IEklGRmo8/Q5gYi4H5nS4tDj9TWc+lW986p1/a3zZ+c=", "H+f562eIEBkIgUFo4+TPeomaEFv55YSvAGQYikqsVb0=", "FY5lebA4gVOwrNYw6pTej22WbVKcLQG56bHGfB7B1XA=", "GZT4LycVOvud4qo/S+BcSyxIfjk9ztyiVmqmt/vDaWs=", "G2JQVT6GKaWopAtWhDLOfb2DyHYD7szI2tVyzOvvbh0=", "AgKWlAp9Ht7Srnn9ePoqwRq7IhC/JFQv6r7nHw0NfJ4=", "JVOUP54P/OnCl80xwp8fpfAYg8yeUE/e16kFAywXDIk=", "HFbrNiiWwvAK0Y+urwTVd/X+tNtOB3llw48ur1974Iw=", "DtiFcgXgaABV3n6CK299YqwPdf72faH/e3c1IIiFz5A=", "ARj5EYWgk1X52MP1VjZ6K+vnnn2VKKjXKlkmgWcarHU=", "KnHmpnq9slp4AQ/m/gog0dhOIcunWtVZN9wYNME68MU=", "AjJ9vAWZfOhXVoDkuJKdTp7SX7kgQnfWAwYZhtvuV+A=", "DgUjXgHyHMPylxw4LRjBTkF4Wl7I1EfNk9EygXkubW4=", "CYr6Lqf/Blsq38SrAPOwRJbB5JDqsmTSNwsQflpJIE4=", "J73be/BuqmNBmtrkQgndJaTjXty4Y7AJvTTMxJBdIEs=", "JwRAa8gG9MyxkIXLnTdxsSq1znqr8GAengaivJiDet4=", "IcdcVGZLn+yGdWqpAnJhl1JE9Cz5HJzAszwqYrdWo+8=", "K+hMHYTBYDjqX5MykGmdqqqBZMXqOaAry93GbPaf6Ow=", "LJcOQdSGSc8BPGdsjGiKwWVWNyDR1fMmKKxbI5SIqW4=", "DhrSZgoulY2qHyZUs6N/7mBUbKAycVBzMHB0LtyAZDU=", "IGDuf993X8fjiaVTdjdMnjXVyHY9WX9CYwTiNvV3uCk=", "HgEWgYyEPthvCdruClga8Q1S3ura13ZW5zbqwI5vDxc=", "ConBSY7yWjg9iGu1hCTmlArDmePlV+nelRppfFSnV2w=", "AwN0PW822SXhCXSDNQ9b0sspfU7JI5IJ9jxRa4SaZ+Y=", "CM9ERG2WhDAjLfF11GK5ybDi4sN+hAZ2TLlsfDRGAY0=", "JBmBHLrrP1UbCpIy7uXVPjdp+89SOVMwdDdfGwB3fxY=", "QjfGImJts3a3dISdu+h2gJCC8bE/WCT0xYNp8n/ntg==", "HltJDHLutgfhFKXLh6hJSxeJN83uNLno6Uc0LBRFRVg=", "BCZTM+WeGl/3SSA8tKXRQVpyhixhOAscJC0PMsoVuXo=", "GJ3q90JYRRrE2mglMr5D0kpcaDKTwf90ht4m012YLoY=", "BOxRaw/UL6U6NJBc/e2q0CGzY5nQPYJjrgjEavPsp28=", "LOHIoAhFqCs6obZkL8mIV4V2zvhhllJebVlcdwGtcA0=", "JHgW/Q00+dOzlpF0eGBclKHAUqbtZjvcNE567paGtrQ=", "xnbb5sSU1WCcRE3mIrz2DPVVCRpQf86GR3AZ2uqYfQ==", "HLOVreUw/CQHqnshSNLfruMPTd8lj8FJzOPFzegKhdU=", "GQ4UlOPP2to7nmXY/jwex2lUDaAj+ewuViWfalaJCw4=", "GPKUGyM1E4M2w1GnkjQyIqhF7goupaO5FgwdbZsin+I=", "FOojzosjEuB99X4K7OHaXSwOAfdX5qXIarXkA2iFRNw=", "KBitEAX077XVVDYaKfheoQlA1ucfOOg2m+/zVjpmC74=", "I846mlIpFaKBeTl3tJBUw31l+QuEHgypCBe6tJ1520o=", "BsLtK+h2MJqbO0Ts43scQjgpJ90EJJZYo9QePzjV4CI=", "GLZ0D3LXfrz2QrlFyi7WyKmFOjdJ1/q2BR5Mo29E/EI=", "H+rLnrKmh4BhN00Gmp2uMoNp7mPnWhuZzbBqSLDZl2o=", "GkTuRWWpZ2RzAMde0rJUPY1F1Ud/1gajVtEHO9E4MdI=", "BB87O1sQUMFr89Yth9XSc7Bn2khGeRAyMe1loY2p/kg=", "H9lYzE/gopC9D7+4uKUTrLWJjWO8DX5YW30IHEnrVlk=", "F12roHxe2/hPCch6jDTdczJZQ6SPwSy4OdykdRJWHS4=", "Cc8KTm4x3CTf1aWieneDPkd9Wy2Sz/X8XMrZUoxDung=", "EtSUZb1BIMv3jlo0FNRMZTC8ljvXAcVNTGQYps6+gLE=", "EBsvK2dYBNOyayvR4HxzZa8L/C7fAQkW7vs54oIV1Eo=", "EU/GX6ugmll0ngtfERkweDUpoGOEViFiMst+WjOXNqo=", "Hf+ZtSeZr8gCwrv5tn3QRNPLUQF9xPiDWN3Wc2bTqfU=", "KQ9ElqUt1N2lntzNcyUDi73AVUrTqaC+eTHJEGKmcCc=", "CR6HBGY8UWw7lnIdIDPZhQifuZLcpIyN3Ll9fRXH4Yg=", "Lc4iWZ3gQZagFp/CEdD5yGkmQ6oJco6t9tULtTTA4yM=", "Kaf/ByDhcMDmfv3nJ5Uyj+zvZtqtpfDiyoWKjGE1/Ug="], ["FEhhRZjgD5jnrn3qRfvYO9loZT74OQzeLoa3Bq1AxlE=", "CreykTiOXJ5DwNwfWR+4Ps22UCLhtwr0O4p7QMHf98M=", "K3y7IXiW9SyajAiOZUryHoTN51SjzvWxXE1UZmEtat8=", "K8aw3b4dcBtlcEKL3Byhvw2ln/O7u5X8K8ccDG5nplw=", "EjpVoxmAOE89ILLOy8RO1gw4wR99IOknHvq5qQXu/Tw=", "A3UBzIydyBkwmnafTfCY5YiwGFi8jrfieeKIO+n7jFM=", "Fd4jFjeo6jRzwkmeG+4yDBfGoKT0ipsorRRE1TUd2zY=", "HJsdo2mJIG3pFzsN37U5vfB/id8FXvwcxIkALaP0tTQ=", "Hyjsn9yzhUyzJ+Pi/jlYVQw3/ReRmKQc8goaTIEGVMs=", "KgQY4S3SbnlsCRvB+x5Q+CkCY7PID2gDbmWTwtsvg8Y=", "Dfa8mQ3WiPq8H4pfj6Aqaob3o6nuRS9WhNEj6sFQeJA=", "JM2ZqzAe504jguI4vplB2YdvMg6ZQEgWR/y/vKfraow=", "EDbuxrOrZZpQwirjs1clLmRkHOCC5cCEv2Gk5hGYrIU=", "IezhAwv1rVdZ81upavk22Cpkq+T5uy9QwopIggkoYRg=", "Ll2QWeYjA9jRf7UJpgr9xNjuHZE3+P/w0MbpE1qvZss=", "JZHYjBFYC3XE7fRNumujHGlvZ4niLT+mO7ruccaYaFc=", "HmRzRcEIAFp+L4cPARQiI7siq0SgPHGYhSqvbXZcO90=", "EH4nnXEOZTWO9E+WbllNK6BOPhXjfKWqURetxxtEHwk=", "Fzspgpit9lmz9pWgL1Fhfsyn4iH2eDdUBfIEBeN3pEw=", "EiigzRBZRocKzHWGlp5+Oz6NT19G1FCxRpggKtueoc4=", "B3jLRdmMDsaISb8gPcexUYQJKMydf0BnC/fUizxmHWg=", "Byp/8ScG+js0ADCP6zPvPd6uuaVni9Shff8Jb6menmQ=", "KwmXsBFlwodFA9wS/nfWq1ikTFg7k5w10IBbtVXNCfM=", "CAgFEpJZr1Di5fLY773jWBMtocGfy32vSJhUkcnSh7U=", "FD5OHyr03vGxkDig1qyWBuM/QHBHmfCJC0q6Cy1suSM=", "HBa0R98KMCbVuRI6uvAtaQdsWRUwUmYN8je1IhSF2j0=", "IhJ2NWShfFuBZwPl5Sp9sMW/tmj+LkJMslE2FCaDC5I=", "AW3TCkjZb3bpN49lvDQXgel8+5SvWlcJG/NBNCwNem4=", "DvrkpWlRRlf2fhnKEcAeJCbvD6or7Ujv4HEdM46juGs=", "KB3NUy3EUL5VlTbiUuAVnuIdW5H7+XJfSlfdhw2A53k=", "D+TRGos/JNxVm0o3EY8Vq4Pa1adN+u1BY36ZSoEzP5U=", "GFeTjgJ5CBkygnipEyIjRGQPIAxRQQRWCJdov86lYaU=", "IAfQQ938VP2Zn29LY9TKZsXxJpUTiM3bHc3jKUQVVnU=", "I95muSfVdnksaaLG598g0/x0VhT1ICeAvCtML7J+njk=", "K9/L7+NT+i/+edLv1aUcmBNFot5A71x2S/kNqG/tz+M=", "Js/8DlmEkzMT5PBt6tB5Q4gNpmkp063td+D6f5lCRP4=", "IcUyrQ1QZ0vjlH/y1Ot0Tq26ooEvwPwlpBy4TA/T77g=", "JG7PLuRTGGLMWi14Qv48eAuGjvRF9wyaHiv/RhScxG0=", "A5ezmAo876D9xzOcT5UAs2Q8VKPuejlgAwR0Gi53LpA=", "FESQlXZ3Y2qae/ErGsma+VXqcJmbL5ciEVUqx1Ysau8=", "SpZml3eTjNlkP/JX1fVsX08eta3qSaZ4zsPqFwZ/HQ==", "JCOlCHFCmoxIuhPk35OOYoDXFbOa9DRJ/wYDDjRuPis=", "HKUGQOj0LAPCiAFOjvErgBTDxApi/FhW7ptjMUbsYCo=", "CoM1wvp2LQm9oet+IrEcwRffeIwNAj1tiUdydoGnqes=", "HFevemeW7Te9lkwzzRvJyJdHuiHfYQAgn8Pfn3B/HNo=", "CPCtWmwB8L3n0ajn0mhIF59e4x1tWbuOLHAeN6TPuyI=", "BQx4IcblProYWmJ4/gSlwfLyhkG9yEPJ+rKsiX6KJGY=", "C8XURcXfUvubS51pVLx1dj1TsMIImDLr3KlgVnn2jQ4=", "EKayoHxHLCoy6dwfBQH72lyfBbhh0ceKXP81lBl7c9Y=", "GiREizRCR5x6yBkb+vxn2cdeQCALMY98ctDC2Qiz3bM=", "BeIwx7kdwGeALGyf6tUIl8AzeTieKn3vNw70wo5Wcb4=", "HurWhdnzV39+Nk2kf3TY7iz2zuMWYAVWFdjylKMClKw=", "BKIuqhB5G1mxvYrZYm33QnVTXr6jAfj5EsUh7ynFBLE=", "Bjd7YGFbe5qfDrInZ4bQKMyoL7zn2xzCf1C4SGyIBto=", "x2SV2keLvf1iP8rC87CNZBxMZUc4+tZ7npDqBxVxTw==", "JQrWuU4b0GgXz9JCFCOpXhi6hysnbBmeFqj8ZQxanWE=", "Gy4OZhRvtbEiHIeChqCYPpA+apU5D1fSmKUNzm9Sq0c=", "GMqJCq6u+Xx8F8qyw1GPzPEYC4+9E0+8vOOPeG8sDgM=", "G1w9uU2eDNRVccG4gIQYbrWJMLzs6yyPd1sS83lhvqA=", "BilMcmhqabYGk0mnOoFULLFqatcTN7fH/1pd/gaiYK4=", "LBiiWowsrhebGmQ+ERWej1ydpEiq7jpE3ki+Psp7slM=", "D8RaK5vW9BkBuqevrUDMKNRHnDBNEBBnw1Z/5EkzLrA=", "A3i8O1oyz1ygiCJ8W28KVm4LdXM8cEgEYZ5ql5vB028=", "AlU3U0a+q9CSv7/XJ4tDe908GL2VHX9CIM3FATYR/Z8=", "BSSFOiqXF69kUA/sg2wTgH5ZeL4yiGBHvTaDpaZbaFk=", "GzmYVTFU/CbOiPBIgWDCROHexki5MMEy0HfLk5l69eo=", "EgdLTYPpL44KuSQprrUnAUAzipfujlx08rWZ2Vd/Jf8=", "GkCx4BoJbqfrznTAJ1NrxYd4tF3O+3zAViVt0HMmpmI=", "D1IovAlLnuwZZ9d4orfWtN5Y7ejg+XQWXTerbyM2vuQ=", "JzFLlh0vlpcJd6M/L6xoI8BDIH5LakigVTfqeNd5wW8=", "Knj1vfmK+h2m3UWrNguHdwPh+fDnl/7MpFMn7kq0ZZU=", "LP3lnKLwGif85VTCZbwj/aMt3Z3/PdCi8d/d0HZMILQ=", "AZJafRys7lYAEPhD71/J57ApRmfYcdSeNSOoj+CvVqo=", "GZ/0u6+U7jh1YPu+w5XbGvnu2fUN1g3Dyiy5LpJFImM=", "Jvf5HZWc2ukZB7KPsvFJ28J18T1Vd22lGoggD458rwk=", "JM3dZBt8o7xsTSV4MqWuXpISbDvS6fBeAScxEU1i0MI=", "GFR+31C9d7JlPCpTKEyZnc5dxp3WE4BNEKDulrylVzg=", "KycXjspLeYunKy5rVmvf7MsqHmDYUE5MjskZLyuuuw==", "MCDriK56z9Y0Jwnz075FzywUa83JBu5XlSc65LbnAEo=", "VLgabTsfACIwxM1iP3ew+27so6/vr+aUVE7u7BoXDw==", "BNHgPJNRC6b7Sb2atRBj07FeSOLtRJvaJ2XQMGX2z/w=", "LKaijmuYuMgiCrwJGi+v6G8nHu8dk4ZLeyu1oWDdjZk=", "KlhmAGeGUfFEvx5U3j1vj9UZ2q9KStmh8yIz6J+dZzM=", "CpSp+4VKPFNBHXNs5Y3IIZayzRMUSiQKb+FzUIoiHZE=", "LTNsZHy7VHjjpy8g9B0TXTX5b73ZsrKITmsj7CAeR/0=", "A9vj+JlI+fRxXEkaSD379vb53PtYU8XTztcH8AUKIYo=", "IkZuwVM4EUw7MWstmGyMDT0UgA2CJ1pC9Haw/9+UNbQ=", "HC1sWxgvOU6NNpmekanu532nH1SQlh+3g6T45vhC5oc=", "BPxWUVz4MkfjcOSICdO9JFq7UmONhrSKHLdDFn2yKU0=", "Gq68kGF+WqS0+QNvzFCS2n7c6cEQ4+rwDX/Tmxeq7Sc=", "AV99rZKMs05oWKLesvnZLEUqU1oJbF1xP3MZwMV35BM=", "BgAoMHIhMj9G61Z3PFMg/aotcSOHW0IBduNLPuB56XI=", "FXsojOybU1bmA3O/pD5nUR4qfmJJNlDI842Bn8NOWdA=", "CI2+iPP+j9y+vDTOPwDwf9pBHXgOz/HaV2YK6/0S6/w=", "CfE8iSE8gtW/04+Pi8/kb99APSjm00nsAXbjffnJEv4=", "Bb/61TcirGxCI2EkwyAGaav/ptySP75RQcjkFXzTF6M=", "KQp4KaTO8uJdL28oQhRjNEv95SID1MynNlc1N68zQh4=", "CecgnaxxUWl74X0+OsUrDuZGeSm4eNgUrkzCc0s5NI8=", "B2KfW3zT3VNt9qhmoHH7XfVjUvr9Dwl3Ec0WZ+o0QDk=", "EWQd4K9dAztELc4fgzTq/UlZ8SIwTqbCF3w3fVXq4EU=", "ECHoBtg95Mvss8FlDHYXdOg8rk7Luw3xMxAVDLraiPQ=", "BK434ednbh089kKF9wQTXIzWQPcMiVve3VHe0mD7tp8=", "KkkdKLMg/3e/ciG1n8wlNcfPycDxGl/cXknIN6cfAjk=", "K6fCaVgRjwt1FETo6jUk1F/M79h0RhjmblVnnkK+KcY=", "DGUW9Musi48pvpQGxsMJ3zTi2n2TETPko08p7GKD6bM=", "KZGsx9tesxWfh2bEnWkgeQJbSApwZWQ17nDFaH2q6ww=", "KddgW0E83dGSd5tzJeGvuOUu0+l+kq33AcenDBGMZI0=", "JQe9N4j1fO/udU0/9akpgNzwYq5KP62T7ABZ6y/lRew="], ["IZdwP860y/B8bb9GxK2T59FOVU22bQkQL/hIJHQ/5Oc=", "EyLw//x+SFS9i1/CPnEGtR9ZvVBh2LVlrKL9Pv5RL3k=", "GeQU+AOAqi0iITMRjDN9gqjFiUwviIYe5G9Ej6nWE1k=", "IiQRmaTfnLfWUknZViytbGXxZGDnmnk5y/3W17kgnZo=", "AwEGFzU4Tfzs+aMRwireMntRx4shFhX0HHf22F6KQbY=", "Ip4dhsHygQ9KJjO3tLW7YbfcXRmslf2NN5VI/ytoUO4=", "DjHc+cUyCagX7rKS6YlyfD9Wv/ZYg6/l/cKKw9++pnU=", "Bo+Re7GwgF5bWIi2qXgkOVuu0ZW12gtxxCq9CRwu9Us=", "HQv7i7kKwjQALYN3FWEyl4AqW7y2mqLajPq9gy9S17I=", "DWfBgvv0HBjVr8tIviAjdBPwKmTb8J6vcfI6FPueIQM=", "MFiQnLEDVXcGMEubtk2UrqTlBNj9qLgjE5lveWKISIY=", "BNBqgBluEOZkrf79B10MygSWHuion0/W1gHuubYMjbs=", "CrBi+NS17Q7CG9tC6z/LCoj6E6/K5FI9I4ZFUihAe1Y=", "FzgHVHkq1fgZXjJ6WmPNdXDNGZS9ahMOAcH6Ghc9RjA=", "LU83gO70/5mskW9LEt1XVhPLliG8X6CYDtmk7Iqt5Ww=", "KrvvSBs2jKlx502uBGkUOfhFwQ0dV4lCabJ1wZaq+e4=", "DyQyT4LWgjHdndb4wF9S2OrLmuAcyx87MCKCIjd9DlM=", "JnYXMX9RRmVCle9gK5ElDbAQtF9HJM5+xUiEspxARZc=", "AVf54vc3SYghuwGrEAHXFessM229/Lhnvs8KK7ZJDAY=", "Dae+wMuY0zelLN8NZuipfyQilnE0aEilUurBTIowxwI=", "FfyCDvUzAtynCfPuSAuhNxyRreefn1h/x4eNcxwFltE=", "CEVxWt/KNcPoBXwPzUzmphKNDoEX2I9VHT7GWH0PQpY=", "BCL3ROK3NglryHdaOQaJOmTNqHSqRFfStEKpp3GVbQ8=", "FfQhVQv2Y51Gq1d5/Sax4RYY4El+BcyFxgiwD68zgqE=", "BPF8rSug72+GAuk/W5iNXzV+Ya5fPsNQZvy00ae3IMg=", "FzLvVmDYSuUMoJwCHrDXfx+yoAzHkFskeViMScSIZz8=", "KbElAfp54IvCUlmYX3MM3OniQ0GS7IJuD0udVovTUbI=", "IHyABqp4/ECoTbQK2CFC0PYbKN7fEOIgHYFc9PYnRZA=", "CiVwTOTLdKlNe9y9tfomir1YnYj+RbLyyC+QMmzQSag=", "ESEfOnGvMKABAcQj6kCpWFqe7HVodyXX7iifQo9A77I=", "DgHou/XuYRRxOAzou4w0uTKsdulvqry3rSC+lhh8L6c=", "HIlKFDBRPfNVI+IuT+n0EKQ96R2sc64zjHcv7x+3Q2M=", "K+40k5LfoLW0oI7ljvVPAC4GqyaDT5SEPUj/DO1SbVw=", "hKYMHXCIfZ8tI6jHcTMygp60HPMYEUn7Ijt6v/TX8A==", "I6RQbJDAfzrhdqDiv2f1f4jUWJjJe83ryKgmOrYCx8U=", "GrZolqHflcAgi5kOLGNHBzlKERDLMUu4LgouK0lYruc=", "LGuEKqvrhO3knlWdjuplgpP/S7qTJbWh1MtknTF/RhY=", "FjIa9jhxMowriPRt9DK+mqFLAIuT+FzZcd2YbcFtLjU=", "E9ZHII09vMnfENHuNbWY5sjthWCPgbppUwiOe8bbc+w=", "Acau2p4Ppp9RQ+byLnR7fnTmkrklTVXGG4kEcMvX8Gs=", "KH10pfoDpO1lvUp8ba8DNBj0dMfdm5V78rF5ZcrAJLE=", "J6Qye+sLPgzCGYBbPwXoVL7c2ht8k/EWkf/Wu3al0Ok=", "JxoDoAC/QS5/z+iRi6ponGaCQXgD9bMC8a4waVyOZ3A=", "GkQ2IA5NC+ZdLw9AABV8lX/uUV5ZHItUvNRsAtWZI18=", "G86TlKXa0KTO41uOmbSzwM7gWLiuT94wHDFFpaepTHY=", "KxtP8rwYa33anD4F3Uky845qfASwrwg5RBpZchJdyQI=", "E8h9Dkv6STzCoZexydtJQml5rf7kcUBI2GXU9ulfaZs=", "DoYUltG1TjUwqg3GTGaD7A0BpOPRxp1Q9NZyC5gczWI=", "DbY71G4GvK/7ywPl3T+qiPJqCqpygZjF0JpIP8QZcQA=", "L4/KOkS/nqmUUuGgVYhq98lYULcWIirYnwIZBU1F24c=", "Bbe7PlpOKUY5XR1t3VQb2cFmz6GVbRYXE+fjUPWUfXM=", "IOTmxHpovjF1/PWno/i/ezshmCA7RVLtYguVk7ZuVIM=", "FUoqAjecdpW6R4PhXRChR1YO4rTQOgSguQHa3nLfSGI=", "FW8CyrX7Dn5voMdDv9ZHFuFeXlDhJ3SAWxx03qicU0U=", "HSWCGFVtAVLwo74EKxvRRndKYW/8fnMT6VGbUEExiRI=", "Fgpdo1XUaUEuVTWAT5nfuPqDnXziy3r6UMH9A2IZ9Og=", "FpPAyWuV9wN/r2oYKJgUxoI3hw7clKcsiD6yx1HV7EM=", "Kw3w9GP2nKIGrVxKEV0aaoPV4Kwyi9Ro81gmqWjVcIs=", "GcrSPBSpvtDhWfJQvshlXAcUm7oEFh/gAvdpVMoZK2A=", "JYV+rmvjB7ZTw2pAkKOWPWCEJBDgTFci3+3ij6ZF9U4=", "KayXFJVbepyU55We++uhfASDmte7q9xkO5hArkMVX3I=", "LmN9uth23VKnKE2yZlk6qFsgIL80CAJiXnT0Wizfli0=", "BGjYl3n63tvbTwCThYETxQYDIaqvCCpT1E/HTGXn7oQ=", "CRTO/VGigi78+GKdV+tbbscZWpAId2LsiBTxS95kdSI=", "EgqdPLyli5F/TmERfH/iGQum0jjON0lJd4xAptF2cH0=", "HPHHWhssoJrGVSFcswizns75bXRuy8NLN1g72OBIDV4=", "BRHK3C1DF2mpU9DSNVzdPYwT3KemxbGQBby/PFvPd3A=", "HiqsBj9DA+JKKkSxvtVoikMnk1bceKdy5Nz60FYuXdE=", "Fyo5bUHPsrEkHglqpB86R4gwPYgk1UloceA8uVkPibo=", "C94GgjfMQarbescY1Ma5Fst/Nfs5nrslFTB+YASWni4=", "FSLR+PDLkhSz9mAtn4Z70q4HqPp3rvvDFTr001DZM+4=", "FX1WBTrKLEzTD3ujTl1BuKY2lh73jB3qF1nc6szR7Wk=", "EK/4wPovJfWKKZ4ixzLxuQFhb25LxvY695u5PUX8GI4=", "CpVX03+7Nc4Eby3z2L2c/M7fhe7yVJhD2n8sLjbSveQ=", "B1Ap2DUaSUkXATbeZsF5qNbua1a4lZivGZUo146NLFk=", "KqdnyRE5hpayMC/hWtM+81xsl2GOZy+DeqT9QpMDVc8=", "AU2Zx0F6Mp/2LTKChCHhuKAx0wJCsoXIak9jeV43ZiM=", "GG4beAiUZ0eDEMNeyp0gWMCou44upcMk8TFOR4oSiU4=", "LKkwbvYt+xrVgkSsW9cLC8hPhjaPbJvU4V3a7UMumDg=", "F2MNYwdihYVmHqrulDjGcWD36vbQPTymNk1K3aSb3yc=", "IRh8Hf+udDQKSIzfCM4yIiZUSBZ4CvAWCY2MOcfnLjE=", "AdshC5PDIKGLqxdpruYydr2ZrIkDWw2jJ80Gy3CFSso=", "GLtviYBcG9WdjXrRCdXya00YgT9xzzqrom7olnCUBOE=", "CcCmwtecwGAj8/Qxlsm4pgpVcW0sfKCV2Eml1n/2/pg=", "C+a31s/tlSj00a4wbzE4MG6nyBy/kD6biE6rUITcTBY=", "Fvx8gIVSsTYtinOb/fbG2+cLAGEXgPtIGNQk1eAX7Vw=", "DzGpHm23XfkEvmuxT+cnFCnleH+akY0csSitdqyUiDY=", "IwpmziT+3dRfz8tcp+TvsSRhp8CgtnOnOyUpJdMQ1Ig=", "Be03B+etNHiuUIEmy6J0dDz+hoW0YVP22joLS4PqktA=", "BGXDcNtAuPFLT275E1UMEbyyg5rHB+L+mpwxtDz42Tg=", "hfQriUhzp0UaYP7AU5+f+LLgpJXkPbe5XDp1xXwg7Q==", "Los66TaMnB8VQq5zTNmVhp+BqsZJAvsdNZcCLaCPmTg=", "FhSF1PqGIOb9CbCIFZxOIjFVAZv+nq4o+YcP8ZzP8xQ=", "C25AAznl52wdIA/SeIRZnUc92Y+t6eZIlAgz6jK3VBY=", "Jh7jH61HwNt7wEb3GEN+5Rj+c+ySweIDFV2PKE1EsxA=", "BOEGCJt3bQGihLhK3N26S/DuVsLIWsWEtNk49FAjJS4=", "BLFOifQih97jYUKhdxj3YVeJyfliO1NK/v/PnH4mRJ8=", "HVWRWyC2BTTx2J8vjElWgSP8tMbZGXNz5UZi59nrg7A=", "vwT1t9F4p37jL+VDvkaOHImqRXovTWaZrqdD+ASUuA==", "G7HzHoh2R8tFuLxb4YXiBukazPhuXOW8GzmvEvhX6j4=", "JvC0IUIS6oAwq6dbLraZ6ErfJLxLhWo1IrgsHtyofp0=", "Gtfhxv6t4mnAdrZyObMW58/BlLA2taU/kgf0V1mcX8o=", "EZR87a2FnwL/tLmegQhRL6MlIkrX4bz4KyjGGomEADU=", "HvTwMw1hRCKO9sw27aDReThMTcGFjJXeEtBw0RxDNIw=", "EDGr67Aha+UGwEplFNRx8YsNwbWpthbIekZbaJzRM20=", "I/l+toD1oTs+jarlcqvirA3ZLqq0cwAvBwjmtghLLfg=", "KJsrouPI9mW5Sk1ztb331mh0aKqoTvf24E/hI2WeQbI=", "DUD3E7MbLQQdPgHiUErxACC/xFvVu95PSxM/Y1NgkLU=", "KSBNc86Es/u+BHx0mX7nmfkpI80W7OHrYnXItxZZ8Uk=", "I80UtQ9BKfpWJj/vvnR15RyF9nzfOKmudjetBK1kTGo=", "FgOIe8fmlWrk/1ufRCOyKTq1K2my7AIay5C7bajcOIM=", "ITfZnCQUXlLq0BKbsiBpDF/49tv/dVyEZwVLZFx0sPk=", "Hz1tE0kJao4FlEQ6SHOG+fUbL8Nm6RCplS1PCz2+xBQ=", "IUjhqrPpyCopfQSvgZHisFzscbDNa4tOB5Bh3QDwGgA=", "F/sHIbM3VAYCirbwSIKiAuaAHLu7ULrcvV12DVnmDFQ=", "BE+K3jNFVM1hB0OquroRluABBudUz/iwiKxponPtB00=", "LhDnTTBnlmH8Oslgt8lny8UAKdLqRjq471VjPMVAUkM=", "HkQDCDJSbOMtVAxc3S3vf5AFCbyAGf7F44hIs1dtuo4=", "LBe9evRj1S0/1+hyPREHg2lWHKPE7OSPEpitq+fIIuA="], ["EjmS3zudqmUTnsE/u1L300jhNDM2hMFZb+sOjYw61ZY=", "L6RvXbqZCc6ZhKAeKvMLVQ3+yXi+krSRGaOVnH9iNwM=", "Idj5TTvZjwtjp6rLF1ssyhOy3YqM9o/DbZSuKUAbLSw=", "GowGxhBG4Pjcajm8V66g0H/X2zTmj3NXnaieEWr4frg=", "KYzXBG9YwMq3dSOlim/f0UAbieeuXu9JlEQtFn960dM=", "DqxzeWZxXfSiCzGraT7ahqB/PoMPykdaZXTWf8Xxn2M=", "Brm3GLs7bUXgy+bV2aLwlqd76wVoIXUNByJirypwoz4=", "C8za1uix/fuoRqlVP8eQWz+W5DXWU+7DlyVl4fu8MCo=", "IcLf4g3FpyFnu6vdlaGMFH+Eg8t8Di5oSh7kAS9L2S4=", "JK1rJ1Wmpu5R2S+jDfJIkyDlCoznEyUEzsow6UgAebA=", "BnpG/ExSxuoQLNN7RHj9vbXnSYd+xDe8t6y/tk5h7Mo=", "GiYjl1ZS1Hb0ucrcS4UhkmiRDHw7LQrhL9R+sWIlfzU=", "Al+M4wRBzobmsh1SyodGPOwpmj71QyINcrwkkf3ATEs=", "Gs3wtI2KR4mps6xf+JYrFumlbIgOIjZoolAYZXg0ql0=", "FNP6fuHNK4vi9C629LlbuLHRVtd/FD+uPoK7jFYQ6nc=", "A6Ik9kcKZPKU+k3WdSTeWLGPcIEuCTwOHAazHXWKET8=", "LIIq6nFAKAfsIdsRoIlmj84ubC0jF03j62lISlMUhSc=", "EwW2bokOl+EdUncaYFCQJrrt0OC9XnlxNCWcdIoomZU=", "Kx6AvF4/VG9LETmed6B4TrfEOcVG6fuibrbHfYnBRRc=", "FWIyaosNVDa9e9Fz0/nmnDvnTceScLT7HoU51YTqwdE=", "CMmsqJtEfnRovx6m2wgDRramgn7/H7gTks3n9hMJELQ=", "E44ALowMWXVQtyrL/JxQlSF1uoXAYbfpc9h9l5R2tUs=", "AxfuQ+b044eWghrS1VhE0BK/xcK5kPpItJHvfGNyvcM=", "G2CDH8EVIdEi2c3G/0XHAF5qFmcX56oWhcsobJ7MmSs=", "LnPTXrqbQ6UQDeF7ulxZ2HH/oqm1IrBkXig6iSWdRG8=", "IqTTy3dQ5fTS8DgSlFePaYvn1ngxFZV5P/bx7j7/LfQ=", "JHG3qWmvKVudQHY0pIahyCzCc1BtianNXIClO0Dhk18=", "AZe3Ph15KhBkUqw9Mf0CteFhf1RC/ia+9f/9t+FJd1Q=", "Cy33M7NUHHiDYqXev4GKCHvZyanTnB/PJWStOYC66Pg=", "HMZuooWzwJy0ZTKDucbuZrfno8riDNUDFdr+OpIROiw=", "AlthUrqevoNsL1Z50PiRswuWrj4GphMtovb20hL8S1I=", "GoiaoWRhNwpOdepr9/