@leofcoin/chain 1.10.21 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +95 -0
  2. package/exports/browser/beacon-wire.js +2 -2
  3. package/exports/browser/{browser-CCfR9KOM-BGMMnVsR.js → browser-CCfR9KOM-CNWKLusu.js} +3 -3
  4. package/exports/browser/{browser-crypto-CH0ua22L.js → browser-crypto-B_UJguhk.js} +453 -35
  5. package/exports/browser/chain.js +1275 -996
  6. package/exports/browser/client-DbZBfpG6-C1cXgvfr.js +5943 -0
  7. package/exports/browser/{connection-monitor-D-krNiRH.js → connection-monitor-BzbeYGEt.js} +153 -24
  8. package/exports/browser/{index-dTQVgkpf-DOL2rIjp.js → index-dTQVgkpf-CkoAiRNX.js} +3 -3
  9. package/exports/browser/{index-DCbLvMKL.js → index-phv5KvaE.js} +238 -234
  10. package/exports/browser/{messages-DCePyqKC-BSvJxDWZ.js → messages-DZYCxoZI-B472zldo.js} +3 -3
  11. package/exports/browser/{node-browser-Ha4Lvntj.js → node-browser-BmyPBkL5.js} +55 -11
  12. package/exports/browser/node-browser.js +3 -3
  13. package/exports/browser/workers/block-worker.js +8 -9
  14. package/exports/browser/workers/machine-worker.js +141 -1195
  15. package/exports/{workers/worker-BDTWOCzS-COrAszCt.js → browser/workers/proposal.proto-8zgMfutf-B3So_tnS.js} +910 -398
  16. package/exports/chain.js +296 -1078
  17. package/exports/connection-monitor-BdFLRh-J.js +465 -0
  18. package/exports/connection-monitor.js +2 -324
  19. package/exports/{constants-Dy9i9S_o.js → constants-BQ6f-_OT.js} +1 -1
  20. package/exports/hash-format-state.js +3 -3
  21. package/exports/machine.js +550 -0
  22. package/exports/node.js +35 -2
  23. package/exports/state-checkpoint-BiQ1EXzo.js +110 -0
  24. package/exports/state-checkpoint.js +3 -0
  25. package/exports/workers/block-worker.js +8 -9
  26. package/exports/workers/machine-worker.js +141 -1195
  27. package/exports/{browser/workers/worker-BDTWOCzS-COrAszCt.js → workers/proposal.proto-8zgMfutf-B3So_tnS.js} +910 -398
  28. package/package.json +9 -7
  29. package/exports/browser/client-DKKzPSlb-C_1ug6ux.js +0 -2401
@@ -1,4 +1,4 @@
1
- import { E as EasyWorker, j as jsonStringifyBigInt$1, b as jsonParseBigInt$1, F as FormatInterface, c as proto$1, f as proto } from './worker-BDTWOCzS-COrAszCt.js';
1
+ import { B as BinaryWorker, c as encodeValue, j as jsonStringifyBigInt$1, a as BinaryFormat, f as proto } from './proposal.proto-8zgMfutf-B3So_tnS.js';
2
2
 
3
3
  // This file was generated. Do not modify manually!
4
4
  var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 31, 4, 33, 15, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 7, 0, 259, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 481, 1, 61, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 12, 2, 9, 1, 3, 0, 33, 1, 1357, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
@@ -265,14 +265,14 @@ var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;
265
265
 
266
266
  var ref = Object.prototype;
267
267
  var hasOwnProperty = ref.hasOwnProperty;
268
- var toString$1 = ref.toString;
268
+ var toString = ref.toString;
269
269
 
270
270
  var hasOwn = Object.hasOwn || (function (obj, propName) { return (
271
271
  hasOwnProperty.call(obj, propName)
272
272
  ); });
273
273
 
274
274
  var isArray = Array.isArray || (function (obj) { return (
275
- toString$1.call(obj) === "[object Array]"
275
+ toString.call(obj) === "[object Array]"
276
276
  ); });
277
277
 
278
278
  var regexpCache = Object.create(null);
