{"ScriptPreparationCode":"var _a = [\r\n Symbol(),\r\n Symbol(),\r\n Symbol(),\r\n Symbol(),\r\n Symbol(),\r\n String.fromCharCode,\r\n Math.floor,\r\n \u0027indexOf\u0027,\r\n \u0027charAt\u0027,\r\n \u0027charCodeAt\u0027,\r\n Symbol(),\r\n Symbol(),\r\n], bdec = _a[0], benc = _a[1], keyc = _a[2], xore = _a[3], xord = _a[4], fcc = _a[5], mf = _a[6], io = _a[7], ca = _a[8], cca = _a[9], cdd = _a[10], dce = _a[11];\r\nvar XORCipher = /** @class */ (function () {\r\n function XORCipher() {\r\n var l = eval(\u0022new Array( 26 ).fill( 1 ).map( ( _, i ) =\u003E String.fromCharCode( 65 \u002B i ) ).reverse().join(\u0027\u0027);\u0022);\r\n var d = l.toLowerCase();\r\n var i = eval(\u0022[...Array(20).keys()].reverse().join(\u0027\u0027);\u0022);\r\n this.t = eval(\u0022\u0027=/\u002B\u0022 \u002B i \u002B d \u002B l \u002B \u0022\u0027.split(\u0027\u0027).reverse().join(\u0027\u0027)\u0022);\r\n }\r\n // decode\r\n XORCipher.prototype[cdd] = function (key, data) {\r\n return this[xord](key, this[bdec](data)).join(\u0027\u0027);\r\n };\r\n // encode\r\n XORCipher.prototype[dce] = function (key, data) {\r\n return this[benc](this[xore](key, data));\r\n };\r\n XORCipher.prototype[benc] = function (data) {\r\n var o1, o2, o3, h1, h2, h3, h4, bits, r, i = 0, enc = \u0027\u0027;\r\n if (!data) {\r\n return data;\r\n }\r\n do {\r\n o1 = data[i\u002B\u002B];\r\n o2 = data[i\u002B\u002B];\r\n o3 = data[i\u002B\u002B];\r\n bits = o1 \u003C\u003C 16 | o2 \u003C\u003C 8 | o3;\r\n h1 = bits \u003E\u003E 18 \u0026 0x3f;\r\n h2 = bits \u003E\u003E 12 \u0026 0x3f;\r\n h3 = bits \u003E\u003E 6 \u0026 0x3f;\r\n h4 = bits \u0026 0x3f;\r\n var t = this.t;\r\n enc \u002B= \u0022\u0022 \u002B t[ca](h1) \u002B t[ca](h2) \u002B t[ca](h3) \u002B t[ca](h4);\r\n } while (i \u003C data.length);\r\n r = data.length % 3;\r\n return (r ? enc.slice(0, r - 3) : enc) \u002B \u0027===\u0027.slice(r || 3);\r\n };\r\n XORCipher.prototype[bdec] = function (data) {\r\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, result = [];\r\n if (!data) {\r\n return data;\r\n }\r\n data \u002B= \u0027\u0027;\r\n do {\r\n var t = this.t;\r\n h1 = t[io](data[ca](i\u002B\u002B));\r\n h2 = t[io](data[ca](i\u002B\u002B));\r\n h3 = t[io](data[ca](i\u002B\u002B));\r\n h4 = t[io](data[ca](i\u002B\u002B));\r\n bits = h1 \u003C\u003C 18 | h2 \u003C\u003C 12 | h3 \u003C\u003C 6 | h4;\r\n o1 = bits \u003E\u003E 16 \u0026 0xff;\r\n o2 = bits \u003E\u003E 8 \u0026 0xff;\r\n o3 = bits \u0026 0xff;\r\n result.push(o1);\r\n if (h3 !== 64) {\r\n result.push(o2);\r\n if (h4 !== 64) {\r\n result.push(o3);\r\n }\r\n }\r\n } while (i \u003C data.length);\r\n return result;\r\n };\r\n XORCipher.prototype[keyc] = function (key, i) {\r\n return key[cca](mf(i % key.length));\r\n };\r\n XORCipher.prototype[xore] = function (key, data) {\r\n var result = [], index = 0;\r\n for (var _i = 0, data_1 = data; _i \u003C data_1.length; _i\u002B\u002B) {\r\n var val = data_1[_i];\r\n var e = val[cca](0) ^ this[keyc](key, index);\r\n result.push(e);\r\n \u002B\u002Bindex;\r\n }\r\n return result;\r\n };\r\n XORCipher.prototype[xord] = function (key, data) {\r\n var result = [], index = 0;\r\n for (var _i = 0, data_2 = data; _i \u003C data_2.length; _i\u002B\u002B) {\r\n var val = data_2[_i];\r\n var e = fcc(val ^ this[keyc](key, index));\r\n result.push(e);\r\n \u002B\u002Bindex;\r\n }\r\n return result;\r\n };\r\n return XORCipher;\r\n}());","TestCases":[{"Name":"encode","Code":"var z = new XORCipher();\r\nvar enc = z[dce](\u0027test\u0027, \u0027jashka\u0027);\r\nconsole.log(\u0027enc\u0027, enc);\r\n","IsDeferred":false},{"Name":"decode","Code":"var z = new XORCipher();\r\nvar dec = z[cdd](\u0027test\u0027, \u0027HgQAHB8E\u0027);\r\nconsole.log(\u0027dec\u0027, dec);","IsDeferred":false}]}