UNPKG

@coolwallet/sol

Version:
94 lines (91 loc) 15.4 kB
"use strict"; var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.authorized = exports.SignatureLayout = void 0; exports.encodeData = encodeData; exports.rustString = exports.publicKey = exports.lockup = void 0; var BufferLayout = _interopRequireWildcard(require("@solana/buffer-layout")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /** * Layout for a PublicKey type */ var publicKey = function publicKey() { var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'publicKey'; return BufferLayout.blob(32, property); }; /** * Layout for an Authorized object */ exports.publicKey = publicKey; var authorized = function authorized() { var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'authorized'; return BufferLayout.struct([publicKey('staker'), publicKey('withdrawer')], property); }; /** * Layout for a Lockup object */ exports.authorized = authorized; var lockup = function lockup() { var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'lockup'; return BufferLayout.struct([BufferLayout.ns64('unixTimestamp'), BufferLayout.ns64('epoch'), publicKey('custodian')], property); }; exports.lockup = lockup; /** * Layout for a Rust String type */ var rustString = function rustString() { var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'string'; var rsl = BufferLayout.struct([BufferLayout.u32('length'), // 4 BufferLayout.u32('lengthPadding'), // 4 BufferLayout.blob(BufferLayout.offset(BufferLayout.u32(), -8), 'chars') // data length ], property); var _decode = rsl.decode.bind(rsl); var _encode = rsl.encode.bind(rsl); var rslShim = rsl; rslShim.decode = function (b, offset) { var data = _decode(b, offset); return data['chars'].toString(); }; rslShim.encode = function (str, b, offset) { var data = { chars: Buffer.from(str, 'utf8') }; return _encode(data, b, offset); }; rslShim.alloc = function (str) { return BufferLayout.u32().span + BufferLayout.u32().span + Buffer.from(str, 'utf8').length; }; return rslShim; }; exports.rustString = rustString; function getAlloc(type, fields) { var alloc = 0; type.layout.fields.forEach(function (item) { if (item.span >= 0) { alloc += item.span; } else if (typeof item.alloc === 'function') { alloc += item.alloc(fields[item.property]); } }); return alloc; } function encodeData(layoutType, fields) { var allocLength = layoutType.layout.span >= 0 ? layoutType.layout.span : getAlloc(layoutType, fields); var data = Buffer.alloc(allocLength); var layoutFields = Object.assign({ instruction: layoutType.index }, fields); layoutType.layout.encode(layoutFields, data); return data; } var signature = function signature() { var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'signature'; return BufferLayout.blob(64, property); }; exports.SignatureLayout = signature; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdWZmZXJMYXlvdXQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwicHVibGljS2V5IiwicHJvcGVydHkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJibG9iIiwiZXhwb3J0cyIsImF1dGhvcml6ZWQiLCJzdHJ1Y3QiLCJsb2NrdXAiLCJuczY0IiwicnVzdFN0cmluZyIsInJzbCIsInUzMiIsIm9mZnNldCIsIl9kZWNvZGUiLCJkZWNvZGUiLCJiaW5kIiwiX2VuY29kZSIsImVuY29kZSIsInJzbFNoaW0iLCJiIiwiZGF0YSIsInRvU3RyaW5nIiwic3RyIiwiY2hhcnMiLCJCdWZmZXIiLCJmcm9tIiwiYWxsb2MiLCJzcGFuIiwiZ2V0QWxsb2MiLCJ0eXBlIiwiZmllbGRzIiwibGF5b3V0IiwiZm9yRWFjaCIsIml0ZW0iLCJlbmNvZGVEYXRhIiwibGF5b3V0VHlwZSIsImFsbG9jTGVuZ3RoIiwibGF5b3V0RmllbGRzIiwiYXNzaWduIiwiaW5zdHJ1Y3Rpb24iLCJpbmRleCIsInNpZ25hdHVyZSIsIlNpZ25hdHVyZUxheW91dCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jb21tb25MYXlvdXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQnVmZmVyTGF5b3V0IGZyb20gJ0Bzb2xhbmEvYnVmZmVyLWxheW91dCc7XG5pbXBvcnQgeyBJbnN0cnVjdGlvbklucHV0RGF0YSwgSW5zdHJ1Y3Rpb25MYXlvdXRUeXBlIH0gZnJvbSAnLi9wcm9ncmFtTGF5b3V0JztcblxuLyoqXG4gKiBMYXlvdXQgZm9yIGEgUHVibGljS2V5IHR5cGVcbiAqL1xuY29uc3QgcHVibGljS2V5ID0gKHByb3BlcnR5ID0gJ3B1YmxpY0tleScpID0+IHtcbiAgcmV0dXJuIEJ1ZmZlckxheW91dC5ibG9iKDMyLCBwcm9wZXJ0eSk7XG59O1xuXG4vKipcbiAqIExheW91dCBmb3IgYW4gQXV0aG9yaXplZCBvYmplY3RcbiAqL1xuY29uc3QgYXV0aG9yaXplZCA9IChwcm9wZXJ0eSA9ICdhdXRob3JpemVkJykgPT4ge1xuICByZXR1cm4gQnVmZmVyTGF5b3V0LnN0cnVjdDxcbiAgICBSZWFkb25seTx7XG4gICAgICBzdGFrZXI6IFVpbnQ4QXJyYXk7XG4gICAgICB3aXRoZHJhd2VyOiBVaW50OEFycmF5O1xuICAgIH0+XG4gID4oW3B1YmxpY0tleSgnc3Rha2VyJyksIHB1YmxpY0tleSgnd2l0aGRyYXdlcicpXSwgcHJvcGVydHkpO1xufTtcblxuLyoqXG4gKiBMYXlvdXQgZm9yIGEgTG9ja3VwIG9iamVjdFxuICovXG5jb25zdCBsb2NrdXAgPSAocHJvcGVydHkgPSAnbG9ja3VwJykgPT4ge1xuICByZXR1cm4gQnVmZmVyTGF5b3V0LnN0cnVjdDxcbiAgICBSZWFkb25seTx7XG4gICAgICBjdXN0b2RpYW46IFVpbnQ4QXJyYXk7XG4gICAgICBlcG9jaDogbnVtYmVyO1xuICAgICAgdW5peFRpbWVzdGFtcDogbnVtYmVyO1xuICAgIH0+XG4gID4oW0J1ZmZlckxheW91dC5uczY0KCd1bml4VGltZXN0YW1wJyksIEJ1ZmZlckxheW91dC5uczY0KCdlcG9jaCcpLCBwdWJsaWNLZXkoJ2N1c3RvZGlhbicpXSwgcHJvcGVydHkpO1xufTtcblxuaW50ZXJmYWNlIElSdXN0U3RyaW5nU2hpbVxuICBleHRlbmRzIE9taXQ8XG4gICAgQnVmZmVyTGF5b3V0LlN0cnVjdHVyZTxcbiAgICAgIFJlYWRvbmx5PHtcbiAgICAgICAgbGVuZ3RoOiBudW1iZXI7XG4gICAgICAgIGxlbmd0aFBhZGRpbmc6IG51bWJlcjtcbiAgICAgICAgY2hhcnM6IFVpbnQ4QXJyYXk7XG4gICAgICB9PlxuICAgID4sXG4gICAgJ2RlY29kZScgfCAnZW5jb2RlJyB8ICdyZXBsaWNhdGUnXG4gID4ge1xuICBhbGxvYzogKHN0cjogc3RyaW5nKSA9PiBudW1iZXI7XG4gIGRlY29kZTogKGI6IFVpbnQ4QXJyYXksIG9mZnNldD86IG51bWJlcikgPT4gc3RyaW5nO1xuICBlbmNvZGU6IChzdHI6IHN0cmluZywgYjogVWludDhBcnJheSwgb2Zmc2V0PzogbnVtYmVyKSA9PiBudW1iZXI7XG4gIHJlcGxpY2F0ZTogKHByb3BlcnR5OiBzdHJpbmcpID0+IHRoaXM7XG59XG5cbi8qKlxuICogTGF5b3V0IGZvciBhIFJ1c3QgU3RyaW5nIHR5cGVcbiAqL1xuY29uc3QgcnVzdFN0cmluZyA9IChwcm9wZXJ0eSA9ICdzdHJpbmcnKTogQnVmZmVyTGF5b3V0LkxheW91dDxzdHJpbmc+ID0+IHtcbiAgY29uc3QgcnNsID0gQnVmZmVyTGF5b3V0LnN0cnVjdDxcbiAgICBSZWFkb25seTx7XG4gICAgICBsZW5ndGg/OiBudW1iZXI7XG4gICAgICBsZW5ndGhQYWRkaW5nPzogbnVtYmVyO1xuICAgICAgY2hhcnM6IFVpbnQ4QXJyYXk7XG4gICAgfT5cbiAgPihcbiAgICBbXG4gICAgICBCdWZmZXJMYXlvdXQudTMyKCdsZW5ndGgnKSwgLy8gNFxuICAgICAgQnVmZmVyTGF5b3V0LnUzMignbGVuZ3RoUGFkZGluZycpLCAvLyA0XG4gICAgICBCdWZmZXJMYXlvdXQuYmxvYihCdWZmZXJMYXlvdXQub2Zmc2V0KEJ1ZmZlckxheW91dC51MzIoKSwgLTgpLCAnY2hhcnMnKSwgLy8gZGF0YSBsZW5ndGhcbiAgICBdLFxuICAgIHByb3BlcnR5XG4gICk7XG4gIGNvbnN0IF9kZWNvZGUgPSByc2wuZGVjb2RlLmJpbmQocnNsKTtcbiAgY29uc3QgX2VuY29kZSA9IHJzbC5lbmNvZGUuYmluZChyc2wpO1xuXG4gIGNvbnN0IHJzbFNoaW0gPSByc2wgYXMgdW5rbm93biBhcyBJUnVzdFN0cmluZ1NoaW07XG5cbiAgcnNsU2hpbS5kZWNvZGUgPSAoYjogVWludDhBcnJheSwgb2Zmc2V0PzogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IF9kZWNvZGUoYiwgb2Zmc2V0KTtcbiAgICByZXR1cm4gZGF0YVsnY2hhcnMnXS50b1N0cmluZygpO1xuICB9O1xuXG4gIHJzbFNoaW0uZW5jb2RlID0gKHN0cjogc3RyaW5nLCBiOiBVaW50OEFycmF5LCBvZmZzZXQ/OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgY2hhcnM6IEJ1ZmZlci5mcm9tKHN0ciwgJ3V0ZjgnKSxcbiAgICB9O1xuICAgIHJldHVybiBfZW5jb2RlKGRhdGEsIGIsIG9mZnNldCk7XG4gIH07XG5cbiAgcnNsU2hpbS5hbGxvYyA9IChzdHI6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBCdWZmZXJMYXlvdXQudTMyKCkuc3BhbiArIEJ1ZmZlckxheW91dC51MzIoKS5zcGFuICsgQnVmZmVyLmZyb20oc3RyLCAndXRmOCcpLmxlbmd0aDtcbiAgfTtcblxuICByZXR1cm4gcnNsU2hpbTtcbn07XG5cbmZ1bmN0aW9uIGdldEFsbG9jKHR5cGU6IGFueSwgZmllbGRzOiBhbnkpOiBudW1iZXIge1xuICBsZXQgYWxsb2MgPSAwO1xuICB0eXBlLmxheW91dC5maWVsZHMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgaWYgKGl0ZW0uc3BhbiA+PSAwKSB7XG4gICAgICBhbGxvYyArPSBpdGVtLnNwYW47XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaXRlbS5hbGxvYyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgYWxsb2MgKz0gaXRlbS5hbGxvYyhmaWVsZHNbaXRlbS5wcm9wZXJ0eV0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBhbGxvYztcbn1cblxuZnVuY3Rpb24gZW5jb2RlRGF0YTxUIGV4dGVuZHMgSW5zdHJ1Y3Rpb25JbnB1dERhdGE+KGxheW91dFR5cGU6IEluc3RydWN0aW9uTGF5b3V0VHlwZTxUPiwgZmllbGRzPzogYW55KTogQnVmZmVyIHtcbiAgY29uc3QgYWxsb2NMZW5ndGggPSBsYXlvdXRUeXBlLmxheW91dC5zcGFuID49IDAgPyBsYXlvdXRUeXBlLmxheW91dC5zcGFuIDogZ2V0QWxsb2MobGF5b3V0VHlwZSwgZmllbGRzKTtcbiAgY29uc3QgZGF0YSA9IEJ1ZmZlci5hbGxvYyhhbGxvY0xlbmd0aCk7XG4gIGNvbnN0IGxheW91dEZpZWxkcyA9IE9iamVjdC5hc3NpZ24oeyBpbnN0cnVjdGlvbjogbGF5b3V0VHlwZS5pbmRleCB9LCBmaWVsZHMpO1xuICBsYXlvdXRUeXBlLmxheW91dC5lbmNvZGUobGF5b3V0RmllbGRzLCBkYXRhKTtcbiAgcmV0dXJuIGRhdGE7XG59XG5cbmNvbnN0IHNpZ25hdHVyZSA9IChwcm9wZXJ0eTogc3RyaW5nID0gJ3NpZ25hdHVyZScpID0+IHtcbiAgcmV0dXJuIEJ1ZmZlckxheW91dC5ibG9iKDY0LCBwcm9wZXJ0eSk7XG59O1xuXG5leHBvcnQgeyBwdWJsaWNLZXksIGF1dGhvcml6ZWQsIGxvY2t1cCwgcnVzdFN0cmluZywgZW5jb2RlRGF0YSwgc2lnbmF0dXJlIGFzIFNpZ25hdHVyZUxheW91dCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxZQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFBc0QsU0FBQUMseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFILHdCQUFBTyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLHVDQUFBQSxHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTCxHQUFBLFNBQUFNLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWCxHQUFBLFFBQUFXLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWQsR0FBQSxFQUFBVyxHQUFBLFNBQUFJLElBQUEsR0FBQVIscUJBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixHQUFBLEVBQUFXLEdBQUEsY0FBQUksSUFBQSxLQUFBQSxJQUFBLENBQUFWLEdBQUEsSUFBQVUsSUFBQSxDQUFBQyxHQUFBLEtBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxNQUFBLEVBQUFLLEdBQUEsRUFBQUksSUFBQSxZQUFBVCxNQUFBLENBQUFLLEdBQUEsSUFBQVgsR0FBQSxDQUFBVyxHQUFBLFNBQUFMLE1BQUEsY0FBQU4sR0FBQSxNQUFBRyxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBaEIsR0FBQSxFQUFBTSxNQUFBLFlBQUFBLE1BQUE7QUFHdEQ7QUFDQTtBQUNBO0FBQ0EsSUFBTVcsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUEsRUFBK0I7RUFBQSxJQUEzQkMsUUFBUSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxXQUFXO0VBQ3ZDLE9BQU8zQixZQUFZLENBQUM4QixJQUFJLENBQUMsRUFBRSxFQUFFSixRQUFRLENBQUM7QUFDeEMsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFGQUssT0FBQSxDQUFBTixTQUFBLEdBQUFBLFNBQUE7QUFHQSxJQUFNTyxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBQSxFQUFnQztFQUFBLElBQTVCTixRQUFRLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLFlBQVk7RUFDekMsT0FBTzNCLFlBQVksQ0FBQ2lDLE1BQU0sQ0FLeEIsQ0FBQ1IsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRUMsUUFBUSxDQUFDO0FBQzdELENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBRkFLLE9BQUEsQ0FBQUMsVUFBQSxHQUFBQSxVQUFBO0FBR0EsSUFBTUUsTUFBTSxHQUFHLFNBQVRBLE1BQU1BLENBQUEsRUFBNEI7RUFBQSxJQUF4QlIsUUFBUSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxRQUFRO0VBQ2pDLE9BQU8zQixZQUFZLENBQUNpQyxNQUFNLENBTXhCLENBQUNqQyxZQUFZLENBQUNtQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUVuQyxZQUFZLENBQUNtQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUVWLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFQyxRQUFRLENBQUM7QUFDdkcsQ0FBQztBQUFDSyxPQUFBLENBQUFHLE1BQUEsR0FBQUEsTUFBQTtBQW1CRjtBQUNBO0FBQ0E7QUFDQSxJQUFNRSxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBQSxFQUF5RDtFQUFBLElBQXJEVixRQUFRLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLFFBQVE7RUFDckMsSUFBTVUsR0FBRyxHQUFHckMsWUFBWSxDQUFDaUMsTUFBTSxDQU83QixDQUNFakMsWUFBWSxDQUFDc0MsR0FBRyxDQUFDLFFBQVEsQ0FBQztFQUFFO0VBQzVCdEMsWUFBWSxDQUFDc0MsR0FBRyxDQUFDLGVBQWUsQ0FBQztFQUFFO0VBQ25DdEMsWUFBWSxDQUFDOEIsSUFBSSxDQUFDOUIsWUFBWSxDQUFDdUMsTUFBTSxDQUFDdkMsWUFBWSxDQUFDc0MsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFFO0VBQUEsQ0FDMUUsRUFDRFosUUFDRixDQUFDO0VBQ0QsSUFBTWMsT0FBTyxHQUFHSCxHQUFHLENBQUNJLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDTCxHQUFHLENBQUM7RUFDcEMsSUFBTU0sT0FBTyxHQUFHTixHQUFHLENBQUNPLE1BQU0sQ0FBQ0YsSUFBSSxDQUFDTCxHQUFHLENBQUM7RUFFcEMsSUFBTVEsT0FBTyxHQUFHUixHQUFpQztFQUVqRFEsT0FBTyxDQUFDSixNQUFNLEdBQUcsVUFBQ0ssQ0FBYSxFQUFFUCxNQUFlLEVBQUs7SUFDbkQsSUFBTVEsSUFBSSxHQUFHUCxPQUFPLENBQUNNLENBQUMsRUFBRVAsTUFBTSxDQUFDO0lBQy9CLE9BQU9RLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUM7RUFDakMsQ0FBQztFQUVESCxPQUFPLENBQUNELE1BQU0sR0FBRyxVQUFDSyxHQUFXLEVBQUVILENBQWEsRUFBRVAsTUFBZSxFQUFLO0lBQ2hFLElBQU1RLElBQUksR0FBRztNQUNYRyxLQUFLLEVBQUVDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDSCxHQUFHLEVBQUUsTUFBTTtJQUNoQyxDQUFDO0lBQ0QsT0FBT04sT0FBTyxDQUFDSSxJQUFJLEVBQUVELENBQUMsRUFBRVAsTUFBTSxDQUFDO0VBQ2pDLENBQUM7RUFFRE0sT0FBTyxDQUFDUSxLQUFLLEdBQUcsVUFBQ0osR0FBVyxFQUFLO0lBQy9CLE9BQU9qRCxZQUFZLENBQUNzQyxHQUFHLENBQUMsQ0FBQyxDQUFDZ0IsSUFBSSxHQUFHdEQsWUFBWSxDQUFDc0MsR0FBRyxDQUFDLENBQUMsQ0FBQ2dCLElBQUksR0FBR0gsTUFBTSxDQUFDQyxJQUFJLENBQUNILEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQ3JCLE1BQU07RUFDNUYsQ0FBQztFQUVELE9BQU9pQixPQUFPO0FBQ2hCLENBQUM7QUFBQ2QsT0FBQSxDQUFBSyxVQUFBLEdBQUFBLFVBQUE7QUFFRixTQUFTbUIsUUFBUUEsQ0FBQ0MsSUFBUyxFQUFFQyxNQUFXLEVBQVU7RUFDaEQsSUFBSUosS0FBSyxHQUFHLENBQUM7RUFDYkcsSUFBSSxDQUFDRSxNQUFNLENBQUNELE1BQU0sQ0FBQ0UsT0FBTyxDQUFDLFVBQUNDLElBQVMsRUFBSztJQUN4QyxJQUFJQSxJQUFJLENBQUNOLElBQUksSUFBSSxDQUFDLEVBQUU7TUFDbEJELEtBQUssSUFBSU8sSUFBSSxDQUFDTixJQUFJO0lBQ3BCLENBQUMsTUFBTSxJQUFJLE9BQU9NLElBQUksQ0FBQ1AsS0FBSyxLQUFLLFVBQVUsRUFBRTtNQUMzQ0EsS0FBSyxJQUFJTyxJQUFJLENBQUNQLEtBQUssQ0FBQ0ksTUFBTSxDQUFDRyxJQUFJLENBQUNsQyxRQUFRLENBQUMsQ0FBQztJQUM1QztFQUNGLENBQUMsQ0FBQztFQUNGLE9BQU8yQixLQUFLO0FBQ2Q7QUFFQSxTQUFTUSxVQUFVQSxDQUFpQ0MsVUFBb0MsRUFBRUwsTUFBWSxFQUFVO0VBQzlHLElBQU1NLFdBQVcsR0FBR0QsVUFBVSxDQUFDSixNQUFNLENBQUNKLElBQUksSUFBSSxDQUFDLEdBQUdRLFVBQVUsQ0FBQ0osTUFBTSxDQUFDSixJQUFJLEdBQUdDLFFBQVEsQ0FBQ08sVUFBVSxFQUFFTCxNQUFNLENBQUM7RUFDdkcsSUFBTVYsSUFBSSxHQUFHSSxNQUFNLENBQUNFLEtBQUssQ0FBQ1UsV0FBVyxDQUFDO0VBQ3RDLElBQU1DLFlBQVksR0FBR2hELE1BQU0sQ0FBQ2lELE1BQU0sQ0FBQztJQUFFQyxXQUFXLEVBQUVKLFVBQVUsQ0FBQ0s7RUFBTSxDQUFDLEVBQUVWLE1BQU0sQ0FBQztFQUM3RUssVUFBVSxDQUFDSixNQUFNLENBQUNkLE1BQU0sQ0FBQ29CLFlBQVksRUFBRWpCLElBQUksQ0FBQztFQUM1QyxPQUFPQSxJQUFJO0FBQ2I7QUFFQSxJQUFNcUIsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUEsRUFBdUM7RUFBQSxJQUFuQzFDLFFBQWdCLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLFdBQVc7RUFDL0MsT0FBTzNCLFlBQVksQ0FBQzhCLElBQUksQ0FBQyxFQUFFLEVBQUVKLFFBQVEsQ0FBQztBQUN4QyxDQUFDO0FBQUNLLE9BQUEsQ0FBQXNDLGVBQUEsR0FBQUQsU0FBQSIsImlnbm9yZUxpc3QiOltdfQ==