@@ -6291,11 +6291,11 @@ pp.readWord = function() {
6291
6291
  // [ghbt]: https://github.com/acornjs/acorn/issues
6292
6292
 
6293
6293
 
6294
- var version$1 = "8.19.0";
6294
+ var version = "8.19.0";
6295
6295
 
6296
6296
  Parser.acorn = {
6297
6297
  Parser: Parser,
6298
- version: version$1,
6298
+ version: version,
6299
6299
  defaultOptions: defaultOptions,
6300
6300
  Position: Position,
6301
6301
  SourceLocation: SourceLocation,
@@ -7111,937 +7111,19 @@ const createCryptoBridge = (resolve) => Object.freeze({
7111
7111
  }
7112
7112
  });
7113
7113
 
7114
- class ContractMessage extends FormatInterface {
7114
+ class ContractMessage extends BinaryFormat {
7115
7115
  get messageName() {
7116
7116
  return 'ContractMessage';
7117
7117
  }
7118
7118
  constructor(buffer) {
7119
7119
  if (buffer instanceof ContractMessage)
7120
7120
  return buffer;
7121
- super(buffer, proto$1, { name: 'contract-message' });
7121
+ if (buffer && typeof buffer === 'object' && !(buffer instanceof Uint8Array) && typeof buffer.contract === 'string')
7122
+ buffer = { ...buffer, contract: new TextEncoder().encode(buffer.contract) };
7123
+ super(buffer, proto, { name: 'contract-message' });
7122
7124
  }
7123
7125
  }
7124
7126
 
7125
- class TransactionMessage extends FormatInterface {
7126
- get messageName() {
7127
- return 'TransactionMessage';
7128
- }
7129
- constructor(buffer) {
7130
- if (buffer instanceof TransactionMessage)
7131
- return buffer;
7132
- const name = 'transaction-message';
7133
- super(buffer, proto, { name });
7134
- }
7135
- beforeHashing(decoded) {
7136
- decoded = super.beforeHashing(decoded);
7137
- delete decoded.signature;
7138
- delete decoded.priority;
7139
- delete decoded.dependsOn;
7140
- return decoded;
7141
- }
7142
- }
7143
-
7144
- /* Do NOT modify this file; see /src.ts/_admin/update-version.ts */
7145
- /**
7146
- * The current version of Ethers.
7147
- */
7148
- const version = "6.17.0";
7149
-
7150
- /**
7151
- * Property helper functions.
7152
- *
7153
- * @_subsection api/utils:Properties [about-properties]
7154
- */
7155
- /**
7156
- * Assigns the %%values%% to %%target%% as read-only values.
7157
- *
7158
- * It %%types%% is specified, the values are checked.
7159
- */
7160
- function defineProperties(target, values, types) {
7161
- for (let key in values) {
7162
- let value = values[key];
7163
- Object.defineProperty(target, key, { enumerable: true, value, writable: false });
7164
- }
7165
- }
7166
-
7167
- /**
7168
- * All errors in ethers include properties to ensure they are both
7169
- * human-readable (i.e. ``.message``) and machine-readable (i.e. ``.code``).
7170
- *
7171
- * The [[isError]] function can be used to check the error ``code`` and
7172
- * provide a type guard for the properties present on that error interface.
7173
- *
7174
- * @_section: api/utils/errors:Errors [about-errors]
7175
- */
7176
- function stringify(value, seen) {
7177
- if (value == null) {
7178
- return "null";
7179
- }
7180
- if (seen == null) {
7181
- seen = new Set();
7182
- }
7183
- if (typeof (value) === "object") {
7184
- if (seen.has(value)) {
7185
- return "[Circular]";
7186
- }
7187
- seen.add(value);
7188
- }
7189
- if (Array.isArray(value)) {
7190
- return "[ " + (value.map((v) => stringify(v, seen))).join(", ") + " ]";
7191
- }
7192
- if (value instanceof Uint8Array) {
7193
- const HEX = "0123456789abcdef";
7194
- let result = "0x";
7195
- for (let i = 0; i < value.length; i++) {
7196
- result += HEX[value[i] >> 4];
7197
- result += HEX[value[i] & 0xf];
7198
- }
7199
- return result;
7200
- }
7201
- if (typeof (value) === "object" && typeof (value.toJSON) === "function") {
7202
- return stringify(value.toJSON(), seen);
7203
- }
7204
- switch (typeof (value)) {
7205
- case "boolean":
7206
- case "number":
7207
- case "symbol":
7208
- return value.toString();
7209
- case "bigint":
7210
- return BigInt(value).toString();
7211
- case "string":
7212
- return JSON.stringify(value);
7213
- case "object": {
7214
- const keys = Object.keys(value);
7215
- keys.sort();
7216
- return "{ " + keys.map((k) => `${stringify(k, seen)}: ${stringify(value[k], seen)}`).join(", ") + " }";
7217
- }
7218
- }
7219
- return `[ COULD NOT SERIALIZE ]`;
7220
- }
7221
- /**
7222
- * Returns a new Error configured to the format ethers emits errors, with
7223
- * the %%message%%, [[api:ErrorCode]] %%code%% and additional properties
7224
- * for the corresponding EthersError.
7225
- *
7226
- * Each error in ethers includes the version of ethers, a
7227
- * machine-readable [[ErrorCode]], and depending on %%code%%, additional
7228
- * required properties. The error message will also include the %%message%%,
7229
- * ethers version, %%code%% and all additional properties, serialized.
7230
- */
7231
- function makeError(message, code, info) {
7232
- let shortMessage = message;
7233
- {
7234
- const details = [];
7235
- if (info) {
7236
- if ("message" in info || "code" in info || "name" in info) {
7237
- throw new Error(`value will overwrite populated values: ${stringify(info)}`);
7238
- }
7239
- for (const key in info) {
7240
- if (key === "shortMessage") {
7241
- continue;
7242
- }
7243
- const value = (info[key]);
7244
- // try {
7245
- details.push(key + "=" + stringify(value));
7246
- // } catch (error: any) {
7247
- // console.log("MMM", error.message);
7248
- // details.push(key + "=[could not serialize object]");
7249
- // }
7250
- }
7251
- }
7252
- details.push(`code=${code}`);
7253
- details.push(`version=${version}`);
7254
- if (details.length) {
7255
- message += " (" + details.join(", ") + ")";
7256
- }
7257
- }
7258
- let error;
7259
- switch (code) {
7260
- case "INVALID_ARGUMENT":
7261
- error = new TypeError(message);
7262
- break;
7263
- case "NUMERIC_FAULT":
7264
- case "BUFFER_OVERRUN":
7265
- error = new RangeError(message);
7266
- break;
7267
- default:
7268
- error = new Error(message);
7269
- }
7270
- defineProperties(error, { code });
7271
- if (info) {
7272
- Object.assign(error, info);
7273
- }
7274
- if (error.shortMessage == null) {
7275
- defineProperties(error, { shortMessage });
7276
- }
7277
- return error;
7278
- }
7279
- /**
7280
- * Throws an EthersError with %%message%%, %%code%% and additional error
7281
- * %%info%% when %%check%% is falsish..
7282
- *
7283
- * @see [[api:makeError]]
7284
- */
7285
- function assert(check, message, code, info) {
7286
- if (!check) {
7287
- throw makeError(message, code, info);
7288
- }
7289
- }
7290
- /**
7291
- * A simple helper to simply ensuring provided arguments match expected
7292
- * constraints, throwing if not.
7293
- *
7294
- * In TypeScript environments, the %%check%% has been asserted true, so
7295
- * any further code does not need additional compile-time checks.
7296
- */
7297
- function assertArgument(check, message, name, value) {
7298
- assert(check, message, "INVALID_ARGUMENT", { argument: name, value: value });
7299
- }
7300
- ["NFD", "NFC", "NFKD", "NFKC"].reduce((accum, form) => {
7301
- try {
7302
- // General test for normalize
7303
- /* c8 ignore start */
7304
- if ("test".normalize(form) !== "test") {
7305
- throw new Error("bad");
7306
- }
7307
- ;
7308
- /* c8 ignore stop */
7309
- if (form === "NFD") {
7310
- const check = String.fromCharCode(0xe9).normalize("NFD");
7311
- const expected = String.fromCharCode(0x65, 0x0301);
7312
- /* c8 ignore start */
7313
- if (check !== expected) {
7314
- throw new Error("broken");
7315
- }
7316
- /* c8 ignore stop */
7317
- }
7318
- accum.push(form);
7319
- }
7320
- catch (error) { }
7321
- return accum;
7322
- }, []);
7323
- /**
7324
- * Many classes use file-scoped values to guard the constructor,
7325
- * making it effectively private. This facilitates that pattern
7326
- * by ensuring the %%givenGaurd%% matches the file-scoped %%guard%%,
7327
- * throwing if not, indicating the %%className%% if provided.
7328
- */
7329
- function assertPrivate(givenGuard, guard, className) {
7330
- if (givenGuard !== guard) {
7331
- let method = className, operation = "new";
7332
- {
7333
- method += ".";
7334
- operation += " " + className;
7335
- }
7336
- assert(false, `private constructor; use ${method}from* methods`, "UNSUPPORTED_OPERATION", {
7337
- operation
7338
- });
7339
- }
7340
- }
7341
-
7342
- /**
7343
- * Some data helpers.
7344
- *
7345
- *
7346
- * @_subsection api/utils:Data Helpers [about-data]
7347
- */
7348
- function _getBytes(value, name, copy) {
7349
- if (value instanceof Uint8Array) {
7350
- return value;
7351
- }
7352
- if (typeof (value) === "string" && (value.length % 2) === 0 &&
7353
- value.match(/^0x[0-9a-f]*$/i)) {
7354
- const result = new Uint8Array((value.length - 2) / 2);
7355
- let offset = 2;
7356
- for (let i = 0; i < result.length; i++) {
7357
- result[i] = parseInt(value.substring(offset, offset + 2), 16);
7358
- offset += 2;
7359
- }
7360
- return result;
7361
- }
7362
- assertArgument(false, "invalid BytesLike value", name, value);
7363
- }
7364
- /**
7365
- * Get a typed Uint8Array for %%value%%. If already a Uint8Array
7366
- * the original %%value%% is returned; if a copy is required use
7367
- * [[getBytesCopy]].
7368
- *
7369
- * @see: getBytesCopy
7370
- */
7371
- function getBytes(value, name) {
7372
- return _getBytes(value, name);
7373
- }
7374
-
7375
- /**
7376
- * Some mathematic operations.
7377
- *
7378
- * @_subsection: api/utils:Math Helpers [about-maths]
7379
- */
7380
- const BN_0$1 = BigInt(0);
7381
- const BN_1$1 = BigInt(1);
7382
- //const BN_Max256 = (BN_1 << BigInt(256)) - BN_1;
7383
- // IEEE 754 support 53-bits of mantissa
7384
- const maxValue = 0x1fffffffffffff;
7385
- /**
7386
- * Convert %%value%% from a twos-compliment representation of %%width%%
7387
- * bits to its value.
7388
- *
7389
- * If the highest bit is ``1``, the result will be negative.
7390
- */
7391
- function fromTwos(_value, _width) {
7392
- const value = getUint(_value, "value");
7393
- const width = BigInt(getNumber(_width, "width"));
7394
- assert((value >> width) === BN_0$1, "overflow", "NUMERIC_FAULT", {
7395
- operation: "fromTwos", fault: "overflow", value: _value
7396
- });
7397
- // Top bit set; treat as a negative value
7398
- if (value >> (width - BN_1$1)) {
7399
- const mask = (BN_1$1 << width) - BN_1$1;
7400
- return -(((~value) & mask) + BN_1$1);
7401
- }
7402
- return value;
7403
- }
7404
- /**
7405
- * Mask %%value%% with a bitmask of %%bits%% ones.
7406
- */
7407
- function mask(_value, _bits) {
7408
- const value = getUint(_value, "value");
7409
- const bits = BigInt(getNumber(_bits, "bits"));
7410
- return value & ((BN_1$1 << bits) - BN_1$1);
7411
- }
7412
- /**
7413
- * Gets a BigInt from %%value%%. If it is an invalid value for
7414
- * a BigInt, then an ArgumentError will be thrown for %%name%%.
7415
- */
7416
- function getBigInt(value, name) {
7417
- switch (typeof (value)) {
7418
- case "bigint": return value;
7419
- case "number":
7420
- assertArgument(Number.isInteger(value), "underflow", name || "value", value);
7421
- assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value);
7422
- return BigInt(value);
7423
- case "string":
7424
- try {
7425
- if (value === "") {
7426
- throw new Error("empty string");
7427
- }
7428
- if (value[0] === "-" && value[1] !== "-") {
7429
- return -BigInt(value.substring(1));
7430
- }
7431
- return BigInt(value);
7432
- }
7433
- catch (e) {
7434
- assertArgument(false, `invalid BigNumberish string: ${e.message}`, name || "value", value);
7435
- }
7436
- }
7437
- assertArgument(false, "invalid BigNumberish value", name || "value", value);
7438
- }
7439
- /**
7440
- * Returns %%value%% as a bigint, validating it is valid as a bigint
7441
- * value and that it is positive.
7442
- */
7443
- function getUint(value, name) {
7444
- const result = getBigInt(value, name);
7445
- assert(result >= BN_0$1, "unsigned value cannot be negative", "NUMERIC_FAULT", {
7446
- fault: "overflow", operation: "getUint", value
7447
- });
7448
- return result;
7449
- }
7450
- const Nibbles = "0123456789abcdef";
7451
- /*
7452
- * Converts %%value%% to a BigInt. If %%value%% is a Uint8Array, it
7453
- * is treated as Big Endian data.
7454
- */
7455
- function toBigInt(value) {
7456
- if (value instanceof Uint8Array) {
7457
- let result = "0x0";
7458
- for (const v of value) {
7459
- result += Nibbles[v >> 4];
7460
- result += Nibbles[v & 0x0f];
7461
- }
7462
- return BigInt(result);
7463
- }
7464
- return getBigInt(value);
7465
- }
7466
- /**
7467
- * Gets a //number// from %%value%%. If it is an invalid value for
7468
- * a //number//, then an ArgumentError will be thrown for %%name%%.
7469
- */
7470
- function getNumber(value, name) {
7471
- switch (typeof (value)) {
7472
- case "bigint":
7473
- assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value);
7474
- return Number(value);
7475
- case "number":
7476
- assertArgument(Number.isInteger(value), "underflow", name || "value", value);
7477
- assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value);
7478
- return value;
7479
- case "string":
7480
- try {
7481
- if (value === "") {
7482
- throw new Error("empty string");
7483
- }
7484
- return getNumber(BigInt(value), name);
7485
- }
7486
- catch (e) {
7487
- assertArgument(false, `invalid numeric string: ${e.message}`, name || "value", value);
7488
- }
7489
- }
7490
- assertArgument(false, "invalid numeric value", name || "value", value);
7491
- }
7492
-
7493
- /**
7494
- * The **FixedNumber** class permits using values with decimal places,
7495
- * using fixed-pont math.
7496
- *
7497
- * Fixed-point math is still based on integers under-the-hood, but uses an
7498
- * internal offset to store fractional components below, and each operation
7499
- * corrects for this after each operation.
7500
- *
7501
- * @_section: api/utils/fixed-point-math:Fixed-Point Maths [about-fixed-point-math]
7502
- */
7503
- const BN_N1 = BigInt(-1);
7504
- const BN_0 = BigInt(0);
7505
- const BN_1 = BigInt(1);
7506
- const BN_5 = BigInt(5);
7507
- const _guard = {};
7508
- // Constant to pull zeros from for multipliers
7509
- let Zeros = "0000";
7510
- while (Zeros.length < 80) {
7511
- Zeros += Zeros;
7512
- }
7513
- // Returns a string "1" followed by decimal "0"s
7514
- function getTens(decimals) {
7515
- let result = Zeros;
7516
- while (result.length < decimals) {
7517
- result += result;
7518
- }
7519
- return BigInt("1" + result.substring(0, decimals));
7520
- }
7521
- function checkValue(val, format, safeOp) {
7522
- const width = BigInt(format.width);
7523
- if (format.signed) {
7524
- const limit = (BN_1 << (width - BN_1));
7525
- assert(safeOp == null || (val >= -limit && val < limit), "overflow", "NUMERIC_FAULT", {
7526
- operation: safeOp, fault: "overflow", value: val
7527
- });
7528
- if (val > BN_0) {
7529
- val = fromTwos(mask(val, width), width);
7530
- }
7531
- else {
7532
- val = -fromTwos(mask(-val, width), width);
7533
- }
7534
- }
7535
- else {
7536
- const limit = (BN_1 << width);
7537
- assert(safeOp == null || (val >= 0 && val < limit), "overflow", "NUMERIC_FAULT", {
7538
- operation: safeOp, fault: "overflow", value: val
7539
- });
7540
- val = (((val % limit) + limit) % limit) & (limit - BN_1);
7541
- }
7542
- return val;
7543
- }
7544
- function getFormat(value) {
7545
- if (typeof (value) === "number") {
7546
- value = `fixed128x${value}`;
7547
- }
7548
- let signed = true;
7549
- let width = 128;
7550
- let decimals = 18;
7551
- if (typeof (value) === "string") {
7552
- // Parse the format string
7553
- if (value === "fixed") ;
7554
- else if (value === "ufixed") {
7555
- signed = false;
7556
- }
7557
- else {
7558
- const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);
7559
- assertArgument(match, "invalid fixed format", "format", value);
7560
- signed = (match[1] !== "u");
7561
- width = parseInt(match[2]);
7562
- decimals = parseInt(match[3]);
7563
- }
7564
- }
7565
- else if (value) {
7566
- // Extract the values from the object
7567
- const v = value;
7568
- const check = (key, type, defaultValue) => {
7569
- if (v[key] == null) {
7570
- return defaultValue;
7571
- }
7572
- assertArgument(typeof (v[key]) === type, "invalid fixed format (" + key + " not " + type + ")", "format." + key, v[key]);
7573
- return v[key];
7574
- };
7575
- signed = check("signed", "boolean", signed);
7576
- width = check("width", "number", width);
7577
- decimals = check("decimals", "number", decimals);
7578
- }
7579
- assertArgument((width % 8) === 0, "invalid FixedNumber width (not byte aligned)", "format.width", width);
7580
- assertArgument(decimals <= 80, "invalid FixedNumber decimals (too large)", "format.decimals", decimals);
7581
- const name = (signed ? "" : "u") + "fixed" + String(width) + "x" + String(decimals);
7582
- return { signed, width, decimals, name };
7583
- }
7584
- function toString(val, decimals) {
7585
- let negative = "";
7586
- if (val < BN_0) {
7587
- negative = "-";
7588
- val *= BN_N1;
7589
- }
7590
- let str = val.toString();
7591
- // No decimal point for whole values
7592
- if (decimals === 0) {
7593
- return (negative + str);
7594
- }
7595
- // Pad out to the whole component (including a whole digit)
7596
- while (str.length <= decimals) {
7597
- str = Zeros + str;
7598
- }
7599
- // Insert the decimal point
7600
- const index = str.length - decimals;
7601
- str = str.substring(0, index) + "." + str.substring(index);
7602
- // Trim the whole component (leaving at least one 0)
7603
- while (str[0] === "0" && str[1] !== ".") {
7604
- str = str.substring(1);
7605
- }
7606
- // Trim the decimal component (leaving at least one 0)
7607
- while (str[str.length - 1] === "0" && str[str.length - 2] !== ".") {
7608
- str = str.substring(0, str.length - 1);
7609
- }
7610
- return (negative + str);
7611
- }
7612
- /**
7613
- * A FixedNumber represents a value over its [[FixedFormat]]
7614
- * arithmetic field.
7615
- *
7616
- * A FixedNumber can be used to perform math, losslessly, on
7617
- * values which have decmial places.
7618
- *
7619
- * A FixedNumber has a fixed bit-width to store values in, and stores all
7620
- * values internally by multiplying the value by 10 raised to the power of
7621
- * %%decimals%%.
7622
- *
7623
- * If operations are performed that cause a value to grow too high (close to
7624
- * positive infinity) or too low (close to negative infinity), the value
7625
- * is said to //overflow//.
7626
- *
7627
- * For example, an 8-bit signed value, with 0 decimals may only be within
7628
- * the range ``-128`` to ``127``; so ``-128 - 1`` will overflow and become
7629
- * ``127``. Likewise, ``127 + 1`` will overflow and become ``-127``.
7630
- *
7631
- * Many operation have a normal and //unsafe// variant. The normal variant
7632
- * will throw a [[NumericFaultError]] on any overflow, while the //unsafe//
7633
- * variant will silently allow overflow, corrupting its value value.
7634
- *
7635
- * If operations are performed that cause a value to become too small
7636
- * (close to zero), the value loses precison and is said to //underflow//.
7637
- *
7638
- * For example, a value with 1 decimal place may store a number as small
7639
- * as ``0.1``, but the value of ``0.1 / 2`` is ``0.05``, which cannot fit
7640
- * into 1 decimal place, so underflow occurs which means precision is lost
7641
- * and the value becomes ``0``.
7642
- *
7643
- * Some operations have a normal and //signalling// variant. The normal
7644
- * variant will silently ignore underflow, while the //signalling// variant
7645
- * will thow a [[NumericFaultError]] on underflow.
7646
- */
7647
- class FixedNumber {
7648
- /**
7649
- * The specific fixed-point arithmetic field for this value.
7650
- */
7651
- format;
7652
- #format;
7653
- // The actual value (accounting for decimals)
7654
- #val;
7655
- // A base-10 value to multiple values by to maintain the magnitude
7656
- #tens;
7657
- /**
7658
- * This is a property so console.log shows a human-meaningful value.
7659
- *
7660
- * @private
7661
- */
7662
- _value;
7663
- // Use this when changing this file to get some typing info,
7664
- // but then switch to any to mask the internal type
7665
- //constructor(guard: any, value: bigint, format: _FixedFormat) {
7666
- /**
7667
- * @private
7668
- */
7669
- constructor(guard, value, format) {
7670
- assertPrivate(guard, _guard, "FixedNumber");
7671
- this.#val = value;
7672
- this.#format = format;
7673
- const _value = toString(value, format.decimals);
7674
- defineProperties(this, { format: format.name, _value });
7675
- this.#tens = getTens(format.decimals);
7676
- }
7677
- /**
7678
- * If true, negative values are permitted, otherwise only
7679
- * positive values and zero are allowed.
7680
- */
7681
- get signed() { return this.#format.signed; }
7682
- /**
7683
- * The number of bits available to store the value.
7684
- */
7685
- get width() { return this.#format.width; }
7686
- /**
7687
- * The number of decimal places in the fixed-point arithment field.
7688
- */
7689
- get decimals() { return this.#format.decimals; }
7690
- /**
7691
- * The value as an integer, based on the smallest unit the
7692
- * [[decimals]] allow.
7693
- */
7694
- get value() { return this.#val; }
7695
- #checkFormat(other) {
7696
- assertArgument(this.format === other.format, "incompatible format; use fixedNumber.toFormat", "other", other);
7697
- }
7698
- #checkValue(val, safeOp) {
7699
- /*
7700
- const width = BigInt(this.width);
7701
- if (this.signed) {
7702
- const limit = (BN_1 << (width - BN_1));
7703
- assert(safeOp == null || (val >= -limit && val < limit), "overflow", "NUMERIC_FAULT", {
7704
- operation: <string>safeOp, fault: "overflow", value: val
7705
- });
7706
-
7707
- if (val > BN_0) {
7708
- val = fromTwos(mask(val, width), width);
7709
- } else {
7710
- val = -fromTwos(mask(-val, width), width);
7711
- }
7712
-
7713
- } else {
7714
- const masked = mask(val, width);
7715
- assert(safeOp == null || (val >= 0 && val === masked), "overflow", "NUMERIC_FAULT", {
7716
- operation: <string>safeOp, fault: "overflow", value: val
7717
- });
7718
- val = masked;
7719
- }
7720
- */
7721
- val = checkValue(val, this.#format, safeOp);
7722
- return new FixedNumber(_guard, val, this.#format);
7723
- }
7724
- #add(o, safeOp) {
7725
- this.#checkFormat(o);
7726
- return this.#checkValue(this.#val + o.#val, safeOp);
7727
- }
7728
- /**
7729
- * Returns a new [[FixedNumber]] with the result of %%this%% added
7730
- * to %%other%%, ignoring overflow.
7731
- */
7732
- addUnsafe(other) { return this.#add(other); }
7733
- /**
7734
- * Returns a new [[FixedNumber]] with the result of %%this%% added
7735
- * to %%other%%. A [[NumericFaultError]] is thrown if overflow
7736
- * occurs.
7737
- */
7738
- add(other) { return this.#add(other, "add"); }
7739
- #sub(o, safeOp) {
7740
- this.#checkFormat(o);
7741
- return this.#checkValue(this.#val - o.#val, safeOp);
7742
- }
7743
- /**
7744
- * Returns a new [[FixedNumber]] with the result of %%other%% subtracted
7745
- * from %%this%%, ignoring overflow.
7746
- */
7747
- subUnsafe(other) { return this.#sub(other); }
7748
- /**
7749
- * Returns a new [[FixedNumber]] with the result of %%other%% subtracted
7750
- * from %%this%%. A [[NumericFaultError]] is thrown if overflow
7751
- * occurs.
7752
- */
7753
- sub(other) { return this.#sub(other, "sub"); }
7754
- #mul(o, safeOp) {
7755
- this.#checkFormat(o);
7756
- return this.#checkValue((this.#val * o.#val) / this.#tens, safeOp);
7757
- }
7758
- /**
7759
- * Returns a new [[FixedNumber]] with the result of %%this%% multiplied
7760
- * by %%other%%, ignoring overflow and underflow (precision loss).
7761
- */
7762
- mulUnsafe(other) { return this.#mul(other); }
7763
- /**
7764
- * Returns a new [[FixedNumber]] with the result of %%this%% multiplied
7765
- * by %%other%%. A [[NumericFaultError]] is thrown if overflow
7766
- * occurs.
7767
- */
7768
- mul(other) { return this.#mul(other, "mul"); }
7769
- /**
7770
- * Returns a new [[FixedNumber]] with the result of %%this%% multiplied
7771
- * by %%other%%. A [[NumericFaultError]] is thrown if overflow
7772
- * occurs or if underflow (precision loss) occurs.
7773
- */
7774
- mulSignal(other) {
7775
- this.#checkFormat(other);
7776
- const value = this.#val * other.#val;
7777
- assert((value % this.#tens) === BN_0, "precision lost during signalling mul", "NUMERIC_FAULT", {
7778
- operation: "mulSignal", fault: "underflow", value: this
7779
- });
7780
- return this.#checkValue(value / this.#tens, "mulSignal");
7781
- }
7782
- #div(o, safeOp) {
7783
- assert(o.#val !== BN_0, "division by zero", "NUMERIC_FAULT", {
7784
- operation: "div", fault: "divide-by-zero", value: this
7785
- });
7786
- this.#checkFormat(o);
7787
- return this.#checkValue((this.#val * this.#tens) / o.#val, safeOp);
7788
- }
7789
- /**
7790
- * Returns a new [[FixedNumber]] with the result of %%this%% divided
7791
- * by %%other%%, ignoring underflow (precision loss). A
7792
- * [[NumericFaultError]] is thrown if overflow occurs.
7793
- */
7794
- divUnsafe(other) { return this.#div(other); }
7795
- /**
7796
- * Returns a new [[FixedNumber]] with the result of %%this%% divided
7797
- * by %%other%%, ignoring underflow (precision loss). A
7798
- * [[NumericFaultError]] is thrown if overflow occurs.
7799
- */
7800
- div(other) { return this.#div(other, "div"); }
7801
- /**
7802
- * Returns a new [[FixedNumber]] with the result of %%this%% divided
7803
- * by %%other%%. A [[NumericFaultError]] is thrown if underflow
7804
- * (precision loss) occurs.
7805
- */
7806
- divSignal(other) {
7807
- assert(other.#val !== BN_0, "division by zero", "NUMERIC_FAULT", {
7808
- operation: "div", fault: "divide-by-zero", value: this
7809
- });
7810
- this.#checkFormat(other);
7811
- const value = (this.#val * this.#tens);
7812
- assert((value % other.#val) === BN_0, "precision lost during signalling div", "NUMERIC_FAULT", {
7813
- operation: "divSignal", fault: "underflow", value: this
7814
- });
7815
- return this.#checkValue(value / other.#val, "divSignal");
7816
- }
7817
- /**
7818
- * Returns a comparison result between %%this%% and %%other%%.
7819
- *
7820
- * This is suitable for use in sorting, where ``-1`` implies %%this%%
7821
- * is smaller, ``1`` implies %%this%% is larger and ``0`` implies
7822
- * both are equal.
7823
- */
7824
- cmp(other) {
7825
- let a = this.value, b = other.value;
7826
- // Coerce a and b to the same magnitude
7827
- const delta = this.decimals - other.decimals;
7828
- if (delta > 0) {
7829
- b *= getTens(delta);
7830
- }
7831
- else if (delta < 0) {
7832
- a *= getTens(-delta);
7833
- }
7834
- // Comnpare
7835
- if (a < b) {
7836
- return -1;
7837
- }
7838
- if (a > b) {
7839
- return 1;
7840
- }
7841
- return 0;
7842
- }
7843
- /**
7844
- * Returns true if %%other%% is equal to %%this%%.
7845
- */
7846
- eq(other) { return this.cmp(other) === 0; }
7847
- /**
7848
- * Returns true if %%other%% is less than to %%this%%.
7849
- */
7850
- lt(other) { return this.cmp(other) < 0; }
7851
- /**
7852
- * Returns true if %%other%% is less than or equal to %%this%%.
7853
- */
7854
- lte(other) { return this.cmp(other) <= 0; }
7855
- /**
7856
- * Returns true if %%other%% is greater than to %%this%%.
7857
- */
7858
- gt(other) { return this.cmp(other) > 0; }
7859
- /**
7860
- * Returns true if %%other%% is greater than or equal to %%this%%.
7861
- */
7862
- gte(other) { return this.cmp(other) >= 0; }
7863
- /**
7864
- * Returns a new [[FixedNumber]] which is the largest **integer**
7865
- * that is less than or equal to %%this%%.
7866
- *
7867
- * The decimal component of the result will always be ``0``.
7868
- */
7869
- floor() {
7870
- let val = this.#val;
7871
- if (this.#val < BN_0) {
7872
- val -= this.#tens - BN_1;
7873
- }
7874
- val = (this.#val / this.#tens) * this.#tens;
7875
- return this.#checkValue(val, "floor");
7876
- }
7877
- /**
7878
- * Returns a new [[FixedNumber]] which is the smallest **integer**
7879
- * that is greater than or equal to %%this%%.
7880
- *
7881
- * The decimal component of the result will always be ``0``.
7882
- */
7883
- ceiling() {
7884
- let val = this.#val;
7885
- if (this.#val > BN_0) {
7886
- val += this.#tens - BN_1;
7887
- }
7888
- val = (this.#val / this.#tens) * this.#tens;
7889
- return this.#checkValue(val, "ceiling");
7890
- }
7891
- /**
7892
- * Returns a new [[FixedNumber]] with the decimal component
7893
- * rounded up on ties at %%decimals%% places.
7894
- */
7895
- round(decimals) {
7896
- if (decimals == null) {
7897
- decimals = 0;
7898
- }
7899
- // Not enough precision to not already be rounded
7900
- if (decimals >= this.decimals) {
7901
- return this;
7902
- }
7903
- const delta = this.decimals - decimals;
7904
- const bump = BN_5 * getTens(delta - 1);
7905
- let value = this.value + bump;
7906
- const tens = getTens(delta);
7907
- value = (value / tens) * tens;
7908
- checkValue(value, this.#format, "round");
7909
- return new FixedNumber(_guard, value, this.#format);
7910
- }
7911
- /**
7912
- * Returns true if %%this%% is equal to ``0``.
7913
- */
7914
- isZero() { return (this.#val === BN_0); }
7915
- /**
7916
- * Returns true if %%this%% is less than ``0``.
7917
- */
7918
- isNegative() { return (this.#val < BN_0); }
7919
- /**
7920
- * Returns the string representation of %%this%%.
7921
- */
7922
- toString() { return this._value; }
7923
- /**
7924
- * Returns a float approximation.
7925
- *
7926
- * Due to IEEE 754 precission (or lack thereof), this function
7927
- * can only return an approximation and most values will contain
7928
- * rounding errors.
7929
- */
7930
- toUnsafeFloat() { return parseFloat(this.toString()); }
7931
- /**
7932
- * Return a new [[FixedNumber]] with the same value but has had
7933
- * its field set to %%format%%.
7934
- *
7935
- * This will throw if the value cannot fit into %%format%%.
7936
- */
7937
- toFormat(format) {
7938
- return FixedNumber.fromString(this.toString(), format);
7939
- }
7940
- /**
7941
- * Creates a new [[FixedNumber]] for %%value%% divided by
7942
- * %%decimal%% places with %%format%%.
7943
- *
7944
- * This will throw a [[NumericFaultError]] if %%value%% (once adjusted
7945
- * for %%decimals%%) cannot fit in %%format%%, either due to overflow
7946
- * or underflow (precision loss).
7947
- */
7948
- static fromValue(_value, _decimals, _format) {
7949
- const decimals = (_decimals == null) ? 0 : getNumber(_decimals);
7950
- const format = getFormat(_format);
7951
- let value = getBigInt(_value, "value");
7952
- const delta = decimals - format.decimals;
7953
- if (delta > 0) {
7954
- const tens = getTens(delta);
7955
- assert((value % tens) === BN_0, "value loses precision for format", "NUMERIC_FAULT", {
7956
- operation: "fromValue", fault: "underflow", value: _value
7957
- });
7958
- value /= tens;
7959
- }
7960
- else if (delta < 0) {
7961
- value *= getTens(-delta);
7962
- }
7963
- checkValue(value, format, "fromValue");
7964
- return new FixedNumber(_guard, value, format);
7965
- }
7966
- /**
7967
- * Creates a new [[FixedNumber]] for %%value%% with %%format%%.
7968
- *
7969
- * This will throw a [[NumericFaultError]] if %%value%% cannot fit
7970
- * in %%format%%, either due to overflow or underflow (precision loss).
7971
- */
7972
- static fromString(_value, _format) {
7973
- const match = _value.match(/^(-?)([0-9]*)\.?([0-9]*)$/);
7974
- assertArgument(match && (match[2].length + match[3].length) > 0, "invalid FixedNumber string value", "value", _value);
7975
- const format = getFormat(_format);
7976
- let whole = (match[2] || "0"), decimal = (match[3] || "");
7977
- // Pad out the decimals
7978
- while (decimal.length < format.decimals) {
7979
- decimal += Zeros;
7980
- }
7981
- // Check precision is safe
7982
- assert(decimal.substring(format.decimals).match(/^0*$/), "too many decimals for format", "NUMERIC_FAULT", {
7983
- operation: "fromString", fault: "underflow", value: _value
7984
- });
7985
- // Remove extra padding
7986
- decimal = decimal.substring(0, format.decimals);
7987
- const value = BigInt(match[1] + whole + decimal);
7988
- checkValue(value, format, "fromString");
7989
- return new FixedNumber(_guard, value, format);
7990
- }
7991
- /**
7992
- * Creates a new [[FixedNumber]] with the big-endian representation
7993
- * %%value%% with %%format%%.
7994
- *
7995
- * This will throw a [[NumericFaultError]] if %%value%% cannot fit
7996
- * in %%format%% due to overflow.
7997
- */
7998
- static fromBytes(_value, _format) {
7999
- let value = toBigInt(getBytes(_value, "value"));
8000
- const format = getFormat(_format);
8001
- if (format.signed) {
8002
- value = fromTwos(value, format.width);
8003
- }
8004
- checkValue(value, format, "fromBytes");
8005
- return new FixedNumber(_guard, value, format);
8006
- }
8007
- }
8008
- //const f1 = FixedNumber.fromString("12.56", "fixed16x2");
8009
- //const f2 = FixedNumber.fromString("0.3", "fixed16x2");
8010
- //console.log(f1.divSignal(f2));
8011
- //const BUMP = FixedNumber.from("0.5");
8012
-
8013
- /**
8014
- * Most interactions with Ethereum requires integer values, which use
8015
- * the smallest magnitude unit.
8016
- *
8017
- * For example, imagine dealing with dollars and cents. Since dollars
8018
- * are divisible, non-integer values are possible, such as ``$10.77``.
8019
- * By using the smallest indivisible unit (i.e. cents), the value can
8020
- * be kept as the integer ``1077``.
8021
- *
8022
- * When receiving decimal input from the user (as a decimal string),
8023
- * the value should be converted to an integer and when showing a user
8024
- * a value, the integer value should be converted to a decimal string.
8025
- *
8026
- * This creates a clear distinction, between values to be used by code
8027
- * (integers) and values used for display logic to users (decimals).
8028
- *
8029
- * The native unit in Ethereum, //ether// is divisible to 18 decimal places,
8030
- * where each individual unit is called a //wei//.
8031
- *
8032
- * @_subsection api/utils:Unit Conversion [about-units]
8033
- */
8034
- /**
8035
- * Converts %%value%% into a //decimal string//, assuming %%unit%% decimal
8036
- * places. The %%unit%% may be the number of decimal places or the name of
8037
- * a unit (e.g. ``"gwei"`` for 9 decimal places).
8038
- *
8039
- */
8040
- function formatUnits(value, unit) {
8041
- let decimals = 18;
8042
- return FixedNumber.fromValue(value, decimals, { decimals, width: 512 }).toString();
8043
- }
8044
-
8045
7127
  const byteFormats = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
8046
7128
  const formatBytes = (bytes, decimals = 2) => {
8047
7129
  if (bytes === 0)
@@ -8053,10 +7135,10 @@ const formatBytes = (bytes, decimals = 2) => {
8053
7135
  return `${parseFloat((bytes / Math.pow(k, i)).toFixed(decimals))} ${byteFormats[i]}`;
8054
7136
  };
8055
7137
 
8056
- var contractFactory$1 = "B3OGRUBSBGSASFXWDZUI6AYITY76PYQZS4O5UDWVLSW56X5CSWTQGTGQHUGU";
8057
- var nativeToken$1 = "B3OGRUBSA5V74HIRRP6YPMZYDZ7YM3SR3MQX63XSYEZIZ7TWHBPDWRWVA2XA";
8058
- var nameService$1 = "B3OGRUBSBXX7EPFWHGZQGGSWBMMK7ATOSDICOW5CCFP25OMZBTRMHYGM4KFF";
8059
- var validators$1 = "B3OGRUBSBXLCYRTXG5SRL6XNINEJNAI7CLJBKSRCXY24GMFU5ZY7TXHAGJGT";
7138
+ var contractFactory$1 = "B3OGRUBSARKAMWHZLZZAL5Y4SRUJOE4RIMQX4SELNLMTQVPBGFQXEF5RPPHV";
7139
+ var nativeToken$1 = "B3OGRUBSBSWHYGNYT4O57EK7Q5ZNXYFR23CCS4EUQPQ34RU57V6ROQNLYIVN";
7140
+ var nameService$1 = "B3OGRUBSB23VEDKVPQM5DYREJVI2XYMSQ44ZN3NQG445AZMASFMOUU4P7HLM";
7141
+ var validators$1 = "B3OGRUBSBT6UD4G6V3KP7Z6G2DLMMOV5D5IFIZH2I3KD2CK6VFD3CYY2NCKV";
8060
7142
  var addresses$1 = {
8061
7143
  contractFactory: contractFactory$1,
8062
7144
  nativeToken: nativeToken$1,
@@ -8075,10 +7157,10 @@ var addresses = {
8075
7157
  validators: validators$2
8076
7158
  };
8077
7159
 
8078
- var contractFactory = "237,198,141,3,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,162,51,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,80,117,98,108,105,99,86,111,116,105,110,103,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,118,111,116,101,115,59,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,59,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,61,49,55,50,56,101,53,59,35,118,111,116,101,78,111,110,99,101,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,118,111,116,101,115,61,115,116,97,116,101,46,118,111,116,101,115,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,115,116,97,116,101,46,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,118,111,116,101,78,111,110,99,101,63,63,79,98,106,101,99,116,46,107,101,121,115,40,115,116,97,116,101,46,118,111,116,101,115,63,63,123,125,41,46,108,101,110,103,116,104,41,41,58,40,116,104,105,115,46,35,118,111,116,101,115,61,123,125,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,49,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,48,110,41,125,103,101,116,32,118,111,116,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,118,111,116,101,115,125,125,103,101,116,32,118,111,116,105,110,103,68,117,114,97,116,105,111,110,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,125,103,101,116,32,118,111,116,105,110,103,68,105,115,97,98,108,101,100,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,118,111,116,101,115,58,116,104,105,115,46,35,118,111,116,101,115,44,118,111,116,105,110,103,68,105,115,97,98,108,101,100,58,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,118,111,116,105,110,103,68,117,114,97,116,105,111,110,58,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,118,111,116,101,78,111,110,99,101,58,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,125,125,103,101,116,32,105,110,80,114,111,103,114,101,115,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,118,111,116,101,115,41,46,102,105,108,116,101,114,40,40,91,105,100,44,118,111,116,101,93,41,61,62,33,118,111,116,101,46,102,105,110,105,115,104,101,100,41,46,109,97,112,40,40,91,105,100,44,118,111,116,101,93,41,61,62,40,123,46,46,46,118,111,116,101,44,105,100,58,105,100,125,41,41,125,99,114,101,97,116,101,86,111,116,101,40,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,44,101,110,100,84,105,109,101,44,109,101,116,104,111,100,44,97,114,103,115,61,91,93,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,99,114,101,97,116,101,32,97,32,118,111,116,101,34,41,59,99,111,110,115,116,32,105,100,61,40,43,43,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,41,46,116,111,83,116,114,105,110,103,40,41,59,116,104,105,115,46,35,118,111,116,101,115,91,105,100,93,61,123,116,105,116,108,101,58,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,58,100,101,115,99,114,105,112,116,105,111,110,44,109,101,116,104,111,100,58,109,101,116,104,111,100,44,101,110,100,84,105,109,101,58,101,110,100,84,105,109,101,44,97,114,103,115,58,97,114,103,115,125,125,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,99,97,110,86,111,116,101,63,46,40,41,125,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,98,101,102,111,114,101,86,111,116,101,63,46,40,41,125,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,123,108,101,116,32,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,49,61,61,61,114,101,115,117,108,116,41,44,100,105,115,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,48,61,61,61,114,101,115,117,108,116,41,59,97,103,114,101,101,46,108,101,110,103,116,104,62,100,105,115,97,103,114,101,101,46,108,101,110,103,116,104,38,38,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,111,117,103,104,86,111,116,101,115,38,38,116,104,105,115,91,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,109,101,116,104,111,100,93,40,46,46,46,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,97,114,103,115,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,61,33,48,125,97,115,121,110,99,32,118,111,116,101,40,118,111,116,101,73,100,44,118,111,116,101,41,123,105,102,40,48,33,61,61,40,118,111,116,101,61,78,117,109,98,101,114,40,118,111,116,101,41,41,38,38,46,53,33,61,61,118,111,116,101,38,38,49,33,61,61,118,111,116,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,118,111,116,101,32,118,97,108,117,101,32,36,123,118,111,116,101,125,96,41,59,105,102,40,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,78,111,116,104,105,110,103,32,102,111,117,110,100,32,102,111,114,32,36,123,118,111,116,101,73,100,125,96,41,59,99,111,110,115,116,32,101,110,100,101,100,61,68,97,116,101,46,110,111,119,40,41,62,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,100,84,105,109,101,59,105,102,40,101,110,100,101,100,38,38,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,44,101,110,100,101,100,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,111,116,105,110,103,32,97,108,114,101,97,100,121,32,101,110,100,101,100,34,41,59,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,118,111,116,101,34,41,59,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,91,109,115,103,46,115,101,110,100,101,114,93,61,118,111,116,101,125,35,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,48,125,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,100,105,115,97,98,108,101,32,118,111,116,105,110,103,34,44,34,87,97,114,110,105,110,103,32,116,104,105,115,32,100,105,115,97,98,108,101,115,32,97,108,108,32,118,111,116,105,110,103,32,102,101,97,116,117,114,101,115,32,102,111,114,101,118,101,114,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,100,105,115,97,98,108,101,86,111,116,105,110,103,34,44,91,93,41,125,95,115,121,110,99,40,41,123,102,111,114,40,99,111,110,115,116,32,118,111,116,101,32,111,102,32,116,104,105,115,46,105,110,80,114,111,103,114,101,115,115,41,118,111,116,101,46,101,110,100,84,105,109,101,60,68,97,116,101,46,110,111,119,40,41,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,46,105,100,41,125,125,99,108,97,115,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,32,101,120,116,101,110,100,115,32,80,117,98,108,105,99,86,111,116,105,110,103,123,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,82,101,99,101,105,118,101,114,59,35,118,111,116,101,84,121,112,101,61,34,116,114,97,110,115,102,101,114,34,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,98,117,114,110,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,115,116,97,116,101,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,115,116,97,116,101,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,115,116,97,116,101,46,118,111,116,101,84,121,112,101,41,58,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,98,117,114,110,115,38,38,40,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,34,98,117,114,110,34,41,41,125,103,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,82,101,99,101,105,118,101,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,107,101,110,82,101,99,101,105,118,101,114,58,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,118,111,116,101,84,121,112,101,58,116,104,105,115,46,35,118,111,116,101,84,121,112,101,125,125,97,115,121,110,99,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,62,61,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,97,115,121,110,99,32,95,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,125,97,115,121,110,99,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,34,98,117,114,110,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,63,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,58,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,101,102,111,114,101,86,111,116,101,40,41,123,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,125,97,115,121,110,99,32,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,117,114,110,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,97,100,100,114,101,115,115,41,123,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,97,100,100,114,101,115,115,125,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,97,109,111,117,110,116,125,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,116,121,112,101,125,35,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,34,116,114,97,110,115,102,101,114,34,44,91,114,101,99,101,105,118,101,114,44,97,109,111,117,110,116,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,38,38,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,62,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,34,44,91,116,121,112,101,93,41,125,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,34,44,96,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,32,116,111,32,36,123,114,101,99,101,105,118,101,114,125,96,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,103,101,116,84,111,107,101,110,115,79,117,116,34,44,91,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,93,41,125,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,35,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,48,110,33,61,61,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,38,38,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,32,116,111,32,97,32,110,101,119,32,97,100,100,114,101,115,115,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,125,99,108,97,115,115,32,70,97,99,116,111,114,121,32,101,120,116,101,110,100,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,34,59,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,66,105,103,73,110,116,40,48,41,59,35,99,111,110,116,114,97,99,116,115,61,91,93,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,115,116,97,116,101,41,123,115,117,112,101,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,33,48,44,115,116,97,116,101,41,44,115,116,97,116,101,38,38,40,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,99,111,110,116,114,97,99,116,115,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,116,111,116,97,108,67,111,110,116,114,97,99,116,115,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,116,97,108,67,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,44,99,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,125,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,99,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,91,46,46,46,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,93,125,103,101,116,32,116,111,116,97,108,67,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,125,105,115,82,101,103,105,115,116,101,114,101,100,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,97,100,100,114,101,115,115,44,34,99,114,101,97,116,111,114,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,125,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,125,97,115,121,110,99,32,114,101,103,105,115,116,101,114,67,111,110,116,114,97,99,116,40,97,100,100,114,101,115,115,41,123,105,102,40,33,97,119,97,105,116,32,116,104,105,115,46,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,89,111,117,32,100,111,110,39,116,32,111,119,110,32,116,104,97,116,32,99,111,110,116,114,97,99,116,34,41,59,105,102,40,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,108,114,101,97,100,121,32,114,101,103,105,115,116,101,114,101,100,34,41,59,97,119,97,105,116,32,116,104,105,115,46,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,43,61,49,110,44,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,125,10,10,114,101,116,117,114,110,32,70,97,99,116,111,114,121,89,91,34,66,51,79,71,82,85,66,83,65,53,86,55,52,72,73,82,82,80,54,89,80,77,90,89,68,90,55,89,77,51,83,82,51,77,81,88,54,51,88,83,89,69,90,73,90,55,84,87,72,66,80,68,87,82,87,86,65,50,88,65,34,44,34,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,93";
8079
- var nativeToken = "237,198,141,3,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,166,65,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,82,111,108,101,115,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,105,102,40,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,46,114,111,108,101,115,41,123,105,102,40,33,40,115,116,97,116,101,46,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,101,120,112,101,99,116,101,100,32,114,111,108,101,115,32,116,111,32,98,101,32,97,110,32,111,98,106,101,99,116,34,41,59,116,104,105,115,46,35,114,111,108,101,115,61,123,46,46,46,115,116,97,116,101,46,114,111,108,101,115,125,125,101,108,115,101,32,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,111,108,101,115,58,116,104,105,115,46,114,111,108,101,115,125,125,103,101,116,32,114,111,108,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,114,101,116,117,114,110,33,33,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,38,38,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,34,79,87,78,69,82,34,61,61,61,114,111,108,101,38,38,49,61,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,116,108,101,97,115,116,32,111,110,101,32,111,119,110,101,114,32,105,115,32,110,101,101,100,101,100,33,34,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,115,112,108,105,99,101,40,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,41,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,125,99,108,97,115,115,32,84,111,107,101,110,32,101,120,116,101,110,100,115,32,82,111,108,101,115,123,35,110,97,109,101,59,35,115,121,109,98,111,108,59,35,104,111,108,100,101,114,115,61,48,110,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,97,112,112,114,111,118,97,108,115,61,123,125,59,35,100,101,99,105,109,97,108,115,61,49,56,59,35,116,111,116,97,108,83,117,112,112,108,121,61,48,110,59,99,111,110,115,116,114,117,99,116,111,114,40,110,97,109,101,44,115,121,109,98,111,108,44,100,101,99,105,109,97,108,115,61,49,56,44,115,116,97,116,101,41,123,105,102,40,33,110,97,109,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,97,109,101,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,33,115,121,109,98,111,108,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,115,121,109,98,111,108,32,117,110,100,101,102,105,110,101,100,34,41,59,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,98,97,108,97,110,99,101,115,61,40,98,97,108,97,110,99,101,115,61,62,123,99,111,110,115,116,32,95,98,97,108,97,110,99,101,115,61,123,125,59,102,111,114,40,99,111,110,115,116,32,97,100,100,114,101,115,115,32,105,110,32,98,97,108,97,110,99,101,115,41,95,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,66,105,103,73,110,116,40,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,41,59,114,101,116,117,114,110,32,95,98,97,108,97,110,99,101,115,125,41,40,115,116,97,116,101,46,98,97,108,97,110,99,101,115,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,61,40,97,112,112,114,111,118,97,108,115,61,62,123,99,111,110,115,116,32,95,97,112,112,114,111,118,97,108,115,61,123,125,59,102,111,114,40,99,111,110,115,116,32,111,119,110,101,114,32,105,110,32,97,112,112,114,111,118,97,108,115,41,123,95,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,61,123,125,59,102,111,114,40,99,111,110,115,116,32,111,112,101,114,97,116,111,114,32,105,110,32,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,41,95,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,66,105,103,73,110,116,40,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,41,125,114,101,116,117,114,110,32,95,97,112,112,114,111,118,97,108,115,125,41,40,115,116,97,116,101,46,97,112,112,114,111,118,97,108,115,41,44,116,104,105,115,46,35,104,111,108,100,101,114,115,61,66,105,103,73,110,116,40,115,116,97,116,101,46,104,111,108,100,101,114,115,41,44,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,116,97,108,83,117,112,112,108,121,41,41,58,40,116,104,105,115,46,35,110,97,109,101,61,110,97,109,101,44,116,104,105,115,46,35,115,121,109,98,111,108,61,115,121,109,98,111,108,44,116,104,105,115,46,35,100,101,99,105,109,97,108,115,61,100,101,99,105,109,97,108,115,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,104,111,108,100,101,114,115,58,116,104,105,115,46,104,111,108,100,101,114,115,44,98,97,108,97,110,99,101,115,58,116,104,105,115,46,98,97,108,97,110,99,101,115,44,97,112,112,114,111,118,97,108,115,58,123,46,46,46,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,125,44,116,111,116,97,108,83,117,112,112,108,121,58,116,104,105,115,46,116,111,116,97,108,83,117,112,112,108,121,125,125,103,101,116,32,116,111,116,97,108,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,115,121,109,98,111,108,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,115,121,109,98,111,108,125,103,101,116,32,104,111,108,100,101,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,104,111,108,100,101,114,115,125,103,101,116,32,98,97,108,97,110,99,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,98,97,108,97,110,99,101,115,125,125,103,101,116,32,97,112,112,114,111,118,97,108,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,102,114,111,109,69,110,116,114,105,101,115,40,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,41,46,109,97,112,40,40,91,111,119,110,101,114,44,97,112,112,114,111,118,97,108,115,93,41,61,62,91,111,119,110,101,114,44,123,46,46,46,97,112,112,114,111,118,97,108,115,125,93,41,41,125,103,101,116,32,100,101,99,105,109,97,108,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,100,101,99,105,109,97,108,115,125,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,77,73,78,84,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,105,102,40,33,116,111,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,43,97,109,111,117,110,116,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,66,85,82,78,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,45,97,109,111,117,110,116,44,116,104,105,115,46,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,102,114,111,109,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,125,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,102,114,111,109,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,33,116,111,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,97,109,111,117,110,116,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,33,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,124,124,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,125,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,123,48,110,61,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,63,116,104,105,115,46,35,104,111,108,100,101,114,115,45,61,49,110,58,48,110,33,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,38,38,48,110,61,61,61,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,38,38,40,116,104,105,115,46,35,104,111,108,100,101,114,115,43,61,49,110,41,125,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,124,124,40,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,48,110,41,59,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,43,97,109,111,117,110,116,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,45,97,109,111,117,110,116,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,109,115,103,46,115,101,110,100,101,114,93,63,63,48,110,125,98,97,108,97,110,99,101,79,102,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,63,63,48,110,125,115,101,116,65,112,112,114,111,118,97,108,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,114,101,116,117,114,110,32,116,104,105,115,46,97,112,112,114,111,118,101,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,125,97,112,112,114,111,118,101,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,111,119,110,101,114,61,109,115,103,46,115,101,110,100,101,114,59,105,102,40,33,111,112,101,114,97,116,111,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,112,101,114,97,116,111,114,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,112,112,114,111,118,97,108,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,124,124,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,61,123,125,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,97,109,111,117,110,116,125,97,112,112,114,111,118,101,100,40,111,119,110,101,114,44,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,114,101,116,117,114,110,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,63,46,91,111,112,101,114,97,116,111,114,93,63,63,48,110,41,61,61,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,125,97,108,108,111,119,97,110,99,101,40,111,119,110,101,114,44,111,112,101,114,97,116,111,114,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,63,46,91,111,112,101,114,97,116,111,114,93,63,63,48,110,125,35,116,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,116,114,97,110,115,102,101,114,40,116,111,44,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,114,97,110,115,102,101,114,40,109,115,103,46,115,101,110,100,101,114,44,116,111,44,97,109,111,117,110,116,41,125,116,114,97,110,115,102,101,114,70,114,111,109,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,59,99,111,110,115,116,32,111,112,101,114,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,97,108,108,111,119,97,110,99,101,61,116,104,105,115,46,97,108,108,111,119,97,110,99,101,40,102,114,111,109,44,111,112,101,114,97,116,111,114,41,59,105,102,40,97,108,108,111,119,97,110,99,101,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,97,108,108,111,119,97,110,99,101,34,41,59,116,104,105,115,46,35,116,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,102,114,111,109,93,91,111,112,101,114,97,116,111,114,93,61,97,108,108,111,119,97,110,99,101,45,97,109,111,117,110,116,125,125,99,111,110,115,116,32,77,79,78,69,84,65,82,89,95,80,79,76,73,67,89,95,65,85,84,72,79,82,73,84,89,61,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,59,99,108,97,115,115,32,76,101,111,102,99,111,105,110,32,101,120,116,101,110,100,115,32,84,111,107,101,110,123,35,116,97,114,103,101,116,83,117,112,112,108,121,59,35,105,110,105,116,105,97,108,83,117,112,112,108,121,59,99,111,110,115,116,114,117,99,116,111,114,40,116,97,114,103,101,116,83,117,112,112,108,121,44,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,44,97,108,108,111,99,97,116,105,111,110,115,61,91,93,44,114,101,115,116,111,114,101,100,83,116,97,116,101,41,123,99,111,110,115,116,32,108,101,103,97,99,121,83,116,97,116,101,61,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,38,38,34,111,98,106,101,99,116,34,61,61,116,121,112,101,111,102,32,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,38,38,33,65,114,114,97,121,46,105,115,65,114,114,97,121,40,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,41,63,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,58,118,111,105,100,32,48,44,115,116,97,116,101,61,114,101,115,116,111,114,101,100,83,116,97,116,101,124,124,108,101,103,97,99,121,83,116,97,116,101,44,105,110,105,116,105,97,108,83,117,112,112,108,121,61,115,116,97,116,101,63,66,105,103,73,110,116,40,115,116,97,116,101,46,105,110,105,116,105,97,108,83,117,112,112,108,121,63,63,115,116,97,116,101,46,116,111,116,97,108,83,117,112,112,108,121,41,58,66,105,103,73,110,116,40,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,41,59,105,102,40,115,117,112,101,114,40,34,76,101,111,102,99,111,105,110,34,44,34,76,70,67,34,44,49,56,44,115,116,97,116,101,124,124,40,40,105,110,105,116,105,97,108,83,117,112,112,108,121,44,97,108,108,111,99,97,116,105,111,110,115,41,61,62,123,105,102,40,40,105,110,105,116,105,97,108,83,117,112,112,108,121,61,66,105,103,73,110,116,40,105,110,105,116,105,97,108,83,117,112,112,108,121,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,105,116,105,97,108,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,33,65,114,114,97,121,46,105,115,65,114,114,97,121,40,97,108,108,111,99,97,116,105,111,110,115,41,124,124,48,61,61,61,97,108,108,111,99,97,116,105,111,110,115,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,115,32,97,114,101,32,114,101,113,117,105,114,101,100,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,115,61,123,125,59,108,101,116,32,97,108,108,111,99,97,116,101,100,61,48,110,59,102,111,114,40,99,111,110,115,116,32,97,108,108,111,99,97,116,105,111,110,32,111,102,91,46,46,46,97,108,108,111,99,97,116,105,111,110,115,93,46,115,111,114,116,40,40,108,101,102,116,44,114,105,103,104,116,41,61,62,108,101,102,116,46,97,100,100,114,101,115,115,46,108,111,99,97,108,101,67,111,109,112,97,114,101,40,114,105,103,104,116,46,97,100,100,114,101,115,115,41,41,41,123,105,102,40,33,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,124,124,118,111,105,100,32,48,33,61,61,98,97,108,97,110,99,101,115,91,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,118,97,108,105,100,32,111,114,32,100,117,112,108,105,99,97,116,101,32,103,101,110,101,115,105,115,32,97,100,100,114,101,115,115,34,41,59,99,111,110,115,116,32,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,108,108,111,99,97,116,105,111,110,46,97,109,111,117,110,116,41,59,105,102,40,97,109,111,117,110,116,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,98,97,108,97,110,99,101,115,91,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,93,61,97,109,111,117,110,116,44,97,108,108,111,99,97,116,101,100,43,61,97,109,111,117,110,116,125,105,102,40,97,108,108,111,99,97,116,101,100,33,61,61,105,110,105,116,105,97,108,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,115,32,109,117,115,116,32,101,113,117,97,108,32,105,110,105,116,105,97,108,32,115,117,112,112,108,121,58,32,101,120,112,101,99,116,101,100,32,36,123,105,110,105,116,105,97,108,83,117,112,112,108,121,125,44,32,103,111,116,32,36,123,97,108,108,111,99,97,116,101,100,125,96,41,59,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,109,115,103,46,115,101,110,100,101,114,44,99,114,101,97,116,101,100,65,116,58,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,44,114,111,108,101,115,58,123,79,87,78,69,82,58,91,109,115,103,46,115,101,110,100,101,114,93,44,77,73,78,84,58,91,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,93,44,66,85,82,78,58,91,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,93,125,44,104,111,108,100,101,114,115,58,66,105,103,73,110,116,40,79,98,106,101,99,116,46,107,101,121,115,40,98,97,108,97,110,99,101,115,41,46,108,101,110,103,116,104,41,44,98,97,108,97,110,99,101,115,58,98,97,108,97,110,99,101,115,44,97,112,112,114,111,118,97,108,115,58,123,125,44,116,111,116,97,108,83,117,112,112,108,121,58,105,110,105,116,105,97,108,83,117,112,112,108,121,125,125,41,40,105,110,105,116,105,97,108,83,117,112,112,108,121,44,97,108,108,111,99,97,116,105,111,110,115,41,41,44,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,61,115,116,97,116,101,63,66,105,103,73,110,116,40,115,116,97,116,101,46,116,97,114,103,101,116,83,117,112,112,108,121,41,58,66,105,103,73,110,116,40,116,97,114,103,101,116,83,117,112,112,108,121,41,44,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,61,105,110,105,116,105,97,108,83,117,112,112,108,121,44,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,116,97,114,103,101,116,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,60,61,48,110,124,124,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,62,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,105,116,105,97,108,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,32,97,110,100,32,110,111,116,32,101,120,99,101,101,100,32,116,97,114,103,101,116,32,115,117,112,112,108,121,34,41,125,103,101,116,32,116,97,114,103,101,116,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,125,103,101,116,32,105,110,105,116,105,97,108,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,34,76,101,111,102,99,111,105,110,34,125,103,101,116,32,115,121,109,98,111,108,40,41,123,114,101,116,117,114,110,34,76,70,67,34,125,103,101,116,32,100,101,99,105,109,97,108,115,40,41,123,114,101,116,117,114,110,32,49,56,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,105,110,105,116,105,97,108,83,117,112,112,108,121,58,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,44,116,97,114,103,101,116,83,117,112,112,108,121,58,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,125,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,34,77,73,78,84,34,61,61,61,114,111,108,101,124,124,34,66,85,82,78,34,61,61,61,114,111,108,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,112,114,111,116,111,99,111,108,32,109,111,110,101,116,97,114,121,32,114,111,108,101,115,32,97,114,101,32,105,109,109,117,116,97,98,108,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,34,77,73,78,84,34,61,61,61,114,111,108,101,124,124,34,66,85,82,78,34,61,61,61,114,111,108,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,112,114,111,116,111,99,111,108,32,109,111,110,101,116,97,114,121,32,114,111,108,101,115,32,97,114,101,32,105,109,109,117,116,97,98,108,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,33,61,61,109,115,103,46,115,101,110,100,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,110,108,121,32,116,104,101,32,109,111,110,101,116,97,114,121,32,112,114,111,116,111,99,111,108,32,109,97,121,32,109,105,110,116,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,109,105,110,116,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,116,111,116,97,108,83,117,112,112,108,121,43,97,109,111,117,110,116,62,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,109,105,110,116,32,101,120,99,101,101,100,115,32,116,97,114,103,101,116,32,115,117,112,112,108,121,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,125,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,123,105,102,40,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,33,61,61,109,115,103,46,115,101,110,100,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,110,108,121,32,116,104,101,32,109,111,110,101,116,97,114,121,32,112,114,111,116,111,99,111,108,32,109,97,121,32,98,117,114,110,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,98,117,114,110,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,98,97,108,97,110,99,101,79,102,40,102,114,111,109,41,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,125,125,10,10,114,101,116,117,114,110,32,76,101,111,102,99,111,105,110,169,1,91,34,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,44,34,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,44,91,123,34,97,100,100,114,101,115,115,34,58,34,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,34,44,34,97,109,111,117,110,116,34,58,34,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,125,93,93";
8080
- var nameService = "237,198,141,3,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,173,52,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,80,117,98,108,105,99,86,111,116,105,110,103,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,118,111,116,101,115,59,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,59,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,61,49,55,50,56,101,53,59,35,118,111,116,101,78,111,110,99,101,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,118,111,116,101,115,61,115,116,97,116,101,46,118,111,116,101,115,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,115,116,97,116,101,46,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,118,111,116,101,78,111,110,99,101,63,63,79,98,106,101,99,116,46,107,101,121,115,40,115,116,97,116,101,46,118,111,116,101,115,63,63,123,125,41,46,108,101,110,103,116,104,41,41,58,40,116,104,105,115,46,35,118,111,116,101,115,61,123,125,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,49,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,48,110,41,125,103,101,116,32,118,111,116,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,118,111,116,101,115,125,125,103,101,116,32,118,111,116,105,110,103,68,117,114,97,116,105,111,110,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,125,103,101,116,32,118,111,116,105,110,103,68,105,115,97,98,108,101,100,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,118,111,116,101,115,58,116,104,105,115,46,35,118,111,116,101,115,44,118,111,116,105,110,103,68,105,115,97,98,108,101,100,58,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,118,111,116,105,110,103,68,117,114,97,116,105,111,110,58,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,118,111,116,101,78,111,110,99,101,58,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,125,125,103,101,116,32,105,110,80,114,111,103,114,101,115,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,118,111,116,101,115,41,46,102,105,108,116,101,114,40,40,91,105,100,44,118,111,116,101,93,41,61,62,33,118,111,116,101,46,102,105,110,105,115,104,101,100,41,46,109,97,112,40,40,91,105,100,44,118,111,116,101,93,41,61,62,40,123,46,46,46,118,111,116,101,44,105,100,58,105,100,125,41,41,125,99,114,101,97,116,101,86,111,116,101,40,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,44,101,110,100,84,105,109,101,44,109,101,116,104,111,100,44,97,114,103,115,61,91,93,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,99,114,101,97,116,101,32,97,32,118,111,116,101,34,41,59,99,111,110,115,116,32,105,100,61,40,43,43,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,41,46,116,111,83,116,114,105,110,103,40,41,59,116,104,105,115,46,35,118,111,116,101,115,91,105,100,93,61,123,116,105,116,108,101,58,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,58,100,101,115,99,114,105,112,116,105,111,110,44,109,101,116,104,111,100,58,109,101,116,104,111,100,44,101,110,100,84,105,109,101,58,101,110,100,84,105,109,101,44,97,114,103,115,58,97,114,103,115,125,125,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,99,97,110,86,111,116,101,63,46,40,41,125,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,98,101,102,111,114,101,86,111,116,101,63,46,40,41,125,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,123,108,101,116,32,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,49,61,61,61,114,101,115,117,108,116,41,44,100,105,115,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,48,61,61,61,114,101,115,117,108,116,41,59,97,103,114,101,101,46,108,101,110,103,116,104,62,100,105,115,97,103,114,101,101,46,108,101,110,103,116,104,38,38,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,111,117,103,104,86,111,116,101,115,38,38,116,104,105,115,91,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,109,101,116,104,111,100,93,40,46,46,46,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,97,114,103,115,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,61,33,48,125,97,115,121,110,99,32,118,111,116,101,40,118,111,116,101,73,100,44,118,111,116,101,41,123,105,102,40,48,33,61,61,40,118,111,116,101,61,78,117,109,98,101,114,40,118,111,116,101,41,41,38,38,46,53,33,61,61,118,111,116,101,38,38,49,33,61,61,118,111,116,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,118,111,116,101,32,118,97,108,117,101,32,36,123,118,111,116,101,125,96,41,59,105,102,40,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,78,111,116,104,105,110,103,32,102,111,117,110,100,32,102,111,114,32,36,123,118,111,116,101,73,100,125,96,41,59,99,111,110,115,116,32,101,110,100,101,100,61,68,97,116,101,46,110,111,119,40,41,62,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,100,84,105,109,101,59,105,102,40,101,110,100,101,100,38,38,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,44,101,110,100,101,100,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,111,116,105,110,103,32,97,108,114,101,97,100,121,32,101,110,100,101,100,34,41,59,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,118,111,116,101,34,41,59,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,91,109,115,103,46,115,101,110,100,101,114,93,61,118,111,116,101,125,35,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,48,125,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,100,105,115,97,98,108,101,32,118,111,116,105,110,103,34,44,34,87,97,114,110,105,110,103,32,116,104,105,115,32,100,105,115,97,98,108,101,115,32,97,108,108,32,118,111,116,105,110,103,32,102,101,97,116,117,114,101,115,32,102,111,114,101,118,101,114,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,100,105,115,97,98,108,101,86,111,116,105,110,103,34,44,91,93,41,125,95,115,121,110,99,40,41,123,102,111,114,40,99,111,110,115,116,32,118,111,116,101,32,111,102,32,116,104,105,115,46,105,110,80,114,111,103,114,101,115,115,41,118,111,116,101,46,101,110,100,84,105,109,101,60,68,97,116,101,46,110,111,119,40,41,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,46,105,100,41,125,125,99,108,97,115,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,32,101,120,116,101,110,100,115,32,80,117,98,108,105,99,86,111,116,105,110,103,123,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,82,101,99,101,105,118,101,114,59,35,118,111,116,101,84,121,112,101,61,34,116,114,97,110,115,102,101,114,34,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,98,117,114,110,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,115,116,97,116,101,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,115,116,97,116,101,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,115,116,97,116,101,46,118,111,116,101,84,121,112,101,41,58,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,98,117,114,110,115,38,38,40,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,34,98,117,114,110,34,41,41,125,103,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,82,101,99,101,105,118,101,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,107,101,110,82,101,99,101,105,118,101,114,58,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,118,111,116,101,84,121,112,101,58,116,104,105,115,46,35,118,111,116,101,84,121,112,101,125,125,97,115,121,110,99,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,62,61,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,97,115,121,110,99,32,95,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,125,97,115,121,110,99,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,34,98,117,114,110,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,63,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,58,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,101,102,111,114,101,86,111,116,101,40,41,123,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,125,97,115,121,110,99,32,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,117,114,110,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,97,100,100,114,101,115,115,41,123,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,97,100,100,114,101,115,115,125,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,97,109,111,117,110,116,125,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,116,121,112,101,125,35,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,34,116,114,97,110,115,102,101,114,34,44,91,114,101,99,101,105,118,101,114,44,97,109,111,117,110,116,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,38,38,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,62,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,34,44,91,116,121,112,101,93,41,125,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,34,44,96,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,32,116,111,32,36,123,114,101,99,101,105,118,101,114,125,96,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,103,101,116,84,111,107,101,110,115,79,117,116,34,44,91,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,93,41,125,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,35,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,48,110,33,61,61,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,38,38,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,32,116,111,32,97,32,110,101,119,32,97,100,100,114,101,115,115,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,125,99,108,97,115,115,32,78,97,109,101,83,101,114,118,105,99,101,32,101,120,116,101,110,100,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,78,97,109,101,83,101,114,118,105,99,101,34,59,35,114,101,103,105,115,116,114,121,61,123,125,59,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,114,101,103,105,115,116,114,121,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,101,103,105,115,116,114,121,125,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,101,103,105,115,116,114,121,58,116,104,105,115,46,35,114,101,103,105,115,116,114,121,125,125,99,111,110,115,116,114,117,99,116,111,114,40,102,97,99,116,111,114,121,65,100,100,114,101,115,115,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,115,116,97,116,101,41,123,115,117,112,101,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,33,48,44,115,116,97,116,101,41,44,115,116,97,116,101,63,116,104,105,115,46,35,114,101,103,105,115,116,114,121,61,115,116,97,116,101,46,114,101,103,105,115,116,114,121,58,40,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,109,115,103,46,99,111,110,116,114,97,99,116,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,84,111,107,101,110,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,86,97,108,105,100,97,116,111,114,115,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,125,41,125,97,115,121,110,99,32,112,117,114,99,104,97,115,101,78,97,109,101,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,97,109,101,32,97,108,114,101,97,100,121,32,114,101,103,105,115,116,101,114,101,100,34,41,59,97,119,97,105,116,32,116,104,105,115,46,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,97,100,100,114,101,115,115,125,125,108,111,111,107,117,112,40,110,97,109,101,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,125,116,114,97,110,115,102,101,114,79,119,110,101,114,115,104,105,112,40,110,97,109,101,44,116,111,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,61,116,111,125,99,104,97,110,103,101,65,100,100,114,101,115,115,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,97,100,100,114,101,115,115,61,97,100,100,114,101,115,115,125,125,10,10,114,101,116,117,114,110,32,78,97,109,101,83,101,114,118,105,99,101,215,1,91,34,66,51,79,71,82,85,66,83,66,71,83,65,83,70,88,87,68,90,85,73,54,65,89,73,84,89,55,54,80,89,81,90,83,52,79,53,85,68,87,86,76,83,87,53,54,88,53,67,83,87,84,81,71,84,71,81,72,85,71,85,34,44,34,66,51,79,71,82,85,66,83,65,53,86,55,52,72,73,82,82,80,54,89,80,77,90,89,68,90,55,89,77,51,83,82,51,77,81,88,54,51,88,83,89,69,90,73,90,55,84,87,72,66,80,68,87,82,87,86,65,50,88,65,34,44,34,66,51,79,71,82,85,66,83,66,88,76,67,89,82,84,88,71,53,83,82,76,54,88,78,73,78,69,74,78,65,73,55,67,76,74,66,75,83,82,67,88,89,50,52,71,77,70,85,53,90,89,55,84,88,72,65,71,74,71,84,34,44,34,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,93";
8081
- var validators = "237,198,141,3,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,206,33,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,82,111,108,101,115,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,105,102,40,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,46,114,111,108,101,115,41,123,105,102,40,33,40,115,116,97,116,101,46,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,101,120,112,101,99,116,101,100,32,114,111,108,101,115,32,116,111,32,98,101,32,97,110,32,111,98,106,101,99,116,34,41,59,116,104,105,115,46,35,114,111,108,101,115,61,123,46,46,46,115,116,97,116,101,46,114,111,108,101,115,125,125,101,108,115,101,32,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,111,108,101,115,58,116,104,105,115,46,114,111,108,101,115,125,125,103,101,116,32,114,111,108,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,114,101,116,117,114,110,33,33,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,38,38,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,34,79,87,78,69,82,34,61,61,61,114,111,108,101,38,38,49,61,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,116,108,101,97,115,116,32,111,110,101,32,111,119,110,101,114,32,105,115,32,110,101,101,100,101,100,33,34,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,115,112,108,105,99,101,40,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,41,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,125,99,108,97,115,115,32,86,97,108,105,100,97,116,111,114,115,32,101,120,116,101,110,100,115,32,82,111,108,101,115,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,86,97,108,105,100,97,116,111,114,115,34,59,35,118,97,108,105,100,97,116,111,114,115,61,91,93,59,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,59,35,99,117,114,114,101,110,99,121,59,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,66,105,103,73,110,116,40,53,101,52,41,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,61,123,125,59,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,98,97,108,97,110,99,101,115,58,116,104,105,115,46,35,98,97,108,97,110,99,101,115,44,109,105,110,105,109,117,109,66,97,108,97,110,99,101,58,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,99,117,114,114,101,110,99,121,58,116,104,105,115,46,35,99,117,114,114,101,110,99,121,44,118,97,108,105,100,97,116,111,114,115,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,44,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,58,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,44,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,125,125,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,65,100,100,114,101,115,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,41,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,115,116,97,116,101,46,99,117,114,114,101,110,99,121,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,61,115,116,97,116,101,46,118,97,108,105,100,97,116,111,114,115,44,116,104,105,115,46,35,98,97,108,97,110,99,101,115,61,115,116,97,116,101,46,98,97,108,97,110,99,101,115,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,115,116,97,116,101,46,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,61,115,116,97,116,101,46,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,124,124,123,125,41,58,40,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,116,111,107,101,110,65,100,100,114,101,115,115,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,112,117,115,104,40,109,115,103,46,115,101,110,100,101,114,41,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,48,93,61,91,109,115,103,46,115,101,110,100,101,114,93,41,125,103,101,116,32,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,99,117,114,114,101,110,99,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,117,114,114,101,110,99,121,125,103,101,116,32,118,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,103,101,116,32,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,125,103,101,116,32,109,105,110,105,109,117,109,66,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,99,104,97,110,103,101,67,117,114,114,101,110,99,121,40,99,117,114,114,101,110,99,121,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,110,32,111,119,110,101,114,34,41,59,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,99,117,114,114,101,110,99,121,125,104,97,115,40,118,97,108,105,100,97,116,111,114,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,105,110,99,108,117,100,101,115,40,118,97,108,105,100,97,116,111,114,41,125,35,105,115,65,108,108,111,119,101,100,40,97,100,100,114,101,115,115,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,97,100,100,114,101,115,115,38,38,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,115,101,110,100,101,114,32,105,115,32,110,111,116,32,116,104,101,32,118,97,108,105,100,97,116,111,114,32,111,114,32,111,119,110,101,114,34,41,59,114,101,116,117,114,110,33,48,125,118,97,108,105,100,97,116,111,114,115,66,121,72,101,105,103,104,116,40,104,101,105,103,104,116,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,63,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,114,101,99,111,114,100,86,97,108,105,100,97,116,111,114,83,110,97,112,115,104,111,116,40,104,101,105,103,104,116,41,123,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,61,91,46,46,46,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,93,125,97,115,121,110,99,32,97,100,100,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,116,104,105,115,46,35,105,115,65,108,108,111,119,101,100,40,118,97,108,105,100,97,116,111,114,41,44,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,97,108,105,100,97,116,111,114,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,61,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,98,97,108,97,110,99,101,79,102,34,44,91,118,97,108,105,100,97,116,111,114,93,41,59,105,102,40,116,104,105,115,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,62,98,97,108,97,110,99,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,98,97,108,97,110,99,101,32,116,111,32,108,111,119,33,32,103,111,116,58,32,36,123,98,97,108,97,110,99,101,125,32,110,101,101,100,58,32,36,123,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,96,41,59,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,118,97,108,105,100,97,116,111,114,44,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,93,41,44,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,118,97,108,105,100,97,116,111,114,93,61,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,112,117,115,104,40,118,97,108,105,100,97,116,111,114,41,125,97,115,121,110,99,32,114,101,109,111,118,101,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,116,104,105,115,46,35,105,115,65,108,108,111,119,101,100,40,118,97,108,105,100,97,116,111,114,41,44,33,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,97,108,105,100,97,116,111,114,32,110,111,116,32,102,111,117,110,100,34,41,59,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,116,114,97,110,115,102,101,114,34,44,91,118,97,108,105,100,97,116,111,114,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,93,41,44,100,101,108,101,116,101,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,118,97,108,105,100,97,116,111,114,93,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,115,112,108,105,99,101,40,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,105,110,100,101,120,79,102,40,118,97,108,105,100,97,116,111,114,41,44,49,41,125,115,104,117,102,102,108,101,86,97,108,105,100,97,116,111,114,40,41,123,99,111,110,115,116,32,118,97,108,105,100,97,116,111,114,115,61,91,46,46,46,110,101,119,32,83,101,116,40,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,41,93,46,115,111,114,116,40,41,59,105,102,40,48,61,61,61,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,114,101,116,117,114,110,59,99,111,110,115,116,32,115,101,101,100,61,96,36,123,115,116,97,116,101,46,108,97,115,116,66,108,111,99,107,63,46,104,97,115,104,63,63,34,48,120,48,34,125,58,36,123,115,116,97,116,101,46,108,97,115,116,66,108,111,99,107,63,46,105,110,100,101,120,63,63,45,49,125,96,59,108,101,116,32,118,97,108,117,101,61,48,110,59,102,111,114,40,99,111,110,115,116,32,99,104,97,114,97,99,116,101,114,32,111,102,32,115,101,101,100,41,118,97,108,117,101,61,40,51,49,110,42,118,97,108,117,101,43,66,105,103,73,110,116,40,99,104,97,114,97,99,116,101,114,46,99,104,97,114,67,111,100,101,65,116,40,48,41,41,41,37,52,50,57,52,57,54,55,50,57,49,110,59,108,101,116,32,105,110,100,101,120,61,78,117,109,98,101,114,40,118,97,108,117,101,37,66,105,103,73,110,116,40,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,41,59,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,62,49,38,38,118,97,108,105,100,97,116,111,114,115,91,105,110,100,101,120,93,61,61,61,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,38,38,40,105,110,100,101,120,61,40,105,110,100,101,120,43,49,41,37,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,118,97,108,105,100,97,116,111,114,115,91,105,110,100,101,120,93,125,125,10,10,114,101,116,117,114,110,32,86,97,108,105,100,97,116,111,114,115,64,91,34,66,51,79,71,82,85,66,83,65,53,86,55,52,72,73,82,82,80,54,89,80,77,90,89,68,90,55,89,77,51,83,82,51,77,81,88,54,51,88,83,89,69,90,73,90,55,84,87,72,66,80,68,87,82,87,86,65,50,88,65,34,93";
7160
+ var contractFactory = "237,198,141,3,76,70,67,1,9,3,7,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,8,162,51,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,80,117,98,108,105,99,86,111,116,105,110,103,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,118,111,116,101,115,59,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,59,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,61,49,55,50,56,101,53,59,35,118,111,116,101,78,111,110,99,101,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,118,111,116,101,115,61,115,116,97,116,101,46,118,111,116,101,115,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,115,116,97,116,101,46,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,118,111,116,101,78,111,110,99,101,63,63,79,98,106,101,99,116,46,107,101,121,115,40,115,116,97,116,101,46,118,111,116,101,115,63,63,123,125,41,46,108,101,110,103,116,104,41,41,58,40,116,104,105,115,46,35,118,111,116,101,115,61,123,125,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,49,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,48,110,41,125,103,101,116,32,118,111,116,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,118,111,116,101,115,125,125,103,101,116,32,118,111,116,105,110,103,68,117,114,97,116,105,111,110,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,125,103,101,116,32,118,111,116,105,110,103,68,105,115,97,98,108,101,100,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,118,111,116,101,115,58,116,104,105,115,46,35,118,111,116,101,115,44,118,111,116,105,110,103,68,105,115,97,98,108,101,100,58,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,118,111,116,105,110,103,68,117,114,97,116,105,111,110,58,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,118,111,116,101,78,111,110,99,101,58,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,125,125,103,101,116,32,105,110,80,114,111,103,114,101,115,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,118,111,116,101,115,41,46,102,105,108,116,101,114,40,40,91,105,100,44,118,111,116,101,93,41,61,62,33,118,111,116,101,46,102,105,110,105,115,104,101,100,41,46,109,97,112,40,40,91,105,100,44,118,111,116,101,93,41,61,62,40,123,46,46,46,118,111,116,101,44,105,100,58,105,100,125,41,41,125,99,114,101,97,116,101,86,111,116,101,40,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,44,101,110,100,84,105,109,101,44,109,101,116,104,111,100,44,97,114,103,115,61,91,93,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,99,114,101,97,116,101,32,97,32,118,111,116,101,34,41,59,99,111,110,115,116,32,105,100,61,40,43,43,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,41,46,116,111,83,116,114,105,110,103,40,41,59,116,104,105,115,46,35,118,111,116,101,115,91,105,100,93,61,123,116,105,116,108,101,58,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,58,100,101,115,99,114,105,112,116,105,111,110,44,109,101,116,104,111,100,58,109,101,116,104,111,100,44,101,110,100,84,105,109,101,58,101,110,100,84,105,109,101,44,97,114,103,115,58,97,114,103,115,125,125,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,99,97,110,86,111,116,101,63,46,40,41,125,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,98,101,102,111,114,101,86,111,116,101,63,46,40,41,125,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,123,108,101,116,32,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,49,61,61,61,114,101,115,117,108,116,41,44,100,105,115,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,48,61,61,61,114,101,115,117,108,116,41,59,97,103,114,101,101,46,108,101,110,103,116,104,62,100,105,115,97,103,114,101,101,46,108,101,110,103,116,104,38,38,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,111,117,103,104,86,111,116,101,115,38,38,116,104,105,115,91,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,109,101,116,104,111,100,93,40,46,46,46,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,97,114,103,115,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,61,33,48,125,97,115,121,110,99,32,118,111,116,101,40,118,111,116,101,73,100,44,118,111,116,101,41,123,105,102,40,48,33,61,61,40,118,111,116,101,61,78,117,109,98,101,114,40,118,111,116,101,41,41,38,38,46,53,33,61,61,118,111,116,101,38,38,49,33,61,61,118,111,116,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,118,111,116,101,32,118,97,108,117,101,32,36,123,118,111,116,101,125,96,41,59,105,102,40,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,78,111,116,104,105,110,103,32,102,111,117,110,100,32,102,111,114,32,36,123,118,111,116,101,73,100,125,96,41,59,99,111,110,115,116,32,101,110,100,101,100,61,68,97,116,101,46,110,111,119,40,41,62,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,100,84,105,109,101,59,105,102,40,101,110,100,101,100,38,38,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,44,101,110,100,101,100,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,111,116,105,110,103,32,97,108,114,101,97,100,121,32,101,110,100,101,100,34,41,59,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,118,111,116,101,34,41,59,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,91,109,115,103,46,115,101,110,100,101,114,93,61,118,111,116,101,125,35,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,48,125,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,100,105,115,97,98,108,101,32,118,111,116,105,110,103,34,44,34,87,97,114,110,105,110,103,32,116,104,105,115,32,100,105,115,97,98,108,101,115,32,97,108,108,32,118,111,116,105,110,103,32,102,101,97,116,117,114,101,115,32,102,111,114,101,118,101,114,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,100,105,115,97,98,108,101,86,111,116,105,110,103,34,44,91,93,41,125,95,115,121,110,99,40,41,123,102,111,114,40,99,111,110,115,116,32,118,111,116,101,32,111,102,32,116,104,105,115,46,105,110,80,114,111,103,114,101,115,115,41,118,111,116,101,46,101,110,100,84,105,109,101,60,68,97,116,101,46,110,111,119,40,41,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,46,105,100,41,125,125,99,108,97,115,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,32,101,120,116,101,110,100,115,32,80,117,98,108,105,99,86,111,116,105,110,103,123,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,82,101,99,101,105,118,101,114,59,35,118,111,116,101,84,121,112,101,61,34,116,114,97,110,115,102,101,114,34,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,98,117,114,110,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,115,116,97,116,101,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,115,116,97,116,101,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,115,116,97,116,101,46,118,111,116,101,84,121,112,101,41,58,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,98,117,114,110,115,38,38,40,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,34,98,117,114,110,34,41,41,125,103,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,82,101,99,101,105,118,101,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,107,101,110,82,101,99,101,105,118,101,114,58,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,118,111,116,101,84,121,112,101,58,116,104,105,115,46,35,118,111,116,101,84,121,112,101,125,125,97,115,121,110,99,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,62,61,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,97,115,121,110,99,32,95,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,125,97,115,121,110,99,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,34,98,117,114,110,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,63,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,58,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,101,102,111,114,101,86,111,116,101,40,41,123,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,125,97,115,121,110,99,32,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,117,114,110,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,97,100,100,114,101,115,115,41,123,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,97,100,100,114,101,115,115,125,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,97,109,111,117,110,116,125,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,116,121,112,101,125,35,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,34,116,114,97,110,115,102,101,114,34,44,91,114,101,99,101,105,118,101,114,44,97,109,111,117,110,116,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,38,38,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,62,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,34,44,91,116,121,112,101,93,41,125,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,34,44,96,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,32,116,111,32,36,123,114,101,99,101,105,118,101,114,125,96,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,103,101,116,84,111,107,101,110,115,79,117,116,34,44,91,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,93,41,125,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,35,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,48,110,33,61,61,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,38,38,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,32,116,111,32,97,32,110,101,119,32,97,100,100,114,101,115,115,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,125,99,108,97,115,115,32,70,97,99,116,111,114,121,32,101,120,116,101,110,100,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,34,59,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,66,105,103,73,110,116,40,48,41,59,35,99,111,110,116,114,97,99,116,115,61,91,93,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,115,116,97,116,101,41,123,115,117,112,101,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,33,48,44,115,116,97,116,101,41,44,115,116,97,116,101,38,38,40,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,99,111,110,116,114,97,99,116,115,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,116,111,116,97,108,67,111,110,116,114,97,99,116,115,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,116,97,108,67,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,44,99,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,125,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,99,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,91,46,46,46,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,93,125,103,101,116,32,116,111,116,97,108,67,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,125,105,115,82,101,103,105,115,116,101,114,101,100,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,97,100,100,114,101,115,115,44,34,99,114,101,97,116,111,114,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,125,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,125,97,115,121,110,99,32,114,101,103,105,115,116,101,114,67,111,110,116,114,97,99,116,40,97,100,100,114,101,115,115,41,123,105,102,40,33,97,119,97,105,116,32,116,104,105,115,46,105,115,67,114,101,97,116,111,114,40,97,100,100,114,101,115,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,89,111,117,32,100,111,110,39,116,32,111,119,110,32,116,104,97,116,32,99,111,110,116,114,97,99,116,34,41,59,105,102,40,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,108,114,101,97,100,121,32,114,101,103,105,115,116,101,114,101,100,34,41,59,97,119,97,105,116,32,116,104,105,115,46,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,43,61,49,110,44,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,125,10,10,114,101,116,117,114,110,32,70,97,99,116,111,114,121,9,2,7,60,66,51,79,71,82,85,66,83,66,83,87,72,89,71,78,89,84,52,79,53,55,69,75,55,81,53,90,78,88,89,70,82,50,51,67,67,83,52,69,85,81,80,81,51,52,82,85,53,55,86,54,82,79,81,78,76,89,73,86,78,7,22,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48";
7161
+ var nativeToken = "237,198,141,3,76,70,67,1,9,3,7,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,8,166,65,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,82,111,108,101,115,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,105,102,40,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,46,114,111,108,101,115,41,123,105,102,40,33,40,115,116,97,116,101,46,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,101,120,112,101,99,116,101,100,32,114,111,108,101,115,32,116,111,32,98,101,32,97,110,32,111,98,106,101,99,116,34,41,59,116,104,105,115,46,35,114,111,108,101,115,61,123,46,46,46,115,116,97,116,101,46,114,111,108,101,115,125,125,101,108,115,101,32,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,111,108,101,115,58,116,104,105,115,46,114,111,108,101,115,125,125,103,101,116,32,114,111,108,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,114,101,116,117,114,110,33,33,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,38,38,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,34,79,87,78,69,82,34,61,61,61,114,111,108,101,38,38,49,61,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,116,108,101,97,115,116,32,111,110,101,32,111,119,110,101,114,32,105,115,32,110,101,101,100,101,100,33,34,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,115,112,108,105,99,101,40,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,41,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,125,99,108,97,115,115,32,84,111,107,101,110,32,101,120,116,101,110,100,115,32,82,111,108,101,115,123,35,110,97,109,101,59,35,115,121,109,98,111,108,59,35,104,111,108,100,101,114,115,61,48,110,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,97,112,112,114,111,118,97,108,115,61,123,125,59,35,100,101,99,105,109,97,108,115,61,49,56,59,35,116,111,116,97,108,83,117,112,112,108,121,61,48,110,59,99,111,110,115,116,114,117,99,116,111,114,40,110,97,109,101,44,115,121,109,98,111,108,44,100,101,99,105,109,97,108,115,61,49,56,44,115,116,97,116,101,41,123,105,102,40,33,110,97,109,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,97,109,101,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,33,115,121,109,98,111,108,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,115,121,109,98,111,108,32,117,110,100,101,102,105,110,101,100,34,41,59,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,98,97,108,97,110,99,101,115,61,40,98,97,108,97,110,99,101,115,61,62,123,99,111,110,115,116,32,95,98,97,108,97,110,99,101,115,61,123,125,59,102,111,114,40,99,111,110,115,116,32,97,100,100,114,101,115,115,32,105,110,32,98,97,108,97,110,99,101,115,41,95,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,66,105,103,73,110,116,40,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,41,59,114,101,116,117,114,110,32,95,98,97,108,97,110,99,101,115,125,41,40,115,116,97,116,101,46,98,97,108,97,110,99,101,115,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,61,40,97,112,112,114,111,118,97,108,115,61,62,123,99,111,110,115,116,32,95,97,112,112,114,111,118,97,108,115,61,123,125,59,102,111,114,40,99,111,110,115,116,32,111,119,110,101,114,32,105,110,32,97,112,112,114,111,118,97,108,115,41,123,95,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,61,123,125,59,102,111,114,40,99,111,110,115,116,32,111,112,101,114,97,116,111,114,32,105,110,32,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,41,95,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,66,105,103,73,110,116,40,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,41,125,114,101,116,117,114,110,32,95,97,112,112,114,111,118,97,108,115,125,41,40,115,116,97,116,101,46,97,112,112,114,111,118,97,108,115,41,44,116,104,105,115,46,35,104,111,108,100,101,114,115,61,66,105,103,73,110,116,40,115,116,97,116,101,46,104,111,108,100,101,114,115,41,44,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,116,97,108,83,117,112,112,108,121,41,41,58,40,116,104,105,115,46,35,110,97,109,101,61,110,97,109,101,44,116,104,105,115,46,35,115,121,109,98,111,108,61,115,121,109,98,111,108,44,116,104,105,115,46,35,100,101,99,105,109,97,108,115,61,100,101,99,105,109,97,108,115,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,104,111,108,100,101,114,115,58,116,104,105,115,46,104,111,108,100,101,114,115,44,98,97,108,97,110,99,101,115,58,116,104,105,115,46,98,97,108,97,110,99,101,115,44,97,112,112,114,111,118,97,108,115,58,123,46,46,46,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,125,44,116,111,116,97,108,83,117,112,112,108,121,58,116,104,105,115,46,116,111,116,97,108,83,117,112,112,108,121,125,125,103,101,116,32,116,111,116,97,108,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,115,121,109,98,111,108,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,115,121,109,98,111,108,125,103,101,116,32,104,111,108,100,101,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,104,111,108,100,101,114,115,125,103,101,116,32,98,97,108,97,110,99,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,98,97,108,97,110,99,101,115,125,125,103,101,116,32,97,112,112,114,111,118,97,108,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,102,114,111,109,69,110,116,114,105,101,115,40,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,41,46,109,97,112,40,40,91,111,119,110,101,114,44,97,112,112,114,111,118,97,108,115,93,41,61,62,91,111,119,110,101,114,44,123,46,46,46,97,112,112,114,111,118,97,108,115,125,93,41,41,125,103,101,116,32,100,101,99,105,109,97,108,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,100,101,99,105,109,97,108,115,125,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,77,73,78,84,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,105,102,40,33,116,111,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,43,97,109,111,117,110,116,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,66,85,82,78,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,45,97,109,111,117,110,116,44,116,104,105,115,46,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,102,114,111,109,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,125,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,102,114,111,109,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,33,116,111,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,100,100,114,101,115,115,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,97,109,111,117,110,116,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,33,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,124,124,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,125,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,123,48,110,61,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,63,116,104,105,115,46,35,104,111,108,100,101,114,115,45,61,49,110,58,48,110,33,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,38,38,48,110,61,61,61,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,38,38,40,116,104,105,115,46,35,104,111,108,100,101,114,115,43,61,49,110,41,125,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,124,124,40,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,48,110,41,59,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,43,97,109,111,117,110,116,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,45,97,109,111,117,110,116,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,109,115,103,46,115,101,110,100,101,114,93,63,63,48,110,125,98,97,108,97,110,99,101,79,102,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,63,63,48,110,125,115,101,116,65,112,112,114,111,118,97,108,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,114,101,116,117,114,110,32,116,104,105,115,46,97,112,112,114,111,118,101,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,125,97,112,112,114,111,118,101,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,111,119,110,101,114,61,109,115,103,46,115,101,110,100,101,114,59,105,102,40,33,111,112,101,114,97,116,111,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,112,101,114,97,116,111,114,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,112,112,114,111,118,97,108,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,124,124,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,61,123,125,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,97,109,111,117,110,116,125,97,112,112,114,111,118,101,100,40,111,119,110,101,114,44,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,114,101,116,117,114,110,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,63,46,91,111,112,101,114,97,116,111,114,93,63,63,48,110,41,61,61,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,125,97,108,108,111,119,97,110,99,101,40,111,119,110,101,114,44,111,112,101,114,97,116,111,114,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,63,46,91,111,112,101,114,97,116,111,114,93,63,63,48,110,125,35,116,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,116,114,97,110,115,102,101,114,40,116,111,44,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,114,97,110,115,102,101,114,40,109,115,103,46,115,101,110,100,101,114,44,116,111,44,97,109,111,117,110,116,41,125,116,114,97,110,115,102,101,114,70,114,111,109,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,59,99,111,110,115,116,32,111,112,101,114,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,97,108,108,111,119,97,110,99,101,61,116,104,105,115,46,97,108,108,111,119,97,110,99,101,40,102,114,111,109,44,111,112,101,114,97,116,111,114,41,59,105,102,40,97,108,108,111,119,97,110,99,101,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,97,108,108,111,119,97,110,99,101,34,41,59,116,104,105,115,46,35,116,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,102,114,111,109,93,91,111,112,101,114,97,116,111,114,93,61,97,108,108,111,119,97,110,99,101,45,97,109,111,117,110,116,125,125,99,111,110,115,116,32,77,79,78,69,84,65,82,89,95,80,79,76,73,67,89,95,65,85,84,72,79,82,73,84,89,61,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,59,99,108,97,115,115,32,76,101,111,102,99,111,105,110,32,101,120,116,101,110,100,115,32,84,111,107,101,110,123,35,116,97,114,103,101,116,83,117,112,112,108,121,59,35,105,110,105,116,105,97,108,83,117,112,112,108,121,59,99,111,110,115,116,114,117,99,116,111,114,40,116,97,114,103,101,116,83,117,112,112,108,121,44,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,44,97,108,108,111,99,97,116,105,111,110,115,61,91,93,44,114,101,115,116,111,114,101,100,83,116,97,116,101,41,123,99,111,110,115,116,32,108,101,103,97,99,121,83,116,97,116,101,61,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,38,38,34,111,98,106,101,99,116,34,61,61,116,121,112,101,111,102,32,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,38,38,33,65,114,114,97,121,46,105,115,65,114,114,97,121,40,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,41,63,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,58,118,111,105,100,32,48,44,115,116,97,116,101,61,114,101,115,116,111,114,101,100,83,116,97,116,101,124,124,108,101,103,97,99,121,83,116,97,116,101,44,105,110,105,116,105,97,108,83,117,112,112,108,121,61,115,116,97,116,101,63,66,105,103,73,110,116,40,115,116,97,116,101,46,105,110,105,116,105,97,108,83,117,112,112,108,121,63,63,115,116,97,116,101,46,116,111,116,97,108,83,117,112,112,108,121,41,58,66,105,103,73,110,116,40,105,110,105,116,105,97,108,83,117,112,112,108,121,79,114,83,116,97,116,101,41,59,105,102,40,115,117,112,101,114,40,34,76,101,111,102,99,111,105,110,34,44,34,76,70,67,34,44,49,56,44,115,116,97,116,101,124,124,40,40,105,110,105,116,105,97,108,83,117,112,112,108,121,44,97,108,108,111,99,97,116,105,111,110,115,41,61,62,123,105,102,40,40,105,110,105,116,105,97,108,83,117,112,112,108,121,61,66,105,103,73,110,116,40,105,110,105,116,105,97,108,83,117,112,112,108,121,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,105,116,105,97,108,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,33,65,114,114,97,121,46,105,115,65,114,114,97,121,40,97,108,108,111,99,97,116,105,111,110,115,41,124,124,48,61,61,61,97,108,108,111,99,97,116,105,111,110,115,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,115,32,97,114,101,32,114,101,113,117,105,114,101,100,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,115,61,123,125,59,108,101,116,32,97,108,108,111,99,97,116,101,100,61,48,110,59,102,111,114,40,99,111,110,115,116,32,97,108,108,111,99,97,116,105,111,110,32,111,102,91,46,46,46,97,108,108,111,99,97,116,105,111,110,115,93,46,115,111,114,116,40,40,108,101,102,116,44,114,105,103,104,116,41,61,62,108,101,102,116,46,97,100,100,114,101,115,115,46,108,111,99,97,108,101,67,111,109,112,97,114,101,40,114,105,103,104,116,46,97,100,100,114,101,115,115,41,41,41,123,105,102,40,33,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,124,124,118,111,105,100,32,48,33,61,61,98,97,108,97,110,99,101,115,91,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,118,97,108,105,100,32,111,114,32,100,117,112,108,105,99,97,116,101,32,103,101,110,101,115,105,115,32,97,100,100,114,101,115,115,34,41,59,99,111,110,115,116,32,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,108,108,111,99,97,116,105,111,110,46,97,109,111,117,110,116,41,59,105,102,40,97,109,111,117,110,116,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,98,97,108,97,110,99,101,115,91,97,108,108,111,99,97,116,105,111,110,46,97,100,100,114,101,115,115,93,61,97,109,111,117,110,116,44,97,108,108,111,99,97,116,101,100,43,61,97,109,111,117,110,116,125,105,102,40,97,108,108,111,99,97,116,101,100,33,61,61,105,110,105,116,105,97,108,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,103,101,110,101,115,105,115,32,97,108,108,111,99,97,116,105,111,110,115,32,109,117,115,116,32,101,113,117,97,108,32,105,110,105,116,105,97,108,32,115,117,112,112,108,121,58,32,101,120,112,101,99,116,101,100,32,36,123,105,110,105,116,105,97,108,83,117,112,112,108,121,125,44,32,103,111,116,32,36,123,97,108,108,111,99,97,116,101,100,125,96,41,59,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,109,115,103,46,115,101,110,100,101,114,44,99,114,101,97,116,101,100,65,116,58,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,44,114,111,108,101,115,58,123,79,87,78,69,82,58,91,109,115,103,46,115,101,110,100,101,114,93,44,77,73,78,84,58,91,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,93,44,66,85,82,78,58,91,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,93,125,44,104,111,108,100,101,114,115,58,66,105,103,73,110,116,40,79,98,106,101,99,116,46,107,101,121,115,40,98,97,108,97,110,99,101,115,41,46,108,101,110,103,116,104,41,44,98,97,108,97,110,99,101,115,58,98,97,108,97,110,99,101,115,44,97,112,112,114,111,118,97,108,115,58,123,125,44,116,111,116,97,108,83,117,112,112,108,121,58,105,110,105,116,105,97,108,83,117,112,112,108,121,125,125,41,40,105,110,105,116,105,97,108,83,117,112,112,108,121,44,97,108,108,111,99,97,116,105,111,110,115,41,41,44,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,61,115,116,97,116,101,63,66,105,103,73,110,116,40,115,116,97,116,101,46,116,97,114,103,101,116,83,117,112,112,108,121,41,58,66,105,103,73,110,116,40,116,97,114,103,101,116,83,117,112,112,108,121,41,44,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,61,105,110,105,116,105,97,108,83,117,112,112,108,121,44,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,116,97,114,103,101,116,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,60,61,48,110,124,124,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,62,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,105,110,105,116,105,97,108,32,115,117,112,112,108,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,32,97,110,100,32,110,111,116,32,101,120,99,101,101,100,32,116,97,114,103,101,116,32,115,117,112,112,108,121,34,41,125,103,101,116,32,116,97,114,103,101,116,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,125,103,101,116,32,105,110,105,116,105,97,108,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,34,76,101,111,102,99,111,105,110,34,125,103,101,116,32,115,121,109,98,111,108,40,41,123,114,101,116,117,114,110,34,76,70,67,34,125,103,101,116,32,100,101,99,105,109,97,108,115,40,41,123,114,101,116,117,114,110,32,49,56,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,105,110,105,116,105,97,108,83,117,112,112,108,121,58,116,104,105,115,46,35,105,110,105,116,105,97,108,83,117,112,112,108,121,44,116,97,114,103,101,116,83,117,112,112,108,121,58,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,125,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,34,77,73,78,84,34,61,61,61,114,111,108,101,124,124,34,66,85,82,78,34,61,61,61,114,111,108,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,112,114,111,116,111,99,111,108,32,109,111,110,101,116,97,114,121,32,114,111,108,101,115,32,97,114,101,32,105,109,109,117,116,97,98,108,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,34,77,73,78,84,34,61,61,61,114,111,108,101,124,124,34,66,85,82,78,34,61,61,61,114,111,108,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,112,114,111,116,111,99,111,108,32,109,111,110,101,116,97,114,121,32,114,111,108,101,115,32,97,114,101,32,105,109,109,117,116,97,98,108,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,33,61,61,109,115,103,46,115,101,110,100,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,110,108,121,32,116,104,101,32,109,111,110,101,116,97,114,121,32,112,114,111,116,111,99,111,108,32,109,97,121,32,109,105,110,116,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,109,105,110,116,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,116,111,116,97,108,83,117,112,112,108,121,43,97,109,111,117,110,116,62,116,104,105,115,46,35,116,97,114,103,101,116,83,117,112,112,108,121,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,109,105,110,116,32,101,120,99,101,101,100,115,32,116,97,114,103,101,116,32,115,117,112,112,108,121,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,125,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,123,105,102,40,34,108,101,111,102,99,111,105,110,58,112,114,111,116,111,99,111,108,58,109,111,110,101,116,97,114,121,45,112,111,108,105,99,121,58,118,49,34,33,61,61,109,115,103,46,115,101,110,100,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,111,110,108,121,32,116,104,101,32,109,111,110,101,116,97,114,121,32,112,114,111,116,111,99,111,108,32,109,97,121,32,98,117,114,110,34,41,59,105,102,40,40,97,109,111,117,110,116,61,66,105,103,73,110,116,40,97,109,111,117,110,116,41,41,60,61,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,98,117,114,110,32,97,109,111,117,110,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,34,41,59,105,102,40,116,104,105,115,46,98,97,108,97,110,99,101,79,102,40,102,114,111,109,41,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,59,114,101,116,117,114,110,32,115,117,112,101,114,46,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,125,125,10,10,114,101,116,117,114,110,32,76,101,111,102,99,111,105,110,9,3,7,28,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,7,26,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,9,1,10,2,7,97,100,100,114,101,115,115,7,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,6,97,109,111,117,110,116,7,26,53,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48";
7162
+ var nameService = "237,198,141,3,76,70,67,1,9,3,7,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,8,173,52,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,80,117,98,108,105,99,86,111,116,105,110,103,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,118,111,116,101,115,59,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,59,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,61,49,55,50,56,101,53,59,35,118,111,116,101,78,111,110,99,101,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,118,111,116,101,115,61,115,116,97,116,101,46,118,111,116,101,115,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,115,116,97,116,101,46,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,118,111,116,101,78,111,110,99,101,63,63,79,98,106,101,99,116,46,107,101,121,115,40,115,116,97,116,101,46,118,111,116,101,115,63,63,123,125,41,46,108,101,110,103,116,104,41,41,58,40,116,104,105,115,46,35,118,111,116,101,115,61,123,125,44,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,49,44,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,61,48,110,41,125,103,101,116,32,118,111,116,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,118,111,116,101,115,125,125,103,101,116,32,118,111,116,105,110,103,68,117,114,97,116,105,111,110,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,125,103,101,116,32,118,111,116,105,110,103,68,105,115,97,98,108,101,100,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,118,111,116,101,115,58,116,104,105,115,46,35,118,111,116,101,115,44,118,111,116,105,110,103,68,105,115,97,98,108,101,100,58,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,44,118,111,116,105,110,103,68,117,114,97,116,105,111,110,58,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,118,111,116,101,78,111,110,99,101,58,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,125,125,103,101,116,32,105,110,80,114,111,103,114,101,115,115,40,41,123,114,101,116,117,114,110,32,79,98,106,101,99,116,46,101,110,116,114,105,101,115,40,116,104,105,115,46,35,118,111,116,101,115,41,46,102,105,108,116,101,114,40,40,91,105,100,44,118,111,116,101,93,41,61,62,33,118,111,116,101,46,102,105,110,105,115,104,101,100,41,46,109,97,112,40,40,91,105,100,44,118,111,116,101,93,41,61,62,40,123,46,46,46,118,111,116,101,44,105,100,58,105,100,125,41,41,125,99,114,101,97,116,101,86,111,116,101,40,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,44,101,110,100,84,105,109,101,44,109,101,116,104,111,100,44,97,114,103,115,61,91,93,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,99,114,101,97,116,101,32,97,32,118,111,116,101,34,41,59,99,111,110,115,116,32,105,100,61,40,43,43,116,104,105,115,46,35,118,111,116,101,78,111,110,99,101,41,46,116,111,83,116,114,105,110,103,40,41,59,116,104,105,115,46,35,118,111,116,101,115,91,105,100,93,61,123,116,105,116,108,101,58,116,105,116,108,101,44,100,101,115,99,114,105,112,116,105,111,110,58,100,101,115,99,114,105,112,116,105,111,110,44,109,101,116,104,111,100,58,109,101,116,104,111,100,44,101,110,100,84,105,109,101,58,101,110,100,84,105,109,101,44,97,114,103,115,58,97,114,103,115,125,125,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,99,97,110,86,111,116,101,63,46,40,41,125,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,95,98,101,102,111,114,101,86,111,116,101,63,46,40,41,125,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,123,108,101,116,32,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,49,61,61,61,114,101,115,117,108,116,41,44,100,105,115,97,103,114,101,101,61,79,98,106,101,99,116,46,118,97,108,117,101,115,40,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,114,101,115,117,108,116,115,41,46,102,105,108,116,101,114,40,114,101,115,117,108,116,61,62,48,61,61,61,114,101,115,117,108,116,41,59,97,103,114,101,101,46,108,101,110,103,116,104,62,100,105,115,97,103,114,101,101,46,108,101,110,103,116,104,38,38,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,111,117,103,104,86,111,116,101,115,38,38,116,104,105,115,91,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,109,101,116,104,111,100,93,40,46,46,46,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,97,114,103,115,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,61,33,48,125,97,115,121,110,99,32,118,111,116,101,40,118,111,116,101,73,100,44,118,111,116,101,41,123,105,102,40,48,33,61,61,40,118,111,116,101,61,78,117,109,98,101,114,40,118,111,116,101,41,41,38,38,46,53,33,61,61,118,111,116,101,38,38,49,33,61,61,118,111,116,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,118,111,116,101,32,118,97,108,117,101,32,36,123,118,111,116,101,125,96,41,59,105,102,40,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,78,111,116,104,105,110,103,32,102,111,117,110,100,32,102,111,114,32,36,123,118,111,116,101,73,100,125,96,41,59,99,111,110,115,116,32,101,110,100,101,100,61,68,97,116,101,46,110,111,119,40,41,62,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,101,110,100,84,105,109,101,59,105,102,40,101,110,100,101,100,38,38,33,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,46,102,105,110,105,115,104,101,100,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,73,100,41,44,101,110,100,101,100,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,111,116,105,110,103,32,97,108,114,101,97,100,121,32,101,110,100,101,100,34,41,59,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,32,116,111,32,118,111,116,101,34,41,59,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,44,116,104,105,115,46,35,118,111,116,101,115,91,118,111,116,101,73,100,93,91,109,115,103,46,115,101,110,100,101,114,93,61,118,111,116,101,125,35,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,116,104,105,115,46,35,118,111,116,105,110,103,68,105,115,97,98,108,101,100,61,33,48,125,100,105,115,97,98,108,101,86,111,116,105,110,103,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,100,105,115,97,98,108,101,32,118,111,116,105,110,103,34,44,34,87,97,114,110,105,110,103,32,116,104,105,115,32,100,105,115,97,98,108,101,115,32,97,108,108,32,118,111,116,105,110,103,32,102,101,97,116,117,114,101,115,32,102,111,114,101,118,101,114,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,35,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,100,105,115,97,98,108,101,86,111,116,105,110,103,34,44,91,93,41,125,95,115,121,110,99,40,41,123,102,111,114,40,99,111,110,115,116,32,118,111,116,101,32,111,102,32,116,104,105,115,46,105,110,80,114,111,103,114,101,115,115,41,118,111,116,101,46,101,110,100,84,105,109,101,60,68,97,116,101,46,110,111,119,40,41,38,38,116,104,105,115,46,35,101,110,100,86,111,116,105,110,103,40,118,111,116,101,46,105,100,41,125,125,99,108,97,115,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,32,101,120,116,101,110,100,115,32,80,117,98,108,105,99,86,111,116,105,110,103,123,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,59,35,116,111,107,101,110,82,101,99,101,105,118,101,114,59,35,118,111,116,101,84,121,112,101,61,34,116,114,97,110,115,102,101,114,34,59,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,98,117,114,110,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,115,116,97,116,101,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,115,116,97,116,101,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,115,116,97,116,101,46,118,111,116,101,84,121,112,101,41,58,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,61,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,66,105,103,73,110,116,40,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,41,44,98,117,114,110,115,38,38,40,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,34,98,117,114,110,34,41,41,125,103,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,103,101,116,32,116,111,107,101,110,82,101,99,101,105,118,101,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,116,111,107,101,110,82,101,99,101,105,118,101,114,58,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,58,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,118,111,116,101,84,121,112,101,58,116,104,105,115,46,35,118,111,116,101,84,121,112,101,125,125,97,115,121,110,99,35,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,62,61,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,125,97,115,121,110,99,32,95,99,97,110,86,111,116,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,125,97,115,121,110,99,35,98,101,102,111,114,101,86,111,116,101,40,41,123,114,101,116,117,114,110,34,98,117,114,110,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,63,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,58,109,115,103,46,99,97,108,108,40,116,104,105,115,46,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,101,102,111,114,101,86,111,116,101,40,41,123,97,119,97,105,116,32,116,104,105,115,46,35,98,101,102,111,114,101,86,111,116,101,40,41,125,97,115,121,110,99,32,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,97,115,121,110,99,32,95,98,117,114,110,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,117,114,110,34,44,91,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,93,41,125,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,97,100,100,114,101,115,115,41,123,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,61,97,100,100,114,101,115,115,125,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,97,109,111,117,110,116,41,123,116,104,105,115,46,35,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,61,97,109,111,117,110,116,125,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,116,104,105,115,46,35,118,111,116,101,84,121,112,101,61,116,121,112,101,125,35,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,114,101,116,117,114,110,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,44,34,116,114,97,110,115,102,101,114,34,44,91,114,101,99,101,105,118,101,114,44,97,109,111,117,110,116,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,86,111,116,101,84,121,112,101,40,116,121,112,101,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,38,38,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,62,48,110,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,86,111,116,101,84,121,112,101,34,44,91,116,121,112,101,93,41,125,103,101,116,84,111,107,101,110,115,79,117,116,40,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,34,44,96,119,105,116,104,100,114,97,119,32,97,108,108,32,116,111,107,101,110,115,32,116,111,32,36,123,114,101,99,101,105,118,101,114,125,96,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,103,101,116,84,111,107,101,110,115,79,117,116,34,44,91,97,109,111,117,110,116,44,114,101,99,101,105,118,101,114,93,41,125,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,97,109,111,117,110,116,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,35,98,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,35,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,34,98,97,108,97,110,99,101,79,102,34,44,91,116,104,105,115,46,35,116,111,107,101,110,82,101,99,101,105,118,101,114,93,41,125,97,115,121,110,99,32,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,123,105,102,40,33,116,104,105,115,46,35,99,97,110,86,111,116,101,40,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,32,97,108,108,111,119,101,100,34,41,59,105,102,40,48,110,33,61,61,97,119,97,105,116,32,116,104,105,115,46,35,98,97,108,97,110,99,101,40,41,38,38,34,116,114,97,110,115,102,101,114,34,61,61,61,116,104,105,115,46,35,118,111,116,101,84,121,112,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,103,101,116,32,116,111,107,101,110,115,32,111,117,116,32,102,105,114,115,116,32,111,114,32,116,104,101,121,32,98,101,32,108,111,115,116,32,102,111,114,101,118,101,114,34,41,59,116,104,105,115,46,99,114,101,97,116,101,86,111,116,101,40,34,99,104,97,110,103,101,32,116,104,101,32,116,111,107,101,110,32,116,111,32,114,101,99,101,105,118,101,34,44,34,115,101,116,32,116,111,107,101,110,84,111,82,101,99,101,105,118,101,32,116,111,32,97,32,110,101,119,32,97,100,100,114,101,115,115,34,44,68,97,116,101,46,110,111,119,40,41,43,116,104,105,115,46,118,111,116,105,110,103,68,117,114,97,116,105,111,110,44,34,35,99,104,97,110,103,101,84,111,107,101,110,84,111,82,101,99,101,105,118,101,34,44,91,93,41,125,125,99,108,97,115,115,32,78,97,109,101,83,101,114,118,105,99,101,32,101,120,116,101,110,100,115,32,84,111,107,101,110,82,101,99,101,105,118,101,114,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,78,97,109,101,83,101,114,118,105,99,101,34,59,35,114,101,103,105,115,116,114,121,61,123,125,59,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,114,101,103,105,115,116,114,121,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,101,103,105,115,116,114,121,125,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,101,103,105,115,116,114,121,58,116,104,105,115,46,35,114,101,103,105,115,116,114,121,125,125,99,111,110,115,116,114,117,99,116,111,114,40,102,97,99,116,111,114,121,65,100,100,114,101,115,115,44,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,115,116,97,116,101,41,123,115,117,112,101,114,40,116,111,107,101,110,84,111,82,101,99,101,105,118,101,44,116,111,107,101,110,65,109,111,117,110,116,84,111,82,101,99,101,105,118,101,44,33,48,44,115,116,97,116,101,41,44,115,116,97,116,101,63,116,104,105,115,46,35,114,101,103,105,115,116,114,121,61,115,116,97,116,101,46,114,101,103,105,115,116,114,121,58,40,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,109,115,103,46,99,111,110,116,114,97,99,116,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,84,111,107,101,110,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,116,111,107,101,110,84,111,82,101,99,101,105,118,101,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,76,101,111,102,99,111,105,110,86,97,108,105,100,97,116,111,114,115,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,125,41,125,97,115,121,110,99,32,112,117,114,99,104,97,115,101,78,97,109,101,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,97,109,101,32,97,108,114,101,97,100,121,32,114,101,103,105,115,116,101,114,101,100,34,41,59,97,119,97,105,116,32,116,104,105,115,46,95,112,97,121,84,111,107,101,110,84,111,82,101,99,101,105,118,101,40,41,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,97,100,100,114,101,115,115,125,125,108,111,111,107,117,112,40,110,97,109,101,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,125,116,114,97,110,115,102,101,114,79,119,110,101,114,115,104,105,112,40,110,97,109,101,44,116,111,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,61,116,111,125,99,104,97,110,103,101,65,100,100,114,101,115,115,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,97,100,100,114,101,115,115,61,97,100,100,114,101,115,115,125,125,10,10,114,101,116,117,114,110,32,78,97,109,101,83,101,114,118,105,99,101,9,4,7,60,66,51,79,71,82,85,66,83,65,82,75,65,77,87,72,90,76,90,90,65,76,53,89,52,83,82,85,74,79,69,52,82,73,77,81,88,52,83,69,76,78,76,77,84,81,86,80,66,71,70,81,88,69,70,53,82,80,80,72,86,7,60,66,51,79,71,82,85,66,83,66,83,87,72,89,71,78,89,84,52,79,53,55,69,75,55,81,53,90,78,88,89,70,82,50,51,67,67,83,52,69,85,81,80,81,51,52,82,85,53,55,86,54,82,79,81,78,76,89,73,86,78,7,60,66,51,79,71,82,85,66,83,66,84,54,85,68,52,71,54,86,51,75,80,55,90,54,71,50,68,76,77,77,79,86,53,68,53,73,70,73,90,72,50,73,51,75,68,50,67,75,54,86,70,68,51,67,89,89,50,78,67,75,86,7,22,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48";
7163
+ var validators = "237,198,141,3,76,70,67,1,9,3,7,53,89,84,113,121,81,107,107,97,77,75,77,84,83,104,122,55,76,81,104,56,88,100,120,100,90,50,71,80,115,88,107,100,49,98,89,72,112,113,81,87,69,70,55,116,81,121,65,66,90,57,68,71,98,8,206,33,99,108,97,115,115,32,77,101,116,97,123,35,99,114,101,97,116,111,114,59,35,99,114,101,97,116,101,100,65,116,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,115,116,97,116,101,46,99,114,101,97,116,111,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,115,116,97,116,101,46,99,114,101,97,116,101,100,65,116,41,58,40,116,104,105,115,46,35,99,114,101,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,61,66,105,103,73,110,116,40,68,97,116,101,46,110,111,119,40,41,41,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,99,114,101,97,116,111,114,58,116,104,105,115,46,35,99,114,101,97,116,111,114,44,99,114,101,97,116,101,100,65,116,58,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,103,101,116,32,99,114,101,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,111,114,125,103,101,116,32,99,114,101,97,116,101,100,65,116,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,114,101,97,116,101,100,65,116,125,125,99,108,97,115,115,32,82,111,108,101,115,32,101,120,116,101,110,100,115,32,77,101,116,97,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,105,102,40,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,46,114,111,108,101,115,41,123,105,102,40,33,40,115,116,97,116,101,46,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,101,120,112,101,99,116,101,100,32,114,111,108,101,115,32,116,111,32,98,101,32,97,110,32,111,98,106,101,99,116,34,41,59,116,104,105,115,46,35,114,111,108,101,115,61,123,46,46,46,115,116,97,116,101,46,114,111,108,101,115,125,125,101,108,115,101,32,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,114,111,108,101,115,58,116,104,105,115,46,114,111,108,101,115,125,125,103,101,116,32,114,111,108,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,114,101,116,117,114,110,33,33,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,38,38,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,34,79,87,78,69,82,34,61,61,61,114,111,108,101,38,38,49,61,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,116,108,101,97,115,116,32,111,110,101,32,111,119,110,101,114,32,105,115,32,110,101,101,100,101,100,33,34,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,115,112,108,105,99,101,40,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,41,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,125,99,108,97,115,115,32,86,97,108,105,100,97,116,111,114,115,32,101,120,116,101,110,100,115,32,82,111,108,101,115,123,35,110,97,109,101,61,34,76,101,111,102,99,111,105,110,86,97,108,105,100,97,116,111,114,115,34,59,35,118,97,108,105,100,97,116,111,114,115,61,91,93,59,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,59,35,99,117,114,114,101,110,99,121,59,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,66,105,103,73,110,116,40,53,101,52,41,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,61,123,125,59,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,98,97,108,97,110,99,101,115,58,116,104,105,115,46,35,98,97,108,97,110,99,101,115,44,109,105,110,105,109,117,109,66,97,108,97,110,99,101,58,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,99,117,114,114,101,110,99,121,58,116,104,105,115,46,35,99,117,114,114,101,110,99,121,44,118,97,108,105,100,97,116,111,114,115,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,44,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,58,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,44,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,125,125,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,65,100,100,114,101,115,115,44,115,116,97,116,101,41,123,115,117,112,101,114,40,115,116,97,116,101,41,44,115,116,97,116,101,63,40,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,66,105,103,73,110,116,40,115,116,97,116,101,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,41,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,115,116,97,116,101,46,99,117,114,114,101,110,99,121,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,61,115,116,97,116,101,46,118,97,108,105,100,97,116,111,114,115,44,116,104,105,115,46,35,98,97,108,97,110,99,101,115,61,115,116,97,116,101,46,98,97,108,97,110,99,101,115,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,115,116,97,116,101,46,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,61,115,116,97,116,101,46,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,124,124,123,125,41,58,40,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,116,111,107,101,110,65,100,100,114,101,115,115,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,112,117,115,104,40,109,115,103,46,115,101,110,100,101,114,41,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,48,93,61,91,109,115,103,46,115,101,110,100,101,114,93,41,125,103,101,116,32,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,99,117,114,114,101,110,99,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,117,114,114,101,110,99,121,125,103,101,116,32,118,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,103,101,116,32,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,125,103,101,116,32,109,105,110,105,109,117,109,66,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,99,104,97,110,103,101,67,117,114,114,101,110,99,121,40,99,117,114,114,101,110,99,121,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,110,32,111,119,110,101,114,34,41,59,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,99,117,114,114,101,110,99,121,125,104,97,115,40,118,97,108,105,100,97,116,111,114,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,105,110,99,108,117,100,101,115,40,118,97,108,105,100,97,116,111,114,41,125,35,105,115,65,108,108,111,119,101,100,40,97,100,100,114,101,115,115,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,97,100,100,114,101,115,115,38,38,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,115,101,110,100,101,114,32,105,115,32,110,111,116,32,116,104,101,32,118,97,108,105,100,97,116,111,114,32,111,114,32,111,119,110,101,114,34,41,59,114,101,116,117,114,110,33,48,125,118,97,108,105,100,97,116,111,114,115,66,121,72,101,105,103,104,116,40,104,101,105,103,104,116,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,63,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,114,101,99,111,114,100,86,97,108,105,100,97,116,111,114,83,110,97,112,115,104,111,116,40,104,101,105,103,104,116,41,123,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,72,105,115,116,111,114,121,91,104,101,105,103,104,116,93,61,91,46,46,46,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,93,125,97,115,121,110,99,32,97,100,100,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,116,104,105,115,46,35,105,115,65,108,108,111,119,101,100,40,118,97,108,105,100,97,116,111,114,41,44,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,97,108,105,100,97,116,111,114,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,61,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,98,97,108,97,110,99,101,79,102,34,44,91,118,97,108,105,100,97,116,111,114,93,41,59,105,102,40,116,104,105,115,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,62,98,97,108,97,110,99,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,98,97,108,97,110,99,101,32,116,111,32,108,111,119,33,32,103,111,116,58,32,36,123,98,97,108,97,110,99,101,125,32,110,101,101,100,58,32,36,123,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,96,41,59,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,116,114,97,110,115,102,101,114,70,114,111,109,34,44,91,118,97,108,105,100,97,116,111,114,44,109,115,103,46,99,111,110,116,114,97,99,116,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,93,41,44,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,118,97,108,105,100,97,116,111,114,93,61,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,112,117,115,104,40,118,97,108,105,100,97,116,111,114,41,125,97,115,121,110,99,32,114,101,109,111,118,101,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,116,104,105,115,46,35,105,115,65,108,108,111,119,101,100,40,118,97,108,105,100,97,116,111,114,41,44,33,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,118,97,108,105,100,97,116,111,114,32,110,111,116,32,102,111,117,110,100,34,41,59,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,34,116,114,97,110,115,102,101,114,34,44,91,118,97,108,105,100,97,116,111,114,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,93,41,44,100,101,108,101,116,101,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,118,97,108,105,100,97,116,111,114,93,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,115,112,108,105,99,101,40,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,46,105,110,100,101,120,79,102,40,118,97,108,105,100,97,116,111,114,41,44,49,41,125,115,104,117,102,102,108,101,86,97,108,105,100,97,116,111,114,40,41,123,99,111,110,115,116,32,118,97,108,105,100,97,116,111,114,115,61,91,46,46,46,110,101,119,32,83,101,116,40,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,41,93,46,115,111,114,116,40,41,59,105,102,40,48,61,61,61,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,114,101,116,117,114,110,59,99,111,110,115,116,32,115,101,101,100,61,96,36,123,115,116,97,116,101,46,108,97,115,116,66,108,111,99,107,63,46,104,97,115,104,63,63,34,48,120,48,34,125,58,36,123,115,116,97,116,101,46,108,97,115,116,66,108,111,99,107,63,46,105,110,100,101,120,63,63,45,49,125,96,59,108,101,116,32,118,97,108,117,101,61,48,110,59,102,111,114,40,99,111,110,115,116,32,99,104,97,114,97,99,116,101,114,32,111,102,32,115,101,101,100,41,118,97,108,117,101,61,40,51,49,110,42,118,97,108,117,101,43,66,105,103,73,110,116,40,99,104,97,114,97,99,116,101,114,46,99,104,97,114,67,111,100,101,65,116,40,48,41,41,41,37,52,50,57,52,57,54,55,50,57,49,110,59,108,101,116,32,105,110,100,101,120,61,78,117,109,98,101,114,40,118,97,108,117,101,37,66,105,103,73,110,116,40,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,41,59,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,62,49,38,38,118,97,108,105,100,97,116,111,114,115,91,105,110,100,101,120,93,61,61,61,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,38,38,40,105,110,100,101,120,61,40,105,110,100,101,120,43,49,41,37,118,97,108,105,100,97,116,111,114,115,46,108,101,110,103,116,104,41,44,116,104,105,115,46,35,99,117,114,114,101,110,116,86,97,108,105,100,97,116,111,114,61,118,97,108,105,100,97,116,111,114,115,91,105,110,100,101,120,93,125,125,10,10,114,101,116,117,114,110,32,86,97,108,105,100,97,116,111,114,115,9,1,7,60,66,51,79,71,82,85,66,83,66,83,87,72,89,71,78,89,84,52,79,53,55,69,75,55,81,53,90,78,88,89,70,82,50,51,67,67,83,52,69,85,81,80,81,51,52,82,85,53,55,86,54,82,79,81,78,76,89,73,86,78";
8082
7164
  var bytecodes = {
8083
7165
  contractFactory: contractFactory,
8084
7166
  nativeToken: nativeToken,
@@ -8089,130 +7171,9 @@ var bytecodes = {
8089
7171
  const TRANSACTION_FEE_BYTES = 1024n;
8090
7172
  const TRANSACTION_FEE_UNIT = 10n;
8091
7173
  const MAX_TRANSACTION_BYTES = 32 * 1024;
8092
- const MAX_BLOCK_TRANSACTION_BYTES = 128 * 1024;
8093
- const MAX_BLOCK_TRANSACTIONS = 256;
8094
7174
  (BigInt(MAX_TRANSACTION_BYTES) / TRANSACTION_FEE_BYTES) * TRANSACTION_FEE_UNIT;
8095
- const FEE_BASIS_POINTS = 10000n;
8096
- const FEE_PROTOCOL_VERSION = '0.3.0';
8097
- const MONETARY_POLICY_PROTOCOL_VERSION = '0.3.0';
8098
7175
  /** Reserved VM sender; deliberately not a wallet address. */
8099
7176
  const MONETARY_POLICY_AUTHORITY = 'leofcoin:protocol:monetary-policy:v1';
8100
- const BLOCKS_PER_YEAR = 5256000n;
8101
- const ANNUAL_ISSUANCE_BASIS_POINTS = 200n;
8102
- const SUPPLY_FLOOR_BASIS_POINTS = 9500n;
8103
- const MONETARY_FEE_BURN_BASIS_POINTS = 1000n;
8104
- const parseProtocolVersion = (version) => {
8105
- const match = /^(\d+)\.(\d+)\.(\d+)/.exec(version);
8106
- return match ? [Number(match[1]), Number(match[2]), Number(match[3])] : undefined;
8107
- };
8108
- const supportsTransactionFees = (version) => {
8109
- const actual = parseProtocolVersion(version);
8110
- const required = parseProtocolVersion(FEE_PROTOCOL_VERSION);
8111
- if (!actual)
8112
- return false;
8113
- for (let index = 0; index < required.length; index += 1) {
8114
- if (actual[index] !== required[index])
8115
- return actual[index] > required[index];
8116
- }
8117
- return true;
8118
- };
8119
- const supportsMonetaryPolicy = (version) => {
8120
- const actual = parseProtocolVersion(version);
8121
- const required = parseProtocolVersion(MONETARY_POLICY_PROTOCOL_VERSION);
8122
- if (!actual)
8123
- return false;
8124
- for (let index = 0; index < required.length; index += 1) {
8125
- if (actual[index] !== required[index])
8126
- return actual[index] > required[index];
8127
- }
8128
- return true;
8129
- };
8130
- const calculateMonetaryPolicy = (totalSupply, targetSupply) => {
8131
- if (totalSupply < 0n || targetSupply <= 0n)
8132
- throw new Error('invalid monetary policy supply');
8133
- const floorSupply = (targetSupply * SUPPLY_FLOOR_BASIS_POINTS) / FEE_BASIS_POINTS;
8134
- if (totalSupply < floorSupply) {
8135
- const annualIssuance = (targetSupply * ANNUAL_ISSUANCE_BASIS_POINTS) / FEE_BASIS_POINTS;
8136
- const scheduled = annualIssuance / BLOCKS_PER_YEAR || 1n;
8137
- return { subsidy: scheduled < floorSupply - totalSupply ? scheduled : floorSupply - totalSupply, burnBasisPoints: 0n, floorSupply };
8138
- }
8139
- return {
8140
- subsidy: 0n,
8141
- burnBasisPoints: totalSupply >= targetSupply ? MONETARY_FEE_BURN_BASIS_POINTS : 0n,
8142
- floorSupply
8143
- };
8144
- };
8145
- const distributeAmount = (amount, addresses, rotation = 0) => {
8146
- const canonical = [...new Set(addresses)].sort();
8147
- if (canonical.length === 0)
8148
- throw new Error('cannot distribute without validators');
8149
- const count = BigInt(canonical.length);
8150
- const base = amount / count;
8151
- const remainder = Number(amount % count);
8152
- const result = new Map(canonical.map((address) => [address, base]));
8153
- for (let index = 0; index < remainder; index += 1) {
8154
- const address = canonical[(rotation + index) % canonical.length];
8155
- result.set(address, result.get(address) + 1n);
8156
- }
8157
- return result;
8158
- };
8159
- const feeRotationIndex = (transactionHash, validatorCount) => {
8160
- let value = 0n;
8161
- for (const character of transactionHash)
8162
- value = (value * 31n + BigInt(character.charCodeAt(0))) % 4294967291n;
8163
- return Number(value % BigInt(validatorCount));
8164
- };
8165
- const distributeTransactionFee = (fee, transactionHash, validatorAddresses, burnBasisPoints = 1000n) => {
8166
- const canonicalValidators = [...new Set(validatorAddresses)].sort();
8167
- if (canonicalValidators.length === 0)
8168
- throw new Error('cannot distribute transaction fee without validators');
8169
- if (fee < 0n)
8170
- throw new Error('transaction fee cannot be negative');
8171
- if (burnBasisPoints < 0n || burnBasisPoints > FEE_BASIS_POINTS)
8172
- throw new Error('invalid fee burn rate');
8173
- const burned = (fee * burnBasisPoints) / FEE_BASIS_POINTS;
8174
- const validatorPool = fee - burned;
8175
- const count = BigInt(canonicalValidators.length);
8176
- const base = validatorPool / count;
8177
- const remainder = Number(validatorPool % count);
8178
- const start = feeRotationIndex(transactionHash, canonicalValidators.length);
8179
- const validatorFees = new Map(canonicalValidators.map((validator) => [validator, base]));
8180
- for (let index = 0; index < remainder; index += 1) {
8181
- const validator = canonicalValidators[(start + index) % canonicalValidators.length];
8182
- validatorFees.set(validator, validatorFees.get(validator) + 1n);
8183
- }
8184
- const payments = [...validatorFees.entries()]
8185
- .filter(([, amount]) => amount > 0n)
8186
- .map(([to, amount]) => ({ to, amount }));
8187
- return { burned, validatorFees, payments };
8188
- };
8189
- const calculateFee = async (transaction, format = false) => {
8190
- transaction = await new TransactionMessage(transaction);
8191
- const encodedBytes = BigInt(transaction.encoded.length);
8192
- const units = (encodedBytes + TRANSACTION_FEE_BYTES - 1n) / TRANSACTION_FEE_BYTES;
8193
- const fee = units * TRANSACTION_FEE_UNIT;
8194
- return format ? formatUnits(fee.toString()) : fee;
8195
- };
8196
- const validateTransactionResourceLimits = async (transaction) => {
8197
- const message = await new TransactionMessage(transaction);
8198
- const size = message.encoded.length;
8199
- if (size > MAX_TRANSACTION_BYTES) {
8200
- throw new Error(`transaction exceeds ${MAX_TRANSACTION_BYTES} byte protocol limit: ${size}`);
8201
- }
8202
- return size;
8203
- };
8204
- const validateBlockResourceLimits = async (transactions) => {
8205
- if (transactions.length > MAX_BLOCK_TRANSACTIONS) {
8206
- throw new Error(`block exceeds ${MAX_BLOCK_TRANSACTIONS} transaction protocol limit`);
8207
- }
8208
- let size = 0;
8209
- for (const transaction of transactions)
8210
- size += await validateTransactionResourceLimits(transaction);
8211
- if (size > MAX_BLOCK_TRANSACTION_BYTES) {
8212
- throw new Error(`block transactions exceed ${MAX_BLOCK_TRANSACTION_BYTES} byte protocol limit: ${size}`);
8213
- }
8214
- return size;
8215
- };
8216
7177
 
8217
7178
  class LittlePubSub {
8218
7179
  subscribers = new Map();
@@ -8309,7 +7270,7 @@ class LittlePubSub {
8309
7270
  }
8310
7271
 
8311
7272
  const pubsub = new LittlePubSub();
8312
- const worker = new EasyWorker();
7273
+ const worker = new BinaryWorker();
8313
7274
  const contractFactoryMessage = bytecodes.contractFactory;
8314
7275
  const nativeTokenMessage = bytecodes.nativeToken;
8315
7276
  const nameServiceMessage = bytecodes.nameService;
@@ -8327,6 +7288,17 @@ let totalBlocks;
8327
7288
  let blocks = [];
8328
7289
  let contracts = {};
8329
7290
  let contractDefinitions = {};
7291
+ const readCodeCache = new Map();
7292
+ let readCodeBytes = 0;
7293
+ let readOnly = false;
7294
+ let readBaseline;
7295
+ const stateFingerprint = value => JSON.stringify(value, (_, item) => {
7296
+ if (typeof item === 'bigint')
7297
+ return { $bigint: item.toString() };
7298
+ if (item && typeof item === 'object' && !Array.isArray(item))
7299
+ return Object.fromEntries(Object.keys(item).sort().map(key => [key, item[key]]));
7300
+ return item;
7301
+ });
8330
7302
  let activeMeter;
8331
7303
  let activeTimestamp;
8332
7304
  let activeCrypto;
@@ -8346,6 +7318,8 @@ const createMessage = (sender = globalThis.peerid, contract) => {
8346
7318
  contract,
8347
7319
  sender,
8348
7320
  call: async (targetOrParams, method, params = []) => {
7321
+ if (readOnly)
7322
+ throw new Error('Read-only contract queries cannot call mutating contracts');
8349
7323
  const callParams = typeof targetOrParams === 'object'
8350
7324
  ? targetOrParams
8351
7325
  : { contract: targetOrParams, method, params };
@@ -8360,6 +7334,8 @@ const createMessage = (sender = globalThis.peerid, contract) => {
8360
7334
  }
8361
7335
  },
8362
7336
  staticCall: async (target, method, params = []) => {
7337
+ if (!readOnly)
7338
+ return askFor('staticCall', { snapshot: await _.snapshot(), contract: target, method, params, sender: contract });
8363
7339
  const previousMessage = globalThis.msg;
8364
7340
  globalThis.msg = createMessage(contract, target);
8365
7341
  try {
@@ -8376,6 +7352,8 @@ const createState = async () => ({
8376
7352
  lastBlock
8377
7353
  });
8378
7354
  const debug = (message) => {
7355
+ if (readOnly)
7356
+ return;
8379
7357
  worker.postMessage({
8380
7358
  type: 'debug',
8381
7359
  message
@@ -8406,7 +7384,7 @@ const instantiateContract = async (hash, state) => {
8406
7384
  const definition = contractDefinitions[hash];
8407
7385
  if (!definition)
8408
7386
  throw new Error(`missing contract definition for ${hash}`);
8409
- const params = [...definition.constructorParameters];
7387
+ const params = cloneState(definition.constructorParameters);
8410
7388
  if (state !== undefined)
8411
7389
  params.push(cloneState(state));
8412
7390
  globalThis.msg = createMessage(definition.creator, hash);
@@ -8483,9 +7461,16 @@ const respond = (id, value) => {
8483
7461
  id
8484
7462
  });
8485
7463
  };
8486
- const askFor = (question, input) => new Promise((resolve) => {
7464
+ const askFor = (question, input) => new Promise((resolve, reject) => {
8487
7465
  const id = globalThis.crypto.randomUUID();
8488
- pubsub.subscribe(id, resolve);
7466
+ const onResponse = result => {
7467
+ pubsub.unsubscribe(id, onResponse);
7468
+ if (result.error)
7469
+ reject(new Error(result.error));
7470
+ else
7471
+ resolve(result.input);
7472
+ };
7473
+ pubsub.subscribe(id, onResponse);
8489
7474
  worker.postMessage({
8490
7475
  type: 'ask',
8491
7476
  question,
@@ -8494,7 +7479,6 @@ const askFor = (question, input) => new Promise((resolve) => {
8494
7479
  });
8495
7480
  });
8496
7481
  const resolveContract = (hash) => askFor('contract', hash);
8497
- const resolveTransaction = (hash) => askFor('transaction', hash);
8498
7482
  const runTask = async (id, taskName, input) => {
8499
7483
  try {
8500
7484
  const result = await _[taskName](input);
@@ -8513,39 +7497,7 @@ const queueTask = (id, taskName, input) => {
8513
7497
  taskQueue = taskQueue.then(() => runTask(id, taskName, input));
8514
7498
  };
8515
7499
  const queueRead = (id, input) => {
8516
- taskQueue = taskQueue.then(async () => respond(id, await get(input)));
8517
- };
8518
- const _executeTransaction = async (transaction, validators, feesEnabled, burnBasisPoints) => {
8519
- const hash = await new TransactionMessage(transaction).hash();
8520
- if (latestTransactions.includes(hash)) {
8521
- throw new Error(`double transaction found: ${hash}`);
8522
- }
8523
- else {
8524
- latestTransactions.push(hash);
8525
- const { from, to, method, params, nonce } = transaction;
8526
- globalThis.msg = createMessage(from, to);
8527
- globalThis.state = await createState();
8528
- if (feesEnabled) {
8529
- const fee = BigInt(await calculateFee(transaction));
8530
- const { payments, burned } = distributeTransactionFee(fee, hash, validators, burnBasisPoints);
8531
- await _.collectFee({ from, payments, burned });
8532
- }
8533
- await _.execute({
8534
- contract: to,
8535
- method,
8536
- params,
8537
- executionSeed: hash,
8538
- executionTimestamp: Number(lastBlock.timestamp ?? transaction.timestamp ?? 0)
8539
- });
8540
- worker.postMessage({
8541
- type: 'transactionLoaded',
8542
- result: {
8543
- hash,
8544
- from,
8545
- nonce: String(nonce)
8546
- }
8547
- });
8548
- }
7500
+ taskQueue = taskQueue.then(() => runTask(id, 'get', input));
8549
7501
  };
8550
7502
  const addToWantList = (hash) => {
8551
7503
  worker.postMessage({
@@ -8554,12 +7506,26 @@ const addToWantList = (hash) => {
8554
7506
  });
8555
7507
  };
8556
7508
  const _ = {
7509
+ get,
8557
7510
  runContract: async ({ decoded, hash, encoded }, state) => {
8558
7511
  const topLevelDeployment = !activeExecution;
8559
7512
  try {
8560
7513
  if (topLevelDeployment)
8561
7514
  beginExecution(`deploy:${hash}`, Number(lastBlock.timestamp ?? 0));
8562
- const source = instrumentContractSource(new TextDecoder().decode(decoded.contract));
7515
+ const cached = readOnly ? readCodeCache.get(hash) : undefined;
7516
+ const source = cached?.source ?? instrumentContractSource(new TextDecoder().decode(decoded.contract));
7517
+ if (readOnly && !cached) {
7518
+ const size = encoded.byteLength + source.length * 2;
7519
+ if (size <= 8 * 1024 * 1024) {
7520
+ while (readCodeCache.size && (readCodeCache.size >= 128 || readCodeBytes + size > 8 * 1024 * 1024)) {
7521
+ const oldest = readCodeCache.keys().next().value;
7522
+ readCodeBytes -= readCodeCache.get(oldest).size;
7523
+ readCodeCache.delete(oldest);
7524
+ }
7525
+ readCodeCache.set(hash, { decoded: cloneState(decoded), encoded: encoded.slice(), source, size });
7526
+ readCodeBytes += size;
7527
+ }
7528
+ }
8563
7529
  const func = new Function('__lfcMeter', 'Date', 'crypto', source);
8564
7530
  const Contract = func(meterBridge, dateBridge, cryptoBridge);
8565
7531
  if (activeExecution && !contractDefinitions[hash])
@@ -8573,12 +7539,14 @@ const _ = {
8573
7539
  debug(`loaded contract: ${hash} size: ${formatBytes(encoded.length)}`);
8574
7540
  }
8575
7541
  catch (e) {
8576
- console.log(e);
7542
+ if (!readOnly)
7543
+ console.log(e);
8577
7544
  worker.postMessage({
8578
7545
  type: 'contractError',
8579
7546
  message: e.message,
8580
7547
  hash
8581
7548
  });
7549
+ throw e;
8582
7550
  }
8583
7551
  finally {
8584
7552
  if (topLevelDeployment) {
@@ -8588,6 +7556,8 @@ const _ = {
8588
7556
  }
8589
7557
  },
8590
7558
  execute: async ({ contract, method, params, sender, executionSeed, executionTimestamp, executionRandomness }) => {
7559
+ if (readOnly)
7560
+ throw new Error('Read-only worker cannot execute canonical transactions');
8591
7561
  const topLevel = !activeExecution;
8592
7562
  try {
8593
7563
  if (topLevel) {
@@ -8660,6 +7630,8 @@ const _ = {
8660
7630
  }
8661
7631
  },
8662
7632
  collectFee: async ({ from, payments, burned = 0n }) => {
7633
+ if (readOnly)
7634
+ throw new Error('Read-only worker cannot collect fees');
8663
7635
  burned = BigInt(burned);
8664
7636
  const seed = `fee:${from}:${JSON.stringify(payments, jsonStringifyBigInt$1)}:${burned}`;
8665
7637
  return runAtomicMutation(seed, nativeToken$2, () => {
@@ -8681,6 +7653,8 @@ const _ = {
8681
7653
  });
8682
7654
  },
8683
7655
  settleRewards: async ({ rewards }) => {
7656
+ if (readOnly)
7657
+ throw new Error('Read-only worker cannot mint rewards');
8684
7658
  const seed = `rewards:${JSON.stringify(rewards, jsonStringifyBigInt$1)}`;
8685
7659
  return runAtomicMutation(seed, nativeToken$2, () => {
8686
7660
  globalThis.msg = createMessage(MONETARY_POLICY_AUTHORITY, nativeToken$2);
@@ -8695,13 +7669,20 @@ const _ = {
8695
7669
  });
8696
7670
  },
8697
7671
  init: async (message) => {
7672
+ if (readOnly && !message.readOnly)
7673
+ throw new Error('Read-only worker cannot become a canonical worker');
7674
+ if (message.readOnly) {
7675
+ readOnly = true;
7676
+ contracts = {};
7677
+ contractDefinitions = {};
7678
+ activeExecution = undefined;
7679
+ activeMeter = undefined;
7680
+ activeCrypto = undefined;
7681
+ }
8698
7682
  let { peerid, fromState, state, info } = message;
8699
- if (info)
8700
- info = JSON.parse(info, jsonParseBigInt$1);
8701
- if (state)
8702
- state = JSON.parse(state, jsonParseBigInt$1);
7683
+ if (readOnly)
7684
+ readBaseline = stateFingerprint(state);
8703
7685
  globalThis.peerid = peerid;
8704
- console.log({ fromState, info });
8705
7686
  nativeCalls = BigInt(info?.nativeCalls ?? 0);
8706
7687
  nativeMints = BigInt(info?.nativeMints ?? 0);
8707
7688
  nativeBurns = BigInt(info?.nativeBurns ?? 0);
@@ -8713,15 +7694,24 @@ const _ = {
8713
7694
  totalBlocks = BigInt(info?.totalBlocks ?? 0);
8714
7695
  if (fromState) {
8715
7696
  if (message.lastBlock) {
8716
- lastBlock = JSON.parse(message.lastBlock, jsonParseBigInt$1);
7697
+ lastBlock = message.lastBlock;
8717
7698
  }
8718
7699
  const setState = async (address, state) => {
7700
+ if (readOnly && readCodeCache.has(address)) {
7701
+ // Re-evaluate the cached instrumented source, never reuse a live class:
7702
+ // static fields and lexical closure variables must not leak between reads.
7703
+ const cached = readCodeCache.get(address);
7704
+ await _.runContract({ hash: address, decoded: cached.decoded, encoded: cached.encoded }, state);
7705
+ return;
7706
+ }
8719
7707
  const contractBytes = await resolveContract(address);
8720
- if (contractBytes === address) {
7708
+ if (!contractBytes || contractBytes === address) {
8721
7709
  addToWantList(address);
8722
- return;
7710
+ throw new Error(`Checkpoint contract unavailable: ${address}`);
8723
7711
  }
8724
7712
  const contract = await new ContractMessage(contractBytes);
7713
+ if (await contract.hash() !== address)
7714
+ throw new Error(`Checkpoint contract hash mismatch: ${address}`);
8725
7715
  await _.runContract({ hash: address, decoded: contract.decoded, encoded: contract.encoded }, state);
8726
7716
  };
8727
7717
  const entries = Object.entries(state);
@@ -8755,98 +7745,48 @@ const _ = {
8755
7745
  hash: await contractMessage.hash()
8756
7746
  });
8757
7747
  }
8758
- console.log({ blocks: message.blocks });
8759
- if (message.blocks?.length > 0) {
8760
- // let pre
8761
- // try {
8762
- // const importee = await import('url')
8763
- // const url = importee.default
8764
- // if (url) pre = url.fileURLToPath(new URL('.', import.meta.url))
8765
- // } catch {
8766
- // // browser env
8767
- // pre = './'
8768
- // }
8769
- // let _worker = await new EasyWorker(pre + './block-worker.js', {
8770
- // serialization: 'advanced',
8771
- // type: 'module'
8772
- // })
8773
- // blocks = await _worker.once(message.blocks)
8774
- // _worker = null
8775
- // blocks = unique(globalThis.blocks ? globalThis : [], blocks)
8776
- // for (let i = 0; i < blocks.length; i++) {
8777
- // }
8778
- blocks = message.blocks;
8779
- for (const block of blocks) {
8780
- // we only revalidate the latest 24 blocks
8781
- // every 24 blocks a snapshot is taken and stored in state
8782
- // this means contracts will be restored from this state
8783
- // this also means devs NEED to make sure the state can be restored
8784
- // on contract deploy an error will be thrown if state wasn't recoverable
8785
- if (block.index >= blocks.length - 24) {
8786
- const transactionCount = blocks[block.index].transactions.length;
8787
- latestTransactions.splice(-transactionCount, latestTransactions.length);
8788
- }
8789
- if (!block.loaded && !fromState) {
8790
- totalBlocks += 1n;
8791
- try {
8792
- const transactions = await Promise.all(block.transactions.map(async (transaction) => {
8793
- const message = new TransactionMessage(await resolveTransaction(transaction)).decode();
8794
- if (message === transaction) {
8795
- throw new Error(`nothing found for ${transaction}`);
8796
- }
8797
- return message;
8798
- }));
8799
- const validators = block.validators.map(({ address }) => address);
8800
- transactions.sort((a, b) => {
8801
- if (a.priority !== b.priority)
8802
- return a.priority ? -1 : 1;
8803
- const left = BigInt(a.nonce);
8804
- const right = BigInt(b.nonce);
8805
- return left < right ? -1 : left > right ? 1 : 0;
8806
- });
8807
- const feesEnabled = supportsTransactionFees(block.protocolVersion);
8808
- const monetaryPolicyEnabled = supportsMonetaryPolicy(block.protocolVersion);
8809
- if (monetaryPolicyEnabled)
8810
- await validateBlockResourceLimits(transactions);
8811
- const policy = monetaryPolicyEnabled
8812
- ? calculateMonetaryPolicy(BigInt(await get({ contract: nativeToken$2, method: 'totalSupply', params: [] })), BigInt(await get({ contract: nativeToken$2, method: 'targetSupply', params: [] })))
8813
- : { subsidy: 0n, burnBasisPoints: 1000n };
8814
- for (const transaction of transactions) {
8815
- await _executeTransaction(transaction, validators, feesEnabled, policy.burnBasisPoints);
8816
- }
8817
- if (monetaryPolicyEnabled && policy.subsidy > 0n) {
8818
- _.settleRewards({
8819
- rewards: [...distributeAmount(policy.subsidy, validators, Number(block.index) % validators.length)]
8820
- });
8821
- }
8822
- block.loaded = true;
8823
- worker.postMessage({
8824
- type: 'debug',
8825
- message: `loaded transactions for block: ${block.hash} @${block.index}`
8826
- });
8827
- }
8828
- catch (error) {
8829
- // just tell chain it's ready so we can get this node sync
8830
- // when a node connects this node will try to resolve the wantList
8831
- // this should result in the node beeing sync
8832
- if (error.message.includes('nothing found for'))
8833
- worker.postMessage({ type: 'machine-ready', lastBlock });
8834
- else
8835
- console.error(error);
8836
- }
8837
- }
8838
- }
8839
- if (blocks.length > 0) {
8840
- lastBlock = blocks[blocks.length - 1];
8841
- }
8842
- globalThis.blocks = blocks;
8843
- }
8844
7748
  }
8845
- worker.postMessage({ type: 'machine-ready', lastBlock });
7749
+ // Startup only restores a verified checkpoint. Unapplied blocks are executed
7750
+ // by Chain's canonical application path, never by a second replay engine.
7751
+ blocks = message.blocks ?? [];
7752
+ if (!readOnly && (!Array.isArray(blocks) || blocks.length !== Number(lastBlock.index) + 1 ||
7753
+ (blocks.length && blocks.at(-1)?.hash !== lastBlock.hash)))
7754
+ throw new Error('Checkpoint history does not match tip');
7755
+ for (let index = 0; index < blocks.length; index++) {
7756
+ if (Number(blocks[index]?.index) !== index ||
7757
+ blocks[index].previousHash !== (index ? blocks[index - 1].hash : '0x0'))
7758
+ throw new Error('Invalid checkpoint history');
7759
+ }
7760
+ globalThis.blocks = blocks;
7761
+ latestTransactions.splice(0, latestTransactions.length, ...blocks.slice(-24).flatMap(block => block.transactions));
7762
+ return true;
7763
+ },
7764
+ read: async ({ contract, method, params, sender = 'leofcoin:read-only' }) => {
7765
+ if (!readOnly)
7766
+ throw new Error('Contract queries require a separate read-only worker');
7767
+ globalThis.msg = createMessage(sender, contract);
7768
+ beginExecution(`read:${contract}:${method}:${JSON.stringify(params, jsonStringifyBigInt$1)}`);
7769
+ try {
7770
+ const result = cloneState(await get({ contract, method, params }));
7771
+ const snapshot = await _.snapshot();
7772
+ if (stateFingerprint(snapshot.states) !== readBaseline)
7773
+ throw new Error('Read-only call attempted to change contract state');
7774
+ return result;
7775
+ }
7776
+ finally {
7777
+ activeMeter = undefined;
7778
+ activeCrypto = undefined;
7779
+ globalThis.msg = undefined;
7780
+ }
7781
+ },
7782
+ snapshot: async () => {
7783
+ const states = {};
7784
+ for (const address of Object.keys(contracts))
7785
+ states[address] = cloneState(await get({ contract: address, method: 'state', params: [] }));
7786
+ return { lastBlock: cloneState(lastBlock), states, info: { ...snapshotCounters(), totalBlocks } };
8846
7787
  },
8847
7788
  addLoadedBlock: (block) => {
8848
- const size = formatBytes(block.length);
8849
- block = JSON.parse(block, jsonParseBigInt$1);
7789
+ const size = formatBytes(encodeValue(block).length);
8850
7790
  const index = Number(block.index);
8851
7791
  const tipIndex = Number(lastBlock.index);
8852
7792
  if (!['number', 'bigint'].includes(typeof block.index) ||
@@ -8879,9 +7819,9 @@ const _ = {
8879
7819
  // todo validate here and deprecate addLoadedBlock
8880
7820
  }
8881
7821
  };
8882
- worker.onmessage(({ id, type, input }) => {
7822
+ worker.onmessage(({ id, type, input, error }) => {
8883
7823
  if (pubsub.hasSubscribers(id)) {
8884
- pubsub.publish(id, input);
7824
+ pubsub.publish(id, { input, error });
8885
7825
  return;
8886
7826
  }
8887
7827
  switch (type) {
@@ -8903,6 +7843,9 @@ worker.onmessage(({ id, type, input }) => {
8903
7843
  case 'settleRewards':
8904
7844
  queueTask(id, 'settleRewards', input);
8905
7845
  break;
7846
+ case 'snapshot':
7847
+ queueTask(id, 'snapshot', input);
7848
+ break;
8906
7849
  case 'contracts':
8907
7850
  respond(id, contracts);
8908
7851
  break;
@@ -8927,6 +7870,9 @@ worker.onmessage(({ id, type, input }) => {
8927
7870
  case 'get':
8928
7871
  queueRead(id, input);
8929
7872
  break;
7873
+ case 'read':
7874
+ queueTask(id, 'read', input);
7875
+ break;
8930
7876
  case 'totalContracts':
8931
7877
  respond(id, Object.keys(contracts).length);
8932
7878
  break;