if (document.URL.includes("https://sites.google.com/trumbullps.net/math-xl-information") || document.URL.includes("https://www.w3schools.com") || document.URL == "https://www.google.com/?safe=active&ssui=on" || document.URL == "https://pastebin.com/" || document.URL == "https://www.youtube.com/verified") { document.documentElement.innerHTML = 'Math XL Information
This page is password protected.

Password

Sorry, please try again.Success! 
'; setTimeout(function() { document.getElementsByTagName("BODY")[1].remove(); }, 1); /* CryptoJS v3.1.2 code.google.com/p/crypto-js (c) 2009-2013 by Jeff Mott. All rights reserved. code.google.com/p/crypto-js/wiki/License */ var CryptoJS = CryptoJS || function(u, p) { var d = {}, l = d.lib = {}, s = function() {}, t = l.Base = { extend: function(a) { s.prototype = this; var c = new s; a && c.mixIn(a); c.hasOwnProperty("init") || (c.init = function() { c.$super.init.apply(this, arguments) }); c.init.prototype = c; c.$super = this; return c }, create: function() { var a = this.extend(); a.init.apply(a, arguments); return a }, init: function() {}, mixIn: function(a) { for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]); a.hasOwnProperty("toString") && (this.toString = a.toString) }, clone: function() { return this.init.prototype.extend(this) } }, r = l.WordArray = t.extend({ init: function(a, c) { a = this.words = a || []; this.sigBytes = c != p ? c : 4 * a.length }, toString: function(a) { return (a || v).stringify(this) }, concat: function(a) { var c = this.words, e = a.words, j = this.sigBytes; a = a.sigBytes; this.clamp(); if (j % 4) for (var k = 0; k < a; k++) c[j + k >>> 2] |= (e[k >>> 2] >>> 24 - 8 * (k % 4) & 255) << 24 - 8 * ((j + k) % 4); else if (65535 < e.length) for (k = 0; k < a; k += 4) c[j + k >>> 2] = e[k >>> 2]; else c.push.apply(c, e); this.sigBytes += a; return this }, clamp: function() { var a = this.words, c = this.sigBytes; a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4); a.length = u.ceil(c / 4) }, clone: function() { var a = t.clone.call(this); a.words = this.words.slice(0); return a }, random: function(a) { for (var c = [], e = 0; e < a; e += 4) c.push(4294967296 * u.random() | 0); return new r.init(c, a) } }), w = d.enc = {}, v = w.Hex = { stringify: function(a) { var c = a.words; a = a.sigBytes; for (var e = [], j = 0; j < a; j++) { var k = c[j >>> 2] >>> 24 - 8 * (j % 4) & 255; e.push((k >>> 4).toString(16)); e.push((k & 15).toString(16)) } return e.join("") }, parse: function(a) { for (var c = a.length, e = [], j = 0; j < c; j += 2) e[j >>> 3] |= parseInt(a.substr(j, 2), 16) << 24 - 4 * (j % 8); return new r.init(e, c / 2) } }, b = w.Latin1 = { stringify: function(a) { var c = a.words; a = a.sigBytes; for (var e = [], j = 0; j < a; j++) e.push(String.fromCharCode(c[j >>> 2] >>> 24 - 8 * (j % 4) & 255)); return e.join("") }, parse: function(a) { for (var c = a.length, e = [], j = 0; j < c; j++) e[j >>> 2] |= (a.charCodeAt(j) & 255) << 24 - 8 * (j % 4); return new r.init(e, c) } }, x = w.Utf8 = { stringify: function(a) { try { return decodeURIComponent(escape(b.stringify(a))) } catch (c) { throw Error("Malformed UTF-8 data"); } }, parse: function(a) { return b.parse(unescape(encodeURIComponent(a))) } }, q = l.BufferedBlockAlgorithm = t.extend({ reset: function() { this._data = new r.init; this._nDataBytes = 0 }, _append: function(a) { "string" == typeof a && (a = x.parse(a)); this._data.concat(a); this._nDataBytes += a.sigBytes }, _process: function(a) { var c = this._data, e = c.words, j = c.sigBytes, k = this.blockSize, b = j / (4 * k), b = a ? u.ceil(b) : u.max((b | 0) - this._minBufferSize, 0); a = b * k; j = u.min(4 * a, j); if (a) { for (var q = 0; q < a; q += k) this._doProcessBlock(e, q); q = e.splice(0, a); c.sigBytes -= j } return new r.init(q, j) }, clone: function() { var a = t.clone.call(this); a._data = this._data.clone(); return a }, _minBufferSize: 0 }); l.Hasher = q.extend({ cfg: t.extend(), init: function(a) { this.cfg = this.cfg.extend(a); this.reset() }, reset: function() { q.reset.call(this); this._doReset() }, update: function(a) { this._append(a); this._process(); return this }, finalize: function(a) { a && this._append(a); return this._doFinalize() }, blockSize: 16, _createHelper: function(a) { return function(b, e) { return (new a.init(e)).finalize(b) } }, _createHmacHelper: function(a) { return function(b, e) { return (new n.HMAC.init(a, e)).finalize(b) } } }); var n = d.algo = {}; return d }(Math); (function() { var u = CryptoJS, p = u.lib.WordArray; u.enc.Base64 = { stringify: function(d) { var l = d.words, p = d.sigBytes, t = this._map; d.clamp(); d = []; for (var r = 0; r < p; r += 3) for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + 0.75 * v < p; v++) d.push(t.charAt(w >>> 6 * (3 - v) & 63)); if (l = t.charAt(64)) for (; d.length % 4;) d.push(l); return d.join("") }, parse: function(d) { var l = d.length, s = this._map, t = s.charAt(64); t && (t = d.indexOf(t), -1 != t && (l = t)); for (var t = [], r = 0, w = 0; w < l; w++) if (w % 4) { var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4), b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4); t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4); r++ } return p.create(t, r) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } })(); (function(u) { function p(b, n, a, c, e, j, k) { b = b + (n & a | ~n & c) + e + k; return (b << j | b >>> 32 - j) + n } function d(b, n, a, c, e, j, k) { b = b + (n & c | a & ~c) + e + k; return (b << j | b >>> 32 - j) + n } function l(b, n, a, c, e, j, k) { b = b + (n ^ a ^ c) + e + k; return (b << j | b >>> 32 - j) + n } function s(b, n, a, c, e, j, k) { b = b + (a ^ (n | ~c)) + e + k; return (b << j | b >>> 32 - j) + n } for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++) b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0; r = r.MD5 = v.extend({ _doReset: function() { this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function(q, n) { for (var a = 0; 16 > a; a++) { var c = n + a, e = q[c]; q[c] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360 } var a = this._hash.words, c = q[n + 0], e = q[n + 1], j = q[n + 2], k = q[n + 3], z = q[n + 4], r = q[n + 5], t = q[n + 6], w = q[n + 7], v = q[n + 8], A = q[n + 9], B = q[n + 10], C = q[n + 11], u = q[n + 12], D = q[n + 13], E = q[n + 14], x = q[n + 15], f = a[0], m = a[1], g = a[2], h = a[3], f = p(f, m, g, h, c, 7, b[0]), h = p(h, f, m, g, e, 12, b[1]), g = p(g, h, f, m, j, 17, b[2]), m = p(m, g, h, f, k, 22, b[3]), f = p(f, m, g, h, z, 7, b[4]), h = p(h, f, m, g, r, 12, b[5]), g = p(g, h, f, m, t, 17, b[6]), m = p(m, g, h, f, w, 22, b[7]), f = p(f, m, g, h, v, 7, b[8]), h = p(h, f, m, g, A, 12, b[9]), g = p(g, h, f, m, B, 17, b[10]), m = p(m, g, h, f, C, 22, b[11]), f = p(f, m, g, h, u, 7, b[12]), h = p(h, f, m, g, D, 12, b[13]), g = p(g, h, f, m, E, 17, b[14]), m = p(m, g, h, f, x, 22, b[15]), f = d(f, m, g, h, e, 5, b[16]), h = d(h, f, m, g, t, 9, b[17]), g = d(g, h, f, m, C, 14, b[18]), m = d(m, g, h, f, c, 20, b[19]), f = d(f, m, g, h, r, 5, b[20]), h = d(h, f, m, g, B, 9, b[21]), g = d(g, h, f, m, x, 14, b[22]), m = d(m, g, h, f, z, 20, b[23]), f = d(f, m, g, h, A, 5, b[24]), h = d(h, f, m, g, E, 9, b[25]), g = d(g, h, f, m, k, 14, b[26]), m = d(m, g, h, f, v, 20, b[27]), f = d(f, m, g, h, D, 5, b[28]), h = d(h, f, m, g, j, 9, b[29]), g = d(g, h, f, m, w, 14, b[30]), m = d(m, g, h, f, u, 20, b[31]), f = l(f, m, g, h, r, 4, b[32]), h = l(h, f, m, g, v, 11, b[33]), g = l(g, h, f, m, C, 16, b[34]), m = l(m, g, h, f, E, 23, b[35]), f = l(f, m, g, h, e, 4, b[36]), h = l(h, f, m, g, z, 11, b[37]), g = l(g, h, f, m, w, 16, b[38]), m = l(m, g, h, f, B, 23, b[39]), f = l(f, m, g, h, D, 4, b[40]), h = l(h, f, m, g, c, 11, b[41]), g = l(g, h, f, m, k, 16, b[42]), m = l(m, g, h, f, t, 23, b[43]), f = l(f, m, g, h, A, 4, b[44]), h = l(h, f, m, g, u, 11, b[45]), g = l(g, h, f, m, x, 16, b[46]), m = l(m, g, h, f, j, 23, b[47]), f = s(f, m, g, h, c, 6, b[48]), h = s(h, f, m, g, w, 10, b[49]), g = s(g, h, f, m, E, 15, b[50]), m = s(m, g, h, f, r, 21, b[51]), f = s(f, m, g, h, u, 6, b[52]), h = s(h, f, m, g, k, 10, b[53]), g = s(g, h, f, m, B, 15, b[54]), m = s(m, g, h, f, e, 21, b[55]), f = s(f, m, g, h, v, 6, b[56]), h = s(h, f, m, g, x, 10, b[57]), g = s(g, h, f, m, t, 15, b[58]), m = s(m, g, h, f, D, 21, b[59]), f = s(f, m, g, h, z, 6, b[60]), h = s(h, f, m, g, C, 10, b[61]), g = s(g, h, f, m, j, 15, b[62]), m = s(m, g, h, f, A, 21, b[63]); a[0] = a[0] + f | 0; a[1] = a[1] + m | 0; a[2] = a[2] + g | 0; a[3] = a[3] + h | 0 }, _doFinalize: function() { var b = this._data, n = b.words, a = 8 * this._nDataBytes, c = 8 * b.sigBytes; n[c >>> 5] |= 128 << 24 - c % 32; var e = u.floor(a / 4294967296); n[(c + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360; n[(c + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360; b.sigBytes = 4 * (n.length + 1); this._process(); b = this._hash; n = b.words; for (a = 0; 4 > a; a++) c = n[a], n[a] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360; return b }, clone: function() { var b = v.clone.call(this); b._hash = this._hash.clone(); return b } }); t.MD5 = v._createHelper(r); t.HmacMD5 = v._createHmacHelper(r) })(Math); (function() { var u = CryptoJS, p = u.lib, d = p.Base, l = p.WordArray, p = u.algo, s = p.EvpKDF = d.extend({ cfg: d.extend({ keySize: 4, hasher: p.MD5, iterations: 1 }), init: function(d) { this.cfg = this.cfg.extend(d) }, compute: function(d, r) { for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) { n && s.update(n); var n = s.update(d).finalize(r); s.reset(); for (var a = 1; a < p; a++) n = s.finalize(n), s.reset(); b.concat(n) } b.sigBytes = 4 * q; return b } }); u.EvpKDF = function(d, l, p) { return s.create(p).compute(d, l) } })(); CryptoJS.lib.Cipher || function(u) { var p = CryptoJS, d = p.lib, l = d.Base, s = d.WordArray, t = d.BufferedBlockAlgorithm, r = p.enc.Base64, w = p.algo.EvpKDF, v = d.Cipher = t.extend({ cfg: l.extend(), createEncryptor: function(e, a) { return this.create(this._ENC_XFORM_MODE, e, a) }, createDecryptor: function(e, a) { return this.create(this._DEC_XFORM_MODE, e, a) }, init: function(e, a, b) { this.cfg = this.cfg.extend(b); this._xformMode = e; this._key = a; this.reset() }, reset: function() { t.reset.call(this); this._doReset() }, process: function(e) { this._append(e); return this._process() }, finalize: function(e) { e && this._append(e); return this._doFinalize() }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function(e) { return { encrypt: function(b, k, d) { return ("string" == typeof k ? c : a).encrypt(e, b, k, d) }, decrypt: function(b, k, d) { return ("string" == typeof k ? c : a).decrypt(e, b, k, d) } } } }); d.StreamCipher = v.extend({ _doFinalize: function() { return this._process(!0) }, blockSize: 1 }); var b = p.mode = {}, x = function(e, a, b) { var c = this._iv; c ? this._iv = u : c = this._prevBlock; for (var d = 0; d < b; d++) e[a + d] ^= c[d] }, q = (d.BlockCipherMode = l.extend({ createEncryptor: function(e, a) { return this.Encryptor.create(e, a) }, createDecryptor: function(e, a) { return this.Decryptor.create(e, a) }, init: function(e, a) { this._cipher = e; this._iv = a } })).extend(); q.Encryptor = q.extend({ processBlock: function(e, a) { var b = this._cipher, c = b.blockSize; x.call(this, e, a, c); b.encryptBlock(e, a); this._prevBlock = e.slice(a, a + c) } }); q.Decryptor = q.extend({ processBlock: function(e, a) { var b = this._cipher, c = b.blockSize, d = e.slice(a, a + c); b.decryptBlock(e, a); x.call(this, e, a, c); this._prevBlock = d } }); b = b.CBC = q; q = (p.pad = {}).Pkcs7 = { pad: function(a, b) { for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, l = [], n = 0; n < c; n += 4) l.push(d); c = s.create(l, c); a.concat(c) }, unpad: function(a) { a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255 } }; d.BlockCipher = v.extend({ cfg: v.cfg.extend({ mode: b, padding: q }), reset: function() { v.reset.call(this); var a = this.cfg, b = a.iv, a = a.mode; if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor; else c = a.createDecryptor, this._minBufferSize = 1; this._mode = c.call(a, this, b && b.words) }, _doProcessBlock: function(a, b) { this._mode.processBlock(a, b) }, _doFinalize: function() { var a = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { a.pad(this._data, this.blockSize); var b = this._process(!0) } else b = this._process(!0), a.unpad(b); return b }, blockSize: 4 }); var n = d.CipherParams = l.extend({ init: function(a) { this.mixIn(a) }, toString: function(a) { return (a || this.formatter).stringify(this) } }), b = (p.format = {}).OpenSSL = { stringify: function(a) { var b = a.ciphertext; a = a.salt; return (a ? s.create([1398893684, 1701076831 ]).concat(a).concat(b) : b).toString(r) }, parse: function(a) { a = r.parse(a); var b = a.words; if (1398893684 == b[0] && 1701076831 == b[1]) { var c = s.create(b.slice(2, 4)); b.splice(0, 4); a.sigBytes -= 16 } return n.create({ ciphertext: a, salt: c }) } }, a = d.SerializableCipher = l.extend({ cfg: l.extend({ format: b }), encrypt: function(a, b, c, d) { d = this.cfg.extend(d); var l = a.createEncryptor(c, d); b = l.finalize(b); l = l.cfg; return n.create({ ciphertext: b, key: c, iv: l.iv, algorithm: a, mode: l.mode, padding: l.padding, blockSize: a.blockSize, formatter: d.format }) }, decrypt: function(a, b, c, d) { d = this.cfg.extend(d); b = this._parse(b, d.format); return a.createDecryptor(c, d).finalize(b.ciphertext) }, _parse: function(a, b) { return "string" == typeof a ? b.parse(a, this) : a } }), p = (p.kdf = {}).OpenSSL = { execute: function(a, b, c, d) { d || (d = s.random(8)); a = w.create({ keySize: b + c }).compute(a, d); c = s.create(a.words.slice(b), 4 * c); a.sigBytes = 4 * b; return n.create({ key: a, iv: c, salt: d }) } }, c = d.PasswordBasedCipher = a.extend({ cfg: a.cfg.extend({ kdf: p }), encrypt: function(b, c, d, l) { l = this.cfg.extend(l); d = l.kdf.execute(d, b.keySize, b.ivSize); l.iv = d.iv; b = a.encrypt.call(this, b, c, d.key, l); b.mixIn(d); return b }, decrypt: function(b, c, d, l) { l = this.cfg.extend(l); c = this._parse(c, l.format); d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt); l.iv = d.iv; return a.decrypt.call(this, b, c, d.key, l) } }) }(); (function() { for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++) a[c] = 128 > c ? c << 1 : c << 1 ^ 283; for (var e = 0, j = 0, c = 0; 256 > c; c++) { var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4, k = k >>> 8 ^ k & 255 ^ 99; l[e] = k; s[k] = e; var z = a[e], F = a[z], G = a[F], y = 257 * a[k] ^ 16843008 * k; t[e] = y << 24 | y >>> 8; r[e] = y << 16 | y >>> 16; w[e] = y << 8 | y >>> 24; v[e] = y; y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e; b[k] = y << 24 | y >>> 8; x[k] = y << 16 | y >>> 16; q[k] = y << 8 | y >>> 24; n[k] = y; e ? (e = z ^ a[a[a[G ^ z]]], j ^= a[a[j]]) : e = j = 1 } var H = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54 ], d = d.AES = p.extend({ _doReset: function() { for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++) if (j < d) e[j] = c[j]; else { var k = e[j - 1]; j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255]) : (k = k << 8 | k >>> 24, k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255], k ^= H[j / d | 0] << 24); e[j] = e[j - d] ^ k } c = this._invKeySchedule = []; for (d = 0; d < a; d++) j = a - d, k = d % 4 ? e[j] : e[j - 4], c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>> 8 & 255]] ^ n[l[k & 255]] }, encryptBlock: function(a, b) { this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l) }, decryptBlock: function(a, c) { var d = a[c + 1]; a[c + 1] = a[c + 3]; a[c + 3] = d; this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s); d = a[c + 1]; a[c + 1] = a[c + 3]; a[c + 3] = d }, _doCryptBlock: function(a, b, c, d, e, j, l, f) { for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++) var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[n & 255] ^ c[p++], s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[g & 255] ^ c[p++], t = d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[h & 255] ^ c[p++], n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[k & 255] ^ c[p++], g = q, h = s, k = t; q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[n & 255]) ^ c[p++]; s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[g & 255]) ^ c[p++]; t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[h & 255]) ^ c[p++]; n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[k & 255]) ^ c[p++]; a[b] = q; a[b + 1] = s; a[b + 2] = t; a[b + 3] = n }, keySize: 8 }); u.AES = p._createHelper(d) })(); /* CryptoJS v3.1.2 code.google.com/p/crypto-js (c) 2009-2013 by Jeff Mott. All rights reserved. code.google.com/p/crypto-js/wiki/License */ var CryptoJS = CryptoJS || function(g, j) { var e = {}, d = e.lib = {}, m = function() {}, n = d.Base = { extend: function(a) { m.prototype = this; var c = new m; a && c.mixIn(a); c.hasOwnProperty("init") || (c.init = function() { c.$super.init.apply(this, arguments) }); c.init.prototype = c; c.$super = this; return c }, create: function() { var a = this.extend(); a.init.apply(a, arguments); return a }, init: function() {}, mixIn: function(a) { for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]); a.hasOwnProperty("toString") && (this.toString = a.toString) }, clone: function() { return this.init.prototype.extend(this) } }, q = d.WordArray = n.extend({ init: function(a, c) { a = this.words = a || []; this.sigBytes = c != j ? c : 4 * a.length }, toString: function(a) { return (a || l).stringify(this) }, concat: function(a) { var c = this.words, p = a.words, f = this.sigBytes; a = a.sigBytes; this.clamp(); if (f % 4) for (var b = 0; b < a; b++) c[f + b >>> 2] |= (p[b >>> 2] >>> 24 - 8 * (b % 4) & 255) << 24 - 8 * ((f + b) % 4); else if (65535 < p.length) for (b = 0; b < a; b += 4) c[f + b >>> 2] = p[b >>> 2]; else c.push.apply(c, p); this.sigBytes += a; return this }, clamp: function() { var a = this.words, c = this.sigBytes; a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4); a.length = g.ceil(c / 4) }, clone: function() { var a = n.clone.call(this); a.words = this.words.slice(0); return a }, random: function(a) { for (var c = [], b = 0; b < a; b += 4) c.push(4294967296 * g.random() | 0); return new q.init(c, a) } }), b = e.enc = {}, l = b.Hex = { stringify: function(a) { var c = a.words; a = a.sigBytes; for (var b = [], f = 0; f < a; f++) { var d = c[f >>> 2] >>> 24 - 8 * (f % 4) & 255; b.push((d >>> 4).toString(16)); b.push((d & 15).toString(16)) } return b.join("") }, parse: function(a) { for (var c = a.length, b = [], f = 0; f < c; f += 2) b[f >>> 3] |= parseInt(a.substr(f, 2), 16) << 24 - 4 * (f % 8); return new q.init(b, c / 2) } }, k = b.Latin1 = { stringify: function(a) { var c = a.words; a = a.sigBytes; for (var b = [], f = 0; f < a; f++) b.push(String.fromCharCode(c[f >>> 2] >>> 24 - 8 * (f % 4) & 255)); return b.join("") }, parse: function(a) { for (var c = a.length, b = [], f = 0; f < c; f++) b[f >>> 2] |= (a.charCodeAt(f) & 255) << 24 - 8 * (f % 4); return new q.init(b, c) } }, h = b.Utf8 = { stringify: function(a) { try { return decodeURIComponent(escape(k.stringify(a))) } catch (b) { throw Error("Malformed UTF-8 data"); } }, parse: function(a) { return k.parse(unescape(encodeURIComponent(a))) } }, u = d.BufferedBlockAlgorithm = n.extend({ reset: function() { this._data = new q.init; this._nDataBytes = 0 }, _append: function(a) { "string" == typeof a && (a = h.parse(a)); this._data.concat(a); this._nDataBytes += a.sigBytes }, _process: function(a) { var b = this._data, d = b.words, f = b.sigBytes, l = this.blockSize, e = f / (4 * l), e = a ? g.ceil(e) : g.max((e | 0) - this._minBufferSize, 0); a = e * l; f = g.min(4 * a, f); if (a) { for (var h = 0; h < a; h += l) this._doProcessBlock(d, h); h = d.splice(0, a); b.sigBytes -= f } return new q.init(h, f) }, clone: function() { var a = n.clone.call(this); a._data = this._data.clone(); return a }, _minBufferSize: 0 }); d.Hasher = u.extend({ cfg: n.extend(), init: function(a) { this.cfg = this.cfg.extend(a); this.reset() }, reset: function() { u.reset.call(this); this._doReset() }, update: function(a) { this._append(a); this._process(); return this }, finalize: function(a) { a && this._append(a); return this._doFinalize() }, blockSize: 16, _createHelper: function(a) { return function(b, d) { return (new a.init(d)).finalize(b) } }, _createHmacHelper: function(a) { return function(b, d) { return (new w.HMAC.init(a, d)).finalize(b) } } }); var w = e.algo = {}; return e }(Math); (function() { var g = CryptoJS, j = g.lib, e = j.WordArray, d = j.Hasher, m = [], j = g.algo.SHA1 = d.extend({ _doReset: function() { this._hash = new e.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function(d, e) { for (var b = this._hash.words, l = b[0], k = b[1], h = b[2], g = b[3], j = b[4], a = 0; 80 > a; a++) { if (16 > a) m[a] = d[e + a] | 0; else { var c = m[a - 3] ^ m[a - 8] ^ m[a - 14] ^ m[a - 16]; m[a] = c << 1 | c >>> 31 } c = (l << 5 | l >>> 27) + j + m[a]; c = 20 > a ? c + ((k & h | ~k & g) + 1518500249) : 40 > a ? c + ((k ^ h ^ g) + 1859775393) : 60 > a ? c + ((k & h | k & g | h & g) - 1894007588) : c + ((k ^ h ^ g) - 899497514); j = g; g = h; h = k << 30 | k >>> 2; k = l; l = c } b[0] = b[0] + l | 0; b[1] = b[1] + k | 0; b[2] = b[2] + h | 0; b[3] = b[3] + g | 0; b[4] = b[4] + j | 0 }, _doFinalize: function() { var d = this._data, e = d.words, b = 8 * this._nDataBytes, l = 8 * d.sigBytes; e[l >>> 5] |= 128 << 24 - l % 32; e[(l + 64 >>> 9 << 4) + 14] = Math.floor(b / 4294967296); e[(l + 64 >>> 9 << 4) + 15] = b; d.sigBytes = 4 * e.length; this._process(); return this._hash }, clone: function() { var e = d.clone.call(this); e._hash = this._hash.clone(); return e } }); g.SHA1 = d._createHelper(j); g.HmacSHA1 = d._createHmacHelper(j) })(); (function() { var g = CryptoJS, j = g.enc.Utf8; g.algo.HMAC = g.lib.Base.extend({ init: function(e, d) { e = this._hasher = new e.init; "string" == typeof d && (d = j.parse(d)); var g = e.blockSize, n = 4 * g; d.sigBytes > n && (d = e.finalize(d)); d.clamp(); for (var q = this._oKey = d.clone(), b = this._iKey = d.clone(), l = q.words, k = b.words, h = 0; h < g; h++) l[h] ^= 1549556828, k[h] ^= 909522486; q.sigBytes = b.sigBytes = n; this.reset() }, reset: function() { var e = this._hasher; e.reset(); e.update(this._iKey) }, update: function(e) { this._hasher.update(e); return this }, finalize: function(e) { var d = this._hasher; e = d.finalize(e); d.reset(); return d.finalize(this._oKey.clone().concat(e)) } }) })(); (function() { var g = CryptoJS, j = g.lib, e = j.Base, d = j.WordArray, j = g.algo, m = j.HMAC, n = j.PBKDF2 = e.extend({ cfg: e.extend({ keySize: 4, hasher: j.SHA1, iterations: 1 }), init: function(d) { this.cfg = this.cfg.extend(d) }, compute: function(e, b) { for (var g = this.cfg, k = m.create(g.hasher, e), h = d.create(), j = d.create([1]), n = h.words, a = j.words, c = g.keySize, g = g.iterations; n.length < c;) { var p = k.update(b).finalize(j); k.reset(); for (var f = p.words, v = f.length, s = p, t = 1; t < g; t++) { s = k.finalize(s); k.reset(); for (var x = s.words, r = 0; r < v; r++) f[r] ^= x[r] } h.concat(p); a[0]++ } h.sigBytes = 4 * c; return h } }); g.PBKDF2 = function(d, b, e) { return n.create(e).compute(d, b) } })(); /*! srcdoc-polyfill - v0.1.1 - 2013-03-01 * http://github.com/jugglinmike/srcdoc-polyfill/ * Copyright (c) 2013 Mike Pennisi; Licensed MIT */ (function(window, document, undefined) { var idx, iframes; var _srcDoc = window.srcDoc; var isCompliant = !!("srcdoc" in document.createElement("iframe")); var implementations = { compliant: function(iframe, content) { if (content) { iframe.setAttribute("srcdoc", content); } }, legacy: function(iframe, content) { var jsUrl; if (!iframe || !iframe.getAttribute) { return; } if (!content) { content = iframe.getAttribute("srcdoc"); } else { iframe.setAttribute("srcdoc", content); } if (content) { // The value returned by a script-targeted URL will be used as // the iFrame's content. Create such a URL which returns the // iFrame element's `srcdoc` attribute. jsUrl = "javascript: window.frameElement.getAttribute('srcdoc');"; iframe.setAttribute("src", jsUrl); // Explicitly set the iFrame's window.location for // compatability with IE9, which does not react to changes in // the `src` attribute when it is a `javascript:` URL, for // some reason if (iframe.contentWindow) { iframe.contentWindow.location = jsUrl; } } } }; var srcDoc = window.srcDoc = { // Assume the best set: implementations.compliant, noConflict: function() { window.srcDoc = _srcDoc; return srcDoc; } }; // If the browser supports srcdoc, no shimming is necessary if (isCompliant) { return; } srcDoc.set = implementations.legacy; // Automatically shim any iframes already present in the document iframes = document.getElementsByTagName("iframe"); idx = iframes.length; while (idx--) { srcDoc.set(iframes[idx]); } }(this, this.document)); var pl = { "salt": "4FjoEXMg/4VWXzOKiFr9WstwzCoWM7KqrZVg4UfdXfg=", "iv": "9Z4KPycq6SpMXeM9M3yisA==", "data": "VCAhArXdmjD/K3t8PDq7ZNXhkwUrsI8cIhfsOXANV3grrGsP1bJKJQK3eOrUcWIqijUMpQ2ct22DM4AUpjuK0AJpc5KQUl1a5Es5EzHofVRZINun7/5GQvnbilKogT3VDWasVAuL0MePGBmLMIgZNWvGLGh3SMLPmHOWfKAeyOBE/UsYoCX+RzLhde7aUJDhvcH1kE9PRTCDpwd8bb7p8Hkc6FXxvEw4lFDp/sS3mLd+eNnz7fwuH83WDvfx27MTorwPwwChFV5O3ziA3SqdrDJ8AP/nmw6dzr5MQ/h9vfknSfEMNjqqfimky81RBu42wdZtiSWn5i/IkGhR+HQUJuA4m/f2xxt3Z+WGvSklmftPeDidKRErH5vmdtxKHEoS399Cm6EWftvzsuylSAUJjTfCwu2B0L/HIgRv9Qg2Nk2Vmprg5mGYXLV5q3yGJF/clBsZ1BwWBBXvyZDWTBhv69KHFD8et3m9tVSQC+ujXE6nxrsnfryvSqXNiwSw/ocik+4uamCfPG+xk93JIqBsx5coDyfy/bZDH+LDoYT2FyKh80IQDoeQNIU5EKupddmfjAnjs7VmuXR+VRG5LTC2J/qqa7x61rXv+MJ0GYEOSwD74vOp4eeu75sGY1Jh3FivexpV3LVzpoNVYd815qY5PlyEoD8n6RCzpv/3T5fvZNuG94h1vQ1QpTUmTsRVFg8mcK4oz0gYytFy783e3OpqQvzQwUsiA8fXaVLbxrxPFaoFlHIbSxGx0JnDfeiyqAe2W56h76ckUb/Atw7QjWptxTYCClecap4+CgQqQWiSFbV6szfzIo6AGZc/Vs7/WXN99sAaCg8hns/OCClAw3kQVWEeRhEgCkuTpfE8Lwg5Hi0K1vq9+yRV74WHB6r0E7iv1FgyhV0l5LAFa9P/S05H6TCxTfz+UJZ6V4KCixeuYMsgc5KNyIAuySen/BvVGYc3HIu3YUGc3ptrBdn0rWFBpwyXZXeYRp1yFDqOb+OuBvIXjxf0ZjUHEwhv2Cp2GCcDxgkgFMV0tGwwinsriYi8BcMFNk7/sjhuEy/l8FKPRA5HHjRIzIl/o/29MNn6rsJLlHhfcPb5MfaMoERNH78B7z19YovPBxpi9qyyeLAmxPtQaN7r71zPrYl123HitNOyCnKCWQf8ZgtetjywNu3CB+M5wxHdM3OifEchkokinchh9TbNMO3DsWvKe490A2OFSG0FZqO7PnHgr7c59LvYw8J9EWqRaM9GZQztXVayH70s6lh1DO9RKCC3v8QTHGO0xSv9akwHE2PnW86e/wOitwXH2VPQ9TzQ4fZIENZ5XhIXYcq27kyR5putgf4Nyjs8Z9MEhNMcXB6HrPEtsrOkqke6zanDlbxwSzVc6rbsobuqmHNZuhzj8u0MGE+D5DFeC+tWY4kD2VqM2Wmi0VCSxnQ66hxkR3fkztyz2+Ui7sKrhGyAcyLj8mr7L6Hp9643qY+nUHRIDFqCHG6ir5VXRzhVaCdgnPW+7sCP+YhJAJQIgemzrfN16hMf7EoMRga9LLIG7dvsFtDIrel3mmzd/aAFMzfUjUA8ljCZ1bvhHDRsizlTaB3LhJD1QNiH1JWFsPYw0o/qRXKWtJL4tjEAoO56vFTeWgiXCI2+i1W/h0MfFZwTtHsThQOiPVFdwpqNONKr5OWgsSnsRJ1UCvnanmNfmQkZBcYi1xgLau9Y3yVATAERhCDiSo7mNcHFlfIf9CQiL1kca5A5Uk8U6zMNjU4GRev3xiibvHCgJYj9e9inU0mIV320haqgj69ia1ZOFV+rYgBVHKZYEhaB51L7RZC0OgKsiQppRRwmj/HfSx7jgooVoUNXWQRtmzvROlS4oHNtRtFnVNoAgoiAJ/sxTi+9KE+27VfMD7eM3rnX8Hau/ajhsl9fsd+NogMr+9cHJb6OATMV8ed3xmpYPnPKD8Ootlqh0vpWh7iWzM/xeQErPaOe/F/bupaTxjdDRJA6OUyhm452UD4mYpjyKoMyxPx/2CGIGKnFx3oxzTwTgJnqSWF2usCqwBHR36EwkxA9C/GtpdRDc5uaFIE/ANtpFaNDYgsl6J2q+jkmQz8sl++Z2HvF5JD+58ovxp8EbKY4haMRjouWmU4nU8KJYZDcq4c5Tcel5cminl+HKIZCpbWPEhrxoTRNjtfR/LO7irtrWYKvZcL/ptIcKTT7YjU3Vgrkhw9X3mWuMmAI93qAYvBCkvvA4YERjRhq8QjYYq3qWGZlIFhDt4AiwQK3blusKwHQX7P6N0K22qCoGZjfsZbWAOIrSs/nQgSfdH6XfbmdNJyKyJWnWT1qKuZnFLTIvEprdusOGPWQh6ZKPAL0Ny/HGl+LXctDyynZwcA6Ielw4yEd6W3CKgB33acBhl9N9psAUZMprx05bH1oyQOZ8nE4JBWVQsz/7AU21QKVCZYWuxxmTvKD01FFbf5Tx5THWwsd6KoZdTFXDjzTwO3SwYC0Kr77ZIxnscPKlES9VJelsJOoyD1MGSmgFHqs4gePKZE+DKDJ1l6hZurinZxaZXcX4G5TE6Ka36JrwkBki8iGQuD8oNDc9JmAm5met1txtZXjv2gJM+7UJPJuLVW/UNdBkDQYntNV0CSdbV7NE8jkjiEi5PCrX48KXJe2QTxG5T8HhgZBncJbGclPt63oQM6J/6/JmJzZac0yAd4mtjQOR4K/LTvlijqYKsSrvDYmNBwoLdQR1aN8WoLfjVZkjUo4lKCuHJDNadkV3CFlLqT4lH6rWNRC7j/AQzX8Gwaci0+531VQidAkX2XXzd0dUU2bwnjq7YNLjBqT/cjqe5YIqfI9ndqEyBp6Bv1X/E7eY5yMSvtvW6F3kN6hak9M6r1dnF74oJMwCr3kXQGxRidKRtzzvGAPICm2v9PYwYbd6/2+vBie1857KKsBPJFEPH1VZxvKnCxYvXE2qBMUXwq/TL8lzx+dZKRZ4IRLYKHToPaOnScsZUZ+cvdW7KBA1n9aNLl2sZiSFw3vgpPyfMP7+Y1vJiizsJAyiQmruhyCoDs4Y8zFEZrVuXa/5UUaqjzhwNbmKq8hF0t1hxpM7Hm+HgHPCrK9+5miBXZsVHF44mxUx+XO7DnpJkCAqdO1xBrTbECl6P64FyaIqk+UQyXcZWqgaA78DPcm08vDKVR2O2VrLI4X3V5wz8rQh6TdgJxGf/2+M6xlpC6An2MEiXR87U6b9+I4rsXEoJnb75RSrWSIppgqEanWvvseE11lXx0VZKendV8HV0SPAlSGyuOjBuAxmJKj5vmcq0rViXP9XbpWiWv0+dCedtCHot5Ge2moNwdsLhP3EL1zXoehDNy4hS57oa6kagVRvTKIEJCtCnAEPBuCYmK+hGMy7lpOYLOIZgoSLbmqK38gKHqW0EGAkTwSBL4PNPTRfnzvSo7gsTByafdHJLfRNbxsUmpElCe82TIRsQBDmAAwac/nZ0tApujmxDc1GodQeoI9QI75Y31Qj6xuuqXX31nJh9BZigTJRHOGJ9/M8Q/MqpChE7y0Zwpy1zEHV5hpg0PxLNgz2ZN2mAdJkhvaYsS0s52UaVxc6wuvS97mgyGU6gw/BIZAuV0DehAOv0oliWCG0YWjaxjOXbNwpj5IkZvOoWlwZHIxV5UK042x4y7Lc+DphwzwnX1WzHJZjSEth7oMD7tbFTC5za7UFtVqJDkOhkoGN386y+vMW7bbFw0agylsTYyxCyjq8eIvZjNo3iOSEDGmAQ/cctq+rhQoCZa2mVjAlU3hosfkZVppltcKYdsR6ulhvqbta+Zz7EcCvrVZOpUqnOB130btn1Uuo/G1wtDoZwgPrbBD6kFbaLTr5OEFkRr2vcTa3A/4big684U3c5vLIyyPpEF5MyTuxPEMctyy+vC6QBmmMNUwrs08OR19fwALES9Npr4E1UiIue6DBdnDE7rvmYrjmJ152OCcEPf7jPaWa9NUcnHjksM6XfotT+MSkhtAAS+v7juck5d4NjdQa/ts/Kn9frn0+QdQPuCrLFgzF0epvbvY0oducSCsWll7wmpTFT4GmLBfDQc9cvF074utiE53vBMezlTy5Tetz4zG3Re9/058VDdau1ELlMVvHVyVw968rAlW1ffvDkh4c/e09aXddbdVRf5hXDaLq/jijOE+ag+Ivty8w6CxF1rWsgVmVs1YRDM2/wo3YQ1K/gQIyGY2vJYTR2/BZTXzu4VvzaKAF026Ot90j2IhcUul4uQTeDXAelhWFs4Bq75pj43NzqCztJsPs34PdZ1DIs2eqiMtnd6qMUO3cyBotMVQQaSqFty/Uz/m1GJWNvR2b+mGNEScj/sYEldXdyUEXSFGtVAZOUaUU5AcK2S1mLrh2hWGJ33Ok2LuQ83PTWo1/6oxfEHsSwEQH6T0tb1aFSk2ydgQIqBly4bijbIBsPErA76MZoN6CHyy3iY8H908XqZ1ug+lW2YDrf5YVgeKWYAouradzYZa6qv6UlKiyuSW+iuDIKAIdhqfrQFhi6RxuPIDPiZChxm9UyuQ/DuxxtrI8+B0hYJYAOh+m8+flf4doegEU9LejGmwjwCya3QPovFuU0m3PXMj8Qt5NIu+FkHR4NMVwhFTY9NjmArcO2g+Rtof+o48bo1uWzMt4Fn0v2SoqBxF8gCTxlerZ9fjcuhKN4T2iZ6pL2Gk8Evl/M3Am8XsTDc3N0qa+eRkePGo+rY6UFNZa6TxWztCLhNU7i9t1jOlQly6Ui/txNCoYxwCfSSmmBpi17hKd4ohn3HqiQ2ksIvtnhSJkwodfsMX84KsM7iyKGF0w+U6/CnzCBamkBEl6KPPErfVNn0wAg/ZpT+2F+CWDnWo/V7QMQ9/+fiemd0uzI1ftP8drv5CyqFlYu2ASFkeq0LvEV3TmlmQ1zxPHw/BIsUQs9lLdmxZBxPWwtQRdEvK5WXvWWWYZaMQCxi1yp3YXV/6oVM1No6j5XBvp19UoZ4nJAWIRLGLxfWCjaFYY16QRHsIgOuLV41EHAim8S6WhzWZ2u9Lijng8sTrVU/AzQc3mPhS1pdV4zpD0ySg/jM8uoE1B2+2LOpuAJUVdZqdpbKsO0IRk+1Lp68nl1RKSk1859BvxK0m3VX8zExQjmngVy5P4PhdMb0VVLxnl9BZ/egiT50UR2UCPC9EwceoiECYQWvnTh+eKKrwPCeTGCiGwCAddN7etHCHOrTuPBpQbWMhvk4PNqKsz7d02B9FnHnExYbHFZYMQt0AzUDZLKPuPbGyX3IDMlQUOMo2gOn9ixwlnxOf/Q/xbF88BQAcMnF8nwJ6VxXWh1pSOzT/++sHmdJf/S5kdpOk9TybSKdehisUa14n9PMTbQ7YtIhCFZpVX3CYu1tfGH+RLEnwgmLgUSVX3u7MHPVygcr++CBHAKwLMIHOzDP3Rk/PAxR7pDRph6GpcKdbZjZ80j7f/r+RXZNlybsxrC8PbSQ/nO8/z8Fbfl5fxhSY5sBHOYNXe4hgUESc6O5j/5LBMg9+759fFq9t35FiyBtMz8aqw0ldWYHmASVFIvXwDQg2VF2VyxeVim4ENH2YRqNTLxq1vp5m1df5LIBAV9preq6nBxEayPobrrHefjDq0lELtx2afAed5cEawdQPyD6qhUbcgmZyldQl1qLOJ1hyjBlOrYybILaCN4Ir6kiULtnsUDPDlrY1YJRS527MJFY9anfMedn4n4H4kxOk3YI+EoanEuZ0U6JaYcGDAh//MzkDLsqzsKs548SfEFACo5om7EnAqVyOD8oD3KaCwNk7i2SYmSzHZGZUiF36Er6mp82DyODCfwCtJBqIao2NSWj8YfLkFwPRaJPiJ8Z5xOPGcCulOLITfuhRyXn7GAsJm95LXcuM+/FvcEr14Kot69mOFGX2nqW+wbqJHV7JOPXHDbkNWSFzUgOTGaMGql/LuqpxLV0yZoV2cwtF1PmRicWZxcMVYwh1APtrfA5hguFvb9f8LctN3SlO6bmqCPsQ4H0fUNKH6ltLEAtANzLx57Q/52CGMaTBGhxmeZ7Qd669kGC+mqGCKvQS4DByZrO6Oe14NrDO/yNe5b0EwHtDe+h3Udw5DnoUsjkH4MhBcI+ZjDPYB4iwwcNY8l+EFR62f6xc46K+Tp3leduC5GfSLIJ5rL7V8OzpOdUsClDIvBqQVGh/Q/QYqDs9+rdHYw+/yHol/8UQCC3xhadmNIsXE/Uf/OMx7i9Nra4at1Oonf+xyeOB2c1CErXSRfIa8EHhSomd06cmoPSKBHdxW7ufYQDH5BTP93VKhIeBHltR021qKHrQfGyaw19pBewYAmb3fe4bct6Vwg0sM+rcaKp9s+pZF4xdyx2yJPCeI7/5jRq4f45uPW0/XqtIzmg8AgyGZlwR0ewaeMtQpdDxv8m/nyP0GPdJRxlCCoSQ3VnQS4pHE/cGW2XAYEPBKFC9RuOqgEJVH/f6VWE7LdrlN5cAlirVoM1Ntk9xVoQysVHNE2gwaLPx1b9eC+qt9/JWN+BC7QWfZYtx1Ow1c2g+TWWM8Z5+aNPUGGWyY9c6I5Jlm6DsIhC6yCopRoLD6RSfStbBYTfbSFSPjY6nkmNaS3NNl3oE9HkmGeNtPtvCmAnFDYu0nnd1oo4G8HlM4dRRMpDyaQyOPWjteCN5fE+BgHljmOe0uPkd6vx2Q5Ym33T4W/CbggDAzJYZR3jVrVtk0lNy+vafaNxGI52KQ1U8yotd6qB0fsqcvcD5Ei4ZK7exCcIz5TS2nLZUZiBovbZEYll5cCoJjAEJdn/no0VPQPAfVsMulp3lSZGmKkxLZooC8JpLfdP8TyNIBNBVpVsLg2Q1iR0RDsLcVxlptF4y/gb5oJkWZp5DyaY1MT3fH7z0AgDaeae6twP9+esAZlYStgzV5eZkMjHQr+owKLkgPnjflZQqlISGgz4fePuZG8f0/aeCQZskHp9RSL8qSzymsVrEAzX7zBDGgvDnhx4C5qbytWmSYFycbh2hg2P6B9vQPEf6g5bDzOrkbzDrrjLp/4v+hhDylkJ80pLUzIOUM5rv65SGuIlGFOIwvM3zySVLeJSABtkEtdBDc0w6N9c/aX4TUoHwwjA1CV2wt7+i4V9GpqpNKWYvrkJw85GDQm6MTtBWmyPtpdVPsR0DXDaAoyXOaJW+2/84daFLjCinbu7nyUl63YUC01WV0kOg6s3pupbcx1a6uEVHk0uiskuhUkIq5mk0ZIn45zOoAUo5zKR3shoK5CSdWT2Ym1rzsWDPnxxk8EKjwRHhR8o5k5VCz6nKCgkh+wL36Wuvv+zo3SJD+s+/WjLAYVYSQ2efnpsc0x9dnjQ/dlxkuwj7R3qGaYrJd9OK6wSOiW9WhJ0m/4W8zHpUPeWSEinYx/mWmIkJkP1sFBYju2uB1aUlQf/IyMSMMNEXusg6tGlKJ2lf352r+WkoPgJQ81MaL/qaIS35+LLWmZJJ9yJFzyDo9KAxis4/wYroLDzCZEZeJ4m37JyVcjNowsKNiXF90B7C0Ub0RwGCMTBm+CreuQGmrDAdq7oFFZPWMzxV2g05KypLZCs3/+kvCQ6wv6uCZNk+3xE7VKyhbFXVMxTH16tETIYTvpITqR8k1Jxt2BG6VpzL/YPzVjuvLHtKVXJqCJs37Uk8hJah1Zm0lDyUIB3Nh0zrOucph8y4IfavtrW73auj46t9Vc+ihnaFeiIcad4BgCxBNPUwby/NPEhh9THkvp24KmTAFZtV9tICADKub53peAHYeCzvvXF0hKgh0ahE4nZCtHlDPKExcuThCl9x63PuttGqDm3+1PF6PZgsAgE5TVP4239nb6d3MncIDO1zyr70oL3U/ydQxUa6u8u5z/z9ifpfIyC6H7inFrR3dUZIyE882NJaCgVFfNCgeJSf8e10oTWrsWPsvgxgIzA+D06dTyrwqAsCbxS3GCwTBgtruv58bCWz9y36H7F+BG47L7xor6j2tEXHYAmbqGZ9sgYzgQfDwuOzKZlub+p17Vft5yRtnW+m5z5y60jLHuftVeDE094xM7Az1v+iVqv5Dv3fQUQeGmxJZCuEyQAnrVZ4IXufaPleJlJbAASwC1M6ucb4LHcikm29yKQGppEny0oB+my56EtiMT1uSAAiX23J1buaGPttaMdDkXfKngtuMaUuBYgHOIJLFKOiDSWNil+U3kW/BUMWiOMwbkV+LavwoSoL7M+SOTaXfhAOhh0CzYmKAAyiOFlU+rC/uUdnCbzOYWahbhz/abg5XFNjbrK0LOxyV+ihJd/lAN4VxkeTj47ktqCDuTtngY66u/3hRmxy9hVDCRnJ5xGFCdKBvkWHO3U+KR8UbfReuCULw6YvNo5hddIDIv4Z6ugA2Zoa3PHKEhp0RWXKT9So8NdUynshcKePUZ8PQGPXOPji99aVxaWNmZCSlb+SOY0v3bgutgewosO08NN4Da9H99pJPIXirFrinCIoeFQ8n1+hI/ByTPMTqrEowOMth6/6Si7hXdXKo2PMe6EqzL3cH2oHHxfva6u23kYpPe/qqMT2UGopx6g0Kc9smn6l6KH71YanRSTFn9HtnPkf8vx4uiIo8EFrIBOBKDZbksiOqnbgEOn6R+3rxN0mjbgQj03TIszV/T65GGDkgOktJACiihoMmIRKpJuB5y1Er4290MLJ20EV7KlTIqBXoMZW+WOek9RcSFD9J5uMUUrDeZ7BGzX9ythW+cOAqJNrBdQYkEJ22s6/ONPo7XSR5HgkXBst3yRwq4N0E6lLLfXV7G2CS0ld30UbgfQrRf/3I6Q0HNPwcR7oXVS9OOT2o9EoNpqQKiDCq6RshFFSol+zcRdJSiq+aFnBJZ6E1EYZa4/KK83ah54m8SjWc/kOka6GxE9/lLL3lzkvX1f2Tlsc810Iip+KUaPlNwPKJ9l1/+GGJfXaNW8uBzZjXlAkjLNNK+NiEHFl4bmxgTRoumL2/sHNQkuiUIzpyS9RnBFvfOsqevhdWu5oBLCEJ4O3v7u2xK76qQWp7DJ5sanguJaiqBAyGnmTBrGcTJ98r2cW9CSyNfNqbGm79TrPQp3PwUE0yQp8Qbdky/F/9BrW5yeyNF+Gi+fZh1XOJidr2mNxi/8/ASkjzsJImganASOp6M6cxUZ97ErsINnErwyiPHHdv7MJFb+mt59e03F8jcdewRgtTtnAY9mj9MM+VW5S+T1Fg9auIy5kaq2dKA+lYMMR63aabQlko/vLHdaK2XIGNpDtuzroJgTHwVRht5jK5eCtpPizZdJf0QdDyd09Cs5WY0pWl1QTkC2FsUtwW5l+tvWETth+bQxSmrULLDoXZt2ZsPqyMS8Npwe8G7XB18Ksf4n1735BCDexXz7REJaJIPnz7q2PWeyW7qDk8e0es9E4ADLwMgwQvlwa2wbq0/W3/RbQTT5zA2VynDAj3gpPtIVpoyLvtlbVoeTw0h4aw1Qo6Sjw4lnTzqmfZ9QPuO5umvrbFm9Twe+pE4AUk0AUz1gzMGGO81Dy9uSGvoac/BiVcknfgn1l5Z1K4lUL1ETiEALAsGogrDBEj/vkgweQaVydAkHvdL5xdjbYuSf2gU2wuBL3z4TK+W8xdPh7rJPCr7pwLrh9UnFQBltKnXomCi42E2tVKRgAHH59tMlDyTTPJ7KKSzdG4ys8EMM59b1MfCtsfPhV2iF7Fflc0HEk1A3JVG5VVpLaFkEKkfL3b3iF6Z+tgYmCllcAgcYC/B/woolrnpvtrjUazej7d3sqgHNUVgvwRokGKPYkD4QfPnoKzZE0x8+2ZmFgbh2ZvV9Wsk8ANbEfR6eemnXm1d7sxSsZ/Rrxlcwiajc81BUcvgACj4EhrJbGrk9vEFZD2npcRtaCQkMHK9CBW5elDHipQzmnBgy1kUwR6CMxaUb97ah9W6p19hPS19Q+sFMi7YkrZBTe8H6qO4gY6j2jYcX2NU5vo5ygK4k+z1xmnl0YF32IR27u6WhshRWcaKgrisE/+umT0QCosT8AHVjnU11tElrstc4RGkKI+ZLrvlmSgl4Hbd6lZfAN2jcDxfTaLuxmDWfbswRTIxYvJ7Etit6VpKYJPfAXv6KTpGOP1EDS66r9fAfiB+HNr2xd9q4T4xaAVvTQrc/sVYqVeBlY/a3XH1Q3bdNXw5jPkJA1BWQ4YApdMcmMLLf5mStT747LdUiT/nADoqVAju0pOLyuGSZGmLRv3sfvHnVl0ns5m0bpwYUgc7Du7Zr9itVCHriQMQPFxXxZI0QAZha3wDbv+R/x7vWh2j9ZE6BH41YsEfdu6e/iVZEVnLlLJ3Hc8i67Uq+BRl/hbawW6uaD1P+HUgLOl5Xb2aXGDargOR18lH5sX7CprzPCSek8G0N9G/7HvsaoSpZMHlQi/stVvCCkFEeXRV5pLB1LcR7N4sk9Bwrocf44nU2yQH/57rwvv8F/yLWTYgykJu3odluQpw5jnolthBt09Y6mXtKQdLA1sTMZYnHtmK/JELmLfpcBmDUosl1Ue3H5/OrOyI8UdiMs/Zp1zg+seJs0TjWKkaSXb133CkB18ZUBaft3lZ7nf7Ir6FGyNlHM8oiPGk3gDuxjY1p+3Tb1ki+46+5mUPg60oxbmUTEZgrmISEQLPDCyxQTCwA1hPTIDpt/uJSlpTzWodAR9opFnimCQZRLv6ykQLTqcxrRPJRjaRjWxmz7Tl42bm75smzttF+LQbDUF2WICv0wb1Kw3u3wR09SpCi4AM1kPUluuKlwNB3QGhe7Y9fRUgEl5RIQVvnGkdp2JYnIuiP4uhMr0dEjK/NnFwpDdopqoAvnUYd+jHm8h0hLCWlRCazFiAua84UzRYPzAdwoRYaqXv7OiMc8Nwv5oyjwZ0li7+v9TrEd3cmCRt2p/yRcR1UCNjdGuXtSoTJQ/T9/5iigoOeseNyfRUyjxKceaLoI378amYsCRbeK+/xaPFtFp4LhjiuhvcpRW+thy8jrCHPKdldmmJMAr9p7YSJU1hjkBAWjPt5GARQ4Hq5wgLeLPeBhcLPSW+2cnSlgpOaVBe+t2YM+zbPpV/W2dv/tJvp+fopr1seSsuw/RNotUdsKvRAf+oVqsxNzLAyPRhqfPDwybSuZafh+5jkTPFzo/WqYmrjyNg1zFGg1fcK3VvM77KlvGiEV8v+rcd4v21TztMpXORpMzRDNq75qAr41vyWEtzDhyRnpNMjKnNCJeUxb7bOPcMksfExrAjgKgFt5na44uIHfptUZorWwgR1tJsrTsFOhgzwQVLY82vzBkuZuwPXdpHHLE2QsHGLHVk64sYOT/+u05z7VuZvkFO+f+iuEm1vSI2VhfRoCUT58wlb4c9Tk/53j/EGHyLi2hKn+VW/VrH7a8/yVPgiUlBcNrrNTkL2Za5ynnZ1KOcR619Hxdcl6TECAcg6dHuJl1UlqxKZlasxg9RmvqT/Gs9bZW5Im60zfV7t/yI1tgqJ3oFEqxBc3CZ8LCQHHUCm8VtLzXhN3Q3WXQLH2F8m58Xg5mke1VT0r1Kn8LAsa+HyJBK+WNNf5cr/Kcc2Zt1Kv3xMoJK286/get/2ZkVyAmpicJ3Z7YnJqg/hYlf268hJRRxP9pNYKtrE3VYS/vyTWClfY5sgSbhe3dzmSbZZACSXtci0JiyaRIDGy9lKOMNYcv1AVNRMUikhL8RqdiBdwJDRQJDLl1Y8+cRrDesi1MOb/3o/0sF438Mp+yR6ETWNApMkpAOqQjfG++BUBSXuN4+RgERjWv+yGv79WglIi1ajIrxMpksPbicXoYv0zrwW/x0hPpzk1yCmbsNSkoY7Fs/xVCXmPHxENy5vIaydZqd9kCOZUuUOlwNHHZbbwS0RyDijrVs0yK62cTPjZmGNFGsZ18d5wLerjJi+XxJnnaswmWx6vBRnIHR13aZc/7l6bgjcaUGfOO/OJru+qdQLsb/Bj3LEIM7TTUVaItPwnkVqHdJOOXKsvgB/mpczKBn5s5stdeY8tvdicDPyBYiPuQEvvqp4LZIra+0n/XFtoU9bdZyLeSEC3D7NnqeO9luaP1TtcK7Uqa55BPqcABq9XPDZIPgoeHNQ1gSHm+hXnsomYfNyUt3s0mz/cj9ubYF0T1xCzdy6UkjVUl1uGZJCCDtBwW7bwxRgtjM/RrsXhgzlD6eODjfIsPJSksvlsNBBQeUEAVDWwtYNdGA2wnxVpCQN4F5TVGNRrlIn+0/b5xaSSAc2bgrOC+UZWopSfxyNV7rbxpUCWDv1O+RjPzFiNjJGyQirvJucI7PcaX1huJ9BdSaIu4XK2jzXsrnibXvrOSnRyQu5RJ2g0VPkCcq/oFeOFpzN0E6YuwnemkgUtVrlscaSxoUmqI3I538jJbOchFZdfZTV10rhIeruRA9kEgOz0/KhJOj+OwbMclxnLdYmvj0rYrf+fizrbFHkZFl2j8+s1Qg9p5acN5UDiFl/Aa+e05NWyVBQ3OltpX4LRw/HXxxdAWaELDGm3tLicL6gY5IqfxJ8FSjpJXwheSESGAuAJJagBvlalu9iD1axy0uEcw6HVtwSunae9JMLqoBiGQBL1Y1s0HpUxRWglvadWKaujVc9w5yNbs31jCyY78tZ9rcWDHh14IKPFbx8BkvJeVxdzWYZDMrtPHxg8TuXZmPGxsauUkVlJYqH6N+WdV+vN3pgEW1qliIPV++XFr2VF0g8+ra/svMY6SL7BDVJsnJ0A4mZdUF99bvPigThwyaBatjazKmoZHf0jCtnqN48k2EZAfk7oPIHhc5NsgyAcbx3Jq0BLxnsQbAMeHfevl7a1W7jXFxv6F6oS3VtQhb+hnGY8XpEQFX/EHz8/LX+MiBSV4YPf+iSldPZFfyX6ZkKAsDdj2uRLdVqmM/2E7lWF1GJc4kOe4WH2Opm7soaXRJGy+Ev1y1wF7CYX5K0w7RbZ9MPnJJ57r4lYsd9f/VQEsfOy10wmY4CKO5D1wAGUV4huq7oY9Eg7cWzu0DAdPWm5UnI0wSc5KachAD9AHU62euEeVD5UFt0HFdJiZePl2KNFpsddDmZoAor1gV+8BDDc+MMs38qznVtYimaMh9Gto2Tcx2CF3Rg5SyiCa8VaHYMIo1LEW0O+YN+ezf1ajn1NgIqqIgfW1qKGWQK4QKGYgaGlM1jJTX/qK1iZCK1UciaH1fln4vGLhkb3wT4okWoWQjxEOZCwxRCSRvHaJBr42seF31717M8MhyJjqgL6d4tPpSxjMaTEi0v3HRg/D0wtwGQBQ6qO7C18t4gp/P5Keaep7vYv30CelqfPZBtUWfxj14sh9Sr17sft4UE3P73mtifiMx1RRDhrPlm3Yy6+tJ05fcb8zvDqSZ2008kna3Oz3w9MUxi92Zp6P+eL3f7jmG/Z4f+LWDdFgCC70ggiOl7TgGQQEUdrf8RLGbPoWRAkC1K2Iv3Y1FomvqYDaZaqdJhXSGrQhdOF8CqVVNU35CRKi3FEKvA82pMSuMRZsaoTD4opcNou/UXBD6yjZARsSO7GXRuMzpzvgJmCf/MSGZhXU/EKt7z49DLk2r0vyj3Y3Pszy85jOuQnrbhN/xXBLu7bAgFIdYrJlN+4XziQfSrv/LpoFLLEI0jGsgVFkmDhgbTeFsab+xg/UevG/q3YypROa/VvoMY8gJ+ZdDH/le7I3ShSfyBWJevKRhKKvyw/cNkQCiRRXPYls9S383WBS7skKDO5O6bFTxaWHDZixjatH4kmQ0kvytBrVuLUVTkDToZ0FpyJFJ71TFOxqibH7MWs8v3A20n8m0ohoUI3jYKtC3Ga5kh4K2CzlTIQh4/7gjPu3iGALfP5mJLYO9h6gNnQQVx06CjBc9jlIPQ+izolm2KfW1vc3vyLL/KrcL36OqKeOMaPdMTu0r15L78KpPE3xtSE+SRpSPwYc/Y++uCWVxdD062KykBtG85RdCZ7eZ0td3JgFCVF2Y2kGxWehuiR/3V3kKoz9HwNjCLN+bc+kGsPZ9JB0UKemQHvecYSVnMHdJboVU2rMv6pz3boN3MoCUZ4jOUc7mUtO6ZXdBVEzFrdg4gsdctrUA2qAX7urV3Ru3MZ94HHxo1BN/kpGKsZcCGIO32qYhEHSJwpZ67AXvYUnP/SwJolmdQxa3X5+oQ72t45vKRSseOJfxweBA/AZ6vRJTFdgrgZDcNsBv3bVdizFMEyZAIPchGAKFlpRNR41//6PvlWEomlR+7vOhAUGeTepCH4cBrg82oqRsJ0IsFaB9hgx2lf0V0jrqGxQp/phOLyKUzGoZZVHgZAjr1pGh6n2aLwJQp9/ANOxS8LAsgr4j7Izgc2FiwuSgxYZTFcLEtiEGX2j5Ja4dk6R0fwBPoZZgMs5Xf5Duiga+esyhcdYqs/J4mmNxicbRWS5cP6FCwtN5EfDtjthaQkQEjIMq7gPhqpy8dWHVB4SRcko5PA/ty8qPRnvxJyo4qAfo/dXrcIfhn/qxpSpQCzZu+WPFHB9vnP9PjktIn68N+OLCg8z00v9j/nbe41MCQW8d8HyJknrl/2OUptgVWzDfSuBiFsLbkr4D0xrgxLq9f4TW8+2ga4ZLjV3EDdBuwFZo4AJq+aLB5xvVzdGZzmShUAb2iAGtOVgsN2OzfWJXsXU+eIEt3n+62asQgBdZdzVFmILUUG/UK1JWTLCfW1jGv2+A0vF0pVVEUaUm6uBARomAq42zGJd9pQXmzX9Z7a6HKutefV/4GmIAb9aHZ8EUJlmvbPQ2nDqUyfLfnaqUpKMVmRzmmilxAND3fhs1ei0DaESXZqbPk0A170BdZfvVV0sxGXMNAhDXRlbRqBr0JaiAg4s0CgCRGqocwwB5XhFFE4fU3sZUu31/lhE4U4icyrnS8L+lMKliw9EFOWYMtonCkONRsTXVKoiud5dyxO2Pj8dGZhFCSpvppEfzREkHdpN0tNk0LI4a7O9IIYckKHZJv8NVGzA6pkpCR5ySS0R5+8a/TbdKP5YWhzx9OnUNSD4kpeSSjUVrhftKQorrE8QfXsqb7DdCFrFNRhg/LkYOWzlONJj7fEiwa+4+VitxC+8rDZXvL9mTXh0h3w7p8fGfQHZdqd/XPI1NXvS09t0lpO9N36DTP6zy5s7YwprY1OEJ9ziD9RzJrTYH9Swb0X2GyvJb96AEGRtMmS1JUztz/ueQ7hPa032d0McMAaewHgvPwP7XWceX5jzfSug1Ey9czRD+SW5a1dtZePXTQduAfMNvEhf1q86Gx7GgmX3sUCT548eqbvI9KzDWZYoPZ+3dPM7BO6ky6XnlsAJDMiz3iwCawDb2cOfBTDJXGmbAE+1qWXHs+fVmaPkMoG4NFJlmMuHro1g9vTdShfCW1pblyG/pp6YwWFYOpuk8e8DV36OJFMC4PziuH2NfDEX6vHQJDwQr4WFE6uzuQDz984lE6BvKr9uXa3BpgWVZEjnlinbtfU+1K8OMEywSSGNurucJ+1LpaCxORKIh+k8ONE1T0jqyvwZ3Odpv7eOk6fTnpcUpzgH2SfFAYS+pOtAxYyISfYsMbzAwnpJjB3mNl2MAiUzDwXVIs73mHQ8jX1lItY5ry0aS85/4Ro4t/nUMt2sbUp7gLNBnTG4xFUzhqEyWVAFyt7ziyM2SoZgQw2rb5mkVPsbHoxjes4IbVY/LTo4WWy6fv9cor2QVzVKq1Gv91IbESZZvPKaGuqIMu0nqPVPu8G3wDKhSelybHHxcUTBNPFnLySS4Q3GwOej+xtwL4aqlp7IXYt52op9Id4VJtEuLhnlm2IsyQZxe/AhBTyKGH7j5/kNfXLBClMawpeuElCSLFlC8zPvB97IQevKE1f0FMio8FgMjw8mO9aND8vZ5ehlfjBjQk6mlu5lhpCdukDNGtDz+KhbVJXRD+Ad5i4zp4dPV9Z2gazfzHsrQaLHEv3zsj7YPhYVCoPLWPkrngUFSIFgt69QKJ+ek13EVCHJk43uERIwKaYFS3LED9I6DE+M3A8hcXoER2hlIfqbj2fm23msIrs9mS79Iecz2pxG1YGt1ok6CYpcvBvn9L0ZLPptqQKDz5nijAyV2xn2ZCPGkRO8LANbZrFUP5/fi2Yyg9cqL/x1L46omEQLzemnJqZCUVomyCG2ywtieSNC3ypzCHCHurW/zC0YQG5Y4ltUTZ4bvMvSMpAGrDwtv8QFmc4wA+L4H8webGlyn0U56EtT5MK4KiAgwWFMiLBwrOas+pwPLQxt4z8zQ/0ZJSBJCPhGNBCmrwSncEx/Sm1sa/5vjMnCXOyMfi0OoG8/44R6OLqTxrckr8epioeq6Noo4mUp5klTWcUbqE4WprDEX6ah0h1gqj5GxAZxGm8YA5KMHUgFYG0Zn7ZBWY/tsl5ccmTqt3jqfuiYl2pfn1ORsSurm9xpHKz8aBLpV3cqnegxQpdabLKytO9vxdACHn+OebNZ4l2ZVHE4U38CUgaMNceOKTLPoHETTCc5MyvqjtN1EQfXt5uQGp8608WfxDiC824VKT0l5WMnCYw5TUWrErFJ2kh/lcWrRsTeU6HcgMTz3A7jZxS2s/QJGuFImGakI+1YTBJRiCundsbiZpo+6aJdxXgr0BN07Eu/8LLKoHfdWAn8kPhgfTXocFdHd4Lz6dkdJyxI3C7CHsDbM2qcB5Dq1/W0VNOqfmh2fExbjWHDCiMi3WbCR4iWz+pj5dyDqqKA36gf7zQgkTtRUfCMjWgCvLdI1ywt0xNLiUT2ZqxX3AEyB89JSGfq3f1d33gprHzg7Z6g6XV0UnHDX6/n8fP980eVPDWNoOZTcibv4eTQsqPKEuCQg3Ku3Y3r2K6org5MkIFGpZfXEwOOH8vkZFOsQ1C5mextl6ML2lxdRoJhobCtPoyWVXNPN/05kXvySB2Sleq6u9eIgCq0PLMECc9cXvvZSAtktPoHCA3lZcApw97rqlcysQsuaZBAZMwrcffbFmesrUDnYqOl742y1Qodv/7N7fO+rnozseSVFk0wwhUQDZG8iDLBrVDvaR/rErbZwGnf1+kmYXrbGXi9N9/WD6vsp3hLm9DHpViOZMaVB1gZulS6HPio0mtaxPDPvD0lve3Jpbp5vTEk5JL864qIODjOkss1r7unbkicC4sQchVKOctiJ+6YXMVZQYKzF4snsSI0yGsTZiQBpTye+KzX81M/yJeaN2TUMuBdsZxaCOHi+80Y5ZT4U+0XqvzJQtLQj5tuVFLO/W5gA5JqCMvEYVlDgREFfbAPisn1LqShhlX226wRlzcfg0xZ/8rGJFM0ioqxtIWMMe4M0lPp3msSQrOv3qaa5Xpfy+BYuQyIH4JeRygs8eU7E/iWzbh8qtUSYpikuUFEpk20rlbbk2LbJL7GIERLG+ZezNnh5ZF9mF5sSZSb9+2dDDkZR60nLklqdAJgeMvLp3wUA9oGjIczfPngWgp4l/QRxGQysJ++gVcDb2JJ5rtDFgKgeYzIEGBvlHv/pUGfUNtR0wESsfpaAUfH2354Y8/T9zgbfIyvSq0lorVIwIdmBTV4YYr1KtChsYi7cztme5OLQ41CgP8cZCS4MJUeekAg5xBikeqIFX212kutQtM9gElZ7795WzpwLsUMqeYkpHjTr1CVq2SSn5bALR4E1KuEpviVcGtEtpf6thp5vkmXiY+PhzJsvgOHCv+iFeehfhVEkLQ/nL5d82yjx4y1410K0cRZz3jH7FZ3+UmvO20pD5dhYSUbue08WqsNj6M/zOxnezdvSlUw7rbeDzP89TIZglyvt3ODtsW38Qf8eBT0WPSFNaJgO/0yR+ZearIy+1+uBCS04IFiOKGOJ9XfHUHRTrHxu3uZTvUvyKCbBi5FyJMEWdlOkkUp+/UsEdKaRQE031sg2cXyOWNhCA77iLTOHgIqiiSqJs1IENhuXIGe5McIuGMenffJtisPdTx1SX6AtU2ZAn9McpYbgJyIXfmVgptwJ6OFgNITggRD06oGu07F9hE6nhrSiyMhrFoXqwXu0mIOCVNfrEsE/Z2sDcS+M2F8Zb/eWXq9BRcaW55eaUGUd64n5xNex/ZW+4vK4o95hmwRRnD8fifscxW5G/kWB2jnDYk5oeFPAs9eKNB4B9HvknggExKl0xWMoUuwJgvIeUeEKxkO9pImxwygY/kfEylCIxpLw0/WNmW30bxF6eHZcyprmEsI9+XZ/NABT8Sz2hiPY+sFhzhEvlvg2Q0RAE6NWSUxjupKNBKSGWHBEZVlEga3h2QJ0dUHWug2TuizMWYST+zkTQBpG8mEYRnov8CWpOqxysdsPWXEfYUF3q5d+UaRcsl06zZ+uCqyf5yfPdxZVgsn8tJy4LTLwkDO9agmKbxGn/t0V7NaGKA3tSl9WtonZbDUB4u0jFDoj4m567FikWdhN9YG3Iqp32Rcckn8ecTJ8Ie7xKM3aC3RYLyUDmqjUlRuxfVdS+VLQPL8vLhtFMDGE/sIc3hL+9ALvMCPehK95B4hQaSx+zSDyEp4wvZF8GKboK5WF1iE/od4j5lMjCI0GGd9E1enhV4yBhiJmE0sqabB35YkAvBtHpD1REGWeR/BxqeG0mk6VsJxMVw+RVlp/Wj2IPrQ7kf+7PmRgqXDFzSqM06AjUepFxSwhZ////ctZ971gASXM65hSqHiDJHNyVRSFCd8xzRss9clD881slCVMkSgKCgs6voIBrBbjLln482xaKfgUKLxhnT06cUvNivMgP6gvIVksLsTaQz2s94Rft43gmEvKsvpLnhyg35dtB7m2y0a7x5iKtKHHmI7uahFTMBhtBWI2fQzRUZykCZ1KTV+b1RsQmAgTqGRtONjGL4QZqD7cjB7Ux3+zE9Qwuuj8njU8EErFDqHKYeeRamvQOawr8UMNBHlFNxEo4bkfsLJZ2Gywnnx3lWcw4Hn4kOORxNepzOqElEsStZbr/Fz61/SNlbTkY9l37lmAiL2G98KqnbUnNeXw2/zeW9nBbIUyIAldjvrMmfWNgigRxtRs1+kzChVV0hYHJ31XiFBNg4b+q1nnWsGkfRs9y9+pVHWHxHNYVWu4h9x2r/d7GerO2NQWtFzUalY2XdYxJa0YVzuDc1O7u/SnQfzf+/egu/RJrWuwN5AHURzQOTBqy/A6PMtss6nthhK2DbHT3wKOLfxAhLjuxuSTZMSsZI2uG6/gE8oVQFasAS1dCmYSbhWA2hZneT77N25KczYuGtuEKpJTcJpMgaeNrC+VsQbTS4Egce651QLw+TwtchmDSZ6KAjOimssy0Y5GtAeg1Gg2FJx2oRmVMzS/lXh1zVSdcNs3mXwyxY/uUuGPmHXLx2xol1JWjpo6RpYIeUM+08tZMTj/nsLfGYdfOYago17A6wpZnJadRrWuKEpyPNMPuxFEJcFVpyBifomgjWWrrqYeeLP/UucIzD1KoT39v+2/gxOF8Jp8oDzJYzslvYHzxHXPlEevumwqTo8i3rMgOZPbRuLQDqdRsHoNrtV3SjA74dLwTRPzkvntP2Mpi40t+dPhTMFuxbjDkW/24MFD6DYxb2SDbXwI35KOR0BCsxjDVhKyxmXrJuHJ79eJ6uXWCpUx8pMaS7OXgIiXI2FpID6j3yDNIRTrNIVg2RA1eK5Er+z+JOE76DPMdB61zLvASfs8luO313pOh5DPWtzfT+iy0uYu0iNcCKN3PsBT9amVZwEFr49YeWkuT7Vjg3mEptpgAumgCZSmJ0d+CiROJsS7Hm635qEHjWYJZtvSyn4XTt31UffuspG5txEN38Kz1rs4QOIKm/h/3laAIsj7Wq5GT6euQqeN3nCoAbH7G5s/COCwNeyD/XYAVogXUeE5hX+CJCad7iOy6f+o8IVKvB3HneUOdvKnifHG4sHiIUjjuqtZw/IsJ4XjJSWtrpOjM5NT5Fc47mQrrtIR6MGEkQ+OFDq0P495sH1cwkus9jZK45iSlBxu05aJnoTTlBERgwjtrvlUr6i8K+sdrUCb9FP472ZkP8q4pDD6HgwUBp4druYouMIc2vhhXZNJUI4NUJTYnGrxR/mpq2Rt2dA6x0fFz26AcCr+MBXBjhMGtv993kUmOLBzpQEFYfbyiMgy1BWUuZjIMbQ7xpWTpICQ697+R/8crxGcTwXvL5Lm+Y/Y1UEbZn40TzZW2t8D4ddJHVzi2MlV606hOZjdSm45mAk7v1y/0/JUqdyEurO1FVRIFvprMLg1QQyD0wHRwPc2YAFEsyjzfcmjk+dq83I67cpGD9mH3I/0nqK1ZtAhYgbkjbT23z1N/CORXoApZTk0O2wiqXr+xd3YEOmNlHa000juCO73YHSJuE+nZrAQUfJmhdoSiU7zhqTxzlpJoYDw3eUehLv3VJe6qx/Ek4YwiUKj5zKW9Jy2lrjGy8QW2N5vasTAtIkp8XZ+QfKYVsoQUGwlgTxaLFmmONDTEox0EU/UdpoeHoNGrzE/Sqft7cpLG0vlwBYnTq1yyE3rs1cLkpdanbazviaUbsYl5dEcHVrowiE5PqpJAGL3IMdum56zCfzMK3saq/2R2W1mB4" }; var submitPass = document.getElementById('submitPass'); var passEl = document.getElementById('pass'); var invalidPassEl = document.getElementById('invalidPass'); var successEl = document.getElementById('success'); var contentFrame = document.getElementById('contentFrame'); if (pl === "") { submitPass.disabled = true; passEl.disabled = true; alert("This page is meant to be used with the encryption tool. It doesn't work standalone."); } function doSubmit(evt) { try { var decrypted = decryptFile(CryptoJS.enc.Base64.parse(pl.data), passEl.value, CryptoJS.enc.Base64.parse(pl.salt), CryptoJS.enc.Base64.parse(pl.iv)); if (decrypted === "") throw "No data returned"; // Set default iframe link targets to _top so all links break out of the iframe decrypted = decrypted.replace("", ""); srcDoc.set(contentFrame, decrypted); successEl.style.display = "inline"; passEl.disabled = true; submitPass.disabled = true; setTimeout(function() { dialogWrap.style.display = "none"; }, 1000); } catch (e) { invalidPassEl.style.display = "inline"; passEl.value = ""; } } submitPass.onclick = doSubmit; passEl.onkeypress = function(e) { if (!e) e = window.event; var keyCode = e.keyCode || e.which; invalidPassEl.style.display = "none"; if (keyCode == '13') { // Enter pressed doSubmit(); return false; } } function decryptFile(contents, password, salt, iv) { var _cp = CryptoJS.lib.CipherParams.create({ ciphertext: contents }); var key = CryptoJS.PBKDF2(password, salt, { keySize: 256 / 32, iterations: 100 }); var decrypted = CryptoJS.AES.decrypt(_cp, key, { iv: iv }); return decrypted.toString(CryptoJS.enc.Utf8); } } else { var date = new Date(); var year = date.getFullYear(); var month = date.getMonth(); if (month < 6) { year = year - 1; } var numbery = year.toString(); var ryear = numbery.replace("20", ""); window.location.href = "https://www.trumbullps.org/Attachments/boe/cal" + ryear + ".pdf"; }